//$root = 'http://www.headlandhomes.hk/system/headland_homes';
//$root = '../system/headland_homes';

//$root = "http://localhost:3000";
$root = "http://headland.heroku.com";
$home_root = "http://www.headlandhomes.hk";

$(document).ready( function() { 

  try {
		MSDropDown.init();
	} catch(e) {
		alert(e);
	}

  var sPath =window.location.pathname;

//alert(sPath);
  sPath = sPath.split("/");
  var fldr = sPath[sPath.length - 2];
//alert(folder);
  setSlider('size',7500,0,250,'Sq Ft');
  setSlider('pricerent',200000,0,5000,'HK\$');
  setSlider('price',200,0,1,'HK\$m');
  setSlider('beds',6,1,1,'No. of bedrooms');

 // alert()  ;
  
  if (fldr=='properties') {
    showRent();
  } else {
    getRentLink();
    
    
    if (fldr.length==0) {
      getFeaturedProp();
    }
  }
  
  });


function getRentLink() {
  $("#search form #sale").hide();
  $("#search form #rent").show();
  $("#search form [name=listingtype]").val('rent');
}
function getSaleLink() {
  $("#search form #rent").hide();
  $("#search form #sale").show();
  $("#search form [name=listingtype]").val('sale');
}


function showRent(e) {
  getRentLink();
  $(e).next().removeClass('purLinksDn');
  $(e).next().addClass('purLinks');
  $(e).addClass('purLinksDn');
  getExtSearchListings(1,2);
}
function showSale(e) {
  getSaleLink();
  $(e).prev().removeClass('purLinksDn');
  $(e).prev().addClass('purLinks');
  $(e).addClass('purLinksDn');
  getExtSearchListings(1,2);
}

function getExtSearchListings(pagenum,sort) {
  var postData = {};


$("#rightCol").html("<img src='" + $home_root + "/images/wait_3.gif' />");
	
postData  = $("#search form").serialize().replace('%5B%5D', '[]')

  if(pagenum==undefined) { pagenum=1; }
  if(sort==undefined) { sort=2; }

$("#linksHldr a.linksDn").removeClass("linksDn").addClass("links");
      $("#linksHldr a:contains('Properties')").removeClass("links").addClass("linksDn");  


$.getJSON($root + "/web_property_index.json?" + postData + "&pagenum=" + pagenum + "&sort=" + sort + "&jsoncallback=?",
	function(data){

		if(data[0]==undefined) {
$("#rightCol").html("<div id='propNavi'><div id='propResults'>No matching properties found</div><div id='propPage'></div></div>");
		
		} else {





		$("#rightCol").html("<div id='propNavi'><div id='propResults'></div><div id='propPage'>SORT BY: </div></div>");
		$("#propPage").append("<select onchange='getExtSearchListings(1,this.value);' name='sort' class='dropDown' id='webmenu8'><option value='1'>Size Ascending</option><option value='2'>Size Descending</option><option value='3'>Sale Ascending</option><option value='4'>Sale Descending</option><option value='5'>Rental Ascending</option><option value='6'>Rental Descending</option></select>");

		$("#propPage select option[value='" + sort + "']").attr("selected", true);

		$pages = Math.ceil(data[0].property.search_cnt / 6);
		//alert($pages);
		
		if ( parseInt($pages)>1 ) {
			var $i = 0;
			var $start = Math.max(1,parseInt(pagenum)-3);
			var $start = Math.min($start, Math.max(parseInt($pages)-6, 1));


			$("#propResults").append("<span>Showing " + ((parseInt(pagenum)*6)-5) + " - " + (Math.min(data[0].property.search_cnt,parseInt(pagenum)*6)) + " of " + data[0].property.search_cnt + "</span><br />");

			if (parseInt(pagenum)>1) {
				$("#propResults").append("<a class='pageLink' href='#' onclick='getExtSearchListings(" + (parseInt(pagenum)-1) + "," + sort + ");'>< Previous .. </a>");
			}
			

			for ($i=$start; $i <= Math.min(parseInt($start)+6,parseInt($pages)); $i++) {
					if ($i==pagenum) {
						$("#propResults").append("<span class='pageLink'> " + $i + " </span>");
					} else {
						$("#propResults").append("<a class='pageLink' href='#' onclick='getExtSearchListings(" + $i + "," + sort + ");'> " + $i + " </a>");
					}
			} 

			if (parseInt(pagenum)<parseInt($pages)) {
				$("#propResults").append("<a class='pageLink' href='#' onclick='getExtSearchListings(" + (parseInt(pagenum)+1) + "," + sort + ");'> .. Next ></a>");
			}

			$("#propResults span.pageLink").addClass("underline");

		}
		
		$(data).each( function(index) {
			$("#rightCol").append("<div id='resultsCell'>" +
					"<div id='cellImg'><a href='#' onclick='getExtListing(" + data[index].property.listings[0].id + "," + parseInt(pagenum) + "," + sort + ");' >" +
					(data[index].property.property_images[0] ? "<img WIDTH='216' src='http://s3.amazonaws.com/us_headlandmaster/property_images/images/" + data[index].property.property_images[0].id + "/web_mid/" + data[index].property.property_images[0].image_file_name + "' />" : "<span class='noMatch'>Image currently unavailable</span>" ) +
					"</a></div>" +
                    			"<div id='cellText'>" +
                                        	"<div>" +
						"<a href='#' onclick='getExtListing(" + data[index].property.listings[0].id + "," + parseInt(pagenum) + "," + sort + ");' class='title'>" + (data[index].property.property_area.name == null ? "-" : data[index].property.property_area.name) + "</a>" +
                        			"<p class='text'>" +
                            			"Rental: " + (data[index].property.listings[0].rent_max == null ? "-" : "HK$" + data[index].property.listings[0].rent_max) + "<br />" +
                            			"Sale: " + (data[index].property.listings[0].sale_max == null ? "-" : "HK$" + data[index].property.listings[0].sale_max + "m") + "<br />" +
                            			"Sq ft.: " + (data[index].property.size == null ? "-" : data[index].property.size) + "<br />" +
                            			"Bedrooms: " + (data[index].property.bedrooms == null ? "-" : data[index].property.bedrooms) + "<br />" +
                            			"Bathrooms: " + (data[index].property.bathrooms == null ? "-" : data[index].property.bathrooms) + "<br />" +
						(data[index].property.outside_space_string ? data[index].property.outside_space_string + "<br />" : "") +
						(data[index].property.listing_agent_type == null ? "" : "<span class='white'>" + data[index].property.listing_agent_type + "</span><br />") + 
						"Ref: PROP" + data[index].property.id + "<br />" +
                            			"</p>" +
                        			"</div>" +
                    			"</div>" +
                		"</div>");
		});
	}

        });		


}

