function WindowOnLoad (f) { 
	var prev = window.onload; 
	window.onload = function() { 
		if (prev) prev(); f();
	}
}

function PageHeight() {
	PageHeight = document.body.clientHeight;
	document.getElementById('Ads').style.height = (PageHeight - 58) + 'px';
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

/*
	Copyright Robert Nyman, http://www.robertnyman.com
	Free to use if this text is included
*/
function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
	var oCurrent;
	var oAttribute;
	for(var i=0; i<arrElements.length; i++){
		oCurrent = arrElements[i];
		oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
		if(typeof oAttribute == "string" && oAttribute.length > 0){
			if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
				arrReturnElements.push(oCurrent);
			}
		}
	}
	return arrReturnElements;
}
 
function strValidate(val) {
	var str = val.replace(/&/g, "");
	var str = str.replace(/'/g, "");
	
	return str;
}

function IsInBetween (date, from, to) {
	var is = false;
	if (date >= from && date <= to) is = true;

	return is;
}

function HideContent(d) {
	if(d.length < 1) return;
	document.getElementById(d).style.display = "none";
}

function ShowContent(d) {
	if(d.length < 1) return;
	document.getElementById(d).style.display = "block";
}
 
function ReverseContentDisplay(d, t) {
	if (d.length < 1) {
		return;
	}
	if (document.getElementById(d).style.visibility == "hidden") {
		document.getElementById(d).style.visibility = "visible";
	}
	else {
		document.getElementById(d).style.visibility = "hidden";
	}
}

function TextField (id) {
	var Obj = document.getElementById(id);
	Obj.qType = "locality";
	
	Obj.getQueryString = function () {
		var str = "";
		str = Obj.qType + "." + strValidate(Obj.value) + "/";
		return str;
	}

	return Obj;
}

function Redirect (query) {
	window.location = ("/search-results.php?q=" + query);
}

function getFormAll () {
	var query = "";
	var toggle = new Array;
	
	/* Available filters */
	toggle["type"] = "type.";
	toggle["str"] = "str.";
	toggle["prc"] = "prc.";
	
	if ($("#FromCal").DatePickerGetDate() && $("#ToCal").DatePickerGetDate()) {	
		var from = DateToString($("#FromCal").DatePickerGetDate());
		var to = DateToString($("#ToCal").DatePickerGetDate());
		var Today = new Date();
		var today = DateToString(Today);
		if (from != today || to != today) {
			query += "from." + from + "/";
			query += "to." + to + "/";	
		}
	}
	
	if ($("#TextField").val()) {
		query += "locality." + strValidate($("#TextField").val()) + "/";
	}

	var Check = document.getElementsByClassName("Check");
	for (var i=0; i<Check.length; i++) {
		if ($(Check[i]).children(":checkbox").is(':checked')) {
			toggle[$(Check[i]).attr("tt")] += $(Check[i]).attr("toggle") + "-";
		}
	}
	
	for (var label in toggle) {
		query += toggle[label].substr(0,toggle[label].length - 1) + "/";
	}
	
	if (query != "") Redirect(query);
}

function SubmitButtons (cls) {
	var Obj = $("." + cls);
	Obj.css("cursor", "pointer");

	return Obj;
}

function SearchForm () {
	var Field = new TextField("TextField");
	var Form = document.getElementById("Search");
	
	var Submit = SubmitButtons("Submit");

	var fromStatus = false;
	var toStatus = false;
	
	var todayDate = new Date();
		
	var fromDate = new Date();
	var toDate = fromDate;
	
	if ($("#From").attr("d")) {
		fromDate = getDate($("#From").attr("d"));
	}
	
	if ($("#To").attr("d")) {
		toDate = getDate($("#To").attr("d"));
	}
	
	var FromCal = $("#FromCal");
	var ToCal = $("#ToCal");
	
	FromCal.DatePicker({
		flat: false,
		format: "e b Y",
		start: 6,
		locale: LANG["datepicker"],
		date: fromDate,
		calendars: 1,
		mode: "single",
		onRender: function(date) {
			var disable = false;

			if (date < todayDate) {
				disable = true;
			}
			
			if (fromDate != toDate) {
				if (date > toDate) {
					disable = true;	
				}
			}
			
			return {
				disabled: disable  
			}
		},		
		onChange: function(formated, date) {
			if (date) {
				fromDate = FromCal.DatePickerGetDate();
				FromCal.DatePickerSetDate(date, true);
				
				$("#From").get(0).innerHTML = formated
			}
			
			FromCal.DatePickerHide();
		},
		onHide: function(dates) {
			fromDate = FromCal.DatePickerGetDate();
		
			if (ToCal.DatePickerGetDate() < fromDate) {
				ToCal.DatePickerSetDate(fromDate, true);
				toDate = fromDate;
			}
				
			fromStatus = false;
		}
	});

	ToCal.DatePicker({
		flat: false,
		format: "e b Y",
		start: 6,
		locale: LANG["datepicker"],
		date: toDate,
		calendars: 1,
		mode: "single",
		onRender: function(date) {
			var disable = false;

			if (date < fromDate) {
				disable = true;
			}
			
			return {
				disabled: disable  
			}
		},		
		onChange: function(formated, date) {
			if (date) {
				ToCal.DatePickerSetDate(date, true);
				
				$("#To").get(0).innerHTML = formated
			}
			
			ToCal.DatePickerHide();
		},
		onHide: function(dates) {
			toDate = ToCal.DatePickerGetDate();
						
			toStatus = false;
		}
	});

	FromCal.DatePickerSetDate(fromDate, true);
	ToCal.DatePickerSetDate(toDate, true);
	
	$("#From").css("cursor", "pointer");
	$("#To").css("cursor", "pointer");
	
	$("#From").bind("click", function(){
		if (!fromStatus) {
			FromCal.DatePickerShow();
		}

		return false;
	});
		
	$("#To").bind("click", function(){
		if (!toStatus) {
			ToCal.DatePickerShow();
		}

		return false;
	});

	Submit.bind("click", function () {
		getFormAll();
	});
	
	Field.onkeyup = function(event) {
		if (window.event)
		{
			var event = window.event;
		}
		
		var KeyID = event.keyCode;
		switch(KeyID) {
			case 13:
				getFormAll();
			break;
		}
	}
	
	$(".Check").css("cursor", "pointer");
	
	$(".Check").each(function () {
		$(this).mouseover(function () {
			$(this).addClass("Hover");
		});
		
		$(this).mouseout(function () {
			$(this).removeClass("Hover");
		});
	});
	
	$(".Check").bind("click", function () {
		if ($(this).children(":checkbox").is(':checked')) {
			$(this).children(":checkbox").removeAttr('checked');
		} else {
			$(this).children(":checkbox").attr('checked', true);			
		}
		
		getFormAll();
	});
}

function DateToString (val) {
	var date = 0;
	
	if (val.getFullYear()) {
		date = val.getFullYear()*10000 + (val.getMonth() + 1)*100 +  val.getDate();
	}
	
	return date;	
}

function getDate (val) {
	var date = new Date(0);
	if (val != 0) {
		var y = parseInt(val.substr(0,4), 10);
		var m = parseInt(val.substr(4,2), 10);
		var d = parseInt(val.substr(6,2), 10);

		date = new Date(
			y === undefined ? now.getFullYear() : y,
			m === undefined ? now.getMonth() : m - 1,
			d === undefined ? now.getDate() : d, 0, 0, 0
		);
	}

	return date;
}

function getDatePlusDays (val, plus) {
	var date = new Date(0);
	if (val != 0) {
		var y = parseInt(val.substr(0,4), 10);
		var m = parseInt(val.substr(4,2), 10);
		var d = parseInt(val.substr(6,2), 10);

		date = new Date(
			y === undefined ? now.getFullYear() : y,
			m === undefined ? now.getMonth() : m - 1,
			d === undefined ? now.getDate() : d+plus, 0, 0, 0
		);
	}

	return date;
}
