/** 
	* Basisfunktionen für Cookies
	* 
	*
	* @package		JS Frontend
	* @copyright	Kurzurlaub.de
	* @author			Kurzurlaub.de
*/

		/*
			Test ob Cookies erlaubt sind
			@return		boolean		Cookies erlaubt (ja/nein)
		*/
		function checkCookieEnabled() {				
			if (navigator.cookieEnabled == true) { return true;	} 
			else if (navigator.cookieEnabled == false) { return false; } 
			return false;
		}
				
		/*
			Test ob Cookies erlaubt sind
			@return		boolean		Cookies erlaubt (ja/nein)
		*/
		/*
		function checkCookieEnabled() {				
			if (navigator.cookieEnabled == true) { return true;	} 
			else if (navigator.cookieEnabled == false) { return false; } 
			return false;
		}
		*/
		
		/*
			Cookie schreiben
			@param		string			Name des Cookies
			@param		string			Wert des Cookies
			@param		string			Ablauf des Cookies in Tagen (Default 7 Tage)
		*/	
		function writeCookie(cName, cValue, cDaysExpires) {
			cDaysExpires = parseInt(cDaysExpires);
			if(!cDaysExpires) cDaysExpires = 7;
			// Ablaufdatum in Millisekunden
			var cDate = new Date();
			cDate.setTime(cDate.getTime()+(cDaysExpires*24*3600*1000));
			var cExpires = "; expires="+cDate.toGMTString();
			document.cookie = cName+"="+cValue+cExpires+";";
			// alert("writeCookie document.cookie: "+document.cookie);
		}
		/*
			Cookie lesen
			@param		string			Name des Cookies
			@return		string			Wert des Cookies
		*/	
		function readCookie(cName) {
			// alert(document.cookie);
			var nameEQ = cName + "=";
			var ca = document.cookie.split(';');
			for(var i=0;i < ca.length;i++) {
				var c = ca[i];
				while (c.charAt(0)==' ') c = c.substring(1,c.length);
				if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
			}
			return null;
		}
		/*
			Lister gemerkter Angebote als Cookie (Name idsn) schreiben (Liste der IDs + Doppelpunkt)
			@param		array				Liste gemerkter Angebote
			@return		boolean			Erfolgreich?
		*/
		function writeListNotice(listNotice) {
			
				if(!is_array(listNotice)) { return false; }
				// for(var i=0; i < listNotice.length; i++) { alert("idx "+i+": "+listNotice[i]); }
				var cValue = listNotice.join(":"); 
				var cValue = escape(cValue); 				
				// alert("write listNotice ("+listNotice.length+"): "+listNotice+" -> "+cValue);
				var daysExpires = 30; // 30 Tage gültig
				writeCookie("idsn", cValue, daysExpires);						
				return true;
		}
		/*
			Liste gemerkter Angebote als Cookie (Name idsn) lesen
			@return		array				Liste gemerkter Angebote
		*/
		function readListNotice() {
			
				var cValue = readCookie("idsn");
				if(cValue && cValue.length > 0) {
					// Decode '%3A' -> ':'
					if(cValue.indexOf(escape(':'))) { cValue = unescape(cValue); }
					// alert("cValue after unescape: "+cValue);
					var listNotice = cValue.split(":"); 
					// for(var i=0; i < listNotice.length; i++) { alert("idx "+i+": "+listNotice[i]); }
					return listNotice;
				} 
				// alert("readCookie: idsn failed");	
				return null;				
		}
		
		/*
			Angebot zur Liste gemerkter Angebote hinzufügen
			@param		int					AngebotsID
			@return		array				Lister gemerkter Angebote
		*/
		function addToListNotice(angebotID) {
			
				angebotID = parseInt(angebotID);
				
				var dlgTitel = getDialogTitel('merkliste');
				var dlgURL = '<br/><br/>'+getDialogURL('merkliste');
								
				if(!angebotID) {
					brDialog.showDialog(dlgTitel,getDialogText('merkliste_error_id'));
					return; // Kein "return false;" da sonnst Link defekt
				}
				if(!checkCookieEnabled()) {
					brDialog.showDialog(dlgTitel,getDialogText('merkliste_error_cookies'));
					return;
				}	
				// Liste lesen über Cookie oder neu anlegen falls nicht vorhanden			
				var listNotice = readListNotice();
				if(listNotice!=null) {
					// alert("listNotice vorhanden length: "+listNotice.length);
				} else {
					listNotice = new Array(0);
					// alert("listNotice angelegt length: "+listNotice.length);					
				}
				if(in_array(angebotID, listNotice)) {
					dlgURL = dlgURL.replace('{NUM_ANGEBOTE}',' mit '+listNotice.length+' Arrangements'); 
					brDialog.showDialog(dlgTitel,getDialogText('merkliste_angebot_enthalten')+dlgURL);
					return;
				}
				listNotice[listNotice.length] = angebotID;
				// for(var i=0; i < listNotice.length; i++) { alert("idx "+i+": "+listNotice[i]); }
				
				// Liste schreiben über Cookie 
				var wRes = writeListNotice(listNotice);
				dlgURL = dlgURL.replace('{NUM_ANGEBOTE}',' mit '+listNotice.length+' Arrangements'); 
				if(wRes) brDialog.showDialog(dlgTitel,getDialogText('merkliste_angebot_gemerkt')+dlgURL);
				else brDialog.showDialog(dlgTitel,getDialogText('merkliste_error_default'));
					
				// Update der Texte & Links
				updateListVisited(angebotID);	
		}
		
		/*
			Angebot zur Liste gemerkter Angebote hinzufügen
			@param		int					AngebotsID
			@return		array				Lister gemerkter Angebote
		*/
		function updateListVisited(angebotID) {
			
				if(!angebotID) return;
				
				var textVisited = getDialogText('merkliste_angebot_enthalten_kurz');
				var textVisitedL = getDialogText('merkliste_angebot_enthalten_liste');
				// var dlgURL = '<br/><br/>'+getDialogURL('merkliste');

				try {
					var itemListVisited = document.getElementById('cbv_'+angebotID);
					if(itemListVisited) {
						itemListVisited.alt = textVisited;
						itemListVisited.title = textVisited;
						itemListVisited.src = itemListVisited.src.replace('off','on');
					}
				} catch(e){}
				try {
					var itemListVisitedEdit = document.getElementById('cbvl_'+angebotID);
					if(itemListVisitedEdit) {
						itemListVisitedEdit.alt = textVisitedL;
						itemListVisitedEdit.title = textVisitedL;
						itemListVisitedEdit.src = itemListVisitedEdit.src.replace('off','on');
					}
				} catch(e){}					
				
				try{
					var itemLinkMerken = document.getElementById('link_merken_'+angebotID);
					if(itemLinkMerken) {
						itemLinkMerken.innerHTML = getDialogText('merkliste_angebot_enthalten_linktext');
					}
				} catch(e){}
							
		}