// adding this bit to integrate eLabels into paradigm
//    
// These common configuration values are shared across all maps. Reset values in company specific maps if required.
	// reset on a pre project bases in the xxx.js file
var mapHorizontal = 900;
var mapInitialZoom = 12;
var mapVertical = 700;
var _pad = '&nbsp;&nbsp;';
var map;
var id;
var mapCenterLat = 0;
var mapCenterLng = 0;


var mIdx = 0;  // arrays latitude, longitude, descrptionProject, symbol and company are indexed by mIdx
var projectCenter ;
var latitude = new Array();
var longitude = new Array();
var descriptionProject = new Array();
var companyName = new Array();
var companySymbol = new Array();
var mapLabel = new Array();  // upper case, no exchange extension
var companyProductionStatus = new Array(); // set to * if company has current metal production
var projectName = new Array();
var projectLabel = new Array(); // the label for this project on maps
var goldMORE = new Array();
var silverMORE = new Array();
var production = new Array();
var companyRL = new Array();
var prjNm = new Array();
var zoomMap = new Array(); // the project level map
var zoomOutMap = new Array();  // typically the country level map
var projectMap = new Array();  // a link to the project map 
var projectDetails = new Array();  // a link to the company details page
var projectMarkers = new Array();
var descriptionProjectCountryLevel = new Array();  // Store a complete info window for project at the country or company level map
var descriptionProjectProjectLevel = new Array();  // Store a complete info window for project in a map zoomed to the project level
var markers;

// country specific maps -- note the format for country level map a tags

var argentinaMap = 
'<a href="http://www.goldminerpulse.com/maps/argentinaMap.php"><em> Zoom Out </em></a></span>';

var australiaMap = 
'<a href="http://www.goldminerpulse.com/maps/australiaMap.php"><em> Zoom Out </em></a></span>';

var boliviaMap = 
'<a href="http://www.goldminerpulse.com/maps/boliviaMap.php"><em> Zoom Out </em></a></span>';


var canadaMap = 
'<a href="http://www.goldminerpulse.com/maps/canadaMap.php"><em> Zoom Out </em></a></span>';


var chileMap = 
'<a href="http://www.goldminerpulse.com/maps/chileMap.php"><em> Zoom Out </em></a></span>';

var chinaMap = 
'<a href="http://www.goldminerpulse.com/maps/chinaMap.php"><em> Zoom Out </em></a></span>';

var congoMap = 
'<a href="http://www.goldminerpulse.com/maps/congoMap.php"><em> Zoom Out </em></a></span>';

var dominicanRepublicMap = 
'<a href="http://www.goldminerpulse.com/maps/dominicanRepublicMap.php"><em> Zoom Out </em></a></span>';

var elSalvadorMap = 
'<a href="http://www.goldminerpulse.com/maps/elSalvadorMap.php"><em> Zoom Out </em></a></span>';


var finlandMap = 
'<a href="http://www.goldminerpulse.com/maps/finlandMap.php"><em> Zoom Out </em></a></span>';

var greeceMap = 
'<a href="http://www.goldminerpulse.com/maps/greeceMap.php"><em> Zoom Out </em></a></span>';

var guatemalaMap = 
'<a href="http://www.goldminerpulse.com/maps/guatemalaMap.php"><em> Zoom Out </em></a></span>';

var hondurasMap = 
'<a href="http://www.goldminerpulse.com/maps/hondurasMap.php"><em> Zoom Out </em></a></span>';

var mexicoMap = 
'<a href="http://www.goldminerpulse.com/maps/mexicoMap.php"><em> Zoom Out </em></a></span>';

var naMap = 
'<a href="http://www.goldminerpulse.com/maps/naMap.php"><em> Zoom Out </em></a></span>';

var namibiaMap = 
'<a href="http://www.goldminerpulse.com/maps/namibiaMap.php"><em> Zoom Out </em></a></span>';

