var dest = '';
var url = '';
var info_html = '';
var map ,geocoder,infowindow,cm_openInfowindow ;
var infowindowLevel = 0;
var store_markers = Array();
var store_htmls = Array();
var get_stores_url = Drupal.settings.store_locater.get_stores;	

function reload_some()
{
	var target = '';
		$('.location').show();			
		$('.location-content ul a').click(function () {
			//tabContainers.hide();
			$(this).parent('li').parent('ul').parent('div').find('.related-address').hide();
			target = this.hash;
			var display_class = target.replace('#','.');
			//alert(this.parent.id+''+display_class);
			$(this).parent('li').parent('ul').parent('div').find('div'+display_class).show();
			//$(this.parent.class+''+display_class).slideToggle(500);
			$(this).parent('li').parent('ul').find('li>a').removeClass('active');
			$(this).addClass('active');
			return false;
		});
}


$(document).ready(function(){
	
	fill_map();//reload_some();
	
	$("select").change(function(){
		var sel_id = $(this).attr("id");
		switch (sel_id){
			case "region": dest = 'state';break;
			case "state": dest = 'city';break;
			case "city":$("#store_list").hide(); 
				$.getJSON(get_stores_url,{ city:$("#city option:selected").text() },
	   				function(data){
	   					showAddress($("#city option:selected").text()+","+$("#state option:selected").text()+",India",data);
	   				});	return;
			default : return;
		}
		$("#"+dest).html('<option value="-1">Please wait</option>');
		url = Drupal.settings.store_locater.get_children;
		$.getJSON(url,
				{ region:$(this).val() },
	   			function(data){
	   				var htm = '<option value="-1">Select '+dest+'</option>';
	    			$.each(data, function(i,item){
	    				if(item.name == 'KASHMIR') 
	    				{ htm+='<option value="'+item.tid+'">JAMMU AND KASHMIR</option>';}
	    				else{
	    				htm+='<option value="'+item.tid+'">'+item.name+'</option>';}
	   				});
	  	$("#"+dest).html(htm);
	   });
	    
	});
	
	$(window).bind("unload", function() {
    if (typeof GUnload == "function") {
        GUnload();
    	}
	});
});

function fill_map(){
	
	
	geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(22.9734229,78.6568942);
var myOptions = {
      zoom: 6,
	  scrollwheel:false,
      center: latlng,
	  mapTypeControl: false,
      //mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
      navigationControl: true,
      scaleControl: true,
     navigationControlOptions: {style: google.maps.NavigationControlStyle.ZOOM_PAN},
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    $.getJSON(get_stores_url,{ city:'BANGALORE'},function(data){showAddress("BANGALORE,KARNATAKA,India",data);});
    
}

function showAddress(address,locations) {
	var debug_text = '';
	store_htmls.length=0;
	store_markers.length=0;
	var sidebarDIV = document.getElementById("store_list");
	sidebarDIV.innerHTML = '';
    if (geocoder) {
      geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
          map.setCenter(results[0].geometry.location);
          map.setZoom(11);
          /*var marker = new google.maps.Marker({
              map: map, 
              position: results[0].geometry.location
          });*/
          //alert(path_to_theme+"images/titan-marker-google.png");
          $(locations).each(function(i,row){
          	//alert(row.lon);
          	if(row.lat!='NULL'||row.lon!='NULL')
			var point = new google.maps.LatLng(row.lat,row.lon);
			else{
				alert('no marker for '+row.address);
			}
			var marker = new google.maps.Marker({position: point, map: map});
			marker.setIcon(path_to_theme+"images/titan-marker-google.png");
			//marker.setShadow('http://localhost/titan/images/pin.png');
			if(row.offers== '')row.offers = "Not available";
			info_html = '<div class ="location-content" >'+
					'<div class="related-address location" style="display:block">'+
				    	'<h3 class="location location-act" >Location</h3>'+
				        '<p>'+row.address+' - '+row.pincode+'</p>'+
				        '<p>Phone -'+row.phone+'</p>'+
				        '<p class="city-name">'+address+'</p>'+
				    '</div>'+
				    '<div class="related-address offer">'+
				    	'<h3 class="location location-offers">Offers</h3>'+
				        //'<p>'+row.offers+'</p>'+
						'<p>&nbsp;</p>'+
				    '</div>'+
				    
				     '<div class="related-address brand">'+
				    	'<h3 class="location location-brands">Brands</h3>'+
				        '<p>'+row.brands+'</p>'+
				    '</div>'+
				    '<ul>'+
				    	'<li class="location-act"> <a onclick="reload_some();" href="#location" class="active">Location</a></li>'+
				        '<li class="location-offers"><a  onclick="reload_some();" href="#offer">Offers</a></li>'+
				        '<li class="location-brands"><a  onclick="reload_some();" href="#brand">Brands available</a></li>'+
				    '</ul>'+
				'</div>';
			google.maps.event.addListener(marker, 'click', function() {
				infowindow = new google.maps.InfoWindow({content: store_htmls[i]} );
				infowindow.open(map,marker);
				cm_setInfowindow(infowindow);
				reload_some();
			});
			
			store_htmls.push(info_html);
			store_markers.push(marker);
			var marker_li = document.createElement("li");
			var markerA = document.createElement("a");
			markerA.setAttribute("href","javascript:cm_markerClicked('" + i +"')");
			markerA.style.color = "#000000";
			var sidebarText= "";
			var rank=i+1;
			//sidebarText += " World of Titan,"+row.address;
			sidebarText += row.address;
			markerA.appendChild(document.createTextNode(sidebarText));
			marker_li.appendChild(markerA);
			sidebarDIV.appendChild(marker_li);
			//sidebarDIV.appendChild(document.createElement("br"));
			//sidebarDIV.appendChild(document.createElement("br"));
			});
			$("#store_list").show();
						
        } else {
          alert("Geocode was not successful for the following reason: " + status);
        }
        
        
      });
    }
    
   // $('#debug_div').html(debug_text);
}

function cm_markerClicked(markerNum)
{
	var infowindowOptions = {
	content: store_htmls[markerNum]
	}
	var infowindow = new google.maps.InfoWindow(infowindowOptions);
	infowindow.open(map, store_markers[markerNum]);
	cm_setInfowindow(infowindow);
	reload_some();
}

function cm_setInfowindow(newInfowindow) {
  if (cm_openInfowindow != undefined) {
    cm_openInfowindow.close();
  }
  cm_openInfowindow = newInfowindow;
}

