if (screen.colorDepth == 8)
{
	document.write('<link rel="stylesheet" type="text/css" href="/styles/256.css" />');
}
//else
//{
//	document.write('<link rel="stylesheet" type="text/css" href="/styles/hovers.css" />');
//}

function PopPage(href) 
{
	window.open(href,"bar","toolbar=yes,location=yes,directories=no,status=no,scrollbars=yes,resizable=yes,copyhistory=no,menubar=yes,width=800,height=500");	
}

function ChangeStyle(element, style)
{
	if (screen.colorDepth > 8)
	{
		element.className = style;
	}
}
// Common scripts for ordermanagement.xslt and allorder.xslt
function clearAll() {

      with(document.searchorder) {
          start_date.value='';
          end_date.value='';
          search_key.value='';
      }

      var radios = document.getElementsByTagName("INPUT");

      if(radios)
          for(i=0; i < radios.length; i++) {
              if(radios[i].type == 'radio')
                 radios[i].checked = false;
          }
}

//function assignDate()
//{
//	var curdate = new Date();
//	document.searchorder.end_date.value=curdate.toString();

////      document.searchorder.end_month.value=curdate.getMonth()+1;
////      document.searchorder.end_day.value=curdate.getDate();
////      document.searchorder.end_year.value=curdate.getFullYear();
//}


function submitsort(sortcolumn, sortorder)
{
   document.getElementById('sortby').attributes["value"].value = sortcolumn;
   document.getElementById('sortdirection').attributes["value"].value = sortorder;

   document.ordermanagement.submit();
}

function set30Day(){
	var myDate = new Date();
	document.searchorder.end_date.value = 		
		myDate.getFullYear() + '-' + (myDate.getMonth() + 1).toString() + '-' + myDate.getDate();

	myDate.setDate(myDate.getDate() - 30);
	
	document.searchorder.start_date.value = 
		myDate.getFullYear() + '-' + (myDate.getMonth() + 1).toString() + '-' + myDate.getDate();

	
//  document.searchorder.start_month.value=curdate.getMonth();   // 0-based month (0=January, 11=December) results in date one month ago
//  document.searchorder.start_day.value=curdate.getDate();
//  document.searchorder.start_year.value=curdate.getFullYear();
//  if (document.searchorder.start_month.value == 0) {
//		document.searchorder.start_month.value = 12;
//		document.searchorder.start_year.value--;
//	}
}

// End of common scripts for ordermanagement.xslt and allorder.xslt

function showmenu(elmnt)
{
	document.getElementById(elmnt).style.visibility="visible"

}
function hidemenu(elmnt)
{
	document.getElementById(elmnt).style.visibility="hidden"
}
				
function AdvancedPopPage(href,name,fullscreen,toolbar,status,menubar,scrollbars,resizable,directories,location,width,height,left,top) 
{
	window.open(href,name,"fullscreen="+fullscreen+",toolbar="+toolbar+",status="+status+",menubar="+menubar+",scrollbars="+scrollbars+",resizable="+resizable+",directories="+directories+",location="+location+",width="+width+",height="+height+",left="+left+",top="+top);	
}
function validateform(form)
{
	for (i=0; i<form.elements.length; i++) 
	{
		var elem = form.elements[i];
	
		// validate admin color entry if supplied
		if (elem.name.substring(0,30) == 'product_image_attribute_color_' && elem.value != ''){
			var str = elem.value;
			var re = /^[0-9a-fA-F]+$/;
			if (!str.match(re))
			{
				alert('Please enter a color using six characters, each 0 through F (24-bit RGB hex format).');
				elem.focus();
				elem.select();
				return false;
			}
		}
	
		if (elem.attributes["required"] != null)
		{
			if (elem.type != "select-one" && (elem.attributes["required"].value == '1' && (elem.value == '' || (form.name=='configure' && elem.value == '0_0')) && 
				(elem.type != "radio" || elem.checked )))  // non-selected radio buttons need not have a valid value (this clause only applies for radio buttons)
			{
				
				alert('Please enter a value for the field "' 
					+ (elem.attributes["displayname"] == null ? elem.name : elem.attributes["displayname"].value)
					+ '".');
				
				if (elem.attributes["hidden"] != null)
				{	
					if (elem.attributes["hidden"].value == 0){elem.focus();}}
					else{elem.focus();}
					return false;
				} else if(elem.attributes["required"].value == '1' &&
					elem.attributes["displayname"] == "State" && 
					elem.type == "select-one" && elem.selectedIndex <= 0)
				{
					alert('Please select a valid state.');
					return false;
				}
				else if (elem.name == 'email' || elem.name.substring(0,9) == 'user_name') //@20090217 HZ: validate user_name_2
				{
					var str = elem.value;
					var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
					if (str == '' || !str.match(re))
					{
						alert('Please enter a valid e-mail address.');
						elem.focus();
						elem.select();
						return false;
					}
				}
				else if (elem.name.substring(0,9) == 'quantity_' || elem.name.substring(0,6) == 'phone_' || elem.name.substring(0,4) == 'fax_')
				{
					var re = /^[0-9]*$/;
					var str = elem.value;
					if (str == '' || !str.match(re))
					{
						alert('Please enter a numeric value.');
						elem.focus();
						elem.select();
						return false;
					}
				}
				else if ((elem.name == 'billing_zip' || elem.name == 'shipping_zip') && elem.attributes["required"].value == '1')
				{
					var re = /^[0-9]*$/;
					var str = elem.value;
					if (str == '' | !str.match(re))
					{
						alert('Please enter a numeric value'
							+ (elem.attributes["displayname"] == null ? "" : ("for the field " + elem.attributes["displayname"].value))
							+ '".');
						elem.focus();
						elem.select();
						return false;
					}
				}
			}
	}
	return true;
}

