var mapLayers = new Array();
var mapLayersObj = new Object();
function findPosX(obj){
    var curleft = 0;
    if (obj.offsetParent){
         while (obj.offsetParent){
              curleft += obj.offsetLeft
              obj = obj.offsetParent;
         }
    }
    else if (obj.x)
         curleft += obj.x;
    return curleft;
}

function findPosY(obj){
    var curtop = 0;
    if (obj.offsetParent){
         while (obj.offsetParent){
              curtop += obj.offsetTop
              obj = obj.offsetParent;
         }
    }
    else if (obj.y)
         curtop += obj.y;
    return curtop;
}

function getCoord(e,img) {
	var x = e.layerX || e.offsetX ;
	var y = e.layerY || e.offsetY ;
	var imgx = findPosX(img)
	var imgy = findPosY(img)
	window.status = "x = "+x+" , y = "+y+"; imgx = "+imgx+"; imgy = "+imgy
}

function setCoord(e,img) {
	var x = e.layerX || e.offsetX ;
	var y = e.layerY || e.offsetY ;
	document.comregForm.x.value= x;
	document.comregForm.y.value= y;
}


var selectedImg = null; 
var preSelectedIcon = '';

function selectIcon(img, newIcon){
	resetIcon();
	selectedImg = img;
	preSelectedIcon = img.src;
	img.src = newIcon;	
}

function resetIcon(){
	if(selectedImg!=null){
		selectedImg.src = preSelectedIcon;
	}
}

function mapClick(e,img){
	setCoord(e,img);
    document.comregForm.control.value = '';
    if (document.comregForm.tool[0].checked){//pan
	    document.comregForm.action.value = 'mapClick';
        document.comregForm.submit();
    } 
    else if (document.comregForm.tool[1].checked){//zoomin
	    document.comregForm.action.value = 'mapClick';
        document.comregForm.submit();	
    }
    else if (document.comregForm.tool[2].checked){//zoomout
	    document.comregForm.action.value = 'mapClick';
	    document.comregForm.submit();
    }
    else { alert('Please choose from the radio buttons below');}
}

function zoomIn(){
	document.comregForm.action.value = 'mapClick';
    document.comregForm.dir.value='in';
    document.comregForm.control.value='zoomMap';
   	document.comregForm.submit();
}

function zoomOut(){
	document.comregForm.action.value = 'mapClick';
    document.comregForm.dir.value='out';
    document.comregForm.control.value='zoomMap';
   	document.comregForm.submit();
}

function panMap( dir ){
	document.comregForm.action.value = 'mapClick';
    document.comregForm.dir.value=dir;
    document.comregForm.control.value='panMap';
    document.comregForm.submit();
}

function centerMap(xcoord, ycoord){
	document.comregForm.x.value= xcoord;
	document.comregForm.y.value= ycoord;
	document.comregForm.control.value = 'centerMap';
    document.comregForm.action.value = 'mapClick';
    document.comregForm.selectedLocation.value = '';
    document.comregForm.submit();
}

function viewMap(xcoord, ycoord){
	document.comregForm.x.value= xcoord;
	document.comregForm.y.value= ycoord;
	document.comregForm.control.value = 'viewMap';
    document.comregForm.action.value = 'mapClick';
    document.comregForm.selectedLocation.value = '';
   	document.comregForm.submit();
}

function viewSite(xcoord, ycoord, displayType){
	document.comregForm.x.value= xcoord;
	document.comregForm.y.value= ycoord;
	document.comregForm.control.value = 'viewMap';
    document.comregForm.action.value = 'mapClick';
    document.comregForm.site.value ='true';
	document.comregForm.selectedLocation.value = xcoord+','+ycoord+','+displayType;
    document.comregForm.submit();
}

function centerSite(xcoord, ycoord, displayType){
	document.comregForm.x.value= xcoord;
	document.comregForm.y.value= ycoord;
	document.comregForm.control.value = 'centerMap';
    document.comregForm.action.value = 'mapClick';
    document.comregForm.site.value ='true';
	document.comregForm.selectedLocation.value = xcoord+','+ycoord+','+displayType;
    document.comregForm.submit();
}

