// Global
var SHOW_MENU_BAR = 'yes';
var HIDE_MENU_BAR = 'no';
var SHOW_STATUS_BAR = 'yes';
var HIDE_STATUS_BAR = 'no';
var SHOW_SCROLL_BAR = 'yes';
var HIDE_SCROLL_BAR = 'no';
var ON_CENTRE = true;
var NOT_ON_CENTRE = false;
var ENABLE_RESIZE = 'yes';
var DISABLE_RESIZE = 'no';

var tmpSrc;
var browser = getBrowser();
var doLog = false;
var debugwin = (doLog)? window.open("/commerce/SonyFastrac/jsdebug.html","debug"): null;
var logger = new Logger(true);





function adjustPopupHeight() {
	if (browser == 'IE6' ||browser == 'IE5') return;
	var clientHeight 	=  window.innerHeight;
	var headerHeight 	= 74;
	var footerHeight 	= 28;

	document.getElementById('frame_body').style.height 		= clientHeight - (headerHeight +  footerHeight);
	
}
/**
 *  openPopup()
 */
function openWin(url, winName, popWidth, popHeight, popMenu, popScroll, popStatus, isCenter, isResizable) {
	var win = getWin(url, winName, popWidth, popHeight, popMenu, popScroll, popStatus, isCenter, isResizable);
    if (win.opener == null) win.opener = self;
    if (browser == 'IE4')return;
    win.focus();
}

function getWin(url, winName, popWidth, popHeight, popMenu, popScroll, popStatus, isCenter, isResizable) {
	// popStatus is a new parameter; it is optional so that old calls will not cause an error
    if (isCenter) {
		x = Math.floor((screen.width - popWidth)/2);
		y = Math.floor((screen.height - popHeight )/2);
	} else {
		x = 25;
		y = 140;
	}
	
    var statusBar = (popStatus == null) ? popScroll : popStatus;
    var isResizable = (isResizable == null) ? DISABLE_RESIZE : isResizable;
    
	// 'fix' for Mac IE's problem when including a status bar in the pop up window
	// - the browser chops off the bottom 18 pixels of the window to accomodate for the
	//   the status bar, and so we add 18 pixels to the height
    if (popStatus != null && popStatus == SHOW_STATUS_BAR && (browser == 'IE5MAC' || browser == 'IE6MAC' ))
    	popHeight = String(Number(popHeight) + 18);

    if(win)win.close();

    if (browser == 'IE5' || browser == 'IE6' || browser == 'IE5MAC' || browser == 'IE6MAC'){
      var win=window.open(url, winName,'width=' + popWidth + ',height=' + popHeight + ',screenX=' + x + ',screenY=' + y + ',left=' + x + ',top=' + y + ',menubar='+ popMenu + ',scrollbars=' + popScroll + ',resizable='+isResizable +',status=' + statusBar + '');
    } else {
      var win=window.open(url, winName,'width=' + popWidth + ',height=' + popHeight + ',screenX=' + x + ',screenY=' + y + ',left=' + x + ',top=' + y + ',toolbar='+ popMenu + ',scrollbars=' + popScroll + ',resizable='+isResizable +',status=' + statusBar + '');
    }
    return win;
}

/**
 * set Browser type
 */

function getBrowser() {
	var appName = navigator.appName.toLowerCase();
	var agentName = navigator.userAgent.toLowerCase();
	var isMac = (navigator.appVersion.indexOf("Mac") >= 0) ? true : false;
	
	if (appName.indexOf('microsoft') >= 0) { // MSIE
		if (!isMac) {
			if (agentName.indexOf('msie 6') >= 0) return 'IE6';
			else if(agentName.indexOf('msie 5') >= 0) return 'IE5';
			else return 'IE4';
		} else {
			if (agentName.indexOf('msie 6') >= 0) return 'IE6MAC';
			else if(agentName.indexOf('msie 5') >= 0) return 'IE5MAC';
			else return 'IE4MAC';
		}
	} 
	
	if (agentName.indexOf('mozilla/5.0') >= 0  && agentName.indexOf('netscape6') >= 0 ) return 'NS6';
	if (agentName.indexOf('mozilla/5.0') >= 0  && agentName.indexOf('gecko') >= 0 ) return 'MOZILLA';
	
	return 'NOTSUPPORT';
}


function Logger(online){
	this.online = online;
	this.time = new Date();
	this.log = new Array();
	
	this.enter = function(f) {
		if (doLog)	this.put(">" + f);
	}
	this.exit = function(f) {
		if (doLog) this.put("<" + f);
	}
	this.msg  = function (f) {
		if (doLog) this.put ("info :: " + f);
	}
	
	this.put = function(msg) {
		this.log[this.log.length] = this.log.length  + '[' +  ' ' + new Date() + '] ' + msg ; 
		if (online) debugwin.document.writeln(this.log[this.log.length - 1] + "<br>");
	}
	
	this.writeln = function(win) {
		var s = '';
		for (var i = 0; i < this.log.length; i++){
			s += this.log[i] + '\r\n';
		}
		if (win) { 
			win.document.writeln(s);
		} else {
			return s;
		}
	}
	
}


