/**
 * Virknisíður 
 * @author HugurAx
 * Aggregated script. All javascripts under this node will be included.
 */

var contextPath = '';

    	function getNodeContent( node )
	{
		if( node.hasChildNodes() )
			return node.firstChild.data;
		return '';
	}

     // form; check for mandatory fields
function checkMandatories(formName,alertText)
    {
    var theForm=document[formName];
    var m=theForm.mgnlMandatory;
    var i=0;
    var ok=true;
    if (m)
        {
        if (!m[0])
            {
            var tmp=m;
            m=new Object();
            m[0]=tmp;
            }
        while (m[i])
            {
            var name=m[i].value;
            var type;
            var mgnlField;
            if(document.all) mgnlField=theForm(name);
            else mgnlField=theForm[name];

            if (mgnlField.type) type=mgnlField.type;
            else if (mgnlField[0] && mgnlField[0].type) type=mgnlField[0].type

            switch (type)
                {
                case "select-one":
                    if (mgnlField.selectedIndex==0) ok=false;
                    break;
                case "checkbox":
                case "radio":
                    var obj=new Object();
                    if (!mgnlField[0]) obj[0]=mgnlField;
                    else obj=mgnlField;
                    var okSmall=false;
                    var ii=0;
                    while (obj[ii])
                        {
                        if (obj[ii].checked)
                            {
                            okSmall=true;
                            break;
                            }
                        ii++;
                        }
                    if (!okSmall) ok=false;
                    break;
                default:
                    if (!mgnlField.value) ok=false;
                }
            if (!ok)
                {
                alert(alertText);
                if (!mgnlField[0]) mgnlField.focus();
                return false;
                }
            i++;
            }
        }
    if (ok) return true;
    else return false;
    }
    //===============================================
// Villumeðhöndlun á svæðum í skjámynd
//===============================================

function isDateValid(sDateString)
{
	var aiMonthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

	var sP1 = "";
	var sP2 = "";
	var iRetVal = true;
	var iYear = 0;
	var iMonth = 0;
	var iDay = 0;
	var sDate = sDateString.value;
	var sSkilabod = "Dagsetning er á röngu formi eða dagsetning er röng. Vinsamlegast leiðréttið og reynið aftur! \nDæmi um leyfilega dagsetningu er 23.03.2003";
		
	if (sDate.length==10)
	{
		iDay = parseInt(sDate.substring(0, 2),10);
		iMonth = parseInt(sDate.substring(3, 5),10);
		iYear = parseInt(sDate.substring(6, 10),10);
		sP1 = sDate.substring(2,3);
		sP2 = sDate.substring(5,6);
		if (sP1 != "." || sP2 != ".")
		{
			alert(sSkilabod);
			return false;
		}		
	}
	else
	{
			alert(sSkilabod);
			return false;
	}
	
	if (isNaN(iDay) || isNaN(iMonth) || isNaN(iYear))
	{
		alert(sSkilabod);
		return false;
	}

	if(iMonth < 1 || iMonth > 12)
		iRetVal = false;

	else
	{
		if ((iYear % 4) == 0 && iMonth==2)
		{
			aiMonthDays[1] = 29;
		}

		if(iDay > aiMonthDays[iMonth-1] || iDay <= 0) 
			iRetVal = false;

		if (iYear < 1900)
		{
			alert("Ártal verður að vera 1900 eða hærra. Vinsamlegast leiðréttið og reynið aftur!");
			return false;
		}
	}

	if(!iRetVal)
	{
		alert(sSkilabod);
		return false;
	}
	else
	{
		return true;
	}
}

function isDateValid2(sDateString)
{
	//alert("isDateValid2");
	var aiMonthDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

	var sP1 = "";
	var sP2 = "";
	var iRetVal = true;
	var iYear = 0;
	var iMonth = 0;
	var iDay = 0;
	var sDate = sDateString.value;
	var sSkilabod = "Dagsetning er á röngu formi eða dagsetning er röng. Vinsamlegast leiðréttið og reynið aftur! \nDæmi um leyfilega dagsetningu er 23.03.2003";
		
	if (sDate.length==10)
	{
		iDay = parseInt(sDate.substring(0, 2),10);
		iMonth = parseInt(sDate.substring(3, 5),10);
		iYear = parseInt(sDate.substring(6, 10),10);
		sP1 = sDate.substring(2,3);
		sP2 = sDate.substring(5,6);
		if (sP1 != "." || sP2 != ".")
		{
			//alert(sSkilabod);
			return false;
		}		
	}
	else
	{
			//alert(sSkilabod);
			return false;
	}
	
	if (isNaN(iDay) || isNaN(iMonth) || isNaN(iYear))
	{
		//alert(sSkilabod);
		return false;
	}

	if(iMonth < 1 || iMonth > 12)
		iRetVal = false;

	else
	{
		if ((iYear % 4) == 0 && iMonth==2)
		{
			aiMonthDays[1] = 29;
		}

		if(iDay > aiMonthDays[iMonth-1] || iDay <= 0) 
			iRetVal = false;

		if (iYear < 1900)
		{
			//alert("?rtal ver?ur a? vera 1900 e?a h?rra. Vinsamlegast lei?r?tti? og reyni? aftur!");
			return false;
		}
	}

	if(!iRetVal)
	{
		//alert(sSkilabod);
		return false;
	}
	else
	{
		return true;
	}
}

