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) {
		val = val+"";
		var format = "dd/MM/yyyy"+"";
		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=="1") {
			fsubmit.src = "static/css/images/btn_cautare_noua_bg.gif";
			f.page.value="24";
			var tmp = new Date();
			//tmp = "m_"+tmp.getTime();
			//FormLoadPopup(tmp);
			//f.setAttribute("target", tmp);
			f.submit();
		} else {
			var msg = "";
			if (result.charAt(0)=="0") {
				var temp = document.getElementById('From');
				msg += "Градът на предаване ("+temp.value+") е невалиден! Мол�? изберете друг!\n";
				temp.value="";
			}

			if (msg!="") {
				fsubmit.src = "static/css/images/btn_cautare_noua_bg.gif";
				alert (msg);
			} else {
				//f.target="_self";
				f.page.value="25";
				f.submit();
			}
		}
	 }
	}

	function verHotel() {
	  var f = document.forms['cautare'];
	  var from = document.getElementById('From').value;
	  var xx = f.From.value.split("(");
	  //alert('here');
	  if (xx[1] != null)
	  {
	  	xx = xx[1].split(")");
	  	var frmval = xx[0];
	  }else{
	  	frmval = f.From.value;
	  }
	  var uri = url + 'From='+escape(frmval);
	  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/btn_wait_bg.gif";
		f.From.value = trimStr(f.From.value);
		if (f.From.value == "Въведете града"){
			var cs = '';
			}else{
				
				if ( f.From.value != ''  )
					{
						var x = f.From.value.split("(");
						//alert(x);
						if (x[1] != null){
							//alert(x[1]);
							x = x[1].split(")");
							var cs = x[0];
						}else{
							//alert('aici');
							cs = f.From.value;
						}
						
						
					}
					else{
						var cs = '';
					}
			}
		
		
		
		//sursa OK?
		if (!(cs.length>=3 && isAlphanumeric(cs, 1))) {
			mesaj += 'Моля изберете града на предаване.\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 sosire
		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 += "невалидна дата на пристигане! Датата трябва да е във формат дд/мем/гггг, не по-рано от "+gdta_min+" и не по-късно от "+gdta_max+".\n";
		}
		else if (f.elements.DepartureDate.value=='' || depdta<mindta || depdta>maxdta) {
			mesaj += "невалидна дата на пристигане! Датата трябва да е във формат дд/мем/гггг, не по-рано от "+gdta_min+" и не по-късно от "+gdta_max+".\n";
		}

		//form ok?
		if (mesaj=="") {
			verHotel();
			return false;
		} else {
			fsubmit.src = "static/css/images/btn_cautare_noua_bg.gif";
			mesaj = "Внимание!\n"+mesaj;
			alert(mesaj);
			return false;
		}
	}

	var http = getHTTPObject();