function showSearchForm(formType) {
	var searchFormArrEle = new Array(); var searchFormTabBg = new Array(); 
	var quickSearchArrEle = Array('searchFormElement2', 'searchFormElement7', 'searchFormElement8'); var advancedSearchArrEle = Array('searchFormElement2', 'searchFormElement3', 'searchFormElement5', 'searchFormElement8'); var searchByPropertyIdArrEle = Array('searchFormElement1', 'searchFormElement8'); var searchByLocalityArrEle = Array('searchFormElement2', 'searchFormElement3', 'searchFormElement4', 'searchFormElement8'); var searchAgentsArrEle = Array('searchFormElement6', 'searchFormElement8'); var searchBuildersArrEle = Array('searchFormElement6', 'searchFormElement8');
	searchFormArrEle['quickSearch'] = quickSearchArrEle; searchFormArrEle['advancedSearch'] = advancedSearchArrEle; searchFormArrEle['searchByPropertyId'] = searchByPropertyIdArrEle; searchFormArrEle['searchByLocality'] = searchByLocalityArrEle; searchFormArrEle['searchAgents'] = searchAgentsArrEle; searchFormArrEle['searchBuilders'] = searchBuildersArrEle;
	searchFormTabBg['quickSearch'] = 'quick_search_bg.jpg'; searchFormTabBg['advancedSearch'] = 'advanced_search_bg.jpg'; searchFormTabBg['searchByPropertyId'] = 'property_id_search_bg.jpg'; searchFormTabBg['searchByLocality'] = 'locality_search_bg.jpg'; searchFormTabBg['searchAgents'] = 'agents_search_bg.jpg'; searchFormTabBg['searchBuilders'] = 'builders_search_bg.jpg';

	var searchFormType = document.getElementById('searchType'); var searchFormTab = document.getElementById('searchTab'); var selectedCategory = document.getElementById('propertyCategory');
	//alert(searchFormType.value); alert(formType);
	if (searchFormType.value != formType) {
		var showFormArrEle = searchFormArrEle[formType];
		for (var j = 1; j <= 8; j++) {
			var searchFormElementObjId = 'searchFormElement'+j;
			var formEleObj = document.getElementById(searchFormElementObjId);
			var findsearchFormElement = findElementInArray(searchFormArrEle[formType], searchFormElementObjId);
			
			if (findsearchFormElement == true) {
				formEleObj.style.display = "block"; formEleObj.style.height = "auto"; formEleObj.style.visibility = "visible";
			} else if (findsearchFormElement == false){
				formEleObj.style.visibility = "hidden"; formEleObj.style.height = "0px"; formEleObj.style.display = "none";
			}
		}
		searchFormType.value = formType;
		searchFormTab.style.background = "url(../images/"+searchFormTabBg[formType]+")";
		if (formType == 'advancedSearch' && selectedCategory.selectedIndex != 0) {
			showAdvancedSearchOptions(selectedCategory.selectedIndex);
		}
		changeLocation(formType, window.location);
	}
	showHiddenSearchForm(formType, 'show');
}

function findElementInArray(arr, searchStr) {
	for (var i = 0; i < arr.length; i++) {
		if (arr[i] == searchStr) {
			return true;
		}
	}
	return false;
}

function showAdvancedSearchOptions(selectedCategoryValue) {
	var propertyForBuyObj = document.getElementById('propertyForBuy');
	var propertyForRentInObj = document.getElementById('propertyForRentIn');
	var propertyForSellObj = document.getElementById('propertyForSell');
	var propertyForRentOutObj = document.getElementById('propertyForRentOut');

	var propertyForValue;
	if (propertyForBuyObj.checked) {
		propertyForValue = "displayBuy"; displayAdvancedOptionsDispalyArea("displayAdvancedSearchOptionsForBuy");
	} else if (propertyForRentInObj.checked) {
		propertyForValue = "displayRentIn"; displayAdvancedOptionsDispalyArea("displayAdvancedSearchOptionsForRentIn");
	} else if (propertyForSellObj.checked) {
		propertyForValue = "displaySell"; displayAdvancedOptionsDispalyArea("displayAdvancedSearchOptionsForSell");
	} else if (propertyForRentOutObj.checked) {
		propertyForValue = "displayRentOut"; displayAdvancedOptionsDispalyArea("displayAdvancedSearchOptionsForRentOut");
	}

	for (ind = 1; ind < 6; ind++) {
		var strInd = new String(ind);
		visbObj = document.getElementById(propertyForValue.concat(strInd));
		if (selectedCategoryValue == ind) {
			visbObj.style.visibility = "visible"; visbObj.style.height = "auto"; visbObj.style.display = "block";
		} else {
			visbObj.style.visibility = "hidden"; visbObj.style.height = "0px"; visbObj.style.display = "none";
		}
	}
}

function displayAdvancedSearchOptions(objId) {
	var propForBuyObj = document.getElementById('propertyForBuy');
	var propForRentInObj = document.getElementById('propertyForRentIn');
	var propForSellObj = document.getElementById('propertyForSell');
	var propForRentOutObj = document.getElementById('propertyForRentOut');
	var categoryObj = document.getElementById('propertyCategory');
	var typeObj = document.getElementById('propertyType');
	var stateObj = document.getElementById('propertyState');
	var cityObj = document.getElementById('propertyCity');
	
	if (objId == 'displayAdvancedSearchOptionsForSell' || objId == 'displayAdvancedSearchOptionsForRentOut') {
		typeObj.options[0].innerHTML = "Select Type"; typeObj.multiple = ''; typeObj.size = '';
		cityObj.options[0].innerHTML = "Select City"; cityObj.multiple = ''; cityObj.size = '';
	} else {
		typeObj.options[0].innerHTML = "Any Type"; typeObj.multiple = 'multiple'; typeObj.size = '5';
		cityObj.options[0].innerHTML = "Any City"; cityObj.multiple = 'multiple'; cityObj.size = '5';
	}
	
	var propForValue; var displayArea;
	if (propForBuyObj.checked) {
		propForValue = "displayBuy";
	} else if (propForRentInObj.checked) {
		propForValue = "displayRentIn";
	} else if (propForSellObj.checked) {
		propForValue = "displaySell";
	} else if (propForRentOutObj.checked) {
		propForValue = "displayRentOut";
	}
	for (ind = 1; ind < 6; ind++) {
		var strInd = new String(ind);
		visibObj = document.getElementById(propForValue.concat(strInd));
		if (categoryObj.selectedIndex == ind) {
			visibObj.style.visibility = "visible"; visibObj.style.height = "auto"; visibObj.style.display = "block";
		} else {
			visibObj.style.visibility = "hidden"; visibObj.style.height = "0px"; visibObj.style.display = "none";
		}
	}
	displayAdvancedOptionsDispalyArea(objId);
}

