//error handling
window.onerror = null ;

// dynamic button 
var dynamicButtonPressed = false;

//detect netscape
var ns = (navigator.appName.indexOf('Netscape')>=0)

function executeTimer(typeCode) {
	if (typeCode == 0) {
		alert('Your session has timed out.  Please sign in to continue utilizing the site.')
	}
	else {
		var now = new Date();
		alert('Your session will time out in 5 minutes from ' + now.toLocaleString() + ' due to inactivity.  Please refresh (press F5) the current window or click another page to reset your session.')
	}
}

//Pop up window for notes
function openWindowNotes(url) {
	popupWindowNotes = 	window.open(url,'remote','resizable,scrollbars,width=345,height=250,');
	//return popupWindowNotes;
}
//Pop up sized window
function openSizedWindow(url,width,height,toolbar) {
	if (toolbar == null) toolbar = 'yes'
	popupWindowNotes = 	window.open(url,'remote','toolbar=' + toolbar + ',resizable,scrollbars,width=' + width + ',height=' + height + ',');
	//return popupWindowNotes;
}

//Pop up window
function openPrinterFriendlyWindow(url) {
	popupWindowNotes = 	window.open(url,'remote','resizable,scrollbars,width=500,height=300,');
	//return popupWindowNotes;
}

//Pop up window for another Web site
function openWin(url) {
	popupWin = 	window.open(url,'remote','toolbar=yes,status=yes,resizable,scrollbars=yes,location=yes,menubar=yes,directories=yes,width=700,height=500,');
	//return popupWin;
}
//Pop up window for another web site with no menubar and status bar
function openWin1(url,width,height,toolbar) {
	if (toolbar == null) toolbar = 'yes'
	popupWin = 	window.open(url,'remote','toolbar=' + toolbar + ',menubar=no,scrollbars=yes,status=no,width=' + width + ',height=' + height + ',');
	//return popupWin;
}
//Allows multiple windows at the same time
function openWin2(url, windowName) {
	popupWin = 	window.open(url,windowName);
	//return popupWin;
}

//Pass qrystring that needs to be url encoded
function openWin3(url,qrystring,width,height,toolbar) {
	if (toolbar == null) toolbar = 'yes'
	//alert(url);
	//alert(qrystring);
	popupWin = 	window.open(url + escape(qrystring),'remote','toolbar=' + toolbar + ',menubar=no,scrollbars=yes,status=no,width=' + width + ',height=' + height + ',');
	//return popupWin;
}

function openModalWin(url)
{
	popupWin = 	window.showModalDialog(url,"","status:no");
}

function closeChildRedirectParent(CloseFlagName, RedirectURLName, RedirectQryName){
   
  var CloseElement = document.getElementById(CloseFlagName)
  var RedirElement = document.getElementById(RedirectURLName)
  var RedirQryElement;
  
  if (RedirectQryName == null){
    RedirectQryName = '';
  }
  
  RedirQryElement = document.getElementById(RedirectQryName)
  
  //alert(CloseElement.value);
  //alert(RedirElement.value);
  //alert(RedirQryElement.value);
  
  if (CloseElement.value == 'true'){
    if (window.opener) {
      window.close();
      opener.location = RedirElement.value + escape(RedirQryElement.value);
    }
  }
  
}
//Ok cancel
function confirmChoice(message, gotoUrl)
{
	answer = confirm(message);
	if (answer != 0)
	{
		document.location = gotoUrl;
	}
}
function getBaseUrl()
{
	var currentUrl=window.location.href.split('/');
	currentUrl.length=3;
	return currentUrl.join('/');
}
function jumpToSource(bookmarkName)
{
	document.location = bookmarkName
}

// fix for NS resize bug
NS4 = document.layers;
if (NS4) {
    origWidth = innerWidth;
    origHeight = innerHeight;
}

function reDo() {
   if (innerWidth != origWidth || innerHeight != origHeight) 
      location.reload();
}

if (NS4) onresize = reDo;
//  end fix for NS resize bug


//Preload navigation images
//var base = "/images/";
//var offSuffix = "_off.gif";
//var overSuffix = "_on.gif";
//var onSuffix = "_on.gif";

//detect b2b
//var url = document.location.href.toLowerCase();
//var b2b = (url.indexOf('/b2b/')>=0)