var nicaraguaMap = 
'<a href="http://www.goldminerpulse.com/maps/nicaraguaMap.php"><em> Zoom Out </em></a></span>';

var peruMap = 
'<a href="http://www.goldminerpulse.com/maps/peruMap.php"><em> Zoom Out </em></a></span>';

var philippinesMap = 
'<a href="http://www.goldminerpulse.com/maps/philippinesMap.php"><em> Zoom Out </em></a></span>';

var portugalMap = 
'<a href="http://www.goldminerpulse.com/maps/portugalMap.php"><em> Zoom Out </em></a></span>';

var russiaMap = 
'<a href="http://www.goldminerpulse.com/maps/russiaMap.php"><em> Zoom Out </em></a></span>';

var turkeyMap = 
'<a href="http://www.goldminerpulse.com/maps/turkeyMap.php"><em> Zoom Out </em></a></span>';


var usaMap = 
'<a href="http://www.goldminerpulse.com/maps/unitedStatesMap.php"><em> Zoom Out </em></a></span>';


var helpMap = 
'<a href="http://www.goldminerpulse.com/faq.php#mapDialog"><em> faq </em></a>';

	
function addMarker( latitude, longitude, description, mapLabel ) {
	var aProjectMarker = new GMarker( new GLatLng(latitude, longitude) );
	var aProjectCenter = new GLatLng(latitude, longitude);
	var aProjectLabel = new ELabel(aProjectCenter, mapLabel, "eL1");
	GEvent.addListener(aProjectMarker, 'click',
				function() {
				aProjectMarker.openInfoWindowHtml(description);
				}
		);
	map.addOverlay(aProjectMarker);
	map.addOverlay(aProjectLabel);
}

function readXMLCenter( ) {
	var id = 0;
	if( markers[id].getAttribute("zoom") ) {
		mapInitialZoom = markers[id].getAttribute("zoom");
			// lat and lng are always present
		mapCenterLat = markers[id].getAttribute("lat");
		mapCenterLng = markers[id].getAttribute("lng");
		if( markers[id].getAttribute("vert") ) {
			mapVertical = markers[id].getAttribute("vert");
		}
		if( markers[id].getAttribute("hor") ) {
			mapHorizontal = markers[id].getAttribute("hor");
		}
	}

}


	// try read each xml element and store if value exists
function readXML( id ) {
	longitude[id] = markers[id].getAttribute("lng");
	latitude[id] = markers[id].getAttribute("lat");
	 
	//if( markers[id].getAttribute("zoMap") ) {
	//	zoomOutMap[id] = markers[id].getAttribute("zoMap");
	//}
	
	if( markers[id].getAttribute("company") ) {
		 companyName[id] = markers[id].getAttribute("company");
	}

 	if( markers[id].getAttribute("sym") ) {
		 companySymbol[id] = markers[id].getAttribute("sym");
	}
	if( markers[id].getAttribute("mLbl") ) {
		 mapLabel[id] = markers[id].getAttribute("mLbl");
	}
	if( markers[id].getAttribute("prjct") ) {
		 projectName[id] = markers[id].getAttribute("prjct");
	}
	if( markers[id].getAttribute("auM") ) {
		 goldMORE[id] = markers[id].getAttribute("auM");
	}
	if( markers[id].getAttribute("agM") ) {
		 silverMORE[id] = markers[id].getAttribute("agM");
	}
	if( markers[id].getAttribute("rLvrg") ) {
		 companyRL[id] = markers[id].getAttribute("rLvrg");
	}
	if( markers[id].getAttribute("pStat") ) {
			mapLabel[id] = mapLabel[id] + '*';
	}
	if( markers[id].getAttribute("pStrg") ) {
			production[id] = markers[id].getAttribute("pStrg");
	}
	if( markers[id].getAttribute("prjNm") ) {
		 prjNm[id] = markers[id].getAttribute("prjNm");
	}
	else{ prjNm[id] = '';}
	

}


