﻿var agent=navigator.userAgent.toLowerCase();
var konqueror = (-1!=agent.indexOf('konqueror'));
var safari = ((-1!=agent.indexOf('safari')) && (-1!=agent.indexOf('mac')));
var khtml  = (safari || konqueror);
var opera = (-1!=agent.indexOf("opera"));
var msie = ((-1!=navigator.appVersion.toLowerCase().indexOf('msie')) && (!opera) && (!khtml));
  
function GetElementsByClassName(className) 
{
    var results = [];
    var regEx = new RegExp('\\b' + className + '\\b');
    var allElements = document.getElementsByTagName("*");
    
    for(var i=0,j=allElements.length; i<j; i++)
        if(regEx.test(allElements[i]['className'])) 
            results.push(allElements[i]);

    return results;
}
function ModifyClassForId(strId, newClass, bSlide)
{
    var obj = document.getElementById(strId);
    if (obj["className"] != newClass) 
    {
        obj['className'] = newClass;
    }
}
var g_bSubMenuSelected = false;
function SetLocation(loc)
{
    if(g_bSubMenuSelected == false) 
    {
        window.location = loc;
    }
    else g_bSubMenuSelected = false;
}
function MenuItem(strName, strLink)
{
    this.m_name = strName;
    this.m_link = strLink;
}
MenuItem.prototype.Debug = function(strIndent)
{
    debug(strIndent + this.m_name +' : '+ this.m_link);
}



function MenuContainer(strId, strName, strLink)
{
    var id = "idMenu";
    var name = "";
    var link = "";
    
    if(strId) id = strId;
    if(strName) name = strName;
    if(strLink) link = strLink;
    
    this.m_id = id;
    this.m_menuItem = new MenuItem(name, link);
    this.m_subMenuContainers = new Array(); // array of MenuContainers
}
MenuContainer.prototype.AddSubMenu = function(strName, strLink)
{
    var menuItem = new MenuContainer(this.m_id+this.m_subMenuContainers.length, strName, strLink);
    this.m_subMenuContainers[this.m_subMenuContainers.length] = menuItem;
}
MenuContainer.prototype.AddSubMenuContainer = function(menuContainer)
{
    this.m_subMenuContainers[this.m_subMenuContainers.length] = menuContainer;
}
MenuContainer.prototype.GetHtml = function()
{
    var str=new Array();
    str[str.length]='<TABLE class="menuNoSpacing"><TBODY><TR>';
    
    for(var i=0; i< this.m_subMenuContainers.length; i++)
    {
        var menuContainer = this.m_subMenuContainers[i];
        str[str.length]='<TD valign="top">';
        str[str.length]=    menuContainer.GetMenuHtml(i+2);
        str[str.length]='</TD>';  
    }
    str[str.length]='</TR></TBODY></TABLE>';  

    return str.join("");
}
MenuContainer.prototype.GetMenuHtml = function(index)
{
    var idBackground = this.m_id+'_'+index;
    var classMenu = 'menu_0'+index;
    var classMenuText = "menuText";
    var classMenuTextHighlighted = "menuTextHighlighted";
    
    var str=new Array();
    str[str.length]='<DIV';
    str[str.length]=    ' onmouseout="ModifyClassForId(\''+this.m_id+'\',\'menuHidden\');';
    str[str.length]=        ' ModifyClassForId(\''+idBackground+'\',\''+classMenuText+'\');"';
    str[str.length]=    ' onmouseover="ModifyClassForId(\''+this.m_id+'\',\'menuVisible\',true);';
    str[str.length]=        ' ModifyClassForId(\''+idBackground+'\',\''+classMenuTextHighlighted+'\');"';
    str[str.length]=    ' onmousedown="SetLocation(\''+this.m_menuItem.m_link+'\');">';

    str[str.length]=    '<TABLE><TBODY>';
    str[str.length]=        '<TR><TD class="'+classMenu+'">';
    str[str.length]=            '<DIV id="'+idBackground+'" class="'+classMenuText+'">';
    str[str.length]=                this.m_menuItem.m_name;
    str[str.length]=            '</DIV>';
    str[str.length]=        '</TD></TR>';
    str[str.length]=        '<TR><TD>';
    str[str.length]=        '<DIV id="'+this.m_id+'" class="menuHidden">';
    str[str.length]=            this.GetSubMenuHtml();
    str[str.length]=        '</DIV>';
    str[str.length]=        '</TD></TR>';
    str[str.length]=    '</TBODY></TABLE>';
    
    str[str.length]='</DIV>';
    return str.join("");
}
MenuContainer.prototype.GetIdTable = function(strRowId)
{
    return this.m_id + strRowId;
}
MenuContainer.prototype.GetSubMenuHtml = function()
{
    var str=new Array();

    str[str.length]='<TABLE class="subMenuTable"><TBODY>';
    
    for(var i=0; i<this.m_subMenuContainers.length; i++)
    {
        var idBackground = this.GetIdTable(i);
        
        var menuItem = this.m_subMenuContainers[i].m_menuItem;
        var classMenuText = "subMenuText";
        var classMenuTextHighlighted = "subMenuTextHighlighted";
        str[str.length]='<TR><TD>';
        str[str.length]=    '<DIV';
        str[str.length]=    ' onmouseout="ModifyClassForId(\''+idBackground+'\',\''+classMenuText+'\');"';
        str[str.length]=    ' onmouseover="ModifyClassForId(\''+idBackground+'\',\''+classMenuTextHighlighted+'\');"';
        str[str.length]=    ' onmousedown="SetLocation(\''+menuItem.m_link+'\');g_bSubMenuSelected=true;">';
        
        /***/
        if(msie) 
        {
            // IE hack
            str[str.length]=    '<iframe';
            str[str.length]=        ' scrolling=\'no\'';
            str[str.length]=        ' frameborder=\'0\'';
            str[str.length]=        ' style=\'top:0px; left:0px;\'';
            str[str.length]=        ' class=\'subMenu\'';
            str[str.length]=        '>';
            str[str.length]=    '</iframe>';
        }
        /***/
        
        str[str.length]=    '<TABLE';

        if(msie) 
            str[str.length]=        ' style="left:0px; position:absolute;"';

        str[str.length]=        '><TBODY>';
        str[str.length]=        '<TR><TD id="'+idBackground+'" class="subMenuText">';
        str[str.length]=            menuItem.m_name;
        str[str.length]=        '</TD></TR>';       
        str[str.length]=    '</TBODY></TABLE>';    
        
        str[str.length]=    '</DIV>';
        
        str[str.length]=  '</TD></TR>';
    }
    str[str.length]='</TBODY></TABLE>';
    
    return str.join("");
}

