﻿//Mozilla Methods
var isIE = (window.navigator.userAgent.indexOf("MSIE") > 0);

if(!isIE) 
{
  HTMLElement.prototype.__defineGetter__("innerText", 
              function () { return(this.textContent); });
  HTMLElement.prototype.__defineSetter__("innerText", 
              function (innerText) { this.textContent = innerText; });
}

//Classes
function classMenu(menuArea)
{
    try
    {
        //Properties
        this.MenuArea = menuArea;
        //Methods
        this.Initialize=_initialize;
        //Contstructor
        this.Initialize();
    }
    catch(ex)
    {
        alert('classMenu : '+ex.message);
    }
    
    //Private Methods
    function _initialize()
    {
        try
        {
            var menuItems = this.MenuArea.getElementsByTagName('A');
            for(var counter=0; counter < menuItems.length; counter++)
            {
                var menuItem=menuItems[counter];
                if(menuItem.className=='MenuItem')
                {
                    var key=menuItem.href.split('#')[1];
                    this[key] = new classEssimoLink(menuItem);
                    this[key].Element.key=key;
                    this[key].Element.href='#Top';
                    this[key].Element.onclick=OnClick;
                }
            }
        }
        catch(ex)
        {
            alert('classMenu._initialize : '+ex.message);
        }
    }
    //End Private Methods
    
    //Event Handlers
    function OnClick()
    {
        try
        {
            var divElements=document.body.getElementsByTagName('DIV');
            for(var counter=0;counter<divElements.length;counter++)
            {
                var divElement=divElements[counter];
                if(divElement.id.substring(0,8) == 'Content.')
                {
                    if(divElement.id == this.key)
                    { divElement.style.display=''; }
                    else
                    { divElement.style.display='none'; }
                }
            }
        }
        catch(ex)
        {
            alert('classMenu.OnClick : '+ex.message);
        }
    }
    //End Event Handlers
}

function classEssimoLink(element)
{
    //Properties
    this.Element = element;
    //Methods
    this.Initialize=_initialize;
    //Contstructor
    this.Initialize();
    
    //Private Methods
    function _initialize()
    {
        this.Element.onmousemove=OnMouseMove;
        this.Element.onmouseout=OnMouseOut;
        this.MarkI = new classMarkI(this.Element, true)
    }
    //End Private Methods
    
    //Event Handlers
    function OnMouseMove()
    {
        var iChars = this.getElementsByTagName('SPAN');
        for(var counter=0; counter < iChars.length; counter++)
        { iChars[counter].className='CharIRed'; }
        this.style.textDecoration='underline';
    }
    
    function OnMouseOut()
    {
        var iChars = this.getElementsByTagName('SPAN');
        for(var counter=0; counter < iChars.length; counter++)
        { iChars[counter].className='CharI'; }
        this.style.textDecoration='none';
    }
    //End Event Handlers
}

function classMarkI(element, isLink)
{
    //Properties
    this.Element = element;
    this.IsLink = isLink;
    
    //Methods
    this.Init = _init;
    
    this.Init();
    
    function _init()
    {
        //Get Text
        var elementText=this.Element.text;
        if(!elementText)
        { elementText=this.Element.innerText; }
        this.Element.innerHTML='';
        
        //Set link properties
        var className='CharI';
        if(!this.IsLink)
        { className+='Red'; }
        
        //Search for I's
        for(var charCounter=0; charCounter < elementText.length; charCounter ++)
        {
            var elementChar=elementText.substr(charCounter,1);
            if(elementChar.toLowerCase() == 'i')
            { this.Element.innerHTML+='<span class="'+className+'">'+elementChar+'</span>'; }
            else
            { this.Element.innerHTML+=elementChar; }
        }
    }  
}

function classLink(element)
{
    //Properties
    this.Element = element;
    
    //Methods
    this.Init = _init;
    
    this.Init();
    
    function _init()
    {
        this.Element.onmousemove=Link_OnMouseMove;
        this.Element.onmouseout=Link_OnMouseOut;
    }
    
    function Link_OnMouseMove()
    {
        this.className='LinkHover'
    }
    
    function Link_OnMouseOut()
    {
        this.className='Link'
    }
}

//Functions
function Link_GoToPage(htmlPage)
{
    var queryString = '?Now=' + (new Date()).valueOf();
    dataFrame = document.getElementById('ifrmDataFrame').src=htmlPage + queryString;
}
