var xmlHttp;
//If, the activexobject is available, we must be using IE.
if (window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
//Else, we can use the native Javascript handler.
xmlHttp = new XMLHttpRequest();
}


// datumseingabe überprüfen  
function dattest(t){
 datum=true;  
 var r=true;  
 var text=t.value;  
 var pattern=/[A-Za-z]/;              //Nach Buchstaben suchen  
 var r2=text.match(pattern);  
 if(r2!=null)r=false;                  //Falls gefunden -> Fehler!  

 pattern=/\./;                      //Nach Punkt in Array auftrennen  
 var da=text.split(pattern);  
  
 var tag=da[0];  
 var monat=da[1];  
 var jahr=da[2];  
 if(tag.length<2)r=false;
 if(tag.length>2)r=false;
 if(typeof monat != 'undefined')
 	{if(monat.length<2)r=false};
 if(tag<00 || tag>31)r=false;  
 if(monat<00 || monat>12)r=false;  
 if(tag==31 && (monat==2 || monat==4 || monat==6 || monat==9 || monat==11))r=false;
 if(tag==30 && monat==2)r=false;
 if(tag==29 && monat==2 && (jahr % 4 !=0))r=false;
 if(jahr<1900)r=false; 
 if(r==false)  
 {  
 
 alert('Bitte geben Sie das Datum in der Form "tt.mm.jjjj" an.');  
 return false;
 }else{
 return true;
 }  
}



// called to read a file from the server
function process(serverPage, objID)
{

var obj = document.getElementById(objID);

// only continue if xmlHttp isn't void
if (xmlHttp)
{
// try to connect to the server
try
{

// initiate reading the a file from the server
xmlHttp.open("GET", serverPage, true);

xmlHttp.onreadystatechange = function handleRequestStateChange()	{
								// continue if the process is completed
								if (xmlHttp.readyState == 4)	{
								// continue only if HTTP status is "OK"
									if (xmlHttp.status == 200)	{
														try	{
															
															//document.write(obj.innerHTML)
															// retrieve the response
															response = xmlHttp.responseText;
																					
															obj.innerHTML = response;
														}
														catch(e)	{
															// display error message
															alert("Error reading the response: "+ e.toString());
														
														} /* E N D: catch */
										
										} /* E N D: xmlHttp.status == 200 */

									else	{
											// display status message
											alert("There was a problem retrieving the data:\n" + xmlHttp.statusText);	
									} /* E N D: else xmlHttp.status == 200 */

								} /* E N D: xmlHttp.readyState == 4 */

						}; /* E N D: function handleRequestStateChange */

					xmlHttp.send(null);
			}

			// display the error in case of failure
			catch (e)	{
					alert("Can't connect to server:\n" + e.toString());
			}
		} /* E N D: if(xmlHttp) */

	} /*  E N D: function process  */

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	
	if ( node == null );
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function hide_prices()	{

		var classElements = getElementsByClass('profibereich',null,null).each(function(s, index) 
			{ 
				s.style.display="none";
				 
			});

}
function show_prices()	{

		var classElements = getElementsByClass('profibereich',null,null).each(function(s, index) 
			{ 
				if(s.nodeName == "SPAN")
					s.style.display="inline";
				if(s.nodeName == "DIV")	
					s.style.display="block";
				 
			});

}
function dologout()	{

	//process('/web/skripte/template/profibereich.cfm?action=logout', 'profi');
	
	var buchen = $("buchen");
	var rechrcheblock = $("rechrcheblock");


	if(buchen !== null && buchen !== undefined && buchen.className.indexOf("Selected") > 0)	{
		window.location.reload()
		}

	if(rechrcheblock !== null && rechrcheblock !== undefined)	{
		changeSearchTab("hotels")
		}

	var ajaxurl = "/web/skripte/template/profibereich.cfm/action/logout"

	new Ajax.Request(ajaxurl, {    
		onSuccess: function(transport) {
		response = transport.responseText;

		$('profi').update(transport.responseText);
		hide_prices();
		//history.go(0);
		}		 
	}); 

	var date = new Date();
	var curDate = null;
	do { curDate = new Date(); } 
	while(curDate-date < 100);

	updateMenu();

	}


