var map;
var markers = Array();
var myBox;
var votesDone = Array();

//$(document).ready(function() {
function initMe() {

	var latlng = new google.maps.LatLng(41.177002,-73.86300);
    var myOptions = {
      zoom: 13,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.HYBRID,
      mapTypeControlOptions:{
          style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,
          mapTypeIds: new Array(google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.TERRAIN)
      },
	  streetViewControl:true
    };
	
	map = new google.maps.Map(document.getElementById('map'),myOptions);
	
	setTimeout("jQuery.getJSON('/getLayers.php', function(result) { makeLayers(result); })",200);
	
}

function makeMarker(layer,id, jdata) {

	var marker = new google.maps.Marker({
         map: null,
         position: new google.maps.LatLng(jdata.locationLat, jdata.locationLon),
         visible: true,
		 clickable: true,
		 title: jQuery.trim(jdata.locationName)
        });
		
	var p = markers[layer].length;

	markers[layer][p] = marker;
	markers[layer][p].setIcon('http://www.ossining.com/' + jQuery.trim(jdata.locationIcon));
    markers[layer][p].setShadow('http://www.ossining.com/shadow.png');
	
	if (Encoder.hasEncoded(jdata.locationName)) {
		markers[layer][p].setTitle(jQuery.trim(Encoder.htmlDecode(jdata.locationName)));
	}
	
	var boxText = document.createElement("div");
	boxText.style.cssText = "border: 0px solid black; margin-top: 4px; padding: 4px; text-align:left; font-size:1.2em; "; //"background-color: #f1f6e9; ";		
	var imgText = document.createElement("div");
	imgText.style.cssText = "float:left; max-height:100px; max-width:90px; padding:3px; overflow:hidden; position:relative;";
	if (jdata.locationImage != '') {
		imgText.innerHTML = '<div style="float:right; top:30px; max-height:100px; max-width:90px; padding:3px; overflow:hidden; position:relative;"><img src="' + jdata.locationImage + '"></div>';
	} else {
        imgText.innerHTML = '<div style="float:right; max-height:100px; max-width:90px; top:30px; padding:3px; overflow:hidden; position:relative;"><img src="/defaultimage.gif"></div>';
    }
	var linkText = document.createElement("span");
	linkText.style.cssText = "font-size:2em; font-family:Verdana, Arial, sans-serif; clear:all; margin-bottom:8px;";
	if (jdata.locationLink != '') {
		linkText.style.cssText += " color:#73c194;";
		linkText.innerHTML = '<a style="color:#53a174;" href="' + jdata.locationLink + '" target="_blank"><b>' + jdata.locationName + '</b></a>';
	} else {
		linkText.style.cssText += " color:#000000;";
		linkText.innerHTML = "<b>" + jdata.locationName + "</b>";
	}
	
	var addressText = document.createElement("span");
	addressText.style.cssText = "font-size:9px; ";

    boxText.innerHTML = '<div style="padding:5px; padding-top:10px; font-size:12px; ">';
	boxText.innerHTML += imgText.innerHTML;
	boxText.innerHTML += linkText.innerHTML + '<BR>';
    
//    var stars = jdata.locationRating;
//    for (var x = 0; x < jdata.locationRating; x++) boxText.innerHTML += '<img src=star.png style="height:15px; width:15px; margin-top:4px;">';
    for (var x = 1; x <= 5; x++) {
    	var extra1 = '';
    	var extra2 = '';
    	if (x > 1) {
    		for (var y = 1; y < x; y++) {
    			if (y > jdata.newRating) {
    				extra1 = extra1 + " $('#star_" + jdata.locationId + "_" + y + "').removeClass('star2').addClass('star3'); ";
    				extra2 = extra2 + " $('#star_" + jdata.locationId + "_" + y + "').removeClass('star3').addClass('star2'); ";
    			} else {
    				extra1 = extra1 + " $('#star_" + jdata.locationId + "_" + y + "').removeClass('star1').addClass('star3'); ";
    				extra2 = extra2 + " $('#star_" + jdata.locationId + "_" + y + "').removeClass('star3').addClass('star1'); ";
    			}
    		}
    	}
		boxText.innerHTML += '<a href="#" onClick="makeVote(' + jdata.locationId + ',' + x + ')"><img id="star_' + jdata.locationId + '_' + x + '" border=0 src=star_icon.gif style="margin-top:8px;" ' + 
		(x > jdata.newRating ? 
			' class="star2" onMouseOver="$(this).removeClass(\'star2\').addClass(\'star3\'); ' + extra1 + '" onMouseOut="$(this).removeClass(\'star3\').addClass(\'star2\'); ' + 
			extra2 + '"' : 
			' class="star1" onMouseOver="$(this).removeClass(\'star1\').addClass(\'star3\'); ' + extra1 + '" onMouseOut="$(this).removeClass(\'star3\').addClass(\'star1\'); ' + 
			extra2 + '"') + 
			'></a>';
	}
    
    boxText.innerHTML += ' (<span id="rating_' + jdata.locationId + '">' + jdata.newRating + '</span>)<BR><font style="font-size:9px;">';

	boxText.innerHTML += "<BR>" + jdata.locationAddress + "<BR>";
	if (jdata.locationAddress2 != '') boxText.innerHTML += jdata.locationAddress2 + '<BR>'
	
	boxText.innerHTML += jdata.locationCity + ', ' + jdata.locationState + ' ' + jdata.locationZip;
    boxText.innerHTML += "<BR><BR>" +  jdata.locationPhone;
    boxText.innerHTML += "</font></div>";
			
	google.maps.event.addListener(markers[layer][p], "click", function() {
		if (myBox == null) {
			myBox = new InfoBox({
				disableAutoPan: false
				,maxWidth: 0
				,pixelOffset: new google.maps.Size(-140, 0)                     
				,zIndex: null
				,boxStyle: { 
				   opacity: 0.95
				  ,width: "280px"
                  ,background: "url('cloudbg.png')"
				 }
				,closeBoxMargin: "20px 10px 4px 4px"
				,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
				,infoBoxClearance: new google.maps.Size(1, 1)
				,isHidden: false
				,pane: "floatPane"
				,enableEventPropagation: true
			});
		}
		myBox.setContent(boxText);
		myBox.open(map, this);
	});
		
}


