function isInteger(val) {
		var digits = "1234567890";
		for (var i=0; i < val.length; i++) {
			if (digits.indexOf(val.charAt(i)) == -1) { 
				return false; 
			}
		}
		return true;
	}

function getInt(str,i,minlength,maxlength) {
	for (x=maxlength; x>=minlength; x--) {
		var token = str.substring(i,i+x);
		if (isInteger(token)) {
			return token;
		}
	}
	return null;
}


function getDateFromFormat(val,format) {
	
		val = val+"";
		var format = 'yyyy/MM/dd'+"";
		var i_val = 0;
		var i_format = 0;
		var c = "";
		var token = "";
		var token2= "";
		var x,y;
		var year  = 0;
		var month = 0;
		var date  = 0;
		var bYearProvided = false;
		while (i_format < format.length) {
			// Get next token from format string
			c = format.charAt(i_format);
			token = "";

			while ((format.charAt(i_format) == c) && (i_format < format.length)) {
				token += format.charAt(i_format);
				i_format++;
			}

			// Extract contents of value based on format token
			if (token=="yyyy" || token=="yy" || token=="y") {
				if (token=="yyyy") { x=4;y=4; }// 4-digit year
				if (token=="yy")   { x=2;y=2; }// 2-digit year
				if (token=="y")    { x=2;y=4; }// 2-or-4-digit year
				year = getInt(val,i_val,x,y);
				bYearProvided = true;
				if (year == null) {
					return 0;
					//Default to current year
				}
				if (year.length != token.length){
					return 0;
				}

				i_val += year.length;
			}
			else if (token=="MMM") { // Month name
				month = 0;
				for (var i=0; i<MONTH_NAMES.length; i++) {
					var month_name = MONTH_NAMES[i];
					if (val.substring(i_val,i_val+month_name.length).toLowerCase() == month_name.toLowerCase()) {
						month = i+1;
						if (month>12) { month -= 12; }
						i_val += month_name.length;
						break;
					}
				}

				if (month == 0) { return 0; }
				if ((month < 1) || (month>12)) {
					return 0
				}
			}
			else if (token=="MM" || token=="M") {
				x=token.length; y=2;
				month = getInt(val,i_val,x,y);
				if (month == null) { return 0; }
				if ((month < 1) || (month > 12)) { return 0; }
				i_val += month.length;
			}
			else if (token=="dd" || token=="d") {
				x=token.length; y=2;
				date = getInt(val,i_val,x,y);
				if (date == null) { return 0; }
				if ((date < 1) || (date>31)) { return 0; }
				i_val += date.length;
			}
			else {
				if (val.substring(i_val,i_val+token.length) != token) {
					return 0;
				}
				else {
					i_val += token.length;
				}
			}
		}
		// If there are any trailing characters left in the value, it doesn't match
		if (i_val != val.length) {
			return 0;
		}
		// Is date valid for month?

		if (month == 2) {
			// Check for leap year
			if ( ( (year%4 == 0)&&(year%100 != 0) ) || (year%400 == 0) ) { // leap year
				if (date > 29){ return false; }
			}
			else {
				if (date > 28) { return false; }
			}
		}
		if ((month==4)||(month==6)||(month==9)||(month==11)) {
			if (date > 30) { return false; }
		}

		//JS dates uses 0 based months.
		month = month - 1;

		if (bYearProvided==false) {
			//Default to current
			var dCurrent = new Date();
			year = dCurrent.getFullYear();
		}

		var lYear = parseInt(year);
		if (lYear<=20) {
			year = 2000 + lYear;
		}
		else if (lYear >=21 && lYear<=99) {
			year = 1900 + lYear;
		}

		var newdate = new Date(year,month,date,0,0,0);

		return newdate;
}

