/* '#################################################################################
'## 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 deactivatemenu = false;
var editorvisible = false;
var arySelected = new Array();
var aryObjSelected = new Array();
var nTimeOutId = -1;
var DHTML = (document.getElementById || document.all || document.layers);

if (navigator.appName == "Netscape") {
	layerStyleRef="layer.";
	layerRef="document.layers";
	styleSwitch="";
}
else{
	layerStyleRef="layer.style.";
	layerRef="document.all";
	styleSwitch=".style";
}
if (navigator.cookieEnabled != true) {
	location.href='/errormsg/enablecookie.htm';
}
function openWindow(url) {
  popupWin = window.open(url,'new_page','width=450,height=400,scrollbars=yes')  
}

function popupWindow(url,nWidth,nHeight) {
	nWidth = parseInt(nWidth) + 20;
	nHeight = parseInt(nHeight) + 30;

	newWindow = window.open(url,"newWindow","left=0,top=70,width="+nWidth+",height="+nHeight);
}              

function CloseSoon(strDiv,delay)
{
	if(!delay)
		delay = 1000;	
	return setTimeout("HideLayer('" + strDiv + "')",delay);
}

function ShowSoonAt(strDiv,x,y)
{
	if(document.nOpenTimoutID>0)
		clearTimeout(document.nOpenTimoutID)

	document.nOpenTimoutID = setTimeout("ShowLayerAt('" + strDiv + "'," + x + "," + y + ")",400);
}

function OnMouseOverMenu(strDivId,nLevel,objDiv,align)
{
	// Triggered when user mouses a menu item
	// strDivId:		If !="", then it is a parent also. We then open the child menu named strDivId
	// nLevel:			What level is this menu item at. Root = 1, 
	// objDiv:			The object of the div that the user moused over

	if(editorvisible==true || deactivatemenu==true)
	return;
	
	HideMenus(nLevel);
	clearTimeout(nTimeOutId);
	
	if(objDiv.className){
		objDiv.className='menuover';
		arySelected[nLevel]=strDivId;
		aryObjSelected[nLevel]=objDiv;
	}

	if(strDivId!=""){//If there is a child menu
		//Fix: If there is a long menu at the bottom of the page, we need to move it up a bit so it fits
		objMenu = MM_findObj(strDivId);
		y1 = objDiv.offsetTop-1; 
		x1 = objDiv.width;
		
		if(objDiv.offsetParent){ //If we're allowed to get parent element that offset comes from
			objDivCopy = objDiv;
			y1abs = 0;	
			while(objDivCopy.offsetParent){
				objDivCopy = objDivCopy.offsetParent;
				y1abs += objDivCopy.offsetTop;
			}
			y1abs += objDiv.offsetTop;

			y2 = objMenu.clientHeight + y1abs;
			//DebugMsg("y1:" + y1 + " y2:" + y2 + "");
			if(y2>document.body.clientHeight+document.body.scrollTop)
				y1 = y1 - (y2-document.body.clientHeight-document.body.scrollTop) ;
		}
		
		
		if(align=="horiz" && nLevel==1){
			ShowLayerAt(strDivId,"NaN",getObj(strDivId).style.clientTop);
		}
		else{
			ShowLayerAt(strDivId,x1,y1);
		}
	}
}
function HideMenusSoon(){ nTimeOutId = setTimeout("HideMenus(1)",1500);}

function HideMenus(nLevel)
{//Hides All menus from current level onwards an sets the layer style back to menuout
	if(deactivatemenu==true)
	return;
	for(i=nLevel;i<arySelected.length;i++)
	{
		if(arySelected[i])
		{
			HideLayer(arySelected[i]);
			arySelected[i]=null;
		}
		
		if(aryObjSelected[i])
		{	
			aryObjSelected[i].className='menuout';
			aryObjSelected[i] = null;
		}
	}
}

function ResetStyle(nLevel)
{
//Resets All menustyles from current level onwards to menuout
	
	for(i=nLevel;i<aryObjSelected.length;i++)
	{
		if(aryObjSelected[i])
		{				
			aryObjSelected[i].className='menuout';
			aryObjSelected[i] = null;
		}
	}
}
function HideLayerTrans(layerName){
	obj = getObj(layerName);

	if(obj.filters[0])
		obj.filters[0].Apply();
	getObjStyle(layerName).visibility = "hidden";
	if(obj.filters[0])
		obj.filters[0].Play();	
}
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 ShowLayer(layerName){
	getObjStyle(layerName).visibility = "inherit";
}
function DebugMsg(message)
{
	SetContent("divMessage",eval(layerRef+'["divMessage"].innerHTML') + "  " + message);  //Puts message into top of page in realtime
}
function SetContent(layerName,content){
	eval(layerRef+'["'+layerName+'"].innerHTML="' + content + '"');
}
function ShowLayerAt(layerName,x,y){
	ShowLayer(layerName);
	if(!isNaN(x))
		getObjStyle(layerName).left=x;
	if(!isNaN(y))
		getObjStyle(layerName).top=y;				
}
function fireEvent (eventType, elementID)
{
    var o = document.getElementById(elementID);
    if (document.createEvent)
    {
        var event = document.createEvent("Events");
        event.initEvent(eventType, true, true);
        o.dispatchEvent(evt);
    } else if (document.createEventObject) {
        var evt = document.createEventObject();
        o.fireEvent('on' + eventType, evt);
    }
}
function showSubMenu(x,y,layertext){
	x = x + document.body.scrollLeft + 5; 
	y = y + document.body.scrollTop - 5;
	divSubMenu.innerHTML = layertext;
	ShowLayerAt("divSubMenu",x,y);
}

function onRightclick(evtIN)
{
	if(evtIN.button == 2){
		var event = new xEvent(evtIN);
		contextX = event.pageX
		contextY = event.pageY
		return true;
	}
}
function showEditLayer(menuLock,parentid,menuid,caption,evnt,x,y,site,target){
	x = 0
	if(browser == "IE"){
		if(menuLock=="y"){
			contextX = evnt.clientX-850
			contextY = evnt.clientY+23
		}else{
			contextX = x
			contextY = evnt.clientY
		}
	}else{
		if(menuLock=="y"){
			contextX = contextX-875
			contextY = y+23
		}else{
			contextX = x
			contextY = y
		}
	}
	if (target.length > 0){
		target = "target='" + target + "'"
	}
	if (caption.length>18)
		caption = caption.substring(0,17)+"..."

	layertext = "<div class=divEditTitle style='z-index:10;'>" + caption + "</div>"
	layertext += "<a href='" + site + "utilities/menumanager.asp?action=add&parentid=" + parentid + "&menuid=" + menuid + "' "+ target +" class=imagelink><img src='" + site + "gfx/context-new_s.gif' border=0 align=top title='Add a page under this one' vspace=0></a>";
	layertext += "<a href='" + site + "utilities/menumanager.asp?strip=yes&action=editcontent&parentid=" + parentid + "&menuid=" + menuid + "' "+ target +" class=imagelink><img src='" + site + "gfx/context-edit_s.gif' border=0 align=top title='Edit the Content' vspace=0></a>";
	layertext += "<a href='" + site + "utilities/menumanager.asp?strip=yes&action=edit&menuid=" + menuid + "' "+ target +" class=imagelink><img src='" + site + "gfx/context-properties_s.gif' border=0 align=top title='Edit Properties' vspace=0></a>";
	if(parentid != -1){
		layertext += "<a href='" + site + "utilities/menumanager.asp?action=delete&menuid=" + menuid + "' "+ target +" class=imagelink><img src='" + site + "gfx/context-delete_s.gif' border=0 align=top title='Delete This menu Item' vspace=0></a>";
	}
	getObj("divEditMenu").style.zIndex = 2222;
	getObj("divEditMenu").innerHTML = layertext;
	ShowLayerAt("divEditMenu",contextX,contextY);
}
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 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];}
}

/* '#################################################################################
'## Copyright (C) 2005 Rene de Jong
'## Mofified Jan 2005. Rick Eastes
*/
function bookmark(url, description) {
  var netscape="Netscape and Mozilla users: CTRL+D to add to favourites.";
  if (navigator.appName=='Microsoft Internet Explorer'){
    window.external.AddFavorite(url, description); 
  } else { 
    alert(netscape); 
  }
}
