/* Global html id names */
var mapName = 'map';
var contentName = 'content';
var tableBodyName = 'campingsfoundbody';
var mapInfo = 'mapInfo';
var searchFormName = 'searchForm';
var usearchFormName = 'usearchForm';
var usearchFormBttn = 'usearchbutton';
var uSearchDivName = 'uSearchDiv';

var campingName = 'campingBox';
/*var campingContentName = 'campingContent';*/

var tabcontentName = 'tabcontent';

var contentTabDivName = 'contenttabDiv';

var campingInfoArray = 'campingInfoArray';
var lastVisitedCampingsList = 'lastVisitedCampingsList';
/*var lastVisitedCampings = new Array();*/

/* Functions */
function checkUsearch()
{
	var usearchForm = document.getElementById(usearchFormName);
	if(usearchForm != null){
		document.getElementById(usearchFormBttn).click();
		return false;
	}
	return true;
}

function encrypt(form_name) {
	form_name.password.value = hex_sha1(form_name.pass.value);
	form_name.pass.value = '';
	if(typeof form_name.pass2 != 'undefined' && form_name.pass2.value != '')
	{
		form_name.password2.value = hex_sha1(form_name.pass2.value);
		form_name.pass2.value = '';
	}
	if(typeof form_name.opass != 'undefined' && form_name.opass.value != '')
	{
		form_name.opassword.value = hex_sha1(form_name.opass.value);
		form_name.opass.value = '';
	}
}

function printCamping(camping_arr, dest)
{
	var campingList = document.getElementById(dest);
	if(campingList && camping_arr)
	{
		var lastVisitedCampingsHtml = "";
		for(var i = 0; i < camping_arr.length; i++)
		{
			lastVisitedCampingsHtml += '<li><a href="/zoekcampingsoplijst/?campingID='+camping_arr[i][0]+'" onclick="reloadCamping('+"'"+camping_arr[i][0]+"', '', false); return false"+'">'+camping_arr[i][1]+'</a></li>';
		}
		campingList.innerHTML = lastVisitedCampingsHtml;
	}
}

function pushCamping(camping, camping_arr)
{
	if(camping_arr.length == 0 || camping_arr[0][0] != camping[0])
	{
		for(var i = 0; i < camping_arr.length; i++) {
			if(camping_arr[i][0] == camping[0])
				camping_arr.splice(i, 1);
		}
		
		var campingnamestr = camping[1];
		if(campingnamestr.length > MAX_CAMPING_NAME_STR_LEN) {
			campingnamestr = campingnamestr.substr(0, MAX_CAMPING_NAME_STR_LEN) + '...';
		}
		
		camping_arr.splice(0, 0, new Array(camping[0], campingnamestr));
		camping_arr.splice(5, 1);
	}
}


function showpreview(previewid, src, width, height) {
	if(showpreview.preview && previewid == false) {
		PopUp.hide(showpreview.preview.id);
		showpreview.preview = null;
	}
	else if(previewid) {
		showpreview.preview = document.getElementById(previewid);
		showpreview.preview.innerHTML = '<img src="'+src+'" alt="" width="'+width+'" height="'+height+'" style="border:0px;margin:1px;">';
		showpreview.preview.style.margin = '0px';
		showpreview.preview.style.zIndex = 100;
		PopUp.show(previewid, width+2, height+2);	
	}
	return false;
}

function set_new_window_links() {
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i < anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "external" || anchor.getAttribute("rel") == "external nofollow"))
			anchor.target = "_blank";
	}
}

function clickSort(sort) {
	var form = document.getElementById(searchFormName);
	var searchSort = form.searchSort;
	var searchOrder = form.searchOrder;
	if(searchSort.options[searchSort.selectedIndex].value != sort) {
		searchOrder.options[0].selected = true;
	}
	else {
		if(searchOrder.options[1].selected)
			searchOrder.options[0].selected = true;
		else
			searchOrder.options[1].selected = true;
	}
	searchSort.options[sort].selected = true;
}

function scriptResize() {
	if(document.getElementById(contentName).innerHTML.length > 10)
		return true;
	return false;
}

function resizeScreen(largeScreen) {
	var camping = document.getElementById(campingName).style;
	var middleContent = document.getElementById(contentName).style;
	if(largeScreen == -1)
	{
		camping.display = 'block';
		camping.visibility = 'visible';
		
		if(middleContent != null)
		{	/*Invisible*/
			middleContent.display = 'none';
			middleContent.visibility = 'hidden';
		}
	}
	else if(largeScreen == 1)
	{
		camping.display = 'none';
		camping.visibility = 'hidden';

		if(middleContent != null)
		{	/*Visible*/
			middleContent.display = 'block';
			middleContent.visibility = 'visible';
		}
	}
}

function MO_image(imagename, imagesrc) {
	if (document.images) {
		if(typeof imagename != 'undefined' && typeof imagesrc != 'undefined')
		{
			if(image = document.images[imagename])
			{
				MO_image.oldimagename = image.name;
				MO_image.oldimagesrc = image.src;
				image.src = imagesrc;
			}
		}
		else if(MO_image.oldimagename != null && MO_image.oldimagesrc != null)
		{
			document.images[MO_image.oldimagename].src = MO_image.oldimagesrc;
			MO_image.oldimagename = null;
			MO_image.oldimagesrc = null;
		}
	}
}


function newXmlHttp() {
	var xmlHttp;
	try	/* Firefox, Opera 8.0+, Safari */
	{
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		try	/* Internet Explorer 7 or higher */
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try	/* Internet Explorer 6 or lower */
			{	
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				try	/* Wild card, this works always */
				{
					xmlHttp=GXmlHttp.create();
				}
				catch (e)
				{
					alert("Your browser does not support AJAX!");
					return false;
				}
			}
		}
	}
	return xmlHttp;
}

