﻿var map = null;
var geoRssLayer1 = null;
var geoRssLayer2 = null;
var geoRssLayer3 = null;
var geoRssLayer4 = null;
var geoRssLayer5 = null;
var geoRssLayer6 = null;
var geoRssLayer7 = null;
var geoRssLayer8 = null;
var geoRssLayer9 = null;
var xmlhttp = false;
var lat = 0;
var lon = 0;

function hideMap() {
    map.Dispose();
    document.getElementById("MapDiv").style.display = "none";
    document.getElementById("mapPostalCode").value = "";
    var pcRes = document.getElementById("pcResult");
    pcRes.innerHTML = "";
    pcRes.validity = 0;
}
function pcCheck() {
    //   alert("Hit it");
    var pcval = document.getElementById("mapPostalCode");
    var valstr = pcval.value;
    valstr = valstr.toUpperCase();
    valstr = valstr.replace(/-/, "");
    valstr = valstr.replace(/ /, "");
    pcval.value = valstr;
    var re = /^\s*[a-ceghj-npr-tvxy]\d[a-z](\s)?\d[a-z]\d\s*$/i
    var pcRes = document.getElementById("pcResult");
    if (pcval.value.length == 6) {
        if (re.test(pcval.value)) {
            pcRes.innerHTML = '<img alt="correct postal code" style="vertical-align:bottom; margin:0; padding:0;" src="/occ/images/correct.jpg" />';
            pcRes.validity = 1;
        }
        else {
            pcRes.innerHTML = "<img alt='incorrect postal code' style='vertical-align:bottom; margin:0; padding:0;' src='/occ/images/incorrect.jpg' />";
            pcRes.validity = 0;
        }
    }
    else {
        pcRes.innerHTML = "";
        pcRes.validity = 0;
    }

}
function CheckBoxClicked(cb, Layer) {
    if (cb.checked) {
        Layer.Show();
    }
    else {
        Layer.Hide();
    }
}
var http_request = false;
function makeRequest(url, parameters) {

    http_request = false;
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
        http_request.overrideMimeType('text/xml');
    }
    if (!http_request) {
        alert('Cannot create XMLHTTP instance');
        return false;
    }
    http_request.onreadystatechange = alertContents;
    http_request.open('GET', '/OCC/Map/ProxyFetch.aspx?' + parameters, true);
    http_request.send(null);
}
function alertContents() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {

            var xmldoc = http_request.responseXML;
            var root = xmldoc.getElementsByTagName('root').item(0);

            lat = xmldoc.getElementsByTagName('latt')[0].childNodes[0].nodeValue;
            lon = xmldoc.getElementsByTagName('longt')[0].childNodes[0].nodeValue;

            
            LoadMap();

        } else {
            alert(http_request.status + ' There was a problem with the request.');
        }
    }
}

function GetMapOnPageLoad() {
    makeRequest('', 'IPAddress=206.174.202.133');
}

function GetMap() {
    var pcRes = document.getElementById("pcResult");
    if (pcRes.validity == 1) {
        makeRequest('', 'postal=' + document.getElementById("mapPostalCode").value);
    }
    else {
        alert("Please enter a valid postal code");
    }
}

