/* Global Varaibles */

var reQuery;

var gmap;

var mysqldb;

var infowindow;

var isPortal;

var jZoom;

var zoomLevel;

$(document).ready(function() {
						   
  
		
	/* Load the Map */
	if(argItems('@district')) document.getElementById("set_comm").value = argItems('@district');
    document.getElementById("set_city").value = argItems('@citytownname');
	
	
    
	gParameters();
	gPortal();


	var latlng = new google.maps.LatLng(52.25470880113083,-113.807373046875);
	var myOptions = {
	zoom: 6,      
	center: latlng,      
	mapTypeId: google.maps.MapTypeId.ROADMAP,
	streetViewControl: true 
	};    
	gmap = new google.maps.Map(document.getElementById("gmap"), myOptions);
	
	
	gSetLocation();

	google.maps.Map.prototype.markers = new Array();
	google.maps.Map.prototype.addMarker = function(marker) {
    	this.markers[this.markers.length] = marker;
  	};
	
	google.maps.Map.prototype.gMapFindMarker = function(markerId) {
		for (var i = 0; i < this.markers.length; i++) {
			if (this.markers[i] == markerId) {
				return i;
			}
		}

		return false;
  	};
	
	google.maps.Map.prototype.clearMarkers = function() {
		if(infowindow) {
		  infowindow.close();
		}
    
		for(var i=0; i<this.markers.length; i++){
		  this.markers[i].setMap(null);
		}
  };

	

	

	

	$("#listingtype").change(function(){

	    var c_area = $("#Area").val();

		var c_district = $("#Community").val();

		var c_type = $(this).val();

		$("#Area").empty();

		$("#Community").empty();

		//Load Area

		if($("#isPortal").val() == "1") var url ="/gssi/scripts/searchforms/areas/"+mysqldb+"/"+$(this).val()+"/"+$(this).val()+"_c.html";
		else var url ="/gssi/scripts/searchforms/areas/"+mysqldb+"/"+$(this).val()+"/"+$(this).val()+".html";

		$("#Area").load(url,function(){

				if(c_area) $("#Area").val(c_area);

				if($("#isPortal").val() == "1") var url ="/gssi/scripts/searchforms/districts/"+mysqldb+"/"+c_type+"/"+c_area.replace("@","")+"_c.html";
				else var url ="/gssi/scripts/searchforms/districts/"+mysqldb+"/"+c_type+"/"+c_area.replace("@","")+".html";

				$("#Community").load(url,function(){

					if(c_district) $("#Community").val(c_district);

					count_listings_by_criteria();
					
					if(gmap.getZoom() == 6){
					zoomLevel=11;
					gMapsearch(zoomLevel);
					} else {
						zoomLevel=gmap.getZoom();
						gMapsearch(gmap.getZoom());
					}
				});

		});

	});

	

	

	$("#Area").change(function(){

		var c_district = $("#Community").val();

		 var c_area = $("#Area").val();

		$("#Community").empty();

		if($("#isPortal").val() == "1") var url ="/gssi/scripts/searchforms/districts/"+mysqldb+"/"+$("#listingtype").val()+"/"+c_area.replace("@","")+"_c.html";
		else var url ="/gssi/scripts/searchforms/districts/"+mysqldb+"/"+$("#listingtype").val()+"/"+c_area.replace("@","")+".html";

		$("#Community").load(url,function(){

			if(c_district) $("#Community").val(c_district);

			count_listings_by_criteria();

			if(gmap.getZoom() == 6){
					zoomLevel=11;
					gMapsearch(11);
			} else {
					zoomLevel=gmap.getZoom()
					gMapsearch(gmap.getZoom());
			}

		});

	});

	

	$("#Community").change(function(){

		count_listings_by_criteria();
		zoomLevel=15;
		gMapsearch(15);

	});

	

	$("#gbeds").change(function(){

		count_listings_by_criteria();
		zoomLevel = gmap.getZoom();
		gMapsearch(gmap.getZoom());

	});

	

	$("#gbaths").change(function(){

		count_listings_by_criteria();
		zoomLevel = gmap.getZoom();
		gMapsearch(gmap.getZoom());

	});

	

	$("#maxlp").change(function(){

		count_listings_by_criteria();
		zoomLevel = gmap.getZoom();
		gMapsearch(gmap.getZoom());

	});

	

	$("#minlp").change(function(){

		count_listings_by_criteria();
		zoomLevel = gmap.getZoom();
		gMapsearch(gmap.getZoom());

	});

	



});
function count_listings_by_criteria(){



	updateCriteria();



	$('#results').empty();



	$('#results').html('<p class="blocknotice align-center"><strong>Searching</strong> <img src="/gssi/googlemaps/i/loader.gif"/></p>');







	$.ajax({



		type: "POST",



		url: "/php-bin/gmaps_new.php?overlord=gSearchCount",



		data:  $('#criteria').serialize(),



		success: function(data){



				$('#results').empty();



				$('#results').html(data);



			}



	 });

}
function updateCriteria(){

	var form = $('#criteria');

  reQuery = form.serialize();



}
function gPortal(){
	$.ajax({
		type: "POST",
		url: "/php-bin/gmaps_new.php?overlord=gPortal",
		data: reQuery,
		success: function(data){
		  $("#isPortal").val(data);
		}
	 });
}
function gParameters(){

	

	if($("#realtor").attr("rebid")){

		$("#googlemapsearch #criteria").append("<input type='hidden' name='@agent1' value='"+$("#realtor").attr("rebid")+"'");

	}

	$(".param").each(function(i){

		$("#googlemapsearch #criteria").append("<input type='hidden' id='"+$(".param").attr("nm")+"' name='"+$(".param").attr("nm")+"' value='"+$(".param").attr("vl")+"'");

	});
	

	$(".crtHide").each(function(i){

		$("#"+$(this).attr("ele")+"p").hide();

	});

}

