function validateExtension(file_name, extensions) {
	var fileExt = "";

	file_name = file_name.toLowerCase();
	extensions = extensions.toLowerCase();

	if (extensions == "" || extensions == "*")
		return true;

	// Get file ext
	if (file_name.lastIndexOf('.') != -1)
		fileExt = file_name.substring(file_name.lastIndexOf('.')+1);

	var extensions = extensions.split(',');
	for (var i=0; i<extensions.length; i++) {
		var ext = extensions[i];
		if (ext != "" && ext == fileExt)
			return true;
	}

	return false;
}

function adsCheck() {
	// operation
	e = document.getElementById("operation");
	if (e.options[e.selectedIndex].value == 0) {
		window.alert("Виберіть вид операції.");
		e.focus();
		return false;
	}

	// realty type
	e = document.getElementById("rtype_id");
	rt_id = e.options[e.selectedIndex].value;
	if (rt_id == 0) {
		window.alert("Виберіть тип нерухомості.");
		e.focus();
		return false;
	}

 // kyiv and ukraine specific
	if (document.getElementById("kyiv").checked) {
 	// kyiv district
		e = document.getElementById("district_id");
 	if (e.options[e.selectedIndex].value == 0) {
  	window.alert("Виберіть район міста Києва.");
	 	e.focus();
			return false;
 	}
		// street
		e1 = document.getElementById("street_id");
		e2 = document.getElementById("street_other");		
 	if (e1.options[e1.selectedIndex].value == 0) {
  	window.alert("Виберіть вулицю міста Києва.");
	 	e1.focus();
			return false;			
 	}
		if (e1.options[e1.selectedIndex].value == -1 && e2.value == "") {
  	window.alert("Вкажіть вулицю міста Києва.");
	 	e2.focus();
			return false;			
 	}
	} else {
		// region
		e = document.getElementById("region_id");
 	if (e.options[e.selectedIndex].value == 0) {
  	window.alert("Виберіть область.");
	 	e.focus();
			return false;
 	}		

		// area
		e = document.getElementById("area_id");
 	if (e.options[e.selectedIndex].value == 0) {
  	window.alert("Виберіть район.");
	 	e.focus();
			return false;
 	}
		
		// settlement
		e1 = document.getElementById("settlement_id");
		e2 = document.getElementById("settlement_other");		
 	if (e1.options[e1.selectedIndex].value == 0) {
  	window.alert("Виберіть населений пункт.");
	 	e1.focus();
			return false;			
 	}
		if (e1.options[e1.selectedIndex].value == -1 && e2.value == "") {
  	window.alert("Вкажіть населений пункт.");
	 	e2.focus();
			return false;			
 	}		
	}
	
	// square
	e1 = document.getElementById("square_m");
	e2 = document.getElementById("square_h");
	s1 = new String(e1.value);
	t1 = s1.replace(',', '.');
	x1 = parseFloat(t1);
	s2 = new String(e2.value);
	t2 = s2.replace(',', '.');
	x2 = parseFloat(t2);
	if ((isNaN(x1) || x1 == 0) && (isNaN(x2) || x2 == 0)) {
		window.alert("Вкажіть одну з площ об'єкту.");
		e1.value = t1;
		e1.focus();
		return false;			 																																					
	} 
	if (x1 <= 0) {
		window.alert("Площа об'єкту є додатнім числом.");
		e1.value = t1;
		e1.focus();
		return false;		
	} else if (!isNaN(x1))
	 e1.value = x1;
	if (x2 <= 0) {
		window.alert("Площа об'єкту є додатнім числом.");
		e2.value = t2;
		e2.focus();
		return false;		
	} else if (!isNaN(x2))
	 e2.value = x2;
		
 // floors
	if (rt_id != no_floor_rtype) { // land have no floor/floors properties
 	e1 = document.getElementById("floor");
 	e2 = document.getElementById("floors");
 	x1 = parseInt(e1.value);
 	x2 = parseInt(e2.value);		
  if (isNaN(x2)) {
			window.alert("Вкажіть кількість поверхів.");
			e2.focus();		
			return false;
		} else	if (x1 > x2) {
			window.alert("Кількість поверхів має бути не меншою за номер поверху.");
			e2.focus();				
			return false;
		}
	}
	
	// price
	e = document.getElementById("price");
	if ((isNaN(parseInt(e.value)) || e.value <= 0) && e.value != '') {
		window.alert("Ціна має бути цілим додатнім числом. Договірна ціна - це порожнє поле.");
		e.focus();
		return false;		
	}
	
	// contact info
	e = document.getElementById("phone");
	if (e.value == "") {
		window.alert("Вкажіть контактний телефон.");
		e.focus();
		return false;		
 }
	
	// image extension
	e = document.getElementById("image");	
	if (e.value != "")
 	if (!validateExtension(e.value, "jpg,jpeg,png,gif")) {
 		window.alert("Формат файлу має бути jpg, jpeg, png або gif.");
 		e.focus();
 		return false;			
 	}	
}