function hideLayer(layer) {

	for (var x = 0; x < markers[layer].length; x++) {
		markers[layer][x].setMap(null);	
	}
	
}


function showLayer(layer) {	
	if (markers[layer].length > 0) {
		for (var x = 0; x < markers[layer].length; x++) {
			markers[layer][x].setMap(map);	
		}
	} else {
		showMake(layer);
	}
}


function showMake(layer) {
	jQuery.getJSON('/getLayer.php?layer=' + layer, function (result) { makeLayer(result); showLayer(layer); });
}


function toggleLayer(master, layer) {
	
	var onoff = 0;

	if ($("#layer_" + master + "_" + layer).is(":checked")) {
		showLayer(layer);
		onoff = 1;
	} else {
		hideLayer(layer);
	}
	
	if (master == layer) {
		$('[id^=layer_' + master + '_]').each(function () { 
			if ($(this).attr('id') != 'layer_' + master + '_' + layer) {
				if ( ($(this).is(":checked") && onoff == 0) || (!$(this).is(":checked") && onoff == 1) ) {
					$(this).trigger('click');
				}
			}
		});
	}
	
}

function toggleAllParents() {

		var onoff = 0;

		if ($("#toggleAll").is(":checked")) {
			onoff = 1;
		}

		$('.mapparent').each(function () { 
				if ( ($(this).is(":checked") && onoff == 0) || (!$(this).is(":checked") && onoff == 1) ) {
					$(this).trigger('click');
				}
		});	
	
}