function changeDate(dateObject)
{

	var sDate = dateObject.value;
	
	if(sDate.length < 8)
		return false;
	if(sDate.length==8)	
	{
		sDate = sDate.substring(0, 2)+"."+sDate.substring(2,4)+"."+sDate.substring(4,8);
		dateObject.value = sDate;
	}
}
function checkIfValidNumber(e)
{

	var key;
	var keychar;


	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;

	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	
	// control keys
	if ((key==null) || (key==0) || (key==8) ||
		(key==9) || (key==13) || (key==27) )
	{
	   return true;
	}
	else if ((("0123456789").indexOf(keychar) > -1))
	{
		return true;
	}
	else
	{
	   return false;
	}
}

function checkIfArrowsKey(e)
{
	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return false;
	
	// örvatakkar
	if ( (key==38) || (key==40) ||
		(key==39) || (key==37) )
	{
	   return false;
	}
	return true;
}

function checkIfValidKey(e, mask){

	var key;
	var keychar;
	var sep;

	if ( mask == "N,N" )
		sep = ",";
	else
		sep = ".";

	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;

	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	
	// control keys
	if ((key==null) || (key==0) || (key==8) ||
		(key==9) || (key==13) || (key==27) )
	{
	   return true;
	}
	else if (((sep + "0123456789").indexOf(keychar) > -1))
	{
		return true;
	}
	else
	{
	   return false;
	}
}

// Allows percent sign ('%') for sql search.
function checkIfValidKeySearch(e, mask)
{
	if(!e)
		e=window.event;
	if (e.keyCode==37) // '%'
	{
		return true;
	}
	return checkIfValidKey(e, mask);
}

function checkIfValidCommaKey(e, mask){

	var key;
	var keychar;

	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;

	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();

	// control keys
	if ((key==null) || (key==0) || (key==8) ||
		(key==9) || (key==13) || (key==27) )
	{
	   return true;
	}
	else if ((("0123456789,").indexOf(keychar) > -1))
	{
		return true;
	}
	else
	{
	   return false;
	}
}



function checkIfValidDateKey(e, mask){

	var key;
	var keychar;

	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;

	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();

	// control keys
	if ((key==null) || (key==0) || (key==8) ||
		(key==9) || (key==13) || (key==27) )
	{
	   return true;
	}
	else if ((("0123456789/.").indexOf(keychar) > -1))
	{
		return true;
	}
	else
	{
	   return false;
	}
}


function floatValue(number)
{
	if ( number == "" )
		return "";
	else
		return number.replace(/[\,]/g,".") * 1;
}

function isMaskFormatOK(maskFormat)
{
	return true;
}

function isMaskValueOK(maskMinMaxValue)
{
	if ( floatValue(takaUtPunkta(val)) >= floatValue(maskMinMaxValue[0]) && 
		 floatValue(takaUtPunkta(val)) <= floatValue(maskMinMaxValue[1]) )
	{
		return true;
	}
	else
	{
		return false;
	}
}

function formatField(svaedi,mask)
{
   val=svaedi.value;

   if (mask != '') {
		var maskarray = mask.split("|");
		//alert ( maskarray[0] + " dd " + maskarray[1] );

		var maskFormat = maskarray[0].split(",");
		var maskMinMaxValue = maskarray[1].split("-");

		//alert ( floatValue(maskMinMaxValue[0]) + "|" + takaUtPunkta(val) + "|" + floatValue(maskMinMaxValue[1]) );

		if (val == '')
		{
		}
		else if ( isMaskValueOK(maskMinMaxValue) && isMaskFormatOK(maskFormat))
		{
			//alert ( "OK " + val );
		}
		else
		{
			msg = "Gildið má vera tala á bilinu " + tdl(maskMinMaxValue[0]) + " til " + tdl(maskMinMaxValue[1]);
			alert ( "Ekki leyfilegt gildi " + val + "\n" + msg);
			svaedi.focus();
		}
   }
}

