﻿/*

AUTHOR:     Jonathan Bourke (jb)
CREATED:    3/07/08

*/
var _map = null; // global variable to hold map instance
var DEFAULT_SUBURB_POSTCODE_TEXT = "Please enter either a suburb or postcode.";
var DEFAULT_MULTIPLE_TEXT = "Multiple results found. Please select the best match from the list and click search.";
var DEFAULT_NO_ADDRESS_FOUND_TEXT = "Sorry, we are unable to find a listing that matches your search. Please refine your search and try again. Or, contact us:Service Customer Care: 1300 651 808 Sales Enquiries: 02 9684 7777";

function hideDropdown() {
    document.getElementById('ddlProductType').style.display = 'none';
    // document.getElementById('ddlSelectedSubCategories').style.display = 'none'; 
}

function LoadDefaultText() {
    if (document.getElementById('txtSuburb').value.length < 1) {
        document.getElementById('lblError').value = DEFAULT_SUBURB_POSTCODE_TEXT;
    }
}

//this an all-purpose function you can use to add functions you want run when the page has loaded


function AddLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}
AddLoadEvent(Init);

function Init() {
    //only do this if the search page is loaded
    try {
        OnChange(document.getElementById('ddlCategory'));
        hideDropdown();
    } catch (e) { }
}

function Clear_onclick() {
    document.getElementById('txtStreet').value = "";
    document.getElementById('txtSuburb').value = "";
    document.getElementById('txtPostcode').value = "";
    var locType = gup('type');
    if (locType != 'serviceext') {
        document.getElementById('chkSpecialist').checked = false;
        document.getElementById('chkAVReseller').checked = false;
        document.getElementById('chkHiFiSpecialist').checked = false;
        document.getElementById('chkITReseller').checked = false;
        document.getElementById('chkRetailer').checked = false;
        document.getElementById('chkDiamond').checked = false;
        document.getElementById('chkSecurity').checked = false;
        document.getElementById('chkDistributor').checked = false;
    }
    //document.getElementById('ddlCategory').selectedIndex = 0;
    document.getElementById('ddlSelectedSubCategories').style.display = 'none';
}

function load(lat, lng) {
    // create a MDSMap instance
    _map = new MDSMap($get('mymap'));
    // pass in the key for the session
    _map.UserIDSet($get('UserID').value);
    // load the map - use centre provided
    _map.LoadMap(lat, lng, 530, 488, 630, 588);
    zoomToMarker();
}

function ZoomToXY(ycoord, xcoord) {
    //if (mapLoaded == true){
    _map.ZoomToPoint(ycoord, xcoord, 13);
    //    }
}

function unload() {
    MDSUnload(); // call to MDSUnload function to destroy everything
}

function original() {
    // reload the original map view
    _map.OriginalView();
}

function removeAllOptions(selectbox) {
    var i;
    for (i = selectbox.options.length - 1; i >= 0; i--) {
        selectbox.remove(i);
    }
}
//display only subcategories with a category id that matches the currently selected category

function OnChange(dropdown) {
    var myIndex = dropdown.selectedIndex;
    var SelValue = dropdown.options[myIndex].value;
    var ddlproductType = document.getElementById('ddlProductType');
    var ddlSelectedCat = document.getElementById('ddlSelectedSubCategories');
    ddlSelectedCat.style.display = 'inline';
    removeAllOptions(ddlSelectedCat);
    var selectedCount = 0;

    //set default selected category to 0
    ddlproductType.selectedIndex = 0;
    document.getElementById('hSubCategoryID').value = 0;
    for (i = ddlproductType.options.length - 1; i >= 0; i--) {
        var currSelection = ddlproductType.options[i].value;
        var prodCodeArray = currSelection.split(":");
        var categoryID = prodCodeArray[0];
        var subCategoryID = prodCodeArray[1];
        if (SelValue == categoryID) {
            var optn = document.createElement("OPTION");
            optn.text = ddlproductType.options[i].text;
            optn.value = subCategoryID;
            ddlSelectedCat.options.add(optn);
            selectedCount = selectedCount + 1;
        }
    }
    if (selectedCount == 0) {
        ddlSelectedCat.style.display = 'none';
    } else {
        UpdateSubCategoryID();
    }
    return true;
}

function UpdateSubCategoryID() {
    var ddlSelectedSubCat = document.getElementById('ddlSelectedSubCategories');
    var myIndex = ddlSelectedSubCat.selectedIndex;
    var selectedValue = ddlSelectedSubCat.options[myIndex].value;
    document.getElementById('hSubCategoryID').Value = selectedValue;

    //update the index of ddlProdType to match the selected ddlSelectedSubCategories
    var ddlProdType = document.getElementById('ddlProductType');
    ddlProdType.selectedIndex = myIndex;
    var selectedID = 0;
    for (i = ddlProdType.options.length - 1; i >= 0; i--) {
        var ddlCategory = document.getElementById('ddlCategory');
        myIndex = ddlCategory.selectedIndex;
        var selectedCategoryID = ddlCategory.options[myIndex].value;
        var prodCodeArray = ddlProdType.options[i].value.split(":");
        var categoryID = prodCodeArray[0];
        var subCategoryID = prodCodeArray[1];
        if (categoryID == selectedCategoryID) {
            if (subCategoryID == selectedValue) {
                ddlProdType.selectedIndex = i;
                selectedID = subCategoryID;
                document.getElementById('hSubCategoryID').Value = subCategoryID;
                break;
            }
        }
    }
}

function setSubCategoryID() {
    document.getElementById('hSubCategoryID').value = document.getElementById('hSubCategoryID').Value;
}

function setCatID() {
    //alert(document.getElementById('ddlCategory'));
}

function gup(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null) {
        return "";
    } else {
        return results[1];
    }
}
