var search_in_progress = false;
var listings = {};
var pre_images = new Array();
var img_path = '/default/images/property_search/search/images/';
var cbo = new CallBackObject();
var schoolRatingInfo='temp...';
var newMapResDivContent='';
var showDisclaimer=false;
var simpleSrchCriteria="";
var pre_detail_images = new Array();
var newMapResTemplateDivContent='';
	  

if (/msie/i.test (navigator.userAgent)) //only override IE
{
  document.nativeGetElementById = document.getElementById; 
  document.getElementById = function(id)
  {
    var elem = document.nativeGetElementById(id);
    if(elem)
    {
      //make sure that it is a valid match on id
      if(elem.attributes['id'].value == id)
      {
        return elem;
      }
      else
      {
        //otherwise find the correct element
        for(var i=1;i<document.all[id].length;i++)
        {
          if(document.all[id][i].attributes['id'].value == id)
          {
            return document.all[id][i];
          }
        }
      }
    }
    return null;
  }
} 

function el(id) {
    return document.getElementById(id);
}


function load_images(){    
    if (document.images)
    {  
        searchBttn = new Image(); searchBttn.src = img_path + "searchbutton_o.gif";        
        recommBttn = new Image(); recommBttn.src = img_path+"search_recomm_o.gif";        
        backBttn = new Image();  backBttn.src = img_path+"back_recomm_o.gif";     
        saveFHU = new Image(); searchBttn.src = img_path+"savefhu_o.gif";        
        updateFHU = new Image(); recommBttn.src = img_path+"updatefhu_o.gif"; 
        collapseBttn = new Image(); collapseBttn.src = img_path+"collapseform.gif"; 
        expandBttn = new Image(); expandBttn.src = img_path+"expandform.gif";         
        
        /* template buttons */
        calculateBttn = new Image(); calculateBttn.src = img_path+"templates/calculate_over.gif";        
        compareBttn = new Image(); compareBttn.src = img_path+"templates/compare_over.gif";        
        contactBttn = new Image(); contactBttn.src = img_path+"templates/contact_over.gif";                
        detailsBttn = new Image();  detailsBttn.src = img_path+"templates/details_over.gif";     
        detailsSmallBttn = new Image();  detailsSmallBttn.src = img_path+"templates/details_small_over.gif";     
        flyerBttn = new Image();  flyerBttn.src = img_path+"templates/flyer_over.gif";     
        mapBttn = new Image();  mapBttn.src = img_path+"templates/map_over.gif";     
        nvBttn = new Image();  nvBttn.src = img_path+"templates/neighborhood_over.gif";     
        rateBttn = new Image(); rateBttn.src = img_path+"templates/rate_over.gif";     
        saveBttn = new Image(); saveBttn.src = img_path+"templates/save_over.gif";   
        scheduleBttn = new Image(); scheduleBttn.src = img_path+"templates/schedule_over.gif";   
        slideshowBttn = new Image(); slideshowBttn.src = img_path+"templates/slideshow_over.gif";   
        tourBttn = new Image(); tourBttn.src = img_path+"templates/tour_over.gif";   
    }    
}
 

function getData(obj) {
    var data = {};
    
    for (i = 0; i < obj.elements.length ; i++) {
        if (!obj.elements[i].disabled){         
            
            if (obj.elements[i].name == 'scope' && obj.elements[i].value == '') {
                data[obj.elements[i].name] = 'ALL';
            }
    
            if (obj.elements[i].type == 'checkbox'){
                if(obj.elements[i].checked )
                    data[obj.elements[i].name] = obj.elements[i].value;
            }
            else if (obj.elements[i].type == 'radio') {
                if(obj.elements[i].checked )
                    data[obj.elements[i].name] = obj.elements[i].value;
            }
            else if (obj.elements[i].type == 'select-multiple') {
                var k = 0;                    
                for (var j = 0; j < obj.elements[i].length; j++){    
                    optElem = obj.elements[i].options[j];    
                    if (optElem.selected == true){    
                        if(typeof(data[obj.elements[i].name]) == 'undefined') {
                            data[obj.elements[i].name] = new Array();
                        }
                        data[obj.elements[i].name][k] = optElem.value;                                
                        k++;
                    }                    
                }                                               
                
            }
            else if (obj.elements[i].type == 'select-one') { 
                for (var j = 0; j < obj.elements[i].length; j++){    
                    optElem = obj.elements[i].options[j];    
                    if (optElem.selected == true){                            
                        data[obj.elements[i].name] = optElem.value;                        
                    }
                }    
            }
            else if (obj.elements[i].value != '') {                
                data[obj.elements[i].name] = obj.elements[i].value;
            }
        }
    }

    return data;
}


function addCommas(nStr)
{
    nStr += '';
    var x = nStr.split('.');
    var x1 = x[0];
    var x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}