function buildDescription( mIdx, mTarget ) {
				// mTarget == map name  (target zoom out map as stored in ./maps without extension
				// mTarget == integer (zoom in to project specific map)
	var x = companySymbol[mIdx];
	var coSymLC = x.toLowerCase();
	
	descriptionProject[mIdx] =  // this definition is assembled from data above.
         '<table><tr><td bgcolor="#FFDF00" class="cellBold">' +
        companyName[ mIdx ] + '<br />' +  ' - ' +
         projectName[ mIdx ] + _pad +
         ' NI 43-101:</td></tr><tr><td class="text">';
	if( goldMORE[mIdx] ) {
   		descriptionProject[mIdx] += _pad + 'MORE gold ' + goldMORE[mIdx] +  '<br />';
	}
	if( silverMORE[mIdx] ) {
   		descriptionProject[mIdx] += _pad + 'MORE silver ' + silverMORE[mIdx] + '<br />';
	}
	if( ! goldMORE[mIdx] && ! silverMORE[mIdx] ) {
   		descriptionProject[mIdx] += '<br />';
	}
	descriptionProject[mIdx] +=  '</td></tr>';

   		// Summary level mixed in
	descriptionProject[mIdx] +=  
   		'<tr><td bgcolor="#FFDF00" class="cellBold">' +
         companySymbol[mIdx] +  _pad +
         ' Summary:</td></tr><tr><td class="text">';
   		//mix in the Resource Leverage
	if( companyRL[mIdx] ) {
   		descriptionProject[mIdx] += _pad + 'Resource Leverage ' + companyRL[mIdx] + '<br />';
	}
   		//mix in the Production
   	
	if( production[mIdx] ) {
   		descriptionProject[mIdx] += _pad +  production[mIdx];
	}

	descriptionProject[mIdx] +=  '</td></tr>';
  		 //build a descriptionProjectCountryLevel version
	descriptionProject[mIdx] = descriptionProject[mIdx] +
         '<tr><td bgcolor="#FFFFAA" class="cellBold">' +
         '<a href="http://www.goldminerpulse.com/c/' + coSymLC + '.php"><em>Metal Valuation Report </em></a>'  ;
   
    
 
}