//var precacheKeys = new Array("nav_prod","nav_serv","nav_reports","nav_myprofile","nav_admin","nav_tools","nav_train","nav_viewcart","nav_contact","nav_about","nav_help","nav_home","nav_signin","nav_signout","nav_ariba_contshop","nav_ariba_help","nav_ariba_viewcart","nav_ariba_contact","nav_ariba_checkout","nav_ariba_cancsession");
//var precacheKeys = = new Array("nav_viewcart","nav_contact","nav_about","nav_help","nav_signin","nav_signout","nav_ariba_contshop","nav_ariba_help","nav_ariba_viewcart","nav_ariba_contact","nav_ariba_checkout","nav_ariba_cancsession");
//var precacheKeys;

//check if b2b
//if (b2b)
//	precacheKeys = new Array("nav_ariba_help","nav_ariba_viewcart","nav_ariba_contact","nav_ariba_checkout","nav_ariba_cancsession");
//else
//	precacheKeys = new Array("nav_viewcart","nav_contact","nav_about","nav_help","nav_signin","nav_signout");

//var IMGOFF = "0";
//var IMGOVER = "1";
//var IMGON = "1";
	
//var precacheImages = new Array();


//if (document.images) {
//	for (var i=0; i < precacheKeys.length; i++) {
//		precacheImages[precacheKeys[i]+IMGOFF] = new Image();
//		precacheImages[precacheKeys[i]+IMGOFF].src = base + precacheKeys[i] + offSuffix;
//	}

//	for (var i=0; i < precacheKeys.length; i++) {
//		precacheImages[precacheKeys[i]+IMGON] = new Image();
//		precacheImages[precacheKeys[i]+IMGON].src = base + precacheKeys[i] + onSuffix;
//	}

	//for (var i=0; i < precacheKeys.length; i++) {
		//precacheImages[precacheKeys[i]+IMGOVER] = new Image();	
		//precacheImages[precacheKeys[i]+IMGOVER].src = base + precacheKeys[i] + overSuffix;
	//}
//}
	
	
// key,status=0/1
function setImg()
{
	if (document.images) {
		for (var i=0; i < setImg.arguments.length; i+=2) {
			var key = setImg.arguments[i];
			var status = setImg.arguments[i+1];
			document.images[key].src = precacheImages[key+status].src;
		}
	}
}
//End Preload

var submitOnceCount=0;
var submitOnceEnabled = false;

function submitOnce()
{
  if (submitOnceEnabled == true)
  {
	if (submitOnceCount > 0) {
	    return false;
	}
	else
	{
	    submitOnceCount++;
	    return true;
	}
  }
}
function setSubmitOnceEnabled(isEnabled){
    //can enable but cannot disable
    if (isEnabled == true)
    {
       submitOnceEnabled = true;
    }
}
function submitonce()
{
    var element = document.getElementById('SubmitAgain');

    if(element != null && element.value.trim() == "yes")
    {
        return true;
    }

	if (submitOnceCount != 0)
	{
		return false;
	}

	submitOnceCount++;
	return true;
}

function fieldMaxLenth(field, maxlength) {
	if (field.value.length > maxlength){ // if too long...trim it!
		field.value = field.value.substring(0, maxlength);
		alert('The maximum length for this field is ' + maxlength + ' characters.');
	}
}

// limit keys in text box to those listed in allowedKeys
function editKeyBoard(objForm, allowedKeys) {
blnValidChar = false;					// Valid character flag

// Part 1: Validate input
if(!blnValidChar)
	for(i=0;i < allowedKeys.length;i++)
		if(window.event.keyCode == allowedKeys.charCodeAt(i)) {
			blnValidChar = true;
			break;
		}

// Part 2: Reject if bad
if(!blnValidChar) {
	window.event.returnValue = false;		// Clear invalid character
	objForm.focus();						// Set focus
	}
}

// Body onload utility (supports multiple onload functions)
var gSafeOnload = new Array();
function SafeAddOnload(f)
{
		window.onload = SafeOnload;
		gSafeOnload[gSafeOnload.length] = f;
	
}
function SafeOnload()
{
	for (var i=0;i<gSafeOnload.length;i++)
		gSafeOnload[i]();
}


function onKeyPress (e) {
	var keycode;

	if (window.event) { keycode = window.event.keyCode;}
	else if (ns){ keycode = e.which;}
	else return;

	if (keycode == 13) {
		//alert("Please Click on the Submit button to send this");
		
		if (document.myForm != null && document.myForm.__DEFAULTBUTTON != null) {
			var element = document.getElementById(document.myForm.__DEFAULTBUTTON.value);

			if (element != null) {
				element.click();
			}
			
			if (ns) {
				e.preventDefault();
				e.stopPropagation();
				e.cancelBubble = true;
				e.returnValue = false;
			}
			else {
				event.cancelBubble = true;
				event.returnValue = false;
			}
		return
		}
	}
	return
}