function beforeSubmit(old_new){

	if(el('press_search_msg')) el('press_search_msg').style.display='none';
	
    if(search_in_progress) {       
       shownote('','Search already in progress. Please wait for the results and run a new search after.');
       return false;
    } 
        
    if(el('search_type').value == 'map'){          
        if(map && map.getZoom) {
            if(map.getZoom()<6) {               
               shownote('','Please zoom in before searching.');
               return false;
            }
        }
        
        if(el('mapResDiv')) el('display_style').value = 'map';
    }
    else if( el('search_type').value == 'zipcode' && el('zipcode').value == '') {                  
        shownote('','Please insert a zipcode or change the search type before submit.', 'Form error');
        return false;
    }
    else if( el('search_type').value == 'mls_id' && (
        el('listing_mls_id_1').value == '' && el('listing_mls_id_2').value == '' && el('listing_mls_id_3').value == '' &&
        el('listing_mls_id_4').value == '' && el('listing_mls_id_5').value == '' && el('listing_mls_id_6').value == '' )) {                  
        shownote('','Please insert a mls id or change the search type before submit.', 'Form error');
        return false;
    
    }
    el('ps_form_content').style.display='none';        
    if(el('ps_form_img')) { el('ps_form_img').src = img_path+ 'collapsed.gif'; }
    if(el('ps_form_msg')) { el('ps_form_msg').style.display = 'block'; }        
    if(el('ps_edit_msg')) { el('ps_edit_msg').style.display = 'block'; }
    
    //hide block divs
    if(el('_block_div_')) { el('_block_div_').style.display = 'none'; }
    if(el('_map_block_div_')) { el('_map_block_div_').style.display = 'none'; }
    
    el('recommendedDiv').innerHTML = '';        
    el('teaserDiv').style.display = 'none';        
    
    if(old_new == true) submitForm(true);
    else submitForm(); 
}


cbo.OnLoading = function() {alert("Loading functions");}
cbo.OnAbort   = function(){alert('Request has been aborted');};

cbo.OnError   = function(status, statusText){
    alert('Error - ' + statusText); 
    search_in_progress = false; 
    el('workLoaderDiv').style.display = 'block';  
    el('preLoaderDiv').style.display = 'none';       
};


// Search button
function submitForm(old_new){
    formId = 'ps_form';
    search_in_progress=true;  
    
    if(old_new && old_new == true) { data = the_criteria;}        
    else { data = getData(el(formId)); }           
    cbo.OnLoading = function(){                        
        if(el('mapDiv')) el('mapDiv').style.display = 'none';
        if(el('mapResDiv')) el('mapResDiv').style.display = 'none';         
              
        el('workLoaderDiv').style.display = 'none';  
        if(el('resultsHeadertop'))
        el('resultsHeadertop').style.display = 'none';                
        if(el('resultsHeaderbottom'))el('resultsHeaderbottom').style.display = 'none'; 
        if(el('preLoaderDiv'))
        el('preLoaderDiv').style.display = 'block'; 
        if(document.all && el('loading_image')){
            el('loading_image').style.visibility = "visible"; 
             setTimeout("el('loading_image').src=el('loading_image').src;",100);
            
        }
    }
    
    cbo.OnComplete = function(text, xml){ 
        document.getElementById("total_listing").innerHTML="";               
        if(window.map){ map.clearOverlays(); }
        if(window.tempMap){ tempMap.clearOverlays(); }
        if(window.tempMap1){ tempMap1.clearOverlays(); }
        var loaderDiv = el('workLoaderDiv');
        loaderDiv.innerHTML = '';         
        loaderDiv.innerHTML = text;  
        
        search_in_progress=false;
                
        if(el('search_type') == 'map' && el('mapDiv')){            
            if(el('mapDiv')) el('mapDiv').style.display = 'block';
            if(el('mapResDiv')) el('mapResDiv').style.display = 'block';                         
        }
        else {
            el('workLoaderDiv').style.display = 'block'; 
        }     
        runInnerScripts(loaderDiv);
		
        //if(el('mapResDiv')) el('mapResDiv').style.height = '120px';
        el('preLoaderDiv').style.display = 'none';
		if(window.back2results && el('login_link')){ el('login_link').href='/login.htm?referer='+back2results;}
		if(window.back2results && el('register_link')){ el('register_link').href='/register.htm?purl=_vip_&referer='+back2results; }
      
    };

    var url = 'http://'+ servername +'/popup/homesrch.htm?';
	cbo.DoCallBack(url, data);
	//document.ps_form.submit();
    return true;
}


