﻿function ShowPostCodeLookup() {
    window.open("http://www.nzpost.co.nz/Cultures/en-NZ/OnlineTools/PostCodeFinder/", "PostcodeFinder", "resizable=1,width=700,height=600", "");
    return false;
}

function centerUpdatePanel() {
    if (loadingImage == null) setupAjax();
    AjaxNS.DisplayedLoadingPanels = [];
    centerElementOnScreen(loadingImage);
}

function centerElementOnScreen(element) {
    if (loadingImage == null) setupAjax();
    var scrollTop = document.body.scrollTop;
    var scrollLeft = document.body.scrollLeft;
    var viewPortHeight = document.body.clientHeight;
    var viewPortWidth = document.body.clientWidth;

    if (document.compatMode == "CSS1Compat") {
        viewPortHeight = document.documentElement.clientHeight;
        viewPortWidth = document.documentElement.clientWidth;
        scrollTop = document.documentElement.scrollTop;
        scrollLeft = document.documentElement.scrollLeft;
    }
    var topOffset = Math.ceil(viewPortHeight / 2 - element.offsetHeight / 2);
    var leftOffset = Math.ceil(viewPortWidth / 2 - element.offsetWidth / 2);

    var top = scrollTop + topOffset;
    var left = scrollLeft + leftOffset;

    element.style.top = top + "px";
    element.style.left = left + "px";
}


function DisableControls() {
    if (loadingImage == null) setupAjax();
    loadingImage.style.display = 'block';

    for (var i = 0; i < document.forms[0].elements.length; i++) {
        var obj = document.forms[0].elements[i];
        obj.disabled = true;
    }
}

function EnableControls() {
    if (loadingImage == null) setupAjax();
    loadingImage.style.display = 'none';
    for (var i = 0; i < document.forms[0].elements.length; i++) {
        var obj = document.forms[0].elements[i];
        obj.disabled = false;
    }
}

function acceptNumericOnly() {
    var numeric = false;

    var keycode = window.event.keyCode;

    if (keycode >= 48 && keycode <= 57)
        numeric = true;
    else
        if (keycode == 8)
        numeric = true;

    return numeric;
}

function findTrainingCenter(postCode) 
{
    var count = 0;
    var traingCenters = new Array();
    traingCenters[count++] = new Array("Whangarei",  0110);
    traingCenters[count++] = new Array("Auckland", 	0600);
    traingCenters[count++] = new Array("Tauranga", 	3110);
    traingCenters[count++] = new Array("Hamilton", 	3200);
    traingCenters[count++] = new Array("Taupo", 	3330);    
    traingCenters[count++] = new Array("Hamilton", 	3400);
    traingCenters[count++] = new Array("Hamilton", 	3999);
    traingCenters[count++] = new Array("Gisborne", 	4010);
    traingCenters[count++] = new Array("Napier/Hastings", 4104);
    traingCenters[count++] = new Array("Napier/Hastings", 4120);
    traingCenters[count++] = new Array("New Plymouth", 	4310);
    traingCenters[count++] = new Array("Palmerston North", 	4410);
    traingCenters[count++] = new Array("Wanganui", 	4500);
    traingCenters[count++] = new Array("Wellington", 5016);
    traingCenters[count++] = new Array("Wellington", 6011);
    traingCenters[count++] = new Array("Nelson", 	7010);
    traingCenters[count++] = new Array("Christchurch", 7671);
    traingCenters[count++] = new Array("Timaru", 	7910);
    traingCenters[count++] = new Array("Alexandra", 	9320);
    traingCenters[count++] = new Array("Invercargill", 	9810);

    if (postCode == "")
        return "";

    var lessThan = -1;
    var greaterThan = -1;
    var matchIndex = -1;
    
    for (var i = 0; i < count; i++) {
        if (postCode == traingCenters[i][1]) {
            matchIndex = i;
            break;
        }
        else {
            if (postCode > traingCenters[i][1])
                lessThan = i;
            else {
                greaterThan = i;
                break;
            }
        }
    }
    
    var r = 0;
    if (matchIndex > -1)
        r = traingCenters[matchIndex][0];
    else {
        if ((postCode - traingCenters[lessThan][1]) < (traingCenters[greaterThan][1] - postCode))
            r = traingCenters[lessThan][0];
        else
            r = traingCenters[greaterThan][0];
    }
    
    return r;
       
}
