//Ajax call functions
function showFlashMapsDiv(cityId, divName, compareIdObj, type) {
	var urlStart;
	var crtAddress = '';
	Show('loading');
	if(compareIdObj != ''){
		if(compareIdObj.value != cityId){
			//set idHolderValue
			compareIdObj.value = cityId;
			//prevent dispatch fault:
			crtAddress += document.location;
			//alert(crtAddress);
			//pos = crtAddress.indexOf("fr");

			if(crtAddress.indexOf('/fr')>0 || crtAddress.indexOf('/en')>0 || crtAddress.indexOf('/de')>0 || crtAddress.indexOf('/es')>0 || crtAddress.indexOf('/it')>0 || crtAddress.indexOf('/nl')>0)
				urlStart = '';
			else
				urlStart = '/en/';
			
			
			var url=''
			if (type=="Region")
				url = urlStart+divName+'.html?regionId='+cityId + '&type=' + type;
			else
				url = urlStart+divName+'.html?cityId='+cityId + '&type=City';
			document.getElementById('log').value+="\n"+url;
			var params = '';
			var myAjax = new Ajax.Request( url, {method: 'post', parameters: params, onComplete: showResponseFlashMaps} );
		}
	}
	
}

function showResponseFlashMaps(originalRequest) {
	//document.getElementById('log').value+="\n"+originalRequest.responseText;
	//put returned XML in the textarea
	var element = document.getElementById('hotelsListFlashMaps');
	
	$(element).innerHTML = originalRequest.responseText;
	Hide('loading');
}

//when called, shows or hides HTML element
function toggleDisplay(cityId, id){
	//document.home_search.toshow.value=id;
	if(document.flashMapsForm.cityIdHolder.value != cityId){
		showFlashMapsDiv(cityId, 'hotelsListFlashMaps');
	}else{
		var zoneStyle=document.getElementById(id).style;
		if (zoneStyle.display=="block")
			zoneStyle.display="none";
		else 
			zoneStyle.display="block";
	}
}

//********************************************************************************************************************************************

/**
* generic Ajax call functions:
* paramId string - parameters (parameter1=value1&parameter2=value2...)
* divName string - div with content to be replaced by AJAX output
*/
//should put a regexp check here but laterz
var availableLangsAr = [ 'ar', 'cz', 'de', 'dk', 'en', 'es', 'fi', 'fr', 'hu', 'in', 'it', 'jp', 'kr', 'nl', 'no', 'po', 'pt', 'ru', 'sc', 'se', 'sk', 'tr'];
var crtLString = '';

function showResponseDiv(paramId, divName, divId) {
	var urlStart = '/en/';
	var crtAddress = '';
	var crtDivName = divName+'_'+divId;
	var style = document.getElementById(window.thisDivName).style;
	//alert(style.display);

	if (style.display == 'block') {
		Show('loading_'+divId);
		
		//prevent dispatch fault:
		crtAddress += document.location;
		for(i in availableLangsAr){
			crtLString = '/'+availableLangsAr[i];
			if(crtAddress.indexOf(crtLString) > 0){
				urlStart = '';
				break;
			}
		}
		//if(('/fr')>0 || crtAddress.indexOf('/en')>0 || crtAddress.indexOf('/de')>0 || crtAddress.indexOf('/es')>0 || crtAddress.indexOf('/it')>0 || crtAddress.indexOf('/nl')>0)
		//	urlStart = '';
		//else
		//	urlStart = '/en/';
		var url = urlStart+divName+'.html?'+paramId;
		//alert(url);
		var params = '';
		var myAjax = new Ajax.Request( url, {method: 'post', parameters: params, onComplete: showResponse} );
	}
}

