// JavaScript Document

var Browser = {
    IE:     !!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1),
    Opera:  navigator.userAgent.indexOf('Opera') > -1,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 &&  navigator.userAgent.indexOf('KHTML') === -1,
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
}

/*---------------------------------------------------------------
Function : GetViewportDimwnsions
---------------------------------------------------------------*/
function GetViewportDimensions() {
	
	var intH = 0, intW = 0;
    
    if(window.innerHeight) {
       intH = window.innerHeight;
       intW = window.innerWidth;
    } 
    else {
        if(document.documentElement && document.documentElement.clientHeight) {
            intH = document.documentElement.clientHeight;
            intW = document.documentElement.clientWidth;
        }
        else {
            if(document.body) {
                intH = document.body.clientHeight;
                intW = document.body.clientWidth;
            }
        }
    }

    return {
        height: parseInt(intH, 10),
        width: parseInt(intW, 10)
    };
}

/*---------------------------------------------------------------
Function : CenterElement
---------------------------------------------------------------*/
function CenterElement(elem) {

    var viewport = GetViewportDimensions();
	var eWidth   = (elem.offsetWidth == 0) ? 800 : elem.offsetWidth;
	var eHeight  = (elem.offsetHeight == 0) ? 650 : elem.offsetHeight;
	var offsetX  = 0;
	var offsetY  = 0;
    var left     = (viewport.width == 0) ? 50 : parseInt((viewport.width - eWidth) / 2, 10);
    var top      = (viewport.height == 0) ? 50 : parseInt((viewport.height - eHeight) / 2, 10);

	//IE
	if(!window.pageYOffset)
	{
		//strict mode
		if(!(document.documentElement.scrollTop == 0))
		{
			offsetY = document.documentElement.scrollTop;
			offsetX = document.documentElement.scrollLeft;
		}
		//quirks mode
		else
		{
			offsetY = document.body.scrollTop;
			offsetX = document.body.scrollLeft;
		}
	}
	//w3c
	else
	{
		offsetX = window.pageXOffset;
		offsetY = window.pageYOffset;
	}

    elem.style.left = left + 'px';
    elem.style.top = (top +  offsetY) + 'px';

//    viewport, left, top, elem = null;    
}

/*---------------------------------------------------------------
Function : ShowModalLayer
---------------------------------------------------------------*/
function ShowModalLayer(id) {
	
    var modalElem = document.getElementById(id);

    if(modalElem != null) {
        CenterElement(modalElem);
        modalElem.style.display = 'block';
        window.onresize = function() {
            CenterElement(modalelem);
        }
    }
}

/*---------------------------------------------------------------
Function : HideModalLayer
---------------------------------------------------------------*/
function HideModalLayer(id) {
	
    var modalElem = document.getElementById(id);

    if(modalElem != null) {
        modalElem.style.display = 'none';
        window.onresize = null;
    }
}

/*---------------------------------------------------------------
Function : SetOpacity
---------------------------------------------------------------*/
function SetOpacity(elem, opacityAsInt)
{
	var opacityAsDecimal = opacityAsInt;
	
	if (opacityAsInt > 100)
		opacityAsInt = opacityAsDecimal = 100; 
	else if (opacityAsInt < 0)
		opacityAsInt = opacityAsDecimal = 0; 
	
	opacityAsDecimal /= 100;
	if (opacityAsInt < 1)
		opacityAsInt = 1; // IE7 bug, text smoothing cuts out if 0
	
	elem.style.opacity = opacityAsDecimal;
	elem.style.filter  = "alpha(opacity=" + opacityAsInt + ")";
}

/*---------------------------------------------------------------
Function : FadeOpacity
---------------------------------------------------------------*/
function FadeOpacity(elemId, fromOpacity, toOpacity, time, fps)
{
	var steps = Math.ceil(fps * (time / 1000));
	var delta = (toOpacity - fromOpacity) / steps;
	
	FadeOpacityStep(elemId, 0, steps, fromOpacity, delta, (time / steps));
}

/*---------------------------------------------------------------
Function : FadeOpacityStep
---------------------------------------------------------------*/
function FadeOpacityStep(elemId, stepNum, steps, fromOpacity, delta, timePerStep)
{
    SetOpacity(document.getElementById(elemId), Math.round(parseInt(fromOpacity) + (delta * stepNum)));

    if (stepNum < steps)
        setTimeout("FadeOpacityStep('" + elemId + "', " + (stepNum+1) + ", " + steps + ", " + fromOpacity + ", " + delta + ", " + timePerStep + ");", timePerStep);
}