function dologin()	{

	var loginname = document.getElementById('loginname').value;
	var pwd = document.getElementById('pwd').value;
	var RememberMe = document.profi.RememberMe.checked;
	var ajaxurl = "/web/skripte/template/profibereich.cfm?action=login&loginname="+loginname+"&pwd="+pwd+"&RememberMe="+RememberMe

	var rechrcheblock = $("rechrcheblock");
	if(rechrcheblock !== null && rechrcheblock !== undefined)	{
		changeSearchTab("hotels")
		}


	new Ajax.Request(ajaxurl, {   
		onSuccess: function(transport) {
		response = transport.responseText;
		$('profi').update(transport.responseText);
		
		
 		/* <!--- LOF == logout form ---> */
		if($('LOF_IsUserLoggedIn').value == 1)	{
			show_prices();
			//history.go(0);
			//changeSearchTab('hotels');
			}
		}		 

	}); 
	var date = new Date();
	var curDate = null;
	do { curDate = new Date(); } 
	while(curDate-date < 100);

	updateMenu()
}
	
function change_langeuge(language_id)	{
	
	languages = new Array("de", "en"); 
    var new_query_string="";   
	var reload_location = "";
	var _location = window.location.toString();

	if(document.getElementById(language_id).className == "fahne_"+language_id+"_a")
			return
		else	{
	
		for (var i = 0; i < languages.length; i++) {

			// Change language
			if( languages[i] != language_id && _location.indexOf("language/"+languages[i]) == -1)	
				_location = _location+"/language/"+language_id
			else if( languages[i] != language_id && _location.indexOf("language/"+languages[i]) > 0)	
				_location = _location.replace("/language/"+ languages[i], "/language/"+language_id);

			// Change Image
			if(languages[i] == language_id)	
				document.getElementById(languages[i]).className="fahne_"+languages[i]+"_a";
			else
				document.getElementById(languages[i]).className="fahne_"+languages[i];


		} /* End: For loop */
		
	}/*End: else*/
window.location.assign(_location)

	//window.location.href= _location;
 }/*End: function change_language*/	
 
 
 function changeSearchTab(id)	{

	   	tabIdsArray = new Array("hotels", "zusatzleistungen");
		// Sets the default template path
		if(id == "hotels")	{
			var templateurl = "/web/skripte/template/hotelRecherche.cfm";
			document.getElementById('searchbox_idtype').value	=   "6";
		}	
		else if(id == "zusatzleistungen")	{
			if($('LOF_IsUserLoggedIn').value == "1")
				var templateurl = "/web/skripte/template/profiZlRecherche.cfm";
			else
				var templateurl = "/web/skripte/template/zlRecherche.cfm";	
	
			document.getElementById('searchbox_idtype').value	=   "1";
		}

		// Return if selected tab again clicked is
		var className = document.getElementById(id).className
		if(className.indexOf("Selected") > -1)
			return;

			for (var i = 0; i < tabIdsArray.length; i++) {
				
				if(tabIdsArray[i]==id)	{
					var el = $(tabIdsArray[i]);
					el.className = el.className+"Selected";
				
					new Ajax.Request(templateurl, 
						{   onSuccess: function(transport) 
										{       
									document.getElementById('rechrcheblock').innerHTML = transport.responseText;
									
											if(id == "hotels")	{
												initHotelsAutocompleter()
											}	
											else if(id == "zusatzleistungen")	{
												initZLAutocompleter()
											}
								} ,
								onComplete: function(transport)	
								{
									if(id == "hotels")	
									{
										document.getElementById('field_idobject').value	=   document.getElementById('field_hotels_idobject').value;
										document.getElementById('field_idtype').value	=  document.getElementById('field_hotels_idtype').value;
										//document.getElementById('search_field').value	=  document.getElementById('search_field_hotels').value;
									}
									else	
									{
										document.getElementById('field_idobject').value	=   document.getElementById('field_zl_idobject').value;
										document.getElementById('field_idtype').value	=  document.getElementById('field_zl_idtype').value;
										//document.getElementById('search_field').value	=  document.getElementById('search_field_zl').value;
									}
								}
						}); 
			}
			else	{
				var el = $(tabIdsArray[i]);
				var idx = el.className.indexOf("Selected");
				if(idx != -1)
					el.className = el.className.substr(0,idx);
			} /* END: else */
		} /* END: if(tabIdsArray */


	}
			
	function getUebersicht(remote_url)	{
	
	//var templateurl = "/web/skripte/template/uebersicht.cfm?indexSeite="+seite
	//process(templateurl, 'leftColumn');
	new Ajax.Request(remote_url, 
		{   onSuccess: function(transport) 
						{       
							document.getElementById('leftColumn').innerHTML = transport.responseText;
						} ,
			onFailure: function(transport)	{  alert('Internal system error')   },

			onCreate : function(transport)	{	 allNodes = $$("div.uebersicht_suche");
																	 for(i = 0; i < allNodes.length; i++) {
															         allNodes[i].setStyle({	visibility: 'visible'  });
       															} 
															 },

			onComplete:function(transport)	{  allNodes = $$("div.uebersicht_suche");
															       for(i = 0; i < allNodes.length; i++) {
															         allNodes[i].setStyle({	visibility: 'hidden'  });
       															} 
														   }

			}); 

		//uebersicht_height();	
	}			


	function checkKey(e)	{
		var characterCode 
		if(e && e.which){ 
		e = e
		characterCode = e.which 
		}
		else{
		e = event
		characterCode = e.keyCode 
		}

		if(characterCode == 13){ 
			dologin() 
		}
	}


