			
			var selectedValue;

			function setDDboxValue(box, value){
				if (box==null) return false;
				if (box.options == undefined) return false;
				for (var intI = 0; intI < box.options.length; intI++)
					if (box.options[intI].value == value) {
						box.options[intI].selected = true;
						return true;
					}
				return false;
			}


			function addEvent( obj, eventType, fn ) {
				if(obj!=null){
					if(obj.attachEvent != undefined){
						if ( obj.attachEvent ) {
							obj['e'+eventType+fn] = fn;
							obj[eventType+fn] = function(){obj['e'+eventType+fn]( window.event );}
							obj.attachEvent( 'on'+eventType, obj[eventType+fn] );
    					}
					} else
						obj.addEventListener(eventType, fn, false );
				}
			}
			
			function removeEvent( obj, eventType, fn ) {
				try{
					if(obj!=null){
    					if(obj.detachEvent != undefined){
						    if ( obj.detachEvent ) {
							    obj.detachEvent( 'on'+eventType, obj[eventType+fn] );
							    obj[eventType+fn] = null;
    					    }
				        } else
					        obj.removeEventListener(eventType, fn, false );
                    }
				}
				catch(e){
					return;
				}
			}
			
			function removeEventIndexPage( obj, type, currentSelection)
			{
				if (currentSelection.length > 0)
				{
					if (currentSelection.toLowerCase() == "accommodation")
						removeEvent(obj,type, function(){ HandleSubmit(event,"validateSearchPage('ACCOMMODATION')"); });
					else if(currentSelection.toLowerCase() == "flight")
						removeEvent(obj,type, function(){ HandleSubmit(event,"validateSearchPage('FLIGHT')"); });
					else if(currentSelection.toLowerCase() == "ferry")
						removeEvent(obj,type, function(){ HandleSubmit(event,"validateSearchPage('FERRY')"); });
					else if(currentSelection.toLowerCase() == "package")
						removeEvent(obj,type, function(){ HandleSubmit(event,"validateSearchPage('PACKAGE')"); });
					else if(currentSelection.toLowerCase() == "bus")
						removeEvent(obj,type, function(){ HandleSubmit(event,"validateSearchPage('BUS')"); });
				}
			}

            function addLoadEvent(func) {
                var oldonload = window.onload;
                if (typeof window.onload != 'function') 
                    window.onload = func;
                else 
                    window.onload = function() {
                        if (oldonload) 
                            oldonload();
                        func();                    
                }
            }

			function clearBox(box){
				if (box==null) return ;
				while(box.options.length!=0)
					box.options[0] = null;
				return box;
			}
		
			function GetElementValue(item, elementName)
			{
				if (item!=null){
				    var elements = item.getElementsByTagName(elementName);
				    if( elements.length > 0 ){
					    if (elements[0].firstChild!=null)
						    return elements[0].firstChild.nodeValue;
					    else
						    return '';
				    }
				}
			}
			
			function updateBox(itemObj, items, tag1, tag2)
			{
				itemObj=clearBox(itemObj);	
				for (var index = 0; index < items.length; index++)
				{
					var locationName = GetElementValue(items[index], tag1);					
					locationName=locationName.replace("|","");
					var locationCode = GetElementValue(items[index], tag2);
					var optionItem = document.createElement("OPTION");
							
					itemObj.options[index] = optionItem;
					if (selectedValue != null)
					{
						if (selectedValue == locationCode) itemObj.options[index].selected = true;
					}
					
					setInnerText(optionItem, locationName);
					optionItem.value = locationCode;
				}
			}
			

			
			function getObj(ObjName){
				for(var i = 0; i<document.forms[0].elements.length;i++){
					var tmpObj = document.forms[0].elements[i];
			
					if(tmpObj.id.replace(ObjName) != tmpObj.id){
						return tmpObj;
					}
				}
				return null;
			}	

			function getObj2(ObjName){
				for(var i = 0; i<document.forms[0].elements.length;i++){
					var tmpObj = document.forms[0].elements[i];
			
					if(tmpObj.id.replace(ObjName) != tmpObj.id){
						return tmpObj;
					}
				}
				for(var i = 0; i<document.getElementsByTagName('span').length;i++){
					var tmpObj = document.getElementsByTagName('span')[i];
			
					if(tmpObj.id.replace(ObjName) != tmpObj.id){
						return tmpObj;
					}
				}
				return null;
			}	
			
			function IsNumeric(sText)
			{
				var ValidChars = "0123456789";
				var IsNumber=true;
				var Char;
                
				for (i = 0; i < sText.length && IsNumber == true; i++) 
					{ 
					Char = sText.charAt(i); 
					if (ValidChars.indexOf(Char) == -1) 
						{
						IsNumber = false;
						}
					}
				return IsNumber;
			}
			
			function IsNumericNorwegian(sText)
			{
				var ValidChars = "0123456789";
				var IsNumber=true;
				var Char;
                
                if (sText=='')
                    return false;
                    
				for (i = 0; i < sText.length && IsNumber == true; i++) 
					{ 
					Char = sText.charAt(i); 
					if (ValidChars.indexOf(Char) == -1) 
						{
						IsNumber = false;
						}
					}
				return IsNumber;
			}


			function validateChildAgesShortNSmart(Obj){
                // Checks if all parts departed by "," are numerical and non negative, if thats the case then we are set for go.
			    var parts = Obj.value.split(",");
			    for(var n=0;n<parts.length;n++)
			        if(!IsNumeric(Trim(parts[n])))    // if not numerical, itīs a false
			           return false;
			         else if (parts[n]<0) // if numerical but negative, itīs a false
			            return false;    
                return true;    // Numerical and non negative, itīs a true
			}
			
			function validateNrOfAges(Obj,numberOfChilds){
    		    var parts = Obj.value.split(",");
    		    var numbers=parts.length;
    		    if(parts[0]=="") numbers=0;
                if(numberOfChilds.value==numbers)
                    return true;
                else
                    return false; 
			}

			function validateChildAges(Obj)
			{
				if (Obj != null){ 
					var baseName = Obj.id.replace("drpBarn","");
					var childObj = Obj
					var agesObj = document.getElementById(baseName + "txtEvage")
					
					if (childObj.options.selectedIndex > 0){
						var ages = agesObj.value.split(",");
						
						for(var e =0; e<ages.length; e++){
							if(!checkStringToChildFunction(ages[e]))
								return false;
						
							if (ages[e] == "" || ages[e] == " ")
								ages.splice(i,1);
						}
						
						if (childObj.options.selectedIndex == ages.length){
							for(var i =0; i<ages.length;i++){
								var age = ages[i].replace(" ","");
								var age = age.replace(",","");
								
								if (!IsNumeric(age)){
									return false;
								}
							}		
						}
						else{
							return false;
						}
					}
					return true;
				}
				else
					return false;
			}
			
            function validateChildAgesExtended(dropDown, texbox)
            {
                if(dropDown.id == undefined) dropDown=document.getElementById(dropDown);
                if(texbox.id == undefined) texbox=document.getElementById(texbox);
				
                if (dropDown.options.selectedIndex > 0){
                    var ages = texbox.value.split(",");
					
                    for(var e =0; e<ages.length; e++){
                        if(!checkStringToChildFunction(ages[e]))
                            return false;
					
                        if (ages[e] == "" || ages[e] == " ")
                            ages.splice(i,1);
                    }
					
                    if (dropDown.options.selectedIndex == ages.length){
                        for(var i =0; i<ages.length;i++){
                            var age = ages[i].replace(" ","");
                            var age = age.replace(",","");
							
                            if (!IsNumeric(age)){
                                return false;
                            }
                        }		
                    }
                    else{
                        return false;
                    }
                }
                return true;
            }                                                    

	        function fillNumericalBox(box, start,end)
	        {
                if(box==null)     //Panic!
                    return;
                if ( box.id == undefined)
                    box=document.getElementById(box);
                if(box==null)     //Panic!
                    return;

                           
		        box=clearBox(box);	
                var u=0;
		        for (var index = start; index <= end; index++)
		        {
			        var optionItem = document.createElement("OPTION");							
			        box.options[u] = optionItem;					
			        setInnerText(optionItem, index);
			        optionItem.value = index;
			        u++;
		        }
                box.options[0].selected = true;
	        }


			function checkChildAgeText(obj){
				var text=obj.value;
				parts=text.split(",");
				for(var n=0;n<parts.length ;n++ ){
					parts[n]=Trim(parts[n]);
					if(! IsNumeric(parts[n]) )
						return false;
				}
				return true;
			}
			
			function checkChildAgeTextNorwegian(obj,numberOfChilds){
				var partsLength =0;
                var number=parseInt(numberOfChilds,10);

				var text=obj.value;
				parts=text.split(",");
                
                if (number==0 && text=='')
                    return true;

				for(var n=0;n<parts.length ;n++ ){
					parts[n]=Trim(parts[n]);
					if(! IsNumericNorwegian(parts[n]) )
						return false;
				}
                if (text=='')
                    partsLength=0;
                else
                    partsLength=parts.length;                

				if (partsLength!=number)
    				return false;
	
				return true;
			}

			// Removes leading whitespaces
            function LTrim( value ) {
                var re = /\s*((\S+\s*)*)/;
                return value.replace(re, "$1");
            }

            // Removes ending whitespaces
            function RTrim( value ) {
                var re = /((\s*\S+)*)\s*/;
                return value.replace(re, "$1");
            }

            // Removes leading and ending whitespaces
            function Trim( value ) {
                return LTrim(RTrim(value));
            }
			
			function checkStringToChildFunction(str){
				var number = false;
				var space = false;
				
				for(var i=0;i<str.length;i++){
					if(IsNumeric(str.charAt(i))){
						if(number && space)
							return false;
							
						number = true;
						space = false;
					}
					else
						space = true;
				}
				return true;
			}
			function findValidaterErrorMessage(objName,errorM){
				if (errorM==null)
					errorM=errorMessages;
				for(var i = 0;i<errorM.length;i++){
						var MessageObj = errorM[i].split("|");
						
						if (MessageObj != null && MessageObj[0] == objName){
							return MessageObj[1];
						}
					}
					return "Error have ocurred";
			}

			function validateTextBox(Obj)
			{
				if(Obj != null){
					if(Obj.value.length > 0)
						return true;
				}
				return false;
			}
			function validateDropDownSpecialAllThemes(Obj)
			{
				if (Obj!= null){
					if (Obj.value.length > 0){
						return true;
					}
				}
				return false;
			}
			function validateDropDown(Obj)
			{
				if (Obj!= null){
					if (Obj.value.length > 0 && Obj.value != "0" && Obj.value != "*0" && Obj.value != "0|0"){
						return true;
					}
				}
				return false;
			}
			
			function validateDropDownNoArea(Obj)
			{
				if (Obj!= null){
					if (Obj.value.length > 0 && Obj.value != "0" && Obj.value != "*0" && Obj.value != "0|0" && Obj.value.charAt(0) != "*"){
						return true;
					}
				}
				return false;
			}

			function validateDateTextbox(obj, countrycode)
			{
				try{
					if (countrycode=='no' || countrycode=='fi'){
						tmp1 = obj.value.split(".");
						if(tmp1.length!=3) return false;
						year=tmp1[2];
						month=tmp1[1];
						day=tmp1[0];
						if (! (IsNumeric(year) & IsNumeric(month) & IsNumeric(day)))
							return false;
						if (!(parseInt(month,10)>=1 & parseInt(month,10)<=12))
							return false;
						
						return true;					
					}
					else{
						tmp1 = obj.value.split("-");
						if(tmp1.length!=3) return false;
						year=tmp1[0];
						month=tmp1[1];
						day=tmp1[2];
						if (! (IsNumeric(year) & IsNumeric(month) & IsNumeric(day)))
							return false;
						if (!(parseInt(month,10)>=1 & parseInt(month,10)<=12))
							return false;
						
						return true;
					}
				}
				catch(e){
					return false;
				}
			}
			
			function validateShortDateTextbox(obj, countrycode){
				try{
					if (countrycode=='no'){
						var parts=obj.value.split('.');
						if (parts.length!=3)
							return false;
						year=parts[2];
						month=parts[1];
						day=parts[0];

						date=new Date;
						date.setFullYear(year,month,day);					
						if(date!='NaN')
							return true;					
						else return false;												
					}
					else if (countrycode=='fi'){
						var parts=obj.value.split('.');
						if (parts.length!=3)
							return false;
						year=parts[2];
						month=parts[0];
						day=parts[1];

						date=new Date;
						date.setFullYear(year,month,day);					
						if(date!='NaN')
							return true;					
						else return false;												
					}
					else{
					    var parts=obj.value.split('-');
						if (parts.length!=3)
							return false;
						year=parts[0];
						month=parts[1];
						day=parts[2];

						date=new Date;
						date.setFullYear(year,month,day);					
						if(date!='NaN')
							return true;					
						else return false;
					}
				}
				catch(e){
					return false;
				}
			}
			
			function validateShortDateNew(dateString, countrycode){
				try{
					if (countrycode=='no'){
						var parts=dateString.split('.');
						if (parts.length!=3)
							return false;
						year=parts[2];
						month=parts[1];
						day=parts[0];

						date=new Date;
						date.setFullYear(year,month,day);					
						if(date!='NaN')
							return true;					
						else return false;												
					}
					else if (countrycode=='fi'){
						var parts=dateString.split('.');
						if (parts.length!=3)
							return false;
						year=parts[2];
						month=parts[0];
						day=parts[1];

						date=new Date;
						date.setFullYear(year,month,day);					
						if(date!='NaN')
							return true;					
						else return false;												
					}
					else{
					    var parts=dateString.split('-');
					    if (parts.length!=3)
							return false;
						year=parts[0];
						month=parts[1];
						day=parts[2];

						date=new Date;
						date.setFullYear(year,month,day);					
						if(date!='NaN')
							return true;					
						else return false;
					}
				}
				catch(e){
					return false;
				}
			}
			

			function validateCalendar(fromDay, fromMonth,toDay, toMonth){
				var tmp1;
				var intFromDay = parseInt(fromDay,10);
				tmp1 = fromMonth.split("-");
				
				var intFromMonth = parseInt(tmp1[1],10);
				var intFromYear = parseInt(tmp1[0],10);
				
				var intToDay = parseInt(toDay,10);
				tmp1 = toMonth.split("-");
				
				var intToMonth = parseInt(tmp1[1],10);
				var intToYear = parseInt(tmp1[0],10);
				
				return (validateDate(intFromDay,intFromMonth,intFromYear,intToDay,intToMonth,intToYear));
			}
			function validateIndexDate(fromDay, fromMonth,toDay, toMonth){
				var tmp1;
				var tmp2;
				
				var intFromDay = parseInt(fromDay,10);
				tmp1 = fromMonth.split("|");
				tmp2 = tmp1[1].split("-");
				
				var intFromMonth = parseInt(tmp2[1],10);
				var intFromYear = parseInt(tmp2[0],10);
				
				var intToDay = parseInt(toDay,10);
				tmp1 = toMonth.split("|");
				tmp2 = tmp1[1].split("-");
				
				var intToMonth = parseInt(tmp2[1],10);
				var intToYear = parseInt(tmp2[0],10);
				
				return (validateDate(intFromDay,intFromMonth,intFromYear,intToDay,intToMonth,intToYear));
			}
			function validateDate(fromDay,fromYearAndMonth,toDay,toYearAndMonth){
				var fromYear, fromMonth, toYear, toMonth;
				var tmp;
				
				tmp = fromYearAndMonth.split("-");
				fromYear = parseInt(tmp[1], 10);
				fromMonth = parseInt(tmp[0], 10);
				
				tmp = toYearAndMonth.split("-");
				toYear = parseInt(tmp[1], 10);
				toMonth = parseInt(tmp[0], 10);
				
				return validateDate(fromDay, fromMonth, fromYear, toDay, toMonth, toYear);
			}
			
			function validateDate(fromDay,fromMonth,fromYear, toDay, toMonth, toYear){
				if (toDay < fromDay){
					if(toMonth <= fromMonth)
						if(toYear <= fromYear)
							return false;
				}
				
				if(toMonth < fromMonth){
					if(toYear <= fromYear)
							return false;
				}
				
				if (toYear < fromYear)
					return false;
				
				return true;
			}
			
			function displayLoading(box, text, browserType){
				if(box==null) return;
				box=clearBox(box);
				var optionItem = document.createElement("OPTION");
				
				box.options[0] = optionItem;
				setInnerText(optionItem, text);
			}
			
			// Set the inner text property of an element using different properties
			// depending on the browser capabilities.
			function setInnerText(element, text)
			{
				var hasInnerText = (document.getElementsByTagName("body")[0].innerText != undefined) ? true : false;
				
				if (hasInnerText)
				{
					element.innerText = text;
				}
				else
				{
					element.textContent = text;
				}
			}
			
			function toggleDisplay(obj, status)
			{				
				obj=document.getElementById(obj);
				if(obj!=null)
					obj.style.display=status;
			}
			
			function toggleDisplayByObj(obj, status){				
				if(obj!=null)
					obj.style.display=status;
			}

			function SwapMonth(ctrl1, ctrl2) {
				document.forms[0][ctrl2].selectedIndex = ctrl1.selectedIndex;
			}
			
			

