var map;
var geocoder;
var markerBounds;

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


$(document).ready(function() {
						   
$('a[rel*=floor-plans]').facebox({
    loadingImage : '/images/loading.gif',
    closeImage   : '/images/closelabel.png'
})
	
	//$( "#tabs" ).tabs();
//	$("a.fancyBox").fancybox();
	$( "#sl" ).slider();
	var minPrice=0;
	var maxPrice=0;
	var step=0;
	if($("#nivoslider-577").length!=0){
		$("#nivoslider-577").nivoSlider({
			effect:"fade",
			slices:15,
			boxCols:8,
			boxRows:4,
			animSpeed:200,
			pauseTime:3000,
			startSlide:0,
			directionNav:false,
			directionNavHide:false,
			controlNav:true,
			controlNavThumbs:true,
			controlNavThumbsFromRel:true,
			keyboardNav:false,
			pauseOnHover:true,
			manualAdvance:false
		});
	}
	
	$("#tolet").unbind().live("change", function(){
		var selected=$(this).attr("checked");
		if(selected!="undefined"){
			var value=$(this).val();
			minPrice=0;
			maxPrice=2000;
			step=100;
		}
		$( "#slider-range" ).slider({
			range: true,
			min: minPrice,
			max: maxPrice,
			step: step,
			values: [ 0, maxPrice ],
			slide: function( event, ui ) {
				$( "#amount" ).val( "£" + addCommas(ui.values[ 0 ]) + " - £" + addCommas(ui.values[ 1 ]) );
				$( "#minprice" ).val( ui.values[ 0 ]);
				$( "#maxprice" ).val( ui.values[ 1 ]);
			}
		});
		$( "#amount" ).val( "£" + $( "#slider-range" ).slider( "values", 0 ) +
			" - £" + addCommas($( "#slider-range" ).slider( "values", 1 ) ));
	})
	
	$("#forsale").unbind().live("change", function(){
		var selected=$(this).attr("checked");
		if(selected!="undefined"){
			var value=$(this).val();
			minPrice=0;
			maxPrice=1000000;
			step=50000;
		}
		
		$( "#slider-range" ).slider({
			range: true,
			min: minPrice,
			max: maxPrice,
			step: step,
			values: [ 0, maxPrice ],
			slide: function( event, ui ) {
				$( "#amount" ).val( "£" + addCommas(ui.values[ 0 ]) + " - £" + addCommas(ui.values[ 1 ]) );
				$( "#minprice" ).val( ui.values[ 0 ]);
				$( "#maxprice" ).val( ui.values[ 1 ]);
			}
		});
		$( "#amount" ).val( "£" + $( "#slider-range" ).slider( "values", 0 ) +
			" - £" + addCommas($( "#slider-range" ).slider( "values", 1 ) ));
		
	});
	
	if($( "#slider-range").length!=0){
	$( "#slider-range" ).slider({
			range: true,
			min: 0,
			max: 1000000,
			step: 50000,
			values: [ 0, 1000000 ],
			slide: function( event, ui ) {
				$( "#amount" ).val( "£" + addCommas(ui.values[ 0 ]) + " - £" + addCommas(ui.values[ 1 ]) );
				$( "#minprice" ).val( ui.values[ 0 ]);
				$( "#maxprice" ).val( ui.values[ 1 ]);
			}
		});
		$( "#amount" ).val( "£" + $( "#slider-range" ).slider( "values", 0 ) +
			" - £" + addCommas($( "#slider-range" ).slider( "values", 1 ) ));
	}
	
	if($("#slider-range-rent").length!=0){				
		$( "#slider-range-rent" ).slider({
				range: true,
				min: 0,
				max: 3000,
				step: 100,
				values: [ 0, 3000 ],
				slide: function( event, ui ) {
					$( "#amount" ).val( "£" + addCommas(ui.values[ 0 ]) + " - £" + addCommas(ui.values[ 1 ]) );
					$( "#minprice" ).val( ui.values[ 0 ]);
					$( "#maxprice" ).val( ui.values[ 1 ]);
				}
			});
			$( "#amount" ).val( "£" + $( "#slider-range-rent" ).slider( "values", 0 ) +
			" - £" + addCommas($( "#slider-range-rent" ).slider( "values", 1 ) ));
	}
	
	$( "#slider-bedrooms" ).slider({
			range: "max",
			min: 1,
			max: 10,
			value: 1,
			slide: function( event, ui ) {
				$( "#bedrooms" ).val( ui.value );
				$("#bedrooms_label").val(ui.value);
			}
		});
		$( "#bedrooms" ).val( $( "#slider-bedrooms" ).slider( "value" ) );
		$( "#bedrooms_label" ).val( $( "#slider-bedrooms" ).slider( "value" ) );
			
	
	 var myOptions = {
      center: new google.maps.LatLng(51.88977, 0.8521),
      mapTypeId: google.maps.MapTypeId.ROADMAP,
	   zoom: 14,
	   scrollwheel: false
    }
    geocoder = new google.maps.Geocoder();
	
	if($("#map_property").length!=0){
		 
			var map = new google.maps.Map(document.getElementById("map_property"),
										  myOptions);
			markerBounds = new google.maps.LatLngBounds();
			var markerType=$("#markerType").val();
			if(markerType==4){	
				var image = '/images/to-let.png';
			}else{
				var image = '/images/for-sale.png';
			}
			var address=$("#postocde").val();
			geocoder.geocode( { 'address': address}, function(results, status) {
			  if (status == google.maps.GeocoderStatus.OK) {
				map.setCenter(results[0].geometry.location);
				var randomPoint = results[0].geometry.location
				
				var marker = new google.maps.Marker({
					map: map,
					position: results[0].geometry.location,
					icon: image
				}); 
				
				var infowindow = new google.maps.InfoWindow();
				//infowindow.setContent(markerText);
				google.maps.event.addListener(marker, 'click', function() {
					infowindow.open(map,marker); 
				});
				markerBounds.extend(randomPoint);
				
			  }else if(status==google.maps.GeocoderStatus.OVER_QUERY_LIMIT){
				 wait = true;
				 setTimeout("wait = false", 1000);  
			  }else {
				//alert("Geocode was not successful for the following reason: " + status);
			  }
			});
	}
	
	
	
	
	if($("#property-map").length!=0){
		var h=$(window).height();
		  var headerTopHeight=$("#header-top").height();
		  var headerHeight=$("#header").height();
		  var headerHeight=headerTopHeight+headerHeight;
		  $("#property-map").css("height", h-headerHeight-10);
	  
		map= new google.maps.Map(document.getElementById("property-map"),
									  myOptions);
		markerBounds = new google.maps.LatLngBounds();
		var i=0;
		$(".fullAddress").each(function(){
			i++;
			var id=this.id;
			var address=$("#"+id).val();
			var spid=id.split("_");
			var mid=spid[1];
			var markerText=$("#markerAddress_"+mid).val();
			var markerType=$("#markerType_"+mid).val();
			
			var lat=$("#lat_"+mid).val();
			var long=$("#long_"+mid).val();
			if(lat!=0 || long!=0){
				if(markerType==4){
					var image= '/images/to-let.png';
				}else{
					var image= '/images/for-sale.png';
				}
				var pos= new google.maps.LatLng(lat, long);
				
				map.setCenter(new google.maps.LatLng("51.8870", "0.8953"));
				var marker = new google.maps.Marker({
					map: map,
					position: pos,
					icon: image
				}); 
				var infowindow = new google.maps.InfoWindow();
				infowindow.setContent(markerText);
				google.maps.event.addListener(marker, 'click', function() {
					infowindow.open(map,marker); 
				});
			}
		});
	}
	
	
	
	if($("#search-results").length!=0){
	
		map= new google.maps.Map(document.getElementById("search-results"),
									  myOptions);
		markerBounds = new google.maps.LatLngBounds();
		
		$(".fullAddress").each(function(){
			var id=this.id;
			var address=$("#"+id).val();
			var spid=id.split("_");
			var mid=spid[1];
			var markerText=$("#markerAddress_"+mid).val();
			var markerType=$("#markerType_"+mid).val();
			if(markerType==4){
				var image= '/images/to-let.png';
			}else{
				var image= '/images/for-sale.png';
			}
			geocoder.geocode( { 'address': address}, function(results, status) {
			  if (status == google.maps.GeocoderStatus.OK) {
				map.setCenter(results[0].geometry.location);
				var randomPoint = results[0].geometry.location
				
				var marker = new google.maps.Marker({
					map: map,
					position: results[0].geometry.location,
					icon: image
				}); 
				
				var infowindow = new google.maps.InfoWindow();
				infowindow.setContent(markerText);
				google.maps.event.addListener(marker, 'click', function() {
					infowindow.open(map,marker); 
				});
				markerBounds.extend(randomPoint);
				map.fitBounds(markerBounds);
				
			  }else if(status==google.maps.GeocoderStatus.OVER_QUERY_LIMIT){
				 wait = true;
				 setTimeout("wait = false", 1000);  
			  }else {
				//alert("Geocode was not successful for the following reason: " + status);
			  }
			});
		});
	}
	
	 $('a[href=#top]').click(function(){
        $('html, body').animate({scrollTop:0}, 'slow');
        return false;
    });


	var addthis_config = {
     ui_cobrand: "David Martin Group"
	}
	
	$("#sortBy").unbind().live("change", function(){
		var rentalPeriod=$("#rentalPeriod").val();
		var page=$("#page").val();
		var sortBy=$("#sortBy").val();
		var perPage=$("#perPage").val();
		var pageType=$("#pageType").val();
		var url="/"+pageType+"?rentalPeriod="+rentalPeriod+"&sortBy="+sortBy+"&perPage="+perPage+"&page="+page;
		window.location=url;
	
	});
	
	$("#perpagenumber").unbind().live("change", function(){
		var rentalPeriod=$("#rentalPeriod").val();
		var page=$("#page").val();
		var sortBy=$("#sortBy").val();
		var perPage=$("#perpagenumber").val();
		var pageType=$("#pageType").val();
		var url="/"+pageType+"?rentalPeriod="+rentalPeriod+"&sortBy="+sortBy+"&perPage="+perPage+"&page="+page;
		window.location=url;
	
	});
});
