function checkemail(val){
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	//var filter= new RegExp("([\da-z]+[-._+&amp;'])*[\da-z]+@(([0-9a-zA-Z]([-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?\.)+(arpa|aero|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|xxx|jobs|mobi|post|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sk|sl|sm|sn|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])|(0[xX]0*[\da-fA-F]?[\da-fA-F]\.){3}0[xX]0*[\da-fA-F]?[\da-fA-F]|(0+[0-3][0-7][0-7]\.){3}0+[0-3][0-7][0-7]|(0|[1-9]\d{0,8}|[1-3]\d{9}|4[01]\d{8}|42[0-8]\d{7}|429[0-3]\d{6}|4294[0-8]\d{5}|42949[0-5]\d{4}|429496[0-6]\d{3}|4294967[01]\d{2}|42949672[0-8]\d|429496729[0-5])|0[xX]0*[\da-fA-F]{1,8}|([\da-fA-F]{1,4}\:){7}[\da-fA-F]{1,4}|([\da-fA-F]{1,4}\:){6}((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])))","i");
	if (filter.test(val)){
		return true;
	}else{
		return false;
	}
}

function isInteger(val){
	var filter=/^\d+$/;
	if (filter.test(val)){
		return true;
	}else{
		return false;
	}

}

var monthsT = new Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

function qsReplace (search, replace, string) {
  while (string.indexOf (search) > -1) {
    pos = string.indexOf (search);
    string = (string.substring (0, pos) + replace +
    string.substring ((pos + search.length), string.length));
  }
  return string;
}
qsKeys = new Array ();
qsValues = new Array ();
function qsParse () {
  var query = location.search.substring (1);
  var pairs = query.split ("&");
  for (var i = 0; i < pairs.length; i++) {
    var pos = pairs[i].indexOf ('=');
    if (pos >= 0) {
      var argname = pairs[i].substring (0,pos);
      var value = pairs[i].substring (pos+1);
      qsKeys[qsKeys.length] = argname;
      qsValues[qsValues.length] = qsReplace ('+',' ', unescape (value));
    }
  }
}

function qsStr (key) {
  var value = "";
  for (var i = 0; i < qsKeys.length; i++) {
    if (qsKeys[i] == key) {
      return qsValues[i];
    }
  }
  return false;
}


var foo = false;
var str = "details";

function setUpForm () {
    frm = document[str];
    frm.onsubmit = doFormQS;
}