function handleHttpResponse() {
	  if (http.readyState == 4) {
	    var result = trimStr(http.responseText);
		var f = document.forms['cautare'];
		var fsubmit = document.getElementById('fsubmit');
		if (result=="11") {
			fsubmit.src = "static/css/images/bt_cautarenoua_hu.gif";
			f.page.value="28";
			var tmp = new Date();
			f.submit();
		} 
		else {

			var msg = "";

			if (result.charAt(0)=="0") {

				var temp = document.getElementById('From');

				msg += "A ("+temp.value+") átvevő város nem érvényes. Kérjük válasszon másikat!\n";

				temp.value="";

			}

			if (result.charAt(1)=="0") {

				var temp = document.getElementById('To');

				msg += "A ("+temp.value+") átadó város nem érvényes. Kérjük válasszon másikat!\n";

				temp.value="";

			}



			if (msg!="") {

				fsubmit.src = "static/css/images/bt_cautarenoua_hu.gif";

				alert (msg);

			} else {

				//f.target="_self";

				f.page.value="29";

				f.submit();

			}

		}

	 }

	}



	function verCar() {

	  var f = document.forms['cautare'];

	  var from = document.getElementById('From').value;

	  var to = document.getElementById('To').value;

	  var x = f.From.value.split("(");

	  //alert('here');

	  if (x[1] != null)

	  {

	  	x = x[1].split(")");

	  	var frmval = x[0];

	  }else{

	  	frmval = f.From.value;

	  }



	 var xx = f.To.value.split("(");

	  //alert('here');

	  if (xx[1] != null)

	  {

	  	xx = xx[1].split(")");

	  	var cs = xx[0];

	  }else{

	  	cs = f.To.value;

	  }



	  var uri = url + 'From='+escape(frmval)+ '&To='+escape(cs);

	  http.open("GET", uri, true);

	  http.onreadystatechange = handleHttpResponse;

	  http.send(null);

	}



	//pentru selectia de aeroport

	function setCamp(camp, val) {

		var ob = document.getElementById(camp);

		ob.value=trimStr(val);

	}



	//validare form

	function verCautare() {

		var mesaj = "";

		var f = document.forms['cautare'];

		var fsubmit = document.getElementById('fsubmit');

		fsubmit.src = "static/css/images/bt_wait_hu.gif";

		f.From.value = trimStr(f.From.value);

		f.To.value = trimStr(f.To.value);

		//sursa OK?

		if (f.From.value == 'Teljesítés repülőterek'){

			fromval ='';

		}else{

			if ( f.From.value != ''  )

			{

				var x = f.From.value.split("(");

				if (x[1] == null){

					x[0] = f.From.value;

				}else{

					x = x[1].split(")");

				}

				var fromval = x[0];

			}

			else{

				var fromval = '';

			}

		}



		if (f.To.value == "Teljesítés repülőterek"){

			var cs = '';

		}else{

			if ( f.To.value != ''  )

				{

					var x = f.To.value.split("(");

					if (x[1] == null){

						x[0] = f.To.value;

					}else{

						x = x[1].split(")");

					}

					var cs = x[0];

					//alert(cs);

				}

				else{

					var cs = '';

				}

		}











		if (!(fromval.length>=2 && isAlphanumeric(fromval, 1))) {

			mesaj += 'Kérjük válassza ki az átvevő várost (legalább 2 karakter).\n';

		}



		//predare OK?

		if (!(cs.length>=2 && isAlphanumeric(cs, 1))) {

			mesaj += 'Kérjük válassza ki az átadó várost (legalább 2 karakter).\n';

		}











		//datele

		var temp = gdta_min;

		temp = temp.split("/");

		if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);

		temp[1] --;

		var mindta = new Date(temp[2], temp[1], temp[0]);

		temp = gdta_max;

		temp = temp.split("/");

		if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);

		temp[1] --;

		var maxdta = new Date(temp[2], temp[1], temp[0]);



		//data de plecare
		var temp = f.elements.DepartureDate.value.split("/");
		if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);
		temp[1] --;
		var depdta = new Date(temp[2], temp[1], temp[0]);
		if (getDateFromFormat(f.elements.DepartureDate.value) == 0) {
			mesaj += "Átvételi időpont nem érvényes. Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint "+gdta_min+" és nem később mint "+gdta_max+".\n";
		}
		else if (f.elements.DepartureDate.value=='' || depdta<mindta || depdta>maxdta) {
			mesaj += "Átvételi időpont nem érvényes. Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint "+gdta_min+" és nem később mint "+gdta_max+".\n";
		}



		//data de sosire
		temp = f.elements.ArrivalDate.value.split("/");
		if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);
		temp[1] --;
		var arrdta = new Date(temp[2], temp[1], temp[0]);
		//arrdta = arrdta.getTime()/1000;
		if (getDateFromFormat(f.elements.ArrivalDate.value) == 0) {
			mesaj += "Átadási időpont nem érvényes. Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint "+gdta_min+" és nem később mint "+gdta_max+".\n";
		}
		else if (f.elements.ArrivalDate.value=='' || arrdta<mindta || arrdta>maxdta) {
			mesaj += "Átadási időpont nem érvényes. Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint "+gdta_min+" és nem később mint "+gdta_max+".\n";
		} 
		else {
			var nrz = (arrdta-depdta)/(24*60*60*1000);
			if (nrz<1) {
				mesaj += "Átadási időpont nem érvényes. Az időpont formája éééé/hh/nn kell legyen, nem hamarabb mint az átvételi időpont plusz még egy nap.\n";
			}
		}



		//form ok?

		if (mesaj=="") {

			verCar();

			return false;

		} else {

			fsubmit.src = "static/css/images/bt_cautarenoua_hu.gif";

			mesaj = "Figyelem!\n"+mesaj;

			alert(mesaj);

			return false;

		}

	}



	function skimbaDta(dta1, dta2) {

		var temp = dta1.value.split("/");

		if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);

		temp[1] --;

		odta1 = new Date(temp[2], temp[1], temp[0]);



		temp = dta2.value.split("/");

		if (temp[1].length>1 && temp[1].charAt(0)=="0") temp[1] = temp[1].charAt(1);

		temp[1] --;

		odta2 = new Date(temp[2], temp[1], temp[0]);



		if (odta2<odta1) {

			dta2.value = dta1.value;

		}

	}



	var http = getHTTPObject();