// Search button
function submitCustSearchForm(old_new){
    formId = 'customized_ps_form';
    search_in_progress=true;
	
    if(old_new && old_new == true) { data = the_criteria;}        
    else { data = getData(el(formId)); }  
	populateHomeTypes(data);
    cbo.OnLoading = function(){                        
        if(el('mapDiv')) el('mapDiv').style.display = 'none';
        if(el('mapResDiv')) el('mapResDiv').style.display = 'none';         
              
        el('workLoaderDiv').style.display = 'none';  
        if(el('resultsHeadertop'))
        el('resultsHeadertop').style.display = 'none';                
        if(el('resultsHeaderbottom'))el('resultsHeaderbottom').style.display = 'none';   
        el('preLoaderDiv').style.display = 'block'; 
        if(document.all && el('loading_image')){
            el('loading_image').style.visibility = "visible"; 
             setTimeout("el('loading_image').src=el('loading_image').src;",100);
            
        }
    }
    
    cbo.OnComplete = function(text, xml){ 
        document.getElementById("total_listing").innerHTML="";               
        if(window.map){ map.clearOverlays(); }
        if(window.tempMap){ tempMap.clearOverlays(); }
        if(window.tempMap1){ tempMap1.clearOverlays(); }
        var loaderDiv = el('workLoaderDiv');
//alert('Loading Results');
        loaderDiv.innerHTML = '';         
        loaderDiv.innerHTML = text;  
        
        search_in_progress=false;
                
        if(el('search_type') == 'map' && el('mapDiv')){            
            if(el('mapDiv')) el('mapDiv').style.display = 'block';
            if(el('mapResDiv')) el('mapResDiv').style.display = 'block';                         
        }
        else {
            el('workLoaderDiv').style.display = 'block'; 
        }     
        runInnerScripts(loaderDiv);
		
        //if(el('mapResDiv')) el('mapResDiv').style.height = '120px';
        el('preLoaderDiv').style.display = 'none';
		if(window.back2results && el('login_link')){ el('login_link').href='/login.htm?referer='+back2results;}
		if(window.back2results && el('register_link')){ el('register_link').href='/register.htm?purl=_vip_&referer='+back2results; }
      
    };

    var url = 'http://'+ servername +'/popup/homesrch.htm?';
	cbo.DoCallBack(url, data);
	//document.ps_form.submit();
    return true;
}


function _imagesLoaded(){    
    var flag = true;
    for(var i1=0; i1 < listings.length; i1++) { if(!pre_images[listings[i1].id].complete) flag = false;}
    if(!flag) { setTimeout('_imagesLoaded()', 500); }    
    else { get_images(); }
}

function preload_images() { 
    if(listings.length < 1 ) return;     

    for(var i=0; i < listings.length; i++) { 
    	pre_images[listings[i].id]= new Image();
        pre_images[listings[i].id].src = listings[i].photo_url;                           
        
        if(listings[i].detailPhotoUrl != null){
        	pre_detail_images[listings[i].id]= new Image();
        	pre_detail_images[listings[i].id].src = listings[i].detailPhotoUrl;
        }
         
    }      
         
    _imagesLoaded();
}   
    
function get_images() {     
    for(var idx = 0;  idx < listings.length; idx++) {        
        var id = listings[idx].id;
        var photo = pre_images[id];   
        var detail_photo = pre_detail_images[id];
      
       // If user want detail photo instead of thumnail then pass detail_photo.src instead of photo.src
        if(el('thumbnail_' +id)) {
            if(detail_photo){
            	el('thumbnail_'+id).src = detail_photo.src;
            }else{
            	el('thumbnail_'+id).src = photo.src;
            }
            el('thumbnail_'+id).width = 96;     
            el('thumbnail_'+id).height = 80;     
        }                
    
        if(el('detail_'+id)){
	   if(detail_photo){
		el('detail_'+id).src = detail_photo.src; 
	   }else{
		el('detail_'+id).src = photo.src;
	   }
            el('detail_'+id).width = 132;     
            el('detail_'+id).height = 90;     
        }                 

        if(el('map_'+id)){ 
	      
            el('map_'+id).src = photo.src;
            el('map_'+id).width = 70;     
            el('map_'+id).height = 58;     
        }
        
        if(el('map_list_'+id)){ 
	     if(detail_photo){
            	el('map_list_'+id).src = detail_photo.src;
	     }else{
		el('map_list_'+id).src = photo.src;
	     }
            el('map_list_'+id).width = 48;
            el('map_list_'+id).height = 40;            
        }
    }
}


function getTeaser(obj, mls, nmbr, mls_name){  
    if(!search_in_progress){
        if(prev!= obj.id) { 
            el(prev).innerHTML = 'Display '+ teaser_nr; 
            prev=obj.id; 
            teaser_nr = number_format(nmbr, 0, '.', ','); 
            search_in_progress=true;
            obj.innerHTML = '<font color=green><b>'+ nmbr +'</b> displayed</font>';
            the_criteria.mls = mls;  
            the_criteria.mls_name = mls_name;  
            the_criteria.nrc = nmbr;
            the_criteria.show_teaser = 'off';  
            the_criteria.page = '1';
            if(!the_criteria.action){
            	the_criteria.action = 'search';
            }
            submitForm(true);
        }
    }

       
}


function getPage(pg, nmbr){
	 el('page').value = pg;
    the_criteria.page = pg; 
    the_criteria.nrc = nmbr; 
    the_criteria.show_teaser = 'off'; 
    submitForm(true);    
}


function getCustomPage(obj){        
    
    max_pg = Math.ceil( parseInt(the_criteria.nrc) / parseInt(the_criteria.res_on_page) ) ;   
    if( parseInt(obj.value) <= max_pg && parseInt(obj.value) > 0) {
        the_criteria.page = parseInt(obj.value); 
        the_criteria.show_teaser = 'off'; 
        submitForm(true);    
    }
    else {
        alert("Please insert a value larger than 0 and smaller than " + max_pg);
        return false;
    }
}


