// JavaScript Document
/* required functions */

function checkRequiredFunctions() {

	supportListIe();

	/* makeTreesC(); */

	if(document.getElementById('PortalPortletOmvGatewayContentMask')) {

		divScroller();

	}

}



/* enables navigation for ie */

function supportListIe() {

	if (document.all) {

		uls = document.getElementsByTagName('UL');

		for(i = 0; i < uls.length; i++) {

            if (uls[i].className == 'PortalHeaderMetaRightList' || uls[i].className == 'PortalHeaderMetaRightListCountry' ||

            	uls[i].className == 'PortalHeaderMetaRightList2' || uls[i].className == 'PortalHeaderMetaRightListCountry2') {

                

                var lis = uls[i].getElementsByTagName('li');

				for (j = 0; j < lis.length; j++) {

                    if(lis[j].lastChild.tagName == 'UL') {

                        lis[j].onmouseover = function() { this.lastChild.style.left = 'auto'; }

                        lis[j].onmouseout = function() { this.lastChild.style.left = '-10000'; }

                    }

                }

            }

        }

    }

}



/* replace input values */

function checkInputValue(formElement) {

	if(formElement.value == "") {

		formElement.value = formElement.title;

	} else if (formElement.value != formElement.title) {

		formElement.value = formElement.value;

	} else if (formElement.value == formElement.title) {

		formElement.value = "";

	}

}



/* replace input background image */

function checkInputPassBg(formElement) {

	if(formElement.value == "") {

		formElement.style.backgroundImage = "url(images/HeaderMetaInputPassBg_de.gif)";

	} else {

		formElement.style.backgroundImage = "none";

	} 

}



/* clear input background image */

function clearInputPassBg(formElement) {

	formElement.style.backgroundImage = "none";

}



/*

    Written by Jonathan Snook, http://www.snook.ca/jonathan

    Add-ons by Robert Nyman, http://www.robertnyman.com

*/



function getElementsByClassName(oElm, strTagName, strClassName){

    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);

    var arrReturnElements = new Array();

    strClassName = strClassName.replace(/\-/g, "\\-");

    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");

    var oElement;

    for(var i=0; i<arrElements.length; i++){

        oElement = arrElements[i];      

        if(oRegExp.test(oElement.className)){

            arrReturnElements.push(oElement);

        }   

    }

    return (arrReturnElements)

}



/*

Coded by Travis Beckham

http://www.squidfingers.com | http://www.podlob.com

version date: 01/24/03

*/



/* Cross-Browser Functions */

var dom = document.getElementById;

var iex = document.all;

var ns4 = document.layers;



function addEvent(event,method){

	this[event] = method;

	if(ns4) this.captureEvents(Event[event.substr(2,event.length).toUpperCase()]);

}

function removeEvent(event){

	this[event] = null;

	if(ns4) this.releaseEvents(Event[event.substr(2,event.length).toUpperCase()]);

}

function getElement(name,nest){

	nest = nest ? "document."+nest+"." : "";

	var el = dom ? document.getElementById(name) : iex ? document.all[name] : ns4 ? eval(nest+"document."+name) : false;

	el.css = ns4 ? el : el.style;

	el.getTop = function(){return parseInt(el.css.top) || 0};

	el.setTop = function(y){el.css.top = ns4 ? y: y+"px"};

	el.getHeight = function(){return ns4 ? el.document.height : el.offsetHeight};

	el.getClipHeight = function(){return ns4 ? el.clip.height : el.offsetHeight};

	el.hideVis = function(){el.css.visibility="hidden"};

	el.addEvent = addEvent;

	el.removeEvent = removeEvent;

	return el;

}

function getYMouse(e){

	return iex ? event.clientY : e.pageY;

}



document.addEvent = addEvent;

document.removeEvent = removeEvent;



/* Scroller Class */



