﻿// Author      : Daniel Ng
// Organization: Corporation of Lambton County - IT/GIS department
// Last Updated: Tuesday October 23, 2008

// parameters: img src, left offset, top offset
var aryPW = new Array('../PublishingImages/r_plymptonwyoming.jpg',120,123);
var aryWW = new Array('../PublishingImages/r_warwick.jpg',172,125);
var arySC = new Array('../PublishingImages/r_stclair.jpg',64,198);
var aryEN = new Array('../PublishingImages/r_enniskillen.jpg',128,181);
var aryKS = new Array('../PublishingImages/r_kettlestonypoint.jpg',117,42);
var aryWI = new Array('../PublishingImages/r_walpoleisland.jpg',32,271);
var aryPE = new Array('../PublishingImages/r_ptedward.jpg',34,106);
var aryDE = new Array('../PublishingImages/r_dawneuphemia.jpg',138,232);
var aryAJ = new Array('../PublishingImages/r_aamjiwnaang.jpg',18,156);
var aryBA = new Array('../PublishingImages/r_brookealvinston.jpg',169,183);
var arySN = new Array('../PublishingImages/r_sarnia.jpg',73,136);
var aryLS = new Array('../PublishingImages/r_lambtonshores.jpg',173,69);
var aryPL = new Array('../PublishingImages/r_petrolia.jpg',86,168);
var aryOS = new Array('../PublishingImages/r_oilsprings.jpg',101,221);

// additional left offset for the image map. Only apply if viewed with Microsoft Internet Explorer
var addOffet = 6;

// Preload images to speed up rendering
if (document.images) 
{
   img1 = new Image();
   img2 = new Image();
   img3 = new Image();
   img4 = new Image();
   img5 = new Image();
   img6 = new Image();
   img7 = new Image();
   img8 = new Image();
   img9 = new Image();
   img10 = new Image();
   img11 = new Image();
   img12 = new Image();
   img13 = new Image();
   img14 = new Image();
   img1.src = "../PublishingImages/r_plymptonwyoming.jpg";
   img2.src = "../PublishingImages/r_warwick.jpg";
   img3.src = "../PublishingImages/r_stclair.jpg";
   img4.src = "../PublishingImages/r_enniskillen.jpg"   
   img5.src = "../PublishingImages/r_kettlestonypoint.jpg";
   img6.src = "../PublishingImages/r_walpoleisland.jpg"   
   img7.src = "../PublishingImages/r_ptedward.jpg";
   img8.src = "../PublishingImages/r_dawneuphemia.jpg"   
   img9.src = "../PublishingImages/r_aamjiwnaang.jpg";
   img10.src = "../PublishingImages/r_brookealvinston.jpg"   
   img11.src = "../PublishingImages/r_sarnia.jpg";
   img12.src = "../PublishingImages/r_lambtonshores.jpg"   
   img13.src = "../PublishingImages/r_petrolia.jpg";
   img14.src = "../PublishingImages/r_oilsprings.jpg"   
}

// Function to display region info and highlighted image ontop of the imagemap when an imagemap region is clicked
function displayRegionInfo(event,el){
    try
    {
        // Copy content of one hidden element into another visible element
        var sourceEl = document.getElementById(el);
        var displayEl = document.getElementById('div-map-infodisplayarea');
        if (sourceEl&&displayEl){
            displayEl.innerHTML = sourceEl.innerHTML;
            var countymap = document.getElementById('map-lambtoncounty');
            var regionmap = document.getElementById('div-highlight-map-region');
            var imgEl = document.getElementById('img-highlight-map-region');
            if (countymap&&regionmap&&imgEl){
                var settings = getMapSettings(el);
                if (settings) {
                    imgEl.src = settings[0];
                    var obj = findElementPosition(countymap)
                    var aLeft = obj[0];
                    var aTop = obj[1]
                    if(navigator.appName=='Microsoft Internet Explorer'){
                        regionmap.style.left = (addOffet + aLeft + settings[1]) + 'px';
                    }else{
                        regionmap.style.left = (aLeft + settings[1]) + 'px';
                    };
                    regionmap.style.top = (aTop + settings[2]) + 'px';
                };
                regionmap.style.display = 'block';
            }
        };
    } catch(err)
    {};
}

function highlightMap(s){
    var countymap = document.getElementById('map-lambtoncounty');
    var regionmap = document.getElementById('div-highlight-map-region');
    var imgEl = document.getElementById('img-highlight-map-region');
    var settings = getMapSettings(s);
    if (countymap&&regionmap&&imgEl&&settings) {
        imgEl.src = settings[0];
        var obj = findElementPosition(countymap)
        var aLeft = obj[0];
        var aTop = obj[1]
        if(navigator.appName=='Microsoft Internet Explorer'){
            regionmap.style.left = (addOffet + aLeft + settings[1]) + 'px';
        }else{
            regionmap.style.left = (aLeft + settings[1]) + 'px';
        };
        regionmap.style.top = (aTop + settings[2]) + 'px';
        regionmap.style.display = 'block';
    }
}

function resetMap(){
    var highlightmap = document.getElementById('div-highlight-map-region');
    if (highlightmap){highlightmap.style.display = 'none'}
}

// Function to retore the imagemap to original state
function mapRestore(el){
    try
    {
        var sourceEl = document.getElementById(el);
        var displayEl = document.getElementById('div-map-infodisplayarea');
        if (sourceEl&&displayEl){
            displayEl.innerHTML = sourceEl.innerHTML;
            var highlightmap = document.getElementById('div-highlight-map-region');
            if (highlightmap){highlightmap.style.display = 'none'}
        };
    } catch(err)
    {};
}

function getMapSettings(code){
    switch(code)
        {
            case 'aboutPlymptonWyoming': return aryPW;
            case 'aboutWarwick': return aryWW;
            case 'aboutStClair': return arySC;
            case 'aboutSarnia': return arySN;
            case 'aboutPtEdward': return aryPE;
            case 'aboutWalpole': return aryWI;
            case 'aboutEnniskillen': return aryEN;
            case 'aboutPetrolia': return aryPL;
            case 'aboutOilSprings': return aryOS;
            case 'aboutDawnEuphemia': return aryDE;
            case 'aboutLambtonShores': return aryLS;
            case 'aboutBrookeAlvinston': return aryBA;
            case 'aboutAamjiwnaang': return aryAJ;
            case 'aboutKettleStony': return aryKS;        
            default: return null;
        };
}

// Function to find any HTML element on a page. Returns Left and Top position.
function findElementPosition(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}