function formatField2(svaedi,mask,villubod)
{
   val=svaedi.value;

   if (mask != '') {
		var maskarray = mask.split("|");
		//alert ( maskarray[0] + " dd " + maskarray[1] );

		var maskFormat = maskarray[0].split(",");
		var maskMinMaxValue = maskarray[1].split("-");

		//alert ( floatValue(maskMinMaxValue[0]) + "|" + takaUtPunkta(val) + "|" + floatValue(maskMinMaxValue[1]) );

		if (val == '')
		{
		}
		else if ( isMaskValueOK(maskMinMaxValue) && isMaskFormatOK(maskFormat))
		{
			//alert ( "OK " + val );
		}
		else
		{
			alert ( "Ekki leyfilegt gildi " + val + "\n" + villubod);
			svaedi.focus();
		}
   }
}

function validatePhonenumber(svaedi,mask)
{
   val=svaedi.value;

   if (mask != '') {
		var maskarray = mask.split("|");
		//alert ( maskarray[0] + " dd " + maskarray[1] );

		var maskFormat = maskarray[0].split(",");
		var maskMinMaxValue = maskarray[1].split("-");

		//alert ( floatValue(maskMinMaxValue[0]) + "|" + takaUtPunkta(val) + "|" + floatValue(maskMinMaxValue[1]) );

		if (val == '')
		{
		}
		else if ( isMaskValueOK(maskMinMaxValue) && isMaskFormatOK(maskFormat))
		{
			//alert ( "OK " + val );
		}
		else
		{
			alert ( "Símanúmer verður að vera 7 stafir og má ekki byrja á 0,1,2,3 eða 9");
			svaedi.focus();
			return false;
		}
		return true;		
   }
}

function checkReikningsnumer(svaedi)
{
	val=svaedi.value;
	
	counter = 0;
	for (var i=0; i < svaedi.value.length; i++)
		if( val.charAt(i) == '0')
			counter++
	
	if( counter == svaedi.value.length && counter > 0 )
	{
		alert ( "Uppgefið reikningsnúmer er ekki leyfilegt" );
		svaedi.select();
		svaedi.focus();
	}

}


function setjaKommurARettaStadi(fieldObject)
{

	gildi = fieldObject.value;
	gildi = takaUtKommurOgPunkta(gildi);

	fieldObject.value = tdl(gildi);

}

function tdl(gildi)
{
   sep="";
   res="";
   gildi=res+gildi;
   while(gildi.length>0){
		if (gildi.length>3) {
			res=gildi.substring(gildi.length-3,gildi.length)+sep+res;
			gildi=gildi.substring(0,gildi.length-3);
		}else{
			res=gildi+sep+res;
			gildi="";
		}
		sep=".";
	}
	return res;
}

function takaUtKommurOgPunkta( gildi )
{
	return gildi.replace(/[\,\.]/g,"");
}

function takaUtPunkta( gildi )
{
	return gildi.replace(/[\.]/g,"");
}

function checkLength(o, length) 
{
	var gildi = o.value
	if (gildi.length >= length)
	{
		alert('Ekki er hægt að hafa fleiri en ' + length + ' stafi í skýringu.');
		o.value= gildi.substring(0,length)

		return false;                         
	}
}

function stafirEftirKommu(svaedi,fjoldi) 
{
	val=svaedi.value.split(",");
	var fjoldiStafaeftirkommu = 0;
	if (val[1])
		fjoldiStafaeftirkommu = val[1].length;
	
	if (fjoldiStafaeftirkommu > fjoldi)
	{
		alert('Ekki er hægt að hafa fleiri en ' + fjoldi + ' staf/stafi eftir kommu.');
		svaedi.focus();
		return false;                         
	}
	else
	{
		return true;
	}
}

// add . at every third number, starting from back
function addSeperators( value )
{
	value = removeSeperators( value )

	while (value.match(/^\d\d{3}/)){
       value = value.replace(/(\d)(\d{3}(\.|,|$))/, '$1.$2');
    }
    
	return value;
}

// remove all .
function removeSeperators( value )
{
	return value.split(".").join("");
}		

