/* '#################################################################################
'## Copyright (C) 2004 Rick Eastes
'##
'## This program is free software; you can redistribute it and/or
'## modify it under the terms of the GNU General Public License.
'##
'## The "powered by" text/logo with a link back to
'## http://www.nukedit.com in the footer of the pages MUST
'## remain visible when the pages are viewed on the internet or intranet.
'## Donations made to nukedit may waiver this requirement.
'## Speak to rick@nukedit.com
'##
'## All copyright notices regarding nukedit
'## must remain intact in the scripts and in the outputted HTML
'##
'## Support can be obtained from support forums at:
'## http://www.nukedit.com/forum
'##
'################################################################################# */

//Set Global Variables

var editorvisible = false;
var arySelected = new Array();
var aryObjSelected = new Array();
var nTimeOutId = -1;
var DHTML = (document.getElementById || document.all || document.layers);

function CloseSoon(strDiv,delay)
{
	if(!delay)
		delay = 1000;	
	return setTimeout("HideLayer('" + strDiv + "')",delay);
}

function HideLayer(layerName){
	getObjStyle(layerName).visibility = "hidden";
}
function ShowLayerTrans(layerName){
	obj = getObj(layerName);

	if(obj.filters[0])
		obj.filters[0].Apply();
	getObjStyle(layerName).visibility = "visible";
	if(obj.filters[0])
		obj.filters[0].Play();	
}
function showEditLayer(parentid,menuid,caption,obj){
	sourceCoord = YAHOO.util.Dom.getRegion(obj)
	targetX = sourceCoord['right']
	targetY = sourceCoord['top']
	showAt = [targetX,targetY]

	YAHOO.util.Dom.setStyle("divEditMenu", 'visibility','visible')
	YAHOO.util.Dom.setXY("divEditMenu", showAt)

	target = ""
	if (caption.length>18)
		caption = caption.substring(0,17)+"..."

	layertext = "<div class=divEditTitle style='z-index:10;'>" + caption + "</div>"
	layertext += "<a href='/utilities/menumanager.asp?action=add&parentid=" + parentid + "&menuid=" + menuid + "' "+ target +" class=imagelink><img src='/gfx/context-new_s.gif' border=0 align=top title='Add a page under this one' vspace=0></a>";
	layertext += "<a href='/utilities/menumanager.asp?action=editcontent&parentid=" + parentid + "&menuid=" + menuid + "' "+ target +" class=imagelink><img src='/gfx/context-edit_s.gif' border=0 align=top title='Edit the Content' vspace=0></a>";
	layertext += "<a href='/utilities/menumanager.asp?action=edit&menuid=" + menuid + "' "+ target +" class=imagelink><img src='/gfx/context-properties_s.gif' border=0 align=top title='Edit Properties' vspace=0></a>";
	if(parentid != -1){
		layertext += "<a href='/utilities/menumanager.asp?action=delete&menuid=" + menuid + "' "+ target +" class=imagelink><img src='/gfx/context-delete_s.gif' border=0 align=top title='Delete This menu Item' vspace=0></a>";
	}
	YAHOO.util.Dom.get("divEditMenu").innerHTML = layertext;
}

