//<![CDATA[

/**
 * Used global variables
 */
var agent   = navigator.userAgent.toLowerCase();
var isIE    = false;
if ((agent.indexOf("msie") > -1) && (agent.indexOf("opera") < 1)){ isIE = true} else {isIE = false}

var gpoint              = null;
var glevel              = null;
var gMap                = null;
var map                 = null;
var gmarkers            = new Array();
var glurmarkers         = new Array();
var oInfo               = null;
var oBaseIcon           = null;
var oBut                = null;
var items               = null;
var mm                  = null;
var isEditable          = false;
var listEl              = new Array();
var oDefStruct          = {lat:'56.860986',long:'24.279785',deepth:7,nomarker:true};
var aContainerList      = new Array();
var cGmapContainerId    = "gmap55";
var lGmapIsLoaded       = false;

/**
 * Check for global variable cServerRoot and change url if necessary
 *
 * This variable is used to allow AJAX requests from other domains.
 */
if(typeof(cMapServerRoot) == "undefined")
{
    var cMapServerRoot = "/map";
}


/**
 * Used libraries
 */
if(location.hostname.indexOf("www.lursoft.lv")!=-1)
    document.write("<script src=\"http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAANDq_wRt4_GgHijRKpijgKBQwj158UiJIL_EXw5EV1zCe7bQqrRTpnOAN2BFc-5l7jjrIX6iVQbw93w\" type=\"text/javascript\"></script>");
else if(location.hostname.indexOf("lursoft.lv")!=-1)
    document.write("<script src=\"http://maps.google.com/maps?file=api&amp;v=2&amp;hl=lv&amp;key=ABQIAAAANDq_wRt4_GgHijRKpijgKBSAjWmUBMUmcqYz4dmvDcyfb7rLtBT9zSv5EViBl5u5ROXpPbFvdrfipQ\" type=\"text/javascript\"></script>");
else if(location.hostname.indexOf("zo.lv")!=-1)
    document.write("<script src=\"http://maps.google.com/maps?file=api&amp;v=2&amp;hl=lv&amp;key=ABQIAAAAbSE34cmQ51mWE2ilr0C4OBSEJchPyYYZukpl2toqjUZyxeU9iBRxtX_EATD9y3BhM8XirPB9MDoOTw\" type=\"text/javascript\"></script>");
else
    document.write("<script src=\"http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAANDq_wRt4_GgHijRKpijgKBRKz_l14JI8dgVsm6B76dDvbPzAcRQZs_2800Mavrs7W0Ilp29fAuUlhg\" type=\"text/javascript\"></script>");

document.write("<link rel=\"stylesheet\" href=\"http://www.lursoft.lv/map/admin/css/gmap.css?v=1.07\" type=\"text/css\">");
document.write("<script src=\"http://www.lursoft.lv/map/admin/js/lurinfo.js?v=1.07\" type=\"text/javascript\"></script>");
document.write("<script src=\"http://www.lursoft.lv/map/admin/js/request.js?v=1.07\" type=\"text/javascript\"></script>");




function ShowMap(aAddressList, cGmapId){
	if(typeof(aAddressList)=="undefined" || aAddressList.length<1)
        return false;
//    else list = aAddressList;

	if(typeof(cGmapId)=="undefined" || document.getElementById(cGmapId) == null)
        return false;

    InitMapStatus(cGmapId);
    aContainerList[cGmapId]["addresses"]            = aAddressList;

	var q='http://www.lursoft.lv/map/admin/?cmd=get&map='+ cGmapId;
    if(typeof(fromUR)!="undefined")
		q+='&kods=';
	else
		q+='&q=';
	for(i=0;i<aAddressList.length;i++)
		if(typeof(aAddressList[i].id)!='undefined')
			q+=(i>0?',':'')+aAddressList[i].id;

    var r=new Request(q);
}

function InitMapStatus(cGmapId)
{
    aContainerList[cGmapId] = new Array();

    aContainerList[cGmapId]["addresses"]            = new Array();
    aContainerList[cGmapId]["loading_completed"]    = false;
    aContainerList[cGmapId]["map_is_visible"]       = false;
}

function GetMapStatus(cGmapId)
{
    if(typeof(aContainerList[cGmapId])=="undefined")
    {
        InitMapStatus(cGmapId);
    }

    return aContainerList[cGmapId];
}

