var whiteArrow = new Image();
whiteArrow.src = baseUrl + '/pics/whitearrow.gif';
var redArrow = new Image();
redArrow.src = baseUrl + '/pics/redarrow.gif';
var spacer = new Image();
spacer.src = baseUrl + '/pics/spacer.gif';

function GetBgArrayColor(menuID){	
	return menuMoColors[menuID+1];
}

function XXGetArrow(menu,imgID){
	//document.getElementById(menu + 'img' + imgID).src = whiteArrow.src;
	document.images[menu + 'img' + imgID].src = whiteArrow.src;
}

function findObj(n, d) { // version 1.0, soren@araneum.dk, Litra B.
	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=findObj(n,d.layers[i].document);
		if (!x && document.getElementById) x=document.getElementById(n);
	return x;
}

function getOffsetLeft(id) { // version 1.0, soren@araneum.dk, Litra C.
	var el = findObj(id);
	var ol = el.offsetLeft;
	while ((el = el.offsetParent) != null) ol += el.offsetLeft;
	return ol;
}	

function getOffsetTop(id) { // version 1.0, soren@araneum.dk, Litra C.
	var el = findObj(id);
	var ot = el.offsetTop;
	while((el = el.offsetParent) != null) ot += el.offsetTop;
	return ot;
}



function GetDropArrow(lelementID){
if(lelementID!=''){
	document.getElementById('leftMenuWhiteArrow').style.top = getOffsetTop(lelementID)+10;
	document.getElementById('leftMenuWhiteArrow').style.left = getOffsetLeft(lelementID);
	document.getElementById('leftMenuWhiteArrow').style.visibility = 'visible';
}
}

function GetArrow(lelementID){
if(lelementID!=''){
	document.getElementById('leftMenuWhiteArrow').style.top = getOffsetTop(lelementID)+5;
	document.getElementById('leftMenuWhiteArrow').style.left = getOffsetLeft(lelementID)-3;
	document.getElementById('leftMenuWhiteArrow').style.visibility = 'visible';
}
}

function GetLev2Arrow(lelementID){
if(lelementID!=''){
	document.getElementById('leftMenuRedArrow').style.top = getOffsetTop(lelementID)+5;
	document.getElementById('leftMenuRedArrow').style.left = getOffsetLeft(lelementID)-3;
	document.getElementById('leftMenuRedArrow').style.visibility = 'visible';
}
}

function GetIndexArrow(lelementID){
if(lelementID!=''){
	document.getElementById('leftMenuRedArrow').style.top = getOffsetTop(lelementID)+2;
	document.getElementById('leftMenuRedArrow').style.left = getOffsetLeft(lelementID)-5;
	document.getElementById('leftMenuRedArrow').style.visibility = 'visible';
}
}

function RemoveArrow(){
	document.getElementById('leftMenuWhiteArrow').style.visibility = 'hidden';
	document.getElementById('leftMenuRedArrow').style.visibility = 'hidden';
}
			
function openLayer(menuID){
	var maxPos = getOffsetLeft('rightImg')-142;
	document.getElementById('menudiv' + menuID).style.visibility = 'visible';
	var thisPos = getOffsetLeft('menu' + menuID);
	if (thisPos > maxPos ){thisPos = maxPos};
	document.getElementById('menudiv' + menuID).style.left = thisPos;
	document.getElementById('menudiv' + menuID).style.top = getOffsetTop('divcontent')-6;
}

function closeLayer(menuID){
	document.getElementById('menudiv' + menuID).style.visibility = 'hidden';
}

function openpopwin(url,wname,winWidth,winHeight) {
	var popwin
	if (wname=='') wname='nyt';
	if (winWidth=='') winWidth=300;
	if (winHeight=='') winHeight=300;
	if (url=='') url='http:\/\/www.gl.org';
	popwin=window.open(url,wname,'toolbar=no,copyhistory=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=' + winWidth + ',height=' + winHeight);
	if (popwin.focus!=null) {
		popwin.focus();
	}
}

function openpopwinEx(url,wname,extra) {
	var popwinEx
	if (wname=='') wname='nyt';	
	popwinEx=window.open(url,wname,extra);	
	if (popwinEx.focus!=null) {
		popwinEx.focus();
	}
}