function switchUkraine(x) {
	if (x == 1) {
		document.getElementById("k1").style.display = "none";
		document.getElementById("k2").style.display = "none";
		if (document.getElementById("k3") != null) // search does not have k3
 	 document.getElementById("k3").style.display = "none";
		if (document.getElementById("k4") != null) // search does not have k4
   document.getElementById("k4").style.display = "none";				
		
		document.getElementById("u1").style.display = "";
		document.getElementById("u2").style.display = "";
		document.getElementById("u3").style.display = "";
		s = document.getElementById("settlement_id");
		e = document.getElementById("u4");
		if (s.options[s.selectedIndex].value == -1)
		 e.style.display = "";
		else
		 e.style.display = "none";
	} else {
		document.getElementById("k1").style.display = "";
		document.getElementById("k2").style.display = "";
		if (document.getElementById("k3") != null)	// search does not have k3
 	 document.getElementById("k3").style.display = "";
		s = document.getElementById("street_id");
		e = document.getElementById("k4");
		if (e != null) { // search does not have k4
		 if (s.options[s.selectedIndex].value == -1)
		  e.style.display = "";
		 else
		  e.style.display = "none";			
		}
		document.getElementById("u1").style.display = "none";
		document.getElementById("u2").style.display = "none";
		document.getElementById("u3").style.display = "none";	
		document.getElementById("u4").style.display = "none";	
	}
}

function switchOther(select, id) {
	if (select.options[select.selectedIndex].value == -1) 
	 document.getElementById(id).style.display = "";
	else	
 	document.getElementById(id).style.display = "none";
}

function setOptions(select, arr, leave) {
	select.length = leave ? leave : 0;
	for (var i in arr) {
		select.options[select.length] = new Option(arr[i], i, false, false);
	}
	select.selectedIndex = 0;
	select.disabled = false;
	return;
}

var req_Area = false;
	
function doLoad_Area(select) {
	sel = document.getElementById("area_id");
	sel.disabled = true;
	if (!req_Area) {
		req_Area = new JSHttpRequest();
		req_Area.onreadystatechange = function() {
			if (req_Area.readyState == 4) {
				setOptions(sel, req_Area.responseJS.areaOptions, 1);
				document.getElementById("settlement_id").length = 1;
			}
		}
	}

	var rid = select.options[select.selectedIndex].value;
	if (rid > 0) {
		req_Area.caching = true;
		req_Area.open('GET', 'modules/_area_id.php', true);
		req_Area.send({region_id: rid});
	} else {
		setOptions(sel, [], 1);
		document.getElementById("settlement_id").length = 1;
	}
}

var req_Settlement = false;
	
function doLoad_Settlement(select) {
	sel = document.getElementById("settlement_id");
	sel.disabled = true;
	if (!req_Settlement) {
		req_Settlement = new JSHttpRequest();
 	req_Settlement.onreadystatechange = function() {						
	 	if (req_Settlement.readyState == 4)
				setOptions(sel, req_Settlement.responseJS.settlementOptions, 1);				
		}
	}

 var aid = select.options[select.selectedIndex].value;

	if (aid > 0) {
		req_Settlement.caching = true;
		req_Settlement.open('GET', 'modules/_settlement_id.php', true);
		req_Settlement.send({area_id: aid});
	} else {
		setOptions(sel, [], 1);
	}
}

var req_Street = false;

function doLoad_Street(select) {
	sel = document.getElementById("street_id");
	sel.disabled = true;
	if (!req_Street) {
		req_Street = new JSHttpRequest();
 	req_Street.onreadystatechange = function() {						
	 	if (req_Street.readyState == 4)
				setOptions(sel, req_Street.responseJS.streetOptions, 1);				
		}
	}

 var did = select.options[select.selectedIndex].value;

	if (did > 0) {
		req_Street.caching = true;
		req_Street.open('GET', 'modules/_street_id.php', true);
		req_Street.send({district_id: did});
	} else {
		setOptions(sel, [], 1);
	}
}
