document.getElementsByClassName = function(className) {
	var children = document.getElementsByTagName('*') || document.all;
	var elements = new Array();
  
	for (var i = 0; i < children.length; i++) {
		var child = children[i];
		var classNames = child.className.split(' ');
		for (var j = 0; j < classNames.length; j++) {
			if (classNames[j] == className) {
				elements.push(child);
				break;
			}
		}
	}
	return elements;
}

var url = window.location.href;
var adRotator = 0;
var strapRotator = 0;
var adCounter = new Array();
adCounter[1] = 1;
adCounter[2] = 1;
adCounter[3] = 1;
adCounter[4] = 1;

function init()
{
    preloadImages();
    adRotator = setInterval(rotateAds, 3000);    
    
    setTopStrap();
    setCurrentNav();
    if (typeof(companies) != 'undefined') {
        createExhListMenu();
    }
    if (document.getElementById("showphotos"))
        setShowPhotosHovers();
}

var adCounter = 0;
var strapCounter = 0;

function handleMouseout(element)
{
    if (element.className.indexOf("Current") == -1)
    {
        element.style.backgroundImage='url(../Images/lftnav_off.gif)';
    }
}

function preloadImages()
{
    if (document.images)
    {
        preload_image_object = new Image();
        // set image url
        var image_url = new Array();
        image_url[0] = "";
        image_url[1] = "/Images/rotatables/NTX08_pic_rotate_01.jpg";
        image_url[2] = "/Images/rotatables/NTX08_pic_rotate_02.jpg";
        image_url[3] = "/Images/rotatables/NTX08_pic_rotate_03.jpg";
        image_url[4] = "/Images/rotatables/NTX08_pic_rotate_04.jpg";
        image_url[5] = "/Images/rotatables/NTX08_pic_rotate_05.jpg";
        image_url[6] = "/Images/rotatables/NTX08_pic_rotate_06.jpg";
        image_url[7] = "/Images/rotatables/NTX08_pic_rotate_07.jpg";
        image_url[8] = "/Images/rotatables/NTX08_pic_rotate_08.jpg";
        image_url[9] = "/Images/rotatables/NTX08_pic_rotate_09.jpg";
        image_url[10] = "/Images/rotatables/NTX08_pic_rotate_10.jpg";
        image_url[11] = "/Images/rotatables/NTX08_pic_rotate_11.jpg";
        image_url[12] = "/Images/rotatables/NTX08_pic_rotate_12.jpg";
        image_url[13] = "/Images/rotatables/NTX08_pic_rotate_13.jpg";
        image_url[14] = "/Images/rotatables/NTX08_pic_rotate_14.jpg";
        image_url[15] = "/Images/rotatables/NTX08_pic_rotate_15.jpg";
        image_url[16] = "/Images/rotatables/NTX08_pic_rotate_16.jpg";
        image_url[17] = "/Images/rotatables/NTX08_pic_rotate_17.jpg";
        image_url[18] = "/Images/rotatables/NTX08_pic_rotate_18.jpg";
        image_url[19] = "/Images/rotatables/NTX08_pic_rotate_19.jpg";
        image_url[20] = "/Images/rotatables/NTX08_pic_rotate_20.jpg";
        
        var i = 0;
        for(i=0; i<=image_url.length; i++) 
            preload_image_object.src = image_url[i];
    }
}

function rotateStrap()
{
    if (document.getElementById('ctl00_homestrap'))
    {
        strapCounter++;
        
        var n = 2;
        
        var strapImg = document.getElementById('ctl00_homestrap');
        strapImg.src = strapImg.src.replace(/(.*images\/)(.*$)/, '$1homeStrap' + (strapCounter % n + 1).toString() + '.jpg');
    }
}

