var left_pos = 378;

/* Generic Base Object */
function GenObj() {}
GenObj.prototype.setProp = function(prop,value) { this[prop] = value; }
GenObj.prototype.getProp = function(prop) { return this[prop]; }

function get(id) { return document.getElementById(id); }
function getByTagName(tag) { return document.getElementsByTagName(tag); }
function getByClassName(clsName) {
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0){
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}
function getInnerHTML(id) { return document.getElementById(id).innerHTML; }
function setInnerHTML(id, d) { var e = get(id); if (e != null) { e.innerHTML = d; } }
function getClassName(id) { return document.getElementById(id).className; }
function setClassName(id, c) {  var e = get(id);if (e != null) { e.className = c; } }
function getStyleAttr(id,p) { var e = get(id);if(e != null) { return e.style[p]; } }
function setStyleAttr(id,p,v) { var e = get(id);if(e != null) { e.style[p] = v; } }
function changeCLS(id,cls) { setClassName(id,cls); }
function formatURL(url){ var formattedURL = unescape(url);window.location = formattedURL;}

function show(id) { var e = get(id);if (e != null) { if(arguments.length>1) { setStyleAttr(id,"display",arguments[1]); } else { setStyleAttr(id,'display','block'); } } }
function hide(id) { var e = get(id); if (e != null) { if(arguments.length>1) { setStyleAttr(id,"display",arguments[1]); } else { setStyleAttr(id,'display','none'); } } }
function showDiv(id) { show(id); }
function hideDiv(id) { hide(id); }
function showInline(id) { show(id,"inline"); }
function hideInline(id) { hide(id,"hidden"); }
function displayInline(id) { show(id,"inline"); }
function hideInline(id) { hide(id,"hidden"); }
function toggle(id)
{
	if(get(id)!=null)
	{
		switch(getStyleAttr(id,"display"))
		{
			case "block":
				hide(id);
				break;
			case "inline":
				hideInline(id);
				break;
			case "none":
				show(id);
				break;
			case "hidden":
				displayInline(id);
				break;
			default:
				show(id);
				hide(id);
				break;
		}
	}
}
function getPosition(e) {
	e = e || window.event;
	var cursor = {x:0, y:0};
	if (e.pageX || e.pageY) {
		cursor.x = e.pageX;
		cursor.y = e.pageY + 15;
		//Minus 115 to offset size of header in global.jsp file
	} else {
		cursor.x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
		cursor.y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop + 15;
		//Minus 115 to offset size of header in global.jsp file
	}
	return cursor;
 }
function getElementXAndYPos(element) {
	var curLeft = 0, curTop = 0;
	if(element.offsetParent) {
		while (element.offsetParent) {
			curLeft += element.offsetLeft
			curTop += element.offsetTop
			element = element.offsetParent;
		}
	} else if(element.x) {
		curLeft = element.x;
		curTop = element.y;
	} else {}
	return {x:curLeft, y:curTop};
}
/* moved from preferences.js for use with fpe engine */
function getPrefs()
{
	var pref=getCookie("pref");
	if(pref==null||pref=="null") { pref = getDefault(window.location.toString().match("//[^.]*").toString().split("//")[1]); }
	if(arguments.length==1) { return pref.split("-")[1]; }
	else if(arguments.length==2)
	{
		var rtnString = "lang=" + pref.split("-")[0] + ";";
		rtnString += "loc=" + pref.split("-")[1] + ";";
		return rtnString;
	}
	else { return pref; }
}
function showHoverContent(event,w,h,elm,source,scrolling,offX,offY,iFrameId) {
	
	if(hoverNumber == 0){
		var cursor = getPosition(event);
		var element = get(elm);
		iFrameId = arguments[8] ? iFrameId : "pwm_iframe";	
		//iFrame constructor		
		ifrm = document.createElement("IFRAME");
		ifrm.setAttribute("src", source);
		ifrm.setAttribute("id", iFrameId);
		ifrm.setAttribute("scrolling", scrolling);
		ifrm.style.width = w +"px";
		ifrm.style.height = h +"px";
		element.appendChild(ifrm);
		element.style.display='block';
		element.style.width = w + "px";
		element.style.height = h + "px";
		element.style.left = cursor.x + offX + "px"; 
		element.style.top = cursor.y + offY + "px";
		hoverNumber = 1;
	} else {
		return;
	}
}
function hideHoverContent(event,elm){
	var element = document.getElementById(elm);
	element.style.display = "none";
	if(element.hasChildNodes()){
		while (element.childNodes.length >= 1){
		element.removeChild(element.firstChild);
		}
	}
	hoverNumber = 0;
	
}
function showDebugMsg(msg) {
	try { console.log(msg); } catch(err) {
		var curHtml = (getInnerHTML("debug") != "" ) ? curHTML + "<hr />" : msg;
		setInnerHTML("debug",curHtml);
		if(getStyleAttr("debug","display") != "block") {
			setStyleAttr("debug","width","200px");
			setStyleAttr("debug","height","250px");
			setStyleAttr("debug","padding","5px");
			setStyleAttr("debug","backgroundColor","#eee");
			setStyleAttr("debug","position","absolute");
			setStyleAttr("debug","top","0");
			setStyleAttr("debug","right","0");
			setStyleAttr("debug","overflow","auto");
			setStyleAttr("debug","display","block");
		}
	}
}