ScrollObj = function(speed, dragHeight, trackHeight, trackObj, upObj, downObj, dragObj, contentMaskObj, contentObj){

	this.speed = speed;

	this.dragHeight = dragHeight;

	this.trackHeight = trackHeight;

	this.trackObj = getElement(trackObj);

	this.upObj = getElement(upObj);

	this.downObj = getElement(downObj);

	this.dragObj = getElement(dragObj);

	this.contentMaskObj = getElement(contentMaskObj);

	this.contentObj = getElement(contentObj,contentMaskObj);

	this.obj = contentObj+"Object";

	eval(this.obj+"=this");

	

	this.trackTop = this.dragObj.getTop();

	this.trackLength = this.trackHeight-this.dragHeight;

	this.trackBottom = this.trackTop+this.trackLength;

	this.contentMaskHeight = this.contentMaskObj.getClipHeight();

	this.contentHeight = this.contentObj.getHeight();

	this.contentLength = this.contentHeight-this.contentMaskHeight;

	this.scrollLength = this.trackLength/this.contentLength;

	this.scrollTimer = null;

	

	if(this.contentHeight <= this.contentMaskHeight){

		this.dragObj.hideVis();

	}else{

		var self = this;

		this.trackObj.addEvent("onmousedown", function(e){self.scrollJump(e);return false});

		this.upObj.addEvent("onmousedown", function(){self.scroll(self.speed);return false});

		this.upObj.addEvent("onmouseup", function(){self.stopScroll()});

		this.upObj.addEvent("onmouseout", function(){self.stopScroll()});

		this.downObj.addEvent("onmousedown", function(){self.scroll(-self.speed);return false});

		this.downObj.addEvent("onmouseup", function(){self.stopScroll()});

		this.downObj.addEvent("onmouseout", function(){self.stopScroll()});

		this.dragObj.addEvent("onmousedown", function(e){self.startDrag(e);return false});

		if(iex) this.dragObj.addEvent("ondragstart", function(){return false});

	}

}

ScrollObj.prototype.startDrag = function(e){

	this.dragStartMouse = getYMouse(e);

	this.dragStartOffset = this.dragObj.getTop();

	var self = this;

	document.addEvent("onmousemove", function(e){self.drag(e)});

	document.addEvent("onmouseup", function(){self.stopDrag()});

}

ScrollObj.prototype.stopDrag = function(){

	document.removeEvent("onmousemove");

	document.removeEvent("onmouseup");

}

ScrollObj.prototype.drag = function(e){

	var currentMouse = getYMouse(e);

	var mouseDifference = currentMouse-this.dragStartMouse;

	var dragDistance = this.dragStartOffset+mouseDifference;

	var dragMovement = (dragDistance<this.trackTop) ? this.trackTop : (dragDistance>this.trackBottom) ? this.trackBottom : dragDistance;

	this.dragObj.setTop(dragMovement);

	var contentMovement = -(dragMovement-this.trackTop)*(1/this.scrollLength);

	this.contentObj.setTop(contentMovement);

}

ScrollObj.prototype.scroll = function(speed){

	var contentMovement = this.contentObj.getTop()+speed;

	var dragMovement = this.trackTop-Math.round(this.contentObj.getTop()*(this.trackLength/this.contentLength));

	if(contentMovement > 0){

		contentMovement = 0;

	}else if(contentMovement < -this.contentLength){

		contentMovement = -this.contentLength;

	}

	if(dragMovement < this.trackTop){

		dragMovement = this.trackTop;

	}else if(dragMovement > this.trackBottom){

		dragMovement = this.trackBottom;

	}

	this.contentObj.setTop(contentMovement);

	this.dragObj.setTop(dragMovement);

	this.scrollTimer = window.setTimeout(this.obj+".scroll("+speed+")",25);

}

ScrollObj.prototype.stopScroll = function(){

	if(this.scrollTimer){

		window.clearTimeout(this.scrollTimer);

		this.scrollTimer = null;

	}

}

ScrollObj.prototype.scrollJump = function(e){

	var currentMouse = getYMouse(e);

	var dragDistance = currentMouse-(this.dragHeight/2);

	var dragMovement = (dragDistance<this.trackTop) ? this.trackTop : (dragDistance>this.trackBottom) ? this.trackBottom : dragDistance;

	this.dragObj.setTop(dragMovement);

	var contentMovement = -(dragMovement-this.trackTop)*(1/this.scrollLength);

	this.contentObj.setTop(contentMovement);

}