function getExtListing(listing_id,pagenum,sort) {  
  var postData = '';
  if(pagenum==undefined) {
    postData = postData + "&pagenum=1";
  } else {
    postData = postData + "&pagenum=" + pagenum;                                                                          
  }
  if(sort==undefined) {
    postData = postData + "&sort=2";
  } else {
    postData = postData + "&sort=" + sort;                                                                          
  }
  postData = postData + "&listing_id=" + listing_id;  

$("#linksHldr a.linksDn").removeClass("linksDn").addClass("links");
      $("#linksHldr a:contains('Properties')").removeClass("links").addClass("linksDn");  

$.getJSON($root + "/web_property_index.json?" + postData + "&jsoncallback=?",
	function(data){
		$("#rightCol").html("<div id='propNavi'><div id='propResults'><a class='pageLink' href='#' onclick='getExtSearchListings(" + parseInt(pagenum) + "," + sort + ");'><b>< Return to Search Results</b></a></div><div id='propPage'></div></div>");
		$("#rightCol").append("<div id='image_block' class='image'>");



		if (data[0].property.property_images[0]) {
			for (var $i=0; $i < data[0].property.property_images.length; $i++) {
				
				if ($i==0) {
					$("#image_block").append("<a href='http://s3.amazonaws.com/us_headlandmaster/property_images/images/" + data[0].property.property_images[$i].id + "/large/" + data[0].property.property_images[$i].image_file_name + "' class='propertyImage'><img width='216' src='http://s3.amazonaws.com/us_headlandmaster/property_images/images/" + data[0].property.property_images[$i].id + "/web_mid/" + data[0].property.property_images[$i].image_file_name + "' border='0'></a>");
				} else {
					$("#image_block").append("<a href='http://s3.amazonaws.com/us_headlandmaster/property_images/images/" + data[0].property.property_images[$i].id + "/large/" + data[0].property.property_images[$i].image_file_name + "' class='propertyImage'><img src='http://s3.amazonaws.com/us_headlandmaster/property_images/images/" + data[0].property.property_images[$i].id + "/web_thumb/" + data[0].property.property_images[$i].image_file_name + "' border='0'></a>");
				}
			}
			$("#image_block a").lightBox({
        			imageLoading: $home_root + '/images/wait_3.gif'
      			});
		}


		$("#rightCol").append("<div id='propDesc'><div id='propTitle'>" + (data[0].property.property_area.name == null ? "-" : data[0].property.property_area.name) + "</div>" +
                    			"<table class='propdetails' width='460' border='0' cellspacing='0' cellpadding='0' id='specs'>" +
                        		"<tbody><tr height='20'><td width='140'>Ref no:</td><td>PROP" + data[0].property.id + "</td></tr>" +
                        		"<tr height='20'><td>&nbsp;</td><td>&nbsp;</td></tr>" +
                        		"<tr height='20'><td>Rental Price:</td><td>" + (data[0].property.listings[0].rent_max == null ? "-" : "HK$" + data[0].property.listings[0].rent_max + " (" + (data[0].property.listings[0].inclusive == true ? "inclusive" : "exclusive") + ")") + "</td></tr>" +
                        		"<tr height='20'><td>Purchase Price:</td><td>" + (data[0].property.listings[0].sale_max == null ? "-" : "HK$" + data[0].property.listings[0].sale_max + "m") + "</td></tr>" +
                        		"<tr height='20'><td>&nbsp;</td><td>&nbsp;</td></tr>" +
                        		"<tr height='20'><td>Property Type:</td><td>" + (data[0].property.property_type.name == null ? "-" : data[0].property.property_type.name) + "</td></tr>" +
                        		"<tr height='20'><td>View:</td><td>" + (data[0].property.property_view_id == null ? "-" : data[0].property.property_view.name) + "</td></tr>" +
                        		"<tr height='20'><td>&nbsp;</td><td>&nbsp;</td></tr>" +
                        		"<tr height='20'><td>Size (sq.ft.):</td><td>" + (data[0].property.size == null ? "-" : data[0].property.size) + "</td></tr>" +
                        		"<tr height='20'><td>No of bedrooms:</td><td>" + (data[0].property.bedrooms == null ? "-" : data[0].property.bedrooms) + "</td></tr>" +
					"<tr height='20'><td>No of bathrooms:</td><td>" + (data[0].property.bathrooms == null ? "-" : data[0].property.bathrooms) + "</td></tr>" +
					"<tr height='20'><td>&nbsp;</td><td>&nbsp;</td></tr>" +
					"<tr height='20'><td>Outside Space:</td><td>" + (data[0].property.outside_space_string ? data[0].property.outside_space_string : "") + "</td></tr>" +
					"<tr height='20'><td>Swimming Pool:</td><td>" + (data[0].property.pool == true ? "Yes" : "-") + "</td></tr>" +
					"<tr height='20'><td>Golf Cart:</td><td>" + (data[0].property.golf_cart == true ? "Yes" : "-") + "</td></tr>" +
					"<tr height='20'><td>Garage:</td><td>" + (data[0].property.listings[0].garage == true ? "Yes" : "-") + "</td></tr>" +
					"</tbody></table>" +
					"<a href='../contact-us/index.php?id=" + data[0].property.id + "' class='propBtn'>Contact us about this property</a>" +
					"</div>"
		);
  
  	});
}