function rotateAds()
{
    if (document.getElementById('rotatables'))
    {
        var col = ++strapRotator % 4 + 1;
        
        var n = 20; // image count
        var img = document.getElementById('rotatables_Img' + col.toString());
        
        var img1 = document.getElementById('rotatables_Img1');
        var img2 = document.getElementById('rotatables_Img2');
        var img3 = document.getElementById('rotatables_Img3');
        var img4 = document.getElementById('rotatables_Img4');
        
        do {
            var rand = Math.ceil(Math.random()*n);
        } while (img1.src.indexOf(rand) > -1 || img2.src.indexOf(rand) > -1 || img3.src.indexOf(rand) > -1 || img4.src.indexOf(rand) > -1);
        
        if (img)
        {
            var num = zeroPad(2, rand)
            blendimage('img' + col.toString() + 'Div', 'rotatables_Img' + col.toString(), img.src.replace(/(.*rotate_)(.)(.*$)/, '$1' + num + '.jpg'), 1000);
        }
    }
}

function zeroPad(paddedLength, number)
{
    var paddedValue = "";
    
    for (var i=0; i< paddedLength - number.toString().length; i++) {
        paddedValue += "0";
    }
    paddedValue += number.toString();
    
    return paddedValue;
}

function setTopStrap()
{
    var topStrap = document.getElementById("topStrap");
    var vcsArea = document.getElementById('vcsArea')

    if (topStrap) {
        if (url.toLowerCase().indexOf("/brisbane/") > -1)
        {
            topStrap.src = topStrap.src.replace(/Global/,  "Brisbane");
            vcsArea.href = vcsArea.href.replace(/Outlook\.vcs/, "OutlookBrisbane.vcs");
        }
        else if (url.toLowerCase().indexOf("/adelaide/") > -1)
        {
            topStrap.src = topStrap.src.replace(/Global/,  "Adelaide");
            vcsArea.href = vcsArea.href.replace(/Outlook\.vcs/, "OutlookAdelaide.vcs");

        }
        else if (url.toLowerCase().indexOf("/perth/") > -1)
        {
            topStrap.src = topStrap.src.replace(/Global/,  "Perth");
            vcsArea.href = vcsArea.href.replace(/Outlook\.vcs/, "OutlookPerth.vcs");

        }
        else if (url.toLowerCase().indexOf("/sydney/") > -1)
        {
            topStrap.src = topStrap.src.replace(/Global/,  "Sydney");
            vcsArea.href = vcsArea.href.replace(/Outlook\.vcs/, "OutlookSydney.vcs");

        }
        else if (url.toLowerCase().indexOf("/melbourne/") > -1)
        {
            topStrap.src = topStrap.src.replace(/Global/,  "Melbourne");
            vcsArea.href = vcsArea.href.replace(/Outlook\.vcs/, "OutlookMelbourne.vcs");

        }
        else
        {
            vcsArea.href = "#";

        }
    }
}

function createExhListMenu()
{
    var ab = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 
    var div = document.getElementById('azMenu')

    for(var i = 0; i < ab.length; i++)
    {
        var c = ab.substr(i, 1);

        var link = document.createElement('A');
        link.href = "Javascript:showCategory(\"Cat" + c + "\");"

        var text = document.createElement("SPAN");
        text.innerHTML = c + ' ';
        link.appendChild(text);

        div.appendChild(link);
    }   
    
    createCompaniesList();
    createAlphaList();
}