function displayAdvancedOptionsDispalyArea(objId) {
	var obj1 = document.getElementById('displayAdvancedSearchOptionsForBuy');
	var obj2 = document.getElementById('displayAdvancedSearchOptionsForRentIn');
	var obj3 = document.getElementById('displayAdvancedSearchOptionsForSell');
	var obj4 = document.getElementById('displayAdvancedSearchOptionsForRentOut');

	if (objId == 'displayAdvancedSearchOptionsForBuy') {
		obj1.style.visibility = 'visible'; obj1.style.height = 'auto'; obj1.style.display = 'block';
		obj2.style.visibility = 'hidden'; obj2.style.height = '0px'; obj2.style.display = 'none';
		obj3.style.visibility = 'hidden'; obj3.style.height = '0px'; obj3.style.display = 'none';
		obj4.style.visibility = 'hidden'; obj4.style.height = '0px'; obj4.style.display = 'none';
	} else if (objId == 'displayAdvancedSearchOptionsForRentIn') {
		obj2.style.visibility = 'visible'; obj2.style.height = 'auto'; obj2.style.display = 'block';
		obj1.style.visibility = 'hidden'; obj1.style.height = '0px'; obj1.style.display = 'none';
		obj3.style.visibility = 'hidden'; obj3.style.height = '0px'; obj3.style.display = 'none';
		obj4.style.visibility = 'hidden'; obj4.style.height = '0px'; obj4.style.display = 'none';
	} else if (objId == 'displayAdvancedSearchOptionsForSell') {
		obj3.style.visibility = 'visible'; obj3.style.height = 'auto'; obj3.style.display = 'block';
		obj2.style.visibility = 'hidden'; obj2.style.height = '0px'; obj2.style.display = 'none';
		obj1.style.visibility = 'hidden'; obj1.style.height = '0px'; obj1.style.display = 'none';
		obj4.style.visibility = 'hidden'; obj4.style.height = '0px'; obj4.style.display = 'none';
	} else if (objId == 'displayAdvancedSearchOptionsForRentOut') {
		obj4.style.visibility = 'visible'; obj4.style.height = 'auto'; obj4.style.display = 'block';
		obj2.style.visibility = 'hidden'; obj2.style.height = '0px'; obj2.style.display = 'none';
		obj3.style.visibility = 'hidden'; obj3.style.height = '0px'; obj3.style.display = 'none';
		obj1.style.visibility = 'hidden'; obj1.style.height = '0px'; obj1.style.display = 'none';
	} else {
		obj1.style.visibility = 'hidden'; obj1.style.height = '0px'; obj1.style.display = 'none';
		obj2.style.visibility = 'hidden'; obj2.style.height = '0px'; obj2.style.display = 'none';
		obj3.style.visibility = 'hidden'; obj3.style.height = '0px'; obj3.style.display = 'none';
		obj4.style.visibility = 'hidden'; obj4.style.height = '0px'; obj4.style.display = 'none';
	}
}

var formSubmitTimeInterval;
var traceTimeOut = 0;

function showHiddenSearchForm(formType, actToDo) {
	var visibleObj = document.getElementById('serchFormElements');
	var hideObj = document.getElementById('serchEmptyForm');
	var clickChangeObj = document.getElementById('showHideSearchForm');
	//alert(formType);alert(document.getElementById('searchType').value);
	if (visibleObj && formType == document.getElementById('searchType').value) {
		if (actToDo == "show") {
			visibleObj.style.visibility = 'visible'; visibleObj.style.display = 'block'; visibleObj.style.height = 'auto';
			hideObj.style.visibility = 'hidden'; hideObj.style.display = 'none';
			if (clickChangeObj) {
				clickChangeObj.innerHTML = "<a href=\"\" onclick=\"showHiddenSearchForm('"+formType+"', 'hide'); return false;\" class=\"blueUrl\">Hide Search</a>&nbsp;";
			}
		} else if (actToDo == "hide") {
			visibleObj.style.visibility = 'hidden'; visibleObj.style.display = 'none'; visibleObj.style.height = '0px';
			hideObj.style.visibility = 'visible'; hideObj.style.display = 'block';
			if (clickChangeObj) {
				clickChangeObj.innerHTML = "<a href=\"\" onclick=\"showHiddenSearchForm('"+formType+"', 'show'); return false;\" class=\"blueUrl\">Refine Search</a>&nbsp;";
			}
		}
	} else {
		showSearchForm(formType);
	}
}