function getFeaturedProp() {
           //alert("getting featured property");
  var postData = '';  


postData = postData + "&featured=true";  


$.getJSON($root + "/web_property_index.json?" + postData + "&jsoncallback=?",
	function(data){


		$("#rcolFeat").html("<div class='title'>FEATURED PROPERTY</div>" +
					"<div id='resultsCell'>" +
					"<div id='cellImg'><a href='#' onclick='getExtListing(" + data[0].property.listings[0].id + ",1,2);'>" +
					(data[0].property.property_images[0] ? "<img WIDTH='216' src='http://s3.amazonaws.com/us_headlandmaster/property_images/images/" + data[0].property.property_images[0].id + "/web_mid/" + data[0].property.property_images[0].image_file_name + "' />" : "<span class='noMatch'>Image currently unavailable</span>" ) +
					"</a></div>" +
                    			"<div id='cellText'>" +
                                        	"<div>" +
						"<a href='#' onclick='getExtListing(" + data[0].property.listings[0].id + ",1,2);' class='title'>" + (data[0].property.property_area.name == null ? "-" : data[0].property.property_area.name) + "</a>" +
                        			"<p class='text'>" +
                            			"Rental: " + (data[0].property.listings[0].rent_max == null ? "-" : "HK$" + data[0].property.listings[0].rent_max) + "<br />" +
                            			"Sale: " + (data[0].property.listings[0].sale_max == null ? "-" : "HK$" + data[0].property.listings[0].sale_max + "m") + "<br />" +
                            			"Sq ft.: " + (data[0].property.size == null ? "-" : data[0].property.size) + "<br />" +
                            			"Bedrooms: " + (data[0].property.bedrooms == null ? "-" : data[0].property.bedrooms) + "<br />" +
                            			"Bathrooms: " + (data[0].property.bathrooms == null ? "-" : data[0].property.bathrooms) + "<br />" +
						(data[0].property.outside_space_string ? data[0].property.outside_space_string + "<br />" : "") +
						(data[0].property.listing_agent_type == null ? "" : "<span class='white'>" + data[0].property.listing_agent_type + "</span><br />") + 
						"Ref: PROP" + data[0].property.id + "<br />" +
                            			"</p>" +
                        			"</div>" +
                    			"</div>" +
                		"</div>");
			
		});
	
	




}



function setSlider(name,max,min,step,label) {
  
  $("#search form #" + name + "-range").slider({
        range: true,
        max: max,
        min: min,
        step: step,
        values: [min, max],
        slide: function(event, ui) {
          $("#search form input[name=min" + name + "]").val(ui.values[0]);
          $("#search form input[name=max" + name + "]").val(ui.values[1]);
          if(ui.values[1]==max) {
            $("#search form #" + name + "-range-txt").html(label + ': ' + ui.values[0] + ' - ' + ui.values[1] + '+');
          } else {
            $("#search form #" + name + "-range-txt").html(label + ': ' + ui.values[0] + ' - ' + ui.values[1]);
          }
        }
      });
      $("#search form input[name=min" + name + "]").val(min);
      $("#search form input[name=max" + name + "]").val(max);
      $("#search form #" + name + "-range-txt").html(label + ': ' + min + ' - ' + max + '+');
}

