(function($){$.fn.enableDefaultTextValue=function(value){var self=this;self.value=value;return this.each(function(value){if($(this).val()===''){$(this).val(self.value);}
$(this).focus(function(){if(this.value===self.value){this.value='';}});$(this).blur(function(){if(this.value===''){this.value=self.value;}});});};})(jQuery);$enhanceHomeBanners=function(group){var cache=[];var banners=[];var numBanners=0;var current=0;$('#reason-title').after('<button id="next-reason" class="button black-button right">Next Reason<span class="button-icon ltgray-button-icon right"></span></button>');function changeBanner(current){$("#home-banner").fadeOut(50,function(){$('#home-banner').html(banners[current].banner);$('#reason-number').html(banners[current].reason_num);$('#reason-title').html(banners[current].reason_title);}).fadeIn(50);}
function getNextBannerIndex(current){next=(current===(numBanners-1))?0:parseInt(current,10)+1;return next;}
function cacheImage(index){if(cache[index]===undefined){cache[index]=new Image();cache[index].src=banners[index].src;}}
$.getJSON('includes/ajax/ajax_clippings.php?',{'clip_group':group},function(data){banners=data;numBanners=banners.length;for(i=0;i<numBanners;i++){if(banners[i].reason_num===$('#reason-number').html()){current=i;}}
var nextBanner=getNextBannerIndex(current);cacheImage(nextBanner);});$('#next-reason').click(function(){current=getNextBannerIndex(current);changeBanner(current);var nextBanner=getNextBannerIndex(current);cacheImage(nextBanner);});};$enhanceHomeFeatures=function(group){function getActiveFeature(){var idArr=$('.active-feature').attr("id").split('-');var activeId=parseInt(idArr[1],10);return activeId;}
var numFeatures=$('.feature').length;var activeId=getActiveFeature();var featureNav='';var selected='';var i=1;for(i;i<=numFeatures;i++){selected=(activeId===i)?' selected':'';featureNav+='<li><a id="featurenav-'+i+'" class="feature-nav-item'+selected+'"></a></li>';}
$('#rotating-features').after('<ul id="features-nav">'+featureNav+'</ul>');function changeFeature(current){$('.feature-nav-item').removeClass('selected');$('#featurenav-'+(current)).addClass('selected');$('.feature').removeClass('active-feature');$('#feature-'+(current)).addClass('active-feature');}
function getNextFeatureIndex(current){next=(current===numFeatures)?1:parseInt(current,10)+1;return next;}
function timerEvent(){var activeId=getActiveFeature();var nextId=getNextFeatureIndex(activeId);changeFeature(nextId);}
var timer=$.timer(4000,function(timer){timerEvent();});$('.feature-nav-item').click(function(){var idArr=$(this).attr("id").split('-');var featureId=parseInt(idArr[1],10);changeFeature(featureId);timer.reset(4000);return false;});};$.enableHomeTabs=function(){$('.quick-search-tab').click(function(){$('.quick-search-tab').removeClass('selected');$(this).addClass('selected');$id=$(this).attr('id').split('-');$('.quick-search-content').hide();$('#'+$id[0]+'-search-content').show();return false;});};$.enhanceSearchForm=function(map){var searchType=(map===null||map===undefined)?'list':'map';var loadingDiv=(searchType==='list')?'property-listings-wrapper':'map-canvas';var loading=new Loading(loadingDiv,'Updating Search Results');var $enableMulti=function(){$('.multi-select').each(function(){var title='';switch($(this).attr('id')){case'city':title='Cities';break;case'zipcode':title='ZIP Codes';break;case'county':title='Counties';break;case'subdivision':title='Sub Divisions';break;case'schooldistrict':title='School Districts';break;}
$(this).after('<button class="multi-select-button" title="Select Multiple '+title+'"></button>');});};$enableMulti();$('#search-type').change(function(){var $val=$(this).val();$.ajax({url:"/includes/ajax/load-search-form.php",data:"search-type="+$val,cache:false,success:function(html){$('#property-search-form-wrapper').html(html);$('#openhouse').attr('checked',false);$('#open-range').hide();$('#garage-type-wrapper').hide();$("#fromdate").datepicker({minDate:0,maxDate:'+2M'});$("#todate").datepicker({minDate:0,maxDate:'+2M'});$enableMulti();}});});var updateSearch=function(event){loading.show();var postData=$("#advanced-search").serializeArray();window.scrollTo(0,220);if(event){postData=(event.target.id==='sort')?$("#property-sort-form").serializeArray():$("#advanced-search").serializeArray();}
$('#mls').val('');if(map){$('#results-info').load('/format-search.php #results-info > *',postData,function(html){map.displayMarkers(loading);});}
else{$('#property-listings-wrapper').load('/format-search.php #property-listings-wrapper > *',postData,function(html){loading.hide();});}
var hash='';if(event.target.id==='search-type'){hash=$('#search-page').val()+'/search-type/'+$('#search-type').val();}
else{$.each(postData,function(name,obj){if(obj.value){var isSearchPage=(obj.name==='search-page')?true:false;var isValidInput=(obj.name!=='open-filter'||(obj.name==='open-filter'&&$('#openhouse:checked').val()!==undefined))?true:false;var value=obj.value.replace('/','|').replace(/, /g,',').replace(/ /g,'_');if(isSearchPage){hash+=value+'/';}
else if(isValidInput){hash+=obj.name+'/'+value+'/';}}});}
if(hash.charAt(hash.length-1)==='/'){hash=hash.substring(0,hash.length-1);}
_gaq.push(['_trackPageview',hash]);window.location.hash=hash;};var clearSearch=function(){$('#mls').val('');var $searchPage=$('#search-page-advanced').val();var $searchType=$('#search-type').val();var $propSubmit=$('#property-submit').val();var $topPropSubmit=$('#top-property-submit').val();$('#advanced-search :input:not(:checkbox):not(:radio)').val('');$('#advanced-search :checkbox').attr('checked',false);$('#openhouse').attr('checked',false);$('#open-range').hide();$('#property-submit').val($propSubmit);$('#top-property-submit').val($topPropSubmit);$('#search-page-advanced').val($searchPage);$('#search-type').val($searchType);window.location.hash=$searchPage+'?clear=search';if(map){$('#results-info').load('/'+$searchPage+' #results-info > *','clear=search',function(){map.resetMap();});}
else{$('#property-listings-wrapper').load('/'+$searchPage+' #property-listings-wrapper > *','clear=search',function(){loading.hide();});}};$('#advanced-search :text').live('keydown',function(e){var key=e.which||e.keyCode;if(key===13){updateSearch(e);$(this).blur();e.preventDefault();return false;}
return true;});$('#sort').live('change',function(event){updateSearch(event);});$('.update-search').live('click',function(event){updateSearch(event);return false;});$('a.clear-search').live('click',function(){clearSearch();return false;});$('#page-wrapper').append('<div id="search-multi-select"></div>');$('#search-multi-select').dialog({modal:true,draggable:true,resizable:false,autoOpen:false,height:400,width:500,closeText:'hide',buttons:[{text:'Submit',click:function(){var id=$('#multi-search-type').val();var values='';$('#multi-select-form :checked').each(function(){values+=$(this).val()+', ';});values=values.substring(0,values.length-2);$('#'+id).val(values);$('#'+id).trigger('change');$(this).dialog("close");$(this).html('');}},{text:'Cancel',click:function(){$(this).dialog("close");},id:'secondary-button'}],close:function(){$(this).html('');},open:function(){$('.ui-dialog-buttonset :first').blur();}});$('.multi-select-button').live('click',function(){var $searchType=$("#search-type").val();var $id=$(this).prev('input').attr('id');var $value=$(this).prev('input').attr('value');var title='';switch($id){case'city':title='Cities';break;case'condo':title='Condos';break;case'lake':title='Lakes or Streams';break;case'zipcode':title='ZIP Codes';break;case'county':title='Counties';break;case'garage-type':title='Garage Types';break;case'subdivision':title='Subdivisions';break;case'schooldistrict':title='School Districts';break;case'style':title='Home Styles';break;case'water-features':title='Water Features';break;case'water-type':title='Water Types';break;}
$("#search-multi-select").dialog('option','title','Select Multiple '+title);$("#search-multi-select").dialog('open');$.ajax({url:"/includes/ajax/get-searchlist.php",data:"search-type="+$searchType+"&select-type="+$id+"&value="+$value,cache:false,success:function(html){$("#search-multi-select").html(html);}});return false;});};$.enhanceOpenForm=function(){if($('#openhouse:checked').val()===undefined){$('#open-range').hide();}
$('#openhouse').live('change',function(){$('#open-range').toggle();$('#open-select-range input').val('');$('#open-all').attr('checked',true);});$('#open-select-range input').live('click',function(){$('#open-filter').attr('checked',true);});$('#open-all').live('click',function(){$('#open-select-range input').val('');});};$.enhanceContact=function(){$('#page-wrapper').append('<div id="contact-popup"></div>');$('.contact-link').live('click',function(){var id_arr=$(this).attr("id").split('-');var mls=id_arr[1];$('#contact-popup').load('/contact-realtor/mls/'+mls+' #realtors-contact-frame',function(){$("#contact-popup").dialog('open');});return false;});$('#contact-popup .submit').live('click',function(){var id_arr=$(this).attr("id").split('-');var mls=id_arr[1];var postData=$("#contact-agent-form").serializeArray();$('#contact-popup').load('/contact-realtor/mls/'+mls+'/ajax #contact-agent',postData,function(html){if(html.indexOf("thank-you")!==-1){$("#contact-popup").dialog('option','buttons',{Close:function(){$(this).dialog("close");}});}});return false;});$("#contact-popup").dialog({modal:true,draggable:true,resizable:false,autoOpen:false,width:650,title:"SCHEDULE A SHOWING"});};$.enableItinerary=function(mapButton){var replacementHtml='';var action='';var removeClass;var addClass;$('#page-wrapper').append('<div id="itinerary-error"><p class="error itinerary-error-msg">Oops! You can have up to 10 properties in your driving directions. Please remove some properties from your driving directions.</p></div>');$('a.itinerary-button').live('click',function(event){event.cancelBubble=true;if(event.stopPropagation){event.stopPropagation();}
var $self=$(this);var $mlsnum=$(this).attr('id').substring(10);$('#update-'+$mlsnum).remove();if($(this).hasClass('add-button')){action='add';removeClass='add-button';addClass='remove-button';replacementHtml='<span class="button-icon dd-button-icon left"></span>Remove from Directions';}
else if($(this).hasClass('remove-button')){action='remove';removeClass='remove-button';addClass='add-button';replacementHtml='<span class="button-icon dd-button-icon left"></span>Add to Directions';}
$.ajax({url:"/includes/ajax/edit-itinerary.php",type:"POST",dataType:"text",data:"edit="+action+"&mls="+$mlsnum,cache:false,success:function(data){var result=$.parseJSON(data);var message;if(result.msg==='success'){$self.removeClass(removeClass).addClass(addClass);$self.html(replacementHtml);var html=(result.size>0)?'<span id="driving-tab" class="property-tab"></span>Directions ('+result.size+')':'<span id="driving-tab" class="property-tab"></span>Directions';$('#driving-list-tab').html(html);var properties=(result.size===1)?'property':'properties';if(!mapButton){message="<p id=\"update-"+$mlsnum+"\" class=\"itinerary-update\">Directions modified<p>";$(message).insertAfter($self).hide().fadeIn(500).delay(2000).fadeOut(500,function(){$(this).remove();});}
$('.itinerary-size').html(result.size);$('.itinerary-properties').html(properties);}else if(result.msg==='error'){$("#itinerary-error").dialog('open');}}});return false;});$("#itinerary-error").dialog({modal:true,draggable:true,resizable:false,autoOpen:false,height:250,width:420,title:'ERROR ADDING LISTING TO DRIVING DIRECTIONS',buttons:{OK:function(){$(this).dialog("close");}}});};$.enableItineraryList=function(gmap){$('.remove-itinerary').bind('click',function(event){var $self=$(this);var mlsnum=$(this).parent().attr('id').substring(10);$.ajax({url:"/includes/ajax/edit-itinerary.php",type:"POST",dataType:"text",data:"edit=remove&mls="+mlsnum,cache:false,success:function(data){var result=$.parseJSON(data);if(result.size>1){$('.itinerary-size').text(result.size);gmap.displayDirections();}
else if(result.size===1){$('#itinerary-header').replaceWith('<h2 id="itinerary-header">There is <span class="itinerary-size">'+result.size+'</span> Listing in your Itinerary. Please Add More Listings to Get Driving Directions.</h2>');gmap.directionsDisplay.setMap(null);gmap.displayDirections();$('#directions').html('');}
else{$('#itinerary-header').replaceWith('<h2 id="itinerary-header">There are No Listings in Your Itinerary. Please Add Listings to Get Driving Directions.</h2>');gmap.clearMarkers();gmap.map.setZoom(8);gmap.map.setCenter(gmap.latlng);gmap.directionsDisplay.setMap(null);$('#directions').html('');}
$self.parent().fadeOut(500,function(){$(this).remove();});var tabHtml=(result.size>0)?'<span id="driving-tab" class="property-tab"></span>Directions ('+result.size+')':'<span id="driving-tab" class="property-tab"></span>Directions';console.log(tabHtml);$('#driving-list-tab').html(tabHtml);}});return false;});$("#itinerary").sortable({placeholder:"ui-state-highlight",stop:function(){var mls=[];$("#itinerary > li").each(function(key,value){mls.push($(this).attr('id').substr(10));});$.ajax({url:"/includes/ajax/edit-itinerary.php",type:"POST",dataType:"json",data:"edit=sort&mls="+mls,cache:false,success:function(data){gmap.displayDirections();}});}});$("#itinerary").disableSelection();};$.enhancePropertyDetails=function(){$('.details').css('display','none');$('.property-tab-header').removeClass('opened').addClass('closed');var closeTab=function($tab){$tab.removeClass('opened').addClass('closed');$tab.find('.details').hide();};var openTab=function($tab){$tab.removeClass('closed').addClass('opened');$tab.find('.details').show();};$('.view-all').click(function(){$('.property-tab-header').each(function(){openTab($(this));});return false;});$('.property-tab-header').click(function(){if($(this).hasClass('opened')){closeTab($(this));}
else{openTab($(this));}
return false;});};$.detailGallery=function(){var currentPic=0;var $pics=$('#detail-pics > a');var num_pics=$pics.size();$('.view-larger').click(function(){$('.pic-selected').trigger('click');return false;});$('.pic-nav').click(function(){var prev_pic=currentPic;if($(this).hasClass('detail-pic-next')){if(currentPic===(num_pics-1)){currentPic=0;}
else{currentPic++;}}
else if($(this).hasClass('detail-pic-prev')){if(currentPic===0){currentPic=num_pics-1;}
else{currentPic--;}}
$($pics[prev_pic]).removeClass('pic-selected');$($pics[currentPic]).addClass('pic-selected');$('.current-pic').text(currentPic+1);return false;});};$.print=function(){$('#property-toolbox-print').click(function(){window.print();return false;});};$(document).ready(function(){$.enhancePropertyDetails();$.detailGallery();$.print();$("#fromdate").datepicker({minDate:0,maxDate:'+2M',dateFormat:'mm-dd-yy'});$("#todate").datepicker({minDate:0,maxDate:'+2M',dateFormat:'mm-dd-yy'});});
