var qmad = new Object();qmad.bvis="";qmad.bhide="";qmad.ahide="";qmad.bhover="";

function startCallback() {
	// make something useful before submit (onStart)
	return true;
}

function completeCallback(response) {
	// make something useful after (onComplete)
	document.forms[0].h_datasheet.value = divide_string(document.forms[0].file1.value); 
	document.forms[0].file1.value = '';
	document.forms[0].h_image.value = divide_string(document.forms[0].file2.value); 
	document.forms[0].file2.value = '';
	return true;
}

function divide_string(sValue)
{
	var aArray=sValue.split("\\");
	var part_num=0;
	while (part_num < aArray.length) {
		part_num+=1;
	}
	return aArray[part_num-1];
}

function popUp(URL) {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=500,left = 390,top = 150');");
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

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 MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

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 formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)) num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10) cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) num = num.substring(0,num.length-(4*i+3))+ num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}		

function gc(myform,selectit,hideit,char){
	 if (myform=='') {myform='forms[0]';}
     char=String.fromCharCode(char).toUpperCase()
     hideit=eval("document."+myform+"."+hideit)
     selectit=eval("document."+myform+"."+selectit)
     hideit.value+=char
     i=selectit.selectedIndex
     while(i<selectit.options.length){
         if(selectit.options[i].innerText.toUpperCase().indexOf(hideit.value)==0){
              selectit.selectedIndex=i
              i=selectit.options.length+1
         }
         i++
     }

     if(i==selectit.options.length+2){return false}
          else{hideit.value=char;return true}
}

function SetNow() {
	var mydate = new Date();
	var mytime = new Date();
	var mymonth = mydate.getMonth() + 1;
	dNow = mymonth + '/' + mydate.getDate() + '/' + mydate.getFullYear() + ' ' + ((mydate.getHours() < 10) ? '0' + mydate.getHours() : mydate.getHours()) + ":" + ((mydate.getMinutes() < 10) ? '0' + mydate.getMinutes() : mydate.getMinutes());	
	return ( dNow );
}

function SetDate() {
	var mydate = new Date();
	var mymonth = mydate.getMonth() + 1;
	return ( mymonth + '/' + mydate.getDate() + '/' + mydate.getFullYear());
}

function SetTime() {
	var mytime = new Date();
	return ((mytime.getHours() < 10) ? '0' + mytime.getHours() : mytime.getHours()) + "" + ((mytime.getMinutes() < 10) ? '0' + mytime.getMinutes() : mytime.getMinutes());
}

function isDate(dateStr) {

	var dateregex = new RegExp("[0-9]{4}\-[0-9]{1,2}\-[0-9]{1,2}"); 
	var datestatus=true;
	datemsg="";
	
	if (dateregex.test(dateStr) == false) {
		alert ("Enter date as yyyy-mm-dd!\n");
		return false;
	} else {
		str1 = dateStr;
		month = str1.slice(5,7);
		day =  str1.slice(8,10);
		year = str1.slice(0,4);
		if (month < 1 || month > 12) { // check month range
			datemsg += "Month must be between 1 and 12." + "\n";
			datestatus=false;
		}
		if (day < 1 || day > 31) {
			datemsg += "Day must be between 1 and 31." + "\n";
			datestatus=false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			datemsg += "Month " + month + " doesn`t have 31 days!" + "\n";
			datestatus=false;
		}
		if (month == 2) { // check for february 29th
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day > 29 || (day==29 && !isleap)) {
				datemsg += "February, " + year + " doesn`t have " + day + " days!" + "\n";
				datestatus=false;
			}
		}
		if (datemsg.length > 0) { alert(datemsg); document.addrequest.setdate.focus();} 
	}
	return datestatus;
}


function NewWindow(sStr) {
	// Open New Window for Reports Output
	window.open(sStr);
}

function showlist() {
	obj=document.getElementById("101");
	if (obj.style.display == "block") { obj.style.display="none";} else { obj.style.display="block";}
}

function showlist2() {
	obj=document.getElementById("101");
	obj2=document.getElementById("102");
	if (obj.style.display == "block") { obj.style.display="none"; obj2.style.display="block"; } else { obj.style.display="block"; obj2.style.display="none"; }
}

// ===================================================================
// Author: Matt Kruse <matt@mattkruse.com>
// WWW: http://www.mattkruse.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download. 
// If you wish to share this code with others, please just point them
// to the URL instead.
// Please DO NOT link directly to my .js files from your site. Copy
// the files to your server and use them there. Thank you.
// ===================================================================

