
function BrowseTool(formatProductFunction,advancedToolsContainer)
{this.getTypeSelection=function()
{return typeContainer;};this.getLocationSelection=function()
{return locationContainer;};this.getPriceRangeSelection=function()
{return priceRangeContainer;};this.getHouselandPriceRangeSelection=function()
{return houselandPriceRangeContainer;};this.getBedroomsSelection=function()
{return bedroomsContainer;};this.getBathroomsSelection=function()
{return bathroomsContainer;};this.getRoomStyleSelection=function()
{return roomStyleContainer;};this.getLotWidthSelection=function()
{return lotWidthContainer;};this.getDisplayHomeSelection=function()
{return displayHomeContainer;};this.getRangeSelection=function()
{return rangeContainer;};this.getElevationSelection=function()
{return elevationContainer;};this.getKitchenTypeSelection=function()
{return kitchenTypeContainer;};this.getAlfrescoSelection=function()
{return alfrescoContainer;}
this.getMasterBedroomSelection=function()
{return masterBedroomContainer;};this.getProductListHtml=function()
{return productListContainer;};this.getPaginationHtml=function()
{return paginationContainer;};this.getCurrentPageHtml=function()
{return currentPageContainer;};this.getNextPageButton=function()
{return nextPageButton;};this.getPrevPageButton=function()
{return prevPageButton;};this.getResetButton=function()
{return resetButton;}
this.update=function()
{};function createModule(title,tool,container,helpText)
{var titleHtml=$('<h3></h3>');titleHtml.append('<span>'+title+'</span>');if(helpText)
{titleHtml.append('<span class="help" title="'+helpText+'"></span>');}
container.addClass('module');container.append(titleHtml);container.append(tool.toHtml());return container;}
function hide(element)
{if(element)
{element.css('display','none').removeClass('on')}}
function show(element)
{if(element)
{element.css('display','block').addClass('on');}}
function isAdvancedActive()
{if(advancedToolsContainer.hasClass('active')&&advancedToolsContainer.hasClass('on'))
{return true;}
return false;}
function updateModuleDisplay()
{switch(type.val())
{case type.options.buy.value:show(locationContainer);hide(priceRangeContainer);show(houselandPriceRangeContainer);show(bedroomsContainer);show(bathroomsContainer);hide(roomStyleContainer);hide(elevationContainer);hide(lotWidthContainer);hide(displayHomeContainer);hide(kitchenTypeContainer);hide(masterBedroomContainer);hide(alfrescoContainer);hide(advancedToolsContainer);if(locations.isPerth())
{locations.setAdvancedOptions();}
else
{locations.setMinimalOptions();}
$('#browseDisplay h1').html('Browse our House and Land Packages');break;case type.options.readybuilt.value:show(locationContainer);hide(priceRangeContainer);hide(houselandPriceRangeContainer);hide(bedroomsContainer);hide(bathroomsContainer);hide(roomStyleContainer);hide(elevationContainer);hide(lotWidthContainer);hide(displayHomeContainer);locations.setMinimalOptions();hide(kitchenTypeContainer);hide(masterBedroomContainer);hide(alfrescoContainer);hide(advancedToolsContainer);$('#browseDisplay h1').html('Browse our Readybuilt Homes');break;case type.options.invest.value:show(locationContainer);hide(priceRangeContainer);hide(houselandPriceRangeContainer);hide(bedroomsContainer);hide(bathroomsContainer);hide(roomStyleContainer);hide(elevationContainer);hide(lotWidthContainer);hide(displayHomeContainer);locations.setMinimalOptions();hide(kitchenTypeContainer);hide(masterBedroomContainer);hide(alfrescoContainer);hide(advancedToolsContainer);$('#browseDisplay h1').html('Browse our Display Homes for Sale');break;case type.options.display.value:show(locationContainer);hide(priceRangeContainer);hide(houselandPriceRangeContainer);show(bedroomsContainer);show(bathroomsContainer);show(roomStyleContainer);show(elevationContainer);show(lotWidthContainer);show(displayHomeContainer);show(kitchenTypeContainer);show(masterBedroomContainer);locations.setMinimalOptions();show(alfrescoContainer);show(advancedToolsContainer);$('#browseDisplay h1').html('Browse our Display homes');break;case type.options.build.value:default:show(locationContainer);show(priceRangeContainer);hide(houselandPriceRangeContainer);show(bedroomsContainer);show(bathroomsContainer);show(roomStyleContainer);show(elevationContainer);show(lotWidthContainer);show(displayHomeContainer);show(kitchenTypeContainer);show(masterBedroomContainer);show(alfrescoContainer);show(advancedToolsContainer);locations.setMinimalOptions();$('#browseDisplay h1').html('Browse our Range of Homes');break;}
if(type.val()=='houseland')
{if($('#houseLandPromo').length==0)
{$('#browseTools .general').append('<a id="houseLandPromo" href="/Our-Difference/What-we-offer/House-and-Land-Packages/Exclusive-House-and-Land-Packages/"><img src="/Images/Promotions/Exclusive-HL-module-325x158.jpg" /></a>');}}
else
{$('#houseLandPromo').remove();}}
function updatePage()
{returnId++;updateModuleDisplay();var startIndex=currentPage;var currentSelection={type:type.val(),location:locations.val(),lotWidth:lotWidth.val(),displayHome:displayHome.val(),startIndex:startIndex,bedrooms:bedrooms.val()};var cacheKey='type:'+type.val()+'bedrooms:'+bedrooms.val()+'location:'+locations.val()+'index:'+startIndex+'lotWidth:'+lotWidth.val();var advancedActive=isAdvancedActive();if(advancedActive)
{currentSelection.roomStyles=roomStyle.val();currentSelection.priceRange=priceRange.val();currentSelection.kitchenType=kitchenType.val();currentSelection.masterBedroom=masterBedroom.val();currentSelection.elevation=elevation.val();currentSelection.alfresco=alfresco.val();cacheKey+='priceRange:'+priceRange.val()+'kitchenType:'+kitchenType.val()+'masterBedroom:'+masterBedroom.val()+'elevation:'+elevation.val()+'alfresco:'+alfresco.val();}
else if(type.val()=='houseland')
{currentSelection.priceRange=houselandPriceRange.val();cacheKey+='houselandPriceRange:'+houselandPriceRange.val();}
var encoded=$.toJSON(currentSelection);$.cookie('browse-tool',encoded,365);var roomList=roomStyle.val();for(var int=0;int<roomList.length;int++)
{var room=roomList[int];cacheKey+='_room-'+room;}
var item=$.jCache.getItem(cacheKey);if(item)
{updateResponse(item);}
else
{$.getJSON('/_product/list/?data='+encoded+'&returnId='+returnId,{},function(data)
{if(data.meta)
{if(data.meta.returnId==returnId)
{$.jCache.setItem(cacheKey,data);updateResponse(data);}}});}}
function update()
{currentPage=1;updatePage();};function handleError(errorMessage)
{if(!errorMessage)
{errorMessage='No matches found based on your criteria, but we can adapt one of our plans to suit your requirements. Call us on 9242 9200 or email us.';}
$.each($('li',productListContainer),function()
{this.parentNode.removeChild(this);});var li=$('<li class="error">'+errorMessage+'</li>');productListContainer.append(li);}
function fixProductRowHeight(rowNumber)
{var productList=$('li',productListContainer);var startIndex=(rowNumber-1)*resultsPerRow;var endIndex=startIndex+resultsPerRow;if(endIndex>productList.length)
{endIndex=productList.length;}
var maxHeight=0;for(var int=startIndex;int<endIndex;int++)
{var elementHeight=$('.shadow_content',productList[int]).height();if(elementHeight>maxHeight)
{maxHeight=elementHeight;}}
for(var int=startIndex;int<endIndex;int++)
{$('.shadow_content',productList[int]).height(maxHeight+'px');}
if(typeof resize_shadows=='function')
{resize_shadows();}}
function updateResponse(json)
{$.each($('li',productListContainer),function()
{this.parentNode.removeChild(this);});var timeout=0;if(json.data&&(json.data.length>0))
{var responseItemLength=json.data.length;var faderCount=0;var rowNumber=1;for(var int=0;int<responseItemLength;int++)
{var productData=json.data[int];var cacheKey=locations.val()+":"+type.val()+":"+productData.id;var li;if(!productListCache[cacheKey])
{li=$('<li style="display: none"></li>');productListCache[cacheKey]=li;li.append(formatProductFunction(productData,li,lotWidth));new FaderElement(li,(faderCount)*100);timeout=timeout+300;faderCount++;}
productListCache[cacheKey].height('auto');productListContainer.append(productListCache[cacheKey]);formatProductMinWidth(productData,productListCache[cacheKey]);if((int%resultsPerRow)==(resultsPerRow-1)&&(int!=responseItemLength))
{new RowSorter(rowNumber,timeout);rowNumber++;}}
new RowSorter(rowNumber,timeout+100);var pages=Math.ceil(json.meta.results/resultsPerPage);updatePagination(pages);updateNextPageButton(pages);updatePrevPageButton(pages);updateCurrentPage(json.meta.results,responseItemLength);}
else
{handleError();updatePagination([]);updateNextPageButton([]);updatePrevPageButton([]);updateCurrentPage(0,0);}
function RowSorter(rowNumber,startTime)
{var rowNumber=rowNumber;setTimeout(function()
{fixProductRowHeight(rowNumber);},startTime);}
function FaderElement(element,startTime)
{var element=element;element.css('display','');}}
function updateCurrentPage(totalResults,resultOnPage)
{currentPageContainer.html('Showing '+resultOnPage+' of '+totalResults);}
function updateNextPageButton(maxPages)
{var nextPage=currentPage+1;if(nextPage>maxPages)
{nextPageButton.css('display','none');}
else
{nextPageButton.css('display','');nextPageButton.unbind();nextPageButton.click(function()
{switchPage(currentPage+1);});}}
function updatePrevPageButton()
{var prevPage=currentPage-1;if(prevPage<1)
{prevPageButton.css('display','none');}
else
{prevPageButton.css('display','');prevPageButton.unbind();prevPageButton.click(function()
{switchPage(prevPage);});}}
function updatePagination(pages)
{paginationContainer.empty();for(var int=1;int<=pages;int++)
{var li=new PaginationElement(int);paginationContainer.append(li.toHtml());}
function PaginationElement(int)
{var li=$('<li></li>');if(int==currentPage)
{li.append(int);}
else
{var aTag=$('<a href="javascript:;" />');aTag.append(int);aTag.click(function()
{switchPage(int);});li.append(aTag);}
this.toHtml=function()
{return li;};}}
function switchPage(page)
{currentPage=page;updatePage();};function loadCookieValues()
{var cookie=$.cookie('browse-tool');if(cookie)
{var savedValues=$.evalJSON(cookie);if(savedValues.type)
{type.setValue(savedValues.type);}
if(savedValues.displayHome)
{displayHome.setValue(savedValues.displayHome);}
if(savedValues.locations)
{locations.setValue(savedValues.locations);}
if(savedValues.roomStyles)
{roomStyle.setValue(savedValues.roomStyles);}
if(savedValues.priceRange)
{priceRange.setValue(savedValues.priceRange);}
if(savedValues.houselandPriceRange)
{houselandPriceRange.setValue(savedValues.houselandPriceRange);}
if(savedValues.lotWidth)
{lotWidth.setValue(savedValues.lotWidth);}
if(savedValues.bedrooms)
{bedrooms.setValue(savedValues.bedrooms);}}}
function buildCheckboxList(type,name,options,onclick)
{var container=$('<ul></ul>');for(var optionName in options)
{var option=options[optionName];var buttonId=name+option.value.replace(/ /g,'_');var checkBtn=$('<input type="'+type+'" name="'+name+'" />');var label=$('<label></label>');checkBtn.attr({id:buttonId});checkBtn.val(option.value);if(option.selected==true)
{checkBtn[0].defaultChecked=true;checkBtn.attr('checked',true);}
checkBtn.click(onclick);label.attr({'for':buttonId});label.append(option.label);var li=$('<li></li>');li.append(checkBtn);li.append(label);if(option.help)
{var help=$('<img/>');help.attr("title",option.help);help.attr("alt",option.help);help.attr("src",'/Images/Layout/common/icon_help.gif');label.append('&nbsp;');label.append(help);}
container.append(li);}
return container;}
function TypeSelectionTool(clickFunction)
{this.options={build:{value:'build',label:'Build',selected:true},buy:{value:'houseland',label:'Buy a house and land package'},invest:{value:'invest',label:'Invest/Displays for Sale'},readybuilt:{value:'readybuilt',label:'Buy a Readybuilt home'},display:{value:'display',label:'Show all Display Homes'}};var container=buildCheckboxList('radio','typeSelectionTool',this.options,clickFunction);;this.setValue=function(value)
{$('input[value="'+value+'"]',container).next().click();$('input[value="'+value+'"]',container)[0].checked=true;};this.toHtml=function()
{return container;};this.val=function()
{return $(':checked',container).val();};}
function LocationSelectionTool(clickFunction)
{this.setMinimalOptions=function()
{if(currentSetting!='basic')
{perthOption.css('display','none');currentSetting='basic';}};this.setAdvancedOptions=function()
{if(currentSetting!='advanced')
{perthOption.css('display','');currentSetting='advanced';}};this.toHtml=function()
{return container;};this.setValue=function(values)
{if($.isArray(values))
{for(var int=0;int<values.length;int++)
{try
{var selectedItem=values[int];var input=$('input[value="'+selectedItem+'"]',container);input[0].checked=true;input.next().click();}
catch(exception){}}}
else
{try
{var input=$('input[value="'+values+'"]',container);input[0].checked=true;input.next().click();}
catch(exception){}}};this.isPerth=function()
{return $(':radio:checked',container).val()=='perth';};this.val=function()
{var value;if(currentSetting=='basic')
{value=$(':radio:checked',container).val();}
else
{value=[];$(':checkbox:checked',perthOption).each(function()
{value.push($(this).val());});if(value.length==0)
{value=$(':radio:checked',container).val();};}
return value;};var currentSetting='';var basicOptions={perth:{value:'perth',label:'Perth Metro',help:'',selected:true},southwest:{value:'southwest',label:'South West',help:''}};var advancedOptions={perthNorthEast:{value:'perth_ne',label:'Perth North East',help:''},perthNorthWest:{value:'perth_nw',label:'Perth North West',help:''},perthSouthWest:{value:'perth_sw',label:'Perth South West',help:''},perthSouthEast:{value:'perth_se',label:'Perth South East',help:''}};var basicClickFunction=function()
{if($(this).val()!='perth')
{perthOption.css('display','none');$(':checkbox',perthOption).attr('checked',false);}
else
{if(currentSetting=='advanced')
{perthOption.css('display','');}}
clickFunction();};var container=buildCheckboxList('radio','locationSelectionTool',basicOptions,basicClickFunction);var perthOption=buildCheckboxList('checkbox','locationSelectionToolAdvanced',advancedOptions,clickFunction);perthOption.addClass('advanced');$('li:first',container).append(perthOption);this.setMinimalOptions();}
function SliderTool()
{var container=$('<div class="sliderTool"></div>');var sliderContainer=$('<div class="sliderContainer"></div>');var slider=$('<div></div>');var maxContainer=$('<span class="max"></span>');var minContainer=$('<span class="min"></span>');var info=$('<div class="info" style="display: none">Info</div>');var self=this;this.toHtml=function()
{return container;};this.val=function()
{var values=slider.slider('values');var returnVal=0;if(!values)
{returnVal=slider.slider('value');}
else
{returnVal={min:values[0],max:values[1]};}
return returnVal;};this.setValue=function(values)
{if(values.min&&values.max)
{if((values.min!=this.options.values.min)||(values.max!=this.options.values.max))
{try
{slider.sliderSteps(this.options,'option','values',[values.min,values.max]);this.options.values=[values.min,values.max];slider.slider('destroy');$.each(slider.children(),function()
{this.parentNode.removeChild(this);});slider.sliderSteps(this.options);}
catch(exception){}}}
else
{this.options.value=values;slider.slider('value',values);}
if(this.options.postUpdate)
{this.options.postUpdate(sliderContainer);}};this.setRange=function(values)
{if(values)
{var update=false;if(values.min&&(values.min!=this.options.min))
{this.options.min=parseInt(values.min);minContainer.html(this.options.min);slider.sliderSteps(this.options,'option','min',parseInt(values.min));update=true;}
if(values.max&&(values.max!=this.options.max))
{this.options.max=parseInt(values.max);maxContainer.html(this.options.max);slider.sliderSteps(this.options,'option','max',parseInt(values.max));update=true;}
if(update)
{this.setValue(values);}
formatResult(values,this.options.format);if(this.options.postUpdate)
{this.options.postUpdate(sliderContainer);}}};function formatResult(values,format)
{var minFormat=null;var maxFormat=null;switch(format)
{case'money':minFormat=formatCurrency(values.min);maxFormat=formatCurrency(values.max);break;case'm':minFormat=values.min+'m';maxFormat=values.max+'m';break;case'sqm':minFormat=values.min+'sqm';maxFormat=values.max+'sqm';break;}
if(minFormat)
{minContainer.html(minFormat);minContainer.css({position:'relative',left:'5%'});}
if(maxFormat)
{maxContainer.html(maxFormat);maxContainer.css({position:'relative',left:'-5%'});if(maxContainer.position().top!=minContainer.position().top)
{var topOffset=maxContainer.position().top-minContainer.position().top;maxContainer.css('top','-'+topOffset+'px');}}}
function formatCurrency(num)
{if(num)
{num=num.toString().replace(/\\$|\\,/g,'');var sign=(num==(num=Math.abs(num)));num=Math.floor(num*100+0.50000000001);num=Math.floor(num/100).toString();for(var i=0;i<Math.floor((num.length-(1+i))/3);i++)
{num=num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));}
return(((sign)?'':'-')+'$'+num);}}
this.init=function()
{var format=this.options.format;this.options=$.extend(this.options,{slide:function(event,ui)
{if(ui.value)
{var value=ui.value;if(format)
{switch(format)
{case'money':value=formatCurrency(value);break;case'm':value=value+'m';if(value=='20m')
{value=value+'+';}
break;}}
info.html(value);var handle=$($('.ui-slider-handle',container)[0]);info.stop();info.css({position:'absolute',top:handle.offset().top-12,left:handle.offset().left,opacity:1,display:'block'});info.fadeOut(3000);}}});if(this.options.extraClass)
{container.addClass(this.options.extraClass);}
slider.sliderSteps(this.options);sliderContainer.append('<span class="front">');sliderContainer.append('<span class="end">');sliderContainer.append(slider);container.append(sliderContainer);container.append(minContainer);container.append(maxContainer);$('body').append(info);};}
function PriceRangeSelectionTool(clickFunction)
{this.options={1:{value:'1',label:'$150-$200',help:''},2:{value:'2',label:'$200-$250',help:''},3:{value:'3',label:'$250+',help:''}};var container=buildCheckboxList('checkbox','priceRangeSelectionTool',this.options,clickFunction);this.setValue=function(values)
{$('input',container).attr('checked','');for(var int=0;int<values.length;int++)
{try
{var selectedItem=values[int];$('input[value="'+selectedItem+'"]',container)[0].checked=true;}
catch(exception){}}};this.toHtml=function()
{return container;};this.val=function()
{var returnObj=[];$(':checked',container).each(function()
{returnObj.push($(this).val());});return returnObj;};}
function HouselandPriceRangeSelectionTool(clickFunction)
{this.options={1:{value:'1',label:'$300-$350',help:''},2:{value:'2',label:'$350-$400',help:''},3:{value:'3',label:'$400-$450',help:''},4:{value:'4',label:'$450-$500',help:''},5:{value:'5',label:'$500+',help:''}};var container=buildCheckboxList('checkbox','houselandPriceRangeSelectionTool',this.options,clickFunction);this.setValue=function(values)
{$('input',container).attr('checked','');for(var int=0;int<values.length;int++)
{try
{var selectedItem=values[int];$('input[value="'+selectedItem+'"]',container)[0].checked=true;}
catch(exception){}}};this.toHtml=function()
{return container;};this.val=function()
{var returnObj=[];$(':checked',container).each(function()
{returnObj.push($(this).val());});return returnObj;};}
function MasterBedroomSelectionTool(clickFunction)
{this.options={10:{value:'10',label:'Front',help:''},20:{value:'20',label:'Rear',help:''},30:{value:'30',label:'Other',help:''}};var container=buildCheckboxList('checkbox','masterBedroomSelectionTool',this.options,clickFunction);this.setValue=function(values)
{$('input',container).attr('checked','');for(var int=0;int<values.length;int++)
{try
{var selectedItem=values[int];$('input[value="'+selectedItem+'"]',container)[0].checked=true;}
catch(exception){}}};this.toHtml=function()
{return container;};this.val=function()
{var returnObj=[];$(':checked',container).each(function()
{returnObj.push($(this).val());});return returnObj;};}
function KitchenTypeSelectionTool(clickFunction)
{this.options={10:{value:'10',label:'Island',help:''},20:{value:'20',label:'Gallery',help:''},30:{value:'30',label:'Country',help:''},40:{value:'40',label:'Other',help:''}};var container=buildCheckboxList('checkbox','kitchenTypeSelectionTool',this.options,clickFunction);this.setValue=function(values)
{$('input',container).attr('checked','');for(var int=0;int<values.length;int++)
{try
{var selectedItem=values[int];$('input[value="'+selectedItem+'"]',container)[0].checked=true;}
catch(exception){}}};this.toHtml=function()
{return container;};this.val=function()
{var returnObj=[];$(':checked',container).each(function()
{returnObj.push($(this).val());});return returnObj;};}
function AlfrescoSelectionTool(clickFunction)
{this.options={10:{value:'10',label:'Rear',help:''},20:{value:'20',label:'Side',help:''}};var container=buildCheckboxList('checkbox','alfrescoSelectionTool',this.options,clickFunction);this.setValue=function(values)
{$('input',container).attr('checked','');for(var int=0;int<values.length;int++)
{try
{var selectedItem=values[int];$('input[value="'+selectedItem+'"]',container)[0].checked=true;}
catch(exception){}}};this.toHtml=function()
{return container;};this.val=function()
{var returnObj=[];$(':checked',container).each(function()
{returnObj.push($(this).val());});return returnObj;};}
function BedroomsSelectionTool(clickFunction)
{this.options={3:{value:'3',label:'3',help:''},4:{value:'4',label:'4',help:''},5:{value:'5',label:'5',help:''}};var container=buildCheckboxList('checkbox','bedroomSelectionTool',this.options,clickFunction);this.setValue=function(values)
{$('input',container).attr('checked','');for(var int=0;int<values.length;int++)
{try
{var selectedItem=values[int];$('input[value="'+selectedItem+'"]',container)[0].checked=true;}
catch(exception){}}};this.toHtml=function()
{return container;};this.val=function()
{var returnObj=[];$(':checked',container).each(function()
{returnObj.push($(this).val());});return returnObj;};}
function BathroomsSelectionTool(clickFunction)
{var amount=2;var container=$('<select></select>');for(var int=1;int<=amount;int++)
{var option=$('<option></option');if(int==2)
{option.attr('selected','selected');}
option.val(int);option.append(int);container.append(option);}
container.change(clickFunction);this.toHtml=function()
{return container;};this.val=function()
{return parseInt($(':selected',container).val());};}
function ElevationSelectionTool(clickFunction)
{this.options={10:{value:'10',label:'Contemporary / Modern',help:''},20:{value:'20',label:'Traditional',help:''},30:{value:'30',label:'Classic',help:''},40:{value:'40',label:'Farmhouse',help:''},50:{value:'50',label:'Other',help:''}};var container=buildCheckboxList('checkbox','elevationSelectionTool',this.options,clickFunction);this.setValue=function(values)
{$('input',container).attr('checked','');for(var int=0;int<values.length;int++)
{try
{var selectedItem=values[int];$('input[value="'+selectedItem+'"]',container)[0].checked=true;}
catch(exception){}}};this.toHtml=function()
{return container;};this.val=function()
{var returnObj=[];$(':checked',container).each(function()
{returnObj.push($(this).val());});return returnObj;};}
function RoomStyleSelectionTool(clickFunction)
{this.options={office:{value:'home_office',label:'Home Office',help:''},theatre:{value:'home_theatre',label:'Home Theatre',help:''},alfresco:{value:'alfresco',label:'Alfresco',help:''},activity:{value:'game',label:'Games/Activity Room',help:''}};var container=buildCheckboxList('checkbox','locationSelectionTool',this.options,clickFunction);this.setValue=function(values)
{$('input',container).attr('checked','');for(var int=0;int<values.length;int++)
{try
{var selectedItem=values[int];$('input[value="'+selectedItem+'"]',container)[0].checked=true;}
catch(exception){}}};this.toHtml=function()
{return container;};this.val=function()
{var returnObj=[];$(':checked',container).each(function()
{returnObj.push($(this).val());});return returnObj;};}
function LotWidthSelectionTool(clickFunction)
{var minValue=10;var maxValue=20;var container=$('<div></div>');this.options={format:'m',value:'20',min:minValue,max:maxValue,step:1,range:false,stop:function(event,ui)
{value=ui.value;clickFunction();}};this.init();}
LotWidthSelectionTool.prototype=new SliderTool();function DisplayHomeSelectionTool(clickFunction)
{this.options={yes:{value:'yes',label:'Yes',help:''},no:{value:'no',label:'No',help:'',selected:true}};var container=buildCheckboxList('radio','displayHomeSelectionTool',this.options,clickFunction);this.toHtml=function()
{return container;};this.setValue=function(value)
{try
{$('input[value="'+value+'"]',container).attr('checked',true);}
catch(exception){}};this.val=function()
{return $(':checked',container).val();};}
function RangeSelectionTool(clickFunction)
{this.options={display:{value:'display',label:'Display',help:'All our Homes on Display'},latitude:{value:'latitude',label:'Latitude',help:'House Designs for Large Families needing space'},primo:{value:'primo',label:'Primo',help:'House Designs for First Home Buyers'},cbd:{value:'cbd',label:'CBD',help:'House Designs for Compact / Narrow lots'},farmhouse:{value:'farmhouse',label:'Farmhouse',help:'House Designs inspired by the romance of country living'}};var container=buildCheckboxList('checkbox','rangeSelectionTool',this.options,clickFunction);this.setValue=function(values)
{$('input',container).attr('checked','');for(var int=0;int<values.length;int++)
{try
{var selectedItem=values[int];$('input[value="'+selectedItem+'"]',container)[0].checked=true;}
catch(exception){}}};this.toHtml=function()
{return container;};this.val=function()
{var returnObj=[];$(':checked',container).each(function()
{returnObj.push($(this).val());});return returnObj;};}
function loadResetButton()
{resetButton.click(function()
{type.setValue('build');locations.setValue('perth');bedrooms.setValue([]);roomStyle.setValue([]);lotWidth.setValue('20');priceRange.setValue([]);houselandPriceRange.setValue([]);masterBedroom.setValue([]);kitchenType.setValue([]);update();});}
function processValues(values)
{var splitValues=values.split(',');var temp=[];for(var index in splitValues)
{temp.push(splitValues[index]);}
return temp;}
function formatProductMinWidth(productData,li)
{if(productData.lotWidth>0&&productData.minLotWidth>0&&productData.lotWidth>lotWidth.val())
{if(lotWidth.val()==20)
{$('a.image span.minlotwidth',li).remove();return;}
$('a.image',li).append('<span class="minlotwidth">Home Fits Block with Modification</span>');}
else
{$('a.image span.minlotwidth',li).remove();}}
var resultsPerPage=32;var resultsPerRow=4;var currentPage=1;var type=new TypeSelectionTool(update);var typeContainer=$('<div class="i_want_to"></div>');var locations=new LocationSelectionTool(update);var locationContainer=$('<div></div>');var priceRange=new PriceRangeSelectionTool(update);var priceRangeContainer=$('<div class="priceRange"></div>');var houselandPriceRange=new HouselandPriceRangeSelectionTool(update);var houselandPriceRangeContainer=$('<div class="houselandPriceRange"></div>');var bedrooms=new BedroomsSelectionTool(update);var bedroomsContainer=$('<div class="bedroomSelection"></div>');var bathrooms=new BathroomsSelectionTool(update);var bathroomsContainer=$('<div></div>');var roomStyle=new RoomStyleSelectionTool(update);var roomStyleContainer=$('<div></div>');var elevation=new ElevationSelectionTool(update);var elevationContainer=$('<div class="elevation"></div>');var lotWidth=new LotWidthSelectionTool(update);var lotWidthContainer=$('<div class="lotWidth"></div>');var kitchenType=new KitchenTypeSelectionTool(update);var kitchenTypeContainer=$('<div class="kitchenType"></div>');var alfresco=new AlfrescoSelectionTool(update);var alfrescoContainer=$('<div class="alfresco"></div>');var masterBedroom=new MasterBedroomSelectionTool(update);var masterBedroomContainer=$('<div class="masterBedroom"></div>');var displayHome=new DisplayHomeSelectionTool(update);var displayHomeContainer=$('<div></div>');var rangeContainer=$('<div></div>');var productListContainer=$('<ul id="productList" class="productList"></ul>');var productListCache=[];var formatProductFunction=formatProductFunction;var paginationContainer=$('<ul id="pagination"></ul>');var currentPageContainer=$('<div class="showing"></div>');var nextPageButton=$('<a href="javascript:;" style="display: none" class="next">Next</a>');var prevPageButton=$('<a href="javascript:;" style="display: none" class="prev">Back</a>');var resetButton=$('<button class="reset"><span>reset<span></button>');var advancedTools=$('.tools',advancedToolsContainer);var advancedToolsTitle=$('div.title',advancedToolsContainer);advancedToolsTitle.click(function()
{if(advancedToolsContainer.hasClass('active'))
{closeAdvanced();}
else
{openAdvanced();}});function closeAdvanced()
{advancedToolsContainer.removeClass('active');advancedTools.hide();updatePage();}
function openAdvanced()
{advancedToolsContainer.addClass('active');advancedTools.show();updatePage();}
var returnId=0;var responseCache=[];var rangeData=null;loadResetButton();$.getJSON('/_product/rangedata/',function(data)
{try
{rangeData=data;createModule('I want to',type,typeContainer,null,'i_want_to');createModule('Location',locations,locationContainer);createModule('Price Range',priceRange,priceRangeContainer);createModule('Price Range',houselandPriceRange,houselandPriceRangeContainer);createModule('No. Bedrooms',bedrooms,bedroomsContainer);createModule('No. Bathrooms',bathrooms,bathroomsContainer);createModule('Features',roomStyle,roomStyleContainer);createModule('Lot Width',lotWidth,lotWidthContainer,'The lot width of the block.');createModule('Kitchen Type',kitchenType,kitchenTypeContainer);createModule('Master Bedroom Location',masterBedroom,masterBedroomContainer);createModule('Elevation Type',elevation,elevationContainer);createModule('Alfresco Location',alfresco,alfrescoContainer);var hashProcessed=false;var parsedUri=mu.parseUri(location.href);if(location.hash)
{var urlParts=mu.parseUri('/temp/?'+location.hash.substring(1,location.hash.length));var keys=urlParts.queryKey;if(keys.a&&$('#browseTools .i_want_to input[value="'+keys.a+'"]').length>0)
{resetButton.click();type.setValue(keys.a);if(keys.loc)
{locations.setValue(keys.loc);}
if(keys.bed)
{bedrooms.setValue(processValues(keys.bed));}
if(keys.room)
{roomStyle.setValue(processValues(keys.room));}
if(keys.width)
{lotWidth.setValue(processValues(keys.width));}
if(keys.price)
{var priceValues=processValues(keys.price);var prices={};if(priceValues[0])
{prices.min=priceValues[0];}
if(priceValues[1])
{prices.max=priceValues[1];}
priceRange.setValue(prices);houselandPriceRange.setValue(prices);}
if(keys.master)
{masterBedroom.setValue(processValues(keys.master));}
if(keys.kitchen)
{kitchenType.setValue(processValues(keys.kitchen));}
hashProcessed=true;}}
if(false==hashProcessed)
{if(window.location.toString().indexOf('sw_displayinvest')>0)
{type.setValue('invest');locations.setValue('southwest');}
else if(window.location.toString().indexOf('sw_displayhomes')>0)
{type.setValue('display');locations.setValue('southwest');}
else if(window.location.toString().indexOf('sw_houseandland')>0)
{type.setValue('houseland');locations.setValue('southwest');}
else if(window.location.toString().indexOf('house')>0)
{type.setValue('houseland');}
else if(window.location.toString().indexOf('invest')>0)
{type.setValue('invest');}
else if(window.location.toString().indexOf('readybuilt')>0)
{type.setValue('readybuilt');}
else if(window.location.toString().indexOf('show_all')>0)
{type.setValue('display');}
else if(window.location.toString().indexOf('new_home')>0)
{type.setValue('build');}
else
{loadCookieValues();}
if(window.location.toString().indexOf('displayHomes=')>=1)
{displayHome.setValue('yes');}}
$('.module input[type=radio]').prettyCheckboxes();update();if(typeof DD_belatedPNG=='object')
{DD_belatedPNG.fix('.ui-slider-handle');}
if(type.val()=='build'||type.val()=='display')
{var checked=$('input[type="checkbox"]:checked',advancedToolsContainer);if(checked.length==0)
{closeAdvanced();}
else
{openAdvanced();}}
setTimeout(function()
{$('.lotWidth .sliderTool label.last span').html('20+');},500);}
catch(exception){}});}
function createIcon(className,title,text)
{var div=$('<div title="'+title+'" class="icon '+className+'"></div>')
if(text)
{div.append(text);}
return div;}
function formatProductDisplay(productData,container,lotWidth)
{var shadowContainer=$('<div class="shadow"></div>');shadowContainer.append('<span class="tr" />');shadowContainer.append('<span class="bl" />');shadowContainer.append('<span class="bt" />');shadowContainer.append('<span class="rt" />');shadowContainer.append('<span class="br" />');var innerContainer=$('<div></div>');innerContainer.addClass('shadow_content');var common_facts=$('<div></div>');common_facts.attr({'class':'product_common_facts'});if(typeof(productData.product_is_new)!="undefined"&&productData.product_is_new==true)
{common_facts.append(' &nbsp; NEW!');}
if(typeof(productData.price_is_featured)!="undefined"&&productData.price_is_featured==true)
{common_facts.append(' &nbsp; '+productData.featured_price);}
if(typeof(productData.product_is_under_offer)!="undefined"&&productData.product_is_under_offer==true)
{common_facts.append(' &nbsp; UNDER OFFER!');}
innerContainer.append(common_facts);var imageLink=$('<a class="image"></a>');imageLink.attr({title:productData.title,href:productData.url});var img=$('<img />');img.attr({title:productData.title,alt:productData.desc,src:productData.image});imageLink.append(img);var headingLink=$('<a>'+productData.title+'</a>');headingLink.attr({title:productData.title,href:productData.url});var heading=$('<h4></h4>');heading.append(headingLink);var link=$('<a>more</a>');link.attr({title:productData.title,href:productData.url});var descContent=$('<div class="blurb"></div>');if(productData.address!='')
{descContent.append('<h4 class="address">'+productData.address+'</h4>');heading=headingLink;}
descContent.append(heading);descContent.append(createIcon('bedroom',productData.bedrooms+' bedrooms',productData.bedrooms));if(productData.garage==20)
{descContent.append(createIcon('garage','Double garage',2));}
if(productData.garage==30)
{descContent.append(createIcon('garage','Triple garage',3));}
if(productData.office)
{descContent.append(createIcon('office','Home office'));}
if(productData.alfresco)
{descContent.append(createIcon('alfresco','Alfresco'));}
if(productData.theatre)
{descContent.append(createIcon('theatre','Home theatre'));}
if(productData.games)
{descContent.append(createIcon('games','Games / Activity'));}
innerContainer.append(imageLink);innerContainer.append(descContent);shadowContainer.append(innerContainer);container.append(shadowContainer);}
$(document).ready(function()
{try
{pageTracker._trackPageview('/New-Homes/#/Content/New-Homes/Browse-Tool');}
catch(err)
{}
browseTools=$('#browseTools .general');browseToolsAdvanced=$('#browseTools #advancedOptions');browseToolsAdvancedTools=$('div.tools',browseToolsAdvanced);browseDisplay=$('#browseDisplay');$.jCache.maxSize=20;var tool=new BrowseTool(formatProductDisplay,browseToolsAdvanced);browseTools.append(tool.getTypeSelection());browseTools.append(tool.getLocationSelection());browseTools.append(tool.getBedroomsSelection());browseTools.append(tool.getLotWidthSelection());browseTools.append(tool.getHouselandPriceRangeSelection());browseToolsAdvancedTools.append(tool.getRoomStyleSelection());browseToolsAdvancedTools.append(tool.getPriceRangeSelection());browseToolsAdvancedTools.append(tool.getElevationSelection());browseToolsAdvancedTools.append(tool.getMasterBedroomSelection());browseToolsAdvancedTools.append(tool.getKitchenTypeSelection());browseToolsAdvancedTools.append(tool.getAlfrescoSelection());$('#browseDisplay h1').after(tool.getResetButton());$('#browseDisplay h1').after(tool.getCurrentPageHtml());browseDisplay.append(tool.getProductListHtml());browseDisplay.append(tool.getPrevPageButton());browseDisplay.append(tool.getNextPageButton());browseDisplay.append(tool.getPaginationHtml());});var browseTools;var browseToolsAdvanced;var browseDisplay;