function traceSearchFormSubmit() {
	var formSubmitXmlObj = XmlObj();
	var formSubmitObj = document.getElementById('searchListing');
	var showEmptyFormObj = document.getElementById('serchEmptyForm');
	var searchResultsStatusObj = document.getElementById('searchResultsStatus');
	var formType = document.getElementById('searchType').value;
	var serverPage = "propertyList.php?formType="+formType;
	formSubmitXmlObj.open("GET", serverPage);
	formSubmitXmlObj.onreadystatechange = function () {
		if (formSubmitXmlObj.readyState == 4 && formSubmitXmlObj.status == 200) { //alert(formSubmitXmlObj.responseText);
			var response = formSubmitXmlObj.responseText;
			response = new String(response);
			if (response.indexOf('sessionSearchQueryNotSet') == -1) {
				window.clearTimeout(formSubmitTimeInterval);
				searchResultsStatusObj.style.visibility = 'hidden'; searchResultsStatusObj.style.display = 'none'; searchResultsStatusObj.style.height = '0px';
				showEmptyFormObj.style.visibility = 'visible'; showEmptyFormObj.style.display = 'block'; showEmptyFormObj.style.height = 'auto';
				formSubmitObj.innerHTML = response;
			} else {
				if (traceTimeOut == 10) {
					window.clearTimeout(formSubmitTimeInterval);
					traceTimeOut = 0;
					searchResultsStatusObj.style.visibility = 'hidden'; searchResultsStatusObj.style.display = 'none'; searchResultsStatusObj.style.height = '0px';
					showHiddenSearchForm(formType, 'show');
					alert ("Arghhh.... It's taking long time! Try again.");
				} else {
					traceTimeOut++;
					formSubmitTimeInterval = window.setTimeout("traceSearchFormSubmit()", 500);
				}
			}
		}
	}
	formSubmitXmlObj.send(null);
}

function submitSearch() {
	var propertyForSellObj = document.getElementById('propertyForSell');
	var propertyForRentOutObj = document.getElementById('propertyForRentOut');
	var propertyForBuyObj = document.getElementById('propertyForBuy');
	var propertyForRentInObj = document.getElementById('propertyForRentIn');
	var formType = document.getElementById('searchType').value;
	var formName = document.searchForm;
	var submitSearchForm;
	
	if (formType == "searchByPropertyId") {
		var form = document.searchForm;
		var propertyIdVal = trim(form.propertyId.value);
		propertyIdVal = propertyIdVal.toUpperCase();
		if (propertyIdVal == "") {
			alert("Please Enter 10 Digit Property ID! (Eg. RTS1234567)");
			form.propertyId.value = propertyIdVal;
			form.propertyId.focus();
			return false;
		} else if (propertyIdVal.length != 10) {
			alert("Please Enter 10 Digit Property ID! (Eg. RTS1234567)");
			form.propertyId.value = propertyIdVal;
			form.propertyId.focus();
			return false;
		} else {
			var submitSearchResponse;
			var submitSearchXmlObj = XmlObj();
			var serverPage = "addPropertyToFavorites.php?action=checkPropertyIdIsValid&propertyId="+propertyIdVal;
			submitSearchXmlObj.open("GET", serverPage);
			submitSearchXmlObj.onreadystatechange = function () {
				if (submitSearchXmlObj.readyState == 4 && submitSearchXmlObj.status == 200) {// alert(submitSearchXmlObj.responseText);
					if (submitSearchXmlObj.responseText == "invalidPropertyId") {
						alert("The Property ID you have entered is not available!");
					} else {
						callSearchFormSubmit(formType);
					}
				}
			}
			submitSearchXmlObj.send(null);
		}
	}
	
	if (formType == "searchByLocality" || formType == "advancedSearch") {
		if (formName.propertyCategory.value == "%%") {
			alert("Select your Property Category!");
			formName.propertyCategory.focus();
			return false;
		} 
		if (formName.propertyState.value == "%%") {
			alert("Select your Property State!");
			formName.propertyState.focus();
			return false;
		} 
		if (propertyForSellObj.checked || propertyForRentOutObj.checked) {
			if (formName.propertyType.value == "%%") {
				alert("Select your Property Type!");
				formName.propertyType.focus();
				return false;
			}
			if (formName.propertyCity.value == "%%") {
				alert("Select your Property City!");
				formName.propertyCity.focus();
				return false;
			}
		}
		callSearchFormSubmit(formType);
	} else if (formType == "quickSearch") {
		if (validateSearch(formType)) {
			callSearchFormSubmit(formType);
		} else {
			return false;
		}
	}
	
	if (formType == "searchAgents" || formType == "searchBuilders") {
		if (formName.realtorState.value == '0' || formName.realtorState.value == '%%') {
			alert("Select a state!");
			formName.realtorState.focus();
			return false;
		}
		callSearchFormSubmit(formType);
	}
}

function callSearchFormSubmit(formType) {
	document.searchForm.submit();
	var hideFormObj = document.getElementById('serchFormElements');
	hideFormObj.style.visibility = 'hidden'; hideFormObj.style.display = 'none'; hideFormObj.style.height = '0px';
	var searchResultsStatusObj = document.getElementById('searchResultsStatus');
	searchResultsStatusObj.style.visibility = 'visible'; searchResultsStatusObj.style.display = 'block'; searchResultsStatusObj.style.height = 'auto';
	formSubmitTimeInterval = window.setTimeout("traceSearchFormSubmit()", 500);
}

function showSearchresultsByPage(pageToGo, formType) {
	var pagingXmlObj = XmlObj();
	var pagingDate = new Date();
	var pagingTimestamp = pagingDate.getTime();
	var pagingObj = document.getElementById("searchResultsListing");
	var displayResultStatusObj = document.getElementById("displayResultStatus");
	var displayResultStatusObj2 = document.getElementById("displayResultStatus2");
	displayResultStatusObj.style.visibility="visible";
	displayResultStatusObj2.style.visibility="visible";
	var serverPage = "propertyList.php?listAction=pagination&formType="+formType+"&page="+pageToGo+"&timeStamp="+pagingTimestamp;
	pagingXmlObj.open("GET", serverPage);
	pagingXmlObj.onreadystatechange = function () {
		if (pagingXmlObj.readyState == 4 && pagingXmlObj.status == 200) { //alert(xmlhttp.responseText);
			var pagingResponse = pagingXmlObj.responseText;
			pagingObj.innerHTML = pagingResponse;
		}
	}
	pagingXmlObj.send(null);
}

