// JavaScript Documentvar map;

var opoint=0;//switzerland default
var ozoom=7;//default for switzerland
var imgsbasepath='images/gmap/';
selectCursor=imgsbasepath+'magnify.png';
var cpolygon;
var controlinit=false;
var controlshow=false;
var map;
var redinit=false;
var redicon;
var redmarker;
var clocations=0;
var sizoom=0;
var plocationsinit='all';
var ilat=0;
var ilng=0;
var initmap=false;

function onLoad(ilat,ilng,iozoom){
	opoint=new GLatLng(ilat,ilng);
	ozoom=iozoom;
	gmapInit();	
}

function onLoadHided(mlat,mlng,iozoom,szoom,plocations){
	//opoint=new GLatLng(ilat,ilng);
	ilat=mlat;
	ilng=mlng;
	ozoom=iozoom;
	sizoom=szoom;
	plocationsinit=plocations;
}

function gmapInit2(){
		var script2 = document.createElement("script");
		script2.setAttribute("src", "js/zoomcontrol2.js");
		script2.setAttribute("type", "text/javascript");
		document.documentElement.firstChild.appendChild(script2);		
		opoint=new GLatLng(ilat,ilng);
}

function outgmapInit(){
	if (initmap==false){
			gmapInit();
	}	
}

function gmapInit() {
	initmap=true;
// map = new GMap2(document.getElementById("map"),{draggableCursor: 'crosshair', draggingCursor: 'crosshair'});
 map = new GMap2(document.getElementById("map"));
    map.setCenter(opoint,ozoom);
	map.addMapType(G_PHYSICAL_MAP);
	map.setMapType(G_PHYSICAL_MAP);
	map.addControl(new TextualZoomControl());
	lastpoint=opoint;
	map.disableDoubleClickZoom();
 
   //InitCursor(opoint);
  //GEvent.addListener(map,"mouseover",function(latlng){ overMap(latlng);});
  GEvent.addListener(map,"zoomend",function(oldLevel, newLevel){ onMapZoom(oldLevel,newLevel);}); 
 // GEvent.addListener(map,"mouseout",function(latlng){ outMap(latlng);});
  GEvent.addListener(map, "click", function(ov,latlng,ol) { clickMap(latlng);});
 // GEvent.addListener(map,"mousemove", function(latlng) { MoveCursor(latlng);});
	initRest();
}

function initRest(){
	$("#zoomoutdiv").hide();
	if(sizoom>0){
	  map.setZoom(ozoom+sizoom-1);
	  clickMap(opoint);
	}
}

function showIn(div){
	$("#"+div).hide();
	$("#"+div).show("slow");
}

function showOut(div){
	$("#"+div).hide("slow");
}

function onMapZoom(oldLevel,newLevel){
	
	if (controlinit==false){
			mcd=new  MoveControlDown();
			mcu=new  MoveControlUp();
			mcl=new  MoveControlLeft();
			mcr=new  MoveControlRight();
			map.addControl(mcd);
			map.addControl(mcu);
			map.addControl(mcl);
			map.addControl(mcr);
			controlinit=true;
		}
		
	if (newLevel>ozoom){
		if (controlshow==false){
			showIn("moveupdiv");
			showIn("movedowndiv");
			showIn("moveleftdiv");
			showIn("moverightdiv");
			showIn("zoomoutdiv");
			showIn("zoomindiv");
			controlshow=true;
		}
	}else{
			showOut("moveupdiv");
			showOut("movedowndiv");
			showOut("moveleftdiv");
			showOut("moverightdiv");
			showOut("zoomoutdiv");
			showOut("zoomindiv");
			controlshow=false;
			map.setCenter(opoint);
			lastpoint=opoint;
			redmarker.hide();
			//selectCursor=imgsbasepath+'magnify.png';
			//initNewCursor();
	}
	//in case we zoomout
	if (oldLevel>newLevel){
			getAreas();
	}
	
	
}


