/*
	uses copyOfWindowOpen before browser sets window.open to false upon load
*/
var copyOfWindowOpen = window.open;
function popupUsingCopy(url, name, w, h) {
	copyOfWindowOpen(url, name, 'toolbar=0,scrollbars=0,location=0,statusbar=1,menubar=0,resizable=1,width='+w+',height='+h);
}

var isNS4 = document.layers ? true : false;
var isNS6 = !isIE() && document.getElementById ? true : false;
var old = !isNS4 && !isNS6 && !isIE();
if (isNS4) {
  document.captureEvents(Event.MOUSEMOVE);
}
if (isNS6) {
  document.addEventListener("mousemove", updateFloatingBoxCoordinate, true);
}
if (isNS4 || isIE()) {
  document.onmousemove = updateFloatingBoxCoordinate;
}
function updateFloatingBoxCoordinate(e) {
  var x = (isNS4 || isNS6) ? e.pageX : event.clientX + (document.documentElement ? document.documentElement.scrollLeft : document.body.scrollLeft);
  var y = (isNS4 || isNS6) ? e.pageY : event.clientY + (document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop);
  window.setTimeout("showTooltip(" + x + "," + y + ")", 0);
}
function showTooltip(x, y) {
  var tooltip = document.getElementById("tooltip");
  if (tooltip) {
    var pos = YAHOO.util.Dom.getXY(tooltip);
    pos[0] = x + 7;
    pos[1] = y + 10;
    YAHOO.util.Dom.setXY(tooltip, pos);
  }
}

function gfMonetaryFormat(theAmount, currency) {
	if (currency == 'BHD' || currency == 'IQD' ||
	    currency == 'JOD' || currency == 'KWD' ||
	    currency == 'LYD' || currency == 'TND' ||
	    currency == 'OMR')
	{
		return getNumber(theAmount).toFixed(3);
	}
	else
	{
		return getNumber(theAmount).toFixed(2);
	}
}

function formatAndPopulateNumber(elID, amount, currency)	{
	document.getElementById(elID).innerHTML = gfMonetaryFormat(amount, currency);
}

function goToStage(direction, currentStage) {
	document.getElementById("DIRECTION").value = direction;
	document.getElementById("crumb").click();
}

function convertNamesToUpperCase(elementId) {
	if (document.getElementById(elementId)) {
		var strArray = document.getElementById(elementId).value.split(" ");
		var buffer= "";
		for (var i=0; i<strArray.length; i++) {
			var str = strArray[i];
			buffer = buffer + " " + str.substring(0,1).toUpperCase() + str.substring(1, str.length).toLowerCase();
		}
		document.getElementById(elementId).value = buffer.replace(/^\s+|\s+$/g, "");//trim whitespaces
	}
}

function overrideSelectLabel(sel, newLabel) {
	var select = document.getElementById(sel);
	for (i=0; i < select.length; i++)
	{
		if(select.options[i].value == '')
		{
			select.options[i].innerHTML = newLabel;
			break;
		}
	}
}

// checks for key press. if ENTER key is hit, invokes submit
function checkEnter(event, id)
{ 	
	var code = 0;
	var NS4 = (document.layers) ? true : false;
	
	if (NS4)
	{
		code = event.which;
	}
	else
	{
		code = event.keyCode;
	}

	if (code==13)
	{	
		var element = document.getElementById(id); 
		if (element != null)
		{
			event.returnValue=false;
            event.cancel = true;
			element.click();
		}		
    }
}

function getPageHeight() 
{
	var height = null;
	if (window.innerHeight != null)		// for Firefox 
	{ 
		height = window.innerHeight;
	} 
	else if (document.documentElement	&& document.documentElement.clientHeight)	 // for IE 
	{
		height = document.documentElement.clientHeight;
	} 
	else if (document.body != null) 
	{
		height = document.body.clientHeight;
	}
	return height;
}

function getPositionTop()
{
	var position = 0;
	if(typeof window.pageYOffset != 'undefined')		// for Firefox
	{
		position = window.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)		// for IE
	{
		position = document.documentElement.scrollTop
	}
	else if (document.body.scrollTop)
	{
		position = document.body.scrollTop;
	}
	return position;
}

// enables a radio button or group of radio buttons to be toggled like a checkbox
function makeRadioButtonToggle(btnName){
    radBtns = document.getElementsByName(btnName);

    // initialize radio button values including it's onclick event handler 
	for(i=0; i < radBtns.length; i++)
	{
		radBtn = radBtns[i];
		radBtn.prevState = false;
		radBtn.grpMates = new Array();
	
		var count = 0;
		for(j=0; j < radBtns.length; j++)
		{
			if(i != j)
			{
				radBtn.grpMates[count++] = radBtns[j];
			}
		}
		radBtn.onclick = radBtnClicked;  // this overrides the onclick event handler of the radio button
	}
	
	//this function is called when a radio button is clicked
	function radBtnClicked()
	{
		if(this.prevState == true)
		{
			this.checked = false;
			this.prevState = false;
		}
		else
		{
			for(j=0; j < this.grpMates.length; j++)
			{
				this.grpMates[j].prevState = false;
			}
			this.checked = true;
			this.prevState = true;
		}
	}
}

// ie version detection
function isIE6() {
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) 
	{
		var ieversion = new Number(RegExp.$1);
		if (ieversion >= 6 && ieversion < 7)
			return true;

		return false;
	} 	
		return false;
}

function isIE8() {
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) 
	{
		var ieversion = new Number(RegExp.$1);
		if (ieversion >= 8 && ieversion < 9)
			return true;

		return false;
	} 	
		return false;
}

function showLogo(spanId) {
	spanElem = document.getElementById(spanId);
	if(spanElem)
		spanElem.style.display = "inline";
}