function getLang() { return getPrefs().split("-")[0]; }
function getLoc() { return getPrefs().split("-")[1]; }

function addScriptTag(src) {
	var replaceStr = "_dyn" + numAddedScripts + "_";
	numAddedScripts++;
	var id = src.replace(/\./,replaceStr);
	//alert(id);
	if(!get(id)) {
		var s= document.createElement('script');
		s.type= 'text/javascript';
		s.onload= helper; /* good browsers */
		s.onreadystatechange= function () { if (this.readyState == 'complete' || this.readyState == 'loaded') { helper(); }} /* ie */
		s.src= src; s.id = id;
		s.setAttribute('src',src); s.setAttribute('id',id);
		document.getElementsByTagName('head')[0].appendChild(s);
	}
	else {
		// script is already added to the page
	}
}
function helper() { return true; }

function strCompare(a,b) { if(a.toLowerCase()==b.toLowerCase()) { return true; }  else { return false;  } }
function exists(o) { if((o!=null)&&(o!="null")&&(o!=undefined)) { return true; } else { return false; } }
function stripHTML(str) { return str.replace(/\<.+?\>/g, ""); }
function trimString (str) { str = this != window? this : str; return str.replace(/^\s+/g, '').replace(/\s+$/g, '');}

function addEvent(elm, evType, fn, useCapture)
{
	if(elm.addEventListener){ elm.addEventListener(evType, fn, useCapture); return true; }
	else if(elm.attachEvent){ var r = elm.attachEvent('on' + evType, fn); return r; }
	else { elm['on' + evType] = fn; }
}

function formatTo(base, precision, quantity) {
	var a = roundTo(base, precision);
	//alert(a + "x" + quantity); 
	var b = a * quantity;
	 	b = roundTo(b,2);
	var s = b.toString();
	
	var decimalIndex = s.indexOf(".");
	if(precision > 0 && decimalIndex < 0){
		decimalIndex = s.length;
		s += '.';
	}
	while (decimalIndex + precision + 1 > s.length){
		s += '0';
	}
	return s;
}
function roundTo(base, precision) {
  var m = Math.pow(10, precision);
  var a = Math.round(base * m) / m;
  return a;
}
function currentPage() {
	var pageURL = "";
	var pageArray = window.location.toString().split("?");
	var re = new RegExp(/https?:\/\/(([a-zA-z]{2})\.)?delta.com/);
	if(pageArray.length>1)
	{
		if (pageArray[0].match(re)) 
		{
			re = new RegExp(/https?:\/\/((si|pl|qa)\.)?delta.com/);
			if(!pageArray[0].match(re)) { pageArray.shift(); }
		}
	}
	re.compile(/\d+;/);
	pageURL = pageArray[0].toString();
	pageURL = pageURL.replace(re,'');
	re.compile(/https?:\/\/[a-zA-Z]*\.?delta.com/);
	pageURL = pageURL.replace(re,"");
	return pageURL;
}

function addBehaviors() {
	var pageURL = currentPage();
	if(exists(get("menu1Container"))) { setStyleAttr("menu1Container","display","block"); }
	if(exists(get("menu2Container"))) { setStyleAttr("menu2Container","display","block"); }
	if(exists(get("menu3Container"))) { setStyleAttr("menu3Container","display","block"); }
	if(exists(get("menu4Container")))
	{
		if(get("nonjs_Worldwide")!=null&&get("nonjs_Worldwide")!="null") { setStyleAttr("nonjs_Worldwide","display","none"); }
		if(get("lang_loc")!=null&&get("lang_loc")!="null") { setStyleAttr("lang_loc","display","inline"); }
		setStyleAttr("menu4Container","display","block");
	}
	switch(pageURL)
	{
		case ("/home/index.jsp"||"/home/index.jsp#"||"/home/"||"/home/#"):
			setStyleAttr('hpApplications','display','block');
			break;
		default:
			break;
	}
}

