var slide_in_speed = 50;	// millisecond duration of slide into view
var slide_out_speed = 100;// millisecond duration of slide out of view
var xpos;
var ypos;
var orgKwTxt = ''
var newKwTxt = null;
var emptyKw = null;
var maploader = "test";
function getDataReturnText(url, callback) { 
	var XMLHttpRequestObject = false;
	
	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject) {
		XMLHttpRequestObject = new 
		ActiveXObject("Microsoft.XMLHTTP");
	}

	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", url); 
		XMLHttpRequestObject.onreadystatechange = function() { 
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
				callback(XMLHttpRequestObject.responseText); 
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			} 
		}
		XMLHttpRequestObject.send(null); 
	}
}

function getDataReturnXml(url, callback) { 
	var XMLHttpRequestObject = false; 
	
	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
		mozillaFlag = true;
	}
	else if (window.ActiveXObject) {
		XMLHttpRequestObject = new 
		ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", url);
		XMLHttpRequestObject.onreadystatechange = function() { 
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { 
				var returnxml = XMLHttpRequestObject.responseXML;
				if (mozillaFlag) {
					returnxml = removeWhitespace(returnxml);
				}
				callback(returnxml); 
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			} 
		} 		
		XMLHttpRequestObject.send(null); 
	}
}

function postDataReturnText(url, data, callback) { 
	var XMLHttpRequestObject = false; 
	var returnvar = "";

	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		XMLHttpRequestObject = new 
		ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("POST", url); 
		XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
		
		XMLHttpRequestObject.onreadystatechange = function() { 
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				var respTxt = XMLHttpRequestObject.responseText;
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
				callback(respTxt);
			} 
		}
		XMLHttpRequestObject.send(data);
	}
}

function postDataReturnXml(url, data, callback) {
	var mozillaFlag = false;
	var XMLHttpRequestObject = false;
	
	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
		mozillaFlag = true;
	}
	else if (window.ActiveXObject) {
		XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("POST", url); 
		XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
		
		XMLHttpRequestObject.onreadystatechange = function() { 
			if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				var returnxml = XMLHttpRequestObject.responseXML;
				if (mozillaFlag) {
					returnxml = removeWhitespace(returnxml);
				}
				callback(returnxml);
				delete XMLHttpRequestObject;
				XMLHttpRequestObject = null;
			}
		}
		
		XMLHttpRequestObject.send(data); 
	}
}

function removeWhitespace(xml) {
	var loopIndex;
	
	for (loopIndex = 0; loopIndex < xml.childNodes.length; loopIndex++) {
		
		var currentNode = xml.childNodes[loopIndex];
		
		if (currentNode.nodeType == 1) {
			removeWhitespace(currentNode);
		}
		
		if (((/^\s+$/.test(currentNode.nodeValue))) && (currentNode.nodeType == 3)) {
			xml.removeChild(xml.childNodes[loopIndex--]);
		}
	}
	return xml;
}

function handleLandSelect(box,se) {
	var land = box.options[box.selectedIndex].value;
	postDataReturnXml('/zoeken/engine5/pquery_ajax.php','land='+land+"&se="+se, handleDropdowns);
	callExternalInterface(land);
}
function handleRgskSelect(box) {
	/*var landbox = document.getElementById("land");
	var land = landbox.options[landbox.selectedIndex].value;
	var selval = box.options[box.selectedIndex].value;
	if (selval.substring(0,2) == "s_") {
		boxname = "rgsk";
	}
	else {
		boxname = "rgo";
	}
	boxval = selval.substring(2);
	postDataReturnXml('/zoeken/engine5/pquery_ajax.php','land='+land+"&se=7"+"&"+boxname+"="+boxval, handleDropdowns);*/
}
function handleDropdowns(xml) {
	if (xml.getElementsByTagName("regions").length > 0) {
		getRegions(xml);
	}
	if (xml.getElementsByTagName("rgsk").length > 0) {
		var rgsk = xml.getElementsByTagName("rgsk");
		document.getElementById("div_rgsk_rgo").innerHTML = rgsk[0].firstChild.data;
	}
	if (xml.getElementsByTagName("skpl").length > 0) {
		var skpl = xml.getElementsByTagName("skpl");
		document.getElementById("div_skpl").innerHTML = skpl[0].firstChild.data;
	}
}

