	function getObject(obj)
	{
		if(typeof obj == "string")
		{
			if(document.getElementById)
			{
				//netscape 6+ and IE 5+
				return document.getElementById(obj);
			}
			else if(document.all)
			{
				//ie 4+
				return document.all[obj];
			}
			else if(document.layers)
			{
				//netscape 4+
				return document.layers[obj];
			}
		}
		else
		{
			return obj;
		}
	}
	
	function validateForm(oFrm)
	{
		var i;
		for (i=0;i<oFrm.elements.length; i++)
		{
			if(oFrm.elements[i].required)
			{
				if (oFrm.elements[i].type == 'radio')
				{

				}
				else if(oFrm.elements[i].type == 'checkbox')
				{
				}
				else if(oFrm.elements[i].type == 'select-multiple')
				{
				}
				else if(oFrm.elements[i].type == 'select-one')				
				{
				}
				else
				{
					if (oFrm.elements[i].value == '')
					{
						alert(oFrm.elements[i].name + ' is a required field.\nPlease enter a value.');
						return false;
					}
				}
			}
		}
	}
	
	function validateQTY(oFrm)
	{
		if (isNaN(oFrm.QTY.value) || parseInt(oFrm.QTY.value) <=0)
		{
			
			alert("Invalide value.\nMust be 1 or greater.");			
			oFrm.QTY.focus();			
			return false;
		}
		return true;
	
	}
	
	function validatePostalCode(oCTRL)
	{
		var aLetters = new Array(3);
		oCTRL.value = oCTRL.value.toUpperCase();
		oCTRL.value = oCTRL.value.replace(" ", "");
		if (oCTRL.value.length == 6)
		{
			aLetters[0] = oCTRL.value.substring(0, 1);
			aLetters[1] = oCTRL.value.substring(2, 3);
			aLetters[2] = oCTRL.value.substring(4, 5)

			if((aLetters[0] >= 'A' && aLetters[0] <= 'Z') && 
			   (aLetters[1] >= 'A' && aLetters[1] <= 'Z') &&
			   (aLetters[2] >= 'A' && aLetters[2] <= 'Z'))
			{
				oCTRL.value = oCTRL.value.substring(0, 3) + " " + oCTRL.value.substring(3, 6);
				return true;
			}
			else
			{
				alert("Invalide postal code.");
				return false;
			}
		}
		else
		{
			alert("Invalide Canada postal code.");
			return false;
		}
	}
	
	function validateZipCode(oCTRL)
	{
		if(oCTRL.value.length == 5)
		{
			if(isNaN(oCTRL.value))
			{
				alert("Invalide Zip Code.");
				return false;
			}
			else
			{
				return true;
			}
		}
		else
		{
			alert("Invalide US Zip Code.");
			return false;
		}
	}
	
	function validateShipTo(oFrm)
	{
		if(oFrm.Ship2Area[0].checked)
		{
			return validateZipCode(oFrm.ZipCode);
		}
		else if(oFrm.Ship2Area[1].checked)
		{
			return validatePostalCode(oFrm.PostalCode);
		}
		return true;
	}
	function openDialog(sURL, width, height)
	{
		var sFeatures = "height=" + height + ",width=" + width + ",location=0,menubar=0,resizable=0,toolbar=0";
		
		window.open(sURL, 'MicroVideo', sFeatures);
	}
	function viewInvoice(iInvoice)
	{
		var sFeatures = "left=320,top=0,height=540,width=510,location=0,menubar=1,resizable=0,toolbar=0,scrollbars=1";
		window.open('buyonline.asp?page=viewinvoice&inv=' + iInvoice, 'MicroVideo', sFeatures);
	}
	function removeSelectedInList(oList)
	{
		if(oList.selectedIndex >-1)
		{
			oList[oList.selectedIndex].removeNode(true);
		}
	}

	function isValueInList(sItem, oList)
	{
		var i, bInList = false;
		for (i=0;i<oList.childNodes.length; i++)
		{
			if (oList.childNodes[i].innerText == sItem)
			{	
				bInList = true;
				break;
			}
		}
		return bInList;
	}

	function add2List(item2Add, target)
	{
		var itemValue, oNewItem;
		
		if(typeof item2Add == "string")
		{
			itemValue = item2Add;
		}
		else
		{
			itemValue = item2Add.value;
		}
		if (!isValueInList(itemValue, target))
		{	
			oNewItem = document.createElement("OPTION");
			oNewItem.innerText = itemValue;
			oNewItem.value = itemValue;
			target.appendChild(oNewItem);
		}
	}

	function setExpireDate(source, expDate)
	{
		var aValue = source.split(",");
		//return aValue[0] + "," + aValue[1] + "," + expDate;
		return aValue[0] + ";" + expDate;
	}

	function isItemInList(oItem, oTarget)
	{
		var i, bInList=false;
		for (i = 0;i<oTarget.childNodes.length; i++)
		{
			if(oItem.innerText == oTarget.childNodes[i].innerText)
			{
				bInList = true;
				break;
			}
		}
		return bInList;
	}

	function transferList2List(oSource, oTarget)
	{
		var i, oNewItem, item2Remove=new Array(), iCounter=0;
		var oExpDate = getObject("ExpireDate");
		for(i=0; i<oSource.childNodes.length; i++)
		{
			if(oSource.childNodes[i].selected)
			{
				if(!isItemInList(oSource.childNodes[i], oTarget))
				{
					oNewItem = document.createElement("OPTION")
					oTarget.appendChild(oNewItem);
					if (oExpDate)
					{
						oNewItem.value = setExpireDate(oSource.childNodes[i].value, oExpDate.value);
					}
					else
					{
						oNewItem.value = oSource.childNodes[i].value;
					}
					oNewItem.innerText = oSource.childNodes[i].innerText;	
					oNewItem.selected = true;			
				}
				item2Remove[iCounter] = oSource.childNodes[i];
				iCounter++;
			}
		}
		for(i=0;i<iCounter;i++)
		{
			item2Remove[i].removeNode(true);
		}
	}
	
	function selectList(oList)
	{
		var i;
		for(i=0; i<oList.childNodes.length; i++)
		{
			oList.childNodes[i].selected = true;
		}
	}
	
	function updateExpOnSub(oSource, oList)
	{
		var i;
		for(i=0; i<oList.childNodes.length; i++)
		{
			if(oList.childNodes[i].selected)
			{
				oList.childNodes[i].value = setExpireDate(oList.childNodes[i].value, oSource.value);
			}
		}
	}
	function retriveClient()
	{
		document.location.href='resellers.asp?cmd=viewclnt&c=' + NewClient.Company.value;
	}
	function retriveUser()
	{
		if (RetStud.UserID.value.length && RetStud.PWD.value.length)
		{
			document.location.href = "resellers.asp?page=newstud&u=" + RetStud.UserID.value + "&p=" + RetStud.PWD.value;
		}
		else
		{
			alert("Please enter User ID and Password.");
		}
	}
