﻿
var imgElem;

function initFindYourNearestDealer (imgelem)
{
    var areas = document.getElementsByTagName('area');
    
    imgElem = document.getElementById(imgelem);
    
    for (var i = 0; i != areas.length; i++) {
        var s = areas[i].title.replace(/ /g, '').toLowerCase();
        
        
        areas[i].onmouseover = eval('changeClass' + s);
        areas[i].onmouseout = eval('resetClass' + s);
        
    }    
}

function changeClassact() { changeClass(imgElem, 'act'); }
function resetClassact() { changeClass(imgElem, 'act'); }
function changeClassnewsouthwales() { changeClass(imgElem, 'nsw'); }
function resetClassnewsouthwales() { changeClass(imgElem, 'nsw'); }
function changeClassnorthernterritory() { changeClass(imgElem, 'nt'); }
function resetClassnorthernterritory() { changeClass(imgElem, 'nt'); }
function changeClassqueensland() { changeClass(imgElem, 'qld'); }
function resetClassqueensland() { changeClass(imgElem, 'qld'); }
function changeClasssouthaustralia() { changeClass(imgElem, 'sa'); }
function resetClasssouthaustralia() { changeClass(imgElem, 'sa'); }
function changeClasstasmania() { changeClass(imgElem, 'tas'); }
function resetClasstasmania() { changeClass(imgElem, 'tas'); }
function changeClassvictoria() { changeClass(imgElem, 'vic'); }
function resetClassvictoria() { changeClass(imgElem, 'vic'); }
function changeClasswesternaustralia() { changeClass(imgElem, 'wa'); }
function resetClasswesternaustralia() { changeClass(imgElem, 'wa'); }

function changeClass(elem, className)
{
    var pos = elem.className.indexOf(' ' + className);
    
    if (pos >= 0) {
        elem.className = elem.className.substring(0, pos);
    } else {
        elem.className += ' ' + className;
    }
}


/* Colour Picker */

function findElementByClass (parent, tag, className)
{
    var elems = parent.getElementsByTagName(tag);
    
    for (var i = 0; i != elems.length; i++) {
        if (className.length == 0 || (elems[i].className != null && elems[i].className == className)) {
            return elems[i];
        }
    }
    
    return null;
}

function selectColour (sender, optionID, imageUrl, colourName)
{
    var node = sender;
    
    // find the starting point for this colour picker
    while (node != null && (node.className == null || node.className.indexOf('colourPicker') < 0)) {
        node = node.parentNode;
    }
    
    if (node != null) {
        // find the hidden field and set its value to the optionID
        var elems = node.getElementsByTagName('input');
        
        for (var i = 0; i != elems.length; i++) {
            if (elems[i].type == 'hidden') {
                elems[i].value = optionID;
                break;
            }
        }
        
        // find the paragraph - 'p.selectedColour'
        var para = findElementByClass(node, 'p', 'selectedColour');
        
        if (para != null) {
            // find the a tag now
            var aTag = findElementByClass(node, 'a', '');
            
            // find the img tag
            var imgTag = findElementByClass(node, 'img', '');
            
            // find the span tag
            var spanTag = findElementByClass(node, 'span', '');
            
            if (aTag != null && imgTag != null && spanTag != null) {
                imgTag.src = imageUrl;
                imgTag.alt = colourName;
                spanTag.innerHTML = colourName;
            }
            
            var imgLarge = findElementByClass(node.parentNode, 'img', 'selected-swatch');
            
            if (imgLarge != null) {
                imgLarge.src = imageUrl.replace(/small/i, 'large');
                imgLarge.alt = colourName;
            }
        }
        
        // find the colour list and close it
        var colourList = findElementByClass(node, 'ul', 'colourList');
        
        if (colourList != null) {
            colourList.style.visibility = 'hidden';
        }
    }
}

function openColourPicker (sender)
{
    var node = sender;
    
    // find the starting point for this colour picker
    while (node != null && (node.className == null || node.className.indexOf('colourPicker') < 0)) {
        node = node.parentNode;
    }
    
    // close any other colour pickers that might be open
    var cps = document.getElementsByTagName('ul');
    
    for (var i = 0; i != cps.length; i++) {
        if (cps[i].className != null && cps[i].className.indexOf('colourList') >= 0) {
            cps[i].style.visibility = 'hidden';
        }
    }
    
    if (node != null) {
        var colourList = findElementByClass(node, 'ul', 'colourList');

        if (colourList != null) {        
            colourList.style.visibility = 'visible';
        }
    }
}