function getResOnPage(val){
    el('res_on_page').value = val;    
    the_criteria.res_on_page = val; 
    the_criteria.page = '1';     
    the_criteria.show_teaser = 'off';
    submitForm(true);    
}


function getOrderBy(val){ 
    el('order_by').value = val;
    the_criteria.order_by = val; 
    the_criteria.page = '1';   
    the_criteria.show_teaser = 'off'; 
    submitForm(true);  
}


function showResults(display_tpl) {      
    
    var els = new Array('text', 'detail', 'map', 'thumbnail');
    
    // determine the view to display
    if(display_tpl == '') {     
        if(el('search_type') && el('search_type').value == 'map') display_tpl = 'map';  
        if(el('display_style') && el('display_style').value != '' ) display_tpl = el('display_style').value;            
    }  
    else {        
        el('display_style').value= display_tpl;
    }
    
    // set the view into the criteria 
    the_criteria.display_style = display_tpl;
    
    if(display_tpl == 'map') {                
        el('workLoaderDiv').style.display = 'none';        
        if(el('mapDiv')) el('mapDiv').style.display = 'block';
        if(el('_map_block_div_')) el('_map_block_div_').style.display = 'none';
        
        if(listings && listings.length) {
            if(!_map_loaded_){
                if(document.all) {  setTimeout("initMap();drawMapResults(listings);",3500);}
                else { initMap(); drawMapResults(listings); }
            }
            else {
                drawMapResults(listings);
            }
        }        
        
        if( el('mapResDiv') && el('mapResFake') && (el('mapResFake').innerHTML!= '')){                     
            el('mapResDiv').innerHTML=el('mapResFake').innerHTML;
            el('mapResFake').innerHTML='';
            _imagesLoaded();                
            el('mapResDiv').style.display = 'block';
            el('mapResDiv').parentNode.style.height='auto';
            //setTimeout("el('mapResDiv').style.height='90px';",200);
			setTimeout("el('mapResDiv').style.height=((el('mapResDiv').offsetHeight>0?el('mapResDiv').offsetHeight:70)+(document.all?16:0))+'px';",200);            
        }           
        //added here in case map list is disabled
        if(el('mapResLnk')) {
            el('mapResLnk').className = 'ps_views_current';
            el('mapResLnk').onmouseout = function () { this.className = 'ps_views_current';}             
        }      
        
    }
    else {        
        if(el('mapDiv')) { 
            el('mapDiv').style.display = 'none'; 
            if(el('_map_block_div_')) el('_map_block_div_').style.display = 'none';
            //added here in case map list is disabled
            if(el('mapResLnk')) {
                el('mapResLnk').className = 'ps_views';
                el('mapResLnk').onmouseout = function () { this.className = 'ps_views';}             
            }      
        }        
        el('workLoaderDiv').style.display = 'block';  

    }
    
    
    // chage current link    
    for(var i3 = 0; i3 < els.length; i3++) if(el(els[i3]+'ResDiv')) {            
        if(els[i3] == display_tpl) { 
            el(els[i3]+'ResDiv').style.display = 'block';
            if(el(els[i3]+'ResLnk')) {
                el(els[i3]+'ResLnk').className = 'ps_views_current';
                el(els[i3]+'ResLnk').onmouseout = function () { this.className = 'ps_views_current';}             
            }                
                
        }
        else {
            el(els[i3]+'ResDiv').style.display='none';
            if(el(els[i3]+'ResLnk')) { 
                el(els[i3]+'ResLnk').className = 'ps_views';            
                el(els[i3]+'ResLnk').onmouseout = function () { this.className = 'ps_views';}
            }
        }
    }         

}
function beforeSubmit_1(old_new){

    if(el('press_search_msg')) el('press_search_msg').style.display='none';
    
    if(search_in_progress) {       
       shownote('','Search already in progress. Please wait for the results and run a new search after.');
       return false;
    } 
        
    if(el('search_type').value == 'map'){          
        if(map && map.getZoom) {
            if(map.getZoom()<6) {               
               shownote('','Please zoom in before searching.');
               return false;
            }
        }
        
        if(el('mapResDiv')) el('display_style').value = 'map';
    }
    else if( el('search_type').value == 'zipcode' && el('zipcode').value == '') {                  
        shownote('','Please insert a zipcode or change the search type before submit.', 'Form error');
        return false;
    }
    else if( el('search_type').value == 'mls_id' && (
        el('listing_mls_id_1').value == '' && el('listing_mls_id_2').value == '' && el('listing_mls_id_3').value == '' &&
        el('listing_mls_id_4').value == '' && el('listing_mls_id_5').value == '' && el('listing_mls_id_6').value == '' )) {                  
        shownote('','Please insert a mls id or change the search type before submit.', 'Form error');
        return false;
    
    }
    el('ps_form_content').style.display='none';        
    if(el('ps_form_img')) { el('ps_form_img').src = img_path+ 'collapsed.gif'; }
    if(el('ps_form_msg')) { el('ps_form_msg').style.display = 'block'; }        
    if(el('ps_edit_msg')) { el('ps_edit_msg').style.display = 'block'; }
    
    //hide block divs
    if(el('_block_div_')) { el('_block_div_').style.display = 'none'; }
    if(el('_map_block_div_')) { el('_map_block_div_').style.display = 'none'; }
    
    el('recommendedDiv').innerHTML = '';        
    el('teaserDiv').style.display = 'none';        
    
    if(old_new == true) submitForm_1(true);
    else submitForm_1(); 
}