function getRegions(xml) {
	var loopIndex;
	regi_options = xml.getElementsByTagName("region");
	document.getElementById('rgo').options.length = 0;
	for (loopIndex = 0; loopIndex < regi_options.length; loopIndex++ ) {
		document.getElementById('rgo').options[loopIndex] = new Option(regi_options[loopIndex].firstChild.data,regi_options[loopIndex].getAttribute("regi"));
		cls = regi_options[loopIndex].getAttribute("class");
		if (cls != null && cls != '') {
			document.getElementById('rgo').options[loopIndex].className = cls;
		}
	}
}
function submitLeftSearch(suri) {
	var lnk = "?";
	var frm = document.frmleft;
	for(i=0; i< frm.length; i++) {
		if (frm.elements[i].value != "") {
			frmname = frm.elements[i].name;
			frmval = frm.elements[i].value;
			if (frmname == "rgsk_rgo") {
				if (frmval.substring(0,2) == "s_") {
					frmname = "rgsk";
					frmval = frmval.substring(2);
				}
				else {
					frmname = "rgo";
					frmval = frmval.substring(2);
				}
			}
			else if (frmname == "rgo") {
				if (isNumber(frmval)) {
					frmname= "sup";
				}
			}
			if (lnk != "?") lnk += "&";
			lnk += frmname+"="+frmval;
		}
	}
	redir = suri+lnk;
	redirQPage(redir);
}
function investigateKeyword(section, curq) {
	showhide("ajloader","show");
	showhide("ajloadermssg","hide");
	var kw = document.getElementById('keyword').value;
	
	if (newKwTxt == null) {
		kw  ='';
	}
	if (curq != '') {
		curq += "&";
	}
	if (kw != '') {
		kw = encodeMyHtml(kw);
	}
	curq += "section="+section+"&keyword="+kw;
	postDataReturnXml('/zoeken/engine5/investigatekeyword.php', curq, returnInvestigateKeyword);
}

function returnInvestigateKeyword(xml) {
	var multicors = xml.getElementsByTagName("multicors");
	if (multicors.length > 0) {
		showhide("ajloadermssg","show");
		document.getElementById("ajloadermssg").innerHTML = multicors[0].firstChild.data;
	}
	else {
		listitems = xml.getElementsByTagName("data");
		returntag = (listitems[0].firstChild.tagName);
		if (returntag == "alert") {
			alrt = xml.getElementsByTagName("alert");
			alert(alrt[0].firstChild.data);
		}
		else {
			document.getElementById("maincontent").innerHTML = gentrans["bezigladen"]+" <img src='/img/loading/loadingpoints4.gif' width='15' height='9'>";
			redir = xml.getElementsByTagName("redir");
			loc = redir[0].firstChild.data;
			redirQPage(loc);
		}
	}
	showhide("ajloader","hide");
}

function doKeywordSearch(uri,checkcheckbox) {
	if (checkcheckbox == 1) {
		elem = document.getElementById("chk_zhuid");
		if (elem.checked) {
			investigateKeyword(2,uri);
		}
		else {
			investigateKeyword(1,'');
		}
	}
	else {
		investigateKeyword(1,'');
	}
}

function putFocus(formInst, elementInst) {
	if (document.forms.length > 0) {
		document.forms[formInst].elements[elementInst].focus();
	}
}
 
 
 
function Querystring(searchuri, checkid, checkval, modus) { // optionally pass a querystring to parse
	this.params = new Object()
	this.get=Querystring_get
	qs=location.search.substring(1,location.search.length)

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&') // parse out name/value pairs separated via &
// split out each name=value pair
	var newstring = "";
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])
		
		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name
		
		//regio unsetten als land gekozen wordt
		//if (!(checkid == "land" && name == "rgo") && (name != "page")) this.params[name] = value;
		if (!(checkid == "land" && (name == "rgo" || name == "rgsk")) && (name != "page") && (name != "orgkw") && !(checkid == "rgo" && name == "rgsk") && !(checkid == "rgsk" && name == "rgo") && !(checkid == "sup" && name == "rgo") && !(checkid == "rgo" && name == "sup") && !(checkid == "mnd" && name == "per") && !(checkid == "verb" && name == "per")) this.params[name] = value;
	}
	
	this.params[checkid] = checkval;
	
	newstring = "";
	for(vari in this.params){
		if (this.params[vari] != "") {
			if (newstring != "") newstring += "&";
			newstring += vari+"="+this.params[vari];
		}
	}
	
	if (newstring != "") {
		newstring = "?"+newstring;
	}
	redir = searchuri+newstring;
	redirQPage(redir);
}

