var loadleft = -1;
var main_template = "";
var jsontimer = 0;
var loaded_template = false;
var loaded_mls = false;
var loaded_listings=Array();
var home_parent = "#profile_listings_box";
var home_container = "#myhomes";

function load_mls_Json( mlsnum ) {
 var url = 'http://template.metrolistmls.com/goldcountrymedia/cgi-bin/inc_getonejson.cfm?mlsnum=' + mlsnum
 var script = document.createElement( 'script' );
 script.type = 'text/javascript';
 script.src = url;
 document.getElementsByTagName('head')[0].appendChild( script );
}

function mls_property_item(json) {
  if (json.istatus!=-1){
    add_home(json);
    loaded_listings.push(json.prop.mlsnum);
  }
  loadleft--;
  
  if (loadleft==0){
    loaded_mls = true;
    if(loaded_template){
      loading_complete();
    }
  }
}

function money_format(num, suffix) {
 num = num.toString().replace(/\$|\,/g,'');
 if (suffix == undefined){suffix='';}
 if (num == '0'){return '';}
 if(isNaN(num))
 num = "0";
 sign = (num == (num = Math.abs(num)));
 num = Math.floor(num*100+0.50000000001);
 cents = num%100;
 num = Math.floor(num/100).toString();
 if(cents<10)
 cents = "0" + cents;
 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 + suffix);
}

function add_home(json){
  var out = main_template;
  var prop = json.prop[0];
  var mlsnum = prop.mlsnum;

    var price = money_format(prop.price);
    if (prop.loprice != "0"){
      price=money_format(prop.loprice) + " - ";
    }
    
    out=out.replace(/#price#/gi, price);    			
		    			
		var img = "";
		var extracode = "";
		if (prop.nphotos == 0){
		  img = "/inc/mls/images/nophoto1.jpg";
		}else{
		  img = "http://mlsmedia.metrolistmls.com/tmbphoto/0" + prop.mlsnum.substring(prop.mlsnum.length,prop.mlsnum.length-2) + "/" + prop.mlsnum + ".jpg";
		}
    
		out=out.replace(/#imgextra#/gi, extracode);
		out=out.replace(/#imgsrc#/gi, img);
    
    out=out.replace(/#index#/gi, (homes_listings.length-loadleft));
    
    out=out.replace(/#mlsnum#/gi, prop.mlsnum);
    out=out.replace(/#stnum#/gi, prop.stnum);
    out=out.replace(/#cpt#/gi, prop.cpt);
    out=out.replace(/#address#/gi, prop.address);
    out=out.replace(/#suffix#/gi, prop.suffix);
    out=out.replace(/#city#/gi, prop.city);
    
    var unit = "";
    if (prop.unit != "" && prop.unit != undefined){
      unit = " Unit " + prop.unit;
    }
    out=out.replace(/#unittext#/gi, unit);
    
		
		var stmod = "";
		if ((prop.stmod1 == 'V') || (prop.stmod2 == 'V')){stmod="(V*)";}
		if ((prop.stmod1 == 'M') || (prop.stmod2 == 'M')){stmod="(M)";}
		if ((prop.stmod1 == 'L') || (prop.stmod2 == 'L')){stmod="(S)";}
		if (prop.stmod1 == ''){stmod="&nbsp;";}
		out=out.replace(/#stdmodtext#/gi, stmod);
		
		if (prop.bedrooms == undefined) prop.bedrooms = "N/A";
		if (prop.fullbaths == undefined) prop.fullbaths = "N/A";
		if (prop.sqft == undefined) prop.sqft = "N/A";
		
    out=out.replace(/#bedrooms#/gi, prop.bedrooms);
    out=out.replace(/#fullbaths#/gi, prop.fullbaths);
    out=out.replace(/#sqft#/gi, prop.sqft);
    out=out.replace(/#lbroker#/gi, prop.lbroker);
    
    $(home_container).append(out);
}

function load_home_list(){
  loadleft = homes_listings.length;
  
  $.blockUI.defaults = { 
    // the message displayed when blocking an element 
    elementMessage: '<h2><img src="/inc/mls/images/loader.gif" /><br />Loading Homes...</h2>',
    // styles for the overlay iframe 
    overlayCSS:  { backgroundColor: 'deepskyblue', opacity: '0.3' }, 
    // styles for the message when blocking an element 
    elementMessageCSS: { width:'150px', padding:'10px', border:'2px solid deepskyblue', textAlign:'center', backgroundColor:'#fff'}, 
    fadeIn:  1, 
    // fadeIn transition time in millis 
    fadeInTime: 300, 
    // use fadeOut effect when unblocking (can be overridden on unblock call) 
    fadeOut:  1, 
    // fadeOut transition time in millis 
    fadeOutTime: 600
  }; 
  
  $(home_parent).block();
  jsontimer = setTimeout(function() {
                alert("Our MLS Server is taking too long to respond.\nCheck back later or refresh the page to try again. We apologize for the inconvenience.");
                $(home_parent).unblock();
              }, 15000); 
  
  if (main_template == ""){
    main_template = "Loading template...";
    $.get("/inc/mls/inc/mls_home_item.inc.htm", function(data){
      main_template = data;
      loaded_template = true;
      init_json_load();
    });
  }
}

function init_json_load(){
  for(var j = 0, t = homes_listings.length-1; j <= t; ++j ) {
    load_mls_Json(homes_listings[j]);
  }
}


function loading_complete(){
  
  if(loaded_listings.length==0){
    $(home_parent).css('display','none');
    $('#listing_header').css('display','none');
  }else if(loaded_listings.length==1){  
    $(home_container).removeAttr('style');
  }else if(loaded_listings.length > 1){
    $(home_container).removeAttr('style');
    $('#listing_controls').removeAttr('style');
    $(home_container).cycle({
      fx:      'scrollHorz',
      prev:   '#prev',
      next:   '#next',
      timeout:  (rotate_time*1000),
      easing:  'backinout'
    });
    
    $('#pause-toggle').click(function() { 
      if ($('#pause-toggle').attr('title')=="Pause"){
        $('#pause-toggle').attr('title','Resume')
        $('#pause-toggle img').attr('src','/images/pause0.gif');
        $(home_container).cycle('pause');
        return false;
      }else{
        $('#pause-toggle').attr('title','Pause')
        $('#pause-toggle img').attr('src','/images/pause.gif');
        $(home_container).cycle('resume');
        return false;
      }
    });
  }
  
  clearTimeout(jsontimer);
  $(home_parent).unblock();
}

$(document).ready(function(){
  load_home_list();
});