function makeLayers(jdata) {

	var htmldata;
	htmldata = ''; //<li id="root">Map Sections<ul>';
	var openParent;
	openParent = 0;
	var lastParent;
	lastParent = 0;
	var ckd = '';

	for (var x in jdata) {
		markers[jdata[x].layerId] = Array();
		if (jdata[x].layerParentId > 0) {
			
			htmldata += "<li><input class=\"mapchild\" type=checkbox id=\"layer_" + jdata[x].MASTER + "_" + jdata[x].layerId + "\" onClick=\"setTimeout('toggleLayer(\\\'" + jdata[x].MASTER + "\\\',\\\'" + jdata[x].layerId + "\\\')',150);\"" + ckd + "><span style='font-size:9px;'>" + jdata[x].layerName + "</span></li>";
			lastParent = 0;	
//			$("#options").append("<!--<img style='margin-left:19px;' src='" + jdata[x].layerIcon + "'>--><input type=checkbox id=\"layer_" + jdata[x].MASTER + "_" + jdata[x].layerId + "\" onClick=\"setTimeout('toggleLayer(\\\'" + jdata[x].MASTER + "\\\',\\\'" + jdata[x].layerId + "\\\')',150);\" CHECKED><span style='font-size:9px;'>" + jdata[x].layerName + "</span><br/>");
		} else {
			if (openParent == 1) {
				ckd = '';
				htmldata += "</ul></li>";
				
			} 
				
			htmldata += "<li><img src='" + jdata[x].layerIcon + "'><input class=\"mapparent\" type=checkbox id=\"layer_" + jdata[x].MASTER + "_" + jdata[x].layerId + "\" onClick=\"setTimeout('toggleLayer(\\\'" + jdata[x].MASTER + "\\\',\\\'" + jdata[x].layerId + "\\\')',150);\"" + ckd + "><span style='font-size:9px;'><b>" + jdata[x].layerName + "</b></span><ul>";

			openParent = 1;
			lastParent = 1;				
	
//			$("#options").append("<img src='" + jdata[x].layerIcon + "'><input type=checkbox id=\"layer_" + jdata[x].MASTER + "_" + jdata[x].layerId + "\" onClick=\"setTimeout('toggleLayer(\\\'" + jdata[x].MASTER + "\\\',\\\'" + jdata[x].layerId + "\\\')',150);\" CHECKED><span style='font-size:9px;'><b>" + jdata[x].layerName + "</b></span><br/>");

		}
		

		
		//jQuery.getJSON('/getLayer.php?layer=' + jdata[x].layerId, function (result) { makeLayer(result); });
		
	}
	
			if (lastParent == 1) {
				
			htmldata += "</ul></li>";
				
		} 
//	htmldata += '</ul></li>';
	
	$("#options").jstree({
			"core": { html_titles:true }, //"initially_open" : [ "root" ] },
			"html_data": { "data" : htmldata },
			"plugins": [ "themes", "html_data" ]
	});
	
	setTimeout("$('#layer_6_6').trigger('click')",1100);
	setTimeout("$('#layer_20_20').trigger('click')",1600);
	
}

function makeLayer(jdata) {
	for (var x in jdata) {
		makeMarker(jdata[x].locationLayer,jdata[x].locationId, jdata[x]);
	}
	
}

function makeVote(locationId, rating) {
 
if (votesDone[locationId] == 1) return;
    $.get('/getVote.php?locationId=' + locationId + '&rating=' + rating, function (result) { 
    	//alert(result);
	    eval(result); 
	});
    for (var x = 1; x <= 5; x++) {
        if (x <= rating) {
            $("#star_" + locationId + "_" + x).addClass('star4');
        } else {
            $("#star_" + locationId + "_" + x).addClass('star5');
        }           
    }
    votesDone[locationId] = 1;
//    $("[id^=star_" + locationId + "]").each( function () {
       //$(this).addClass('star4'); 
        
    //});
    
    
}