//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["buchframe"]

//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="no"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 18 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers

function resizeCaller() {
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++){
if (document.getElementById)
resizeIframe(iframeids[i])
//reveal iframe for lower end browsers? (see var above):
if ((document.all || document.getElementById) && iframehide=="no"){
var tempobj=document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}

function resizeIframe(frameid){

var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
currentfr.style.display="block"
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight+30; 
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight+150;
if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe) // Bug fix line
currentfr.attachEvent("onload", readjustIframe)
}
}
}

function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
if (iframeroot)
resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url){
if (document.getElementById)
document.getElementById(iframeid).src=url
}

function updateMenu()
{
		var d = new Date();
		d.toUTCString();
	
	new Ajax.Request("/web/skripte/seiten/dsp_navi.cfm/tok/"+d.toUTCString(), {   
		onSuccess: function(transport) {
		response = transport.responseText;
		document.getElementById("navi_top").innerHTML = transport.responseText;
		}		 
	}); 

}

/*
 * 3869 :: Wird ein Anreisemonat in der Recherche ausgewählt soll dieser Monat für den Abreisemonat übernommen werden. 
 */
function updateAbreisemonat(prefix)
{
	var doc = document;
	var sourceObj = doc.getElementById(prefix+'anreisemonat');
	var sourceSelIndex = sourceObj.selectedIndex;

var anreiseObj = doc.getElementById(prefix+'anreisetag');
var abreiseObj = doc.getElementById(prefix+'abreisetag');
	
	if(anreiseObj.options.selectedIndex > abreiseObj.options.selectedIndex)
		doc.getElementById(prefix+'abreisemonat').options.selectedIndex = sourceSelIndex+1;
	else
		doc.getElementById(prefix+'abreisemonat').options.selectedIndex = sourceSelIndex;

}
function updateAbreisetag(prefix)
{
	var doc = document;
	var sourceObj = document.getElementById(prefix+'anreisetag');
	var sourceSelIndex = sourceObj.selectedIndex;
	if(doc.getElementById(prefix+'abreisetag').options.length == sourceSelIndex+1)
		doc.getElementById(prefix+'abreisetag').options.selectedIndex = 1;
	else
		doc.getElementById(prefix+'abreisetag').options.selectedIndex = sourceSelIndex+1;
	
}
