
$(document).ready(function(){if(typeof pageTracker=="undefined"){window.pageTracker={"_trackEvent":function(){}};}
var ua=$.browser;if(ua.msie&&ua.version.slice(0,3)=="6.0"){$(window).scroll(function(){var msieScrollIssue=470+(ignoreMe=document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop);$("div.floatingWidget").stop(true,true).animate({'top':msieScrollIssue+'px'},100);});}});var specials=['(','[','{','\\','^','$','|',')','?','*','+','.'];if(typeof String.prototype.trim!=='function'){String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,'');}}
var getUrlParam=(function(){var objectizeUrlSrchStr=function(str){var urlParamObj={};var srchStrArr=str.split("&");for(var i=0;i<srchStrArr.length;i++){var keyVal=srchStrArr[i].split("=");if(keyVal.length==2)
urlParamObj[keyVal[0]]=keyVal[1];}
return urlParamObj;}
var urlParamObj=objectizeUrlSrchStr(window.location.search.substring(1));return function(k){return urlParamObj[k]||"";}})();var makeSeoFriendly=function(str){if(str)
return str.trim().replace(/\//g,"+").replace(/\?/g,"+").replace(/#/g,"+").replace(/\s+/g,"+").replace(/\++/g,"+").replace(/\./g,"");}
String.prototype.toProperCase=function(){return this.replace(/\w\S*/g,function(txt){return txt.charAt(0).toUpperCase()+txt.substr(1).toLowerCase();});};(function(d){var cache={};d.publish=function(topic,args){d.each(cache[topic],function(){this.apply(d,args||[]);});};d.subscribe=function(topic,callback){if(!cache[topic]){cache[topic]=[];}
cache[topic].push(callback);return[topic,callback];};d.unsubscribe=function(handle){var t=handle[0];cache[t]&&d.each(cache[t],function(idx){if(this==handle[1]){cache[t].splice(idx,1);}});};})(jQuery);var YpHelper={getById:function(elemId){if(!elemId)return null;if(document.all&&!document.getElementById){return document.all[elemId];}else{return document.getElementById(elemId);}},regSpecials:new RegExp('(\\'+specials.join('|\\')+')','g'),setJsonRequestParamFromForm:function(jsonRequest,form){$('input',form).each(function(){if(this.name){if($(this).attr("type")=="radio"){if($(this).attr("checked")){jsonRequest.setParam(this.name,this.value);}}else if($(this).attr("type")=="checkbox"){if($(this).attr("checked")){jsonRequest.setParam(this.name,"yes");}else{jsonRequest.setParam(this.name,"no");}}else{jsonRequest.setParam(this.name,this.value);}}});$('textarea',form).each(function(){if(this.name){jsonRequest.setParam(this.name,this.value);}});$('select',form).each(function(){if(this.name){jsonRequest.setParam(this.name,this.value);}});return jsonRequest;}};var AskmeHelper=YpHelper;jQuery.fn.bindDropdown=function(ddElement,closeBtn,callBack){if(ddElement){this.click(function(){if(ddElement.css("display")=="none"){ddElement.show();if(callBack){callBack(true);}}else{ddElement.hide();if(callBack){callBack(false);}}
return false;});if(!closeBtn){closeBtn=$(".jqCloseBtn",ddElement);}
closeBtn.click(function(){ddElement.hide();if(callBack){callBack(false);}});var link=this;var isdropdownClicked=false;ddElement.click(function(){isdropdownClicked=true;});$(document).click(function(e){if(!isdropdownClicked&&link.attr("id")!=e.target.id){ddElement.hide();if(callBack){callBack(false);}}
isdropdownClicked=false;});}
return this;};var YpJsonResponse=true;function YpJsonRequest(){this.onreadystatechange=null;this.readyState=0;this.responseText=null;this.status=null;this.statusText=null;this.parameters={};this.docHead=document.getElementsByTagName("head").item(0);};var AskmeJsonRequest=YpJsonRequest;YpJsonRequest.properties={delimiter:"&__KEY__=",abortKey:"esc"};YpJsonRequest.prototype.abort=function(){this.docHead.removeChild(this.script);this.script=null;this.status=null;this.statusText=null;this.responseText=null;};YpJsonRequest.prototype.setLoadingIndicator=function(loadingId){this.loadingObject=YpHelper.getById(loadingId)?YpHelper.getById(loadingId):false;};YpJsonRequest.prototype.showLoading=function(){if(this.loadingObject){this.loadingObject.style.display="";}};YpJsonRequest.prototype.hideLoading=function(){if(this.loadingObject){this.loadingObject.style.display="none";}};YpJsonRequest.prototype.sanitiseValue=function(str){return encodeURIComponent(str);};YpJsonRequest.prototype.setParam=function(parameter,value){if(value){value=this.sanitiseValue(value);}
if(this.parameters[parameter]){var delimiter=YpJsonRequest.properties.delimiter.replace(/__KEY__/,parameter);this.parameters[parameter]=this.parameters[parameter]+delimiter+value;}else{this.parameters[parameter]=value;}};YpJsonRequest.prototype.getRequestUrl=function(baseUrl){if(baseUrl.indexOf("?")>=0){baseUrl+="&";}else{baseUrl+="?";}
var uriString="";for(var key in this.parameters){uriString+=key+"="+this.parameters[key]+"&";}
uriString=uriString.substring(0,uriString.length-1);return baseUrl+uriString;};YpJsonRequest.prototype.open=function(url,userName,password){this.method="GET";this.URL=this.getRequestUrl(url);this.async=true;this.userName=null;this.password=null;this.showLoading();this.send();};YpJsonRequest.prototype.callback=function(functionPtr){this.callBack=functionPtr;};YpJsonRequest.prototype.send=function(iContent){this.content=null;this.script=document.createElement("script");this.script.type="text/javascript";this.script.charset="UTF-8";this.script.src=this.URL;if(typeof(this.callBack)=="function"){this.script.callback=this.callBack;}
var currRequest=this;var scriptLoaded=function(){if(YpJsonResponse){currRequest.responseXML=null;currRequest.responseText=null;currRequest.hideLoading();if(typeof(currRequest.callBack)=="function"){currRequest.callBack();}else{currRequest.script.parentNode.removeChild(currRequest.script);}}else{}
currRequest.status=200;currRequest.statusText="OK";currRequest.readyState=4;if(currRequest.onreadystatechange){currRequest.onreadystatechange();}};var onReadyStateChange=function(iEvent){var e=(iEvent?iEvent:window.event).target?(iEvent?iEvent:window.event).target:(iEvent?iEvent:window.event).srcElement;if(e.readyState=="loaded"||e.readyState=="complete"){this.hideLoading();if(typeof(this.callback)=="function"){this.callback();}else{this.parentNode.removeChild(this);}}};if(navigator.product=="Gecko"){this.script.onload=scriptLoaded;}else{this.script.defer=true;this.script.loadingObject=this.loadingObject;this.script.hideLoading=this.hideLoading;this.script.onreadystatechange=onReadyStateChange;}
this.docHead.appendChild(this.script);this.readyState=1;if(this.onreadystatechange){this.onreadystatechange();}};var LOCAL_SEARCH_SUGGEST_INSTANCES=new Array();var YpSuggest=function(elementId){this.selfRef=LOCAL_SEARCH_SUGGEST_INSTANCES.length;this.elementId=elementId;this.minimumNumberOfCharactersToTriggerSuggest=1;this.numberOfResults=10;this.fetchCloseMatches=false;this.triggerHandler="onkeyup";this.queueManager=new Object();this.maxIdleTimeInMillis=0;LOCAL_SEARCH_SUGGEST_INSTANCES[this.selfRef]=this;this.tokenizedSuggestionHandler=null;this.fetchTypes=[];this.isGroupedSuggest=false;this.groupedTypes=new Object();this.associatedWithListings=true;this.showHeaders=false;this.nextFocusElementId="";this.listingId="";this.offset=0;this.showNextPrevious=false;this.totalCount=0;$(this.suggestElement).unbind("keyPressCallback").unbind("suggestionSelectCallback").unbind("suggestionClickCallback").unbind("suggestionPopulateCallback").unbind("suggestionClearCallback");$(this.suggestElement).bind("keyPressCallback",function(evt,data){}).bind("suggestionSelectCallback",function(evt,data){}).bind("suggestionClickCallback",function(evt,data){}).bind("suggestionPopulateCallback",function(evt,data){}).bind("suggestionClearCallback",function(evt,data){});this.callback="LOCAL_SEARCH_SUGGEST_INSTANCES['"+this.selfRef+"'].createSuggestMarkup";};YpSuggest.prototype.setAssociatedWithListings=function(associatedWithListings){this.associatedWithListings=associatedWithListings;};YpSuggest.prototype.setElementId=function(elementId){this.elementId=elementId;};YpSuggest.prototype.setDataFetchUrl=function(dataFetchUrl){this.dataFetchUrl=dataFetchUrl;};YpSuggest.prototype.setMinimumNumberOfCharactersToTriggerSuggest=function(minimumNumberOfCharactersToTriggerSuggest){this.minimumNumberOfCharactersToTriggerSuggest=minimumNumberOfCharactersToTriggerSuggest;};YpSuggest.prototype.setNumberOfResults=function(numberOfResults){this.numberOfResults=numberOfResults;};YpSuggest.prototype.setDisplayAreaId=function(displayAreaId){this.displayAreaId=displayAreaId;};YpSuggest.prototype.setCallBackFunction=function(callBackFunction){this.callBackFunction=callBackFunction;};YpSuggest.prototype.setFieldNameToPopulate=function(fieldNameToPopulate){this.fieldNameToPopulate=fieldNameToPopulate;};YpSuggest.prototype.setTriggerHandler=function(triggerHandler){this.triggerHandler=triggerHandler;};YpSuggest.prototype.setTokenizedSuggestionHandler=function(token){this.tokenizedSuggestionHandler=token;};YpSuggest.prototype.setNextFocusElementId=function(nextFocusElementId){this.nextFocusElementId=nextFocusElementId;};YpSuggest.prototype.setOffset=function(offset){this.offset=offset;};YpSuggest.prototype.setShowNextPrevious=function(showNextPrevious){this.showNextPrevious=showNextPrevious;};YpSuggest.prototype.setIsGroupedSuggest=function(isGroupedSuggest){this.isGroupedSuggest=isGroupedSuggest;};YpSuggest.prototype.setShowHeaders=function(showHeaders){this.showHeaders=showHeaders;};YpSuggest.prototype.setListingId=function(listingId){this.listingId=listingId;};YpSuggest.prototype.setFetchTypes=function(fetchTypes){if(fetchTypes){for(var i=0;i<fetchTypes.length;i++){this.fetchTypes[i]=fetchTypes[i];}}};YpSuggest.prototype.setGroupedTypes=function(groupedTypes){if(groupedTypes){for(var key in groupedTypes){this.groupedTypes[key]=groupedTypes[key];this.totalCount+=this.groupedTypes[key].limit;}}};YpSuggest.prototype.setCallback=function(callback){this.callback=callback;};YpSuggest.prototype.beforeRequest=function(beforeRequestFn){if(typeof(beforeRequestFn)=="function"){$("#"+this.elementId).unbind("keyPressCallback");$("#"+this.elementId).bind("keyPressCallback",function(evt,data){beforeRequestFn(data.queryString,data.key);})};};YpSuggest.prototype.afterResponse=function(afterResponseFn){if(typeof(afterResponseFn)=="function"){$("#"+this.elementId).unbind("suggestionPopulateCallback");$("#"+this.elementId).bind("suggestionPopulateCallback",function(evt,data){afterResponseFn(data.suggestJsonResponse);})};};YpSuggest.prototype.onSuggestionSelect=function(suggestionSelectFn){if(typeof(suggestionSelectFn)=="function"){$("#"+this.elementId).unbind("suggestionSelectCallback");$("#"+this.elementId).bind("suggestionSelectCallback",function(evt,data){suggestionSelectFn(data.suggestionDto);this.suggestionDto=null;})};};YpSuggest.prototype.onSuggestionClick=function(suggestionClickFn){if(typeof(suggestionClickFn)=="function"){$("#"+this.elementId).unbind("suggestionClickCallback");$("#"+this.elementId).bind("suggestionClickCallback",function(evt,data){suggestionClickFn(data.suggestionDto);this.suggestionDto=null;})};};YpSuggest.prototype.onSuggestionClear=function(suggestionClearFn){if(typeof(suggestionClearFn)=="function"){$("#"+this.elementId).unbind("suggestionClearCallback");$("#"+this.elementId).bind("suggestionClearCallback",function(evt,data){suggestionClearFn(data.suggestionDto);this.suggestionDto=null;})};};YpSuggest.prototype.setSuggestElement=function(suggestElement){this.suggestElement=suggestElement;};var bObject=function(a){if(document.all&&!document.getElementById){return document.all[a];}else{return document.getElementById(a);}}
YpSuggest.prototype.bind=function(){this.suggestElement=YpHelper.getById(this.elementId);this.suggestElement.setAttribute("autocomplete","off");this.suggestElement.currentInstance=this;this.suggestElement.tokenizedSuggestionHandler=this.tokenizedSuggestionHandler;var inputValue=bObject(this.elementId).value;this.suggestElement.onkeydown=function(evt){this.currentInstance.offset=0;if(this.currentInstance.isGroupedSuggest){for(var aKey in this.currentInstance.groupedTypes){this.currentInstance.groupedTypes[aKey].offset=0;}}
var key=(window.event)?window.event.keyCode:evt.keyCode;var bubble=true;switch(key){case YpSuggest.constants.ARRUP:case YpSuggest.constants.ARRDN:this.currentInstance.changeHighlight(key);break;case YpSuggest.constants.TAB:$(this).trigger("keyPressCallback",{queryString:inputValue,key:key});this.currentInstance.swapSuggestionvalue();this.currentInstance.clearSuggestions();break;}
return bubble;};this.suggestElement.onkeyup=function(evt){this.currentInstance.offset=0;if(this.currentInstance.isGroupedSuggest){for(var aKey in this.currentInstance.groupedTypes){this.currentInstance.groupedTypes[aKey].offset=0;}}
var key=(window.event)?window.event.keyCode:evt.keyCode;var bubble=true;switch(key){case YpSuggest.constants.ARRUP:case YpSuggest.constants.ARRDN:this.currentInstance.swapSuggestionvalue();break;case YpSuggest.constants.RETURN:this.currentInstance.swapSuggestionvalue();var suggestionDto=this.currentInstance.suggestElement.suggestionDto;if(suggestionDto){$(this.currentInstance.suggestElement).trigger("suggestionClickCallback",{suggestionDto:suggestionDto});}
case YpSuggest.constants.ESC:this.currentInstance.clearSuggestions();break;default:if(inputValue==null||inputValue==""){this.currentInstance.clearSuggestions();}
$(this).trigger("keyPressCallback",{queryString:inputValue,key:key});this.currentInstance.addRequestToQueue();}
return bubble;};var currForm=this.suggestElement.form;if(currForm){var currFormOnSubmit=currForm.onsubmit;if(!currForm.boundInstance){currForm.boundInstance=new Array();}
currForm.boundInstance[currForm.boundInstance.length]=this;currForm.onsubmit=function(){for(var i=0;i<this.boundInstance.length;i++){if(this.boundInstance[i].suggestElement.suggestValue){this.boundInstance[i].swapSuggestionvalue();var nextFocusElement=YpHelper.getById(this.boundInstance[i].nextFocusElementId);if(nextFocusElement&&nextFocusElement.getAttribute("type")!='hidden'){try{nextFocusElement.focus();}catch(e){}}
return false;}}
if(typeof(currFormOnSubmit)=="function"){return currFormOnSubmit.apply(this,currFormOnSubmit.arguments);}};}};YpSuggest.prototype.addRequestToQueue=function(){if(this.maxIdleTimeInMillis>0){var currTime=new Date().getTime();if(this.queueManager.start&&(currTime-this.queueManager.start)>=this.maxIdleTimeInMillis){this.queueManager.timeToSendRequest=true;}else if(!this.queueManager.timer){var functionRef="LOCAL_SEARCH_SUGGEST_INSTANCES['"+this.selfRef+"'].addRequestToQueue()";this.queueManager.timer=setInterval(functionRef,this.maxIdleTimeInMillis);this.queueManager.start=currTime;}
if(this.queueManager.timeToSendRequest){clearInterval(this.queueManager.timer);this.queueManager.timer=null;this.queueManager.start=null;this.queueManager.timeToSendRequest=false;this.fetchSuggestions();}}else{this.fetchSuggestions();}};YpSuggest.prototype.setLabelProperty=function(labelProperty){this.labelProperty=labelProperty;};YpSuggest.prototype.setValueProperty=function(valueProperty){this.valueProperty=valueProperty;};YpSuggest.prototype.restoreAll=function(){if(this.suggestContainer){for(var i=0;i<this.suggestContainer.childNodes.length;i++){if(this.suggestContainer.childNodes[i].className!="suggestHeader"){this.suggestContainer.childNodes[i].className="suggestNormal";this.suggestContainer.childNodes[i].isHighlighted=false;}}}};YpSuggest.prototype.changeHighlight=function(direction){var scrollableSuggest=this.suggestElement.scrollableSuggest;if(this.suggestContainer){var currentSuggestions=this.suggestContainer.childNodes;var currentlyHighlightedElement=-1;for(var i=0;i<currentSuggestions.length;i++){if(currentSuggestions[i].isHighlighted){currentSuggestions[i].isHighlighted=false;currentSuggestions[i].className="suggestNormal";currentlyHighlightedElement=i;break;}}
if(direction==YpSuggest.constants.ARRUP){var prevElement="";if(currentlyHighlightedElement!=0){prevElement=this.suggestContainer.childNodes[currentlyHighlightedElement-1];if(prevElement){if(prevElement.className=="suggestHeader"&&currentlyHighlightedElement>2){prevElement=this.suggestContainer.childNodes[currentlyHighlightedElement-2];}else if(prevElement.className=="suggestHeader"&&currentlyHighlightedElement==1){prevElement=this.suggestContainer.childNodes[currentSuggestions.length-1];}}}else{prevElement=this.suggestContainer.childNodes[currentSuggestions.length-1];}
if(prevElement){prevElement.className="suggestHover";prevElement.isHighlighted=true;if(scrollableSuggest&&(prevElement.offsetTop<this.suggestContainer.scrollTop)){this.suggestContainer.scrollTop=prevElement.offsetTop;}
this.selectSuggestion(prevElement);}}else{var nextElement=this.suggestContainer.childNodes[currentlyHighlightedElement+1];if(nextElement){if(nextElement.className=="suggestHeader"&&currentlyHighlightedElement<currentSuggestions.length){nextElement=this.suggestContainer.childNodes[currentlyHighlightedElement+2];}}else{for(var i=0;i<currentSuggestions.length;i++){if(currentSuggestions[i].className!="suggestHeader"){nextElement=currentSuggestions[i];break;}}}
if(nextElement){nextElement.className="suggestHover";nextElement.isHighlighted=true;if(scrollableSuggest&&(nextElement.offsetTop>(this.suggestContainer.scrollTop+this.suggestContainer.offsetHeight-25)))
this.suggestContainer.scrollTop=nextElement.offsetTop-this.suggestContainer.offsetHeight+25;this.selectSuggestion(nextElement);}}}};YpSuggest.prototype.swapSuggestionvalue=function(){if(this.suggestElement.suggestValue){if(this.nextFocusElementId){if(this.suggestElement.suggestType=="LISTING_NEIGHBOURHOOD"){var selectedSuggestion=this.suggestElement.suggestValue;var listingName=selectedSuggestion.substr(0,selectedSuggestion.lastIndexOf(','));var neighbourhoodName=selectedSuggestion.substr(selectedSuggestion.lastIndexOf(',')+2);this.suggestElement.value=listingName;YpHelper.getById(this.nextFocusElementId).value=neighbourhoodName;var entityId=this.suggestElement.suggestionDto.entityId;var firstIndex=entityId.indexOf('_')+1;var lastIndex=entityId.lastIndexOf('_')-firstIndex;var listingId=entityId.substr(firstIndex,lastIndex);YpHelper.getById(this.listingId).value=listingId;}else{this.suggestElement.value=this.suggestElement.suggestValue;var nextElement=YpHelper.getById(this.nextFocusElementId);if(nextElement.type=='text'){nextElement.value="";}}}else{this.suggestElement.value=this.suggestElement.suggestValue;}
this.suggestElement.suggestValue="";}
var suggestionDto=this.suggestElement.suggestionDto;if(suggestionDto){$(this.suggestElement).trigger("suggestionSelectCallback",{suggestionDto:suggestionDto});}};YpSuggest.prototype.selectSuggestion=function(suggestDiv){var suggestInstanceBeingWorkedOn=this.suggestElement;suggestInstanceBeingWorkedOn.suggestValue=suggestInstanceBeingWorkedOn.value;var selectedSuggestion=suggestDiv.originalSuggestion;var token=suggestInstanceBeingWorkedOn.tokenizedSuggestionHandler;if(token){var lastIndex=suggestInstanceBeingWorkedOn.suggestValue.lastIndexOf(token);var firstPart=suggestInstanceBeingWorkedOn.suggestValue.substr(0,lastIndex+token.length);suggestInstanceBeingWorkedOn.suggestValue=firstPart+" "+selectedSuggestion.name;}else{suggestInstanceBeingWorkedOn.suggestValue=selectedSuggestion.name;}
suggestInstanceBeingWorkedOn.suggestType=selectedSuggestion.type;suggestInstanceBeingWorkedOn.suggestionDto=selectedSuggestion;};function stripTags(str){return str.replace(/(<([^>]+)>)/ig,"");}
YpSuggest.prototype.fetchSuggestions=function(){var suggestInstanceBeingWorkedOn=this.suggestElement;var value=suggestInstanceBeingWorkedOn.value.trim();var token=suggestInstanceBeingWorkedOn.tokenizedSuggestionHandler;if(value&&token){var lastIndex=value.lastIndexOf(token);value=value.substring(lastIndex+token.length).trim();}
if(value&&value.length>=this.minimumNumberOfCharactersToTriggerSuggest){var jsonRequest=new YpJsonRequest();jsonRequest.setParam("q",value);jsonRequest.setParam("cB",this.callback);if(this.associatedWithListings!=null){jsonRequest.setParam("awl",this.associatedWithListings);}
jsonRequest.setParam("isGroupedSuggest",this.isGroupedSuggest);if(this.isGroupedSuggest&&this.groupedTypes){for(var key in this.groupedTypes){jsonRequest.setParam("fetch",this.groupedTypes[key].fetchTypes);jsonRequest.setParam("limit",this.totalCount);jsonRequest.setParam("offset",this.groupedTypes[key].offset);jsonRequest.setParam("header",key);}}else{if(this.fetchTypes&&this.fetchTypes.length>0){for(var i=0;i<this.fetchTypes.length;i++){jsonRequest.setParam("fetch",this.fetchTypes[i]);}}
jsonRequest.setParam("limit",this.numberOfResults);jsonRequest.setParam("offset",this.offset);}
jsonRequest.open(this.dataFetchUrl);}else if(token){this.clearSuggestions();}};YpSuggest.prototype.clearSuggestions=function(){if(this.suggestContainer){try{this.suggestContainer.parentNode.removeChild(this.suggestContainer);}catch(e){}finally{this.suggestContainer=null;var suggestionDto=this.suggestElement.suggestionDto;if(suggestionDto){$(this.suggestElement).trigger("suggestionClearCallback",{suggestionDto:suggestionDto});}}}
if(this.nextPrevLoadingDiv){try{this.nextPrevLoadingDiv.parentNode.removeChild(this.nextPrevLoadingDiv);}catch(e){}}};YpSuggest.prototype.createSuggestMarkup=function(jsonData,bypassSuggestElementValueCheck,showScrollableSuggest){this.container=this.suggestElement.parentNode;this.clearSuggestions();this.suggestElement.scrollableSuggest=showScrollableSuggest?true:false;if(jsonData&&(this.suggestElement.value||bypassSuggestElementValueCheck)){var suggestContainer=document.createElement("div");suggestContainer.id="localSearchSuggest";suggestContainer.className="localSuggestContainer";var numberOfSuggestionsPerKey=[];if(this.isGroupedSuggest&&this.groupedTypes){var currTotalCount=0;for(var aKey in jsonData){numberOfSuggestionsPerKey[aKey]=Math.min(this.groupedTypes[aKey].limit,jsonData[aKey].suggestions.length);for(var otherKey in jsonData){if(aKey!=otherKey&&this.groupedTypes[otherKey].limit>jsonData[otherKey].suggestions.length&&numberOfSuggestionsPerKey[aKey]<jsonData[aKey].suggestions.length){numberOfSuggestionsPerKey[aKey]+=Math.min(this.groupedTypes[otherKey].limit-jsonData[otherKey].suggestions.length,jsonData[aKey].suggestions.length-numberOfSuggestionsPerKey[aKey]);}}
currTotalCount+=numberOfSuggestionsPerKey[aKey];if(currTotalCount>this.totalCount){numberOfSuggestionsPerKey[aKey]=numberOfSuggestionsPerKey[aKey]-(currTotalCount-this.totalCount);}}}else{for(var aKey in jsonData){if(showScrollableSuggest){if(this.numberOfResults<jsonData[aKey].suggestions.length){suggestContainer.className=suggestContainer.className+" scrollableSuggestContainer";}
numberOfSuggestionsPerKey[aKey]=jsonData[aKey].suggestions.length;}else{numberOfSuggestionsPerKey[aKey]=Math.min(this.numberOfResults,jsonData[aKey].suggestions.length);}}}
var currentMatchType="";var totalCount=0;var offset=0;var inputValue=this.suggestElement.value.toLowerCase().trim();inputValue=inputValue.replace(YpHelper.regSpecials,"\\$1").trim();var arr=inputValue.split(/\s+/g);arr.sort();arr.reverse();var regex="";for(var j=0;j<arr.length;j++){regex+=arr[j]+"|";}
regex="("+regex.substring(0,regex.length-1)+")";var matcher=new RegExp(regex,"gi");for(var key in jsonData){if(numberOfSuggestionsPerKey[key]&&numberOfSuggestionsPerKey[key]>0){for(var i=0;i<numberOfSuggestionsPerKey[key];i++){var currentSuggestion=jsonData[key].suggestions[i];if(this.showHeaders){if(key!=currentMatchType){var header=document.createElement("div");header.className="suggestHeader";header.innerHTML=key;suggestContainer.appendChild(header);currentMatchType=key;}}
var suggestDiv=document.createElement("div");suggestDiv.className="suggestNormal";suggestDiv.innerHTML=currentSuggestion.name.replace(matcher,"<b>$1</b>");suggestContainer.appendChild(suggestDiv);suggestContainer.currentInstance=this;suggestDiv.currentInstance=this;suggestDiv.originalSuggestion=currentSuggestion;suggestDiv.onmouseover=function(){this.currentInstance.restoreAll();this.className="suggestHover";this.isHighlighted=true;this.currentInstance.selectSuggestion(this);};suggestDiv.onmouseout=function(){this.className="suggestNormal";this.isHighlighted=false;this.currentInstance.suggestElement.suggestValue="";this.currentInstance.suggestElement.suggestionDto=null;};suggestDiv.onclick=function(){this.currentInstance.swapSuggestionvalue();this.currentInstance.clearSuggestions();var suggestionDto=this.currentInstance.suggestElement.suggestionDto;if(suggestionDto){$(this.currentInstance.suggestElement).trigger("suggestionClickCallback",{suggestionDto:suggestionDto});}};}}
totalCount+=(jsonData[key]&&jsonData[key].headers)?jsonData[key].headers.totalCount:0;offset+=(jsonData[key]&&jsonData[key].headers)?jsonData[key].headers.offset+numberOfSuggestionsPerKey[key]:numberOfSuggestionsPerKey[key];this.numberOfSuggestionsPerKey=numberOfSuggestionsPerKey;}
if(totalCount>0){this.container.appendChild(suggestContainer);}
this.suggestContainer=suggestContainer;this.numberOfResults=this.isGroupedSuggest?this.totalCount:this.numberOfResults;if(this.showNextPrevious){if(offset>=this.numberOfResults||(offset+this.numberOfResults)<totalCount){var nextPrevDiv=document.createElement("div");nextPrevDiv.className="suggestNormal";suggestContainer.appendChild(nextPrevDiv);var leftRightTable=document.createElement("table");leftRightTable.width="100%";leftRightTable.setAttribute("cellspacing",0);leftRightTable.setAttribute("cellpadding",0);leftRightTable.setAttribute("border",0);var leftRightTableTbody=document.createElement("tbody");leftRightTable.appendChild(leftRightTableTbody);var leftRightTableTr=document.createElement("tr");leftRightTableTbody.appendChild(leftRightTableTr);var leftTd=document.createElement("td");var rightTd=document.createElement("td");leftTd.width="50%";leftTd.innerHTML="&nbsp;";rightTd.width="50%";rightTd.align="right";rightTd.innerHTML="&nbsp;";leftRightTableTr.appendChild(leftTd);leftRightTableTr.appendChild(rightTd);nextPrevDiv.appendChild(leftRightTable);if(offset>this.numberOfResults){var prevLink=document.createElement("a");prevLink.innerHTML="&laquo; Prev";prevLink.currentInstance=this;prevLink.className="suggestNextPrevLink";prevLink.onclick=function(){if(this.currentInstance.isGroupedSuggest){var str="";for(var aKey in this.currentInstance.numberOfSuggestionsPerKey){this.currentInstance.groupedTypes[aKey].offset-=this.currentInstance.numberOfSuggestionsPerKey[aKey];str+=this.currentInstance.groupedTypes[aKey].offset+",";}}else{this.currentInstance.offset-=this.currentInstance.numberOfResults;}
this.currentInstance.createSuggestionOverlay();this.currentInstance.fetchSuggestions();};leftTd.innerHTML="";leftTd.appendChild(prevLink);}
if((offset+this.numberOfResults)<totalCount){var nextLink=document.createElement("a");nextLink.innerHTML="Next &raquo;";nextLink.currentInstance=this;nextLink.className="suggestNextPrevLink";nextLink.onclick=function(){if(this.currentInstance.isGroupedSuggest){for(var key in this.currentInstance.numberOfSuggestionsPerKey){this.currentInstance.groupedTypes[key].offset+=this.currentInstance.numberOfSuggestionsPerKey[key];}}else{this.currentInstance.offset+=this.currentInstance.numberOfResults;}
this.currentInstance.createSuggestionOverlay();this.currentInstance.fetchSuggestions();};rightTd.appendChild(nextLink);}}}}
$(this.suggestElement).trigger("suggestionPopulateCallback",{suggestJsonResponse:jsonData});};YpSuggest.prototype.createSuggestionOverlay=function(){var loadingDiv=document.createElement("div");loadingDiv.style.position="absolute";loadingDiv.style.height=parseInt(this.suggestContainer.offsetHeight)-18+"px";loadingDiv.style.width=parseInt(this.suggestContainer.offsetWidth)-2+"px";loadingDiv.style.top="34px";loadingDiv.style.left="1px";loadingDiv.style.backgroundColor="#fff";loadingDiv.style.zIndex=1000;var opacityValue=0.75;if(window.ActiveXObject){loadingDiv.style.filter="alpha(opacity="
+opacityValue*100+")";}else{loadingDiv.style.opacity=opacityValue;}
loadingDiv.setAttribute("align","right");loadingDiv.innerHTML='<span style="font-weight:bold;margin:2px;padding:2px;background-color:red;color:#fff">Loading ...</span>';this.suggestContainer.parentNode.appendChild(loadingDiv);this.nextPrevLoadingDiv=loadingDiv;};YpSuggest.constants={ARRUP:38,ARRDN:40,RETURN:13,TAB:9,ESC:27};YpSuggest.properties={allowedFetchTypes:{LISTING_ONLY:"L",LISTING_NEIGHBOURHOOD:"LN",PRODUCT_ONLY:"P",CATEGORY_ONLY:"C",PRODUCT_BRAND:"PB",PRODUCT_TYPE:"PT",BRAND_TYPE:"BT",BRAND_ONLY:"B",ALL:"All"}};document.onclick=handleClick;function handleClick(evt){evt=(evt)?evt:((window.event)?window.event:null);var checkParent=function(chld,linkedElement){while(chld.parentNode){if(chld==YpHelper.getById(linkedElement)){return false;}
chld=chld.parentNode;}
return true;};if(evt){var target=(evt.target)?evt.target:((evt.srcElement)?evt.srcElement:null);try{var parent=checkParent(target,'localSearchSuggest');var suggestFld=YpHelper.getById("localSearchSuggest");if(suggestFld!=null&&(!target.className||(target.className!="suggestNextPrevLink"))){suggestFld.currentInstance.clearSuggestions();}
if(!$("div.bizProducts").attr("cpbAreaClicked")){$("div.searchBox").attr("totalMatch",0);$("div.searchBox").removeAttr("currMatch");}
$("div.bizProducts").removeAttr("cpbAreaClicked");}catch(e){}}}
jQuery.fn.bindHelpText=function(helpText,options){options=jQuery.extend($.fn.bindHelpText.defaults,options,{});$(this).data("helpTextSetting",options);var helpElement=$(this);var helpElementForm=$($(this).get(0).form);helpElement.attr("helpText",helpText);helpElement.focus(function(){helpElement.removeClass(options.helpTextColorClass);helpElement.addClass(options.textColorClass);if(helpElement.isHelpText()){helpElement.val('');}}).blur(function(){if(helpElement.val()==''||helpElement.isHelpText()){helpElement.removeClass(options.textColorClass);helpElement.addClass(options.helpTextColorClass);helpElement.val(helpElement.getHelpText());}}).blur();if(options.clearOnSubmit){helpElementForm.submit(function(){helpElement.clearHelpText();});}
return $(this);};$.fn.bindHelpText.defaults={clearOnSubmit:true,helpTextColorClass:"grey",textColorClass:"black"};jQuery.fn.isHelpText=function(){return $(this).getHelpText()==$(this).val();};jQuery.fn.resetHelpText=function(){$(this).blur();return $(this);};jQuery.fn.getHelpText=function(){return $(this).attr("helpText");};jQuery.fn.clearHelpText=function(){if($(this).isHelpText()){$(this).val('');}};jQuery.fn.changeHelpText=function(helpText){$(this).clearHelpText();$(this).attr("helpText",helpText);$(this).blur();return $(this);};jQuery.fn.unbindHelpText=function(){$(this).unbind("blur").unbind("focus");$(this).clearHelpText();return $(this);};var verifiedMobileNumber="";var GlobalInstanceRegister=Array();var SoftPopUp=function(invokerElement,targetElement,containerElement){var instanceIndex=GlobalInstanceRegister.length;this.registrationString="GlobalInstanceRegister["+instanceIndex+"]";this.callBackString=this.registrationString+".responseHandler";GlobalInstanceRegister[instanceIndex]=this;this.targetElement=targetElement;this.containerElement=containerElement;this.invokerElement=invokerElement;};SoftPopUp.prototype.setForm=function(targetForm){this.targetForm=targetForm;};SoftPopUp.prototype.setIdForForm=function(id){this.listingIdForForm=id;};SoftPopUp.prototype.onResponse=function(functionToCall){this.onResponse=functionToCall;};SoftPopUp.prototype.onClose=function(functionToCall){this.onClose=functionToCall;};SoftPopUp.prototype.onOpen=function(functionToCall){this.onOpen=functionToCall;};SoftPopUp.prototype.bindForm=function(){if(this.targetForm){var softForm=$("form",$(this.targetElement));$("input",softForm).removeAttr("readOnly");$("#verifyMobileWindow").hide();var originalAction=softForm.attr("originalAction");if(originalAction&&originalAction!=softForm.attr("action")){softForm.attr("action",originalAction);}
var formElement=softForm.get(0);formElement.reset();var submitButton=$(".jquerySendButton",softForm);if(submitButton){this.buttonText=submitButton.html();submitButton.show();}
$(".userContactNumber").val(verifiedMobileNumber);if(formElement){formElement.mySoftpopupObject=this;formElement.id.value=this.listingIdForForm;formElement.callBack=this.callBackString;}else if(this.listingIdForForm){this.targetElement.listingId=this.listingIdForForm;}}};SoftPopUp.prototype.doOpen=function(){var popup=this;$(this.targetElement).each(function(){this.popupInstance=popup;});var targetedDiv=$(this.targetElement);$(this.containerElement).append(targetedDiv);targetedDiv.show();targetedDiv.addClass("open");targetedDiv.invokerElement=this.invokerElement;this.bindForm();if(this.onOpen){this.onOpen();}};SoftPopUp.prototype.doClose=function(){var targetedDiv=$(this.targetElement);targetedDiv.hide();targetedDiv.removeClass("open");if(this.onClose){this.onClose();}};SoftPopUp.prototype.doBind=function(){var targetedDiv=$(this.targetElement);if(this.invokerElement){this.invokerElement.popUp=this;}
$(this.invokerElement).click(function(){$(".jqueryResponse",targetedDiv).css({"display":"none"});var targetPopUpClosed=false;var lclPopUp=this.popUp;$(".jqpopup.open").each(function(){if($(this).attr("id")==$(lclPopUp.targetElement).attr('id')&&this.popupInstance.invokerElement==lclPopUp.invokerElement){targetPopUpClosed=true;}
this.popupInstance.doClose();});if(!targetPopUpClosed){this.popUp.doOpen();}});$("a.jqueryClose",$(this.targetElement)).click(function(){if($(this).parent()[0]){$(this).parent()[0].popupInstance.doClose();}});};SoftPopUp.prototype.responseHandler=function(jsonData){var responseDiv=$(".jqueryResponse",$(this.targetElement));var message="";var submitButton=$("button.jquerySendButton",this.targetElement);if(submitButton&&this.buttonText){submitButton.html(this.buttonText);submitButton.removeAttr("disabled");submitButton.show();}
if(jsonData.penddingVerification){var verifyDiv=$("#verifyMobileWindow");var form=$("form",$(this.targetElement));$("input",form).attr("readOnly",true);$("#verificationCode").removeAttr("readOnly");$("#verificationCode").attr("value","");$(".jquerySendButton",form).hide();var errorSpan=$('.jqueryResponse',$(this.targetElement));$('.error',errorSpan).remove();$('.jqVerificationErrorDiv').append(errorSpan);form.append(verifyDiv);var originalAction=form.attr("action");if(originalAction.match("/json/click-to-call.html")){form.attr("originalAction",originalAction);var newAction="/json/verify.html";form.attr("action",newAction);}
verifyDiv.show();}
if(jsonData.error){var error=jsonData.error;for(key in error){var messageList=error[key];for(var i=0;i<messageList.length;i++){message+="<span class=\"error\">"+messageList[i]+"</span>";}}
responseDiv.html(message);responseDiv.show();$("a.jqueryClose",$(this.targetElement)).next().next().prepend(responseDiv);}else if(jsonData.success){var targetElement=$(this.targetElement);var successMessage=jsonData.success;message+="<span class=\"success\">"+successMessage+"</span>";responseDiv.html(message);responseDiv.show();targetElement.parent().append(responseDiv);targetElement.hide();targetElement[0].isWindowOpen=false;if($(".userContactNumber",$(this.targetElement)).val()){verifiedMobileNumber=$(".userContactNumber",$(this.targetElement)).val();}}else if(jsonData.accessDenied){var win=$("div.jQueryWin",$(this.targetElement));win.hide();var accessDeniedDiv=$(".jQAccessDenied",$(this.targetElement));accessDeniedDiv.html(jsonData.accessDenied);accessDeniedDiv.show();win.parent().append(accessDeniedDiv);}
if(typeof(this.onResponse)=='function'){var status=jsonData.error?"error":(jsonData.success?"success":"other");this.onResponse(status);}};$(document).ready(function(){$("form",$("div.jQueryWin")).each(function(){this.onsubmit=function(){var formAction=$(this).attr("action");var sendButton=$("button.jquerySendButton",$(this));this.buttonText=sendButton.html();sendButton.html('<span>'+'Sending'+'</span>');$(".jqueryResponse").css({"display":"none"});sendButton.attr("disabled","true");var jsonRequest=new YpJsonRequest();jsonRequest=YpHelper.setJsonRequestParamFromForm(jsonRequest,$(this));jsonRequest.setParam("cB",this.callBack);jsonRequest.open(formAction);return false;};});if($("textarea").not("[ignoreResize=true]").size()){$("textarea").not("[ignoreResize=true]").TextAreaResizer();}
$("[helpText]").each(function(){$(this).bindHelpText($(this).attr("helpText"),{clearOnSubmit:false});});});var cityDropDown=function(){var cityAPIURL="/json/popular-metros.html";var templateString="<option value=\"@VALUE@\">@CITY@</option>";var selectedTemplateString="<option selected value=\"@VALUE@\">@CITY@</option>";var selectBoxObj=null;this.instanceIndex=cityDropDown.instances.length;cityDropDown.instances[this.instanceIndex]=this;this.init=function(){$.ajax({url:cityAPIURL,dataType:"jsonp",data:{callbackFunc:"cityDropDown.instances["+this.instanceIndex+"].responseHandler"}});};this.bindSelectBoxByName=function(boxName){if(boxName)
selectBoxObj=$("select[name='"+boxName+"']");};this.responseHandler=function(dataObj){var currentMetro=getUrlParam("mn")||$.cookie("metro_name");var markupString="<option value='-1'>Select City</option>";for(var i=0;i<dataObj.length;i++)
{if(metroNameSanitizer(dataObj[i].name)==currentMetro){markupString+=selectedTemplateString.replace("@VALUE@",dataObj[i].id).replace("@CITY@",dataObj[i].name);}
else{markupString+=templateString.replace("@VALUE@",dataObj[i].id).replace("@CITY@",dataObj[i].name);}}
selectBoxObj.html&&selectBoxObj.html(markupString);};};cityDropDown.instances=[];function getTopLevelDomainWithPort(fullDomain){var hostnameArr=fullDomain.split(".");hostnameArr.shift();return hostnameArr.join(".");}
function metroNameSanitizer(name){if(name)
name=name.toLowerCase().replace(" ","-");return name;};window.adSenseAccountsObjArray=[{conversionId:993037499,conversionLabel:"bjiDCN21rQIQu5nC2QM"},{conversionId:995157665,conversionLabel:"javWCPfmuwIQoc3D2gM"},{conversionId:990742141,conversionLabel:"rZDDCNOkpAIQ_Yy22AM"},{conversionId:989371968,conversionLabel:"toQ8CPCDpgIQwLzi1wM"},{conversionId:976713780,conversionLabel:"hECOCNyI2gIQtPDd0QM"},{conversionId:980080027,conversionLabel:"DqouCMXX9AIQm6ur0wM"},{conversionId:982001228,conversionLabel:"gU5oCKS7ywIQzMyg1AM"},{conversionId:978469615,conversionLabel:"SqTACLnP7AIQ74XJ0gM"},{conversionId:995988046,conversionLabel:"FjQYCIKtyAIQzqT22gM"},{conversionId:968066923,conversionLabel:"eBZ8CL3n6wIQ647OzQM"},{conversionId:962064891,conversionLabel:"9u9PCIXj8AIQ--PfygM"}];$(document).ready(function(){document.write=function(str){var moz=!window.opera&&!/Apple/.test(navigator.vendor);if(str.match(/^<\//))return;if(!window.opera)
str=str.replace(/&(?![#a-z0-9]+;)/g,"&amp;");str=str.replace(/<([a-z]+)(.*[^\/])>$/,"<$1$2></$1>");if(!moz)
str=str.replace(/(<[a-z]+)/g,"$1 xmlns='http://www.w3.org/1999/xhtml'");var div=document.createElementNS("http://www.w3.org/1999/xhtml","div");div.innerHTML=str;var pos;if(!moz){pos=document.getElementsByTagName("*");pos=pos[pos.length-1];}else{pos=document;while(pos.lastChild&&pos.lastChild.nodeType==1)
pos=pos.lastChild;}
var nodes=div.childNodes;while(nodes.length)
pos.parentNode.appendChild(nodes[0]);};});var trackAdSenseConversion=function(conversionId,conversionLabel){setTimeout(function(){delayedAdSenseTracker(conversionId,conversionLabel);},2000*(trackAdSenseConversion.currentCount++));};trackAdSenseConversion.currentCount=1;var delayedAdSenseTracker=function(conversionId,conversionLabel){trackAdSenseConversion.currentCount--;window.google_conversion_id=conversionId;window.google_conversion_language="en";window.google_conversion_format="2";window.google_conversion_color="ffffff";window.google_conversion_label=conversionLabel;window.google_conversion_value=0;try{$(document).append("<script type='text/javascript' src='http://www.googleadservices.com/pagead/conversion.js'></script>");}catch(e){console&&console.log("Ad Sense conversion tracking failed for account No. "+conversionId);}}
function logStatOnServer(eId,eType,evnt,nt,srchTxt,pg,trackOnGA,medium){var entId=$.isArray(eId)?eId.join(","):eId;var medium=(typeof(medium)=="undefined")?"WEB":medium;$.ajax({url:"/trac/event",dataType:"text",data:{entityId:entId,entityType:eType,event:evnt,note:nt,searchTerm:srchTxt,uniqueCode:new Date().getTime(),ctx:"ypweb",page:pg,medium:medium}});trackOnGA&&pageTracker&&pageTracker._trackEvent(pg,evnt,eType+"_"+entId);}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;}
var ratingHint=['bad','poor','ok','good','excellent'];var starOff='images/star-off.png';var starOn='images/star-on.png';function getUrlVars(){var vars=[],hash;var hashes=window.location.href.slice(window.location.href.indexOf('?')+1).split('&');for(var i=0;i<hashes.length;i++)
{hash=hashes[i].split('=');vars.push(hash[0]);vars[hash[0]]=hash[1];}
return vars;}
function setCookie(name,value,expires,path,domain,secure)
{var today=new Date();today.setTime(today.getTime());if(expires)
{expires=expires*1000*60*60*24;}
var expires_date=new Date(today.getTime()+(expires));document.cookie=name+"="+value+
((expires)?";expires="+expires_date.toGMTString():"")+
((path)?";path="+path:"")+
((domain)?";domain="+domain:"")+
((secure)?";secure":"");}
function validateMobile(mobile){var retVal=true;if(!mobile.match('^[0-9]+$')){retVal=false;}else if(mobile.length!=10){retVal=false;}
return retVal;}
function validateEmail(email){var reg=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;if(reg.test(email)==false){return false;}
return true;}
function containsHtml(text){if(text.match(/<(\w+)((?:\s+\w+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/)){return true;}
return false;}
