// Denne fil indeholder js funktioner
// som er nødvendig iforb. med huskeliste funkionalitet. 


/***************************************************************
Tilføjer eller fjerner et hus fra huskeliste
cookie afhængig af checkbox status.
-------------------------
obj: Checkboxen som angiver om der er tale om add eller remove.
houseid: Det aktuelle regnr. 
season: Den aktuelle sæson.
****************************************************************/
var path="/";

function addToFavorites(obj,houseid,season, checkedText, uncheckedText, language, divname) 
{
    if(obj.checked) 
    {
        addHouseElement(houseid,season,'HLCOOKIE',365);    
    } 
    else 
    {
        removeHouseElement(houseid,'HLCOOKIE',365);
    }
    
    updateHouselist(language, divname); 
 
	var count = countHLElements();
	setHLChkBoxText(obj, count, language);
}

function addToCompare(obj,houseid,season, startdate, enddate, price) {
    if(obj.checked) {
        addHouseElement(houseid,season+'*'+startdate+'*'+enddate+'*'+price,'SLCOOKIE');    
    } else {
        removeHouseElement(houseid,'SLCOOKIE');
    }       
}
var maxhistory = 5;
function addToHistory(houseid,season, startdate, enddate, ts) {
	addHouseElement(houseid,season+'*'+startdate+'*'+enddate+'*'+ts,'HHCOOKIE',30);
}
function addToHistory2(houseid,season, startdate, enddate, ts) {
	var objCOOKIE = getcookie('HHCOOKIE');
	if(objCOOKIE.length>0) {	    
        var elements = objCOOKIE.split('#');     
        if( (elements.length-maxhistory)>0) {
	        for(var i=(elements.length-maxhistory);i<elements.length;i++) {
	            var element = elements[i].split('*');          
	            addHouseElement(element[0],element[1]+'*'+element[2]+'*'+element[3]+'*'+element[4],cookiename); 
	        }  
        }
    }
	addHouseElement(houseid,season+'*'+startdate+'*'+enddate+'*'+ts,'HHCOOKIE',30);
}
/***************************************************************
Tilføjer et hus til huskeliste cookie, hvis det 
ikke allerede findes.
-------------------------
houseid: Det aktuelle regnr. 
season: Den aktuelle sæson.
****************************************************************/
function addHouseElement(houseid,season,cookiename,duration) {
   	if(!cookiename) cookiename = "HLCOOKIE";
   	var objCOOKIE = getcookie(cookiename);
    if(objCOOKIE.length>0) {	    
        var elements = objCOOKIE.split('#');     
        var elementexists = false;     
        for(var i=0;i<elements.length;i++) {
            var element = elements[i].split('*');          
            if(element[0] == houseid && element[1] == season) elementexists = true;          
        }
        if(!elementexists) 
        {
        	if(duration) setcookie(cookiename,objCOOKIE +'#'+ houseid +'*'+ season,duration);
        	else setcookie(cookiename,objCOOKIE +'#'+ houseid +'*'+ season);
    	}     
    } else {
        if(duration) setcookie(cookiename,houseid +'*'+ season,duration);
        else setcookie(cookiename,houseid +'*'+ season);   
    }            
}

/***************************************************************
Fjerner et hus fra huskeliste cookie.
-------------------------
houseid: Det aktuelle regnr.
****************************************************************/
function removeHouseElement(houseid,cookiename,duration) {
	if(!cookiename) cookiename = 'HLCOOKIE';
	var objCOOKIE = getcookie(cookiename);
    setcookie(cookiename,'',-1);
    var elements = objCOOKIE.split('#');
    for(var i=0;i<elements.length;i++) {
        var element = elements[i].split('*'); 
        if(element[0] != houseid) {
	        if(duration) addHouseElement(element[0],element[1],cookiename,duration);
        	else {
	        	if(element[2]&&element[3]&&element[4])
		        	addHouseElement(element[0],element[1]+'*'+element[2]+'*'+element[3]+'*'+element[4],cookiename); 	        		
	        	else
		        	addHouseElement(element[0],element[1],cookiename); 
        	}         
        }
    }
}
function removeCompareElement(obj,houseid,season) {
	addToCompare(obj,houseid,season);document.forms[0].submit();
}
function removeHouseFromList(houseid) {	
	removeHouseElement(houseid);
	document.forms[0].submit();
}

/***************************************************************
Udskriver Husliste element.
-------------------------
text: Teksten der skal udskrives.
id: Elementet der skal skrivet til.
****************************************************************/
function writeHouselistElements(text, id) {
	writeit(text,id);
}
function writeit(text,id)
{
    var x;
    if (document.getElementById)
    {            
        x = document.getElementById(id);
        if(x) {
        x.innerHTML = '';
        x.innerHTML = text;
    	}
    }
    else if (document.all)
    {            
        x = document.all[id];
        if(x) x.innerHTML = text;
    }
    else if (document.layers)
    {            
        x = document.layers[id];
        text2 = '<P>' + text + '</P>';
        if(x) {
	        x.document.open();
        	x.document.write(text2);
        	x.document.close();
    	}
    }
}