function generateSearchFields(currentObjId, targetObjId, returnObjId) {
	var searchTypeObj = document.getElementById('searchType');
	var propertyForSellObj = document.getElementById('propertyForSell');
	var propertyForRentOutObj = document.getElementById('propertyForRentOut');
	var currentObj = document.getElementById(currentObjId);
	var targetObj = document.getElementById(targetObjId);
	var returnObj = document.getElementById(returnObjId);
	var statusObj = document.getElementById('displayStatus');

	var selectedCurrent = currentObj.options[currentObj.selectedIndex].value;
	var arraySelectedTarget = new Array();
	if (selectedCurrent == "%%") {
		arraySelectedTarget[0] = "%%";
	} else if (targetObjId == "realtorCity") {
		arraySelectedTarget[0] = document.getElementById('realtorCity').value;
	} else {
		var count = 0;
		for (var index = 0; index < (targetObj.options).length; index++) {
			var selectedTargetOption = targetObj.options[index].selected;
		//	var selectedTargetValue;
			
			if (selectedTargetOption == true) {
				arraySelectedTarget[count] = targetObj.options[index].value;
				count++;
			}
		}
	}
//	alert(searchTypeObj.value);
	var serverPage = "searchForm.php?action=generateFields&currentObjId="+currentObjId+"&targetObjId="+targetObjId+"&targetOption=multiple";
	if (searchTypeObj.value == "searchAgents" || searchTypeObj.value == "searchBuilders") {
		var serverPage = "searchForm.php?action=generateFields&currentObjId="+currentObjId+"&targetObjId="+targetObjId+"&targetOption=searchRealtors";
	} else if (propertyForSellObj.checked || propertyForRentOutObj.checked) {
		var serverPage = "searchForm.php?action=generateFields&currentObjId="+currentObjId+"&targetObjId="+targetObjId+"&targetOption=single";
	}
	
	var sendData = "selectedCurrent="+selectedCurrent+"&arraySelectedTarget="+arraySelectedTarget;
	var generateFieldsXmlObj = XmlObj();
	generateFieldsXmlObj.open("POST", serverPage);
	generateFieldsXmlObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	generateFieldsXmlObj.onreadystatechange = function () {
		if (generateFieldsXmlObj.readyState > 0 && generateFieldsXmlObj.readyState < 4) {
			targetObj.options[0].innerHTML = "Loading...";
		}
		if (generateFieldsXmlObj.readyState == 4 && generateFieldsXmlObj.status == 200) { //alert(returnObj.innerHTML);
			returnObj.innerHTML = generateFieldsXmlObj.responseText;
		}
		if (searchTypeObj.value == "advancedSearch" && currentObjId == "propertyCategory") {
			showAdvancedSearchOptions(selectedCurrent);
		}
	}
	generateFieldsXmlObj.send(sendData);
}

function checkSelectedOptions(objId) {
	var object = document.getElementById(objId); //alert((object.options).length);
	
	var arrSelectedOptionsIndex = new Array();
	var totalOptions = (object.options).length; //alert(totalOptions);
	var selectedOptionCount = 0;
	for (k = 1; k < totalOptions; k++) {
		var isSelected = object.options[k].selected;
		if (isSelected == true) {
			arrSelectedOptionsIndex[selectedOptionCount] = k;
			selectedOptionCount++;
		}
	}
	var totalSelectedOptions = arrSelectedOptionsIndex.length; //alert(totalSelectedOptions);
	var isAnySelected = object.options[0].selected
		
	if (totalSelectedOptions == 0 || totalSelectedOptions == totalOptions-1) {
		if (totalSelectedOptions == totalOptions-1) {
			for (l = 0; l < totalSelectedOptions; l++) {
				var toDeselectIndex = arrSelectedOptionsIndex[l];
				object.options[toDeselectIndex].selected = false;
			}
		}
		object.options[0].selected = true;
	} else if (isAnySelected == true) {
		object.options[0].selected = false;
	}
	object.options[0].focus();
}

function checkPropertyAgeSelection(propertyAgeId) {
	var object = document.getElementById(propertyAgeId);
	
	var arrOptionsIndex = new Array();
	var optionFlag = 0;
	for (var i = 0; i < (object.options).length; i++) {
		var optionsValue = object.options[i].value;
		if (optionsValue != "%%") {
			arrOptionsIndex[optionFlag] = i;
			optionFlag++;
		}
	}

	var totalOptions = arrOptionsIndex.length; //alert(totalOptions);
	var arrSelectedOptionsIndex = new Array();
	var selectedOptionCount = 0;
	for (k = 0; k < totalOptions; k++) {
		var optionIndex = arrOptionsIndex[k];
		var isSelected = object.options[optionIndex].selected;
		if (isSelected == true) {
			arrSelectedOptionsIndex[selectedOptionCount] = optionIndex;
			selectedOptionCount++;
		}
	}
	var totalSelectedOptions = arrSelectedOptionsIndex.length; //alert(totalSelectedOptions);
	var isAnySelected = object.options[0].selected
	if (totalSelectedOptions == 0 || totalSelectedOptions == totalOptions) {
		if (totalSelectedOptions == totalOptions) {
			for (l = 0; l < totalSelectedOptions; l++) {
				var toDeselectIndex = arrSelectedOptionsIndex[l];
				object.options[toDeselectIndex].selected = false;
			}
		}
		object.options[0].selected = true;
	} else if (isAnySelected == true) {
		object.options[0].selected = false;
	}
	object.options[0].focus();
}

function openPicture(id,photo_path,width,height) {//alert(id);
	if(photo_path != '') {
		window.open("../member/view_property_photo.php?id="+id+"&path="+photo_path,"", "toolbar=no,menubar=no,statusbar=no,width="+width+",height="+height+",resizable=no");
	}
}