function showList(a){
    var lHasPositiveCoords = false;

    var tt = a.getElementsByTagName('mapid')[0];
	if(tt==null)
		var cGmapId = "";
    else
        var cGmapId = tt.firstChild.nodeValue;
    
    if(cGmapId == "")
    {
        cGmapId = cGmapContainerId;
    }
    cGmapContainerId = cGmapId;
    
	var n=a.getElementsByTagName('items')[0];
	var l=-1;
	if(n==null || !n.hasChildNodes())
		return false;
	n=n.childNodes;

    // Prepare correct list
    if(typeof(aContainerList[cGmapId]["addresses"])=="undefined")
    {
        aContainerList[cGmapId]["addresses"] = new Array();
    }
    var list_tmp = aContainerList[cGmapId]["addresses"];
    var list = new Array;

	for(i=0;i<n.length;i++){
		if(n[i].nodeName=='item' && n[i].hasChildNodes()){
			var nn=n[i].childNodes;
			l++;

            // Put in list predefined values
            list[l] = list_tmp[l];

            list[l].custom_content = "";
            list[l].edit_link = "";
            //list[l].is_city = "";

			for(j=0;j<nn.length;j++)
				if(nn[j].nodeType==1)
            		switch(nn[j].nodeName){
            			case 'marker':
            				list[l].lat=parseFloat(nn[j].getAttribute('lat'));
            				list[l].long=parseFloat(nn[j].getAttribute('long'));
							list[l].id=nn[j].getAttribute('id');

                            // Control flag checks for positive cooridnates.
                            if(list[l].lat > 0 && list[l].long > 0)
                            {
                                lHasPositiveCoords = true;
                            }
            				break;
            			case 'infowindow':
            				list[l].title=nn[j].firstChild.nodeValue;
            				break;
                        case 'is_city':
            				list[l].is_city=nn[j].firstChild.nodeValue;
            				break;
            			case 'accepted':
    						list[l].accepted=eval(nn[j].firstChild.nodeValue);
							if(!list[l].accepted && list[l].title!='')
								list[l].edit_link='<div class="top_space"><a class="small" href="#" onClick="return editCoord(\''+cGmapId+'\', '+l+');">Labot</a></div>';
    						break;
            			case 'error':
    						list[l].error=parseInt(nn[j].firstChild.nodeValue);
    						break;
                        case 'type':
                            if(nn[j].hasChildNodes())
                                list[l].type=parseInt(nn[j].firstChild.nodeValue);
                            break;
    				}
			if(list[l].deepth==0)
            {
				list[l].deepth=13;
            }
            if(typeof(list[l].show_links)!="undefined" && typeof(list[l].show_links.show)!="undefined")
            {
                if(list[l].show_links.show == true && typeof(list[l].show_links.links)!="undefined")
                {
                    if(typeof(list[l].show_links.links.ur)!="undefined" && list[l].show_links.links.ur == true)
                        list[l].custom_content += '<li><a href="javascript:void(0);" onclick="openLink(\''+cMapServerRoot+'/?cmd=link&t=ur&id='+list[l].id+'\');" title="Meklēt uzņēmumus">Meklēt uzņēmumus</a></li>';
                    if(typeof(list[l].show_links.links.zolv)!="undefined" && list[l].show_links.links.zolv == true)
                        list[l].custom_content += '<li><a href="javascript:void(0);" onclick="openLink(\''+cMapServerRoot+'/?cmd=link&t=zolv&id='+list[l].id+'\');" title="Meklēt zemesgrāmatā">Meklēt uzņēmumus</a></li>';
                    if(typeof(list[l].show_links.links.press)!="undefined" && list[l].show_links.links.press == true)
                        list[l].custom_content += '<li><a href="javascript:void(0);" onclick="openLink(\''+cMapServerRoot+'/?cmd=link&t=press&id='+list[l].id+'\');" title="Meklēt laikrakstos">Meklēt laikrakstos</a></li>';
                    if(typeof(list[l].show_links.links.zg)!="undefined" && list[l].show_links.links.zg == true && (list[l].type == 108 || list[l].type == 109))
                        list[l].custom_content += '<li><a href="javascript:void(0);" onclick="openLink(\''+cMapServerRoot+'/?cmd=linkzg&id='+list[l].id+'&tips='+list[l].type+'\');" title="Meklēt zemesgrāmatā">Meklēt zemesgrāmatā</a></li>';

                    if(list[l].custom_content != "")
                    {
                        list[l].custom_content = '<ul class="custom_content_list">'+list[l].custom_content+'</ul>';
                    }
                }
            }
		}
    }
    // If there are any positive coordinates, then load gmap
    if(lHasPositiveCoords)
    {
        lGmapIsLoaded = loadGMap(list, cGmapId);
    }
	if(list.length==1)
    {
		//markerClick(gmarkers[0]);
    }

    aContainerList[cGmapId]["loading_completed"]    = true;
    aContainerList[cGmapId]["map_is_visible"]       = lGmapIsLoaded;

    return lGmapIsLoaded
}