function onPageLoad() {
	if (document.myForm != null && document.myForm.__DEFAULTFOCUS != null) {
		var element = document.getElementById(document.myForm.__DEFAULTFOCUS.value.replace(':','_'));
		element.focus();
	}

	//determine if signed in
	//var signOutImage = document.getElementById('nav_signout');
	//if (signOutImage != null) {
		//set time for 55 minutes 3300000
		//setTimeout('executeTimer(1)',3300000);
		//set timer for 1 hour 3600000
		//setTimeout('executeTimer(0)',3600000);
	//}
	
	//assign event to function
	switch (window.location.pathname.toLowerCase()){
		case '/products/checkout/confirm.aspx': document.forms[0].onsubmit = submitonce;
		break;
	}
	//document.forms[0].onsubmit = submitonce;
	//alert(window.location.pathname.toLowerCase())
}

function onPageUnLoad() {

}

//assign events to functions
document.onkeypress = onKeyPress;
//window.onload = onPageLoad;
SafeAddOnload(onPageLoad);
window.onunload = onPageUnLoad;


function EnterKeyPress(buttonToClick, e) {

	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (ns) keycode = e.which;
	else return;
	
	if (keycode == 13) {

		if (buttonToClick != null) {

			if (ns) {
				e.preventDefault();
				e.stopPropagation();
				e.cancelBubble = true;
				e.returnValue = false;
			}
			else {
				event.cancelBubble = true;
				event.returnValue = false;
			}

			var element = document.getElementById(buttonToClick);

			if (ns) {
				element.click = function() {
				var evt = this.ownerDocument.createEvent('MouseEvents');
				evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
				this.dispatchEvent(evt);
				}
			}
			element.click();
		}
		return;
	}
}

function ieFlashFix(){if(document.getElementsByTagName){var objs=document.getElementsByTagName("object");for(var i=0;i<objs.length;i++){objs[i].outerHTML=objs[i].outerHTML;}}}
// Copyright (C) krikkit - krikkit@gmx.net
// --> http://www.krikkit.net/
// http://www.krikkit.net/howtos/copy_text_to_clipboard_with_javascript.html
function copyTextToClipboard(text){if (window.clipboardData!=null){
if(window.clipboardData.setData('text',text)){alert("The following text was copied to your clipboard:\n\n" + text);}else{alert('Permission to copy text to your clipboard was denied.')}}
else if (window.netscape){ 
try {
// you have to sign the code to enable this, or see notes below 
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

var clip = Components.classes['@mozilla.org/widget/clipboard;1']
             .createInstance(Components.interfaces.nsIClipboard);
if (!clip) return;

var trans = Components.classes['@mozilla.org/widget/transferable;1']
              .createInstance(Components.interfaces.nsITransferable);
if (!trans) return;

trans.addDataFlavor('text/unicode');

var str = new Object();
var len = new Object();

var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);

var copytext=text;

str.data=copytext;

trans.setTransferData("text/unicode",str,copytext.length*2);

var clipid=Components.interfaces.nsIClipboard;

if (!clip) return false;

clip.setData(trans,null,clipid.kGlobalClipboard);

alert("The following text was copied to your clipboard:\n\n" + text);
} catch (e) {
alert("Permission to copy text to your clipboard was denied.\n\nTo enable this feature in a Mozilla based browser, type 'about:config' in the address bar and enable 'signed.applets.codebase_principal_support'.");
}}}