function getObjStyle(name)
{
  if (document.getElementById){return document.getElementById(name).style;}
  else if (document.all){return document.all[name].style;}
  else if (document.layers){return document.layers[name];}
  else return false;
}
function getObj(name)
{
  if (document.getElementById){return document.getElementById(name);}
  else if (document.all){return document.all[name];}
  else if (document.layers){return document.layers[name];}
  else return false;
}
//Cookie Helpers
function getCookieVal (offset) {
   var endstr = document.cookie.indexOf (";", offset);
   if (endstr == -1)
      endstr = document.cookie.length;
   return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
				return getCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1;
				if (i == 0)
						break;
		}
   return null;
}
function SetCookie (name, value) {
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +
		((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
		((path == null) ? "" : ("; path=" + path)) +
		((domain == null) ? "" : ("; domain=" + domain)) +
		((secure == true) ? "; secure" : "");
}
function Form_Validator(formname)
{	
	objfield = formname.email
	if (checkemail(objfield.value) == false){
		alert("Emailadresse ist ungültig.");
		return false;
	}
	if (objfield.value == ""){
	alert("Emailadresse darf nicht leer sein.");
	formname.email.focus();
	return (false);
	} 
	
	if (formname.password.value == ""){
	alert("Passwort darf nicht leer sein.");
	formname.password.focus();
	return (false);} 
	return (true);
}
function checkemail(str){
	var testresults
	var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	testresults = filter.test(str) ? true : false
	return (testresults)
}
function check_date(dateval){
	var checkstr = "0123456789";
	var DateValue = "";
	var DateTemp = "";
	var datetoday = new Date();
	var minYear = datetoday.getFullYear();
	var seperator = ".";
	var gapfill = "0";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
   err = 0;
   DateValue = dateval;
   
   	if (DateValue.indexOf(seperator) > 0){
		dateValueArr = DateValue.split(seperator)
		if (dateValueArr.length != 3){err = 1}
		else{
			concatDate = ""
			if (dateValueArr[0].length == 2) {concatDate = dateValueArr[0]}
			if (dateValueArr[0].length > 2) {err = 2}
			if (dateValueArr[0].length < 2) {concatDate = gapfill.concat(dateValueArr[0])}
			if (dateValueArr[1].length == 2) {concatDate += seperator.concat(dateValueArr[1])}
			if (dateValueArr[1].length > 2) {err = 3}
			if (dateValueArr[1].length < 2) {concatDate += seperator + gapfill.concat(dateValueArr[1])}
			if (dateValueArr[2].length == 2) {concatDate += seperator + "19" + dateValueArr[2]}
			if (dateValueArr[2].length == 4) {concatDate += seperator.concat(dateValueArr[2])}
			else if (dateValueArr[2].length != 2){err = 4}
			DateValue = concatDate
		}
	}
   
   /* Delete all chars except 0..9 */
   for (i = 0; i < DateValue.length; i++) {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   DateValue = DateTemp;
   /* Always change date to 8 digits - string*/
   /* if year is entered as 2-digit / always assume 20xx */
   if (DateValue.length == 6) {
      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
   if (DateValue.length != 8) {
      err = 19;}
   /* year is wrong if year = 0000 */
   year = DateValue.substr(4,4);
	if (minYear-8 <= year) {err = 66;}
	if (year == 0) {err = 20;}
   /* Validation of month*/
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {err = 21;}
   /* Validation of day*/
   day = DateValue.substr(0,2);
   if (day < 1) {err = 22;}
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {leap = 1;}
   if ((month == 2) && (leap == 1) && (day > 29)) {err = 23;}
   if ((month == 2) && (leap != 1) && (day > 28)) {err = 24;}
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {err = 25;}
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {err = 26;}
   /* if 00 ist entered, no error, deleting the entry */
   if ((day == 0) && (month == 0) && (year == 00)) {err = 0; day = ""; month = ""; year = ""; seperator = "";}
   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
	if (err == 0) {return true}
   else {return false}
}

function MM_validateForm() { //v3.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=args[i+1];if(nm==''){nm=val.name;} if ((val=val.value)!="") {
	  if (test.indexOf('isDate')!=-1) {if (!check_date(val)) errors+= '- '+nm+' ist kein gültiges Datum.\n'; }
	  if (test.indexOf('isEmail')!=-1) {
		validEmail = val.search(/\b[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b/)
		if (validEmail == -1) errors+='- '+nm+' ist keine gültige E-mail.\n';
//        if (p<1 || p==(val.length-1)) errors+='- '+nm+' ist keine gültige E-mail.\n';
      } else if (test!='R' && test.indexOf('isDate')==-1) { 
			num = parseFloat(val);
			if (val!=''+num) errors+='- '+nm+' muss eine Zahl sein.\n';
			if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
			min=test.substring(8,p); max=test.substring(p+1);
			if (num<min || max<num) errors+='- '+nm+' muss eine Zahl zwischen '+min+' und '+max+' sein.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' ist obligatorisch.\n'; }
  }
  if (errors){
    alert('Folgende Fehler sind aufgetreten:\n'+errors);
  }
  document.MM_returnValue = (errors == '');
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