function isblank(s){
 for(var i=0; i< s.length; i++)
 {
   var c = s.charAt(i);
   if ((c!=' ') && (c != '\n') && (c != '\t')) return false;
 }
}

function emailCheck (emailStr){
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	var errmsg = ""
	if (matchArray==null){
	  return (" Email-adressen er ikke korrekt udfyldt.\n(tjek om der mangler et '@' eller '.')")
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null){
	  return(" Email-adressen er ikke korrekt udfyldt.\n(tjek om der mangler et '@' eller '.')")
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null){
	  for (var i=1;i<=4;i++){
	    if (IPArray[i]>255){
	 		errmsg = (" Email-adressen er ikke korrekt udfyldt.\n(tjek om der mangler et '@' eller '.')")
	    }
	  }
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null){
	  errmsg = (" Email-adressen er ikke korrekt udfyldt.\n(tjek om der mangler et '@' eller '.')")
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3){
	  errmsg = (" Email-adressen er ikke korrekt udfyldt.\n(tjek om der mangler et '@' eller '.')")
	}
	if (len<2){
	  errmsg = (" Email-adressen er ikke korrekt udfyldt.\n(tjek om der mangler et '@' eller '.')")
	}
	return errmsg
}

function verify(f){
	 var msg;
	 var empty_fields = "";
	 var order = false;
	 var errors = "";
	 var BekCount = 0; 
	
	 for(var i=0; i<f.length; i++){
	   var e = f.elements[i];   
	   if(e.type == "text"){
	     if((e.value == null) || (e.value == "") || isblank(e.value)){				
	       empty_fields += "\n " + e.id + " skal udfyldes.";
	       continue;
	     }
	     else if(e.name == "email"){
	       var test = emailCheck(e.value);
	       if(test.length > 0){
	         empty_fields += "\n " + test;
	         continue;
	       }
	     }
	   }   
	 }
	 
	 if(empty_fields){
	   alert("Fejl i indtastningen:"+empty_fields + "\n");
	   return false;
	 }
	 else{
		return true;
	}
}

function RunUnSubscrition(lform){
 	document.forms.unsubscribe.unsubName.value = lform.name.value;
  document.forms.unsubscribe.unsubEmail.value = lform.email.value;
	if (verify(lform)){
   document.forms.unsubscribe.submit();
	} 
}

function formValidator() { 
	// findObj Litra B or Litra A must be included.

	// Arguments: validationFailedText, elementID, validationType

	// Requirement indicators:
	// R (alone or in front of any of the following): Required
	// isNum: any number
	// inRange1:33: must be a number betwean 1 and 33
	// isEmail: must be an e-mail address

	var i;
	var p;
	var q;
	var validationType;
	var validationFailedText;
	var required = false;
	var num;
	var min;
	var max;
	var errors = "";
	var args = formValidator.arguments;
	var elementValue

	for (i=0; i<(args.length-2); i+=3) { 
		validationFailedText =  args[i]; 
		elementValue = findObj(args[i+1]);
		validationType = args[i+2];
		if (validationType.substr(0, 1) == "R") {
			required = true;
			validationType = validationType.substr(1, validationType.length);
		}

		if (elementValue) { 
			if ((elementValue=elementValue.value) != "") {
				//Value contains a value
				//test the value according to the validation type
				switch (validationType) {
					case "isEmail":
						if (!verifyEmail(elementValue)) {
							errors += "- " + validationFailedText + "\n";
						}
						break;
					case "isNum":
						if (isNaN(elementValue)) {
							errors += "- " + validationFailedText + "\n";
						}
						break;
					case "inRange":
						if (validationType.indexOf("inRange") != -1) { 
							p = validationType.indexOf(":");
							min = validationType.substring(8,p);
							max = validationType.substring(p+1);
							if ((elementValue-0)<min || max<(elementValue-0)) {
								errors += "- " + validationFailedText + "\n";
							}
						}
						break;
				}
			} 
			else if (required) {
				errors += "- " + validationFailedText + "\n";
			}
		}
	} 
	if (errors) {
		alert(errors);
	}
	return document.returnValue = (errors == '');
}

function verifyEmail(pEmail) {
	var lEmail = pEmail;
	var lEmailexp = /^[a-z0-9][a-z0-9_.-]+@[a-z0-9_.-]+\.[a-z]{2,3}$/i
	return lEmailexp.test(lEmail);
}