// hasClass
function hasClass(el,cl){
    if((el.className===null)||(typeof el=='undefined')) return false;
    var classes=el.className.split(" ");
    for(i in classes){
        if(classes[i]==cl) return true;
    }
    return false;
}

//------------------------------------
// addClass
function addClass(el,cl){
    if((hasClass(el,cl))||(typeof el=='undefined')) return;
    el.className+=" "+cl;
}

//------------------------------------
// removeClass
function removeClass(el,cl){
    if(typeof el=='undefined')return;
    if(el.className===null)return;
    var classes=el.className.split(" ");
    var result=[];
    for(i in classes){
        if(classes[i] !=cl) result[result.length]=classes[i];
    }
    el.className=result.join(" ");
}

var currentMenu = '';

function menushow(obj)
{
    if (obj.id == currentMenu) {
        return;
    }

    menuHide();
    addClass(obj, 'selectedLink');
    document.getElementById(obj.id + '_pop').style.display = 'block';
    currentMenu = obj.id;
}

function menuHide()
{
    if (currentMenu != '') {
        document.getElementById(currentMenu + '_pop').style.display = 'none';
        removeClass(document.getElementById(currentMenu), 'selectedLink');
        currentMenu = '';
    }
}

var currentScroll = null;
var currentWrapHeight = 0;
var currentScrollHeight = 0;
var currentWrapObj = null;
var currentScrollObj = null;
var currentTop = 0;
var distance = 10;
var currentOffset = 0;

function scrollupstart(wrapper, scroller)
{
    currentWrapObj = document.getElementById(wrapper);
    currentScrollObj = document.getElementById(scroller);
    currentWrapHeight = currentWrapObj.offsetHeight;
    currentScrollHeight = currentScrollObj.offsetHeight;
    currentTop = getTop(currentScrollObj);
    currentScroll = setInterval('scrollUp();', 30);

}

function scrolldownstart(wrapper, scroller)
{
    currentWrapObj = document.getElementById(wrapper);
    currentScrollObj = document.getElementById(scroller);
    currentWrapHeight = currentWrapObj.offsetHeight;
    currentScrollHeight = currentScrollObj.offsetHeight;
    currentTop = getTop(currentScrollObj);
    currentScroll = setInterval('scrollDown();', 30);
    currentOffset = currentWrapHeight - currentScrollHeight;
}

function getTop(obj)
{
    if (!obj.style) {
        obj.style.top = '0px';
    }

    var ret = parseInt(obj.style.top);
    if (isNaN(ret)) {
        ret = 0;
    }

    return ret;
}

function scrollUp()
{
    if (currentTop >= 0) {
        scrollStop();
        return;
    }

    currentTop += 10;
    currentScrollObj.style.top = currentTop + 'px';

}

function scrollDown()
{
    if (currentTop <= currentOffset) {
        scrollStop();
        return;
    }

    currentTop -= 10;
    currentScrollObj.style.top = currentTop + 'px';
}

function scrollStop()
{
    if (currentScroll == null) {
        return;
    }

    clearInterval(currentScroll);
    currentScroll = null;
    currentWrapHeight = 0;
    currentScrollHeight = 0;
    currentWrapObj = null;
    currentScrollObj = null;
    currentTop = null;
    currentOffset = 0;

}

var fadeoutObj = null;
var fadeoutCurrent = null;
var fadeoutVal = 1.0;
var fadeinObj = null;
var fadeinCurrent = null;
var fadeinVal = 0.0;

function fadeOutStart(id)
{
    fadeoutObj = document.getElementById(id);
    setOpacity(fadeoutObj, 1.0);
    fadeoutVal = 1.0;
    fadeoutCurrent = setInterval('fadeOut();', 50);

}//end fadeOutStart()

function fadeOut()
{
    fadeoutVal -= .04;
    setOpacity(fadeoutObj, fadeoutVal);
    if (fadeoutVal <= 0.0) {
        fadeoutStop();
        return;
    }

}

function fadeoutStop()
{
    clearInterval(fadeoutCurrent);

}

function fadeInStart(id)
{
    fadeinObj = document.getElementById(id);
    setOpacity(fadeinObj, 0.0);
    fadeinObj.style.display = 'block';
    fadeinVal = 0.0;
    fadeinCurrent = setInterval('fadeIn();', 50);

}//end fadeInStart()

function fadeIn()
{
    fadeinVal += .04;
    setOpacity(fadeinObj, fadeinVal);
    if (fadeinVal >= 1.0) {
        fadeinStop();
        return;
    }

}

function fadeinStop()
{
    clearInterval(fadeinCurrent);

}

function setOpacity(element, alpha)
{
    var style = element.style;
    if (style.MozOpacity != undefined) { //Moz and older
        style.MozOpacity = alpha;
    } else if(style.filter != undefined) { //IE
        style.filter = "alpha(opacity=0)";
        element.filters.alpha.opacity = (alpha * 100);
    } else if(style.opacity != undefined) { //Opera
        style.opacity = alpha;
    }
}

var currentOut = 1;

function toggleFade()
{
    var outid = null;
    var inid  = null;
    if (currentOut == 1) {
        outid = 'image1';
        inid  = 'image2';
        currentOut = 2;
    } else if (currentOut == 2) {
        outid = 'image2';
        inid  = 'image3';
        currentOut = 3;
    } else {
        outid = 'image3';
        inid  = 'image1';
        currentOut = 1;
    }

    fadeInStart(inid);
    fadeOutStart(outid);
}

function coloursPop()
{
    newwindow = window.open('/popcolours.html','DJM Colour Chart','height=737,width=580,scrollbars=no');
    if (window.focus) {
        newwindow.focus();
    }

    return false;
}