// clear all inputs where name starts with number
function clearNumbers( form )
{
	// omits onBlur if submit on input
	for (var i = 0; i < form.elements.length; i++)
	{
		if (form.elements[i].name.substring(0,6) == "number")
			form.elements[i].value = removeSeperators( form.elements[i].value );
	}
}
    String.prototype.trim = function() {

// skip leading and trailing whitespace
// and return everything in between
  return this.replace(/^\s*(\b.*\b|)\s*$/, "$1");

}

// ===========================================================
//  Athugar hvort netfang er löglegt
// =========================================================== 
function checkEmail( sEmail ){

	var bResult = false;

	sEmail = sEmail.trim();

	var rexpIsEmail=/^.+@.+\..{2,3}$/;
	if ((rexpIsEmail.test(sEmail))) { 
			bResult = true;
	}

	return bResult;  
}

function show( id )
{
   	document.getElementById(id).style.display = 'block';
}

function showTableInline( id )
{
   	document.getElementById(id).style.display = 'table-inline';
}

function hide( id )
{
	document.getElementById(id).style.display = 'none';
}

function showHideToggle( id )
{
	if( document.getElementById(id).style.display == 'none' )
	   	document.getElementById(id).style.display = 'block';
	else
		document.getElementById(id).style.display = 'none';
}
	
function setBackgroundGrey(field)
{
   	if(field.style)
   		field.style.backgroundColor = 'rgb(225,225,225)';
}
  	
function setBackgroundWhite(field)
{
   	if(field.style)
   		field.style.backgroundColor = 'rgb(255,255,255)';
}

// alerts the user if kennitala is not legal
function kannaKennitolu(svaedi)
{
	var kt = svaedi.value;

	if (kt == "") return true;

	if (kt.length != 10) 
	{
		alert("Kennitalan er of stutt");
		svaedi.focus();
		return false;
	}

	//Vartölupróf
	var ath=parseInt(kt.substring(0,1),10)*3+
                   	parseInt(kt.substring(1,2),10)*2+
                   	parseInt(kt.substring(2,3),10)*7+
                   	parseInt(kt.substring(3,4),10)*6+
                   	parseInt(kt.substring(4,5),10)*5+
                   	parseInt(kt.substring(5,6),10)*4+
                   	parseInt(kt.substring(6,7),10)*3+
                   	parseInt(kt.substring(7,8),10)*2+
                   	parseInt(kt.substring(8,9),10);
  	if (ath % 11 != 0) 
  	{
    	alert("Kennitalan er ekki lögleg. \nVinsamlegast lagfærið hana.");
    	svaedi.focus();
	    return false;
	  }
  
	return true;
}

	function validateEmail( emailString )
    {
        var re;
        // Rules for the email regular expression:
        // The start of the email must have at least one character
        // before the @ sign
        // There may be either a . or a -, but not together before the @ sign
        // There must be an @ sign
        // At least once character must follow the @ sign
        // There may be either a . or a -, but not together in the address
        // The address must end with a . followed by 2 to 4 characters( non numbers )
        re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.[a-z]{2,4})+$/;

        
        if (re.test(emailString) == true){
            //alert('Löggengt netfang, þetta er allt í fína =)');
            return true;
            }
        else
        {
            alert('Netfang ekki rétt!');
            return false;
        }
    }

	// check if form items start with "req_" then require them to be filled out
	// check e-mail specially ( if entered )
	function checkRequiredEntries(form)
	{
		var marker = 0;
		for (var i = 0; i < form.elements.length; i++)
		{
			if (form.elements[i].name.substring(0,3) == "req")
			{
				if (form.elements[i].value == "")
				{
					marker = 1;
					var temp = form.elements[i].name.substring(4,30);
					alert("Fylla verður út í reitinn "+ temp);
					form.elements[i].focus();
					break;
				}
			}
			var email_ok = true;
			//check req_Netfang and if field with name netfang/email, check if legal email
			if ( (form.elements[i].name.substring(0,11) == "req_Netfang") || ( ( ( form.elements[i].name == "Netfang") || (form.elements[i].name == "email")) && (form.elements[i].value != "") )
				)
			{
				email_ok = validateEmail(form.elements[i].value);
				if ( !email_ok )
				{
					form.elements[i].focus();
					form.elements[i].select();
					break;
				}
			}
		}
		var extra = checkExtra(form);
		
		if (!marker && email_ok && extra )
		{
			form.update.value = true;
			alert("Nú mætti senda formið, (update sett true), allt sem verður að fylla út hefur verið skráð :).");
			return true;
		}
		return false;
	}
	
	//Extra check for page, if nothing extra to check, return true	
	function checkExtra(form)
	{
			return true;

	}
	
	//********
	// ToolTip
	// 	NOTE: must place this DIV right before HTML BODY end
	//	<div id="tooltip" class="tooltip" style="display: none; position: absolute; "></div>
	//	This DIV is in bottom.html
	//********
	
		// toolTip calls toolTipWithOffset 0,0
		function toolTip( e,message )
		{
			toolTipWithOffset( e, 0, 0, message);
		}

		// toolTipWithOffset, message is the text to display, mouse positions are x and y
		function toolTipWithOffset( e, xOffset, yOffset,message )
		{
			var x = e.pageX? e.pageX: e.clientX;
			var y = e.pageY? e.pageY: e.clientY;

			//IE does not add scrolling distance automatically
			if (navigator.appName == "Microsoft Internet Explorer")
				moveToolTipTo( x+xOffset, (y+document.body.scrollTop+yOffset) );
			else
				moveToolTipTo( x+xOffset, y+yOffset );
			document.getElementById('tooltip').style.display = 'block';
			changeToolTip( message );
		}
		
		// toolTipWithOffset, message is the text to display, mouse positions are x and y, width stands for box width
		function toolTipWithOffset2( e, xOffset, yOffset,message, width )
		{
			var x = e.pageX? e.pageX: e.clientX;
			var y = e.pageY? e.pageY: e.clientY;

			//IE does not add scrolling distance automatically
			if (navigator.appName == "Microsoft Internet Explorer")
				moveToolTipTo( x+xOffset, (y+document.body.scrollTop+yOffset) );
			else
				moveToolTipTo( x+xOffset, y+yOffset );
				
			document.getElementById('tooltip').style.width = width;
			document.getElementById('tooltip').style.display = 'block';
			changeToolTip( message );
		}

		// hide the toolTip
		function toolTipOut()
		{
			document.getElementById('tooltip').style.display = 'none';
		}

		// moveToolTipTp, moves the ToolTip DIV to the desired location
		function moveToolTipTo( left, top )
		{
			document.getElementById('tooltip').style.top = top;
			document.getElementById('tooltip').style.left = left;
		}

		// set text of toolTip message
		function changeToolTip( message )
		{
			x = document.getElementById('tooltip');
			x.innerHTML = '';
			x.innerHTML = message;
		}

	// ToolTip END
	
	
	
