/**
*	gearupfortheride.js
*
*	Copyright (c) 2009 a-commerce ag. All Rights Reserved.
*
*	date created: 03/2009/cz
*
*/

var bd=false;

function winOpen(link,name,win_wid,win_hei) {
	var pos_x = (screen.width / 2) - (win_wid / 2);
	var pos_y = (screen.height / 2) - (win_hei / 2);
	window.open(link,name,'toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=yes,scrollbars=yes,width='+win_wid+',height='+win_hei+',screenX='+pos_x+',screenY='+pos_y+',left='+pos_x+',top='+pos_y);
}

function winOpen2(link,name,win_wid,win_hei) {
	var pos_x = (screen.width / 2) - (win_wid / 2);
	var pos_y = (screen.height / 2) - (win_hei / 2);
	window.open(link,name,'toolbar=yes,location=yes,directories=no,status=yes,menubar=yes,resizable=yes,scrollbars=yes,width='+win_wid+',height='+win_hei+',screenX='+pos_x+',screenY='+pos_y+',left='+pos_x+',top='+pos_y);
}

function closeReservation(evid, mcid, order) {
	document.getElementById('res'+evid+mcid+order).src='img/free.png';
	showLayerInaktiv();
	document.getElementById('reservation').style.visibility = "hidden";
	document.getElementById('reservation').innerHTML = "";
}

function closeAlertReservation(evid, mcid, order) {
	document.getElementById('res'+evid+mcid+order).onclick='';
	document.getElementById('res'+evid+mcid+order).title=msg2;
	document.getElementById('res'+evid+mcid+order).style.cursor='auto';
	showLayerInaktiv();
	document.getElementById('reservation').style.visibility = "hidden";
	document.getElementById('reservation').innerHTML = "";	
}

function closeNoAvailableReservation(evid, mcid, order) {
	document.getElementById('res'+evid+mcid+order).src='img/reserviert.png';
	document.getElementById('res'+evid+mcid+order).onclick='';
	document.getElementById('res'+evid+mcid+order).title=msg3;
	document.getElementById('res'+evid+mcid+order).style.cursor='auto';
	showLayerInaktiv();
	document.getElementById('reservation').style.visibility = "hidden";
	document.getElementById('reservation').innerHTML = "";
}

function showLayerInaktiv() {
	if (document.getElementById('inaktiv').style.visibility != "visible") {		
		document.getElementById('inaktiv').style.visibility = "visible";
	}
	else {
		document.getElementById('inaktiv').style.visibility = "hidden";
	}
}

function showReservation(evid, mcid, order) {	
	if (document.getElementById('reservation').style.visibility != "visible") {
		showLayerInaktiv();
		loadReservation(evid, mcid, order);
		document.getElementById('reservation').style.visibility = "visible";
	}
}

function loadReservation(evid, mcid, order) {	
	document.getElementById('res'+evid+mcid+order).src='img/resaktuell.png';
	var url = 'reservation.cfm';	
	var params = getSID()+'&event=getFormular&evid='+evid+'&mcid='+mcid+'&order='+order;	
	var ajax = new Ajax.Updater(
	{success: 'reservation'},
	url,
	{method: 'get', parameters: params, onFailure: loadReservationError, evalScripts: true});
}
function loadReservationError(request) {	
	alert("Error: getReservationError response");
}

function storeReservation(evid, mcid, order) {
	if (isValidInput()) {
		var url = 'respres.cfm';	
		var params = getSID()+'&event=storeReservation&evid='+evid+'&mcid='+mcid+'&order='+order+getResArgs();
		var ajax = new Ajax.Updater(
		{success: 'resPanel'},
		url,
		{method: 'get', parameters: params, onFailure: storeReservationError, evalScripts: true});
	}
	else {
		alert(msg1);
	}
}
function storeReservationError(request) {	
	alert("Error: storeReservationError response");
}

function getResArgs() {
	var r = "&args="+document.getElementById("lname").value
		+";"+document.getElementById("fname").value
		+";"+document.getElementById("street").value
		+";"+document.getElementById("zipcode").value
		+";"+document.getElementById("city").value
		+";"+document.getElementById("country").value
		+";"+document.getElementById("email").value
		+";"+document.getElementById("phone").value
		+";"+document.getElementById("birthdate").value;
		if (document.getElementById("license").checked) {
			r+=";true";
		}
		else {
			r+=";false";
		}
		
	return r;
}

