var ajaxHttp_request = false;
var ajaxObjectToUse = null;
var addressInfo = "";


function isEmpty(val) {
	return (val == '' || val == 0);
}


function Reserve_CheckValuesRight() {
	var errors = "";

	var reNr = new RegExp("^[1-9][0-9]*$");
	var reDatum = new RegExp("^[0-9]{1,2}\-[0-9]{1,2}\-[0-9]{4}$");


	//tab 1
	var aankomstdatum = document.getElementById('input_aankomstdatum');
	var vertrekdatum = document.getElementById('input_vertrekdatum');

	if (!aankomstdatum.value.match(reDatum)) {
		errors = 'U dient een valide aankomstdatum in te vullen.';
		aankomstdatum.focus;
	}

	if (!vertrekdatum.value.match(reDatum)) {
		errors = 'U dient een valide vertrekdatum in te vullen.';
		vertrekdatum.focus;
	}

	var aankomstdatumArr = aankomstdatum.value.split('-');
	var vertrekdatumArr = vertrekdatum.value.split('-');

	var aankomstdatum2 = new Date(aankomstdatumArr[2], aankomstdatumArr[1] - 1, aankomstdatumArr[0]);
	var vertrekdatum2 = new Date(vertrekdatumArr[2], vertrekdatumArr[1] - 1, vertrekdatumArr[0]);

	if (aankomstdatum2 >= vertrekdatum2) {
		errors = 'Uw aankomstdatum ligt na uw vertrekdatum.';
		vertrekdatum.focus;
	}

	var today = new Date();
	if (today > aankomstdatum2) {
		errors = 'Uw aankomstdatum ligt in het verleden.';
		aankomstdatum.focus;
	}


	var aantalpersonen = document.getElementById('input_aantalpersonen');

	if (!aantalpersonen.value.match(reNr)) {
		errors = 'U dient een valide aantal personen in te vullen.';
		aantalpersonen.focus;
	}


	if (errors != "")
		alert(errors);

	return (errors == "");
}

function getHttpContents() {
	if (ajaxHttp_request.readyState == 4) {
		if (ajaxHttp_request.status == 200) {
			//use return data
			ajaxObjectToUse.innerHTML = ajaxHttp_request.responseText;
		}
	}
}

function closePopup() {
	try {
		var popup = document.getElementById('popup');
		popup.parentNode.removeChild(popup);
	} catch(ex) {
	}
}




var imageObj = new Image();

function showImagePopup(imageArray, pos) {
	var popupBack = document.createElement('div');
	popupBack.id = 'imagePopupBack';
	popupBack.onmousedown = function(e) { closeImagePopup() };

	var popup = document.createElement('div');
	popup.id = 'imagePopup';
	popup.imageArray = imageArray;
	popup.imagePos = pos;

	if (imageArray.length > 1) {
		tmp = document.createElement('div');
		tmp.id = "imageLeft";
		tmp.className = "imageLeft";
		tmp.onmousedown = function(e) { changeImagePopup(e, -1); };
		tmp.onmousemove = function(e) { imageHoverIn(this) };
		tmp.onmouseout = function(e) { imageHoverOut(this) };
		popup.appendChild(tmp);

		tmp = document.createElement('div');
		tmp.id = "imageRight";
		tmp.className = "imageRight";
		tmp.onmousedown = function(e) { changeImagePopup(e, 1); };
		tmp.onmousemove = function(e) { imageHoverIn(this) };
		tmp.onmouseout = function(e) { imageHoverOut(this) };
		popup.appendChild(tmp);
	}

	imageObj = new Image();
	imageObj.src = imageArray[pos];

	popup.style.backgroundImage = 'url(\'' + imageArray[pos] + '\')';

	popupBack.appendChild(popup);
	popupBack.style.top = getScrollXY()[1] + 'px';

	document.body.appendChild(popupBack);
	document.body.style.overflow = 'hidden';

	setTimeout("imageLoaded()", 50);
}

function changeImagePopup(evt, step) {
	evt = (evt) ? evt : window.event;

	var popup = document.getElementById('imagePopup');
	var popupText = document.getElementById('imagePopupText');

	popup.imagePos = popup.imagePos + step;
	if (popup.imagePos > popup.imageArray.length -1)
		popup.imagePos = 0;
	if (popup.imagePos < 0)
		popup.imagePos = popup.imageArray.length -1;

	imageObj = new Image();
	imageObj.src = popup.imageArray[popup.imagePos];

	popup.style.backgroundImage = 'url(\'' + popup.imageArray[popup.imagePos] + '\')';
	popupText.innerHTML = popup.imageArray[popup.imagePos].replace(/.*?\/([a-zA-Z0-9_ \-\(\)]+)\.jpe?g\.big$/gi, "$1");

	setTimeout("imageLoaded()", 50);

	evt.cancelBubble = true;
}

function imageLoaded() {
	if (parseInt(imageObj.height) <= 0) {
		setTimeout("imageLoaded()", 50);
	} else {
		var popup = document.getElementById('imagePopup');
		var imageLeft = document.getElementById('imageLeft');
		var imageRight = document.getElementById('imageRight');

		popup.style.width = imageObj.width + 'px';
		popup.style.height = imageObj.height + 21 + 'px';
		try {
			imageLeft.style.top = (imageObj.height - 134) / 2 + 'px';
			imageRight.style.top = (imageObj.height - 134) / 2 + 'px';
		} catch (Exception) {
		}

		popup.style.marginLeft = ((imageObj.width / 2) * -1) + 'px';
		popup.style.marginTop = ((imageObj.height / 2) * -1) + 'px';
	}
}

function imageHoverIn(node) {
	if (node.id == 'imageRight')
		node.className = 'imageRightHover';
	else if (node.id == 'imageLeft')
		node.className = 'imageLeftHover';
}

function imageHoverOut(node) {
	if (node.id == 'imageRight')
		node.className = 'imageRight';
	else if (node.id == 'imageLeft')
		node.className = 'imageLeft';
}

function closeImagePopup() {
	try {
		document.body.style.overflow = 'auto';
		var popupBack = document.getElementById('imagePopupBack');
		document.body.removeChild(popupBack);
	} catch(ex) {
	}
}

function getScrollXY() {
	var scrOfX = 0, scrOfY = 0;
	if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if (document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return [ scrOfX, scrOfY ];
}

/************************* AJAX ********************************/


function makeRequest(url, onreadystatechangefunc) {
	ajaxHttp_request = false;

	if (window.XMLHttpRequest) { //Mozilla, Safari,...
		ajaxHttp_request = new XMLHttpRequest();
		if (ajaxHttp_request.overrideMimeType) {
			ajaxHttp_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			ajaxHttp_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				ajaxHttp_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!ajaxHttp_request) {
		alert('Cannot create an XMLHTTP instance');
	}
	ajaxHttp_request.onreadystatechange = onreadystatechangefunc;
	ajaxHttp_request.open('GET', url, true);
	ajaxHttp_request.send(null);
}