function centerReport(reportId, xcoord, ycoord){
	document.comregForm.x.value= xcoord;
	document.comregForm.y.value= ycoord;
	document.comregForm.control.value = 'centerMap';
    document.comregForm.action.value = 'mapClick';
	document.comregForm.selectedReport.value = reportId;
	document.comregForm.submit();
}

function toggleLayer(layerName, type, checkStatus){	
    var visibility='';
    if(checkStatus)
        visibility='visible';
    else 
        visibility='hidden';        

    for (var l=0;l< mapLayers.length;l++){
	    if (mapLayers[l] == layerName){
	    	var layer = eval(mapLayers[l]+'Layer'); 
	    	for(var i=0; i< layer.length;i++) { 
	    		if((type==null)||(layer[i].type == type)){

		   	    	eval("document.getElementById('"+layer[i].name + "').style.visibility ='" + visibility + "'");
		   	    }
	   	    }
	   	}            
	}
}           

function getZIndex(layerType){
	if(layerType == 'PENDING')
		return 4000;
	else if(layerType == 'OPERATOR')
		return 3000;
	else 
		return 2000;
}

function addressSearch(){
	document.comregForm.action.value='addressSearch';
	document.comregForm.submit();
}

function mapLocation(index){
	document.comregForm.action.value='mapLocation';
	document.comregForm.locationIndex.value = index;
	document.comregForm.submit();
}

function siteSearch(){
	document.comregForm.action.value='searchSite';
	document.comregForm.submit()
}
var selectedOperator ='';
function showLocation(locId, img, newIcon){
	selectedOperator ='';
	if(img!=null && newIcon !=null)
		selectIcon(img, newIcon);
	document.comregForm.selectedLocation.value = locId;
	document.getElementById('addressResults').style.display= 'none';
	document.getElementById('locationResults').style.display= 'inline';		
	for (var h=0;h< mapLayers.length;h++){	
		if (mapLayers[h].search('SITES') != -1){
			var layer = eval(mapLayers[h]+'Layer'); 		             	         	
			for(var i=0; i< layer.length;i++) {			
				if(layer[i].locationId == locId){
					var text='';					
					document.getElementById('locations').innerHTML = text;
					for(var j=0; j< layer[i].length;j++) {
						text+= '<span class=boldtext>ID: </span>'+layer[i][j].operatorRef+'<br>';
						text+= '<span class="boldtext">XCoord:  </span>'+layer[i][j].geocodedX+'<br>';
						text+= '<span class=boldtext>YCoord:  </span>'+layer[i][j].geocodedY+'<br>';
						text+= '<span class=boldtext>Operator:  </span>'+layer[i][j].opName+'<br>';
						if(selectedOperator=='')selectedOperator=layer[i][j].opName;
						if(layer[i][j].displayType == 'PENDING'){
							text+= '<span class=boldtext>Modification: </span>'+layer[i][j].editType+'<br>';
							if(layer[i][j].gsm == 'true')
								text+= '<span class=boldtext>GSM: </span><img src="../images/yes.gif"/><br>';
							if(layer[i][j].threeG == 'true')
								text+= '<span class=boldtext>3G: </span><img src="../images/yes.gif"/><br>';
						}else{
							if(layer[i][j].gsm == 'true')
								text+= '<span class=boldtext>GSM: </span><img src="../images/yes.gif"/><br>';
							else
								text+= '<span class=boldtext>GSM: </span><img src="../images/no.gif"/><br>';
							if(layer[i][j].threeG == 'true')
								text+= '<span class=boldtext>3G: </span><img src="../images/yes.gif"/><br>';
							else
								text+= '<span class=boldtext>3G: </span><img src="../images/no.gif"/><br>';
						}
						text+= '<a class="linktext" href="javascript:centerSite(\''+layer[i][j].geocodedX+'\',\''+layer[i][j].geocodedY+'\',\''+layer[i][j].displayType+'\')">';
						text+= 'Centre Map >></a>';					
						text+='<br><br>';
					}
					document.getElementById('locations').innerHTML = text;	
					document.comregForm.searchResultsText.value = text;				
				}
			}   		
		}
	}	
}


