
	 function DifferentCharacteristic(){
		 		oForm = document.all.frmRequest;
				oNodeND = document.getElementById('ND');
				oNodeOTHER = document.getElementById('OTHER');
				oNodeEXCITATION = document.getElementById('EXCITATION');				
				oNodeNOTE = document.getElementById('NOTE');
				
				if(oForm.chk_DifferentChars.checked == true){
					var nCatID = oForm.cbProductTypes.options[oForm.cbProductTypes.selectedIndex].nParentId;
					
					if(nCatID == 1){						
						oNodeND.style.display = 'inline';
						oNodeEXCITATION.style.display = 'none';
						oNodeOTHER.style.display = 'inline';
						oNodeNOTE.style.display = 'inline';
						
					}else if(nCatID == 2){
						oNodeND.style.display = 'inline';
						oNodeEXCITATION.style.display = 'inline';
						oNodeOTHER.style.display = 'inline';						
						oNodeNOTE.style.display = 'inline';
					}else{
						oNodeND.style.display = 'none';
						oNodeEXCITATION.style.display = 'none';
						oNodeOTHER.style.display = 'none';
						oNodeNOTE.style.display = 'inline';						
					}
				}else{
					oNodeND.style.display = 'none';
					oNodeEXCITATION.style.display = 'none';
				    oNodeOTHER.style.display = 'none';					
					oNodeNOTE.style.display = 'none';
				}
			}
		///////////////////////////////////////////
	 		function EmptyCombobox(pCombobox){
				for(;pCombobox.options.length > 0;){
					pCombobox.options.remove(0);
				}
			}
		///////////////////////////////////////////
							
			function UpdateProducts(pCategories, nSelectedItemId){
				if(pCategories.selectedIndex == -1){
					//do nothing
				}else{
					pCombobox = document.frmRequest.cbProducts;
					//empty the combobox
					EmptyCombobox(pCombobox);
					var nCatID = pCategories.options[pCategories.selectedIndex].nId;
					for(var i = 0; i < arProducts[nCatID].length; i++){
						AddOption(pCombobox, -1, arProducts[nCatID][i]['sName'], arProducts[nCatID][i]['sName']);
						if(nSelectedItemId == arProducts[nCatID][i]['nId']){
							pCombobox.options[pCombobox.options.length - 1].selected = true;
						}
					}
				}
			}
				 //////////////////////////////////////////////////////////////////////////////////////////////////////////// A D D   O P T I O N
			// A D D   O P T I O N
			function AddOption(pControlObj, nIndex, sText, sValue){
				pNewOption = document.createElement("OPTION");
				pNewOption.value = sValue;
				//alert(sText);
				//pNewOption.innerHTML = sText;
				//pNewOption.text = sText;
				//alert(pNewOption.text);
				if(nIndex == -1){
					if(!document.all){
						// netscape
						pControlObj.add(pNewOption, null);
					}else{
						// ie
						pControlObj.add(pNewOption);
					}
				}else{
					if(!document.all){
						// netscape
						pPreviousOption = pControlObj.options[nIndex]; 
						pControlObj.add(pNewOption, pPreviousOption);
					}else{
						// ie
						pControlObj.add(pNewOption, nIndex);
					}
				}
				pNewOption.innerHTML = sText;
				return pNewOption;
				
			}
			//////////////////////////////////////////////////////////////////////////////////////////////////////////// R E M O V E   O P T I O N
			// R E M O V E   O P T I O N
			function RemoveOption(pControlObj, nIndex){
				if(!document.all){
					//alert("Netscape!");
					pControlObj.options[nIndex] = null;
				}else{
					//alert("IE!");
					pControlObj.options.remove(nIndex);
				}
			}
			//////////////////////////////////////////////////////////////////////////////////////////////////////////// E M P T Y   S E L E C T
			// E M P T Y   S E L E C T 
			function EmptySelect(pSelect){
				var i;
				for(i = 0; i < pSelected.options.length; i++){
					RemoveOption(pSelelect, 0);
				}
			}
			//////////////////////////////////////////////////////////////////////////////////////////////////////////// G E T   S E L E C T E D   V A L U E 
			// G E T   S E L E C T E D   V A L U E 
			function GetSelectedValue(pSelect){
				return pSelect.options[pSelect.selectedIndex].value;
			}
			
					function CheckTypes(){
			this.NONE = -1;
			this.EMTPY = 0;
			this.INTEGER = 1;
			this.EMAIL = 2;
			this.PASSWORD = 3;
			this.SELECT = 4;
			this.POSITIVE_NUMBER = 5;
			this.NON_NEGATIVE_NUMBER = 6;
			this.NUMBER = 7;
			this.PHONE = 8;
			this.EGN = 9;
		}
		var CHK_TYPES = new CheckTypes();
		/////////////////////////////////////////////////////////////////////////
		function CheckSubmit(frmForm){
		
			var i, j, k;
			var nCurrLanguage;
			var bUsedALanguage;
			var sPrefix = "document."+ frmForm.name + ".";
			var sCntrlPrefix;
			
			if(typeof(frmForm.arSwitchBaseNames) != "undefined"){
				// if it's an array or this is a second pass
				//alert('a');
				frmForm.sSwitchBaseName = "";
				if(typeof(frmForm.bIsArray) == "undefined"){
					frmForm.bIsArray = true;
				}
			}else{
				//alert('b');
				// if it's not an array (only first pass)
				frmForm.arSwitchBaseNames = Array();
				frmForm.arSwitchBaseNames.push(frmForm.sSwitchBaseName);
				frmForm.bIsArray = false;
			}
			
			//alert(frmForm.bIsArray);
			//alert(frmForm.arSwitchBaseNames[0]);
			
			if(typeof(frmForm.arControls) != 'undefined'){
				for(i = 0; i < frmForm.arControls.length; i++){
					//alert(sPrefix + frmForm.arControls[i] +"->"+ eval(sPrefix + frmForm.arControls[i]));
					if(!CheckValue(eval(sPrefix + frmForm.arControls[i]))){
						return false;
					}
				}
			}

			if(typeof(frmForm.arLngControls) != 'undefined'){
				bUsedALanguage = false;
				for(k = 0; k < frmForm.arSwitchBaseNames.length; k++){
					frmForm.sSwitchBaseName = frmForm.arSwitchBaseNames[k];
					//alert(sPrefix + frmForm.sSwitchBaseName);
					for(i = 0; i < frmForm.arLanguages.length; i++){
						if(eval(sPrefix + frmForm.sSwitchBaseName + i).checked){
							bUsedALanguage = true;
							nCurrLanguage = eval(sPrefix + frmForm.sSwitchBaseName + i).value;
							for(j = 0; j < frmForm.arLngControls.length; j++){
								if(frmForm.bIsArray){
									sCntrlPrefix = k +"_";
								}else{
									sCntrlPrefix = "";
								}
								//alert(sPrefix + frmForm.arLngControls[j] + sCntrlPrefix + nCurrLanguage);
								if(!CheckValue(eval(sPrefix + frmForm.arLngControls[j] + sCntrlPrefix + nCurrLanguage))){
									return false;
								}
							}
						}
					}
				}
			}else{
				bUsedALanguage = true;
			}
			
			if(!bUsedALanguage){
				alert(frmForm.sNoLanguageSelectedErr);
				return false;
			}
			
			frmForm.submit();
		}
		/////////////////////////////////////////////////////////////////////////
		function CheckValue(oControl){
		
			//alert(oControl.name);
			var nCheckType = eval(oControl.nCheckType);
			var oTwinControl;
			
			if(nCheckType == CHK_TYPES.EMPTY){
				if(oControl.value.replace(/\s+/, "") == ""){
					alert(oControl.sErr);
					HighlightField(oControl);
					return false;
				}else{
					return true;
				}
			}else if(nCheckType == CHK_TYPES.SELECT){
				if(oControl.selectedIndex == -1){
					alert(oControl.sErr);
					HighlightField(oControl);
					return false;
				}else{
					return true;
				}
			}else if(nCheckType == CHK_TYPES.EMAIL){
				sEMail = oControl.value.replace(/\s+/, "");
				if((sEMail == "" || (sEMail.indexOf('@') < 1 || sEMail.indexOf('@') == (sEMail.length - 1)))){
					alert(oControl.sErr);
					HighlightField(oControl);
					return false;
				}else{
					return true;
				}
			}else if(nCheckType == CHK_TYPES.POSITIVE_NUMBER){
				if(isNaN(oControl.value) || oControl.value <= 0){
					alert(oControl.sErr);
					HighlightField(oControl);
					return false;
				}else{
					return true;
				}
			}else if(nCheckType == CHK_TYPES.NON_NEGATIVE_NUMBER){
				if(isNaN(oControl.value) || oControl.value < 0){
					alert(oControl.sErr);
					HighlightField(oControl);
					return false;
				}else{
					return true;
				}
			}else if(nCheckType == CHK_TYPES.NUMBER){
				if(isNaN(oControl.value)){
					alert(oControl.sErr);
					HighlightField(oControl);
					return false;
				}else{
					return true;
				}
			}else if(nCheckType == CHK_TYPES.PASSWORD){
				sPwd = oControl.value.replace(/\s+/, "");
				oTwinControl = eval("document.all."+ oControl.name + "2");
				sPwd2 = oTwinControl.value.replace(/\s+/, "");
				if(sPwd == ""){
					alert(oControl.sErr);
					HighlightField(oControl);
					return false;
				}else{
					if(sPwd != sPwd2){
						alert(oControl.sErr2);
						HighlightField(oTwinControl);
						return false;
					}else{
						return true;
					}
				}
			}else if(nCheckType == CHK_TYPES.PHONE){
				var reCheck = new RegExp("^\\+?([0-9 ])+$");
				
				if(oControl.value.toString().match(reCheck) == null){
					alert(oControl.sErr);
					HighlightField(oControl);
					return false;
				}else{
					return true;
				}
			}else if(nCheckType == CHK_TYPES.EGN){
				var reCheck = new RegExp("^[0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9][0-9]$");
				if(oControl.value.toString().match(reCheck) == null){
					alert(oControl.sErr);
					HighlightField(oControl);
					return false;
				}else{
					return true;
				}
			}else if(nCheckType == CHK_TYPES.NONE){
				return true;
			}else{
				alert('Invalid Check Type!');
				return false;
			}
		}