var dhtmlgoodies_tooltip = false;
var dhtmlgoodies_tooltipShadow = false;
var dhtmlgoodies_shadowSize = 6;
var dhtmlgoodies_tooltipMaxWidth = 300;
var dhtmlgoodies_tooltipMinWidth = 100;
var dhtmlgoodies_iframe = false;
var tooltip_is_msie = (navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('opera')==-1 && document.all)?true:false;
function showTooltip(e,tooltipTxt)
{
	
	var bodyWidth = Math.max(document.body.clientWidth,document.documentElement.clientWidth) - 20;
   var bodyHeight = Math.min(document.body.clientHeight,document.documentElement.clientHeight) - 20;
   
	if(!dhtmlgoodies_tooltip){
		dhtmlgoodies_tooltip = document.createElement('DIV');
		dhtmlgoodies_tooltip.id = 'dhtmlgoodies_tooltip';
		dhtmlgoodies_tooltipShadow = document.createElement('DIV');
		dhtmlgoodies_tooltipShadow.id = 'dhtmlgoodies_tooltipShadow';
		
		document.body.appendChild(dhtmlgoodies_tooltip);
		document.body.appendChild(dhtmlgoodies_tooltipShadow);	
		
		if(tooltip_is_msie){
			dhtmlgoodies_iframe = document.createElement('IFRAME');
			dhtmlgoodies_iframe.frameborder='5';
			dhtmlgoodies_iframe.style.backgroundColor='#FFFFFF';
			dhtmlgoodies_iframe.src = '#'; 	
			dhtmlgoodies_iframe.style.zIndex = 100;
			dhtmlgoodies_iframe.style.position = 'absolute';
			document.body.appendChild(dhtmlgoodies_iframe);
		}
		
	}
	
	dhtmlgoodies_tooltip.style.display='block';
	dhtmlgoodies_tooltipShadow.style.display='block';
	if(tooltip_is_msie)dhtmlgoodies_iframe.style.display='block';
	
	var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
	if(navigator.userAgent.toLowerCase().indexOf('safari')>=0)st=0; 
	var leftPos = e.clientX + 10;
	var topPos = e.clientY + 10 + st;
	dhtmlgoodies_tooltip.style.width = null;	// Reset style width if it's set 
	dhtmlgoodies_tooltip.innerHTML = tooltipTxt;
	dhtmlgoodies_tooltip.style.left = leftPos + 'px';
	dhtmlgoodies_tooltip.style.top = topPos + 'px';

	
	dhtmlgoodies_tooltipShadow.style.left =  leftPos + dhtmlgoodies_shadowSize + 'px';
	dhtmlgoodies_tooltipShadow.style.top = topPos + dhtmlgoodies_shadowSize + 'px';
	
	if(dhtmlgoodies_tooltip.offsetWidth>dhtmlgoodies_tooltipMaxWidth){	/* Exceeding max width of tooltip ? */
		dhtmlgoodies_tooltip.style.width = dhtmlgoodies_tooltipMaxWidth + 'px';
	}
	
	var tooltipWidth = dhtmlgoodies_tooltip.offsetWidth;		
	if(tooltipWidth<dhtmlgoodies_tooltipMinWidth)tooltipWidth = dhtmlgoodies_tooltipMinWidth;
	
	dhtmlgoodies_tooltip.style.width = tooltipWidth + 'px';
	dhtmlgoodies_tooltipShadow.style.width = dhtmlgoodies_tooltip.offsetWidth + 'px';
	dhtmlgoodies_tooltipShadow.style.height = dhtmlgoodies_tooltip.offsetHeight + 'px';		
	
	if((leftPos + tooltipWidth)>bodyWidth){
		dhtmlgoodies_tooltip.style.left = (dhtmlgoodies_tooltipShadow.style.left.replace('px','') - ((leftPos + tooltipWidth)-bodyWidth)) + 'px';
		dhtmlgoodies_tooltipShadow.style.left = (dhtmlgoodies_tooltipShadow.style.left.replace('px','') - ((leftPos + tooltipWidth)-bodyWidth) + dhtmlgoodies_shadowSize) + 'px';
	}
	
	var tooltipHeight = dhtmlgoodies_tooltip.offsetHeight;
	var newTopPos = topPos;
	if((topPos + tooltipHeight)>(bodyHeight+document.documentElement.scrollTop))
	{
	   newTopPos = (bodyHeight + document.documentElement.scrollTop)-tooltipHeight;
	   if(newTopPos < document.documentElement.scrollTop)
	  {
	      newTopPos = document.documentElement.scrollTop;
	  }	   
		dhtmlgoodies_tooltip.style.top = (newTopPos) + 'px';
		dhtmlgoodies_tooltipShadow.style.top = (newTopPos + dhtmlgoodies_shadowSize) + 'px';
	}
		//alert('topPos='+topPos+' ttheight='+tooltipHeight + ' bheight='+bodyHeight+' scroll='+document.documentElement.scrollTop+' newpos='+newTopPos);

	if(tooltip_is_msie){
		dhtmlgoodies_iframe.style.left = dhtmlgoodies_tooltip.style.left;
		dhtmlgoodies_iframe.style.top = dhtmlgoodies_tooltip.style.top;
		dhtmlgoodies_iframe.style.width = dhtmlgoodies_tooltip.offsetWidth + 'px';
		dhtmlgoodies_iframe.style.height = dhtmlgoodies_tooltip.offsetHeight + 'px';
	
	}
			
}

function hideTooltip()
{
	dhtmlgoodies_tooltip.style.display='none';
	dhtmlgoodies_tooltipShadow.style.display='none';		
	if(tooltip_is_msie)dhtmlgoodies_iframe.style.display='none';		
}
