  var http_request;
  var url_dest = "http://www.travel-bulgaria.com/map_request_dest.php";
  var url_accomm = "http://www.travel-bulgaria.com/map_request_accomm.php";

           
   var map;
   var markerManager;
   var level = 7;
   var countAll = 0;
   var iconPath = "../js-global/gmaps/icons/";
 
   function VisualizeMarkers( type, text ){
     		if(map){   
				if(markerManager){
					markerManager.clearMarkers();
				}
				markerManager = new MarkerManager(map);
				GDownloadUrl(text, function(doc) {
						var batch = [];
        					var xmlDoc = GXml.parse(text);
						if( xmlDoc.documentElement.getElementsByTagName("marker").length > 0 && xmlDoc.documentElement.getElementsByTagName("count").length > 0 ){
	        					var markers = xmlDoc.documentElement.getElementsByTagName("marker");
							var count = xmlDoc.documentElement.getElementsByTagName("count")[0];
							countAll = count.childNodes[0].nodeValue;
				        		for (var i = 0; i < markers.length; i++) {
         		 					// obtain the attribues of each marker
         		 					var type = markers[i].getAttribute("type");
          							var lat = parseFloat(markers[i].getAttribute("lat"));
          							var lng = parseFloat(markers[i].getAttribute("lng"));
								var markerLevel = markers[i].getAttribute("level");
								var lev = (countAll < 100)? level :  markerLevel;
								if(lat && lng){
	          							var point = new GLatLng(lat,lng);
									var html = markers[i].childNodes[1].nodeValue;
          								// create the marker
									var icon = new GIcon(G_DEFAULT_ICON);
									var iconType =  markers[i].getAttribute("icon");				
									icon.image = getIcon(iconType);
									icon.iconSize = new GSize(32, 37);
									icon.shadow = iconPath + "shadow.png";
									icon.shadowSize = new GSize(51,37);
									var marker = createMarker(point, icon, html);
          								markerManager.addMarker(marker, lev);								
								}
        						}
						}else{
							alert("Your search did not match any objects.");
						}    
        				});
			markerManager.refresh();
    		}else{
    			alert("Google map is not loaded");
    		}	
    }


	function fnZoomMap(lat, long, level){
		if(map){
			map.setCenter(new GLatLng(lat, long), level);
		}
	}

	function getIcon(iconType){
		var trimmedPath = trim(iconType, " ");
		var icon = iconPath + trimmedPath;
		return icon;
	}
	 
	function createMarker(point, icon, html) {
       	var marker = new GMarker(point, {icon:icon});
        	GEvent.addListener(marker, "click", function() {
          		marker.openInfoWindowHtml(html , {maxWidth: 150 });
        	});
        	return marker;
      }




	function trim(str, chars) {
		return ltrim(rtrim(str, chars), chars);
	}
 
	function ltrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
	}
 
	function rtrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
	}
 

   function ReloadMapAccomm(){
	if(http_request.readyState == 4 && http_request.status == 200){
		var type = 1;
		_changeTabStyle(type);
		if (GBrowserIsCompatible()) {
       	 	map = new GMap2(document.getElementById("map_canvas"),
            		{ size: new GSize(640, 440) } );      
			map.setCenter(new GLatLng(42.733883, 25.48583), 7);   
     			map.setUIToDefault(); 
			map.disableScrollWheelZoom();  
			map.setMapType(G_PHYSICAL_MAP);                
	     		VisualizeMarkers(type, http_request.responseText);
			GEvent.addListener(map, "zoomed", function() {
			    map.openInfoWindowHtml(point, myHtml);
			});
		}			
      	}
   }

   function ReloadMapDest(){
	if(http_request.readyState == 4 && http_request.status == 200){
		var type = 0;
		_changeTabStyle(type);
		if (GBrowserIsCompatible()) {
       	 	map = new GMap2(document.getElementById("map_canvas"),
            		{ size: new GSize(640, 440) } );      
			map.setCenter(new GLatLng(42.733883, 25.48583), 7);   
     			map.setUIToDefault(); 
			map.disableScrollWheelZoom();  
			map.setMapType(G_PHYSICAL_MAP);                
	     		VisualizeMarkers(type, http_request.responseText);
			GEvent.addListener(map, "zoomed", function() {
			    map.openInfoWindowHtml(point, myHtml);
			});
		}			
      	}
   }




    function GetAccommXML(){
	if(http_request.readyState == 4 && http_request.status == 200){
		var type = 1;
		_changeTabStyle(type);
		if (GBrowserIsCompatible()) {
       	 	map = new GMap2(document.getElementById("map_canvas"),
            		{ size: new GSize(640, 440) } );      
			map.setCenter(new GLatLng(42.733883, 25.48583), 7);   
     			map.setUIToDefault(); 
			map.disableScrollWheelZoom();  
			map.setMapType(G_PHYSICAL_MAP);                
	     		VisualizeMarkers(type, http_request.responseText);
			GEvent.addListener(map, "zoomed", function() {
			    map.openInfoWindowHtml(point, myHtml);
			});
		}			
      	}
   }



    function GetDestXML(){
	if(http_request.readyState == 4 && http_request.status == 200){
		var type = 0;
		_changeTabStyle(type);
		if (GBrowserIsCompatible()) {
       	 	map = new GMap2(document.getElementById("map_canvas"),
            		{ size: new GSize(640, 440) } );      
			map.setCenter(new GLatLng(42.733883, 25.48583), 7);   
     			map.setUIToDefault(); 
			map.disableScrollWheelZoom();  
			map.setMapType(G_PHYSICAL_MAP);                
	     		VisualizeMarkers(type, http_request.responseText);
			GEvent.addListener(map, "zoomed", function() {
			    map.openInfoWindowHtml(point, myHtml);
			});
		}			
      	}
   }


   function _changeTabStyle(index){	
	var visible = "tab_" + index;
	var invisible = "tab_"; 
	var vis_elem = "elem_" + index;
	var invis_elem = "elem_";
	if(index == "0") {
		invisible = invisible + "1"; 
		invis_elem = invis_elem + "1";
	}else if(index == "1"){
		invis_elem = invis_elem + "0";
		invisible = invisible + "0";
	}
	var visibleTab = document.getElementById(visible);
	visibleTab.style.display = "";
	
	var visElem = document.getElementById(vis_elem);
	visElem.style.textDecoration = "none";

	var invisibleTab = document.getElementById(invisible);
	invisibleTab.style.display = "none";		

	var invisElem = document.getElementById(invis_elem);
	invisElem.style.textDecoration = "underline";
   }
  

    function submitFormWithEnter(formObj, objType, e){
	   var keycode;
	   if (window.event){
	   	keycode = window.event.keyCode;
   	   } else if (e){
	      keycode = e.which;
   	   } else {
	      return true;
   	   }

	   if (keycode == 13){
	      makePOSTRequest(formObj, objType);
      	      return false;
   	   } else {
	      return true;
   	   }
	}



 function makePOSTRequest(formObj, objType) {
      var params = "";
      var inputs = formObj.getElementsByTagName ('input');
		if (inputs) {
		  	for (var i = 0; i < inputs.length; ++i) {
		  		if(inputs[i].name.length > 0){
		  			if(params.length > 0 )params = params + "&";
				        params = params + inputs[i].name + "=" +  inputs[i].value; 
				 }       
			 }
		 }
		  var select = formObj.getElementsByTagName ('select');
		  if(select){
		  	for(i = 0; i < select.length; i++){ 			  		
			 	 var n = select[i].selectedIndex;    // Which menu item is selected
			 	 var obj = select[i];
		  	 	 if(obj[n].value) {
		  	 	 	if(params.length > 0 ) params = params + "&";
		  	 	 	params = params + select[i].getAttribute("id") + "=" + obj[n].value;
		  	 	 } 
		  	 }
		  }
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot load Google maps markers');
         return false;
      }
      //alert(params);
	if(objType == '0'){
	      http_request.onreadystatechange = ReloadMapDest;
	      http_request.open('POST', url_dest, true);
	}else{
	      	http_request.onreadystatechange = ReloadMapAccomm;
      		http_request.open('POST', url_accomm, true);
	}
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", params.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(params);
   }


     function makeGETRequest(index) {
      		http_request = false;
		if (window.XMLHttpRequest) { // Mozilla, Safari,...
	       	http_request = new XMLHttpRequest();
		       if (http_request.overrideMimeType) {
		            http_request.overrideMimeType('text/html');
         		}
		} else if (window.ActiveXObject) { // IE
		       try {
            			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		       } catch (e) {
            			try {
			               http_request = new ActiveXObject("Microsoft.XMLHTTP");
		             } catch (e) {}
         		}
      		}
	      if (!http_request) {
       	  alert('Cannot load Google maps markers');
	         return false;
      		}

		if(index == '0'){
	      		http_request.onreadystatechange = GetDestXML;
	       	http_request.open('GET', url_dest);
		}else{
	      		http_request.onreadystatechange = GetAccommXML;
		       http_request.open('GET', url_accomm);
		}
      		http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	       http_request.setRequestHeader("Connection", "close");
	       http_request.send();
   	}


  function switchTab(index){
	if(document.getElementById("hdnActiveTab").value != index){
		_changeTabStyle(index);
		var newActiveTab = "tab_" + index;
		var newInactiveTab = "tab_";
		if(index == 0 ) {
			newInactiveTab  = newInactiveTab  + "1";
		} else{
			newInactiveTab  = newInactiveTab  + "0";
		}
		var activeTab = document.getElementById(newActiveTab);
		var inactiveTab = document.getElementById(newInactiveTab);
		
		var activeForm = activeTab.getElementsByTagName("form")[0];
		var inactiveForm = inactiveTab.getElementsByTagName("form")[0];

		if(index == 0){
			activeForm.q1088.value = inactiveForm.q1095.value;
		}else{
			activeForm.q1095.value = inactiveForm.q1088.value;
		}
	
		var objSelect = activeForm.getElementsByTagName("select");
		for(i = 0; i< objSelect.length; i ++ ) {
			objSelect[i].selectedIndex = 0;
		}
		document.getElementById("hdnActiveTab").value = index;
		makeGETRequest(index);

	}
  }


  function initialize() {
      if (GBrowserIsCompatible()) {
        	map = new GMap2(document.getElementById("map_canvas"),
            { size: new GSize(640, 440) } );                   
       	map.setCenter(new GLatLng(42.733883, 25.48583), 7);   
     		map.setUIToDefault(); 
		map.disableScrollWheelZoom();  
		map.setMapType(G_PHYSICAL_MAP);  
        	var ovcontrol = new GOverviewMapControl(new GSize(150,150)); 
 	       map.addControl(ovcontrol);           
		var objType = "0";
		document.getElementById("hdnActiveTab").value = objType;
     		makeGETRequest(objType);	
		_changeTabStyle(objType);			
      	}
    }