/*****************************************************
 * ypSlideOutMenu
 * http://ypslideoutmenus.sourceforge.net/
 *
 * Licensed under AFL 2.0
 * http://www.opensource.org/licenses/afl-2.0.php
 *****************************************************/
 
ypSlideOutMenu.Registry=[];
ypSlideOutMenu.aniLen=250;
ypSlideOutMenu.hideDelay=1000;
ypSlideOutMenu.minCPUResolution=10;
function ypSlideOutMenu(id,_2,_3,_4,_5,_6)
{
	this.ie=document.all?1:0;
	this.ns4=document.layers?1:0;
	this.dom=document.getElementById?1:0;
	this.css="";
	if(this.ie||this.ns4||this.dom)
	{
		this.id=id;
		this.dir=_2;
		this.orientation=_2=="left"||_2=="right"?"h":"v";
		this.dirType=_2=="right"||_2=="down"?"-":"+";
		this.dim=this.orientation=="h"?_5:_6;
		this.hideTimer=false;
		this.aniTimer=false;
		this.open=false;
		this.over=false;
		this.startTime=0;
		this.gRef="ypSlideOutMenu_"+id;
		eval(this.gRef+"=this");
		ypSlideOutMenu.Registry[id]=this;
		var d=document;
		var _8="";
		_8+="#"+this.id+"Container{visibility:hidden;";
		_8+="left:"+_3+"px;";
		_8+="top:"+_4+"px;";
		_8+="overflow:hidden}";
		_8+="#"+this.id+"Container,#"+this.id+"Content{position:absolute;";
		_8+="width:"+_5+"px;";
		_8+="height:"+_6+"px;";
		_8+="clip:rect(0 "+_5+" "+_6+" 0);";
		_8+="}";
		this.css=_8;
		this.load();
	}
}
ypSlideOutMenu.writeCSS=function()
{
	document.writeln("<style type=\"text/css\">");
	for(var id in ypSlideOutMenu.Registry)
	{
		document.writeln(ypSlideOutMenu.Registry[id].css);
	}
	document.writeln("</style>");
}
ypSlideOutMenu.prototype.load=function()
{
	var d=document;
	var _10=this.id+"Container";
	var _11=this.id+"Content";
	var _12=this.dom?d.getElementById(_10):this.ie?d.all[_10]:d.layers[_10];
	if(_12)
	{
		var _13=this.ns4?_12.layers[_11]:this.ie?d.all[_11]:d.getElementById(_11);
	}
	var _14;
	if(!_12||!_13)
	{
		window.setTimeout(this.gRef+".load()",100);
	}
	else
	{
		this.container=_12;
		this.menu=_13;
		this.style=this.ns4?this.menu:this.menu.style;
		this.homePos=eval("0"+this.dirType+this.dim);
		this.outPos=0;
		this.accelConst=(this.outPos-this.homePos)/ypSlideOutMenu.aniLen/ypSlideOutMenu.aniLen;
		if(this.ns4)
		{
			//alert("ns4");
			this.menu.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT);
		}
		this.menu.onmouseover=new Function("ypSlideOutMenu.showMenu('"+this.id+"')");
		this.menu.onmouseout=new Function("ypSlideOutMenu.hideMenu('"+this.id+"')");
		this.endSlide();
	}
}
ypSlideOutMenu.showMenu=function(id)
{
	if((id=="menu1")||(id=="menu2")||(id=="menu3")) { isOpening[id]=true;setMenuState(id); }
	var reg=ypSlideOutMenu.Registry;
	var obj=ypSlideOutMenu.Registry[id];
	if(obj && obj.container)
	{
		obj.over=true;
		for(menu in reg)
		{
			if(id!=menu)
			{
				ypSlideOutMenu.hide(menu);
			}
		}
		if(obj.hideTimer)
		{
			reg[id].hideTimer=window.clearTimeout(reg[id].hideTimer);
		}
		if(!obj.open&&!obj.aniTimer)
		{
			reg[id].startSlide(true);
		}
	}
}
ypSlideOutMenu.hideMenu=function(id)
{
	var obj=ypSlideOutMenu.Registry[id];
	if(id!="menu4")
	{
		isOpening[id]=false;
		if(obj && obj.container)
		{
			if(obj.hideTimer)
			{
				window.clearTimeout(obj.hideTimer);
			}
			obj.hideTimer=window.setTimeout("ypSlideOutMenu.hide('"+id+"')",ypSlideOutMenu.hideDelay);
		}
	}
}
ypSlideOutMenu.hideAll=function()
{
	var reg=ypSlideOutMenu.Registry;
	for(menu in reg)
	{
		ypSlideOutMenu.hide(menu);
		if(menu.hideTimer)
		{
			window.clearTimeout(menu.hideTimer);
		}
	}
}
ypSlideOutMenu.hide=function(id)
{
	var obj=ypSlideOutMenu.Registry[id];
	obj.over=false;
	if(obj.hideTimer)
	{
		window.clearTimeout(obj.hideTimer);
	}
	obj.hideTimer=0;
	if(obj.open&&!obj.aniTimer)
	{
		obj.startSlide(false);
	}
}
ypSlideOutMenu.prototype.startSlide=function(_21)
{
	this[_21?"onactivate":"ondeactivate"]();
	this.open=_21;
	if(_21)
	{
		this.setVisibility(true);
	}
	this.startTime=(new Date()).getTime();
	this.aniTimer=window.setInterval(this.gRef+".slide()",ypSlideOutMenu.minCPUResolution);
}
ypSlideOutMenu.prototype.slide=function()
{
	var _22=(new Date()).getTime()-this.startTime;
	if(_22>ypSlideOutMenu.aniLen)
	{
		this.endSlide(false);
	}
	else
	{
		var d=Math.round(Math.pow(ypSlideOutMenu.aniLen-_22,2)*this.accelConst);
		if(this.open&&this.dirType=="-")
		{
			d=-d;
		}
		else
		{
			if(this.open&&this.dirType=="+")
			{
				d=-d;
			}
			else
			{
				if(!this.open&&this.dirType=="-")
				{
					d=-this.dim+d;
				}
				else
				{
					d=this.dim+d;
				}
			}
		}
		this.moveTo(d);
	}
}
ypSlideOutMenu.prototype.endSlide=function()
{
	this.aniTimer=window.clearTimeout(this.aniTimer);
	this.moveTo(this.open?this.outPos:this.homePos);
	if(!this.open)
	{
		this.setVisibility(false);
		//if(this.id=="menu4") { checkPrefTab(); /* see preferences.js */ }
		setMenuState(this.id); 
	}
	if((this.open&&!this.over)||(!this.open&&this.over))
	{
		this.startSlide(this.over);
	}
}
ypSlideOutMenu.prototype.setVisibility=function(_24)
{
	var s=this.ns4?this.container:this.container.style;s.visibility=_24?"visible":"hidden";
}
ypSlideOutMenu.prototype.moveTo=function(p)
{
	this.style[this.orientation=="h"?"left":"top"]=this.ns4?p:p+"px";
}
ypSlideOutMenu.prototype.getPos=function(c)
{
	return parseInt(this.style[c]);
}
ypSlideOutMenu.prototype.onactivate=function(){}
ypSlideOutMenu.prototype.ondeactivate=function(){}

