function onItem(srcImageName,destImageName)
  {
  if (document.images) {
  document[ srcImageName ].src = eval( destImageName+".src" );
  }
  }

function offItem(srcImageName,destImageName)
  {
  if (document.images) {
  document[ srcImageName ].src = eval( destImageName+".src" );
  }
  }
  
function preloadImage(img, path)
  {
  eval(img+' = new Image()');
  eval(img+'.src = "'+path+'"');
  }

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}



function sprintf()
{
	if (!arguments || arguments.length < 1 || !RegExp)
	{
		return;
	}
	var str = arguments[0];
	var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
	var a = b = [], numSubstitutions = 0, numMatches = 0;
	while (a = re.exec(str))
	{
		var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
		var pPrecision = a[5], pType = a[6], rightPart = a[7];
		
		//alert(a + '\n' + [a[0], leftpart, pPad, pJustify, pMinLength, pPrecision);

		numMatches++;
		if (pType == '%')
		{
			subst = '%';
		}
		else
		{
			numSubstitutions++;
			if (numSubstitutions >= arguments.length)
			{
				alert('Error! Not enough function arguments (' + (arguments.length - 1) + ', excluding the string)\nfor the number of substitution parameters in string (' + numSubstitutions + ' so far).');
			}
			var param = arguments[numSubstitutions];
			var pad = '';
			       if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
			  else if (pPad) pad = pPad;
			var justifyRight = true;
			       if (pJustify && pJustify === "-") justifyRight = false;
			var minLength = -1;
			       if (pMinLength) minLength = parseInt(pMinLength);
			var precision = -1;
			       if (pPrecision && pType == 'f') precision = parseInt(pPrecision.substring(1));
			var subst = param;
			       if (pType == 'b') subst = parseInt(param).toString(2);
			  else if (pType == 'c') subst = String.fromCharCode(parseInt(param));
			  else if (pType == 'd') subst = parseInt(param) ? parseInt(param) : 0;
			  else if (pType == 'u') subst = Math.abs(param);
			  else if (pType == 'f') subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
			  else if (pType == 'o') subst = parseInt(param).toString(8);
			  else if (pType == 's') subst = param;
			  else if (pType == 'x') subst = ('' + parseInt(param).toString(16)).toLowerCase();
			  else if (pType == 'X') subst = ('' + parseInt(param).toString(16)).toUpperCase();
		}
		str = leftpart + subst + rightPart;
	}
	return str;
}


function /*Void*/formatProductNumber(/*Object*/control,/*Integer*/searchBox)
{
	var number = control.value;
	var maxLen = 2;
	if (searchBox == 2)
		maxLen = 4;
	else if (searchBox == 3)
		maxLen = 3;
		
	var left = maxLen - number.length;
	var pre="";
	if (left > 0)
	{
		for (;left != 0;(pre+='0'),left--);
	}
	control.value = pre+number;
}


function /*Void*/checkProductNoValidity()
{
    var control = eval("document.forms.searchByNum.searchQuery1");

    var test = control.value.match("[a-zA-Z0-9]*");

    if (test != control.value || control.value == "")
    {
      alert("Only numeric digits and letters are allowed in the product search. Please correct and try again");
	  control.focus();
	  return false;
    }
	//formatProductNumber(control,i);
    return true;
}

// Functions used for enabling/disabling search

	function useTextSearch() {
		// only enable the text search if the product search is empty

		if ((getControl("searchQuery1").value.length < 1)) {
				enableTextSearch();
				disableProductSearch();
				var obj = getControl('searchQuery');
				obj.focus();
		}

	}

	function useProductSearch() {
		// only enable the product search if the product search is empty
		if (getControl("searchQuery").value.length < 1) {
			enableProductSearch();
			disableTextSearch();
		}

	}


	// function to enable the text search
	function enableTextSearch() {
   		var obj = getControl('searchQuery');
    	obj.disabled=false;
		obj.style.background="white";
		var obj1 = getControl('searchTextButton');
		obj1.disabled=false;
	}

	function checkTextSearch() {
		// if there's a value in text search, don't enable the product search
		if (getControl("searchQuery").value.length < 1) {
			enableProductSearch();
		}
		
	}

	function checkProductSearch() {
		// if there's a value in product search fields, don't enable the text search
		if ((getControl("searchQuery1").value.length < 1)) {
				enableTextSearch();
		}
		
	}

	// function to disable the text search
	function disableTextSearch() {
   		var obj = getControl('searchQuery');
    	obj.disabled=true;
		obj.style.background="#CCCCCC";
		var obj1 = getControl('searchTextButton');
		obj1.disabled=true;
	}

	// function to enable the product search
	function enableProductSearch() {
		// enable the product search
   		var obj1 = getControl('searchQuery1');
    	obj1.disabled=false;
		obj1.style.background="white";
   		var obj5 = getControl('searchProductButton');
    	obj5.disabled=false;
	}



	// function to disable the product search
	function disableProductSearch() {
	   		var obj1 = getControl('searchQuery1');
	    	obj1.disabled=true;
			obj1.style.background="#CCCCCC";
	   		var obj5 = getControl('searchProductButton');
	    	obj5.disabled=true;
	}

	function getControl(name) {
		var array_obj = document.getElementsByName(name);
		return array_obj[0];
	}

// Autotab function to move cursor to next field in search
  var field_length=0;
  function TabNext(obj,event,len,next_field) {
	if (event == "down") {
		field_length=obj.value.length;
		}
	else if (event == "up") {
		if (obj.value.length != field_length) {
			field_length=obj.value.length;
			if (field_length == len) {
				next_field.focus();
				}
			}
		}
	}

// used with the form module
function CQFormsInvalid(element, elementtitle, errortext, errortype)
	{	
	switch(errortype)
		{
		case "required":
		case "not plausible":
			// nothing special to do here...
			break;
		default:
			errortext = "There is something wrong with "+elementtitle+":" + errortext;
			break;
		}
	alert(errortext);	

	// returning false means we want to abort sending the form to the server.
	return false;	
	}