function addPropertyToFavoritesList(propertyId, even, loginFormObjId) {
	var XY = new String(even);
	if(XY.indexOf('x') == 3) {// alert("in");
		XYcoor = XY.split('x')
		var eveXco = XYcoor[0];
		var eveYco = XYcoor[1];
	} else {
		var eveXco = even.clientX;
		var eveYco = even.clientY;
	}
	var addToFavorXmlObj = XmlObj();
	var serverPage = "addPropertyToFavorites.php?action=addPropertyToFavoritesList&propertyId="+propertyId;
	
	addToFavorXmlObj.open("GET", serverPage);
	addToFavorXmlObj.onreadystatechange = function () {
		if (addToFavorXmlObj.readyState == 4 && addToFavorXmlObj.status == 200) {
			var response = addToFavorXmlObj.responseText;
			if (response == "propertyAddedToFavoritesList") {
				hideLoginForm(loginFormObjId);
				alert("The Property "+propertyId+" has been added to your Favourite Properties List!");	
			} else if (response == "alreadyAdded") {
				hideLoginForm(loginFormObjId);
				alert("The Property "+propertyId+" already added into your Favourite Properties List!");	
			} else if (response == "failedToUpdate") {
				hideLoginForm(loginFormObjId);
				alert("Failed to Add the property to your Favorites List! Try again.");
			} else if (response == "invalidPropertyId") {
				hideLoginForm(loginFormObjId);
				alert("The Property ID "+propertyId+" you have provided is invalid!");
			} else if (response == "loginRequired") {
				if (confirm("Authentication Required! Would you like to continue?")) {
					var formServerPage = "login.php?action=addPropertyToFavoritesList&propertyId="+propertyId+"&eX="+eveXco+"&eY="+eveYco;
					displayLoginForm(loginFormObjId, formServerPage, eveXco, eveYco);
				} else {
					//hideLoginForm(loginFormObjId);
				}
			}
		}
	}
	addToFavorXmlObj.send(null);
}

function displayLoginForm(loginFormObjId, loginFormServerPage, eX, eY) {
	var loginFormXmlObj = XmlObj();
	var loginFormObject = document.getElementById(loginFormObjId);
	loginFormObject.style.visibility = "visible";
	loginFormObject.style.height = "auto";
	loginFormObject.style.width = "254px";
	
	var posx = 0;
	var posy = 0;

	posx = parseInt(eX);
	posy = parseInt(eY);
	
	if (posx == 0 && posy == 0) {
		var posx = 575;
		var posy = 175;
	}

	//alert(posx+" "+posy);
	if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //IE 4, 5 & 6 (in non-standards compliant mode)
        posx += document.body.scrollLeft;
        posy += document.body.scrollTop;
      } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE 6 (in standards compliant mode)
        posx += document.documentElement.scrollLeft;
        posy += document.documentElement.scrollTop;
      }
	
	loginFormObject.style.left = (posx - 200) + "px";
	loginFormObject.style.top = posy + "px";
	
	loginFormXmlObj.open("GET", loginFormServerPage);
	loginFormXmlObj.onreadystatechange = function() {
		if (loginFormXmlObj.readyState == 4 && loginFormXmlObj.status == 200) {
			loginFormObject.innerHTML = loginFormXmlObj.responseText;
			document.frm_login.username.focus();
		}
	}
	loginFormXmlObj.send(null);
}

function hideLoginForm(hideLoginFormObjId) {
	var hideLoginFormObject = document.getElementById(hideLoginFormObjId);
	
	hideLoginFormObject.innerHTML = "";
	hideLoginFormObject.style.visibility = "hidden";
	hideLoginFormObject.style.height = "0px";
	hideLoginFormObject.style.width = "0px";
}

function checkLogin(eX, eY) {
	//alert(eX+' '+eY);
	//return false;
	if(document.frm_login.username.value == "") {
		alert("Please enter the username");
		document.frm_login.username.focus();
		return false;
	} else if ((document.frm_login.username.value).length < 6) {
		alert("Please enter valid username");
		document.frm_login.username.focus();
		return false;
	}
	if (document.frm_login.password.value == "") {
		alert("Please enter the password");
		document.frm_login.password.focus();
		return false;
	} else if ((document.frm_login.password.value).length < 6) {
		alert("Please enter valid password");
		document.frm_login.password.focus();
		return false;
	}

	var loginSubmitXmlObj = XmlObj();
	var username = document.frm_login.username.value;
	var password = hex_md5(document.frm_login.password.value);
	var propertyId = document.frm_login.propertyId.value;
	var loginAction = document.frm_login.loginAction.value;
	var loginSubmitServerPage = "login.php?action="+loginAction;
	var sendData = "username="+username+"&password="+password+"&propertyId="+propertyId+"&eX="+eX+"&eY="+eY;
	loginSubmitXmlObj.open("POST", loginSubmitServerPage);
	loginSubmitXmlObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	loginSubmitXmlObj.onreadystatechange = function () {
		if (loginSubmitXmlObj.readyState == 4 && loginSubmitXmlObj.status == 200) {
			
			var msg = loginSubmitXmlObj.responseText; //alert(msg);
			if (msg == "callAddPropertyToFavorite") {
				addPropertyToFavoritesList(propertyId, eX+'x'+eY, 'displayLoginForm');
			} else if (msg == "callShowPropertyEnquiryForm") {
				showEnquiryForm(propertyId, eX+'x'+eY, 'displayLoginForm');
			} else {
				var loginFormObj = document.getElementById('displayLoginForm');
				loginFormObj.innerHTML = msg;
				document.frm_login.username.focus();
			}
		}
	}
	loginSubmitXmlObj.send(sendData);
	return false;
}

