﻿
var gmarkers = [];
var i = 0;
var j;
var map_movements_listener ="on";
var mouse_over_map ="no";
var map_is_loaded ="no";

var are_we_logged_in;
var comment_part_1;
var comment_part_2;
var comment_part_3;
var comment_part_4;
var our_review_length="0";
var our_review_grade="0";
var our_review_email_length="0";
var our_review_password_length="0";
var our_review_email_at_signs;
var our_review_email ="";
var password ="";
var our_review_password ="";
var secure_password ="";
var forgot_password ="";
var new_user ="";
var check_form_ok;
var venue_type_plural;

var ajax_array;

var baseIcon;
var icon;
var marker;
var map;
var bounds;
var point_message;

var xml_data;
var xml;
var markers;
var extend_bounds="yes";

var lat;
var long;
var point_link;
var point_id;

var curDateTime;

var tooltip;
var greenCross;

var own_offset_x =0;
var own_offset_y =0;
var ad;
var point;
var offset;
var anchor;
var width;
var height;
var pos;

var map_southwest;
var map_southwest_lat;
var map_southwest_long;
var map_center;
var map_center_lat;
var map_center_long	;
var marker_position;
var marker_lat;
var marker_long;
var map_lat_dif	
var map_long_dif;
var marker_lat_dif;
var marker_long_dif;
var marker_offset_lat; 
var marker_offset_long;