MenuContainer.prototype.Debug = function(iDepth)
{
    var depth = 0;
    if(iDepth) depth = iDepth;
    
    var indent = "";
    for(var i = 0; i < depth; i++)
    {
        indent += '   ';
    }
    this.m_menuItem.Debug(indent);
    for(var i = 0; i < this.m_subMenuContainers.length; i++)
    {
        this.m_subMenuContainers[i].Debug(depth+1);
    }
}

var g_slideSpeed = 30; // number of px to increase per timed interval
var g_slideWidth = 0; // store the width
var g_slideHeight = 0;
var g_slideObject = null; // store the current object to be slid
var g_slideTimer = null; // timer for slide animation

/**
* slide()
*   horizontal slide effect
*/
function xSlide()
{
    g_slideWidth += g_slideSpeed;
	var width = g_slideWidth;
	var targetWidth = 224;

	if(width > targetWidth)
	{
        g_slideWidth=0;
		g_slideObject.style.width = targetWidth + 'px';
		g_slideTimer = false;
		return;
	}
	
	if(width <= 1)
	{
		g_slideObject.style.width = '1px';
		g_slideObject.style.display = 'none';
		g_slideTimer = false;
		return;
	}
	
	g_slideObject.style.overflow = 'hidden';
	g_slideObject.style.width = width + 'px';
	g_slideTimer = setTimeout('xSlide();', 20);
}
function ySlide()
{
    g_slideHeight += g_slideSpeed;
	var height = g_slideHeight;
	var targetHeight = 400;

	if(height > targetHeight)
	{
        g_slideHeight=0;
		g_slideObject.style.height = targetHeight + 'px';
		g_slideTimer = false;
		return;
	}
	
	if(height <= 1)
	{
		g_slideObject.style.height = '1px';
		g_slideObject.style.display = 'none';
		g_slideTimer = false;
		return;
	}
	
    g_slideObject.style.overflow = 'hidden';
	g_slideObject.style.height = height + 'px';
	g_slideTimer = setTimeout('ySlide();', 20);
}
function SlideElement(element)
{
    g_slideWidth = 0;
    g_slideHeight = 0;
    g_slideObject = element;
    ySlide();
}