function gSetLocation(){

	$.getJSON("/php-bin/gmaps_new.php",{overlord: "gSetLocation"},function(j){
		 jZoom = Number(j[0].zoom);
		 if(!jZoom) jZoom = 11;
		 var latlng = new google.maps.LatLng(j[0].lat,j[0].lng);
		 gmap.setCenter(latlng); 
		 gmap.setZoom(jZoom); 
     //load types

		 mysqldb = j[0].db;
		 
		 

		 if($("#isPortal").val() == "1") var url ="/gssi/scripts/searchforms/areas/"+j[0].db+"/types_c.html";
		 else var url ="/gssi/scripts/searchforms/areas/"+j[0].db+"/types.html";

     $("#listingtype").load(url,function(){

		 			if($("#isPortal").val() == "1") var url ="/gssi/scripts/searchforms/areas/"+j[0].db+"/"+j[0].type+"/"+j[0].type+"_c.html";
					else var url ="/gssi/scripts/searchforms/areas/"+j[0].db+"/"+j[0].type+"/"+j[0].type+".html";
					
					$("#listingtype [value="+j[0].type+"]").attr('selected', 'selected');
					
					 $("#Area").load(url,function(){

		 			 			if(!$("#realtor").attr("rebid")) {
									if(j[0].db == "redbfortmac") $("#Area").val(j[0].area);
									else $("#Area").val("@"+j[0].area);
								}

								 if($("#isPortal").val() == "1") var url ="/gssi/scripts/searchforms/districts/"+j[0].db+"/"+j[0].type+"/"+j[0].area+"_c.html"; 
								 else var url ="/gssi/scripts/searchforms/districts/"+j[0].db+"/"+j[0].type+"/"+j[0].area+".html";
					
								 	
									
								 $("#Community").load(url,function(){
											if($("#set_city").val()){
												
												$("#Area").val("@"+$("#set_city").val());   
											 }		
											 	
												 if($("#set_comm").val()){
													$("#Community").val($("#set_comm").val());   
	  											 }
								 				count_listings_by_criteria();
												zoomLevel = jZoom;
												gMapsearch(jZoom);

								}); 

		 			 });														 

		 }); 

	});

}

function popSelect(tb,val,name,fltf,filtv,opt,ord){

  $.getJSON("/php-bin/gmaps_new.php",{overlord: "gfilters", tb: tb, val: val, name: name, fltf: fltf, filtv : filtv,ord:ord },function(j){

     var optn = '';

		 optn += '<option value="">Select '+opt+' </option>';

     for (var i = 0; i < j.length; i++) {

       optn += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';

     }	

		$('#'+opt).html(optn);

    $('#'+opt+' option:first').attr('selected', 'selected');

   })

}
function gMapsearch(zoom){
	var queryString = $("#criteria").serialize();
	$.getJSON("/php-bin/gmaps_new.php?overlord=gSearch&" + queryString, function (results,z,zoom) { gMapProc(results,zoom) });
}
function gMapProc(results,z){
	if(gmap.getZoom() < 14) {
		gmap.clearMarkers();
		
	}
	for (var i = 0; i < results.length; i++) {
		var gMarkerIndex = gmap.gMapFindMarker(results[i]);
		if(gMarkerIndex == false){
			var latlng = new google.maps.LatLng(results[i].location.lat, results[i].location.lng);
			gmap.addMarker(gMapCreateMarker(results[i].details,latlng,"http://www.internetbrokers.ab.ca/idx/i/house.png"));
		}
	}
	if(results.length) { 
	  var latlng = new google.maps.LatLng(results[0].location.lat,results[0].location.lng);
	  if($("#Community").val()) gmap.setCenter(latlng); 
	  gmap.setZoom(zoomLevel);
	}
	/*$("#gMapLoader").hide();*/
	/*if(results.length) $("#gMapStatus").html("Found "+results.length+" total listings.");
	else $("#gMapStatus").html("Your search returned zero results.");*/
}
function gMapCreateMarker(name, latlng, icon) {
    var marker = new google.maps.Marker({position: latlng, map: gmap, icon: icon});
    google.maps.event.addListener(marker, "click", function() {
      if (infowindow) infowindow.close();
      infowindow = new google.maps.InfoWindow({content: name});
      infowindow.open(gmap, marker);
    });
    return marker;
}
function argItems (theArgName) {
	var url = document.getElementById("qs").value
	sArgs = url.split('&');
	r = '';
	for (var i = 0; i < sArgs.length; i++) {
	if (sArgs[i].slice(0,sArgs[i].indexOf('=')) == theArgName) {
	r = sArgs[i].slice(sArgs[i].indexOf('=')+1);
	break;
	}
	}
	return (r.length > 0 ? unescape(r).split(',') : '')
}