// Search button
function submitForm_1(old_new){
    document.ps_form.submit();
}

/*--------- c21scheetz enhancements (Nov/17/2010)---START-----*/
// parses the json-format content and prepares school rating info.
function displaySchoolRatings(content){

	 var output = '';  
	 output =output+"<ul>"
	var no_schools=content.length;  
    for(var i=0;i<no_schools;i++){
		var link = content[i].school.url;
		var name = content[i].school.schoolname;
	 output += " <li><a href='" + link + "' target='_blank'>"+name+"</a></li>";  
	}
	 output =output+"</ul>"
	document.getElementById('results').innerHTML = output;    
}

// hides member services and other search related tabs ( this is introduced as part of c21scheetz enhancements new UI).
function hideMemberServices(){
	
	if(el("ps_small_content_id_value")){
		if(el("ps_small_content_id_value").style)
			el("ps_small_content_id_value").style.display='none';
	}
	

	if(el('mapResDiv'))
		el("mapResDiv").style.display='none';
	//$(".bv-content-body").hide();
	if(el('mapDiv'))
		el("mapDiv").style.display='none';
	if(el('searchTabsRow1'))	
		el("searchTabsRow1").style.display='none';
	if(el('searchFormRow2'))	
		el("searchFormRow2").style.display='none';
	if(el('teaserDivRow3'))	
		el("teaserDivRow3").style.display='none';
	if(el('recomendedDivRow4'))	
		el("recomendedDivRow4").style.display='none';
	if(el('menuResultDivRow5'))	
		el("menuResultDivRow5").style.display='none';	

}

function getListingsOrderBy(){
   var ref=document.getElementById('sort-by');
   if(ref!=null)
	getOrderBy(ref.value);
}

/*--- added as part of C21Scheetz enhancements, this function will be invoked when user clicks on gallery or map or list views.----*/
function  hideAndShowOfContents(ele_type,divname){
  if(ele_type=='galleryView'){ // show gallery view and hide others(map and listing).
	if(el('listGalleryView'))	
	el("listGalleryView").style.display='block';
	if(el('mapViewParentDiv'))
	el("mapViewParentDiv").style.display='none';
	if(el('listViewParentDiv'))
	el("listViewParentDiv").style.display='none';
	//show the gallery view selected image and list,map non selected images.
	if(el('galleryViewImgSel'))
	el("galleryViewImgSel").style.display='block';
	if(el('galleryViewImg'))
	el("galleryViewImg").style.display='none';
	if(el('mapViewImg'))
	el("mapViewImg").style.display='block';
	if(el('mapViewImgSel'))
	el("mapViewImgSel").style.display='none';
	if(el('listViewImgSel'))
	el("listViewImgSel").style.display='none';
	if(el('listViewImg'))
	el("listViewImg").style.display='block';
	if(el('display_style'))
		el('display_style').value='thumbnail';
	// show map in thumbnail, if 'showMapInThumbnail' is true. Date(15/Nov/2010)
	if(showMapInThumbnail){
		initScheetzMap(divname);
		drawScheetzMapResults(listings);
		initMap();
		drawMapResults(listings);
		tempMap=null;
	}
  }else if(ele_type=='mapView'){
    
	el("mapViewParentDiv").style.display='block';
	el("listGalleryView").style.display='none';
	el("listViewParentDiv").style.display='none';
	//show the gallery view selected image and list,map non selected images.
	el("galleryViewImgSel").style.display='none';
	el("galleryViewImg").style.display='block';
	el("mapViewImg").style.display='none';
	el("mapViewImgSel").style.display='block';
	el("listViewImgSel").style.display='none';
	el("listViewImg").style.display='block';
	if(el('display_style'))
		el('display_style').value='map';
	 initMap();
	 mapResults_loaded=false;
	 drawMapResults(listings);
  }else if(ele_type=='listView'){
  	el("listViewParentDiv").style.display='block';
	el("mapViewParentDiv").style.display='none';
	el("listGalleryView").style.display='none';
	//show the gallery view selected image and list,map non selected images.
	el("galleryViewImgSel").style.display='none';
	el("galleryViewImg").style.display='block';
	el("mapViewImg").style.display='block';
	el("mapViewImgSel").style.display='none';
	el("listViewImgSel").style.display='block';
	el("listViewImg").style.display='none';
    if(el('display_style'))
		el('display_style').value='detail';
	if(showMapInThumbnail){
		initScheetzMap(divname);
		drawScheetzMapResults(listings);
		initMap();
		drawMapResults(listings);
		tempMap="";
	}		
  }
  

 }

