
// globals
// on domready event handler collection
domreadys = new Array();

var __browser = /(Firefox)/.test(navigator.userAgent) || /(MSIE)/.test(navigator.userAgent) || /(Opera)/.test(navigator.userAgent) || /(Chrome)/.test(navigator.userAgent) || /(Safari)/.test(navigator.userAgent);
__browser = new String(RegExp.$1);
var __browserVer = /Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent) || /MSIE (\d+\.\d+);/.test(navigator.userAgent) || /Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent) || /Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent);
__browserVer = new Number(RegExp.$1);


function $(Id) {
    return document.getElementById(Id);
}

// set or get the current display style of the div.
function dsp(d, v) {
    if (v == undefined) {
        return d.style.display;
    } else {
        d.style.display = v;
    }
}

// set or get the height of a div.
function sh(d, v) {
    if (v == undefined) {
        if (dsp(d) != 'none' && dsp(d) != '') {
            return d.offsetHeight;
        }
        viz = d.style.visibility;
        d.style.visibility = 'hidden';
        o = dsp(d);
        dsp(d, 'block');
        r = parseInt(d.offsetHeight);
        dsp(d, o);
        d.style.visibility = viz;
        return r;
    } else {
        d.style.height = v;
    }
}
s = 7;
t = 10;


// Collapse height Initializer
function collapse(d) {
    if (dsp(d) == 'block') {
        clearInterval(d.t);
        d.t = setInterval('ct("' + d.id + '")', t);
    }
}

function sw(d, v) {
    if (v == undefined) {
        if (dsp(d) != 'none' && dsp(d) != '') {            
            return d.offsetWidth;
        }
        viz = d.style.visibility;
        d.style.visibility = 'hidden';
        o = dsp(d);
        dsp(d, 'block');
        r = parseInt(d.offsetWidth);
        dsp(d, o);
        d.style.visibility = viz;
        return r;
    } else {
        d.style.width = v;
    }
}
// set or get the width of a div using inline.
function sww(d, v) {
    if (v == undefined) {
        if (dsp(d) != 'none' && dsp(d) != '') {
            return d.offsetWidth;
        }
        viz = d.style.visibility;
        d.style.visibility = 'hidden';
        o = dsp(d);
        dsp(d, 'inline');
        r = parseInt(d.offsetWidth);
        dsp(d, o);
        d.style.visibility = viz;        
        return r;
    } else {
        d.style.width = v;
    }
}
//Collapse Timer is triggered as a setInterval to reduce the width of the div exponentially.
function ctw(d) {
    d = $(d);
    if (sww(d) > 0) {
        v = Math.round(sww(d) / d.s);
        v = (v < 1) ? 1 : v;
        v = (sww(d) - v);
        sww(d, v + 'px');
        d.style.opacity = (v / d.maxw);
        d.style.filter = 'alpha(opacity=' + (v * 100 / d.maxw) + ');';
    } else {
        sww(d, 0);
        dsp(d, 'none');
        clearInterval(d.t);
    }
}

//Expand Timer is triggered as a setInterval to increase the width of the div exponentially.
function etw(d) {
    d = $(d);
    if (sww(d) < d.maxw) {
        v = Math.round((d.maxw - sww(d)) / d.s);
        v = (v < 1) ? 1 : v;
        v = (sww(d) + v);
        sww(d, v + 'px');
        d.style.opacity = (v / d.maxw);
        d.style.filter = 'alpha(opacity=' + (v * 100 / d.maxw) + ');';
    } else {
        sww(d, d.maxw);
        clearInterval(d.t);
    }
}

// Collapse width Initializer
function collapsewidth(d) {
    if (__browser == 'Firefox' && __browserVer < 2.9) {
        if (dsp(d) == '-moz-inline-stack') {
            clearInterval(d.t);
            d.t = setInterval('ctw("' + d.id + '")', t);
        }
    }
    else {
        if (dsp(d) == 'inline-block') {
            clearInterval(d.t);
            d.t = setInterval('ctw("' + d.id + '")', t);
        }
    }
    
}
//Expand width Initializer
function expandwidth(d) {
    if (dsp(d) == 'none') {
        if (__browser == 'Firefox' && __browserVer < 2.9) 
        {
            dsp(d, '-moz-inline-stack'); 
        } 
        else 
        {
            dsp(d, 'inline-block');
        }
        d.style.width = '0px';
        clearInterval(d.t);
        d.t = setInterval('etw("' + d.id + '")', t);
    }
}
function FooterRoll(d, dd) {
    d = $(d);
    dd = $(dd);
    d.maxw = sww(d);
    dd.maxw = sww(dd);
    d.s = (s == undefined) ? 7 : s;
    dd.s = (s == undefined) ? 7 : s;
    
    expandwidth(d);
    collapsewidth(dd);
} 