function showEnquiryForm(propertyId, even, enquiryFormObjId) {
	var XY = new String(even);
	if(XY.indexOf('x') == 3) {// alert("in");
		XYcoor = XY.split('x')
		var eveXco = XYcoor[0];
		var eveYco = XYcoor[1];
	} else {
		var eveXco = even.clientX;
		var eveYco = even.clientY;
	}

	var enquiryFormXmlObj = XmlObj();
	var serverPage = "sendPropertyEnquiry.php?action=showPropertyEnquiryForm&propertyId="+propertyId+"&eX="+eveXco+"&eY="+eveYco;
	
	enquiryFormXmlObj.open("GET", serverPage);
	enquiryFormXmlObj.onreadystatechange = function () {
		if (enquiryFormXmlObj.readyState == 4 && enquiryFormXmlObj.status == 200) {
			var response = enquiryFormXmlObj.responseText;
			
			if (response == "invalidPropertyId") {
				hideLoginForm(loginFormObjId);
				alert("The Property "+propertyId+" no longer available!");
			} else if (response == "loginRequired") {
				if (confirm("Authentication Required! Would you like to continue?")) {
					var formServerPage = "login.php?action=sendPropertyEnquiry&propertyId="+propertyId+"&eX="+eveXco+"&eY="+eveYco;
					displayLoginForm(enquiryFormObjId, formServerPage, eveXco, eveYco);
				}
			} else {
				displayEnquiryForm(enquiryFormObjId, response, eveXco, eveYco, 'display');
			}
		}
	}
	enquiryFormXmlObj.send(null);
}

function sendPropertyEnquiry(propertyId) {
	var msgVal = document.propertyEnquiryForm.enquiryMessage.value;
	
	if (msgVal == '' || msgVal == ' ' || msgVal == '\n' || msgVal == '\n\n') {
		alert("Please enter your Enquiry Message about Property "+propertyId);
		document.propertyEnquiryForm.enquiryMessage.focus();
		return false;
	} else if ((document.propertyEnquiryForm.enquiryMessage.value).length < 50) {
		alert("Enquiry Message should be minimum 50 Characters!");
		document.propertyEnquiryForm.enquiryMessage.focus();
		return false;
	}
	
	var enquiryFormXmlObj = XmlObj();
	var serverPage = "sendPropertyEnquiry.php?action=sendPropertyEnquiry&propertyId="+propertyId;
	
	var sendPostData = "action=sendEnquiryMessage&propertyId="+propertyId+"&message="+msgVal;
	enquiryFormXmlObj.open("POST", serverPage);
	enquiryFormXmlObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	enquiryFormXmlObj.onreadystatechange = function () {
		if (enquiryFormXmlObj.readyState == 4 && enquiryFormXmlObj.status == 200) {
			var response = enquiryFormXmlObj.responseText;
			if (response == "propertyEnquiryMessageSent") {
				hideLoginForm('displayLoginForm');
				alert("Your enquiry message for Property "+propertyId+" has been sent!");	
			} else if (response == "failedToUpdate") {
				hideLoginForm('displayLoginForm');
				alert("Failed to send your enquiry message! Try again.");
			} else if (response == "invalidPropertyId") {
				hideLoginForm('displayLoginForm');
				alert("The Property "+propertyId+" no longer available!");
			}
		}
	}
	enquiryFormXmlObj.send(sendPostData);
	return false;
}

function displayEnquiryForm(enquiryFormObjId, enquiryFormServerPage, eX, eY, display) {
	var enquiryFormXmlObj = XmlObj();
	var enquiryFormObject = document.getElementById(enquiryFormObjId);
	enquiryFormObject.style.visibility = "visible";
	enquiryFormObject.style.height = "auto";
	enquiryFormObject.style.width = "254px";
	
	var posx = 0;
	var posy = 0;
	
	posx = parseInt(eX);
	posy = parseInt(eY);
	
	if (posx == 0 && posy == 0) {
		var posx = 575;
		var posy = 175;
	}

	//alert(posx+" "+posy);
	if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //IE 4, 5 & 6 (in non-standards compliant mode)
        posx += document.body.scrollLeft;
        posy += document.body.scrollTop;
      } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE 6 (in standards compliant mode)
        posx += document.documentElement.scrollLeft;
        posy += document.documentElement.scrollTop;
      }
	
	enquiryFormObject.style.left = (posx - 200) + "px";
	enquiryFormObject.style.top = posy + "px";
	if (display && display == "display") {
		enquiryFormObject.innerHTML = enquiryFormServerPage;
	} else {
		enquiryFormXmlObj.open("GET", enquiryFormServerPage);
		enquiryFormXmlObj.onreadystatechange = function() {
			if (enquiryFormXmlObj.readyState == 4 && enquiryFormXmlObj.status == 200) {
				enquiryFormObject.innerHTML = enquiryFormXmlObj.responseText;
				document.propertyEnquiryForm.enquiryMessage.focus();
				document.propertyEnquiryForm.enquiryMessage.select();
			}
		}
		enquiryFormXmlObj.send(null);
	}
}

function displayAgentBuilderDetails(detailsObjId, detailsServerPage, e) {
	var detailsXmlObj = XmlObj();
	var detailsObject = document.getElementById(detailsObjId);
	
	detailsObject.style.visibility = "visible";
	detailsObject.style.height = "auto";
	detailsObject.style.width = "450px";
	
	var posx = 0;
	var posy = 0;
	
	posx = e.clientX;
	posy = e.clientY;
	
	if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
        //IE 4, 5 & 6 (in non-standards compliant mode)
        posx += document.body.scrollLeft;
        posy += document.body.scrollTop;
      } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
        //IE 6 (in standards compliant mode)
        posx += document.documentElement.scrollLeft;
        posy += document.documentElement.scrollTop;
      }
	
	detailsObject.style.left = posx + "px";
	detailsObject.style.top = posy + "px";
	
	detailsXmlObj.open("GET", detailsServerPage);
	detailsXmlObj.onreadystatechange = function() {
		if (detailsXmlObj.readyState == 4 && detailsXmlObj.status == 200) {
			detailsObject.innerHTML = detailsXmlObj.responseText;
		}
	}
	detailsXmlObj.send(null);
}