/*****************************************************
 * added for handling of menu states
 *****************************************************/
function setMenuState(id)
{
	var t = "_trigger";
	if(isOpening[id])
	{
		/* reset menus to original state on page load */
		if(isActivated["menu1"]) { isActivated["menu1"]=false;setClassName("menu1"+t,getClassName("menu1"+t).split("_")[0]); }
		if(isActivated["menu2"]) { isActivated["menu2"]=false;setClassName("menu2"+t,getClassName("menu2"+t).split("_")[0]); }
		if(isActivated["menu3"]) { isActivated["menu3"]=false;setClassName("menu3"+t,getClassName("menu3"+t).split("_")[0]); }
		isActivated[id]=true;
		if(getClassName(id.toString()+t)=="active") { setClassName(id.toString()+t,getClassName(id.toString()+t)+"_activated"); }
		else { setClassName(id.toString()+t,"activated"); }
	}
	else
	{
		isActivated[id]=false;
		if(getClassName(id.toString()+t)!="active")
		{
			if(getClassName(id.toString()+t).split("_").length>1) { setClassName(id.toString()+t,"active"); }
			else { setClassName(id.toString()+t,""); }
		}
	}
}
var isActivated = { menu1:false, menu2:false, menu3:false };
var isOpening = { menu1:false, menu2:false, menu3:false };
function GenObj() {}
GenObj.prototype.setProp = function(prop,value) { this[prop] = value; }
GenObj.prototype.getProp = function(prop) { return this[prop]; }