function isValidInput() {
	var x = 0;
	
	if (trim(document.getElementById("lname").value) == "") {
		document.getElementById("lname").className = "incorrectInput";
		x++;
	}
	else {
		document.getElementById("lname").className = "";
	}
	if (trim(document.getElementById("fname").value) == "") {
		document.getElementById("fname").className = "incorrectInput";
		x++;
	}
	else {
		document.getElementById("fname").className = "";
	}
	if (document.getElementById("country").value == "") {
		document.getElementById("country").className = "incorrectInput";
		x++;
	}
	else {
		document.getElementById("country").className = "";
	}
	if (trim(document.getElementById("email").value) == "") {
		document.getElementById("email").className = "incorrectInput";
		x++;
	}
	else {
		document.getElementById("email").className = "";
	}
	if (!checkemail(document.getElementById("email").value)) {
		document.getElementById("email").className = "incorrectInput";
		x++;
	}
	else {
		document.getElementById("email").className = "";
	}
	if (trim(document.getElementById("email2").value) == "") {
		document.getElementById("email2").className = "incorrectInput";
		x++;
	}
	else {
		document.getElementById("email2").className = "";
	}
	if (!checkemail(document.getElementById("email2").value)) {
		document.getElementById("email2").className = "incorrectInput";
		x++;
	}
	else {
		document.getElementById("email2").className = "";
	}
	if (document.getElementById("phone").value == "") {
		document.getElementById("phone").className = "incorrectInput";
		x++;
	}
	else {
		document.getElementById("phone").className = "";
	}	
	if (document.getElementById("birthdate").value == "") {
		document.getElementById("birthdate").className = "incorrectInput";
		x++;
	}
	else {		
		document.getElementById("birthdate").className = "";
	}
	
	if (!document.getElementById("license").checked) {
		document.getElementById("licenseDiv").className = "bgIncorrectInput";
		x++;
	}
	else {
		document.getElementById("licenseDiv").className = "";
	}
	if (!document.getElementById("conditions").checked) {
		document.getElementById("conditionsDiv").className = "bgIncorrectInput";
		x++;
	}
	else {
		document.getElementById("conditionsDiv").className = "";
	}
	
	if (document.getElementById("email").value != "") {
		if (document.getElementById("email").value != document.getElementById("email2").value) {
			alert(msg5);
			document.getElementById("email").className = "incorrectInput";
			document.getElementById("email2").className = "incorrectInput";
			x++;
		}
		else {
			document.getElementById("email").className = "";
			document.getElementById("email2").className = "";
		}
	}
	
	/* Test Age */
	if (!bd) {
		document.getElementById("birthdate").className = "incorrectInput";
		x++;
	}
	else {
		document.getElementById("birthdate").className = "";
	}

	return (x>0) ? false : true;
}

function isValidDate(d) {
	var regex=/^\d{2}\.\d{2}\.\d{4}$/;
	var tmpDate;
	var ad = d.split(".");
	
	if (!regex.exec(d)) {		
		return false;
	}	
	
	day=ad[0];month=ad[1]-1;year=ad[2];	
	tmpDate=new Date(year,month,day);
	
	return ((day==tmpDate.getDate()) && (month==tmpDate.getMonth()) && (year==tmpDate.getFullYear()));
}


function testAge(v,evid) {
	if (isValidDate(v)) {
		var url = 'respres.cfm';	
		var params = getSID()+'&event=testAge&evid='+evid+'&args='+v;
		var ajax = new Ajax.Request(
			url, 
			{method: 'get', parameters: params, onSuccess:respAge, onFailure:testAgeError, evalScripts: true});
	}
}
var testAgeError = function(t) {
	alert("Error: testAgeError response");
}

var respAge = function(t) {
	if (trim(t.responseText) == 'false') {
		alert(msg4);
		bd=false;
	}
	else {
		bd=true;
	}
}

function isMSIE() {
	var ua = navigator.userAgent.toLowerCase(); 
	if (ua.indexOf("msie") != -1) {
		return true;
	}
	else {
		return false;
	}
}

function checkemail(strEmail) {		
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	
	if (filter.test(strEmail))	{
		return true;
	}
	else{	
		return false;
	}
}

function getSID() {
	var uuid = new Date().getTime();	
	return sid+'&uuid='+uuid;	
}

function trim(s) {
	while (s.substring(0,1) == ' ') {
		s = s.substring(1,s.length);
	}
	while (s.substring(s.length-1,s.length) == ' ') {
		s = s.substring(0,s.length-1);
	}
	return s;
}

function closeWindow() {
}

function changeMapUncommitted() {
	document.getElementById("mapID").src = 'img/map.jpg';
}

function changeMap(v) {	
	document.getElementById("mapID").src = 'img/'+v;
}
