function open_slide_show(URL)
{
	var availWidth = screen.availWidth;
	var availHeight = screen.availHeight;
	var x = 0, y = 0;
	if (document.all)
	{
		x = window.screenTop;
		y = window.screenLeft;
	}
	else if (document.layers)
	{
		x = window.screenX;
		y = window.screenY;
		availWidth = availWidth - 11;
		availHeight = availHeight - 155;
	}
	var arguments = 'resizable=yes,toolbar=no,location=no,directories=no,addressbar=no,scrollbars=yes,status=no,menubar=no,top=0,left=0,screenX='+x+',screenY='+y+',width='+availWidth+',height='+availHeight;
	var newWindow = window.open(URL,'_blank',arguments);
}

var imageObjs = new Array();
var imageURLs = new Array("img_adverts/homepage_banner_text_platform.png", "img_adverts/homepage_banner_text_express.png",
	"img_adverts/homepage_banner_text_manage.png", "img_adverts/homepage_banner_text_consult.png", "img_adverts/homepage_banner_text_partner.png",
	"img_adverts/button_panel2_hl.png", "img_adverts/button_panel3_hl.png", "img_adverts/button_panel4_hl.png", 
	"img_adverts/button_panel5_hl.png");

function preloadPanelImages()
{
	for (var i=0; i<imageURLs.length; i++)
	{
		var img = new Image();
		img.src = imageURLs[i];
		imageObjs.push(img);
	}
}

function registerOnMouseOver(el, f)
{
	if (browser.isIE)
		attachEventToElement(el, "onmouseenter", function(e) {f(e, el)});
	else
		attachEventToElement(el, "onmouseover", function(e) {f(e, el)});
}

function onMouseOverHighlight(e, objPanel)
{	// ** Ignore false overs **	var relTarg; // mouse come from
	if (!e) var e = window.event;
	if (e.relatedTarget) relTarg = e.relatedTarget;
	else if (e.fromElement) relTarg = e.fromElement;	if (isSelfOrParentNode(relTarg, objPanel))		return;	// ------------------			var origStyle = objPanel.className;	var newStyle = origStyle+'Hover';	objPanel.className = newStyle;		var fOnMouseOut = function (e)	{		// ** Ignore false outs ***		var relTarg; // mouse goes too
		if (!e) var e = window.event;
		if (e.relatedTarget) relTarg = e.relatedTarget;
		else if (e.toElement) relTarg = e.toElement;				if (isSelfOrParentNode(relTarg, objPanel))			return;		//------------------				objPanel.className = origStyle;		selectNewMainBannerText("homepage_banner_background.png", "homepage_banner_text.png");		highlightButton(objPanel.id, false);	}		if (browser.isIE)
		attachEventToElement(objPanel, "onmouseleave", fOnMouseOut); // makes false outs code redundant
	else
		attachEventToElement(objPanel, "onmouseout", fOnMouseOut);			if (objPanel.id == "panel2")	{		selectNewMainBannerText("homepage_banner_background_plain.png", "homepage_banner_text_platform.png");		highlightButton(objPanel.id, true);	}	else if (objPanel.id == "panel3")	{		selectNewMainBannerText("homepage_banner_background_plain.png", "homepage_banner_text_manage.png");		highlightButton(objPanel.id, true);	}	else if (objPanel.id== "panel4")	{		selectNewMainBannerText("homepage_banner_background_plain.png", "homepage_banner_text_consult.png");		highlightButton(objPanel.id, true);	}	else if (objPanel.id == "panel5")	{		selectNewMainBannerText("homepage_banner_background_plain.png", "homepage_banner_text_training.png");		highlightButton(objPanel.id, true);	}	else if (objPanel.id == "partnersPanel")	{		selectNewMainBannerText("homepage_banner_background_plain.png", "homepage_banner_text_partner.png");	}}

function highlightButton(panelId, highlight)
{
	var i = document.getElementById("button_"+panelId);
	if (i)
	{
		if (highlight)
			i.src = "img_adverts/button_"+panelId+"_hl.png";
		else
			i.src = "img_adverts/button_"+panelId+".png";
	}
}

function selectNewMainBannerText(backFile, textFile)
{
	// set background
	var o = document.getElementById("header_cell");
	o.style.backgroundImage = "url(img_adverts/"+backFile+")";
	
	// set text banner
    var advText = document.getElementById("header_txt");    makeObjectTransparent(advText);    advText.src = "img_adverts/"+textFile;    revealMainBannerText(advText);
}

function increaseObjectOpacity(objName)
{          
    var obj = document.getElementById(objName);

	if (obj.style.MozOpacity < 1)
	{
		obj.style.MozOpacity = parseFloat(obj.style.MozOpacity) + 0.09;
	}
	else if (obj.filters && obj.filters.alpha.opacity<100)
	{
		obj.filters.alpha.opacity += 20;
	}
	else if (window.fadingIn)
	{
		clearInterval(fadingIn[obj.name]);
	}
}

function makeObjectTransparent(obj)
{
	if (obj.style.MozOpacity)
	{
		obj.style.MozOpacity = 0;
	}
	else if (obj.filters)
	{
		obj.filters.alpha.opacity = 0;
	}   
}

function fadeInObject(target)
{
	fadingIn[target.name] = setInterval("increaseObjectOpacity('"+target.name+"')", 45);
}

var fadingIn = new Object();

function revealMainBannerText()
{
    if (fadingIn && fadingIn["header_txt"])
    {
        clearInterval(fadingIn["header_txt"]);
    }
	fadeInObject(document.getElementById("header_txt"));
}

/*
 * Utility functions
 */
 
function Browser()
{
    var ua, s, i;

    this.isIE    = false;  // Internet Explorer
    this.isOP    = false;  // Opera
    this.isNS    = false;  // Netscape
    this.isSI    = false;  // Safari
    this.version = null;

    ua = navigator.userAgent;

    s = "Opera";
    if ((i = ua.indexOf(s)) >= 0)
    {
        this.isOP = true;
        this.version = parseFloat(ua.substr(i + s.length));
        return;
    }

    s = "Netscape6/";
    if ((i = ua.indexOf(s)) >= 0)
    {
        this.isNS = true;
        this.version = parseFloat(ua.substr(i + s.length));
        return;
    }

    s = "Safari/";
    if ((i = ua.indexOf(s)) >= 0)
    {
        this.isSI = true;
        this.version = parseFloat(ua.substr(i + s.length));
        return;
    }  

    // Treat any other "Gecko" browser as Netscape 6.1.

    s = "Gecko";
    if ((i = ua.indexOf(s)) >= 0)
    {
        this.isNS = true;
        this.version = 6.1;
        return;
    }

    s = "MSIE";
    if ((i = ua.indexOf(s)))
    {
        this.isIE = true;
        this.version = parseFloat(ua.substr(i + s.length));
        return;
    }
}

var browser = new Browser();

function test(x) { alert("test function called with: "+x.id); }

function isSelfOrParentNode(n1, n2)
{
    while (n1)
    {
        if (n1 == n2)
            return true;
            
        n1 = n1.parentNode;
    }
    
    return false;
}

function attachEventToElement(oElement, eventName, fnEvent)
{
    if (oElement.attachEvent)
    {
        oElement.attachEvent(eventName, fnEvent);
    }
    else if (oElement.addEventListener)
    {
        // ondblclick -> dblclick
        oElement.addEventListener(eventName.substr(2), fnEvent, false);
    }
}