function outMap(){
	/* var point = map.fromLatLngToDivPixel(lastpoint);
   $("#divCursor").animate({ 
       	left: point.x-selectRadius+"px",
        top: point.y-selectRadius+"px"
      }, 300 );
  */
   $("#divCursor").hide();
}


function overMap(latlng){
	 $("#divCursor").show();
}

function clickMap(latlng){
	var center=false;
	mo=map.getZoom();
	
	if (mo==ozoom)mo++;
	if (mo<ozoom+3){ mo++;center=true;}
	map.setZoom(mo);
	if (center)	map.setCenter(latlng);
	//selectCursor=imgsbasepath+'gmap_zoomed.png';
	//initNewCursor();
	lastpoint=latlng;
	
	if (redinit==false){
		redicon=new GIcon(G_DEFAULT_ICON);
		redicon.image= imgsbasepath+"gmap_zoomed.png";
		redicon.iconSize = new GSize(44, 44);
		redicon.iconAnchor = new GPoint(22, 22);
		markerOptions = { icon:redicon};
		redmarker=new GMarker(latlng, markerOptions);
		map.addOverlay(redmarker);
		redinit=true;
	}
	
	redmarker.setLatLng(latlng);
	redmarker.show();
	getAreas();	
}

function getAreas(latlng){
	var lat=lastpoint.lat();
	var lng=lastpoint.lng();
	var zoom=map.getZoom()-ozoom;
	var lsavestate=saveState();
	
		$("#gmap_message .mesaj").remove();
		$('#gmap_message').append('<div class="load"><img src="images/M_images/loading.gif" alt="" /></div>');
		ajinprogress = true;
		$.post('index2.php', {
			option: "com_listings",
			task: "gmapajax",
			lat: lat,
			lng: lng,
			zoom: zoom,
			plocations: plocationsinit,
			savestate:lsavestate
		}, function(data){
			//plocationsinit = 'all';
			$('#gmap_message .load').remove();
			eval(data);
			
		});
	
}

function mouseChange(latlng){
	gpoint=map.fromLatLngToContainerPixel(latlng);
	objectToDrag.moveTo(gpoint);

}



function InitCursor(latlng)
{
    //Create cursor
    var div = document.createElement("div");
    var divIdName = 'divCursor';
    div.setAttribute('id',divIdName); 
    div.style.position = 'absolute';
	selectRadius=22;
    div.style.left = map.fromLatLngToDivPixel(latlng).x-selectRadius+'px';
    div.style.top = map.fromLatLngToDivPixel(latlng).y-selectRadius+'px';
    div.innerHTML = '<div id="imagediv"><img style="position : absolute; border: 0px; width:'+ selectRadius*2 +'px; height:'+ selectRadius*2 +'px; cursor: crosshair;" src="'+selectCursor+'"/></div>';
    
    //Add div to map
    map.getPane(G_MAP_FLOAT_PANE).appendChild(div);
}

function initNewCursor(){
	div=document.getElementById("divCursor");
	imgdiv=document.getElementById("imagediv");
	div.removeChild(imgdiv);
	div=document.getElementById("divCursor");
	div.innerHTML = '<div id="imagediv"><img style="position : absolute; border: 0px; width:'+ selectRadius*2 +'px; height:'+ selectRadius*2 +'px; cursor: crosshair;" src="'+selectCursor+'"/></div>';
}
    
function MoveCursor(latlng) 
{   
   //Move cursor to current mouse position
   var point = map.fromLatLngToDivPixel(latlng);
   document.getElementById('divCursor').style.left=point.x-selectRadius+'px';
   document.getElementById('divCursor').style.top=point.y-selectRadius+'px';
}

function search_checkAll(divid,check){
	
	//$("input[@type=radio]").uncheck();	
	$("#"+divid+" INPUT[type='checkbox']").attr('checked',check);
}