function reloadCamping(campingId, additional, refresh) {
	if(typeof additional == "undefined") additional = '';
	
	if(NO_CAMPING_RELOAD)
		document.location='/zoekcampingsoplijst/?campingID='+campingId.toString()+additional;
	
	var xmlHttp;
	try {
		xmlHttp = newXmlHttp();
		if(xmlHttp == false)
			return;
	} catch(e) {	/* Voor IE 6, omdat die moeizaam ajax ondersteund */
	}
	
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			document.getElementById(campingName).innerHTML = xmlHttp.responseText;
			set_new_window_links();
			resizeScreen(STANDARD_SCREEN_ZOOM);
			
			if(typeof refresh == 'undefined')
			{
				eval(document.getElementById(campingInfoArray).innerHTML);	/* Update CAMPING_INFO */
				pushCamping(CAMPING_INFO, lastVisitedCampings);
				printCamping(lastVisitedCampings, lastVisitedCampingsList);
			}
		}
	}
	var url = '/camping.ajax.php?campingID='+campingId.toString()+additional;
	
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

/* Not used currently
function changeScreen(largeScreen) {
	var xmlHttp;
	try {
		xmlHttp = newXmlHttp();
		if(xmlHttp == false)
			return;
	} catch(e) {	// Voor IE 6, omdat die moeizaam ondersteund
	}
	
	if(largeScreen != -1 && largeScreen != 0 && largeScreen != 1)
		return;
	
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			// document.write(xmlHttp.responseText);
			
			if(xmlHttp.responseText != true)
				return;
		}
	}
	resizeScreen(largeScreen);
	var url = "/large_screen.ajax.php?largeScreen="+largeScreen.toString();
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}*/



function reloadProv(control, controlToPopulate, text) { /* text MAY be undefined */
	var xmlHttp;
	try {
		xmlHttp = newXmlHttp();
		if(xmlHttp == false)
			return;
	} catch(e) {	/* Voor IE 6, omdat die moeizaam/geen ajax ondersteund */
	}
	
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			/* document.write(xmlHttp.responseText); */
			removeProv(controlToPopulate, text);
			
			var ItemArray=new String(xmlHttp.responseText);
			var myEle;
			var x;
			var splitValues = ItemArray.split(";");
			for ( x = 1 ; x < splitValues.length; x++ ) {
				var option = splitValues[x].split(":");
				
				myEle = document.createElement("option");
				myEle.setAttribute('value',option[0]);
				myEle.setAttribute('text',option[1]);
				/* set Text */
				var txt = document.createTextNode(option[1]);
				myEle.appendChild(txt);
				/* controlToPopulate.add(myEle); */
				controlToPopulate.appendChild(myEle);
				/* splitValues = ItemArray.split(";"); */
			}
		}
	}
	if(control.value.toString() != '0')
	{
		var url = '/get_prov.ajax.php?land='+control.value.toString();
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
	else
		removeProv(controlToPopulate, text);
}

function removeProv(controlToPopulate, text) {
	for (var q=controlToPopulate.options.length;q>=0;q--) controlToPopulate.options[q]=null;
	myEle = document.createElement('option');
	myEle.setAttribute('value', '0');
	if (typeof text == 'undefined') {
		text = 'Geen voorkeur';
	}
	var txt = document.createTextNode(text);
	myEle.appendChild(txt);
	controlToPopulate.appendChild(myEle);
}

function sendSearch(targetmap, keepzoom, reload) {
	var form = document.getElementById(searchFormName);
	
	if(typeof reload == 'undefined')
		reload = false;
	
	if(reload || (document.getElementById(mapName)==null && document.getElementById(tableBodyName)==null))	/* this will refresh after nothing is found */
	{
		form.submit();
		return ;
	}
	
	var xmlHttp;
	try {
		xmlHttp = newXmlHttp();
		if(xmlHttp == false)
			return;
	} catch(e) {	/* Voor IE 6, omdat die moeizaam ondersteund */
	}
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState == 4)
		{
			if(targetmap) {
				switch(LANGUAGE) {
					case 'EN':	var showDesc = 'Showing campings'; break;
					case 'NL':
					default  :	var showDesc = 'Campings weergeven...'; break;
				}
				
				var mapInfoDiv;
				if(mapInfoDiv = document.getElementById(mapInfo)) {
					mapInfoDiv.innerHTML = showDesc;
				}
				GMap.placeFoundMarkers(xmlHttp.responseText);
			}
			else
				document.getElementById(contentName).innerHTML = xmlHttp.responseText;
		}
	}
	
	
	var params = "";
	var elements = form.elements;
	for(var i = 0; i < elements.length; i++)
	{
		if(elements[i].type=='checkbox')
		{
			if(elements[i].checked == true)
				params = params+elements[i].name.toString()+'='+elements[i].value.toString()+'&';
		}
		else
			params += elements[i].name.toString()+'='+elements[i].value.toString()+'&';
	}
	if(document.getElementById(mapName) == null)
		params += 'returnHtml=true&';
	/*else if(getBoundParams != null)
		params += getBoundParams()+'&';*/
	
	if(typeof keepzoom != 'undefined')
		params += 'keepzoom=true';
	
	xmlHttp.open("post", '/found.ajax.php',true);
	/* Send the proper header information along with the request */
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
	
	if(targetmap && document.getElementById(mapInfo))
	{
		switch(LANGUAGE) {
			case 'EN':	var waitDesc = 'Please wait...'; break;
			case 'NL':
			default  :	var waitDesc = 'Een moment geduld...'; break;
		}
		document.getElementById(mapInfo).innerHTML = waitDesc;
	}
}