/***************************************************************
Enabler checkbox hvis det aktuelle hus findes 
i huskeliste cookie.
-------------------------
****************************************************************/
function setHLChkBox(language)
{
    var HLCOOKIE = getcookie('HLCOOKIE');
    var elements = HLCOOKIE.split('#');
    var count = countHLElements();
    var chkbox = null;
    for(var i=0;i<elements.length;i++) 
    {
        var element = elements[i].split('*');
        chkbox = document.getElementById('HL'+element[0]);
        if(chkbox)
        { 
        	chkbox.checked = true;
    	}	       
	}
	if(language) setHLChkBoxText(chkbox, count, language);
}//setHLChkBox


function setHLChkBoxText(chkbox, count, language)
{
	var sResult = "";
	if(chkbox != null && chkbox.checked == true)
	{
		if(language == "DK") sResult = "Fjern huset fra huskeliste";
		if(language == "DE") sResult = "Haus aus der Merkliste entfernen";
		if(language == "SE") sResult = "Ta bort från minneslista";
		if(language == "NO") sResult = "Ta bort fra huskelapp";
		if(language == "UK") sResult = "Remove from personal list";
		if(language == "NL") sResult = "Verwijder dit huis van je lijst";
	}
	else
	{
		if(count == 0)
		{
			if(language == "DK") sResult = "Føj dette hus til jeres huskeliste. Tilføj flere huse og sammenlign dem med hinanden.";
			if(language == "DE") sResult = "Setzen Sie dieses Haus auf Ihre Merkliste, um es später mit anderen Objekten vergleichen zu können.";
			if(language == "SE") sResult = "Lägg till denna stuga till er minneslista. Lägg till flera stugor och jämför dem med varandra.";
			if(language == "NO") sResult = "Føy til dette huset på huskelappen. Føy til flere hus og sammenlign dem med hverandre.";
			if(language == "UK") sResult = "Add this house to your personal list. Supplement with more houses and compare them to each other.";
			if(language == "NL") sResult = "Voeg dit huis toe aan je vakantielijst. Voeg meerdere vakantiehuizen toe en vergelijk deze met elkaar.";
		}
		else if(count == 1)
		{
			if(language == "DK") sResult = "Føj dette hus til jeres huskeliste og sammenlign med det andet hus.";
			if(language == "DE") sResult = "Setzen Sie dieses Haus auf Ihre Merkliste und vergleichen Sie es mit dem bereits ausgewählten Objekt.";
			if(language == "SE") sResult = "Lägg till denna stuga till er minneslista och jämför det med den andra stugan.";
			if(language == "NO") sResult = "Føy til dette huset på huskelappen og sammenlign med det andre huset.";
			if(language == "UK") sResult = "Add this house to your personal list and compare it to the other house.";
			if(language == "NL") sResult = "Voeg dit huis toe aan je vakantielijst en vergelijk met het andere vakantiehuis.";
		}
		else
		{
			if(language == "DK") sResult = "Føj dette hus til jeres huskeliste og sammenlign med de andre huse.";
			if(language == "DE") sResult = "Setzen Sie dieses Haus auf Ihre Merkliste und vergleichen Sie es mit den bereits ausgewählten Objekten.";
			if(language == "SE") sResult = "Lägg till denna stuga till er minneslista och jämför dem med de andra stugorna.";
			if(language == "NO") sResult = "Føy til dette huset på huskelappen og sammenlign med de andre husene.";
			if(language == "UK") sResult = "Add this house to your personal list and compare it to the other houses.";
			if(language == "NL") sResult = "Voeg dit huis toe aan je vakantielijst en vergelijk met de andere vakantiehuizen.";			
		}
	}
	
	if(getDocumentElement("chkText") != null){ writeit(sResult,"chkText"); }
}


/***************************************************************
Returnerer antallet af elementer i huskeliste cookien
****************************************************************/
function countHLElements()
{
	var count = 0;
    var HLCOOKIE = getcookie('HLCOOKIE');
    var elements = HLCOOKIE.split('#'); 
	if(elements[0].length > 0)
	{
		count = elements.length;
	}
    
    return count; 
}


/***************************************************************
Returnerer dagsdato + antallet af dage i nodays.
-------------------------
nodays: Antal dage.
****************************************************************/
function getexpirydate(nodays) {
    var UTCstring;
    Today = new Date();
    nomilli=Date.parse(Today);
    Today.setTime(nomilli+nodays*24*60*60*1000);
    UTCstring = Today.toUTCString();
    return UTCstring;
}
/***************************************************************
Opretter en cookie
-------------------------
name: cookiens navn
value: cookiens værdi
duration: udløbstid.
****************************************************************/
function setcookie(name,value,duration) {
	cookiestring=name+"="+escape(value)+";PATH="+escape(path)+";DOMAIN="+getDN();
    if(duration) cookiestring += ";EXPIRES="+getexpirydate(duration);    
    document.cookie=cookiestring;
    if(!getcookie(name)) return false;
    else return true;
}
/***************************************************************
Aflæser den ønskede cookie.
-------------------------
cookiename: cookiens navn.
****************************************************************/
function getcookie(cookiename) {
    var cookiestring=""+document.cookie;
    var index1=cookiestring.indexOf(cookiename);
    if (index1==-1 || cookiename=="") return ""; 
    var index2=cookiestring.indexOf(';',index1);
    if (index2==-1) index2=cookiestring.length; 
    return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}