function redirQPage(uri) {
	window.location.replace(uri);
}

function Querystring_get(key, default_) {
	// This silly looking line changes UNDEFINED to NULL
	if (default_ == null) default_ = null;
	
	var value=this.params[key]
	if (value==null) value=default_;
	
	return value;
}
/*function changeKeyword() {
	input = document.getElementById('keyword');
	name = input.name;
	selval = input.value;
	Querystring(name, selval);
} */
function changeFlashQ(searchuri, name, selval) {
	Querystring(searchuri, name, selval, "flash");
}
function changeQ(searchuri, selbox) {
	document.getElementById("sbutton_dd").href = "#";
	var name = selbox.name;
	var selval = selbox.options[selbox.selectedIndex].value;
	if (name == "rgsk_rgo") {
		if (selval.substring(0,2) == "s_") {
			name = "rgsk";
		}
		else {
			name = "rgo";
		}
		selval = selval.substring(2);
	}
	else if (name == "rgo") {
		if (isNumber(selval)) {
			name= "sup";
		}
	}
	Querystring(searchuri, name, selval, "selbox");
}
function showAddressClick() {
	showAddress();
	return false;
}
function onEnter( evt, action, uri, checkcheckbox) {
	var keyCode = null;
	
	if( evt.which ) {
		keyCode = evt.which;
	} else if( evt.keyCode ) {
		keyCode = evt.keyCode;
	}
	if( 13 == keyCode ) {
		if (action == "keyword") {
			newKwTxt = "";
			doKeywordSearch(uri,checkcheckbox);
		}
		else if (action == "maplocation") {
			showAddress();
		}
		return false;
	}
	return true;
}

function checkEnter(evt,callback,param1) {
	var keyCode = null;
	
	if( evt.which ) {
		keyCode = evt.which;
	} else if( evt.keyCode ) {
		keyCode = evt.keyCode;
	}
	if( 13 == keyCode ) {
		if (param1 != "") {
			callback(param1);
		}
		else {
			callback();
		}
		return false;
	}
	return true;
}

function setStyle(objId, style, value){
	document.getElementById(objId).style[style]= value;
}

