// JavaScript Document
//START BROWSER/OS detection
var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

if (checkIt('konqueror'))
{
	browser = "Konqueror";
	OS = "Linux";
}
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (!checkIt('compatible'))
{
	browser = "Netscape Navigator"
	version = detect.charAt(8);
}
else browser = "An unknown browser";

if (!version) version = detect.charAt(place + thestring.length);

if (!OS)
{
	if (checkIt('linux')) OS = "Linux";
	else if (checkIt('x11')) OS = "Unix";
	else if (checkIt('mac')) OS = "Mac"
	else if (checkIt('win')) OS = "Windows"
	else OS = "an unknown operating system";
}

function checkIt(string)
{
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}
//END BROWSER/OS Detection

//PAGE LOADING
var g_aLoadFunctions = new Array();
var g_aRenderables = new Array();
var g_QueryString;
function PageLoad()
{
	g_QueryString = new QueryParser();
	g_QueryString.init(window.location.search);
	for( var i = 0; i < g_aLoadFunctions.length; ++i )
	{
		g_aLoadFunctions[i]();
	}
	for( var i = 0; i < g_aRenderables.length; ++i )
	{
	    g_aRenderables[i].render();
	}
}
window.onload = PageLoad;
//END PAGE LOAD

//QUERY PARSING
function QueryParser()
{
	var m_aQueryKeys = new Array();
	var m_aQueryValues = new Array();
	this.init = function( sQueryString )
	{
		if( !IsValidObject( sQueryString ) )
			return;
		for(var i=0; i < sQueryString.split("&").length; i++) 
		{
			var keyValuePair = sQueryString.split("&")[i];
			m_aQueryKeys.push( keyValuePair.split("=")[0] );
			m_aQueryValues.push( keyValuePair.split("=")[1] );
		}
	}
	
	this.GetValue = function( sKey )
	{
		for(var i=0; i < m_aQueryKeys.length; i++) 
		{
			if( m_aQueryKeys[i].toLowerCase() == sKey.toLowerCase() )
			{
				return m_aQueryValues[i];
			}
		}
		return "";
	}
}
//END QUERY PARSING

var objPopTip = null;
var popMenuOn = 0;
function ShowPopTip( parent, objectID, event )
{
	if(popMenuOn == 1)
	{   
	    HidePopTip();
		document.onclick = HidePopTip;
	}
		
	objPopTip = document.getElementById(objectID);
	if( !IsValidObject(objPopTip) )
		return;
	
	if( IsValidObject( objPopTip.style ) )
	{
	    //MovePopTipToMouse(event);
		objPopTip.style.display = 'inline';
		popMenuOn = 1;
		var docIFrameDoc = null;
		if( browser == "Internet Explorer")
			docIFrameDoc = objPopTip.contentWindow.document;
		else 
			docIFrameDoc = objPopTip.contentDocument;
			
		var objContentTable = docIFrameDoc.getElementById("ContentTable");
		if( !IsValidObject(objContentTable) )
		    return;
		objPopTip.style.height = objContentTable.offsetHeight + 'px';
		objPopTip.style.width = objContentTable.offsetWidth + 'px';
	}
}

function SetDivContent( sDivId , sContent)
{
    if( !IsValidObject(sDivId) )
		return;
    if( !IsValidObject(sContent) )
		return;
	var oDiv = document.getElementById(sDivId);
	if( !IsValidObject(oDiv) )
		return;
	
	if( IsValidObject( oDiv.style ) )
	{
		oDiv.innerHTML = sContent;
	}
}

function HideDiv( sDivId )
{
	var oDiv = document.getElementById(sDivId);
	if( !IsValidObject(oDiv) )
		return;
	
	if( IsValidObject( oDiv.style ) )
	{
		oDiv.style.display = 'none';
	}
}

function MovePopTipToMouse(event)
{
    if( IsValidObject(objPopTip) &&  IsValidObject( objPopTip.style ) )
    {
        var cursor = getCursorPosition(event);
	    xPos = cursor.x + 15;
	    yPos = cursor.y + 15;
        objPopTip.style.left = xPos + 'px';
	    objPopTip.style.top = yPos + 'px';
	}
}

function HidePopTip()
{
	if (popMenuOn == 1) 
	{
		popMenuOn = 0;
	}

	if( IsValidObject( objPopTip ) )
	{
		objPopTip.style.display = 'none';
	}
	popMenuOn = 0;
	document.onclick = null;
	
}

function IsValidObject(object) 
{
	if(object == null)
	{
		return false;
	}
	if (typeof(object) ==  "undefined") 
	{
		return false;
	}
	return true;
}


function ResizeParentIframe( id, height, width )
{
    if(!IsValidObject(id) )
        return;
    var oiframe = parent.document.getElementById(id);
    if(!IsValidObject(oiframe) )
        return;
    oiframe.style.height = height + 'px';
    oiframe.style.width = width + 'px';
}