// ELabel.js  -- unmodified
//
//   This Javascript is provided by Mike Williams
//   Blackpool Community Church Javascript Team
//   http://www.commchurch.freeserve.co.uk/   
//   http://econym.googlepages.com/index.htm
//
//   This work is licenced under a Creative Commons Licence
//   http://creativecommons.org/licenses/by/2.0/uk/
//
// Version 0.2      the .copy() parameters were wrong
// version 1.0      added .show() .hide() .setContents() .setPoint() .setOpacity() .overlap
// version 1.1      Works with GMarkerManager in v2.67, v2.68, v2.69, v2.70 and v2.71
// version 1.2      Works with GMarkerManager in v2.72, v2.73, v2.74 and v2.75
// version 1.3      add .isHidden()
// version 1.4      permit .hide and .show to be used before addOverlay()
// version 1.5      fix positioning bug while label is hidden
// version 1.6      added .supportsHide()
// version 1.7      fix .supportsHide()


      function ELabel(point, html, classname, pixelOffset, percentOpacity, overlap) {
        // Mandatory parameters
        this.point = point;
        this.html = html;
        
        // Optional parameters
        this.classname = classname||"";
        this.pixelOffset = pixelOffset||new GSize(0,0);
        if (percentOpacity) {
          if(percentOpacity<0){percentOpacity=0;}
          if(percentOpacity>100){percentOpacity=100;}
        }        
        this.percentOpacity = percentOpacity;
        this.overlap=overlap||false;
        this.hidden = false;
      } 
      
      ELabel.prototype = new GOverlay();

      ELabel.prototype.initialize = function(map) {
        var div = document.createElement("div");
        div.style.position = "absolute";
        div.innerHTML = '<div class="' + this.classname + '">' + this.html + '</div>' ;
        map.getPane(G_MAP_FLOAT_SHADOW_PANE).appendChild(div);
        this.map_ = map;
        this.div_ = div;
        if (this.percentOpacity) {        
          if(typeof(div.style.filter)=='string'){div.style.filter='alpha(opacity:'+this.percentOpacity+')';}
          if(typeof(div.style.KHTMLOpacity)=='string'){div.style.KHTMLOpacity=this.percentOpacity/100;}
          if(typeof(div.style.MozOpacity)=='string'){div.style.MozOpacity=this.percentOpacity/100;}
          if(typeof(div.style.opacity)=='string'){div.style.opacity=this.percentOpacity/100;}
        }
        if (this.overlap) {
          var z = GOverlay.getZIndex(this.point.lat());
          this.div_.style.zIndex = z;
        }
        if (this.hidden) {
          this.hide();
        }
      }

      ELabel.prototype.remove = function() {
        this.div_.parentNode.removeChild(this.div_);
      }

      ELabel.prototype.copy = function() {
        return new ELabel(this.point, this.html, this.classname, this.pixelOffset, this.percentOpacity, this.overlap);
      }

      ELabel.prototype.redraw = function(force) {
        var p = this.map_.fromLatLngToDivPixel(this.point);
        var h = parseInt(this.div_.clientHeight);
        this.div_.style.left = (p.x + this.pixelOffset.width) + "px";
        this.div_.style.top = (p.y +this.pixelOffset.height - h) + "px";
      }

      ELabel.prototype.show = function() {
        if (this.div_) {
          this.div_.style.display="";
          this.redraw();
        }
        this.hidden = false;
      }
      
      ELabel.prototype.hide = function() {
        if (this.div_) {
          this.div_.style.display="none";
        }
        this.hidden = true;
      }
      
      ELabel.prototype.isHidden = function() {
        return this.hidden;
      }
      
      ELabel.prototype.supportsHide = function() {
        return true;
      }

      ELabel.prototype.setContents = function(html) {
        this.html = html;
        this.div_.innerHTML = '<div class="' + this.classname + '">' + this.html + '</div>' ;
        this.redraw(true);
      }
      
      ELabel.prototype.setPoint = function(point) {
        this.point = point;
        if (this.overlap) {
          var z = GOverlay.getZIndex(this.point.lat());
          this.div_.style.zIndex = z;
        }
        this.redraw(true);
      }
      
      ELabel.prototype.setOpacity = function(percentOpacity) {
        if (percentOpacity) {
          if(percentOpacity<0){percentOpacity=0;}
          if(percentOpacity>100){percentOpacity=100;}
        }        
        this.percentOpacity = percentOpacity;
        if (this.percentOpacity) {        
          if(typeof(this.div_.style.filter)=='string'){this.div_.style.filter='alpha(opacity:'+this.percentOpacity+')';}
          if(typeof(this.div_.style.KHTMLOpacity)=='string'){this.div_.style.KHTMLOpacity=this.percentOpacity/100;}
          if(typeof(this.div_.style.MozOpacity)=='string'){this.div_.style.MozOpacity=this.percentOpacity/100;}
          if(typeof(this.div_.style.opacity)=='string'){this.div_.style.opacity=this.percentOpacity/100;}
        }
      }

      ELabel.prototype.getPoint = function() {
        return this.point;
      }
      ELabel.prototype.U = function() {
        return this.point;
      }
      ELabel.prototype.V = function() {
        return this.point;
      }
      ELabel.prototype.W = function() {
        return this.point;
      }
      ELabel.prototype.X = function() {
        return this.point;
      }
      ELabel.prototype.Y = function() {
        return this.point;
      }
      ELabel.prototype.Z = function() {
        return this.point;
      }