function setVisibility(objId, sVisibility) {
	/*sVisibility - "visible" | "inherit" | "none" (case insensitive) */
	var obj = document.getElementById(objId);
	obj.style.visibility = sVisibility;
}
function encodeMyHtml(input) {
	encodedHtml = escape(input);
	encodedHtml = encodedHtml.replace(/\//g,"%2F");
	encodedHtml = encodedHtml.replace(/\?/g,"%3F");
	encodedHtml = encodedHtml.replace(/=/g,"%3D");
	encodedHtml = encodedHtml.replace(/&/g,"%26");
	encodedHtml = encodedHtml.replace(/@/g,"%40");
 	return encodedHtml;
 } 
function initGlideLayers(loadmap) {
  var glideLyrs = new Array();
   var positions = findPos('btn_map2');
   xpos = positions[0];
   ypos = positions[1];
  // Set up your layers here
  // arguments: id, left=0 (offset calculated based on width), top
  glideLyrs[0] = new dynObj('glideDiv0', xpos, ypos);
  //glideLyrs[1] = new dynObj('glideDiv1', xpos, ypos);
  
  for (var i=0; glideLyrs[i]; i++) {
		// hold original left position 
		glideLyrs[i].xOff = -(glideLyrs[i].w + 0);
		glideLyrs[i].shiftTo( glideLyrs[i].xOff, glideLyrs[i].y );
		glideLyrs[i].show();
  }
  //slideEm('glideDiv0'); // Slide first one into view 
  if (navigator.appName.indexOf("Microsoft") != -1) {
		flash = window.countries;
	}
	else {
		flash = window.document.countries;
	}

   if (loadmap == 1) {
   		slideEm('glideDiv0');
   }
}

var curGlideLyr;
function slideEm(id) {
  var oldLyr, newLyr;
  var divpos = findPos('btn_map2');
  var xpos = divpos[0];
  var ypos = divpos[1];
	// if link for current layer clicked, slide it out of view 
	if (curGlideLyr == id) { 
		oldLyr = dynObj.getInstance(curGlideLyr);
		oldLyr.slideTo(oldLyr.xOff, null, slide_out_speed, -1);
		curGlideLyr = ""; return; 
	}
	// if layer currently in view, set up to slide new one into view
	// after current one slides away
	if (curGlideLyr) {
		oldLyr = dynObj.getInstance(curGlideLyr);
		if (id != "glideDiv1") {
			oldLyr.onSlideEnd = function() { 
				dynObj.holder[curGlideLyr].slideTo(xpos, null, slide_in_speed, -1); 
				this.onSlideEnd = function() { if (this.el) this.el = null } 
			}
		}
		// slide current layer out of view
		oldLyr.slideTo(oldLyr.xOff, null, slide_out_speed, -1);
	} 
	else { 	// if no layer currently in view
		if (id != "glideDiv1") {
			newLyr = dynObj.getInstance(id);
			newLyr.slideTo(xpos, null, slide_in_speed, -1);
		}
		postDataReturnText('/zoeken/engine5/setmappopup.php','set=true&xpos='+xpos+'&ypos='+ypos, handleMapPopup);
	}
	curGlideLyr = id;
}
function closeCountryMap() {
	postDataReturnText('/zoeken/engine5/setmappopup.php','unset', handleMapPopup);
	slideEm('glideDiv1');
}
function handleMapPopup(txt) {
	return true;
}

function callExternalInterface(map) {
    thisMovie("countries").loadMap(map,"jscall");
}

function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName]
    }
    else {
        return document[movieName]
    }
}
function emptyKeywordText(box,emptykw) {
	orgKwTxt = box.value;
	if (newKwTxt == null && emptykw == 1) {
		box.value = "";
	}
}
function evalKeywordText(box,emptykw) {
	if (box.value != "") {
		newKwTxt = box.value;
	}
	else if (newKwTxt == null){
		box.value = orgKwTxt;
	}
}
function isNumber(val) {
	if (isNaN(val)) {
		return false;
	}
	else {
		return true;
	} 
}
function toggleDiv(divname) {
	container = document.getElementById(divname);
	if (container.style.display == "block") container.style.display = "none";
	else container.style.display = "block";
}
var state = 'none';
function showhide(layer_ref,modus) { 
	if (modus == "swap") {
		state = document.getElementById(layer_ref).style.display;
		if (state == 'block') { 
			state = 'none'; 
		} 
		else { 
			state = 'block'; 
		}
	}
	else if (modus == "show") {
		state = 'block';
	}
	else if (modus == "hide") {
		state = 'none';
	}
	
	if (document.all) { //IS IE 4 or 5 (or 6 beta) 
		eval("document.all." + layer_ref + ".style.display = state"); 
	} 
	if (document.layers) { //IS NETSCAPE 4 or below 
		document.layers[layer_ref].display = state; 
	} 
	if (document.getElementById && !document.all) { 
		hza = document.getElementById(layer_ref); 
		hza.style.display = state; 
	} 
} 
function xGetElementById(e) {
    if(typeof(e)!='string') return e;
    if(document.getElementById) e=document.getElementById(e);
    else if(document.all) e=document.all[e];
    else e=null;
    return e;
}

function TaLogin() {
	code = encodeMyHtml(document.getElementById("ta_loginbox").value);
	postDataReturnXml('/content/aj_windows/travelagencies/ta_login.php', 'code='+code, returnTaLogin);
}

function returnTaLogin(xml) {
	var error = xml.getElementsByTagName("error");
	if (error.length > 0) {
		document.getElementById("ta_info").innerHTML = error[0].firstChild.data;
	}
	
	var tain = xml.getElementsByTagName("agency");
	if (tain.length > 0) {
		txt = tain[0].firstChild.data;
		document.getElementById("ta_info").innerHTML = txt;
	}
}

function setTravelAgency(code) {
	postDataReturnXml('/content/aj_windows/travelagencies/ta_setagency.php', 'code='+code, returnSetTravelAgency);
}

function returnSetTravelAgency(xml) {
	var error = xml.getElementsByTagName("error");
	if (error.length > 0) {
		document.getElementById("tainfo").innerHTML = error[0].firstChild.data;
	}
	
	var cs = xml.getElementsByTagName("codeset");
	if (cs.length > 0) {
		if (cs[0].firstChild.data == "y") {
			window.location.reload();
		}
	}
}