/* --added as part of C21Scheetz enhancements, populates the contents of mapview and listview */
function populatePSListingsContent(){
  if(el('mapResDiv')){ // update map view, if content exists.
	if(newMapResDivContent)
	   el('mapResDiv').innerHTML = newMapResDivContent;
  }
  
   if(el('mapResDiv')){ // update map view, if content exists.
   if(newMapResTemplateDivContent)
   	el('mapResDiv').innerHTML = newMapResDivContent;
   }  
  
 }

  /* --added as part of C21Scheetz enhancements, enables specific view (like gallery, map, summary) */
function showPropertyResults(){
	if(el('display_style') && trimString(el('display_style').value)!=''){
		if(el('display_style').value=='thumbnail')
			hideAndShowOfContents('galleryView','galleryViewDiv');
		else if(el('display_style').value=='map')
			hideAndShowOfContents('mapView','newMapTemplateDiv');
		else if(el('display_style').value=='detail')
			hideAndShowOfContents('listView','listViewDiv');
		else 
			hideAndShowOfContents('galleryView','galleryViewDiv');
	}else{ // if 'display_style' not present, show galleryView.
		hideAndShowOfContents('galleryView','galleryViewDiv');
	}
}

/*--------- c21scheetz enhancements (Nov/17/2010)---END-----*/

/*  -- c21scheetz enhancements(Nov/30/2010)---   */
function showExpanded() {
	document.getElementById('edit-search-expanded').style.display = "block";
	document.getElementById('expanded-link').style.display = "none";
	document.getElementById('contracted-link').style.display = "block";
	return;
}

function hideExpanded() {
	document.getElementById('edit-search-expanded').style.display = "none";
	document.getElementById('expanded-link').style.display = "block";
	document.getElementById('contracted-link').style.display = "none";
	return;
}
// populates school district info, if exists.
function populateSDInfo(){
   var  crit = el("criteria");
   alert('criteria....'+el('school_district'));
   //var temp;
   //for(var idx=0;idx<superSelector.length;idx++){
	//	 temp = superSelector[idx];
	//	 alert("..temp text:"+temp.description)
   //}
}

// // c21Scheetz search form enhancement START.
function checkUnCheckPropType(obj)
{
   if(obj.id == "chk_All") // All - type checked / unchecked
    {
        var arrChkBox = el("dvPropType").getElementsByTagName("input");
        var lenArrChkBox = arrChkBox.length;
        
        if(obj.checked == true)
        {
            for(k=0; k<lenArrChkBox; k++)
            {
                arrChkBox[k].checked = true;
            }
        }
        else
        {
            for(k=0; k<lenArrChkBox; k++)
            {
                arrChkBox[k].checked = false;
            }
        }
    }
    else
    {
        var arrChkBox = el("dvPropType").getElementsByTagName("input");
        var lenArrChkBox = arrChkBox.length;
        var flag = false;

        for(k=0; k<lenArrChkBox; k++)
        {
            if(arrChkBox[k].id == "chk_All")
                continue;

            if(arrChkBox[k].checked == true)
            {
                flag = true;
                break;
            }
        }

        if(flag)
        {
        }
        else
        {
            el("chk_All").checked = false;
            return;
        }
        
        if(obj.checked == true)
        {
            var flag = false;

            for(k=0; k<lenArrChkBox; k++)
            {
                if(arrChkBox[k].id == "chk_All")
                    continue;

                if(arrChkBox[k].checked == false)
                {
                    flag = true;
                    break;
                }
            }                

            if(flag)
                el("chk_All").checked = false;
            else
                el("chk_All").checked = true;
        }
        else
        {
            var flag = false;

            for(k=0; k<lenArrChkBox; k++)
            {
                if(arrChkBox[k].id == "chk_All")
                    continue;

                if(arrChkBox[k].checked == true)
                {
                    flag = true;
                    break;
                }
            }                

            if(flag)
               el("chk_All").checked = false;
            else
                el("chk_All").checked = true;
        }
    }
}

function savePropType()
{
    var srchTyp = "";   
	var ref = el('hometypes');
    if(el("chk_All").checked == true)
    {
       // populate array
	 selectAllHomeTypes();
	  //alert('ref value'+ref[0].selected);
    }
    else
    {	deSelectAllHomeTypes();
        var arrChkBox = el("dvPropType").getElementsByTagName("input");
        var lenArrChkBox = arrChkBox.length;            

        for(k=0; k<lenArrChkBox; k++)
        {
            if(arrChkBox[k].id == "chk_All")
                continue;

            if(arrChkBox[k].checked == true)
            {
                // setting into array
				ref.options[k-1].selected = true;
            }
        }
   }
	var selectedContent = "";
	//alert('len'+selectedContent.length);
	var arrSize = ref.length;
	  for(idx=0; idx<arrSize; idx++){
		if(ref[idx].selected == true){
			selectedContent = selectedContent+ref[idx].text+",";
		}
		if(selectedContent.length>20){
			break;
		}
	  }
	  if(selectedContent.length!=0 && el("chk_All").checked != true){
	    el('dvPropTypeTitle').innerHTML=selectedContent;
	  }else{
		el('dvPropTypeTitle').innerHTML='All';
		selectAllHomeTypes();
	  }
    //setSearchCookie("searchType", trim(srchTyp));
    //displayPropType();
    showHidePropTypeDiv();
}