/** GENERIC AJAX CALL FUNCTION (hopefully really last generic AJAX call function around here)
* should work with any default/non-special AJAX call -> generate response case
* 
* 
* Features prevents dispatch fault when sometimes language is not set (en/fr/de...)
* @version 1.0 (last probably)
* @uses prototype.js included and a function to handle the resulted output
*/
function genericAjaxCall(scriptName, params, crtMethod){
	
	//prevent dispatch fault:
	crtAddress += document.location;
	if(crtAddress.indexOf('/fr')>0 || crtAddress.indexOf('/en')>0 || crtAddress.indexOf('/de')>0 || crtAddress.indexOf('/es')>0 || crtAddress.indexOf('/it')>0 || crtAddress.indexOf('/nl')>0)
		urlStart = '';
	else
		urlStart = '/en/';
	//alert(url);
	var url = scriptName+params;
	//Ajax invoke
	var myAjax = new Ajax.Request( url, {method: crtMethod, parameters: params, onComplete: showResponse} );
}

function showResponse(originalRequest) {
	//put returned XML in the textarea
	var element = document.getElementById(thisDivName);
	//alert(originalRequest.responseText);
	$(element).innerHTML = originalRequest.responseText;
	Hide('loading');
}

//when called, shows or hides HTML element - similar to ShowHide function in functions.js, but also sets current viewed element
function toggleDisplayThisDiv(id){
	//set current divName variable globally
	//if(!window.thisDivName | window.thisDivName == "undefined" | window.thisDivName == ''){
		window.thisDivName = id;
		//alert(window.thisDivName);
	//}
	var zoneStyle=document.getElementById(id).style;

	if (zoneStyle.display=="block" | zoneStyle.visibility=="visible"){
		zoneStyle.display="none";
		zoneStyle.visibility = "hidden";
	}else {
		zoneStyle.display="block";	
		zoneStyle.visibility = "visible";
	}
}

//function that only executes a script in background when called
function executeScriptWithAjax(url){
	var params = '';
	if (url!=''){
		//alert(url);
		semicolonPos = url.indexOf(';');
		if(semicolonPos>0){
			var myAjaxExecute1 = new Ajax.Request( url.substr(0, (semicolonPos)), {method: 'post', parameters: params} );
			var myAjaxExecute2 = new Ajax.Request( url.substr((semicolonPos+1), url.length), {method: 'post', parameters: params} );
		}else
			var myAjaxExecute = new Ajax.Request( url, {method: 'post', parameters: params} );
	return true;
	}
}
function executeScriptWithAjaxPost(url,params)
{
	var myAjaxExecute = new Ajax.Request(url, {method: 'post', parameters: params});
}

/*
//showResponseDiv for flashmaps
function showResponseDivFlashmapsSearch(divName, scriptName, params) {
	window.thisDivName = divName;
	var url = scriptName;
	toggleDisplayThisDiv('loading');
	var myAjax = new Ajax.Request( url, {method: 'post', parameters: params, onComplete: showResponse} );
}

//when called, shows or hides HTML element - similar to ShowHide function in functions.js, but also sets current viewed element
function toggleDisplayThisDivOnlyOne(id, photoId){
	//set current divName variable globally
	if(window.thisDivName && window.thisDivName!='content' && window.thisDivName!=id){
		var zoneStyle=document.getElementById(window.thisDivName).style;
		if(navigator.userAgent.indexOf('MSIE')<0){
			eval("document."+window.thisPhotoId+".src='/imgs/arrow.gif'");
			//window.thisPhotoId = photoId;
			//alert(photoId);
		}
		
		zoneStyle.display="none";
		zoneStyle.visibility="hidden";
	}
	window.thisDivName = id;
	window.thisPhotoId = photoId;
	var zoneStyle=document.getElementById(id).style;

	if (zoneStyle.display=="block"){
		zoneStyle.display="none";
		zoneStyle.visibility="hidden";
	}else {
		zoneStyle.display="block";
		zoneStyle.visibility="visible";
	}
}
*/
/*
//not used for the moment
function frameLocationFlashmaps(frameName, location, params){
	iframe = document.getElementById(frameName);
	iframe.style.height = '900px';
	//iframe.location = '\''+location+'?'+params+'\'';
	eval("parent."+frameName+".location='"+location+"?"+params+"'");
}
*/