function SetParentIFrameDisplay( id, sDisplay )
{
    if(!IsValidObject(id) )
        return;
    var oiframe = parent.document.getElementById(id);
    if(!IsValidObject(oiframe) )
        return;
    oiframe.style.display = sDisplay;
}


function PopTipElement()
{
	var iHeight = 30;
	var iWidth = 150;
	var m_frmIFrame;
	var m_docIFrame;
	var m_sName;
	var m_sTitle;
	var m_sDescription;
	var m_sPopTipCSSStyle;
	this.init = function( height,width, sName, sTitle, sDescription, sPopTipCSSStyle )
	{
	    iHeight = height;
	    iWidth = width;
		m_sName = sName;
		m_sDescription = sDescription;
		m_sTitle = sTitle;
		m_sPopTipCSSStyle = sPopTipCSSStyle;
	}
	
	this.render = function()
	{
	    //if( browser == "Internet Explorer")
	    //{
		    with( document) 
		    {
			    m_frmIFrame = createElement('iframe');
    		    
			    with( m_frmIFrame )
			    { 
				    id = m_sName; 
				    className=m_sPopTipCSSStyle;
				    scrolling='no';
			    }
			    m_frmIFrame.frameBorder=0;
			    body.appendChild( m_frmIFrame );
			    m_frmIFrame.style.display = 'none';
			    if( browser == "Internet Explorer")
				    m_docIFrame = m_frmIFrame.contentWindow.document;
			    else 
				    m_docIFrame = m_frmIFrame.contentDocument;
		    }
    		
		    var iFramehtml = '<html><head>';
		    iFramehtml += '<script language="JavaScript1.2" src="scripts/utils.js" type="text/javascript"></script>';
		    iFramehtml += '<link rel="stylesheet" type="text/css" href="style_default.css" />';
		    iFramehtml += '</head><body topmargin=\"0px\" bottommargin=\"0px\" leftmargin=\"0px\" rightmargin=\"0px\">';
		    //iFramehtml += '<script language="javascript"> <!-- function OnPageLoad() { ResizeParentIframe(\"'+m_sName+'\", document.getElementById("ContentTable").offsetHeight, document.getElementById("ContentTable").offsetWidth ); SetParentIFrameDisplay(\"'+m_sName+'\",\'none\');} g_aLoadFunctions.push(OnPageLoad); // --></script>';
		    iFramehtml += '<table id="ContentTable" class="PopTipTable" ><tr><td><strong>' + m_sTitle + '</strong></td></tr><tr valign="top"><td>' + m_sDescription + '</td></tr></table>';
    		
		    m_frmIFrame.contentWindow.document.write( iFramehtml );
		    m_frmIFrame.contentWindow.document.close();
		/*}
		else
		{
		    with(document)
		    {
		        m_frmIFrame = createElement('div');
		        with( m_frmIFrame )
		        {
		            id = m_sName;
		            className = m_sPopTipCSSStyle;
		            scrolling = 'no';
		        }
		        body.appendChild(m_frmIFrame);
		        m_frmIFrame.style.display = 'none';
		        m_frmIFrame.innerHtml = '<table id="ContentTable" class="PopTipTable" ><tr><td><strong>' + m_sTitle + '</strong></td></tr><tr valign="top"><td>' + m_sDescription + '</td></tr></table>';
		    }
		}*/
	}
}

function CopyValueTo( sCtrl1Name, sCtrl2Name )
{
    if( !IsValidObject( sCtrl1Name ) || !IsValidObject( sCtrl2Name ))
		return;
	var oCtrl1 = document.getElementById(sCtrl1Name);
	if(!IsValidObject(oCtrl1))
		return;
	var oCtrl2 = document.getElementById(sCtrl2Name);
	if(!IsValidObject(oCtrl2))
		return;
	oCtrl2.value = oCtrl1.value;
}

function SetValue( sCtrlName, sValue )
{
    if( !IsValidObject( sCtrlName ) || !IsValidObject( sValue ))
		return;
	var oCtrl = document.getElementById(sCtrlName);
	if(!IsValidObject(oCtrl))
		return;
	oCtrl.value = sValue;
}

function StyleChange( oDiv, styleChangeTo )
{
	if( !IsValidObject( oDiv ) || !IsValidObject( styleChangeTo ))
		return;
	if( IsValidObject( oDiv.className  ) )
	{
		oDiv.className  = styleChangeTo;
	}
}

function findPosX(obj)
{
	if(!IsValidObject(obj))
		return 0;

	var curleft = 0;
	if(IsValidObject(obj.offsetParent))
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function ChangeImage(sImageID, sImageFile )
{
    if(!IsValidObject(sImageID))
		return;
	if(!IsValidObject(sImageFile))
		return;
	var oImage = document.getElementById(sImageID);
	if(!IsValidObject(oImage))
		return;
	oImage.src = sImageFile;
}

function findPosY(obj)
{
	if(!IsValidObject(obj))
		return 0;
	var curtop = 0;
	if(IsValidObject(obj.offsetParent))
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function getCursorPosition(e) 
{
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    } 
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX + 
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY + 
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
    return cursor;
}