function selectAllHomeTypes(){
	
	 var ref = el('hometypes');
	  var arrSize = ref.length;
	  for(idx=0;idx<arrSize;idx++){
		ref.options[idx].selected = true;
	  }
}

function deSelectAllHomeTypes(){
	
	 var ref = el('hometypes');
	  var arrSize = ref.length;
	  for(idx=0;idx<arrSize;idx++){
		ref.options[idx].selected = false;
	  }
}

function showHidePropTypeDiv()
{
    if(el('dvPropTypeMain').style.display == 'block')
        el('dvPropTypeMain').style.display = 'none';
    else
        el('dvPropTypeMain').style.display = 'block';
}


function populateHomeTypes(data){
	 
	var ref = el('hometypes');
	var arrSize = ref.length;
	  
	var k=0;
	 for(idx=0;idx<arrSize;idx++){
		optElem = ref.options[idx];    
        if (optElem.selected == true){    
        if(typeof(data[ref.name]) == 'undefined') {
            data[ref.name] = new Array();
        }
        data[ref.name][k] = optElem.value;                                
        k++;
        }     
	  }
}


function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

// for image slide show in thumbnail page.
function getNextImageForListing(listingId,linkPressed){
	var tempRef = listingId.id+'_idxValue';
	var tempStrSrc = listingId.src;
	// for getting the proper image, change the query param 'size' to detail.
	
	//commented to avoid hotlink denied error
	//tempStrSrc=tempStrSrc.replace("size=thumbnail","size=detail"); 
	var ref = el(tempRef);
	var imgIdxValue = parseInt(ref.value);
	if(linkPressed=='prev'){
		if(imgIdxValue==1)
			imgIdxValue=17;
		else
			imgIdxValue = imgIdxValue-1;
		var temp = tempStrSrc+"&index="+imgIdxValue;
		listingId.src = temp; 
		ref.value = imgIdxValue;
	}else if(linkPressed=='next'){
		if(imgIdxValue==17)
			imgIdxValue=1;
		else
			imgIdxValue = imgIdxValue+1;
		var temp = tempStrSrc+"&index="+imgIdxValue;
		listingId.src = temp; 
		ref.value = imgIdxValue;
	}
	
}

// for retaining the simple search form criteria.
function setSimpleSearchFormCriteria(){
	var formRef = el('customized_ps_form');
	
	if(simpleSrchCriteria){
		var elementRef = getFormElementRef('cityAndState');
		if(elementRef && simpleSrchCriteria.cityAndState )
			elementRef.value = simpleSrchCriteria.cityAndState;
		elementRef = getFormElementRef('bedrooms');
		if(elementRef && simpleSrchCriteria.bedrooms && trimString(simpleSrchCriteria.bedrooms)!='')
			setSelectOption(elementRef,simpleSrchCriteria.bedrooms);
		elementRef = getFormElementRef('bathrooms');
		if(elementRef && simpleSrchCriteria.bathrooms && trimString(simpleSrchCriteria.bathrooms)!='')
			setSelectOption(elementRef,simpleSrchCriteria.bathrooms);
		elementRef = getFormElementRef('minprice');
		if(elementRef && simpleSrchCriteria.minprice && trimString(simpleSrchCriteria.minprice)!='')
			elementRef.value = simpleSrchCriteria.minprice;
		elementRef = getFormElementRef('maxprice');
		if(elementRef && simpleSrchCriteria.maxprice && trimString(simpleSrchCriteria.maxprice)!='')
			elementRef.value = simpleSrchCriteria.maxprice;
		elementRef = getFormElementRef('street');
		if(elementRef && simpleSrchCriteria.street && trimString(simpleSrchCriteria.street)!='')
			elementRef.value = simpleSrchCriteria.street;
		elementRef = getFormElementRef('minsqft');
		if(elementRef && simpleSrchCriteria.minsqft && trimString(simpleSrchCriteria.minsqft)!='')
			setSelectOption(elementRef,simpleSrchCriteria.minsqft);
		elementRef = getFormElementRef('maxsqft');
		if(elementRef && simpleSrchCriteria.maxsqft && trimString(simpleSrchCriteria.maxsqft)!='')
			setSelectOption(elementRef,simpleSrchCriteria.maxsqft);
		elementRef = getFormElementRef('listing_mls_id_1');
		if(elementRef && simpleSrchCriteria.listing_mls_id_1 && trimString(simpleSrchCriteria.listing_mls_id_1)!='')
			elementRef.value = simpleSrchCriteria.listing_mls_id_1;
		elementRef = getFormElementRef('area_mls_id');
		if(elementRef && simpleSrchCriteria.area_mls_id && trimString(simpleSrchCriteria.area_mls_id)!='')
			elementRef.value = simpleSrchCriteria.area_mls_id;
		elementRef = getFormElementRef('age');
		if(elementRef && simpleSrchCriteria.age && trimString(simpleSrchCriteria.age)!='')
			setSelectOption(elementRef,simpleSrchCriteria.age);
		elementRef = getFormElementRef('acres');
		if(elementRef && simpleSrchCriteria.acres && trimString(simpleSrchCriteria.acres)!='')
			setSelectOption(elementRef,simpleSrchCriteria.acres);
		elementRef = getFormElementRef('school_district');
		if(elementRef && simpleSrchCriteria.school_district && trimString(simpleSrchCriteria.school_district)!=''){
			setSelectOption(elementRef,simpleSrchCriteria.school_district);
		}
		elementRef = getFormElementRef('waterfront');
		if(elementRef && simpleSrchCriteria.waterfront && trimString(simpleSrchCriteria.waterfront)=='t')
			elementRef.checked = true;
		elementRef = getFormElementRef('show_openhouse');
		if(elementRef && simpleSrchCriteria.show_openhouse && trimString(simpleSrchCriteria.show_openhouse)=='t')
			elementRef.checked = true;
		elementRef = getFormElementRef('pool');
		if(elementRef && simpleSrchCriteria.pool && trimString(simpleSrchCriteria.pool)=='t')
			elementRef.checked = true;
		elementRef = getFormElementRef('fireplace');
		if(elementRef && simpleSrchCriteria.fireplace && trimString(simpleSrchCriteria.fireplace)=='t')
			elementRef.checked = true;
		elementRef = getFormElementRef('date_created');
		if(elementRef && simpleSrchCriteria.date_created && trimString(simpleSrchCriteria.date_created)=='7')
			elementRef.checked = true;
		elementRef = getFormElementRef('show_vtours');
		if(elementRef && simpleSrchCriteria.show_vtours && trimString(simpleSrchCriteria.show_vtours)=='t')
			elementRef.checked = true;
		elementRef = getFormElementRef('our_listings');
		if(elementRef && simpleSrchCriteria.our_listings && trimString(simpleSrchCriteria.our_listings)=='t')
			elementRef.checked = true;
		if(simpleSrchCriteria.hometypes)
		  setHomeTypesForSimpleSearch(simpleSrchCriteria.hometypes);
	}
}