// Izveido markieri
function createLurMarker(list, i){
    var oBaseIcon = new GIcon();
        oBaseIcon.image="/map/img/green.gif";
        oBaseIcon.iconSize=new GSize(12,12);
        oBaseIcon.iconAnchor=new GPoint(5,7);    
    var mNew=null;
    
    
    var oIcon=new GIcon(G_DEFAULT_ICON);
    if(list[i].accepted)
        oIcon.image="http://www.google.com/mapfiles/marker_green.png";
    else if(list[i].error)
        oIcon.image="http://www.google.com/mapfiles/marker.png";
    else
        oIcon.image="http://www.google.com/mapfiles/marker_yellow.png";
    
    
    if(!isEditable){
        var opt={icon:oIcon,draggable:false,clickable:true};
    }else{
        var opt={icon:oIcon,draggable:true};
    }
    
    var Ppoint = new GLatLng(list[i].lat,list[i].long);
    var marker = new GMarker(Ppoint,opt);
    marker.selfinfo=new LurInfo();
    marker.selfinfo.content=list[i].title + list[i].custom_content + list[i].edit_link;
    marker.selfinfo.posLatLong=Ppoint;
    marker.selfinfo.initialize(map,marker);
    marker.Show=function(){
        mNew=new GMarker(this.selfinfo.posLatLong,{icon:oBaseIcon});
        this.selfinfo.parentMap.addOverlay(mNew);
        this.hide();
        this.selfinfo.Show();
    }
    marker.Hide=function(){
        this.selfinfo.parentMap.removeOverlay(mNew);
        this.selfinfo.Hide();
        this.show();
    }

    if(isEditable){
        GEvent.addListener(map, "click", function(overlay,point){
                marker.setPoint(point);
            })
    }
    
    list[i].lurid=mm.addMarker(marker,'address');
    
    gmarkers[i] = marker;
    
    return marker; 
}

function IsNumeric(sText)
{
   //var ValidChars = "0123456789.";
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;


    for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
    return IsNumber;
}


function loadGMap(list, cGmapId)
{
	if (GBrowserIsCompatible())
    {
		if(typeof(list)=="undefined"  || list.length<1) return false;
		/* resize mapi atkariiba no rezultaatu skaita */
        
		gMap=document.getElementById(cGmapId);
        
        // Set GMap container visible
        gMap.style.display = "block";
        
        map = new GMap2(gMap);
		//map.setZoom(10);
		//map.getCenterLatLng();
		
		
		map.clearOverlays();
		mm = new LurMarkerControl(map);
		
		
		//map.setCenter(new GLatLng(37.4419, -122.1419), 10);
		//map.setZoom(10);
		//map.zoomTo(10)


		oInfo=null;
	
//	    map.addControl(new GLargeMapControl());
	    map.addControl(new GSmallZoomControl());
	    map.addControl(new GMapTypeControl());
	    map.addControl(new GScaleControl(), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(5,15)));

		map.enableScrollWheelZoom();

		var maxLat, minLat, maxLong, minLong;
		minLat=minLong=180;
		
		
		maxLat=maxLong=0;
		for(var i=0;i<list.length;i++){
			if(list[i].lat == 0 || list[i].long == 0) continue;
			if(parseFloat(list[i].lat)<minLat)
				minLat=parseFloat(list[i].lat);
			if(parseFloat(list[i].lat)>maxLat)
				maxLat=parseFloat(list[i].lat);
			if(parseFloat(list[i].long)<minLong)
				minLong=parseFloat(list[i].long);
			if(parseFloat(list[i].long)>maxLong)
				maxLong=parseFloat(list[i].long);
		}
		var sw = new GLatLng(minLat, minLong);
        var ne = new GLatLng(maxLat, maxLong);
        

		var bounds = new GLatLngBounds(sw, ne);
        
        /*
        for(var i=0;i<list.length;i++){
			if(list[i].nomarker){
                continue;
            }
        */
        
        
        glevel  = map.getBoundsZoomLevel(bounds);

		
		gpoint =new GLatLng(0.5*minLat+0.5*maxLat, 0.5*minLong+0.5*maxLong);
       
/*       
       if(glevel > 15) glevel=11;
		if(list.length==1)
        {
    		for(var i=0;i<list.length;i++)
            {
            	//if(list[i].deepth < glevel)	glevel=list[i].deepth; else if(glevel<=15) glevel=13;
                if(list[i].is_city == 't0') glevel=11; else glevel=14;
            }
		}
*/       

        //alert(list.length);
        //alert(IsNumeric(list.length));
        //alert(list.length);
        //alert(list[0].long);
        //alert(list[0].lat);
        //alert(list[1]);
        var is_diferent_coord = false;
        var base_long = 0;
        var base_lat = 0;
        
        
		for(var i=0;i<list.length;i++)
        {
			if(list[i].nomarker) continue;
			createLurMarker(list, i);
            
            if(i==0)  {  base_long = list[i].long; base_lat = list[i].lat;   }
            if( (base_long != list[i].long) || (base_lat != list[i].lat)) is_diferent_coord = true;

		}
        
        if( (IsNumeric(list.length)==false || list.length==1) || is_diferent_coord==false)
        {
            for(var i=0;i<list.length;i++)
            {
                //alert(list[i].is_city);
                if(!list[i].is_city || list[i].is_city == 't0') glevel=12; else glevel=15;
            }
        }        
		map.setCenter(gpoint,glevel);
       
        addCopyright(gMap);
        return true;
	}

    return false;
}