//
// Hide SELECT box (for IE6 menu display bug)
//
function hideselect(index)
{
	if (false /*@cc_on || @_jscript_version < 5.7 @*/){ // IE6 and earlier only
		var sel = document.getElementsByTagName('SELECT');

		if(sel && sel.length>0) {
				for(var i=0; i < sel.length; i++) {
					 sel[i].style.visibility="hidden";
				}
		}
	}
}

//
// Show SELECT box (for IE6 menu display bug)
//
function showselect(index)
{
	if (false /*@cc_on || @_jscript_version < 5.7 @*/){ //  IE6 and earlier only
		var sel = document.getElementsByTagName('SELECT');
		if(sel && sel.length>0) {
			for(var i=0; i < sel.length; i++) {
				sel[i].style.visibility="visible";
			}
		}
  }
}

//
// Toggle Layer
//
function toggleLayerByCheckBox(form, checkbox, layer_id) {
 var display_layer = document.getElementById(layer_id);
 var check_box = eval('form.' + checkbox + '.checked');
 
		if(check_box)
		  display_layer.style.display='block';
		else
		  display_layer.style.display='none';
}

//determine what the client's screen width is. Independant of maximized or partial
function getClientWidth() {
    if (typeof(window.innerWidth) == 'number') //mozilla
        return (window.innerWidth); 
    else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) 
        return document.documentElement.clientWidth; //IE
    else if (document.body && (document.body.clientWidth || document.body.clientHeight)) 
        return document.body.clientWidth; //Legacy
}

//determine how far the client has scrolled horizontally
function getHorizontalScroll() {
    if (typeof(window.pageYOffset) == 'number') //mozilla
        return window.pageXOffset;
    else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) //Legacy
        return document.body.scrollLeft;
    else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) //IE
        return document.documentElement.scrollLeft;
}

//used to capture the body.onscroll event. works for all mozilla, IE & legacy browsers
function setScroller() {
    window.onscroll = scroller;
}

//will resize the header to force it's width to the absolute right of the viewed screen.
function scroller()  {
    var headerwide = document.getElementById("headerwide");
    
    if (headerwide != null) {

        var moz = (typeof document.implementation != 'undefined') 
            && (typeof document.implementation.createDocument != 'undefined');
        var width = getClientWidth();
        var scroll = getHorizontalScroll(); //IE will return a NaN when scrolled to the starting point

        if (isNaN(scroll)) 
            scroll = 0;
        
        width += scroll; 
            
        if (moz) {
            document.getElementById("headerwide").style.width = (width - 18) + "px"; //take into consideration vertical scrollbar width
        } else {
            document.getElementById("headerwide").style.width = width;
        }
    }
}

// the handy dollar function: use instead of document.getElementById; also handles multiple IDs or objects
function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

/* PSz got the following from:
	The Ultimate getElementsByClassName http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
	
*/
function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}	
	}
	return returnElements;
}


function getNondisplayedElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className) && current.style.display == 'none'){
			returnElements.push(current);
		}	
	}
	return returnElements;
}

function stripCommas(numString) {
    var re = /,/g;
    return numString.replace(re,"");
}

/* I just know if we don't have this function, someone will forget the 
	"return false;" needed on buttons for firefox to avoid submitting the form! */
function link(href) {
	window.location = href;
	return false;
}