/* Misc Functions */



function fixNetscape4(){

	if(ns4origWidth != window.innerWidth || ns4origHeight != window.innerHeight){

		window.location.reload();

	}	

}

if(document.layers){

	ns4origWidth = window.innerWidth;

	ns4origHeight = window.innerHeight;

	window.onresize = fixNetscape4;

}



/* required for omv corporate site */



function divScroller(){

	// special style for scrolling

	document.getElementById('PortalPortletOmvGatewayContentMask').style.overflow = "hidden";

	document.getElementById('PortalPortletOmvGatewayDrag').style.display = "block";

	document.getElementById('PortalPortletOmvGatewayTrack').style.display = "block";

	// speed, dragHeight, trackHeight, trackObj, upObj, downObj, dragObj, contentMaskObj, contentObj

	myScroll = new ScrollObj(6,80,120,"PortalPortletOmvGatewayTrack","PortalPortletOmvGatewayUp","PortalPortletOmvGatewayDown","PortalPortletOmvGatewayDrag","PortalPortletOmvGatewayContentMask","PortalPortletOmvGatewayContent");

}



window.onload = checkRequiredFunctions;



/*

Converts an unordered list to an explorer-style tree, with clickable icons

http://www.kryogenix.org/code/browser/aqlists/

Stuart Langridge, November 2002

sil@kryogenix.org

*/



function makeTreesC() {

    // We don't actually need createElement, but we do

    // need good DOM support, so this is a good check.

    if (!document.createElement) return;

    

    uls = document.getElementsByTagName("ul");

    for (uli=0;uli<uls.length;uli++) {

        ul = uls[uli];

        if (ul.nodeName == "UL" && ul.className == "PortalPortletContentSitemap") {

            processULELC(ul);

				openUL(ul);

        }

    }

}



function processULELC(ul) {

    if (!ul.childNodes || ul.childNodes.length == 0) return;

    // Iterate LIs

    for (var itemi=0;itemi<ul.childNodes.length;itemi++) {

        var item = ul.childNodes[itemi];

        if (item.nodeName == "LI") {

            // Iterate things in this LI

            var a;

            var subul;

	    subul = "";

            for (var sitemi=0;sitemi<item.childNodes.length;sitemi++) {

                var sitem = item.childNodes[sitemi];

                switch (sitem.nodeName) {

                    case "A": a = sitem; break;

                    case "UL": subul = sitem; 

                               processULELC(subul);

                               break;

                }

            }

            if (subul) {

                associateELC(a,subul);

            } else {

                a.parentNode.className = "PortalPortletContentSitemapIcon";

            }

        }

    }

}



function associateELC(a,ul) {

    if (a.parentNode.className.indexOf('PortalPortletContentSitemapOpen') == -1)

      a.parentNode.className = 'PortalPortletContentSitemapClosed';

	a.onclick = function () {

        this.parentNode.className = (this.parentNode.className=='PortalPortletContentSitemapOpen') ? "PortalPortletContentSitemapClosed" : "PortalPortletContentSitemapOpen";

        return true;

    }

}



function openUL(ul) {

	if (!ul.childNodes || ul.childNodes.length == 0) return;

}



/* functions to uncrypt the prior crypted email adresses onClick on a mailTo link */

function UnCryptMailto( s )

{

	var n = 0;

	var r = "";

	for( var i = 0; i < s.length; i++)

		{

			n = s.charCodeAt( i );

			if( n >= 8364 )

			{

				n = 128;

			}

			r += String.fromCharCode( n - 1 );

		}

	return r;

}



function linkTo_UnCryptMailto( s )

	{

		location.href=UnCryptMailto( s );

	}



function remove_defaulttext(pObject, pDefaultValue)

	{

		if (pObject.value == pDefaultValue)

		{

			pObject.value = '';

		}

	}