function showNirReport(nirRepId, img, newIcon){
	if((img!=null) && (newIcon !=null))
		selectIcon(img, newIcon);
	document.comregForm.selectedReport.value = nirRepId;
	document.getElementById('addressResults').style.display= 'none';
	document.getElementById('locationResults').style.display= 'inline';		
	for (var h=0;h< mapLayers.length;h++){	
		if (mapLayers[h].search('NIRREPORTS') != -1){
			var layer = eval(mapLayers[h]+'Layer'); 		             	         	
			for(var i=0; i< layer.length;i++) {			
				if(layer[i].repId == nirRepId){
					var text='';
					document.getElementById('locations').innerHTML = text;
					text+= '<span class=boldtext>ID: </span>'+layer[i].repId+'<br>';
					text+= '<span class="boldtext">XCoord:  </span>'+layer[i].geocodedX+'<br>';
					text+= '<span class=boldtext>YCoord:  </span>'+layer[i].geocodedY+'<br>';
					text+= '<a class="linktext" href="javascript:viewReport(\''+layer[i].url+'\')" >View Report >></a><br>';
					text+= '<a class="linktext" href="javascript:centerReport(\''+layer[i].repId+'\', \''+layer[i].geocodedX+'\',\''+layer[i].geocodedY+'\')">';
					text+= 'Centre Map >></a><br>';					
					document.getElementById('locations').innerHTML = text;					
					document.comregForm.searchResultsText.value = text;
				}
			}   		
		}
	}
}

function viewReport(reportUrl){
	reportWin=window.open(reportUrl, 'NirReport', '');
	reportWin.focus();
}

function getComments(operatorRef){
	commentsWin=window.open('','Comments','dependent=yes,width=800,height=400,screenX=400,screenY=500,titlebar=no');
	commentsWin.focus();
	document.comregForm.action.value='viewComments';
	document.comregForm.operatorReference.value=operatorRef;
    document.comregForm.submit(); 
}


function getNewXMLHttpRequest() {
  var obj;
    try {
      // For Internet Explorer.
      obj = new ActiveXObject('Microsoft.XMLHTTP');
    }
    catch(e) {
      try {
        // Gecko-based browsers, Safari, and Opera.
        obj = new XMLHttpRequest();
      }
      catch (e) {
        // Browser supports Javascript but not XMLHttpRequest.
        obj = false;
      }
    }
    return obj;
}

function updatePoiCount(poiType, id){
	var req = getNewXMLHttpRequest();
	//security allows AJAX
	if(req){					
		var url= 'updatePoiCount.do';
		var parameters = 'poiType='+poiType+'&id='+id;	
		req.open("POST", url, true);	
		req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      	req.setRequestHeader("Content-length", parameters.length);
      	req.setRequestHeader("Connection", "close");		
		req.send(parameters);	
	}else{ 
	//Security not allowing AJAX so need to do a full page refresh
	//should only be happening in a very small number of cases
		document.comregForm.action.value='updatePoiCount';
		document.comregForm.selectedPoiType.value = poiType;
		document.comregForm.selectedPoiId.value = id;
		document.comregForm.submit();		
	}
}

function parentMap(xcoord, ycoord, displayType) {
	window.opener.viewSite(xcoord, ycoord, displayType)
}

function parentMapLayers(){	
	document.comregForm.action.value='mapLayers';   
	document.comregForm.submit();
}
function toggleSideNavSeg(who){
	if(who != ''){
		if (document.getElementById(who).style.display == 'block'){
	    	document.getElementById(who).style.display = 'none';
		} else {
	    	document.getElementById(who).style.display = 'block';
	  	}
	 }
}