function getDN()//Get Domain Name
{
	var domain = null;
	var  _dn=document.domain;
	if(_dn.indexOf(".sonneundstrand.de")!=-1)
	{
		domain="sonneundstrand.de";
	}	
	else if(_dn.indexOf(".sologstrand.dk")!=-1)
	{
		domain="sologstrand.dk";
	}	
	else if(_dn.indexOf(".sologstrand.se")!=-1)
	{
		domain="sologstrand.se";
	}
	else if(_dn.indexOf(".sologstrand.no")!=-1)
	{
		domain="sologstrand.no";
	}
	else if(_dn.indexOf(".sologstrand.com")!=-1)
	{
		domain="sologstrand.com";
	}	
	else if(_dn.indexOf(".sologstrand.nl")!=-1)
	{
		domain="sologstrand.nl";
	}
	else
	{
		domain = _dn;
	}	
	
	return domain;
}
/***************************************************************
Opdaterer Husliste element.
-------------------------

****************************************************************/
function updateHouselist(language, divname) {
    var HLCOOKIE = getcookie('HLCOOKIE');
    var elements = HLCOOKIE.split('#');
    var outputline = '';
    var count = 0;
    for(var i=0;i<elements.length;i++) {
        var element = elements[i].split('*');
        if(element[0].length>0) count++;
        var chkbox = document.getElementById('HL'+element[0]);
        if(chkbox) chkbox.checked = true;       
    }
    if(document.getElementById(divname))
    {
	    if(count==0)
	    {
		    if(language == "DK")
		    {writeit('Der er ingen huse p&aring; din liste', divname);}
			else if(language == "DE")
			{writeit('Sie haben keine H&auml;user auf Ihrer Liste.', divname);}
			else if(language == "SE")
			{writeit('Du har inga hus p&aring; din lista', divname);}
			else if(language == "NO")
			{writeit('Du har ikke noen hus p&aring; lappen din', divname);}
			else if(language == "UK")
			{writeit('You have no holiday homes on your list', divname);}
		    else if(language == "NL")
			{writeit('Je hebt geen huizen op jouw lijst', divname);}
			
	    	//writeit('Der er ingen huse p&aring; din liste', 'husliste');
	    	
    	}
    	else if(count==1)
    	{
	    	if(language == "DK")
		    {writeit('Du har '+ count +' hus p&aring; listen', divname);}
			else if(language == "DE")
			{writeit('Sie haben '+ count +' Haus auf Ihrer Liste.', divname);}
			else if(language == "SE")
			{writeit('Du har '+ count +' hus p&aring; listen', divname);}
			else if(language == "NO")
			{writeit('Du har '+ count +' hus p&aring; lappen', divname);}
			else if(language == "UK")
			{writeit('You have '+ count +' holiday home on your list', divname);}
		    else if(language == "NL")
			{writeit('Je hebt '+ count +' huis op je lijst', divname);}
	    	//writeit('Du har '+ count +' hus p&aring; listen','husliste');
    	}
    	else
    	{
	    	if(language == "DK")
		    {writeit('Du har '+ count +' huse p&aring; listen', divname);}
			else if(language == "DE")
			{writeit('Sie haben '+ count +' H&auml;user auf Ihrer Liste.', divname);}
			else if(language == "SE")
			{writeit('Du har '+ count +' huse p&aring; listen', divname);}
			else if(language == "NO")
			{writeit('Du har '+ count +' hus p&aring; lappen', divname);}
			else if(language == "UK")
			{writeit('You have '+ count +' holiday homes on your list', divname);}
		    else if(language == "NL")
			{writeit('Je hebt '+ count +' huizen op je lijst', divname);}
	    	//writeit('Du har '+ count +' huse p&aring; listen','husliste');  	
    	}                                          
	}
	// 20080814 Update header
	if(getDocumentElement("favnumber")) writeit(count, "favnumber");
	if(getDocumentElement("favnumberbox")) writeit(count, "favnumberbox");   
}
/***************************************************************
Fanger et objekt og returnerer det 
-------------------------
id: Elementet der skal returneres.
****************************************************************/
function getDocumentElement(id)
{
 var x = null; 
    if (document.getElementById)
    {
        // Netscape 6, Explorer 5
        x = document.getElementById(id);
    }
    else if (document.all)
    {
        // IE4 DOM
        x = document.all[id];
    }
    return x;
}

function getCompared() {
	var liste = "";
	var elements = getcookie('SLCOOKIE').split('#');
	for(var i=0;i<elements.length;i++) {		
        var element = elements[i].split('*');          
        if(element[0]) { liste += element[0];
        if(i+1<elements.length) liste += ":";}          
    }
    return liste;
}