function sortByCompanyName(a, b) {
    var x = a.name.toLowerCase();
    var y = b.name.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function createAlphaList()
{
    sortedCompanies = companies.sort(sortByCompanyName);
    var alphaListDiv = document.getElementById('fullAlphaList');
    
    for (var i = 0; i < sortedCompanies.length; i++)
    {
        var companyDiv = document.createElement('DIV');
        alphaListDiv.appendChild(companyDiv);
        companyDiv.className = "CompanyName";
        companyDiv.style['paddingTop'] = '5px';
        
        var text = document.createElement("SPAN");
        text.innerHTML = sortedCompanies[i].name;

        if (sortedCompanies[i].website.length > 0)
        {
            var link = document.createElement('A');

            link.href = 'http://' + sortedCompanies[i].website.replace('http://', "");
            link.target = '_blank';
        
            link.appendChild(text);
            companyDiv.appendChild(link);
        }
        else
        {
            companyDiv.appendChild(text);
        }
                
        var standDiv = document.createElement('DIV');
        alphaListDiv.appendChild(standDiv);
        standDiv.className = "CompanyStand";
        standDiv.appendChild( document.createTextNode( sortedCompanies[i].stand ));
    }
}

function createCompaniesList()
{
    var companyListDiv = document.getElementById('companyList');

    var lastCat = '';
    var topDash = true;
        
    for (var i = 0; i < companies.length; i++)
    {
        var companyDiv = document.createElement('DIV');
        companyListDiv.appendChild(companyDiv);
        companyDiv.className = 'Cat' + companies[i].category.replace(/^4x4 /i, '').substr(0, 1).toUpperCase();
        companyDiv.setAttribute('category', companies[i].category);

        if (lastCat != companies[i].category)
        {
            companyDiv.style['paddingTop'] = '5px';
            
            var cat = document.createElement("DIV");
            cat.appendChild( document.createTextNode( companies[i].category ));
            cat.className = "CompanyCategory";
            companyDiv.appendChild(cat);
            
            var stand = document.createElement("DIV");
            stand.appendChild( document.createTextNode("Stand"));
            
            var btnReturnTop = document.createElement("A");
            stand.appendChild(btnReturnTop);
            btnReturnTop.href = "#top";
            btnReturnTop.className="ReturnToTop";
            var imgReturnTop = document.createElement("IMG");
            imgReturnTop.src = "../../images/btnReturnTop.png";
            btnReturnTop.appendChild(imgReturnTop);
            
            //todo: include return to top image
            stand.className = "StandHeading";
            companyDiv.appendChild(stand);
            
            lastCat = companies[i].category;
            topDash = false;
        }
        else
        {
            topDash = true;
        }
        
        var name = document.createElement("DIV");
        if (topDash == true)
            name.className = "CompanyName";
        else
            name.className = "CompanyNameNoDash";
        companyDiv.appendChild(name);
        
        var text = document.createElement("SPAN");
        text.innerHTML = companies[i].name;

        if (companies[i].website.length > 0)
        {
            var link = document.createElement('A');

            link.href = 'http://' + companies[i].website.replace('http://', "");
            link.target = '_blank';
        
            link.appendChild(text);
            name.appendChild(link);
        }
        else
        {
            name.appendChild(text);
        }
        
        var stand = document.createElement("DIV");
        if (topDash == true)
            stand.className = "CompanyStand";
        else
            stand.className = "CompanyStandNoDash";
        stand.appendChild( document.createTextNode( companies[i].stand ));
        companyDiv.appendChild(stand);        
    }   
}

function showCategory(cat)
{
    document.getElementById('fullAlphaList').style.display = 'none';
    document.getElementById('companyList').style.display = 'block';

    var divs = document.getElementsByTagName('DIV');
    
    for (var i = 0; i < divs.length; i++)
    {
        var div = divs[i];
        
        if (div.className.match(/^Cat[A-Z0-9]$/))
        {
            if (div.className == cat)
               div.style.display = 'block';
            else
                div.style.display = 'none';
        }
    }
}

function changeCategory()
{
    document.getElementById('fullAlphaList').style.display = 'none';
    document.getElementById('companyList').style.display = 'block';
    
    var dropdown = document.getElementById('cboCategories');
    
    var cat = dropdown.options[dropdown.selectedIndex].text;
    
    var divs = document.getElementsByTagName('DIV');
    
    for (var i = 0; i < divs.length; i++)
    {
        var div = divs[i];
        
        if (div.className.match(/^Cat[A-Z0-9]$/))
        {
            if (cat == 'All Categories')
            {     
               div.style.display = 'block';
            }
            else if (div.getAttribute('category') == cat)
            {
                div.style.display = 'block';
            }
            else
            {
                div.style.display = 'none';
            }
         }                                           
    }    
}

function showAlphaList()
{
    document.getElementById('fullAlphaList').style.display = 'block';
    document.getElementById('companyList').style.display = 'none';
}

function setExpo (Expos) {
    var Expo;
    if (window.location.toString().toLowerCase().indexOf("brisbane") != -1)
    {
        for (var i=0; i<Expos.length; i++) {
            if (Expos[i].attributes[0].value.toLowerCase() == "brisbane")
                Expo = Expos[i];
        }
    }
    else if (window.location.toString().toLowerCase().indexOf("adelaide") != -1)
    {
        for (var i=0; i<Expos.length; i++) {
            if (Expos[i].attributes[0].value.toLowerCase() == "adelaide")
                Expo = Expos[i];
        }
    }
    else if (window.location.toString().toLowerCase().indexOf("perth") != -1)
    {
        for (var i=0; i<Expos.length; i++) {
            if (Expos[i].attributes[0].value.toLowerCase() == "perth")
                Expo = Expos[i];
        }
    }
    else if (window.location.toString().toLowerCase().indexOf("sydney") != -1)
    {
        for (var i=0; i<Expos.length; i++) {
            if (Expos[i].attributes[0].value.toLowerCase() == "sydney")
                Expo = Expos[i];
        }
    }
    else 
    {
        for (var i=0; i<Expos.length; i++) {
            if (Expos[i].attributes[0].value.toLowerCase() == "melbourne")
                Expo = Expos[i];
        }
    }

    return Expo;
}



function setCurrentNav() {
    var mediaLinks = document.getElementsByClassName("MediaLinks");
    for (var i=0; i<mediaLinks.length; i++) {
        if (url == mediaLinks[i].href) {
            mediaLinks[i].style["color"] = "#DA1318";
            break;
        }
    }
}

function GetPageXY(id)
{
    var layer = document.getElementById(id);
    var x=0;
    var y=0;
    
    while (layer.offsetParent != null)
    {  
        x += layer.offsetLeft;
        y += layer.offsetTop;
        layer = layer.offsetParent;
    }
    
    x += layer.offsetLeft;
    y += layer.offsetTop;
    
    var arr = new Array;
    arr[0] = x;
    arr[1] = y;
    
    return arr;
}            

function ShowPopup(hoveritem) {
    // get position of the hover item
    var x=0;
    var y=0;
    var layer = hoveritem;
    while (layer.offsetParent != null)
    {  
        x += layer.offsetLeft;
        y += layer.offsetTop;
        layer = layer.offsetParent;
    }
    
    x += layer.offsetLeft;
    y += layer.offsetTop;
    
    var hp = document.getElementById("hoverpopup");
    
    // Set the position of hover-over popup
    
    hp.style["top"] = y - 100  + "px";
    hp.style["left"] = x + - 100 + "px";
    var hiddenImage = hp.getElementsByTagName("img")[0];
    hiddenImage.src = hoveritem.src.replace("sml", "lrg");

    // Set popup to visible
    hp.style.visibility = "Visible";
}

function HidePopup() {
    var hp = document.getElementById("hoverpopup");
    hp.style.visibility = "Hidden";
}

function setShowPhotosHovers() {
    var photos = document.getElementById("showphotos").getElementsByTagName("img");
    for (var i=0; i<photos.length; i++) {
	photos[i].onmouseover = function(e){ShowPopup(this);};
	
	//photos[i].onmouseout = HidePopup;
    }
    var hp = document.getElementById("hoverpopup");
    hp.onclick = HidePopup;
    hp.onmouseout = HidePopup;
}

window.onload = init;