function hideAgentBuilderDetails(hideDetailsObjId) {
	var hideDetailsObject = document.getElementById(hideDetailsObjId);
	
	hideDetailsObject.innerHTML = "";
	hideDetailsObject.style.visibility = "hidden";
	hideDetailsObject.style.height = "0px";
	hideDetailsObject.style.width = "0px";
}

function resetForm() {
	var resetFormType = document.getElementById('searchType').value;
	document.searchForm.reset();
//	alert(resetFormType); alert(document.getElementById("searchType").value);
	var resetCategoryObj = document.getElementById("propertyCategory");
	var resetTypeObj = document.getElementById("propertyType");
	var resetStateObj = document.getElementById("propertyState");
	var resetCityObj = document.getElementById("propertyCity");
	var realtorStateObj = document.getElementById("realtorState");
	var realtorCityObj = document.getElementById("realtorCity");
	var propForBuyObj = document.getElementById('propertyForBuy');
	var typeOptionSize = resetTypeObj.options.length;
	var cityOptionSize = resetCityObj.options.length;
	var realtorCityOptionSize = realtorCityObj.options.length;
	
	propForBuyObj.checked = "checked";

	resetCategoryObj.options[0].selected = "selected"; resetTypeObj.options[0].innerHTML = "Any Type"; resetTypeObj.options[0].value = "%%"; resetTypeObj.options[0].selected = "selected"; resetTypeObj.multiple = 'multiple'; resetTypeObj.size = '5';
	for (z = 0; z < typeOptionSize; z++) {
		resetTypeObj.remove(1);
	}
	resetStateObj.options[0].selected = "selected"; resetCityObj.options[0].innerHTML = "Any City"; resetCityObj.options[0].value = "%%"; resetCityObj.options[0].selected = "selected"; resetCityObj.multiple = 'multiple'; resetCityObj.size = '5';
	for (y = 0; y < cityOptionSize; y++) {
		resetCityObj.remove(1);
	}
	
	realtorStateObj.options[0].selected = "selected"; realtorCityObj.options[0].innerHTML = "Any City"; realtorCityObj.options[0].value = "%%"; realtorCityObj.options[0].selected = "selected";
	for (x = 0; x < realtorCityOptionSize; x++) {
		realtorCityObj.remove(1);
	}
	
	var setFormType = document.getElementById('searchType');
	setFormType.value = resetFormType;
	showSearchForm(resetFormType);
}

function sortSearchResultsBy(sortSearchResultBy, sortSearchResultOrder, formType) {
	var sortingXmlObj = XmlObj();
	var sortingObj = document.getElementById("sortSearchResultTxt");
	var displayResultStatusObj = document.getElementById("displayResultStatus");
	displayResultStatusObj.style.visibility="visible";
	
	var serverPage = "sortSearchResult.php?action=setSortSearchResults&sortSearchResultBy="+sortSearchResultBy+"&sortSearchResultOrder="+sortSearchResultOrder+"&formType="+formType;
	sortingXmlObj.open("GET", serverPage);
	sortingXmlObj.onreadystatechange = function () {
		if (sortingXmlObj.readyState == 4 && sortingXmlObj.status == 200) { //alert(xmlhttp.responseText);
			sortingObj.innerHTML = sortingXmlObj.responseText;
			showSearchresultsByPage(1, formType)
		}
	}
	sortingXmlObj.send(null);
}

function showHiddenRefineSearch(formType, showLayer) {
	var layerObj = document.getElementById(showLayer);
	
	var refineDataXmlObj = XmlObj();
	var refineDataDate = new Date();
	var refineDataTimestamp = refineDataDate.getTime();
	var refineDataServerPage = "refineResultData.php?action=loadData&layer="+showLayer+"&formType="+formType+"&timeStamp="+refineDataTimestamp;
	refineDataXmlObj.open("GET", refineDataServerPage);
	refineDataXmlObj.onreadystatechange = function () {
		if (refineDataXmlObj.readyState == 4 && refineDataXmlObj.status == 200) {
			layerObj.innerHTML = refineDataXmlObj.responseText;
			initScrollLayer(showLayer);
		}
	}
	refineDataXmlObj.send(null)
}

function hideDisplayedRefineSearch(formType, showLayer) {
	var refineObj = document.getElementById('refineResultsDisplay');
	var refTextObj = document.getElementById('showHideRefineSearch');
	refineObj.style.height = '0px';
	refTextObj.innerHTML = "<a href=\".\" onclick=\"showRefineSearchOptions('"+showLayer+"', '"+formType+"'); return false;\" class=\"blueUrl\">Refine Results</a>";
	var holdObj = document.getElementById('hold');
	holdObj.style.height = '0px';
}

