

	function kH(e)
	{
		var pK = (window.event != null)?window.event.keyCode:e.which;
		if(pK == 13)
		{
            var e=e? e : window.event;
            var event_element=e.target? e.target : e.srcElement;
            var id = event_element.id;
            if(id == "PropertySavedSearchDropDown1")
            {
                document.getElementById("SearchButton2").click();
            }
            else if(id == "PropertyIDTextBox1")
            {
                bSearchSubmitButtonClicked = false;
                document.Form1.SearchSubmitButton.value = 'ID';
                document.location = document.getElementById("btnSearchById").href;
            }
            else
            {
                document.getElementById("SearchButton3").click();
            }
            
			return false;
		}
		else
		{
			if(window.event != null && window.event.srcElement.onkeypress != null)
			{	//IE bubbles up
				fireEvent = window.event.srcElement.onkeypress;
				return fireEvent();
			}
			else
			{	//NS trickles down (or not set)
				return true;
			}
		}
	}


	function checkZip(sender, args){
		//only check if US
		if(document.Form1.PropertyCountryDropDownList1.options[document.Form1.PropertyCountryDropDownList1.selectedIndex].value == 'US'){					
			var sZips = args.Value;				
			var arZips;
			if(sZips.indexOf(',') > -1)
				arZips = sZips.split(',');
			else if(sZips.indexOf(';') > -1)
				arZips = sZips.split(';');
			else
				arZips = sZips.split(' ');
					
			for(var i=0;i<arZips.length;i++){
				var sZip = arZips[i].replace('-','').replace(' ','');
				if( !isInteger(sZip) || ( isInteger(sZip) && sZip.length != 5 && sZip.length != 9) ){
					args.IsValid = false;
					return;
				}
			}	
			args.IsValid = true;
		}				
		else{
			args.IsValid = true;
		}
	}


	//This function test the field only if it has filled out, otherwise, return is always valid\
	function checkValidPropIDs(sender, args){
		if(bSearchSubmitButtonClicked){
			if(args.Value.length > 0 && args.Value != 'Property ID Search'){	//no check if not filled out
				var sIDsTemp = args.Value;				
				var arIDs;
				
				var sIDs = '';
				sIDsTemp = sIDsTemp.replace(' ','');	//take out spaces
				var bAddComma = false;
				for (i = 0; i < sIDsTemp.length; i++)
				{   
					var c = sIDsTemp.charAt(i);
					if (!isNaN(parseInt(c,10))){
						bAddComma = true;
						sIDs += c;
					}
					else if (bAddComma && sIDs.length > 0){
						bAddComma = false;
						sIDs += ',';
					}						
				}
				if(sIDs.lastIndexOf(',') == (sIDs.length-1))sIDs = sIDs.substring(0,sIDs.length-1);	//index is 0 based
				if(sIDs.length == 0){	//after digits extraction, if none was found, invalid
					args.IsValid = false;
					return;
				}
				document.forms[0].PropertyIDTextBox1.value = sIDs;
			}
		}
		args.IsValid = true;	//if get here, passed the tests above, especially in the for loop
	}


	function checkEmptyPropIDs(sender, args){
		if(bSearchSubmitButtonClicked){
			if(args.Value.length == 0 || args.Value == 'Property ID Search'){	//no check if not filled out
				args.IsValid = false;
				document.forms[0].PropertyIDTextBox1.focus();
				return;
			}
		}
		args.IsValid = true;	//if get here, passed the tests above which 'return' early
	}	
		
		
	function checkSavedSearchSelection(sender, args){
		if(!bSearchSubmitButtonClicked){
			var el = document.forms[0].PropertySavedSearchDropDown1;
			if(el.options[el.options.length - 1].value != '-1' && el.options[el.selectedIndex].value == '-1'){
				args.IsValid = false;
			}
			else{
				args.IsValid = true;
			}
		}
		else{
			args.IsValid = true;
		}
	}	


	//////////////////////////////////////////
	//Handle on blur event
	//////////////////////////////////////////
	function searchFormatNum(what) {
		var str = what.value;
		if(str.length == 0)return;
		var i;
		var newstr = "";
		var add;
		var started = false;
		var dot = false;
		for (i = 0; i < str.length; i++) {
			add = false;
			if (str.charAt(i) != ',' && str.charAt(i) >= '0' && str.charAt(i) <= '9') {
				add = true;
			}
			else
			if (str.charAt(i) == '.' && !dot) {
				started = true;
				dot = true
				add = true;
			}
			if (str.charAt(i) == '.' && i == 0) {
				newstr+='0';
			}
			if (add)
				newstr += str.charAt(i);
		}
		if (newstr.length == 0 || newstr == ".")
			newstr = "0";
	
		newstr = parseFloat(newstr).toString();
	
		if (newstr.charAt(0) == '.') {
			newstr = "0" + newstr;
		}
	
		var start = newstr.indexOf(".");
		if (start < 0) {
			start = newstr.length - 1;
		}
		else {
			start--;
		}
	
		var newstr2 = "";
		while (i >= 0) {
			if ( i > start) {
			}
			else {
				if ((start - i) % 3 == 0 && i !=start) {
					newstr2 += ",";
				}
			}
			newstr2 += newstr.charAt(i);
			i--;
		}
		what.value = searchReverseStr(newstr2);
	}
	
	
	//Helper function / Reverse
	function searchReverseStr(str) {
		var newstr = "";
		for (i = str.length; i >= 0; i --) {
			newstr += str.charAt(i);
		}
		return newstr;
	}
	
	
	//Helper function / Strip it
	function searchStripIt(str, ch) {
		var newstr = "";
		for (i = 0; i < str.length; i++) {
			if (str.charAt(i) != ch) {
				newstr += str.charAt(i);
			}
		}
		return newstr;
	}


	///////////////////////////////////////////
	//Handle onkeypress event
	///////////////////////////////////////////
	function searchPress(event, what, numDecimals) {
		var strValue;
		var el;
	
		if(what.id == null)return;

		var isIE = document.all ? true : false;
		var isNS = (navigator.appName.indexOf('Netscape') > -1) ? true : false;
	
		if(isIE){
			strValue = event.keyCode
			el = event.srcElement
		}
		if(isNS){
			strValue = event.which
			el = event.target
		}

		var key = String.fromCharCode(strValue)
		if (strValue == 8 | strValue == 0) {
			return true;
			
		}
		var dot = false;
		var str = what.value;
	
		//Decimal check
		var dpos = str.lastIndexOf(".")
		if (dpos > 0) {
			var decimalnumbers = str.substring(dpos,str.length)
			if (decimalnumbers.length > numDecimals) {
				return false
			}
		}
		if(key == "." && numDecimals < 1) return false;
	
		if (str.indexOf(".") >= 0) {
			dot = true;
		}
		if (((key < '0' || key > '9') && key != ',' && (key != '.')) || (key == '.' && dot)) {
			return false;
		}else{
			if(key == "." && el.value.indexOf('.') >= 0){
					return false
			}
			return true
		}
		return true;
	}



	function isInteger(s)
	{
		var i;
		for (i = 0; i < s.length; i++)
		{   
			var c = s.charAt(i);
			if (((c < "0") || (c > "9"))) return false;
		}
		return true; // All characters are numbers.
	}


	function stripCharsInBag(s, bag)
	{
		var i;
		var returnString = "";
		// Search through string's characters one by one.
		// If character is not in bag, append to returnString.
		for (i = 0; i < s.length; i++){   
			var c = s.charAt(i);
			if (bag.indexOf(c) == -1) returnString += c;
		}
		return returnString;
	}


	function daysInFebruary (year){
		// February has 29 days in any year evenly divisible by four,
		// EXCEPT for centurial years which are not also divisible by 400.
		return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
	}


	function DaysArray(n) 
	{
		for (var i = 1; i <= n; i++) 
		{
			this[i] = 31
			if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
			if (i==2) {this[i] = 29}
		} 
		return this
	}


	function isDate(sDate, dtCh)
	{
		var minYear = 1900;
		var maxYear = 2100;
	
		//Days in each month
		var daysInMonth = DaysArray(12);
		
		var pos1 = sDate.indexOf(dtCh);
		var pos2 = sDate.indexOf(dtCh, pos1+1);
		
		var sMonth = sDate.substring(0,pos1);
		var sDay = sDate.substring(pos1+1,pos2);
		var sYear = sDate.substring(pos2+1);
		
		strYr = sYear;
		if (sDay.charAt(0) == "0" && sDay.length > 1) 
			sDay = sDay.substring(1);
		
		if (sMonth.charAt(0) == "0" && sMonth.length > 1) 
			sMonth = sMonth.substring(1);
		
		for (var i = 1; i <= 3; i++) 
		{
			if (strYr.charAt(0) == "0" && strYr.length > 1) 
				strYr = strYr.substring(1);
		}
		
		month = parseInt(sMonth);
		day = parseInt(sDay);
		year = parseInt(strYr);
		
		if (pos1 == -1 || pos2 == -1)
		{
			return false //The date format should be : mm/dd/yyyy
		}
		if (sMonth.length < 1 || month < 1 || month > 12)
		{
			return false //Please enter a valid month
		}
		if (sDay.length < 1 || day < 1 || day > 31 || (month==2 && day > daysInFebruary(year)) || day > daysInMonth[month])
		{
			return false //Please enter a valid day
		}
		if (sYear.length != 4 || year==0 || year < minYear || year > maxYear)
		{
			return false //Please enter a valid 4 digit year between "+minYear+" and "+maxYear
		}
		if (sDate.indexOf(dtCh,pos2+1)!= -1 || isInteger(stripCharsInBag(sDate, dtCh)) == false)
		{
			return false //Please enter a valid date
		}
		
		return true //Valid date!!
	}


	function getDay(sDate, dtCh)
	{
		var pos1 = sDate.indexOf(dtCh);
		var pos2 = sDate.indexOf(dtCh, pos1+1);

		var sMonth = sDate.substring(0,pos1);
		var sDay = sDate.substring(pos1+1,pos2);

		if (sDay.charAt(0) == "0" && sDay.length > 1) 
			sDay = sDay.substring(1);

		return sDay;
	}


	function getMonth(sDate, dtCh)
	{
		var pos1 = sDate.indexOf(dtCh);

		var sMonth = sDate.substring(0,pos1);

		if (sMonth.charAt(0) == "0" && sMonth.length > 1) 
			sMonth = sMonth.substring(1);

		return sMonth;
	}


	function getYear(sDate, dtCh)
	{
		var pos1 = sDate.indexOf(dtCh);
		var pos2 = sDate.indexOf(dtCh, pos1+1);

		var sYear = sDate.substring(pos2+1);

		strYr = sYear;

		for (var i = 1; i <= 3; i++) 
		{
			if (strYr.charAt(0) == "0" && strYr.length > 1) 
				strYr = strYr.substring(1);
		}

		return strYr;
	}


	function isValidDateRange(sMinDate, sMaxDate)
	{
		//MinDate
		var Month1 = parseInt(getMonth(sMinDate, "/"));
		var Day1 = parseInt(getDay(sMinDate, "/"));
		var Year1 = parseInt(getYear(sMinDate, "/"));

		//MaxDate
		var Month2 = parseInt(getMonth(sMaxDate, "/"));;
		var Day2 = parseInt(getDay(sMaxDate, "/"));
		var Year2 = parseInt(getYear(sMaxDate, "/"));


		if (Year1 > Year2)
		{
			return false
		}
		if (Year1 == Year2)
		{
			if (Month1 > Month2)
			{
				return false
			}
			if (Month1 == Month2)
			{
				if (Day1 > Day2)
				{
					return false
				}
			}	
		}
		return true //Valid Range!!
	}


	function checkDateEntered(sender, args){
		if (document.forms[0].PropertyDateRangeRadioButtonList1_1.checked)
		{
			if(args.Value.length == 0 || args.Value == 'mm/dd/yyyy')
			{
				args.IsValid = true;
			}
			else
			{
				args.IsValid = isDate(args.Value, "/");
				//args.IsValid = false;
			}
		}
		else
		{
			args.IsValid = true;
		}
	}


		
	function checkDateEnteredRange(sender, args)
	{
		if (document.forms[0].PropertyDateRangeRadioButtonList1_1.checked)
		{
			var sDate1 = document.getElementById('PropertyListingDateEnteredMinimumTextBox1').value;
			var sDate2 = document.getElementById('PropertyListingDateEnteredMaximumTextBox1').value;

			if (sDate1 == 'mm/dd/yyyy' && sDate2 == 'mm/dd/yyyy')
			{
				args.IsValid = true;
			}
			else
			{
				args.IsValid = isValidDateRange(sDate1, sDate2);
			}	
		}
		else
		{
			args.IsValid = true;
		}
	} 