function submitForm(f) {
	document.getElementById(f).submit();
}

function submitForm(f, a) {
	form = document.getElementById(f);
	form.action = a;
	form.submit();
}


// CheckAll/UncheckAll Functions

function toggleCheck(o) {
	var f = getForm(o.parentNode);
	if (f == null) return;
	var chkbox = f.idSelector;
	if (!chkbox) return;
	if (chkbox.length) {
		for (var i=0; i < chkbox.length; i++) {
			chkbox[i].checked = o.checked;
		}
	} else chkbox.checked = o.checked;
}


// Library functions
function RTrim(str){
   var whitespace = new String(" \t\n\r");
   var s = new String(str);

   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;       // Get length of string
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }

   return s;
}


// Return current year
function getCurrentYear() {
	return new Date().getFullYear();
}

//#######################################################################################################

// clear field value function: removes the default value onfocus, and adds back if nothing entered
function fieldClear(obj) {
	if(obj.Val) {
		if (obj.value == '') {
			obj.value = obj.Val;
			obj.Val = null;
			obj.first = null;
		}
		else {
			obj.Val = null;
		}
	} else if (!obj.first) {
		obj.Val = obj.value;
		obj.value = '';
		obj.first = 'true';
	}
}

function topTab(obj) {
	counter = 0;
	var thisTabName = obj.parentNode.id;
	var tabSetName = obj.parentNode.parentNode.className; // tab_menu
	var numOfTabs = getNumberOfTabs(obj);
	hideAll(tabSetName, numOfTabs);
	showRelevant(thisTabName);
}
	function getNumberOfTabs(obj) {
		tabAry = obj.parentNode.parentNode.getElementsByTagName('li');
		return tabAry.length;
	}
	function hideAll(tabSetName, numOfTabs) {
		//alert('hideAll:'+tabSetName + numOfTabs);
		var tabItem;
		var contentItem;
		for (i=1;i<numOfTabs+1;i++) {
			tabItem = tabSetName + i;
			contentItem = tabItem + '_content';
			//alert(tabItem);
			document.getElementById(tabItem).className = '';			
			if(tabSetName=='sub_tab_menu') {
				document.getElementById(contentItem).className = 'sub_page';
			} else {
				document.getElementById(contentItem).className = 'page';
			}
		}

	}
	function showRelevant(thisTabName) {
		var tabItem = thisTabName;
		var contentItem = tabItem + '_content';
		//Log('tabItem: ' + tabItem + '. contentItem: ' + contentItem);
		document.getElementById(tabItem).className = 'active';
		document.getElementById(contentItem).className = document.getElementById(contentItem).className + ' active';
		//Log(document.getElementById(contentItem).className);
	}




// Top navigation menu control
function topNav() {
	if ((document.all) && (document.getElementById) && (document.getElementById('nav_list'))) {
		cssdropdownRoot = document.getElementById('nav_list').getElementsByTagName('li');
		for (x=0; x<cssdropdownRoot.length; x++) {
			node = cssdropdownRoot[x];
			if (node.nodeName=="LI") {
				if(x<(cssdropdownRoot.length - 1)){
				    node.onmouseover=function() {this.className+=" over";hideElementsNav();}
				    node.onmouseout=function() {this.className=this.className.replace(" over", "");showElementsNav();}
				}
				else{ // Fix for the Support button not to hide the select boxes - Added ad hoc by PJH
				   node.onmouseover=function() {this.className+=" over";}
				   node.onmouseout=function() {this.className=this.className.replace(" over", "");}
				}
			}
		}
	}
}

hideElementsNav = function() {
 var arrElements = YAHOO.util.Dom.getElementsByClassName('navHide');
 for (iter=0;iter<arrElements.length;iter++)
  {
  Dom.setStyle(arrElements[iter],'display','none');
  Dom.setStyle(arrElements[iter],'visibility','hidden');  
  }

  arrElements = YAHOO.util.Dom.getElementsByClassName('selectView');
 
 for (iter=0;iter<arrElements.length;iter++)
  {
  Dom.setStyle(arrElements[iter],'display','none');
  Dom.setStyle(arrElements[iter],'visibility','hidden');  
  }
}

showElementsNav = function() {
 var arrElements = YAHOO.util.Dom.getElementsByClassName('navHide');
 for (iter=0;iter<arrElements.length;iter++)
  {
  Dom.setStyle(arrElements[iter],'display','block');
  Dom.setStyle(arrElements[iter],'visibility','visible');  
  }

  arrElements = YAHOO.util.Dom.getElementsByClassName('selectView');
 for (iter=0;iter<arrElements.length;iter++)
  {
  Dom.setStyle(arrElements[iter],'display','block');
  Dom.setStyle(arrElements[iter],'visibility','visible');  
  }
}