function ChangeLurIcon(){
	if(mm.activeMarker>=0){
		CloseLurInfo();
	}
	this.hide();
	mm.activeMarker=this.lurid-1;
	mm.markers[mm.activeMarker].show();
	mm.markers[mm.activeMarker].selfinfo.Show();
}

function CloseLurInfo(){
	mm.markers[mm.activeMarker].selfinfo.Hide();
	mm.markers[mm.activeMarker].hide();
	mm.markers[mm.activeMarker+1].show();
	mm.activeMarker=(-1);
}

function LurLang(){
	var url=location.href.toLowerCase();
	var lang='lv';
	var lpos=0;
	if((lpos=url.lastIndexOf("&l=en"))!=-1 || (lpos=url.lastIndexOf("?l=en"))!=-1){
		lang='en';
	}
	if((newlpos=url.lastIndexOf("&l=ru"))>lpos || (newlpos=url.lastIndexOf("?l=ru"))>lpos){
		lang='ru';
		lpos=newlpos;
	}
	if((newlpos=url.lastIndexOf("&l=lt"))>lpos || (newlpos=url.lastIndexOf("?l=lt"))>lpos){
		lang='lt';
		lpos=newlpos;
	}
	if((newlpos=url.lastIndexOf("&l=lv"))>lpos){
		lang='lv';
	}
	return lang;
}

function editCoord(cGmapId, i)
{
    var list = aContainerList[cGmapId]["addresses"];

    if(typeof(list)=="undefined"  || list.length<1) return false;
    if(list[i]=="undefined") return false;
    
    var row = list[i];
    
    // Create Post form and submit
    var submitForm = getNewSubmitForm();
    //createNewFormElement(submitForm, "id", row.id);
    submitForm.action= cMapServerRoot+"/?cmd=edit&id="+row.id;
    submitForm.target= "_blank";
    submitForm.submit();
    return false;
}

//helper function to create the form
function getNewSubmitForm(){
 var submitForm = document.createElement("FORM");
 document.body.appendChild(submitForm);
 submitForm.method = "POST";
 return submitForm;
}

//helper function to add elements to the form
function createNewFormElement(inputForm, elementName, elementValue){
 var newElement = document.createElement("INPUT");
 newElement.setAttribute("type","hidden");
 newElement.setAttribute("name",elementName);
 newElement.setAttribute("value",elementValue);
 inputForm.appendChild(newElement);
 return newElement;
}


function wWidth(){
	if (self.innerHeight) {	// all except Explorer
		return self.innerWidth;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		return document.documentElement.clientWidth;
	} else if (document.body) { // other Explorers
		return document.body.clientWidth;
	}
}
function wHeight(){
	if (self.innerHeight) {	// all except Explorer
		return self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		return document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		return document.body.clientHeight;
	}
}
//**************************************************
function openLink(cLink){
	var width=wWidth();
	var height=wHeight();
	window.open(cLink ,'_blank','scrollbars=1,toolbar=1,location=1,menubar=1,resizable=1,width='+(width-100)+',height='+(height-100)+',top=50,left=50');
}
//]]>