// -------------------------------------------------------------------
// autoComplete (text_input, select_input, ["text"|"value"], [true|false])
//   Use this function when you have a SELECT box of values and a text
//   input box with a fill-in value. Often, onChange of the SELECT box
//   will fill in the selected value into the text input (working like
//   a Windows combo box). Using this function, typing into the text
//   box will auto-select the best match in the SELECT box and do
//   auto-complete in supported browsers.
//   Arguments:
//      field = text input field object
//      select = select list object containing valid values
//      property = either "text" or "value". This chooses which of the
//                 SELECT properties gets filled into the text box -
//                 the 'value' or 'text' of the selected option
//      forcematch = true or false. Set to 'true' to not allow any text
//                 in the text box that does not match an option. Only
//                 supported in IE (possible future Netscape).
// -------------------------------------------------------------------
function autoComplete (field, select, property, forcematch) {
	var found = false;
	for (var i = 0; i < select.options.length; i++) {
	if (select.options[i][property].toUpperCase().indexOf(field.value.toUpperCase()) == 0) {
		found=true; break;
		}
	}
	if (found) { select.selectedIndex = i; }
	else { select.selectedIndex = 0; }
	if (field.createTextRange) {
		if (forcematch && !found) {
			field.value=field.value.substring(0,field.value.length-1); 
			return;
			}
		var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;";
		if (cursorKeys.indexOf(event.keyCode+";") == -1) {
			var r1 = field.createTextRange();
			var oldValue = r1.text;
			var newValue = found ? select.options[i][property] : oldValue;
			if (newValue != field.value) {
				field.value = newValue;
				var rNew = field.createTextRange();
				rNew.moveStart('character', oldValue.length) ;
				rNew.select();
				}
			}
		}
	}
/* -------------------------------------------------------------------------------------------------
	[dFilter] - A Numerical Input Mask for JavaScript
	Written By Dwayne Forehand - March 27th, 2003
	Please reuse & redistribute while keeping this notice.
----------------------------------------------------------------------------------------------------*/
var dFilterStep

function dFilterStrip (dFilterTemp, dFilterMask)
{
    dFilterMask = replace(dFilterMask,'#','');
    for (dFilterStep = 0; dFilterStep < dFilterMask.length++; dFilterStep++)
		{
		    dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+1),'');
		}
		return dFilterTemp;
}

function dFilterMax (dFilterMask)
{
 		dFilterTemp = dFilterMask;
    for (dFilterStep = 0; dFilterStep < (dFilterMask.length+1); dFilterStep++)
		{
		 		if (dFilterMask.charAt(dFilterStep)!='#')
				{
		        dFilterTemp = replace(dFilterTemp,dFilterMask.charAt(dFilterStep),'');
				}
		}
		return dFilterTemp.length;
}

function dFilter (key, textbox, dFilterMask)
{
		dFilterNum = dFilterStrip(textbox.value, dFilterMask);
		
		if (key==9)
		{
		    return true;
		}
		else if (key==8&&dFilterNum.length!=0)
		{
		 	 	dFilterNum = dFilterNum.substring(0,dFilterNum.length-1);
		}
		else if ( ((key>47&&key<58)||(key>95&&key<106)) && dFilterNum.length<dFilterMax(dFilterMask) ) 
	    { 
		  if(key>95&&key<106){key-=48;} 
			dFilterNum=dFilterNum+String.fromCharCode(key); 
		} 
	
		var dFilterFinal=''; 

// Commented out Code to handle Keypad number as well - MAM 5/13/2004
//else if ( ((key>47&&key<58)||(key>95&&key<106)) && dFilterNum.length<dFilterMax(dFilterMask) )
//		{
//        dFilterNum=dFilterNum+String.fromCharCode(key);
//		}

//		var dFilterFinal='';
    for (dFilterStep = 0; dFilterStep < dFilterMask.length; dFilterStep++)
		{
        if (dFilterMask.charAt(dFilterStep)=='#')
				{
					  if (dFilterNum.length!=0)
					  {
				        dFilterFinal = dFilterFinal + dFilterNum.charAt(0);
					      dFilterNum = dFilterNum.substring(1,dFilterNum.length);
					  }
				    else
				    {
				        dFilterFinal = dFilterFinal + "";
				    }
				}
		 		else if (dFilterMask.charAt(dFilterStep)!='#')
				{
				    dFilterFinal = dFilterFinal + dFilterMask.charAt(dFilterStep); 			
				}
//		    dFilterTemp = replace(dFilterTemp,dFilterMask.substring(dFilterStep,dFilterStep+1),'');
		}


		textbox.value = dFilterFinal;
    return false;
}
function replace(fullString,text,by) {
// Replaces text with by in string
    var strLength = fullString.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return fullString;

    var i = fullString.indexOf(text);
    if ((!i) && (text != fullString.substring(0,txtLength))) return fullString;
    if (i == -1) return fullString;

    var newstr = fullString.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(fullString.substring(i+txtLength,strLength),text,by);

    return newstr;
}
/* --------------------EOF--------------------------------------------------------------------------
	[dFilter] - A Numerical Input Mask for JavaScript
	Written By Dwayne Forehand - March 27th, 2003
	Please reuse & redistribute while keeping this notice.
----------------------------------------------------------------------------------------------------*/

function Left(str, n){
	if (n <= 0)
		return "";
	else if (n > String(str).length)
		return str;
	else
		return String(str).substring(0,n);
}

function Right(str, n){
	if (n <= 0)
	return "";
	else if (n > String(str).length)
	return str;
	else {
	var iLen = String(str).length;
	return String(str).substring(iLen, iLen - n);
	}
}

function redirect(pRedirect){
	parent.location.href=pRedirect;
}