/*var searchstringclean;
var searchstring;
var thing_text="";

var comment_part_2_loaded ="no";
var comment_part_3_loaded ="no";

var cookie_expire_date;
var user_login_code;
var user_nicename;
var logged_out;

var last_reviews_xml_data;
var last_reviews_xml;
var last_reviews;
var review_description;
var review_time;
var review_venue_name;
var review_link;
var review_author_link;
var our_delay;
var review_author_image;

var user_first_time_code="";
var user_password_code="";

var user_nicename_array;
var user_nicename_array_2;
var sorting_menu_good_bad_original ="";
var sorting_menu_type_of_place_original ="";
var change_review_underway ="no";*/







	// mymouseover     
	function mymouseover(i,own_offset_x,own_offset_y,ad) {		
        if (map_is_loaded=="yes") { 
			map_movements_listener="off"; // turn off for webpage movements not directly by user
			if (i!=1000 && ad!="yes") {document.getElementById('venue_' + i).style.backgroundColor='#E8E8E8'; }  // change li style '#efe6da'
			pan_if_outside(gmarkers[i]);
			showTooltip(gmarkers[i],own_offset_x,own_offset_y);
			if (i!=1000) {gmarkers[i].setImage('../images/objekt-hover_icon.png'); }
			if (i==1000) { map_movements_listener="on";window.setTimeout('tooltip.style.visibility="hidden";',15000);}
		}
	}
    // mymouseout  
	function mymouseout(i,ad) {
		if (map_is_loaded=="yes") { 
		if (ad!="yes") {document.getElementById('venue_' + i).style.backgroundColor='#ffffff'; } // change li style
		tooltip.style.visibility="hidden";
		gmarkers[i].setImage('../images/objekt_icon.png'); 
		map_movements_listener="on"; // turn back on!
		ad="no";
		}
	}
	
	// SHOW INITIAL TOOLTIP
	function show_initial_tooltip() {
	window.setTimeout('showTooltip(gmarkers[1000],-50,-50);hide_initial_tooltip();',1500);
	}
	// HIDE INITIAL TOOLTIP
	function hide_initial_tooltip() {
	window.setTimeout('tooltip.style.visibility="hidden";',15000);
	}
	

	 


      function createMarkerStatic(point, point_message,image){
        
        //var icon = new GIcon(baseIcon);
        if(image=="city_icon.png")
        {
        var icon = new GIcon(baseIcon);
        icon.shadow = "http://www.google.com/mapfiles/shadow50.png";
        }
        else
        {
        var icon = new GIcon();
		icon.shadow = "../images/squareicon_shadow.png";
		icon.iconSize = new GSize(24, 32);
		icon.shadowSize = new GSize(37, 34);
		icon.iconAnchor = new GPoint(9, 34);
		icon.infoWindowAnchor = new GPoint(9, 2);
		icon.infoShadowAnchor = new GPoint(18, 25);
        }
        icon.image = "../images/"+image;
        
        var marker = new GMarker(point, icon);
        marker.tooltip = '<div class="tooltip"><div class="tooltip_text"><nobr>'+point_message+'</nobr></div></div>';
        map.addOverlay(marker);
		// --- ADD LISTENERS ---
		// --- MOUSE OVER ---
        GEvent.addListener(marker,'mouseover', function() {
        showTooltip(marker,-40,0); // show tooltip
		//marker.setImage('http://www.allakartor.se/mapicons/yellow_light.png');  // change icon '#EFE6DA'
		//if (map_is_loaded=="yes") { document.getElementById('venue_' + point_id).style.backgroundColor='#E8E8E8'; }  // change li style
        });      
		// --- MOUSE OUT ---  
        GEvent.addListener(marker,'mouseout', function() {
		tooltip.style.visibility='hidden'; // hide tooltip
		//marker.setImage('http://www.allakartor.se/mapicons/red_dot.png');   // change icon
		//if (map_is_loaded=="yes") { document.getElementById('venue_' + point_id).style.backgroundColor='#FFFFFF'; } // change li style
        }); 
		// --- GO TO LINK ON CLICK --- 
		
		//GEvent.addListener(marker, 'click', function() {self.location.href = point_link;});	
      }
      // A function to create the marker and set up the event window
      function createMarker(point,point_message,point_link,point_id) {
        //alert("steg3");
        
		var icon = new GIcon(baseIcon);
		
		icon.image = "../images/objekt_icon.png";
		
		var marker = new GMarker(point, icon);
        // === store the name so that the tooltip function can use it ===
        marker.tooltip = '<div class="tooltip"><div class="tooltip_text"><nobr>'+point_message+'</nobr></div></div>';
        gmarkers[i] = marker;
        i++;
        map.addOverlay(marker);
		// --- ADD LISTENERS ---
		// --- MOUSE OVER ---
        GEvent.addListener(marker,'mouseover', function() {
        showTooltip(marker,-40,0); // show tooltip
       
		marker.setImage('../images/objekt-hover_icon.png');  // change icon '#EFE6DA'
		
		if (map_is_loaded=="yes") { document.getElementById('venue_' + point_id).style.backgroundColor='#E8E8E8'; }  // change li style
        });      
		// --- MOUSE OUT ---  
        GEvent.addListener(marker,'mouseout', function() {
		tooltip.style.visibility='hidden'; // hide tooltip
		
		marker.setImage('../images/objekt_icon.png');   // change icon
		
		if (map_is_loaded=="yes") { document.getElementById('venue_' + point_id).style.backgroundColor='#FFFFFF'; } // change li style
        }); 
		// --- GO TO LINK ON CLICK --- 
		//alert(point_link);
		if(point_link!=-1)  
		{
		
		point_link="default.asp?action=getDetail&objectid="+point_link;
		GEvent.addListener(marker, 'click', function() {self.location.href = point_link;});	
		// --- END LISTENERS ---
		}	       
      }

 		// A function to create the green cross
      	function createGreenCross(point,point_message) {
		var icon = new GIcon(greenCross);
		var marker = new GMarker(point, icon);
		gmarkers[1000] = marker;
        // === store the name so that the tooltip function can use it ===
        marker.tooltip = '<div class="tooltip"><div class="tooltip_text"><nobr>'+point_message+'</nobr></div></div>';
        map.addOverlay(marker); 
		// --- ADD LISTENERS ---
		// --- MOUSE OVER ---
        GEvent.addListener(marker,'mouseover', function() {
        showTooltip(marker,-50,0); // show tooltip
        });      
		// --- MOUSE OUT ---  
        GEvent.addListener(marker,'mouseout', function() {
		tooltip.style.visibility='hidden'; // hide tooltip
        }); 
		// --- END LISTENERS ---     
      }