function getValue (fix, type, swch) {
    with (document.details) {
        return (type == 'Year')
		? (swch)
			? elements[fix + type].selectedIndex
			: elements[fix + type].options[elements[fix + type].selectedIndex].text
		: (elements[fix + type].selectedIndex + 1);
    }
}
function setYear (ipt) {
     ipt.length = 0;
     var year = new Date ().getFullYear ();
     ipt[ipt.length] = new Option (year, year);
     ipt[ipt.length] = new Option (year+1, year+1);
}
var months = new Array (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
function doLeapYear (inY) {
    if ((inY % 400 == 0) || (inY % 4 == 0) && (!(inY % 100 == 0))) {
        months[1] = 29;
    } else {
        months[1] = 28;
    }
}
function setDays (ipt, mn, inY, slo) {
    var sl = 0;
    if (ipt.selectedIndex) {
        sl = ipt.selectedIndex;
    }
    doLeapYear (inY);
    ipt.length = 0;
    for (var i = 0; i < months[mn-1]; i++) {
        ipt[ipt.length] = new Option (i+1, i+1);
    }
    if (sl > (ipt.length-1)) {
        sl = (ipt.length-1);
    }
    if (slo) {
        ipt.options[0].selected = true;
    } else {
        ipt.options[sl].selected = true;
    }
}
function modDays () {
    with (document.details) {
        setDays (slfromday, slfrommonth[slfrommonth.selectedIndex].value, slfromyear[slfromyear.selectedIndex].value);
        setDays (sltoday, sltomonth[sltomonth.selectedIndex].value, sltoyear[sltoyear.selectedIndex].value);
    }
}
function addDur () {
    modDays ();
    return;
}
function chnDur () {
    modDays ();
    return;
}

function dateAdd (i, d) {
    var hours = (i) * 24
    var mills = (hours) * 3600000;
    tempDate = new Date ();
    if (d) {
        tempDate = d;
    }
    var buffer = Date.parse (tempDate) + mills;
    return new Date (buffer);
}
//shmeio pou thetoume poses hmeres meta na ksekiname
var myDate  = dateAdd (1);
var newDate = dateAdd (8);
myMonth = myDate.getMonth () + 1;
myMonthTo = newDate.getMonth () + 1;
myYear = myDate.getFullYear ();
myYearTo = newDate.getFullYear ();
myDay = myDate.getDate ();
myDayTo = newDate.getDate ();

function setDate (frm) {
    with (frm) {
    	
        setYear (slfromyear);
        setYear (sltoyear);
        if (parseInt(sltomonth.options[sltomonth.selectedIndex].value) == 1 &&
            parseInt(slfrommonth.options[slfrommonth.selectedIndex].value)) {
            for (var i = 0; i < slfrommonth.options.length; i++) {
                if (myMonth == parseInt (slfrommonth.options[i].value)) {
		            slfrommonth.options[i].selected = true;
		        }
		    }
            for (var i = 0; i < slfromyear.options.length; i++) {
                if (myYear == slfromyear.options[i].value) {
		            slfromyear.options[i].selected = true;
		        }
		    }
            for (var i = 0; i < sltomonth.options.length; i++) {
                if (myMonthTo == parseInt (sltomonth.options[i].value)) {
		            sltomonth.options[i].selected = true;
		        }
		    }
            for (var i = 0; i < sltoyear.options.length; i++) {
                if (myYearTo == sltoyear.options[i].value) {
		            sltoyear.options[i].selected = true;
		        }
		    }
        }
        setDays (sltoday, sltomonth[sltomonth.selectedIndex].value, sltoyear[sltoyear.selectedIndex].value);
        setDays (slfromday, slfrommonth[slfrommonth.selectedIndex].value, slfromyear[slfromyear.selectedIndex].value);
        if (parseInt(sltoday.options[sltoday.selectedIndex].value) == 1 &&
            parseInt(slfromday.options[slfromday.selectedIndex].value) == 1) {
            for (var i = 0; i < slfromday.options.length; i++) {
                if (myDay == parseInt (slfromday.options[i].value)) {
		            slfromday.options[i].selected = true;
		        }
		    }
            for (var i = 0; i < sltoday.options.length; i++) {
                if (myDayTo == parseInt (sltoday.options[i].value)) {
		            sltoday.options[i].selected = true;
		        }
		    }
      }
    }
}


var _ie   = navigator.appName.indexOf ("Microsoft Internet Explorer");
var _ns   = navigator.appName.indexOf ("Netscape");
var bVer = parseInt (navigator.appVersion);
function bookMarkIt () {
    if (_ie != -1 && bVer >= 4) {
        window.external.AddFavorite (location.href, document.title);
    } else if (_ns != -1 || _ie != -1 && bVer <= 3) {
        alert ("Sorry your browser does not support auto-bookmarking please press Ctrl+D to bookmark");
    } else {
        alert ("Sorry your browser does not support auto-bookmarking please use your browsers bookmark function");
    }
    //window.location = "http://int.sitestat.com/holidayautos/uk/s?Bookmark_Click&ns_type=clickin";
}
function getElement (id) {
    if (document.getElementById ()) {
        return document.getElementById (id);
    }
    if (document.all) {
        return document.all[id];
    }
    if (document.layers) {
        return document.layers[id];
    }
}
function setFromDate (frm,month,day,year,time) {
    with (frm) {
	//set correct airline company in case of error
	
	if (month.length > 0) {
		for (i=0;i<slfrommonth.length;i++){
			if (slfrommonth.options[i].value==month){
				slfrommonth.selectedIndex=i;
			}
		}
	}
	if (day.length > 0) {
		for (i=0;i<slfromday.length;i++){
			if (slfromday.options[i].value==day){
				slfromday.selectedIndex=i;
			}
		}
	}
	if (year.length > 0) {
		for (i=0;i<slfromyear.length;i++){
			if (slfromyear.options[i].value==year){
				slfromyear.selectedIndex=i;
			}
		}
	}
	if (time.length > 0) {
		for (i=0;i<fromtime.length;i++){
			if (fromtime.options[i].value==time){
				fromtime.selectedIndex=i;
			}
		}
	}
    }
}
function setToDate (frm,month,day,year,time) {
    with (frm) {
	//set correct airline company in case of error
	
	if (month.length > 0) {
		for (i=0;i<sltomonth.length;i++){
			if (sltomonth.options[i].value==month){
				sltomonth.selectedIndex=i;
			}
		}
	}
	if (day.length > 0) {
		for (i=0;i<sltoday.length;i++){
			if (sltoday.options[i].value==day){
				sltoday.selectedIndex=i;
			}
		}
	}
	if (year.length > 0) {
		for (i=0;i<sltoyear.length;i++){
			if (sltoyear.options[i].value==year){
				sltoyear.selectedIndex=i;
			}
		}
	}
	if (time.length > 0) {
		for (i=0;i<totime.length;i++){
			if (totime.options[i].value==time){
				totime.selectedIndex=i;
			}
		}
	}
    }
}

function setprdiv(src){


	//src 1 is pas , 2 veh type
	var selvtype = document.getElementById("vtype");
	var vehdesc= "1-4";
	if (selvtype!=null){
		vehdesc= vehiclecapacity[selvtype.selectedIndex];
	}else{
		vehiclecapacity[0]="1-4";	
	}
	
	var numpass = document.getElementById("adults").selectedIndex;
	var numofveh = 0;
	
	if (numpass > 0) {
			
		//if they only select the number of pass try to preselect the best vehicle type
		var selvtypeauto = -1;
		if (src==1){
			//get the first range
			var tempc = vehiclecapacity[0];
			var tempcsp = tempc.split("-");
			if ((numpass >= tempcsp[0]) && (numpass <= tempcsp[1])) {
				selvtypeauto = 0;
			}else {
				tempc = vehiclecapacity[1];
				if (tempc!=null){
					tempcsp = tempc.split("-");
					if ((numpass >= tempcsp[0]) && (numpass <= tempcsp[1])) {
						selvtypeauto = 1;
					}else{
						tempc = vehiclecapacity[2];
						if (tempc!=null){
							tempcsp = tempc.split("-");
							if ((numpass >= tempcsp[0]) && (numpass <= tempcsp[1])) {
								selvtypeauto = 2;
							}else {
								tempc = vehiclecapacity[3];
								if (tempc!=null){
									tempcsp = tempc.split("-");
									if ((numpass >= tempcsp[0]) && (numpass <= tempcsp[1])) {
										selvtypeauto = 3;
									}		
								}
							}
						}
					}
				}
			}
		}
		
		//check and set the the vtype capacity
		if (selvtype!=null) {
			if (selvtypeauto>-1){
				selvtype.selectedIndex = selvtypeauto;
			}
			var tempcarp = vehiclecapacity[selvtype.selectedIndex];
			
		}else{
			var tempcarp = vehiclecapacity[0];
		}
				
		var vehcapar = tempcarp.split("-");
		var vehmaxcap = vehcapar[1];
		
		numofveh = Math.floor(numpass / vehmaxcap);
		var remveh = numpass % vehmaxcap;
		
		if ( (remveh>0) || (numofveh==0)){
			numofveh = numofveh + 1;
		}
		
		if (selvtype!=null){
			var pr_ow = farow[selvtype.selectedIndex];
			var pr_ret = farrt[selvtype.selectedIndex];
			
		}else{
			var pr_ow = farow[0];
			var pr_ret = farrt[0];			
		}
		
		//check if we have rates
		var rate = 1;
		var currencydef = defcurrency;
		var rateindex = document.getElementById("selcur").selectedIndex;
		if (rateindex!=null){
			rate = farates[rateindex];
			currencydef = document.getElementById("selcur").options[document.getElementById("selcur").selectedIndex].text;
		}
		
		var t_ow = pr_ow * numofveh;
		//correct precission problem rate < 1
		t_ow = t_ow * (rate*1000)/1000;
		t_ow = Math.round(t_ow*100)/100;
		
		var t_ret = pr_ret * numofveh;
		t_ret = t_ret * (rate*1000)/1000;
		t_ret = Math.round(t_ret*100)/100;
		
		document.getElementById("prow").innerHTML = t_ow + " " + currencydef;
		document.getElementById("prrt").innerHTML = t_ret + " " + currencydef;
		novehs = numofveh;
		
	}else {
		//check if we have rates
		var rate = 1;
		var currencydef = defcurrency;
		var rateindex = document.getElementById("selcur").selectedIndex;
		if (rateindex!=null){
			rate = farates[rateindex];
			currencydef = document.getElementById("selcur").options[document.getElementById("selcur").selectedIndex].text;
		}
		//alert("rate = " + rate + " index = " + rateindex);
		
		var t_ow = 0;
		var t_ret = 0;
		if (selvtype!=null){
			t_ow = farow[selvtype.selectedIndex] * (rate*1000)/1000;
			t_ret = farrt[selvtype.selectedIndex] * (rate*1000)/1000;
			
			t_ow = Math.round(t_ow*100)/100;
			t_ret = Math.round(t_ret*100)/100;			
		}else{
			t_ow = farow[0] * (rate*1000)/1000;
			t_ret = farrt[0] * (rate*1000)/1000;
			
			t_ow = Math.round(t_ow*100)/100;
			t_ret = Math.round(t_ret*100)/100;
		}
		
		document.getElementById("prow").innerHTML = t_ow + " " + currencydef;
		document.getElementById("prrt").innerHTML = t_ret + " " + currencydef;
		
	}
	
	pricemes(numofveh,numpass,vehdesc);
	calctotalprice(t_ow,t_ret,currencydef);
	document.getElementById("nightdivmes").innerHTML = "";
	document.getElementById("nightdiv").style.visibility="hidden";
	document.getElementById("nightdiv").style.height="0px";
	document.getElementById("nightagree").checked=false;
	document.getElementById("totalfpricediv").innerHTML = totmessage;
}

function calctotalprice(ow,ret,currency){

	var reqamount = getReqTotal();
	if (document.getElementById("returntripret").checked == false){
		var total = ow+reqamount;
	}else{
		var total = ret+reqamount;
	}

	totprice=Math.round(total*100)/100;
	document.getElementById("totalpricedivmes").innerHTML = totprice + " " + currency;
	
}

function checkinnighttime(interval,transfertype){
	
	var timeint = interval.split("-");
	var timea = timeint[0].split(":");
	var timeb = timeint[1].split(":");
	
	
	var timeasecs = timea[0] * 3600 + timea[1] * 60;
	var timebsecs = timeb[0] * 3600 + timeb[1] * 60;
	var ret = false;
	
	if (transfertype==1){
		//only ow
		var ticheck = document.details.fromtime.value;
	}else{
		//check return
		var ticheck = document.details.totime.value;
	}


	var tchecksecs = ticheck.split(":")[0] * 3600 + ticheck.split(":")[1] * 60;
	
	var secs24 = 86400;
	
	if (timea[0]>timeb[0]){
		//check till 24 else take the second part
		if 	( (tchecksecs>=timeasecs) && (tchecksecs<secs24)){
			ret = true;
		}else if (tchecksecs<=timebsecs) {
			ret = true;
		}
	}else{
		if ((tchecksecs>=timeasecs) && (tchecksecs<=timebsecs)) {
			ret = true;
		}
	}
	
	return ret;
}

var displaynightalert=0;
function checknight(){
	ret=false;
	var selvtype = document.getElementById("vtype");
	var vehdesc= "1-4";
	if (selvtype!=null){
		var nightidx = selvtype.selectedIndex;
	}else{
		var nightidx=0;
	}
	
	//night fare
	if (ntime){
		if (ntime[nightidx]!=null){
			//check time specified for ow or return
			
			//check if we have rates
			var rate = 1;
			var currencydef = defcurrency;
			var rateindex = document.getElementById("selcur").selectedIndex;
			if (rateindex!=null){
				rate = farates[rateindex];
				currencydef = document.getElementById("selcur").options[document.getElementById("selcur").selectedIndex].text;
			}
			
			var innight = 0;
			if (checkinnighttime(ntime[nightidx],1)){
				innight=Math.round(farownt[nightidx]*novehs*rate*100)/100;
			}
			if (document.getElementById("returntripret").checked ==true){
				if (checkinnighttime(ntime[nightidx],2)){
					if (innight>0){
						innight=Math.round(farrtnt[nightidx]*novehs*rate*100)/100;				
					}else{
						//only round trip is in night time
						innight=Math.round(farownt[nightidx]*novehs*rate*100)/100;
					}
				}
			}
			
			if (innight>0) {
				ret =true;			
				document.getElementById("nightdivmes").innerHTML = innight + " " + currencydef;
				document.getElementById("nightdiv").style.visibility="visible";
				document.getElementById("nightdiv").style.height="60px";
				if  (document.getElementById("nightagree").checked ==false){					
					if (displaynightalert>0){
						alert(nightmesa + " " + innight + " " + currencydef + " " + nightmesb);
					}
					displaynightalert=1;
				}
				document.getElementById("nightdivmestotal").innerHTML = Math.round((totprice+innight)*100)/100 + " " + currencydef;
				document.getElementById("totalfpricediv").innerHTML = "";
				document.getElementById("totalpricedivmes").innerHTML = "";
			}else{
				document.getElementById("nightdivmes").innerHTML = "";
				document.getElementById("nightdiv").style.visibility="hidden";
				document.getElementById("nightdiv").style.height="0px";
				document.getElementById("nightagree").checked=false;
				document.getElementById("totalfpricediv").innerHTML = totmessage;
			}
		}else{
				document.getElementById("nightdivmes").innerHTML = "";
				document.getElementById("nightdiv").style.visibility="hidden";
				document.getElementById("nightdiv").style.height="0px";
				document.getElementById("nightagree").checked=false;
				document.getElementById("totalfpricediv").innerHTML = totmessage;
		}
	}
	return ret;
	
}

function updateReqCur(){
		
		for (var i = 0; i < reqpr.length; i++) {
			if (reqpr[i]>0) {
				//check if we have rates
				var rate = 1;
				var currencydef = defcurrency;
				var rateindex = document.getElementById("selcur").selectedIndex;
				if (rateindex!=null){
					rate = farates[rateindex];
					currencydef = document.getElementById("selcur").options[document.getElementById("selcur").selectedIndex].text;
				}
				//alert(document.getElementById("reqprspan[0]").innerHTML);
				document.getElementById("reqprspan["+i+"]").innerHTML = "( + " + Math.round(reqpr[i]*rate*100)/100 + " " + currencydef + " )";				
			}				
		}
		
}

function getReqTotal(){
	
	var ret=0;	
		for (var i = 0; i < reqpr.length; i++) {
			if (reqpr[i]>0) {
				
				if (document.getElementById("selreqs["+i+"]").checked==true){
					//check if we have rates
					var rate = 1;
					var rateindex = document.getElementById("selcur").selectedIndex;
					if (rateindex!=null){
						rate = farates[rateindex];
					}
					if (document.getElementById("returntripret").checked == true){
						rate = rate * 2;
					}
					ret += Math.round(reqpr[i]*rate*100)/100;
				}					
			}				
		}
	return ret;
}