function LoadMap() {
    document.getElementById("MapDiv").style.display = "block";

    map = new VEMap('myMap');
    map.SetDashboardSize(VEDashboardSize.Tiny);
    //map.DisposeMap();


    var dis = document.getElementById("mapRadius");
    dis = dis.options[dis.selectedIndex].value;
    var zoom = 10;
    switch (dis){
        case "10":
            zoom = 11;
            break;
        case "25":
            zoom = 10;
            break;
        case "100":
            zoom = 8;
            break;
        case "250":
            zoom = 6;
            break;
    }

    if (lat == 0) {
        map.LoadMap(new VELatLong(52.562995039558004, -96.41601562500001), 4, 'r', false);
        document.getElementById("AskSearchText").style.visibility = "visible";
        document.getElementById("ccdisplays").style.display = "none";


    }
    else {
        document.getElementById("AskSearchText").style.visibility = "hidden";
        document.getElementById("ccdisplays").style.display = "block";
        
        map.LoadMap(new VELatLong(lat, lon), zoom, 'r', false);

        //OCC Processing
        geoRssLayer1 = new VEShapeLayer();
        var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/OCC/Map/DropOffLocations.aspx?Dis=" + dis + "&SearchType=PC&PostalCode=" + document.getElementById("mapPostalCode").value, geoRssLayer1);
        if (geoRssLayer1 != null) {
            map.ImportShapeLayerData(veLayerSpec, onFeedLoad1, false);
        }

        //Collection Centres
        geoRssLayer2 = new VEShapeLayer();
        var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/OCC/Map/DropOffLocations.aspx?Dis=" + dis + "&SearchType=CC&PostalCode=" + document.getElementById("mapPostalCode").value, geoRssLayer2);
        map.ImportShapeLayerData(veLayerSpec, onFeedLoad2, false); 
        

        //Greyhound
        geoRssLayer4 = new VEShapeLayer();
        var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/OCC/Map/DropOffLocations.aspx?Dis=" + dis + "&SearchType=GH&PostalCode=" + document.getElementById("mapPostalCode").value, geoRssLayer4);
        map.ImportShapeLayerData(veLayerSpec, onFeedLoad4, false);


        //Accadian
        geoRssLayer5 = new VEShapeLayer();
        var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/OCC/Map/DropOffLocations.aspx?Dis=" + dis + "&SearchType=AC&PostalCode=" + document.getElementById("mapPostalCode").value, geoRssLayer5);
        map.ImportShapeLayerData(veLayerSpec, onFeedLoad5, false);


        //Orleans
        geoRssLayer6 = new VEShapeLayer();
        var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/OCC/Map/DropOffLocations.aspx?Dis=" + dis + "&SearchType=OR&PostalCode=" + document.getElementById("mapPostalCode").value, geoRssLayer6);
        map.ImportShapeLayerData(veLayerSpec, onFeedLoad6, false);


        //STC
        geoRssLayer7 = new VEShapeLayer();
        var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/OCC/Map/DropOffLocations.aspx?Dis=" + dis + "&SearchType=ST&PostalCode=" + document.getElementById("mapPostalCode").value, geoRssLayer7);
        map.ImportShapeLayerData(veLayerSpec, onFeedLoad7, false);


        //DRL
        geoRssLayer8 = new VEShapeLayer();
        var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/OCC/Map/DropOffLocations.aspx?Dis=" + dis + "&SearchType=DR&PostalCode=" + document.getElementById("mapPostalCode").value, geoRssLayer8);
        map.ImportShapeLayerData(veLayerSpec, onFeedLoad8, false);

        //Northland
        geoRssLayer9 = new VEShapeLayer();
        var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/OCC/Map/DropOffLocations.aspx?Dis=" + dis + "&SearchType=NL&PostalCode=" + document.getElementById("mapPostalCode").value, geoRssLayer9);
        map.ImportShapeLayerData(veLayerSpec, onFeedLoad9, false);


        //Your Location
        var veShape = new VEShape(VEShapeType.Pushpin, new VELatLong(lat, lon));
        veShape.SetCustomIcon("<div style='background-image: url(/OCC/images/yourlocation2.png);font-size:0.7em;font-family:Arial;color:#000000;background-repeat:no-repeat;width:90px;text-align:center;padding-top:7px;background-position:center;'/><b><br><div style='font-size:0.8em;'>" + document.getElementById("mapPostalCode").value + "<br> Your Location</div></div>");
        map.AddShape(veShape);
    }
    

    

    document.getElementById("maplinks").href = "/OCC/Map/DropOffLocations.aspx?Dis=" + dis + "&SearchType=ALL&PostalCode=" + document.getElementById("mapPostalCode").value;

}
function onFeedLoad1(layer) {
        var numShapes = layer.GetShapeCount();
        for (var i = 0; i < numShapes; ++i) {
            var s = layer.GetShapeByIndex(i);
            s.SetCustomIcon("/OCC/images/map_icons/occ_processing.png");
        }
        document.getElementById("Checkbox1").checked = true;
}
function onFeedLoad2(layer) {
    var numShapes = layer.GetShapeCount();
    for (var i = 0; i < numShapes; ++i) {
        var s = layer.GetShapeByIndex(i);
        s.SetCustomIcon("/OCC/images/map_icons/collection.png");
    }
    document.getElementById("Checkbox2").checked = true;
}
//function onFeedLoad3(layer) {
//    var numShapes = layer.GetShapeCount();
//    for (var i = 0; i < numShapes; ++i) {
//        var s = layer.GetShapeByIndex(i);
//        s.SetCustomIcon("/OCC/images/map_icons/safeway.png");
//    }
//    document.getElementById("Checkbox3").checked = true;
//}
function onFeedLoad4(layer) {
    var numShapes = layer.GetShapeCount();
    for (var i = 0; i < numShapes; ++i) {
        var s = layer.GetShapeByIndex(i);
        s.SetCustomIcon("/OCC/images/map_icons/greyhound.png");
    }
    document.getElementById("Checkbox4").checked = true;
}
function onFeedLoad5(layer) {
    var numShapes = layer.GetShapeCount();
    for (var i = 0; i < numShapes; ++i) {
        var s = layer.GetShapeByIndex(i);
        s.SetCustomIcon("/OCC/images/map_icons/accadian.png");
    }
    document.getElementById("Checkbox5").checked = true;
}
function onFeedLoad6(layer) {
    var numShapes = layer.GetShapeCount();
    for (var i = 0; i < numShapes; ++i) {
        var s = layer.GetShapeByIndex(i);
        s.SetCustomIcon("/OCC/images/map_icons/orleans.png");
    }
    document.getElementById("Checkbox6").checked = true;
}
function onFeedLoad7(layer) {
    var numShapes = layer.GetShapeCount();
    for (var i = 0; i < numShapes; ++i) {
        var s = layer.GetShapeByIndex(i);
        s.SetCustomIcon("/OCC/images/map_icons/stc.png");
    }
    document.getElementById("Checkbox7").checked = true;
}
function onFeedLoad8(layer) {
    var numShapes = layer.GetShapeCount();
    for (var i = 0; i < numShapes; ++i) {
        var s = layer.GetShapeByIndex(i);
        s.SetCustomIcon("/OCC/images/map_icons/drl.png");
    }
    document.getElementById("Checkbox8").checked = true;
}
function onFeedLoad9(layer) {
        var numShapes = layer.GetShapeCount();
        for (var i = 0; i < numShapes; ++i) {
            var s = layer.GetShapeByIndex(i);
            s.SetCustomIcon("/OCC/images/map_icons/northland.png");
        }
        document.getElementById("Checkbox9").checked = true;
}