function MM_openBrWindow(theURL,winName,features) 
{ 
	window.open(theURL,winName,features);
}

function F_loadRollover(){}

function F_roll(){}

function changeLanguage( lang )
{
		var temp = window.location.href;
		// remove old language parameter
		if( temp.indexOf("language") != -1 )
		{
			temp = temp.replace("language","oldLanguage");
		}
		// need to check if parameters are set, then add & not ? in next line

		if( temp.indexOf("?") != -1 )
			temp = temp + '&language=' + lang;
		else
			temp= temp + '?language=' + lang;
			
		window.location = temp;
}



function stafirEftirKommuR(svaedi,fjoldi) 
{
		var tmp =  svaedi + "";
		var tmp2 = tmp.replace(',','.');
		var ret;
	
		val=tmp2.split(".");
		
		var fjoldiStafaeftirkommu = 0;
		if (val[1])
			fjoldiStafaeftirkommu = val[1].length;
		if (fjoldiStafaeftirkommu > fjoldi)
		{
			tmp =  tmp2.toFixed(1);      
			ret = tmp.replace('.',',');                   
		}
		else
		{
			ret =  svaedi.replace('.',',');
		}
		
		return ret;
} 


function stafirEftirKommu2(svaedi,fjoldi) 
{
		var tmp =  svaedi + "";
	
		val=tmp.split(".");
		
		var fjoldiStafaeftirkommu = 0;
		if (val[1])
			fjoldiStafaeftirkommu = val[1].length;
		if (fjoldiStafaeftirkommu > fjoldi)
		{
			return svaedi.toFixed(1);                         
		}
		else
		{
			return svaedi;
		}
} 

function getHTTPObject2() 
{	
	var xmlhttp;
 /*@cc_on
  @if (@_jscript_version >= 5)
   	try {
	      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
	      try {
	        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      	} catch (E) {
        	xmlhttp = false;
      }
   	}
  @else
	  xmlhttp = false;
  @end @*/

	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') 
	{
    	try 
    	{
			xmlhttp = new XMLHttpRequest();
		} 
		catch (e) {xmlhttp = false;}
  	}
	return xmlhttp;
}

function getNodeContent2( node )
{
	if( node.hasChildNodes() )
		return node.firstChild.data;
	return '';
}