function showRefineSearchOptions(refType, formType, getData) {
	var arrRefTypes = Array('Locality', 'Price', 'Area', 'Posted', 'Date');
	var arrLayerTypes = Array();
	arrLayerTypes['Locality'] = 'lyr1'; arrLayerTypes['Price'] = 'lyr2'; arrLayerTypes['Area'] = 'lyr3'; arrLayerTypes['Posted'] = 'lyr4'; arrLayerTypes['Date'] = 'lyr5';
	var arrTabText = Array();
	arrTabText['Locality'] = 'Locality'; arrTabText['Price'] = 'Price/Rent(Rs.)'; arrTabText['Area'] = 'Area(Sq.ft)'; arrTabText['Posted'] = 'Posted By'; arrTabText['Date'] = 'Posted Date';
	
	var refineObj = document.getElementById('refineResultsDisplay');
	var clsBtnObj = document.getElementById('refineCloseBtn');
	var refTextObj = document.getElementById('showHideRefineSearch');
	var holdObj = document.getElementById('hold');
	holdObj.style.height = '128px';
	refineObj.style.height = 'auto';
	refTextObj.innerHTML = "<a href=\".\" onclick=\"hideDisplayedRefineSearch('"+formType+"', '"+refType+"'); return false;\" class=\"blueUrl\">Refine Results</span>";
	clsBtnObj.innerHTML = "[<a href=\".\" onclick=\"hideDisplayedRefineSearch('"+formType+"', '"+refType+"'); return false;\" style=\"cursor:pointer; text-decoration:none; color:#FFFFFF;\">X</a>]&nbsp;";
	if (getData && getData == "yes") {
		showHiddenRefineSearch(formType, arrLayerTypes[refType]);
	}
	
	for (var i = 0; i < (arrRefTypes).length; i++) {
		if (refType == arrRefTypes[i]) {
			var showIdObj = document.getElementById(arrLayerTypes[arrRefTypes[i]]);
			showIdObj.style.visibility = "visible"; 
			showIdObj.style.display = "block"; 
			var tabObj = document.getElementById('focus'+arrRefTypes[i]);
			tabObj.innerHTML = "<a href=\".\" onclick=\"showRefineSearchOptions('"+arrRefTypes[i]+"', '"+formType+"'); return false;\" style=\"text-decoration:none; color:#000000;\">"+arrTabText[arrRefTypes[i]]+"</a>";
			tabObj.style.border = "1px solid #999999"; tabObj.style.borderBottom = "1px solid #FFFFFF";
			tabObj.style.backgroundColor = "#FFFFFF"; tabObj.style.fontWeight = "bold";
		} else {
			var hideIdObj = document.getElementById(arrLayerTypes[arrRefTypes[i]]);
			hideIdObj.style.visibility = "hidden"; 
			hideIdObj.style.display = "none"; 
			var tabObj = document.getElementById('focus'+arrRefTypes[i]);
			tabObj.style.border = "none";tabObj.style.borderBottom = "1px solid #999999";
			tabObj.style.fontWeight = "normal"; tabObj.style.backgroundColor = "#F8F8F8";
		}
	}
	initScrollLayer(arrLayerTypes[refType]);
}

function showHideFeaturedProperties(toDo, fpContent, fpShowHide) {
	var fpContentObj = document.getElementById(fpContent);
	var fpShowHideObj = document.getElementById(fpShowHide);
	if (toDo == 'hide') {
		fpContentObj.style.visibility = 'hidden';
		fpContentObj.style.display = 'none';
		fpContentObj.style.height = '0px';
		fpShowHideObj.innerHTML = "<strong>[<span onclick=\"showHideFeaturedProperties('show', '"+fpContent+"', '"+fpShowHide+"');\" style=\"cursor: pointer;\">+</span>]</strong>&nbsp;&nbsp;&nbsp;&nbsp;";
	}
	if (toDo == 'show') {
		fpContentObj.style.visibility = 'visible';
		fpContentObj.style.display = 'block';
		fpContentObj.style.height = 'auto';
		fpShowHideObj.innerHTML = "<strong>[<span onclick=\"showHideFeaturedProperties('hide', '"+fpContent+"', '"+fpShowHide+"');\" style=\"cursor: pointer;\">-</span>]</strong>&nbsp;&nbsp;&nbsp;&nbsp;";
	}
}

function changeSessSearchQuery(action, appendQry, formType) {
	var changeXmlObj = XmlObj();
	var displayResultStatusObj = document.getElementById("displayResultStatus");
	displayResultStatusObj.style.visibility="visible";
	
	var serverPage = "searchQuery.php?formType="+formType+"&action="+action+"&appendQry="+appendQry;
	changeXmlObj.open("GET", serverPage);
	changeXmlObj.onreadystatechange = function () {
		if (changeXmlObj.readyState == 4 && changeXmlObj.status == 200) { //alert(xmlhttp.responseText);
			showSearchresultsByPage(1, formType)
		}
	}
	changeXmlObj.send(null);
}

function changeLocation(formType, locObj, qryStr) {
	var hrefStr = locObj.href; 
	var hashStr = locObj.hash;
	if (hashStr != '') {
		var strObj = new String(hrefStr);
		hrefStr = strObj.replace(hashStr, "#formType="+formType);
	} else {
		hrefStr = hrefStr+"#formType="+formType;
	}
	window.location = hrefStr;
}

function searchByUri(locObj) {
	var hashStr = locObj.hash;
	var searchStr = locObj.search;
	var searchTypeObj = document.getElementById("searchType");
	if (hashStr != '' && hashStr != '#') {
		var strObj = new String(hashStr);
		var formType = strObj.replace("#formType=", "");
	} else if (searchStr != '' || searchStr != '?') {
		var strObj = new String(searchStr);
		var searchQry = strObj.replace("?", ""); searchQry = searchQry.toLowerCase()
		if (searchQry == "quick-search") var formType = "quickSearch"; 
		else if (searchQry == "advanced-search") var formType = "advancedSearch"; 
		else if (searchQry == "search-by-property-id") var formType = "searchByPropertyId";  
		else if (searchQry == "search-by-locality") var formType = "searchByLocality"; 
		else if (searchQry == "search-agents") var formType = "searchAgents"; 
		else if (searchQry == "search-builders") var formType = "searchBuilders"; 
		else var formType = "quickSearch";
	} else {
		var formType = "quickSearch";
	}
	showSearchForm(formType);
}

function setSearchResultsPerPage(results, formType) {
	var resultsPerPageXmlObj = XmlObj();
	resultsPerPageXmlObj.open("GET", "searchForm.php?action=setSearchResultsPerPage&results="+results);
	resultsPerPageXmlObj.send(null);
	showSearchresultsByPage(1, formType);
}
