var dom = document.getElementById ? 1 : 0; // DOM1 supported?

// Commented this because the Vodafone website  now overrules other popups
// like the "Dance Valley minisite."
//window.focus(); // remove focus from hyperlinks when using back button



// initialize ---------------------------------------------------------------------------

// functions that have to be started after page loading

function init(){
	if (getElement("mainnav"))initNavMouseover("mainnav");
	if (getElement("globalnav"))initNavMouseover("globalnav");
}

window.onload = init;

// mouseovers main & global navigation --------------------------------------------------
// initialize and preload mouseovers

var secondMouseOver = new Array(); // stores related image swaps

function initNavMouseover(e,e2){
	if (dom){
		var imgs = getElement(e).getElementsByTagName("IMG");
		var preloads = new Array();
		for (var i=0;i<imgs.length;i++){
			imgs[i].onmouseover = imgOver;
			imgs[i].onmouseout = imgOut;
			if (e2){secondMouseOver[imgs[i].src]=new Array(i,e2)} // img has related image swap on other image
			preloads[i] = new Image();
			preloads[i].src = imgs[i].src.replace(/.gif/,"_hi.gif");
		}
	}
}

// swap image to hover state
function imgOver(e){
	var img = (e && e.src) ? e : this;
	if (secondMouseOver[img.src]){// swap source of related image
		var img2 = document.getElementById(secondMouseOver[img.src][1]).getElementsByTagName("IMG")[secondMouseOver[img.src][0]];
		if (img2.src && img2.src != img.src) {
			imgOver(img2);
		}
	}
	if (img.src.indexOf("_ac.gif")==-1)img.src = img.src.replace(/.gif/,"_hi.gif");
}


// restore image swap
function imgOut(e){
	var img = (e && e.src) ? e : this;
	if (img.src.indexOf("_ac.gif")==-1)img.src = img.src.replace(/_hi.gif/,".gif");
	if (secondMouseOver[img.src]){// swap source of related image
		var img2 = document.getElementById(secondMouseOver[img.src][1]).getElementsByTagName("IMG")[secondMouseOver[img.src][0]];
		if (img2.src && img2.src != img.src) {
			imgOut(img2);
		}
	}
}

// open popup window ------------------------------------------------------------------
var defaultWidth = 510; // default popup window width
var defaultHeight = 550; // default popup window height

function openWindow(url,w,h,name){
	if (name == null) name = "";
	var props = "resizable,scrollbars";
	props += ",width=" + (w ? w : defaultWidth);
	props += ",height=" + ( h ? h : defaultHeight);
	props += ",status";
	var newwin = window.open(url,name,props);
}


// utility functions ------------------------------------------------------------------
// return object reference
function getElement(e){if (dom)return document.getElementById(e);if (document.all)return document.all[e]; return false;}

// TODO
function go( s, n ) {
	document.forms['go'].user_params.value = s;
	document.forms['go'].elements['next-screen'].value = n;
	document.forms['go'].submit();
}

function hoverResult(){
	this.className = this.className + "hover"
}

function hoverOutResult(){
	this.className = this.className.replace("hover","")
}

// tooltip  ----------------------------------------------------------------------------
var tooltip; // stores reference to tooltip layer

// utility functions
function getH(e){return e.offsetHeight;} // get actual height of element
function getW(e){return e.offsetWidth;} // get actual height of element
function setX(e,x){e.style.left=x + "px";} // set x-coordinate of element
function setY(e,y){e.style.top=y + "px";} // set y-coordinate of element

// hide tooltip layer
function hideTooltip(){
	if (tooltip){
		tooltip.style.display="none";
		tooltip = null;
	}
}

// show tooltip layer
function showTooltip(object,tipContent){
	tooltip = getElement(object);
	if (tooltip){
		var evt = window.event || arguments.callee.caller.arguments[0];
		var target = window.event ? evt.srcElement : evt.target;
		target.onmouseout = hideTooltip;
		if (tipContent) tooltip.innerHTML='<div class="tooltipbody"><div class="tooltiptext">'+unescape(tipContent)+'</div></div> ';
		tooltip.style.display="block";
		positionTooltip(evt);
		target.onmousemove = positionTooltip;
	}
}

// postitioning of tooltip above mouse pointer
function positionTooltip(evt){
	if (tooltip){
		if (!evt) var evt = window.event;
		getMousePosition(evt);
		setX(tooltip,mouseX - 15);
		setY(tooltip,mouseY - getH(tooltip) - 10);
	}
}

// Refresh and store current position of the mouse pointer
var mouseX = 0; // stores current x-coordinate of mouse pointer
var mouseY = 0; // stores current y-coordinate of mouse pointer
function getMousePosition(evt){
	var scrollX = window.innerHeight ? 0 : ((document.documentElement.scrollLeft > document.body.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft);
	var scrollY = window.innerHeight ? 0 : ((document.documentElement.scrollTop > document.body.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop);
	if (evt.pageX || evt.pageY){ // DOM event model supported
		mouseX = evt.pageX;
		mouseY = evt.pageY;
	} else { // IE event model supported
		mouseX = evt.clientX + scrollX;
		mouseY = evt.clientY + scrollY;
	}
}