function getFormElementRef(elementId){
	var formRef = el('customized_ps_form');
	var elementRef;
	for(var idx=0;idx<formRef.elements.length;idx++){
		var element = formRef.elements[idx];
		if(element.id==elementId){
			elementRef = element;
			break;
		}
	}
	return elementRef;
}

function setSelectOption(ref, valueToSet){
	if(ref){
		var arrSize = ref.length;
		valueToSet = trimString(valueToSet);
		var optElem;
		for(idx=0;idx<arrSize;idx++){
			optElem = ref.options[idx]; 
			if(optElem.value==valueToSet){
				ref.value = valueToSet;
				break;
			}
		}
	}
}

function  setHomeTypesForSimpleSearch(simpleSrchHomeTypes){

	var length = simpleSrchHomeTypes.length;
	for(idx=0;idx<length;idx++){
		if(simpleSrchHomeTypes[idx] == ''){ break; }
		var tempId = 'hometypes_'+simpleSrchHomeTypes[idx];
        if (el(tempId) == null) { return; }
		el(tempId).checked = true;
		checkUnCheckPropType(el(tempId));
	}
	if(length>0){
	   savePropType();
	   showHidePropTypeDiv();
	}

}

// c21Scheetz search form enhancement END.

function createCookie10080(name,value,days) {
	//alert('inside create cookie, name:['+name+'], value:['+value+'], days:['+days+']');
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else
		var expires = "";
	//alert('cokie created:'+name+"   value:"+value);
	value = tempReplaceAll(value,';','}');
	document.cookie = name+"="+value+expires+"; path=/";
	
}

function readCookie10080(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	//alert('doc cookie'+ca);
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		c = tempReplaceAll(c,'}',';'); 
		c = tempReplaceAll(c,'__',''); 
		//c = tempReplaceAll(c,'-',''); 
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie10080(name) {
	createCookie10080(name,"",-1);
}

function appendToCookie10080(cookieName,content) {
	var cookieContent = readCookie10080(cookieName);
	if(cookieContent.length>0){
		cookieContent = cookieContent+'$$$'+content;
		eraseCookie10080(cookieName);
		createCookie10080(cookieName,cookieContent,0);
	}
}

function readFromCookie10080(cookieName,valueToRead) {
	var cookieContent = readCookie10080(cookieName);
	if(cookieContent.length>0){
	var ca = cookieContent.split('$$$');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			if(c.indexOf(valueToRead)!=-1){
				var value = c.substring(c.indexOf(valueToRead)+valueToRead.length,c.length);
				return value;
			}
		}
	}
}


function tempReplaceAll(Source,stringToFind,stringToReplace){

  var temp = Source+'';
	
    var index = temp.indexOf(stringToFind);
	     while(index != -1){

            temp = temp.replace(stringToFind,stringToReplace);

            index = temp.indexOf(stringToFind);

        }

        return temp;

}

function setDetailkPageCookie(){
			createCookie10080('detailPageVisited','true',0);
			var backSearchCriteria = readCookie10080('backSearchCriteria');
			if(backSearchCriteria!=null && backSearchCriteria.length>0)
			createCookie10080("tempBackSearchCriteria",backSearchCriteria,0);
			eraseCookie10080('backSearchCriteria');
}