// === TOOLTIP FUNCTION STARTS =========
function showTooltip(marker,own_offset_x,own_offset_y) {
      	tooltip.innerHTML = marker.tooltip;
	 point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(0,0),true),map.getZoom());
	 offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
	 anchor=marker.getIcon().iconAnchor;
	 width=marker.getIcon().iconSize.width;
	 height=tooltip.clientHeight;
	 pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(offset.x - point.x - anchor.x + width + own_offset_x, offset.y - point.y -anchor.y -height + own_offset_y)); 
	pos.apply(tooltip);
	tooltip.style.visibility="visible"; 
}
// === TOOLTIP FUNCTION ENDS =========


// === PAN-IF-OUTSIDE STARTS ===
function pan_if_outside(marker) {
	 map_southwest			= map.getBounds().getSouthWest().toString();
	map_southwest				= map_southwest.split(",");
	 map_southwest_lat		= map_southwest[0].replace("(", "").replace(" ","");
	 map_southwest_long		= map_southwest[1].replace(")", "").replace(" ","");
	 map_center				= map.getCenter().toString();
	map_center					= map_center.split(",");
	 map_center_lat			= map_center[0].replace("(", "").replace(" ","");
	 map_center_long			= map_center[1].replace(")", "").replace(" ","");
	 marker_position			= marker.getPoint().toString();
	marker_position				= marker_position.split(",");
	 marker_lat				= marker_position[0].replace("(", "").replace(" ","");
	 marker_long				= marker_position[1].replace(")", "").replace(" ","");

	 map_lat_dif				= map_center_lat - map_southwest_lat;
	 map_long_dif			= map_center_long - map_southwest_long;
	
	 marker_lat_dif			= map_center_lat - marker_lat;
	 marker_long_dif			= map_center_long - marker_long;
	
	 marker_offset_lat		=   marker_lat_dif / map_lat_dif; 
	 marker_offset_long		=  marker_long_dif / map_long_dif; 
	
	if ( (marker_offset_lat  < -0.6) && (marker_offset_long < 0) || (marker_offset_lat  < 0) && (marker_offset_long < -0.7))  // Less so we can see the text to the top and right
	{ 
	 map.panTo(new GLatLng((1*marker_lat-1*(map_lat_dif/2)), (1*marker_long-1*(map_long_dif/4)))); // So we can see the text to the right
	}
	if ( (marker_offset_lat  < -0.6) && (marker_offset_long > 0) || (marker_offset_lat  < 0) && (marker_offset_long >  0.75)) // Less because the controls are in the way here 
	{ 
	map.panTo(new GLatLng((1*marker_lat-1*(map_lat_dif/2)), (1*marker_long+1*(map_long_dif/2))));
	}
	if ( (marker_offset_lat  >  0.9) && (marker_offset_long < 0) || (marker_offset_lat  > 0) && (marker_offset_long < -0.7))  // Less so we can see the text to the right
	{ 
	map.panTo(new GLatLng((1*marker_lat+1*(map_lat_dif/2)), (1*marker_long-1*(map_long_dif/4)))); // So we can see the text to the right
	}
	if ( (marker_offset_lat  >  0.9) && (marker_offset_long > 0) || (marker_offset_lat  > 0) && (marker_offset_long >  0.9)) 
	{ 
	map.panTo(new GLatLng((1*marker_lat+1*(map_lat_dif/2)), (1*marker_long+1*(map_long_dif/2))));
	}
	
}


	// loop markers
	function loop_markers(which_webpage) {
	
	which_webpage="Annonskartan.se";
	xml = GXml.parse(xml_data);
	 markers = xml.documentElement.getElementsByTagName("marker");
  	 // --- FOR EACH MARKER, ADD OVERLAY ---
	      for (j = 0; j < markers.length; j++) {
          // obtain the attribues of each marker
           lat = parseFloat(markers[j].getAttribute("lat"));
           long = parseFloat(markers[j].getAttribute("long"));
           point = new GLatLng(lat,long);
           point_link = markers[j].getAttribute("point_link");
           destination=markers[j].getAttribute("destination");
          // create the marker 
		   point_id = j;
		   point_message = markers[j].getAttribute("point_message");
		   marker = createMarker(point,point_message,point_link,point_id);
		   //alert("steg4");
		   if (extend_bounds=="yes") {bounds.extend(point); } // map-to-fit 
        }
    if(destination==1)
    {
    point = new GLatLng(57.78870327374032,14.229955673217773);
    point_message="Elmia";
	marker=createMarkerStatic(point,point_message,"elmia_icon.png")
	
	/*point = new GLatLng(57.7830, 14.1682);
    point_message="Centrum";
	marker=createMarkerStatic(point,point_message,"city_icon.png")*/
	
	point = new GLatLng(57.7501, 14.0732);
    point_message="Flygplats/Airport";
	marker=createMarkerStatic(point,point_message,"airport_icon.png")
	
	/*point = new GLatLng(57.7783, 14.1633);
	point_message="Jönköping University";
	marker=createMarkerStatic(point,point_message,"ersa.png")*/
	
	point = new GLatLng(57.7837,14.1627);
	point_message="Centralstation";
	marker=createMarkerStatic(point,point_message,"train_icon.png")
	}
	else if(destination==2)
	{
	    point = new GLatLng(57.7088,11.9730);
	    point_message="Centralstation";
	    marker=createMarkerStatic(point,point_message,"train_icon.png")
	    
	    point = new GLatLng(57.6687, 12.2965);
        point_message="Landvetter Flygplats";
	    marker=createMarkerStatic(point,point_message,"airport_icon.png")
	    
	    point = new GLatLng(57.6972,11.9899);
        point_message="Svenska Mässan";
	    marker=createMarkerStatic(point,point_message,"svenskamassan.png")
	    
	    point = new GLatLng(57.6888,11.9420);
        point_message="Göteborgsvarvet";
	    marker=createMarkerStatic(point,point_message,"gbg-varvet-icon.png")
	    
	    /*point = new GLatLng(57.6970, 11.9910);
        point_message="Liseberg";
	    marker=createMarkerStatic(point,point_message,"lisebergmarker.png")*/
	    
	    /*point = new GLatLng(57.7830, 14.1682);
        point_message="Centrum";
	    marker=createMarkerStatic(point,point_message,"city_icon.png")*/
    	
	    
    	
	    point = new GLatLng(57.7599,11.8843);
	    point_message="Göteborg City Airport";
	    marker=createMarkerStatic(point,point_message,"airport_icon.png")
    	
	    
	}
	if (j>0 && extend_bounds=="yes") { map.setCenter(bounds.getCenter()); } // map-to-fit	
	if ((j>1 && extend_bounds=="yes") ||(which_webpage=="Annonskartan.se")) { map.setZoom(map.getBoundsZoomLevel(bounds)); } // map-to-fit	
	// WE WANT TO EXTEND THE MAP A LITTLE MORE:
	map_southwest			= map.getBounds().getSouthWest().toString();
	map_southwest			= map_southwest.split(",");
	map_southwest_lat		= map_southwest[0].replace("(", "").replace(" ","");
	map_southwest_long		= map_southwest[1].replace(")", "").replace(" ","");
	map_center				= map.getCenter().toString();
	map_center				= map_center.split(",");
	map_center_lat			= map_center[0].replace("(", "").replace(" ","");
	map_center_long			= map_center[1].replace(")", "").replace(" ","");
	map_lat_dif				= map_center_lat - map_southwest_lat;
	map_long_dif			= map_center_long - map_southwest_long;
	map_extend_lat			= (map_center_lat)*1 + (map_lat_dif)*100/80;
	map_extend_long			= (map_center_long)*1 + (map_long_dif)*100/80;
	bounds.extend(new GLatLng(map_extend_lat,map_extend_long));  
	if (j>0  && extend_bounds=="yes") { 
		if (map.getBoundsZoomLevel(bounds)!=0){map.setZoom(map.getBoundsZoomLevel(bounds));}else{map.setZoom(1);}
	} // map-to-fit
	if (j==0  && extend_bounds=="yes") { map.setZoom(4); } // map-to-fit	
	}
	





	