// Flight related
	function PositionElement()
	{
		var suggestionList = document.getElementById("suggestions");
		if( suggestionList != null )
		{
			var yposition=GetTopPosition()+17;
			suggestionList.style.left = GetLeftPosition();
			if (browserType==3) suggestionList.style.top=yposition+25;
			else suggestionList.style.top = yposition;
		}
	}
	
	function GetLeftPosition(nameId)
	{
		var leftPos = 0;
		var currentObj = document.getElementById(nameId);
		
		if( currentObj != null )
		{
			while( currentObj.tagName != "BODY" )
			{
				leftPos += currentObj.offsetLeft;
				currentObj = 
					currentObj.offsetParent;        
			}
		}
		return leftPos;
	}
	
	function GetTopPosition(nameId)
	{
		var topPos = 0;
		var currentObj = document.getElementById(nameId);
		
		if( currentObj != null )
		{
		while( currentObj.tagName != "BODY" )
			{
				topPos += currentObj.offsetTop;
				currentObj = currentObj.offsetParent;        
			}
		}
		return topPos;
	}
	
	function GetRelativePosition(obj, par, param){
		var pos = 0;
		if (obj.id == undefined) obj = document.getElementById(obj);
		if (par.id == undefined) par = document.getElementById(par);
		
		if( obj != null )
		{
			while( obj.id != par.id )
			{
				if(param=='offsetWidth')
					pos += obj.offsetParent.clientWidth-obj[param]-obj.offsetLeft;
				else if(param=='offsetHeight')
					pos += obj.offsetParent.clientHeight-obj[param]-obj.offsetTop;
				else
					pos += obj[param];
					
				obj = 	obj.offsetParent;        
			}
		}
		return pos;
	}
	
	function ToggleVisibility(nameId)
	{
		var suggestionList = document.getElementById(nameId);
		if( suggestionList != null )
		{
			if( suggestionList.style.visibility == 'visible' )
				suggestionList.style.visibility = 'hidden';
			else{
				PositionElement()
				suggestionList.style.visibility = 'visible';
			}
		}
	}
	
	function HideObject(nameId)
	{
		var obj = document.getElementById(nameId);
		if( obj != null )
			obj.style.visibility = 'hidden';
	}
	
	function ShowObject(nameId)
	{
		var obj = document.getElementById(nameId);
		if( obj != null )
			obj.style.visibility = 'visible';
	}	
	
	function popUp(link,width,height,scroll)
	{
		fonster = window.open(link,'Info','width=' + width + ',height=' + height + ',scrollbars=' + scroll);
		if (!fonster.opener) fonster.opener = self; fonster.focus(); 
	}
	
	function popUp2(link,width,height,scroll)
	{
		fonster = window.open(link,'Info2','resizable=1, width=' + width + ',height=' + height + ',scrollbars=' + scroll);
		if (!fonster.opener) fonster.opener = self; fonster.focus(); 
	}	
			
	function toUpper(inputText)
	{
			return inputText.substring(0,1).toUpperCase() + inputText.substring(1,inputText.length);
	}
		
	// This script handles enter keystrokes and redirect them to the right place if neccessary
	function HandleSubmit(e, functionname)
	{
		if (!e) var e = window.event;
		if (e.keyCode) code = e.keyCode;
		else if (e.which) code = e.which;

		if (code == 13) {
			//Interupt the page auto submit behaviour and handle it by our own
			e.cancelBubble = true;
			if (e.stopPropagation) {
		            e.stopPropagation();
		            e.preventDefault();
	            }
	        e.returnValue = false;
			
			if (functionname!=null)
				eval(functionname);
			
			return false;
		}
		return false;
	}
	
	function showBestFlightPriceTab(bestPriceBaseName, currentNr)
	{
		var divObj
		var menuObj
		
		for(var i=1;i<4;i++)
		{
			divObj = document.getElementById(bestPriceBaseName + "_divForm" + i);
			menuObj = document.getElementById(bestPriceBaseName + "_repMenu_ctl0" + i + "_liMenuItem");
			
			if (divObj != null)
			{
				if (currentNr == i)
				{	
					toggleDisplay(bestPriceBaseName + "_divForm" + i,'block');
					menuObj.className = 'current';
				}
				else
				{
					toggleDisplay(bestPriceBaseName + "_divForm" + i,'none');
					menuObj.className = '';
				}
			}

		}
	}
	
	function getChildById(parentObj, childId){
		for(var i in parentObj.childNodes){
			if(i.id==childId) return i;
		}
		return null;	
	}
	
	function getParentById(childObj, parentId){
        var obj=childObj.parentNode;
        while(obj.id != undefined && obj.id!=parentId && obj.parentNode!=null)
            obj=obj.parentNode;

           if (obj.id==parentId)
               return obj;
            else
           		return null;	
	}
	
       // Loops through all childs to try to find a matching id.
	function findChildById(parentObj, childId){
	    for(var n=0;n<parentObj.childNodes.length; n++){
	       var i = parentObj.childNodes[n];
		    if(i.id==childId) return i;
	    }
	return null;	
	}


	function compareDates(obj1,obj2,oneday){
		try{
			var parts1=obj1.value.split('-');
			var parts2=obj2.value.split('-');
			if (parts1.length!=3 || parts2.length!=3)
				return false;

			year=parts1[0];
			month=parts1[1];
			day=parts1[2];
			date1=new Date;
			date1.setFullYear(year,month,day);		
			year=parts2[0];
			month=parts2[1];
			day=parts2[2];
			date2=new Date;
			date2.setFullYear(year,month,day);		

			if(oneday=true){
				if (date1<date2) 
				return false;
			}
			else if (date1<=date2) 
				return false;
			
			return true;
		}
		catch(e){
			return false;
		}
	}
	
	function compareDatesNew(obj1,obj2,oneday,countrycode){
		try{
		    //alert("test1");
			var parts1;
			var parts2;
			if (countrycode=='se' || countrycode=='dk'){
			    //alert("test2");
			    parts1=obj1.value.split('-');
			    parts2=obj2.value.split('-');
			    //alert("test4");
			}else if (countrycode=='no' || countrycode=='fi'){
			    parts1=obj1.value.split('.');
			    parts2=obj2.value.split('.');
			    parts1.reverse();
			    parts2.reverse();
			}
            //alert("test3");
			if (parts1.length!=3 || parts2.length!=3)
				return false;
            
			year=parts1[0];
			month=parts1[1];
			day=parts1[2];
			date1=new Date;
			date1.setFullYear(year,month,day);		
			year=parts2[0];
			month=parts2[1];
			day=parts2[2];
			date2=new Date;
			date2.setFullYear(year,month,day);		
            //alert(date1);
            //alert(date2);
            
			if(oneday=true){
				if (date1<date2) 
				return false;
			}
			else if (date1<=date2) 
				return false;
			
			return true;
		}
		catch(e){
			return false;
		}	
	}
	
	function getDateDiff(obj1,obj2,countrycode){

		if (countrycode=='NO'){
			var parts1=obj1.value.split('.');
			var parts2=obj2.value.split('.');
		}
		else{
			var parts1=obj1.value.split('-');
			var parts2=obj2.value.split('-');
		}
		if (parts1.length!=3 || parts2.length!=3)
			return false;


		if (countrycode=='NO'){
			year=parts1[2];
			month=parts1[1];
			day=parts1[0];
			date1=new Date;
			date1.setFullYear(year,month,day);		
			year=parts2[2];
			month=parts2[1];
			day=parts2[0];
			date2=new Date;
			date2.setFullYear(year,month,day);	
		}
		else{
			year=parts1[0];
			month=parts1[1];
			day=parts1[2];
			date1=new Date;
			date1.setFullYear(year,month,day);		
			year=parts2[0];
			month=parts2[1];
			day=parts2[2];
			date2=new Date;
			date2.setFullYear(year,month,day);					
		}

		return Math.ceil((date2-date1)/(1000*24*60*60));			
	}

	function checkLongstayDates(obj1,obj2){
		var parts1=obj1.split('-');
		var parts2=obj2.split('-');
		if (parts1.length!=3 || parts2.length!=3)
			return false;

		year=parts1[0];
		month=parts1[1];
		day=parts1[2];
		date1=new Date;
		date1.setFullYear(year,month,day);		
		year=parts2[0];
		month=parts2[1];
		day=parts2[2];
		date2=new Date;
		date2.setFullYear(year,month,day);		

		return Math.ceil((date2-date1)/(1000*24*60*60));			
	}

	function autoDateFormat(e,textbox, countrycode){
		if (!e) var e = window.event;
		if (e.keyCode) code = e.keyCode;
		else if (e.which) code = e.which;

		if(code==16 || code==9 || code==8 || (code>=37 && code<=40 ))	//Retabulation-, Tabulation-, backspace- and arrow- scancodes
			return;

		text=textbox.value;

		if(countrycode=='NO'){
			text=text.replace(',','.');
			if(code==46 ){ // "."
				var len=text.length;
				if(len>1){
					if(text.substr(len-2,2)=='..')
						textbox.value=text.substr(0,len-1)
						return;
				}
			}
			parts=text.split('.');
			if(parts.length==1){
				if(parts[0].length==2 && IsNumeric(parts[0]))
					text=parts[0]+'.';
				else return textbox.value;
			}
			else if(parts.length==2){

				if(parts[0].length==2 && parts[1].length==2 && IsNumeric(parts[0]) && IsNumeric(parts[1])){
					text=parts[0]+'.';
					text+=parts[1]+'.';
				}
				else return textbox.value;
			}
			else if(parts.length==3){
				if(parts[0].length==2 && parts[1].length==2 && parts[2].length==4 && IsNumeric(parts[0]) && IsNumeric(parts[1]) && IsNumeric(parts[2])){
					text=parts[0]+'.';
					text+=parts[1]+'.';
					text+=parts[2];
				}
				else return textbox.value;
			}
		}
		else{
			if(code==109 || code==189){ // "-" or "-"
				var len=text.length;
				if(len>1){
					if(text.substr(len-2,2)=='--')
						textbox.value=text.substr(0,len-1)
						return;
				}
			}
			parts=text.split('-');
			if(parts.length==1){
				if(parts[0].length==4 && IsNumeric(parts[0]))
					text=parts[0]+'-';
				else return textbox.value;
			}
			else if(parts.length==2){

				if(parts[0].length==4 && parts[1].length==2 && IsNumeric(parts[0]) && IsNumeric(parts[1])){
					text=parts[0]+'-';
					text+=parts[1]+'-';
				}
				else return textbox.value;
			}
			else if(parts.length==3){
				if(parts[0].length==4 && parts[1].length==2 && parts[2].length==2 && IsNumeric(parts[0]) && IsNumeric(parts[1]) && IsNumeric(parts[2])){
					text=parts[0]+'-';
					text+=parts[1]+'-';
					text+=parts[2];
				}
				else return textbox.value;
			}		
		}
		
		textbox.value=text;		
	}

	// Popup map adjustment
	function AdjustMapTargets(baseName, parent){
		var OverlayObjects = document.getElementsByTagName('Span');
		var parentObj = document.getElementById(parent);
		
		for(var i =0 ; i<OverlayObjects.length; i++){
			tmpObj=OverlayObjects[i];
			if(tmpObj.id.indexOf(baseName) >=0 ){			

				var x = GetLeftPositionByObj(parentObj);
				var y = GetTopPositionByObj(parentObj);

				tmpObj.style.left=parseInt(tmpObj.style.left.replace('px',''))+x;
				tmpObj.style.top=parseInt(tmpObj.style.top.replace('px',''))+y;
			}
		}
		return null;		
	}

	// Translation overlay UI functions

	function positionTranslationOverlayObjects(){
		var TranslationOverlayObjects = document.getElementsByTagName('Div');
		for(var i =0 ;i<TranslationOverlayObjects.length; i++){
			tmpObj=TranslationOverlayObjects[i];
			if(tmpObj.id.indexOf('TranslatorOverlay') >=0 ){			
				var parentObj=tmpObj.parentNode;
				while(parentObj.offsetWidth==0){
					parentObj=parentObj.parentNode;
				}
				var x = GetLeftPositionByObj(parentObj);
				var y = GetTopPositionByObj(parentObj);
				
				// if we are inside a paragraph (<p></p>) we must adjust this manualy
				if(parentObj.innerHTML.toLowerCase().indexOf("p>")>=0) y+=10;
				
				tmpObj.style.left=x-5;
				tmpObj.style.top=y-5;					
				tmpObj.style.width=parentObj.offsetWidth+10;
				tmpObj.style.height=parentObj.offsetHeight+10;

			}
		}
		return null;
	}
	
	
	function GetLeftPositionByObj(obj)
	{
		var leftPos = 0;
		var currentObj = obj;
		
		if( currentObj != null )
		{
			while( currentObj.tagName != "BODY" )
			{
				leftPos += currentObj.offsetLeft;
				currentObj = 
					currentObj.offsetParent;        
			}
		}
		return leftPos;
	}
	
	function GetTopPositionByObj(obj)
	{
		var topPos = 0;
		var currentObj = obj;
		
		if( currentObj != null )
		{
		while( currentObj.tagName != "BODY" )
			{
				topPos += currentObj.offsetTop;
				currentObj = currentObj.offsetParent;        
			}
		}
		return topPos;
	}

	function addBodyOnLoad(fn){
		document.onLoad=addedOnLoad(fn);
	}

	function addedOnLoad(fn)
	{
		var origOL = document.onLoad
		if (origOL)
			eval(origOL)
		fn();
	}
	
	<!--
	var MM_contentVersion = 6;
	var MM_FlashCanPlay;
	var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
	if ( plugin ) {
		var words = navigator.plugins["Shockwave Flash"].description.split(" ");
		for (var i = 0; i < words.length; ++i)
		{
			if (isNaN(parseInt(words[i])))
			continue;
			var MM_PluginVersion = words[i]; 
		}

		MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;

	}

	else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 && (navigator.appVersion.indexOf("Win") != -1)) {
		document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n'); //FS hide this from IE4.5 Mac by splitting the tag
		document.write('on error resume next \n');
		document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\n');
		document.write('</SCR' + 'IPT\> \n');
	}

	//if ( !MM_FlashCanPlay ) {
	//	window.location.replace("main.asp");
	//} 
	//-->
	
	
	// Toggles the display of a flash element and an html-element.
	// flashElementID = The id of the html-element that holds the flash file.
	// htmlElementID = The id of the html-element that holds the html-content.
	// flashDisplayStyle = The display style of the flash element while visible (Block, inline etc).
	// htmlDisplayStyle = The display style of the html element while visible (Block, inline etc).
	function toggleFlash(flashElementID, htmlElementID, flashDisplayStyle, htmlDisplayStyle)
	{
		var objFlash = document.getElementById(flashElementID);
		var objHTML = document.getElementById(htmlElementID);
		if (MM_FlashCanPlay){
			objFlash.style.display = flashDisplayStyle;
			objHTML.style.display = 'none';
		}
		else{
			objFlash.style.display = 'none';
			objHTML.style.display = htmlDisplayStyle;
		}
	}
	
	function createFlashMovie(objectID, width, height, url, wmode)
	{
		var outerDiv = document.getElementById(objectID);
		if (!wmode)
	    {
	        wmode = 'Opaque';	        
	    }
		outerDiv.innerHTML = 
			'<object type="application/x-shockwave-flash" data="' + url + '" width="' + width + '" height="' + height + '" wmode="' + wmode + '">' +
			'<param name="movie" value="' + url + '">' +
			'<param name="allowScriptAccess" value="always">' + 
			'<param name="wmode" value="' + wmode + '">' +
			'</object>'	
	}
	
	var StringUtils =
	{
			IsNullOrEmpty: function(value)
			{
				return (value == null || value.length == 0);			
			}
	}
	

	/*
		NameValueCollection
	*/

	function NameValueCollection()
	{
		this.length = 0;
		this.items = new Array();
	}
	
	NameValueCollection.prototype.clear = function()
	{
		for(key in this.items)
			this.remove(key);
	}
	
	NameValueCollection.prototype.containsKey = function(key)
	{
		return (this.items[key] != null);
	}
	
	NameValueCollection.prototype.get = function(key)
	{
		return this.items[key];
	}
	
	NameValueCollection.prototype.remove = function(key)
	{
		if( this.containsKey(key) == true )
		{
			this.length--;
			delete this.items[key];
		}
	}
	
	NameValueCollection.prototype.set = function(key, value)
	{
		if( this.containsKey(key) == false )
			this.length++;
		this.items[key] = value;
	}
	
	NameValueCollection.prototype.toString = function(format)
	{
		var returnString = "";
		for(key in this.items)
			returnString += (key + "=" + encodeURI(this.items[key]) + "&");
		
		return (returnString.substr(0, returnString.length - 1));
	}
	
	
	
	// Displays the FAQ-popup window with the search word
	// entered in the specified textbox.
	function popupFaq(textBoxID, faqPopupUrl)
	{
		var searchWord = document.getElementById(textBoxID).value;
		popUp(faqPopupUrl + '?SearchWord=' + encodeURI(searchWord), '250px', '470px', false);
		return false;
	}


	function setDate(monthBox ,dayBox ,year ,month ,day)
	{
		_monthBox=document.getElementById(monthBox);

		boxFormat=year + "-" + month;
		// If there is such a month and year then select it in the monthBox
		for(n=0;n<_monthBox.options.length;n++){
			_monthBox.selectedIndex=n;
			if(_monthBox.value.split('|')[1]==boxFormat){
				break;
			}
		}
		numOfDays=_monthBox.value.split('|')[0];
		if(day>numOfDays)
			day=numOfDays;
			
		if (n==0) firstday=true;
		else firstday=false;
		// Now build up the day and smash in the current selected day
		buildDays(dayBox,numOfDays,day,firstday);	
	}