//v=05062010

var Search = function() {
	var ddlLocation;
	var ddlPropertyType;
	var ddlPropertyCategory;
	var calStartDate;
	var calEndDate;
	var ddlMinBedrooms;
	var ddlMaxBedrooms;
	var txtMaxPrice;
	var ddlPriceCriteria;
	var ibtnFilter;
	var ddlCurrency;
	var divSearchResult;
	var lblSearchResultInfo;
	var txtCalTitle;
	var txtUnavailDates;
	var txtCalPosition;
	var calAvailability;
	var isClientLoggedIn;
	var data;
	var pageSize = 15;
	var pageNo = 0;
	var spanInfo;
	var divOptions;
	var ddlSort;
	var isDivBased;
	var oneDay = 1000*60*60*24;
	
	function createEl(tagName, className) {
		var el = document.createElement(tagName);
		if(className)
			el.className = className;
		return el;
	}
	
	function createText(text) {
		return document.createTextNode(text);
	}
	
	function getEl(id) {
		return document.getElementById(id);
	}
	
	function Setup(ddlLocationId, ddlPropertyTypeId, ddlPropertyCategoryId, calStartDateId, calEndDateId, ddlMinBedroomsId, ddlMaxBedroomsId, txtMaxPriceId, ddlPriceCriteriaId, ddlCurrencyId, ibtnFilterId, tdCurrencyLabelId, tdCurrencyId, searchResultId, pagerTopId, pagerBotId, txtCalTitleId, txtUnavailDatesId, txtCalPositionId, calAvailabilityId) {
		getEl(tdCurrencyLabelId).style.visibility = 'hidden';
		getEl(tdCurrencyId).style.visibility = 'hidden';
			
		ddlLocation = getEl(ddlLocationId);
		ddlPropertyType = getEl(ddlPropertyTypeId);
		ddlPropertyCategory = getEl(ddlPropertyCategoryId);
		calStartDate = getEl(calStartDateId);
		calEndDate = getEl(calEndDateId);
		ddlMinBedrooms = getEl(ddlMinBedroomsId);
		ddlMaxBedrooms = getEl(ddlMaxBedroomsId);
		txtMaxPrice = getEl(txtMaxPriceId);
		ddlPriceCriteria = getEl(ddlPriceCriteriaId);
		ddlCurrency = getEl(ddlCurrencyId);
		ibtnFilter = getEl(ibtnFilterId);
		divSearchResult = getEl(searchResultId);
		
		txtCalTitle = getEl(txtCalTitleId);
		txtUnavailDates = getEl(txtUnavailDatesId);
		txtCalPosition = getEl(txtCalPositionId);
		calAvailability = getEl(calAvailabilityId);
		
		spanInfo = createEl('span');
		HideInfo();
		spanInfo.className = "text";
		spanInfo.style.backgroundColor = "#f9f6af";
		spanInfo.style.fontWeight = "bold";
		spanInfo.style.paddingLeft = "15px";
		spanInfo.style.paddingRight = "15px";
		spanInfo.style.paddingTop = "3px";
		spanInfo.style.paddingBottom = "3px";
		
		var infoParent = ibtnFilter.parentNode.parentNode.getElementsByTagName('td')[0];
		infoParent.style.paddingRight = "70px";
		infoParent.appendChild(spanInfo);
		
		if(isDivBased) {
			divOptions = createEl('div');
			divOptions.className = "text";
			
			var optSibling = divSearchResult.getElementsByTagName('div')[1];
			divSearchResult.insertBefore(divOptions, optSibling);
		}
		else {
			divOptions = insertRowToTable(divSearchResult, 0, 'text');
			divOptions.style.display = 'none';
		}
		
		divOptions.style.fontWeight = "bold";
		
		var divOpt;
		
		if(isDivBased) {
			divOpt = createEl('div');
			divOpt.className = 'left';
			
			divOptions.appendChild(divOpt);
		}
		else {
			divOpt = addCellToRow(divOptions, '', 'left')
		}
		
		divOpt.appendChild(createText('Show Price In: '));
		divOpt.appendChild(ddlCurrency.parentNode.removeChild(ddlCurrency));
		
		if(isDivBased) {
			divOpt = createEl('div');
			divOpt.className = 'right';
			
			divOptions.appendChild(divOpt);
		}
		else {
			divOpt = addCellToRow(divOptions, '', 'right')
		}
		
		divOpt.appendChild(createText(' Sort Result By: '));
		
		var opt = createEl('option');
		opt.text = 'Default';
		opt.value = '';
		
		ddlSort = createEl('select');
		
		var addWithNull = true;
		
		try { ddlSort.add(opt, null); }
		catch(e) { addWithNull = false; ddlSort.add(opt); }
		
		opt = createEl('option');
		opt.text = 'Bedrooms Ascending';
		opt.value = 'noOfBedrooms ASC';
		
		if(addWithNull) { ddlSort.add(opt, null); }
		else { ddlSort.add(opt); }
		
		opt = createEl('option');
		opt.text = 'Bedrooms Descending';
		opt.value = 'noOfBedrooms DESC';
		
		if(addWithNull) { ddlSort.add(opt, null); }
		else { ddlSort.add(opt); }
		
		opt = createEl('option');
		opt.text = 'Comfortable Sleeps Ascending';
		opt.value = 'sleepsComfortably ASC';
		
		if(addWithNull) { ddlSort.add(opt, null); }
		else { ddlSort.add(opt); }
		
		opt = createEl('option');
		opt.text = 'Comfortable Sleeps Descending';
		opt.value = 'sleepsComfortably DESC';
		
		if(addWithNull) { ddlSort.add(opt, null); }
		else { ddlSort.add(opt); }
		
		opt = createEl('option');
		opt.text = 'Max. Sleeps Ascending';
		opt.value = 'maxSleeps ASC';
		
		if(addWithNull) { ddlSort.add(opt, null); }
		else { ddlSort.add(opt); }
		
		opt = createEl('option');
		opt.text = 'Max. Sleeps Descending';
		opt.value = 'maxSleeps DESC';
		
		if(addWithNull) { ddlSort.add(opt, null); }
		else { ddlSort.add(opt); }
		
		/*opt = createEl('option');
		opt.text = 'Price Ascending';
		opt.value = 'minDailyRent ASC';
		
		if(addWithNull) { ddlSort.add(opt, null); }
		else { ddlSort.add(opt); }
		
		opt = createEl('option');
		opt.text = 'Price Descending';
		opt.value = 'minDailyRent DESC';
		
		if(addWithNull) { ddlSort.add(opt, null); }
		else { ddlSort.add(opt); }*/
		
		divOpt.appendChild(ddlSort);
		
		if(isDivBased)
			divOptions.appendChild(createEl('div', 'clr'));
		
		ddlCurrency.onchange = function() {
			if(!data) {
				GetSearchParams();
			}
			
			if(data) {
				var i = data.indexOf('&crId=');
				var dataBeg = data.substr(0, i + 6);
				
				i = data.indexOf('&', i + 1);
				var dataEnd = data.substr(i);
				
				data = dataBeg + this.value + dataEnd;
				
				spanInfo.innerHTML = "Processing. Please wait...";
				GetSearchResults();
			}
		};
		
		ddlSort.onchange = function() {
			if(!data) {
				GetSearchParams();
			}
			
			if(data) {
				var i = data.indexOf('&srOr=');
				var dataBeg = data.substr(0, i + 6);
				
				i = data.indexOf('&', i + 1);
				var dataEnd = data.substr(i);
				
				data = dataBeg + this.value + dataEnd;
				
				spanInfo.innerHTML = "Processing. Please wait...";
				pageNo = 0;
				GetSearchResults();
			}
		};
	
		ibtnFilter.onclick = function() {
			GetSearchParams();
			
			if(data) {
				pageNo = 0;
				
				return GetSearchResults();
			}
			else {
				return false;
			}
		};
		
		SetPageEvents(pagerTopId);
		SetPageEvents(pagerBotId);
		
		if(!isDivBased)
			ibtnFilter.onclick();
	}
	
	function HideInfo() {
		spanInfo.style.display = "none";
		spanInfo.innerHTML = "Searching. Please wait...";
	}
	
	function GetSearchParams() {
		data = "?func=getPropertySearchResult";
	
		if(ddlLocation.value != "0")
			data += "&lcId=" + ddlLocation.value;
		
		if(ddlPropertyType.value != "0")
			data += "&ptId=" + ddlPropertyType.value;
		
		if(ddlPropertyCategory.value != "0")
			data += "&pcId=" + ddlPropertyCategory.value;
		
		var dtStartDate, dtEndDate;
		
		if(calStartDate.value != "") {
			try {
				dtStartDate = Date.parse(calStartDate.value);
				data += "&stDt=" + calStartDate.value;
			}
			catch(e) { }
		}
			
		if(calEndDate.value != "") {
			try {
				dtEndDate = Date.parse(calEndDate.value);
				data += "&enDt=" + calEndDate.value;
			}
			catch(e) { }
		}
		
		if(dtStartDate && dtEndDate) {
			var days = Math.ceil((dtEndDate - dtStartDate) / (oneDay));
			if(days < 3) {
				alert("Kindly note, none of our advertisers/owners take bookings for less than 3 nights. Please refine your search.");
				data = false;
				return;
			}
		}
		
		if(ddlMinBedrooms.value != "0")
			data += "&mnBr=" + ddlMinBedrooms.value;
		
		if(ddlMaxBedrooms.value != "0")
			data += "&mxBr=" + ddlMaxBedrooms.value;
		
		if(!isNaN(txtMaxPrice.value) && parseInt(txtMaxPrice.value) > 0)
			data += "&mxPr=" + txtMaxPrice.value + "&prCr=" + ddlPriceCriteria.value;
		
		data += "&crId=" + ddlCurrency.value;
		data += "&srOr=" + ddlSort.value;
		data += "&pgSz=" + pageSize;
	}
	
	function DisplayMessage(message) {
		if(isDivBased) {
			try { divSearchResult.removeChild(divOptions); }
			catch(e) {}

			divSearchResult.innerHTML = "";
			
			var el = createEl('h1');
			el.innerHTML = "Search Results";
			
			divSearchResult.appendChild(el);
		
			el = createEl('div');
			el.className = "text";
			el.innerHTML = message;
			
			divSearchResult.appendChild(el);
		}
		else {
			divOptions.style.display = 'none';
			removeRowsFromTable(divSearchResult);
			//divSearchResult.rows[0].style.display = 'none';
			
			addCellToRow(addRowToTable(divSearchResult, ''), message, 'left')
			
			lblSearchResultInfo.innerHTML = '';
		}
		
		HideInfo();
	}
	
	function GeneratePagination(total) {
		if(total > pageSize) {
			var getSep = function() {
				var sep = createEl('span');
				sep.innerHTML = " &nbsp; ";
				return sep;
			};
			
			var div;
			
			if(isDivBased) {
				div = createEl('div', 'customPager');
				divSearchResult.appendChild(div);
			}
			else {
				div = addCellToRow(addRowToTable(divSearchResult, 'customPager'), '', 'right');
				div.colSpan = 2;
			}
			
			var totalPages = Math.ceil(total / pageSize);
			var noOfPages = 5;
			
			var startingPage = pageNo - Math.floor(noOfPages / 2);
			if(startingPage < 0)
				startingPage = 0;
				
			var endingPage = startingPage + noOfPages;
			if(endingPage > totalPages)
				endingPage = totalPages;
				
			if(pageNo > 0) {
				a = createEl('a');
				a.href = "#";
				a.innerHTML = "<< First";
				a.onclick = function() {
					pageNo = 0;
					GetSearchResults();
				};
				
				div.appendChild(a);
				div.appendChild(getSep());
				
				if(pageNo > 1) {
					a = createEl('a');
					a.href = "#";
					a.innerHTML = "< Prev";
					a.onclick = function() {
						pageNo--;
						GetSearchResults();
					};
					
					div.appendChild(a);
					div.appendChild(getSep());
				}
			}
			
			for(var i = startingPage; i < endingPage; i++) {
				if(i == pageNo)
					div.appendChild(createText(i + 1));
				else {
					a = createEl('a');
					a.href = "#";
					a.innerHTML = i + 1;
					a._pageNo = i;
					a.onclick = function() {
						pageNo = this._pageNo;
						GetSearchResults();
					};
					
					div.appendChild(a);
				}
				
				if(i < endingPage - 1)
					div.appendChild(getSep());
			}
			
			if(pageNo < totalPages - 1) {
				div.appendChild(getSep());
				
				if(pageNo < totalPages - 2) {
					a = createEl('a');
					a.href = "#";
					a.innerHTML = "Next >";
					a.onclick = function() {
						pageNo++;
						GetSearchResults();
					};
					
					div.appendChild(a);
					div.appendChild(getSep());
				}
				
				a = createEl('a');
				a.href = "#";
				a.innerHTML = "Last >>";
				a.onclick = function() {
					pageNo = totalPages - 1;
					GetSearchResults();
				};
				
				div.appendChild(a);
			}
		}
	}
	
	function SetPageEvents(pagerId) {
		var pager = getEl(pagerId);
		if(pager) {
			var pgLinks = pager.getElementsByTagName('a');
			if(pgLinks.length > 0) {
				if(!data)
					GetSearchParams();
			
				if(data) {
					for(var i=0; i < pgLinks.length; i++) {
						if(pgLinks[i].getAttribute("pgIndex")) {
							pgLinks[i].pgIndex = pgLinks[i].getAttribute("pgIndex");
							pgLinks[i].onclick = function() {
								pageNo = this.pgIndex;
								return GetSearchResults(this.href);
							};
						}
					}
				}
			}
		}
	}
	
	function GetSearchResults(href) {
		var bResult = true;
		
		try {
			var funcSearchProperty = function(responseXML) {
				if (responseXML) {
					var node = responseXML.documentElement;
					if (node) {
						var childNodes = node.childNodes;

						if(childNodes.length > 0) {
							HideInfo();
							
							var span;
							
							if(isDivBased) {
								try { divSearchResult.removeChild(divOptions); }
								catch(e) {}

								divSearchResult.innerHTML = "";
								
								var h1 = createEl('h1');
								divSearchResult.appendChild(h1);
								
								span = createEl('span', 'left');
								span.innerHTML = "Search Results";
								h1.appendChild(span);
								
								span = createEl('span', 'right');
								h1.appendChild(span);
								
								divSearchResult.appendChild(createEl('div', 'clr'));
								divSearchResult.appendChild(divOptions);
							}
							else {
								removeRowsFromTable(divSearchResult);
								divOptions.style.display = '';
								
								span = lblSearchResultInfo;
							}
							
							var total = getChildNodeValue(childNodes[0], "Total");
							
							span.innerHTML = "Showing " + getChildNodeValue(childNodes[0], "StartIndex") + " - " + getChildNodeValue(childNodes[0], "EndIndex") + " of " + total + " Available Propert" + (total > 1 ? "ies" : "y");
							
							var selectedIds = getChildNodeValue(childNodes[0], "SelectedIds");
							
							GeneratePagination(total);
							
							var tdSearchResult;
							
							if(isDivBased)
								divSearchResult.appendChild(createEl('br'));
							else {
								tdSearchResult = addCellToRow(addRowToTable(divSearchResult, ''), '', '');
								tdSearchResult.colSpan = 2;
							}
								
							var urlStart = (isDivBased ? "" : "../../../property/");
							var imageStart = (isDivBased ? "" : "../../") + "../images/";
							
							for (var i=1; i < childNodes.length; i++) {
								var id = getChildNodeValue(childNodes[i], "id");
								var encryptedId = getChildNodeValue(childNodes[i], "encryptedId");
								var url = urlStart + "furnished/" + id + ".html";
								var isFeatured = (getChildNodeValue(childNodes[i], "isFeatured") == 'true');
								
								var divListing;
								
								if(isDivBased)
									divListing = createEl('div', 'listing');
								else {
									divListing = createEl('table', 'form');
									divListing.cellPadding = 5;
									divListing.cellSpacing = 0;
									divListing.width = '100%';
									divListing.borderWidth = 0;
								}
								
								var div;
								var tmp;
								
								if(isDivBased) {
									div = createEl('div', (isFeatured ? 'featuredHead' : 'standardHead'));
									divListing.appendChild(div);
									
									tmp = createEl('div', 'left');
									div.appendChild(tmp);
								}
								else {
									div = addRowToTable(divListing, (isFeatured ? 'featuredHead' : 'standardHead'));
									
									tmp = addCellToRow(div, '', 'left');
								}
								
								if(getChildNodeValue(childNodes[i], "isNew") == 'true') {
									var imgNew = createEl('img');
									imgNew.align = "absMiddle";
									imgNew.src = imageStart + 'new_' + (isFeatured ? 'red' : 'blue') + ".gif";
									
									tmp.appendChild(imgNew);
								}
								
								var a = createEl('a', 'whiteBig');
								a.target = "_blank";
								a.href = url;
								a.innerHTML = getChildNodeValue(childNodes[i], "listingHeadLine");
								
								tmp.appendChild(a);
								
								if(isDivBased) {
									tmp = createEl('div', 'right');
									div.appendChild(tmp);
								}
								else
									tmp = addCellToRow(div, '', 'right');
								
								a = createEl('a', 'white');
								a.target = "_blank";
								a.href = url;
								a.innerHTML = "Property No." + id;
								
								tmp.appendChild(a);
								
								if(isDivBased) {
									div = createEl('div', (isFeatured ? 'featuredText' : 'standardText'));
									divListing.appendChild(div);
									
									tmp = createEl('div', 'left');
									div.appendChild(tmp);
								}
								else {
									div = addRowToTable(divListing, 'text');
									
									tmp = addCellToRow(div, '', 'left');
								}
								
								var tmp2 = createEl('div');
								tmp.appendChild(tmp2);
								
								tmp2.innerHTML = "Location: " + getChildNodeValue(childNodes[i], "location");
								
								var val = getChildNodeValue(childNodes[i], "building");
								if(val != "")
									tmp2.innerHTML += " | Building: " + val;
								else
									tmp2.innerHTML += " | Category: " + getChildNodeValue(childNodes[i], "PropertyCategory");
								
								tmp2.innerHTML += " | Type: " + getChildNodeValue(childNodes[i], "PropertyType");
								
								tmp.appendChild(createEl('br'));
								
								tmp2 = createEl('div');
								tmp.appendChild(tmp2);
								
								tmp2.innerHTML = getChildNodeValue(childNodes[i], "head1");
								tmp2.innerHTML += ', ';
								tmp2.innerHTML += getChildNodeValue(childNodes[i], "head2");
								
								tmp2 = createEl('div');
								tmp.appendChild(tmp2);
								
								tmp2.innerHTML = getChildNodeValue(childNodes[i], "head3");
								
								if(getChildNodeValue(childNodes[i], "isSpecialRateExists") == 1) {
									tmp2 = createEl('div', 'specialRateMed');
									tmp.appendChild(tmp2);
									
									tmp2.appendChild(createEl('br'));
									tmp2.appendChild(createText('This Property has Special Rates. ['));
									
									a = createEl('a', 'specialRateMed');
									a.target = "_blank";
									a.href = url + "#rentDetails";
									a.innerHTML = "See Details";
									
									tmp2.appendChild(a);
									
									tmp2.appendChild(createText(']'));
								}
								
								tmp.appendChild(createEl('br'));
								
								tmp2 = createEl('div');
								tmp.appendChild(tmp2);
								
								val = getChildNodeValue(childNodes[i], "Rent");
								if(val != "") {
									span = createEl('span', 'blueBold');
									tmp2.appendChild(span);
									
									span.innerHTML = "Total nights: " + getChildNodeValue(childNodes[i], "TotalNights");
									
									tmp2.appendChild(createEl('br'));
									
									span = createEl('span', 'blueBold');
									tmp2.appendChild(span);
									
									span.innerHTML = "Total cost for your stay: ";
									
									span = createEl('span', 'redBold');
									tmp2.appendChild(span);
									
									span.innerHTML = val;
									
									tmp2.appendChild(createEl('br'));
									
									span = createEl('span', 'blueBold');
									tmp2.appendChild(span);
									
									span.innerHTML = "Average cost per night: " + getChildNodeValue(childNodes[i], "AverageRent") + " (approx.)";
								}
								else {
									span = createEl('span', 'blue');
									tmp2.appendChild(span);
									
									span.innerHTML = "Starting from: ";
									span.innerHTML += getChildNodeValue(childNodes[i], "minDailyRent") + "/day, ";
									span.innerHTML += getChildNodeValue(childNodes[i], "minWeeklyRent") + "/week, ";
									span.innerHTML += getChildNodeValue(childNodes[i], "minMonthlyRent") + "/month, ";
									span.innerHTML += getChildNodeValue(childNodes[i], "minQuarterlyRent") + "/quarter";
									
									tmp2.appendChild(createEl('br'));
									
									a = createEl('a', 'redBold');
									tmp2.appendChild(a);
									
									a.href = "javascript:;";
									a.innerHTML = "Click here to calculate total cost for your stay";
									a._propId = encryptedId;
									a.onclick = function () {
										window.open(urlStart + "calculate-rent.aspx?pid=" + this._propId, "", "scrollbars,width=800,height=530");
										return false;
									};
								}
								
								if(isDivBased) {
									tmp = createEl('div', 'right');
									div.appendChild(tmp);
								}
								else
									tmp = addCellToRow(div, '', 'right');
								
								tmp.appendChild(createEl('span', 'spacer'));
								
								a = createEl('a', 'border');
								tmp.appendChild(a);
								
								a.target = "_blank";
								a.href = url;
								a.oncontextmenu = function() { return; };
								
								val = getChildNodeValue(childNodes[i], "thumbName");
								
								var img = createEl('img');
								a.appendChild(img);
								
								img.src = imageStart + "properties/" + ((val != "") ? val : "noThumbPic.gif");
								
								if(isDivBased) {
									div.appendChild(createEl('div', 'clr'));
									div.appendChild(createEl('br'));
								}
								else {
									div = addRowToTable(divListing, 'text');
									
									div = addCellToRow(div, '', 'left');
									div.colSpan = 2;
								}
								
								a = createEl('a', 'blue');
								div.appendChild(a);
								
								a.target = "_blank";
								a.href = url;
								a.innerHTML = "View Details";
								
								div.appendChild(createText(" | "));
								
								a = createEl('a', 'blue');
								div.appendChild(a);
								
								a.target = "_blank";
								a.href = "javascript:;"; //url + "#availability";
								a.innerHTML = "View Availability";
								a._propNo = "Property No." + id;
								a._unavailableDates = getChildNodeValue(childNodes[i], "bookedDates");
								a.onclick = function () {
									txtCalTitle.value = this._propNo;
									txtUnavailDates.value = this._unavailableDates;
									txtCalPosition.value = getPosition(this, 100, -190);
									calAvailability.click();
									return false;
								};
								
								div.appendChild(createText(" | "));
								
								if(getChildNodeValue(childNodes[i], "mapExists") == 1) {
									a = createEl('a', 'blue');
									div.appendChild(a);
									
									a.target = "_blank";
									a.href = url + "#map";
									a.innerHTML = "View Map";
									
									div.appendChild(createText(" | "));
								}
								
								a = createEl('a', 'redBold');
								div.appendChild(a);
								
								a.href = urlStart + "booking/index.html?pid=" + encryptedId;
								
								if(val != "") {
									a.href += "&sd=" + getChildNodeValue(childNodes[i], "encryptedStartDate");
									a.href += "&ed=" + getChildNodeValue(childNodes[i], "encryptedEndDate");
								}
								
								a.innerHTML = "Request Booking";
								
								div.appendChild(createText(" | "));
								
								a = createEl('a', 'blue');
								div.appendChild(a);
								
								a.href = "javascript:;";
								a.innerHTML = "Contact Advertiser";
								a._propId = encryptedId;
								a._selectedIds = selectedIds;
								a.onclick = function () {
									window.open(urlStart + "contact-advertiser.aspx?pid=" + this._propId + "&sIds=" + this._selectedIds, "", "scrollbars,width=576,height=500");
									return false;
								};
								
								div.appendChild(createText(" | "));
								
								if(isClientLoggedIn) {
									a = createEl('a', 'blue');
									div.appendChild(a);
									
									a.href = "javascript:;";
									a.innerHTML = "Add to Shortlist";
									a._propId = encryptedId;
									a.onclick = function () {
										window.open(urlStart + "shortlist.html?pid=" + this._propId, "", "scrollbars,width=576,height=450");
										return false;
									};
									
									div.appendChild(createText(" | "));
								}
								
								a = createEl('a', 'blue');
								div.appendChild(a);
								
								a.href = "javascript:;";
								a.innerHTML = "Refer This Property";
								a._propId = encryptedId;
								a.onclick = function () {
									window.open(urlStart + "refer.aspx?pid=" + this._propId, "", "scrollbars,width=576,height=450");
									return false;
								};
								
								if(isDivBased) {
									//divListing.appendChild(div);
									
									divSearchResult.appendChild(divListing);
									divSearchResult.appendChild(createEl('br'));
								}
								else {
									tdSearchResult.appendChild(divListing);
									tdSearchResult.appendChild(createEl('br'));
								}
							}
							
							GeneratePagination(total);
						}
						else {
							DisplayMessage("No property found matching your search criteria. Try searching again with a different combination of search criteria.");
						}
					}
					else {
						DisplayMessage("No property found matching your search criteria. Try searching again with a different combination of search criteria.");
					}
				}
				else {
					DisplayMessage("We have encountered an error. Sorry for the inconvinience. Please try again. If problem persists, please contact us.");
					
					if(href && href.length > 0) {
						window.location.href = href;
					}
					else {
						__doPostBack(ibtnFilter.id,'');
					}
				}
			};
			
			window.location.href = "#";
			
			spanInfo.style.display = "";
			
			CreateXMLHttpObject(data + "&pgNo=" + pageNo, true, true, funcSearchProperty);
		
			bResult = false;
		}
		catch(e) {
			DisplayMessage("We have encountered an error. Sorry for the inconvinience. Please try again. If problem persists, please contact us.");
		}
		
		return bResult;
	}
	
	return {
		InitWeb : function(ddlLocationId, ddlPropertyTypeId, ddlPropertyCategoryId, calStartDateId, calEndDateId, ddlMinBedroomsId, ddlMaxBedroomsId, txtMaxPriceId, ddlPriceCriteriaId, ibtnFilterId, ddlCurrencyId, divSearchResultId, divPagerTopId, divPagerBotId, txtCalTitleId, txtUnavailDatesId, txtCalPositionId, calAvailabilityId, tdCurrencyLabelId, tdCurrencyId, clientLoggedIn) {
			isDivBased = true;
			isClientLoggedIn = clientLoggedIn;
			
			Setup(ddlLocationId, ddlPropertyTypeId, ddlPropertyCategoryId, calStartDateId, calEndDateId, ddlMinBedroomsId, ddlMaxBedroomsId, txtMaxPriceId, ddlPriceCriteriaId, ddlCurrencyId, ibtnFilterId, tdCurrencyLabelId, tdCurrencyId, divSearchResultId, divPagerTopId, divPagerBotId, txtCalTitleId, txtUnavailDatesId, txtCalPositionId, calAvailabilityId);
		},
		
		InitPanel : function(ddlLocationId, ddlPropertyTypeId, ddlPropertyCategoryId, calStartDateId, calEndDateId, ddlMinBedroomsId, ddlMaxBedroomsId, txtMaxPriceId, ddlPriceCriteriaId, ibtnFilterId, ddlCurrencyId, lblSearchResultInfoId, tblSearchResultId, trPagerTopId, trPagerBotId, txtCalTitleId, txtUnavailDatesId, txtCalPositionId, calAvailabilityId, tdCurrencyLabelId, tdCurrencyId) {
			isDivBased = false;
			isClientLoggedIn = true;
			lblSearchResultInfo = getEl(lblSearchResultInfoId);
			
			Setup(ddlLocationId, ddlPropertyTypeId, ddlPropertyCategoryId, calStartDateId, calEndDateId, ddlMinBedroomsId, ddlMaxBedroomsId, txtMaxPriceId, ddlPriceCriteriaId, ddlCurrencyId, ibtnFilterId, tdCurrencyLabelId, tdCurrencyId, tblSearchResultId, trPagerTopId, trPagerBotId, txtCalTitleId, txtUnavailDatesId, txtCalPositionId, calAvailabilityId);
		}
	};
}();