//'****[ Event Handlers ]*****************************************************
function fnValidateSMBForm(intACRows){
	var intACColumns = CONST_VAL_MAXACCOL;
	
	//alert(smbForm.optCountry.selectedIndex);
	if(fnIsObjectAvailable('optCountry') && smbForm.optCountry.selectedIndex==0){
		alert(CONST_MSG_SELECTCOUNTRY);
		smbForm.optCountry.focus();
		return event.returnValue=false;	
	}
	
	//check if there are still available input boxes
	var isACAvailable = false;
	var isBlankAvailable = false;
	var intActualRows = 0;
	
	for(row=1;row<=intACRows;row++){
		var intBlankColumns = 0, obj;
		
		for(col=1;col<=intACColumns;col++){
			obj = eval('smbForm.txtAC' + row + col)

			if (!fnCheckInvalidChar(obj))
				return event.returnValue=false;	
				
			if (obj.value.length>0) intBlankColumns++;
			
			if (obj.type!='hidden' && intBlankColumns>0 && (obj.value.length==0 || (col>1 && obj.value.length<obj.size))){
				alert(CONST_MSG_INVALIDACFORMAT);
				obj.focus();
				return event.returnValue=false;	
			}
		}
		
		if (intBlankColumns==0){
			//if (!isBlankAvailable) smbForm.renewrows.value = row-1;
			isBlankAvailable = true;
		}
		else {
			obj = eval('smbForm.txtAC' + row + '1');
			if (obj.value.length==0) {
				alert(CONST_MSG_INVALIDACFORMAT);
				obj.focus();
				return event.returnValue=false;	
			}		
			
			isACAvailable = true;
		}
		
		intActualRows++;
	}	
	//validate available input boxes
	if(!isACAvailable){
		alert(CONST_MSG_NOAC);
		return event.returnValue=false;
	}
	
	//save count
	smbForm.renewrows.value = intActualRows;
	
	//all is ok from here, disable inputs before submitting
	smbForm.btnSubmit.disabled = true;
	if (fnIsObjectAvailable('btnAddMore')) smbForm.btnAddMore.disabled = true;

	if (isACAvailable && confirm(CONST_MSG_SUBMITAC))
		return event.returnValue=true;
	else {
		//user cancelled or no activation code specified, enable inputs back
		smbForm.btnSubmit.disabled = false;
		if (fnIsObjectAvailable('btnAddMore')) smbForm.btnAddMore.disabled = false;

		return event.returnValue=false;
	}
}

function fnAddMoreSubmit(intACRows){
	var intACColumns = CONST_VAL_MAXACCOL;
	
	//check if there are still available input boxes
	var isACAvailable = false;
	var isBlankAvailable = false;
	
	for(row=1;row<=intACRows;row++){
		var intBlankColumns = 0;
		
		for(col=1;col<=intACColumns;col++){
			obj = eval('smbForm.txtAC' + row + col)
			if (obj.value.length>0) intBlankColumns++;
			if (intBlankColumns>0 && obj.value.length==0){
				alert(CONST_MSG_INVALIDACFORMAT);
				obj.focus();
				return event.returnValue=false;	
			}
		}
		
		if (intBlankColumns==0)
			isBlankAvailable = true;
		else
			isACAvailable = true;
	}
	
	//validate available input boxes
	if(!isACAvailable){
		alert(CONST_MSG_NOAC2);
	}
	else if(isBlankAvailable && intACRows<=CONST_VAL_MINACROW){
		alert(CONST_MSG_LESS5AC);
	}
	else{
		smbForm.renewrows.value = parseInt(smbForm.renewrows.value) + 1;
		smbForm.action = document.location;
		smbForm.submit();
	}
	
	return;
}

function fnRemoveActCode(p_strRowID, p_strRemoveFlagID){
	//disable submit button
	smbForm.btnSubmit.disabled = true;
	//IMHS Change >> Taken out not to show the pop-up >>
	//process request
	//if (confirm(CONST_MSG_REMOVEAC)) {	
	//IMHS Change <<
		var objR = document.getElementById(p_strRemoveFlagID);		
		objR.value = '1';
			
		var objValidACCount = document.getElementById('validrows') //LIEZEL CHANGE 04/09
		var objRenewACCount = document.getElementById('renewrows')
		var objErrCount = document.getElementById('acerrcount');		
		if ((objErrCount.value=='1' && objValidACCount.value=='0') || (objErrCount.value=='0' && objValidACCount.value=='1')){ 
			//var objValidACCount = document.getElementById('renewrows') LIEZEL CHANGE 04/09
			if ((parseInt(objValidACCount.value)-1)>=1)
				smbForm.submit();
			else {
				alert(CONST_MSG_NOACLEFT);
				fnClearTextFields();
				objValidACCount.value = 0;
				smbForm.action = 'smb-us-renewal.asp';
				smbForm.submit();
			}
			return;
		}		
		else {
			//LIEZEL CHAGNE 08/2009	
			objRenewACCount.value = parseInt(objRenewACCount.value) - 1;
			if (objR.id.substr(7,1) != 'D')
				objErrCount.value = parseInt(objErrCount.value) - 1;
			else
				objValidACCount.value = parseInt(objValidACCount.value) - 1; //LIEZEL CHAGNE 04/09
			
			var obj = document.getElementById(p_strRowID);
			obj.style.display = 'none';
			
			
			if (parseInt(objValidACCount.value)==0){
				var objLbl1 = document.getElementById('lblValidACs');
				var objLbl2 = document.getElementById('lblRemoveValidACs');
				var objLbl3 = document.getElementById('lblHRValidACs');
								
				objLbl1.style.display = 'none';
				objLbl2.style.display = 'none';
				objLbl3.style.display = 'none';
			}
			
			if (parseInt(objErrCount.value)==0){
				var objInvLbl1 = document.getElementById('lblInvalidACs');
				var objInvLbl2 = document.getElementById('lblRemoveInvalidACs');
				var objInvLbl3 = document.getElementById('lblHRInvalidACs');
								
				objInvLbl1.style.display = 'none';
				objInvLbl2.style.display = 'none';
				objInvLbl3.style.display = 'none';
			}			
			
		}
	//}
	
	if (parseInt(objValidACCount.value)>0){
		//enable back because the user cancelled the request
		smbForm.btnSubmit.disabled = false;
	}
}		
		

function fnRemoveAllInvalidActCode(strInvalidACs){
	var strMessage = CONST_MSG_RETRY.replace("[strACs]", strInvalidACs);

	//disable submit button
	smbForm.btnSubmit.disabled = true;
    //IMHS Change >> Taken out not to show the pop-up >>
	//if (confirm(strMessage)) {
	//IMHS Chenge <<	
		var arrObj = document.getElementsByTagName('INPUT');

		for (var i=0;i<arrObj.length;i++){
			if ((arrObj[i].id).substr(0,7)=='bRemove' && (arrObj[i].id).substr(7,1) != 'D') 
				arrObj[i].value = '2';
		}
		
		smbForm.submit();
	//}

	
	//enable back because the user cancelled the request
	smbForm.btnSubmit.disabled = false;
}		

//****[ Helper Functions ]****************************************//
var intTimeOutID;

function fnShowErrorMessage(obj, p_strErrorMsg){
	var strObjName = obj.name;
	var objDiv = document.getElementById('divErrorMessage');
	var objDivInner = document.getElementById('divErrMsgInner');
	
	window.clearTimeout(intTimeOutID);
	objDivInner.innerHTML = "<font size=2 color=red><b>Error Description:</b></font><br><font size=1>" + p_strErrorMsg + "</font>";//<br><br><center><font size=1 color=gray>...mouse hover here to keep the information...</font></center>";
	objDiv.style.posTop = event.clientY;
	objDiv.style.posLeft = event.clientX;
	//objDiv.style.display = '';
	objDiv.style.visibility = 'visible';
	
	intTimeOutID = window.setTimeout(fnHideErrorMessage, 3000);
}

function fnHideErrorMessage(){
	var objDiv = document.getElementById('divErrorMessage');
	//objDiv.style.display = 'none';
	objDiv.style.visibility = 'hidden';
}			

function fnExtedErrorMessage(){
	window.clearTimeout(intTimeOutID);
	intTimeOutID = window.setTimeout(fnHideErrorMessage, 3000);
}

function fnIsObjectAvailable(p_strObjName){
	var obj = document.getElementById(p_strObjName);
	
	if (obj==null)
		return false;
	else
		return true;
}

function fnClearTextFields(){
	var x;
	
	for(x=0;x<smbForm.elements.length;x++){
		if (smbForm[x].name.substr(0, 5)=='txtAC') smbForm[x].value = '';
	}
}

function fnCheckInvalidChar(mAc){
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
	var checkStr = mAc.value;
	var isValid = true;	
		
		for (i = 0; i < checkStr.length; i++)
		{
			ch = checkStr.charAt(i);
			//alert ("String is:" + ch);
			
			for (j = 0; j <= checkOK.length; j++)
			{
				//alert (checkOK.charAt(j))
				if (ch == checkOK.charAt(j))
				{
				break;
				}
				//alert (j + ":" + checkOK.length)
				if (j == checkOK.length)
				{
				//alert ('May invalid')
				isValid = false;
				break;
				}
			}
		}
		
		if (!isValid)
		{
			alert(CONST_MSG_INVALIDCHAR);
			mAc.focus();
			return (false);
		}
		else
		{
			return (true);
		}
		
}

function splitString(formName, mode, objName){


	var strobj;
	var str;
	var arrayStr;
	var arrStr;
	if (mode==0){
		strobj = eval("document."+formName+"."+"txtEK1");
		str = strobj.value;
		var ek1 = eval("document."+formName+"."+"txtEK1");
		var ek2 = eval("document."+formName+"."+"txtEK2");
		var ek3 = eval("document."+formName+"."+"txtEK3");
		var ek4 = eval("document."+formName+"."+"txtEK4");
		var ek5 = eval("document."+formName+"."+"txtEK5");
		arrStr = str;
		if (str.indexOf("-")!=-1)
		{
			arrStr = '';
			arrayStr = str.split('-');
			for(var i=0; i < arrayStr.length; i++)
			{
				arrStr = arrStr + arrayStr[i];
			}	
		}
		if (str.indexOf(' ')!=-1)
		{
			arrStr = '';
			arrayStr = str.split(' ');
			for(var i; i < arrayStr.length; i++)
			{
				arrStr = arrStr + arrayStr[i];
			}	
		}
		tempstr = arrStr;
		ek1.value = tempstr.substring(0,2);
		tempstr = tempstr.substring(2,tempstr.length);
		ek2.value = tempstr.substring(0,4);
		tempstr = tempstr.substring(4,tempstr.length);
		ek3.value = tempstr.substring(0,4);
		tempstr = tempstr.substring(4,tempstr.length);
		ek4.value = tempstr.substring(0,4);
		tempstr = tempstr.substring(4,tempstr.length);
		ek5.value = tempstr.substring(0,4);		
	}
	else if (mode==1){	
		var num_key= objName.substring(5, objName.length-1);
		strobj = eval("document."+formName+"."+"txtAC"+num_key+"1");
		str = strobj.value;		

		var ac1  = eval("document."+formName+"."+"txtAC"+num_key+"1");
		var ac2  = eval("document."+formName+"."+"txtAC"+num_key+"2");
		var ac3  = eval("document."+formName+"."+"txtAC"+num_key+"3");
		var ac4  = eval("document."+formName+"."+"txtAC"+num_key+"4");
		var ac5  = eval("document."+formName+"."+"txtAC"+num_key+"5");
		var ac6  = eval("document."+formName+"."+"txtAC"+num_key+"6");
		var ac7  = eval("document."+formName+"."+"txtAC"+num_key+"7");

		arrStr = str;		
		
		if (str.indexOf("-")!=-1)
		{
			arrStr = '';
			arrayStr = str.split('-');
			for(var i=0; i < arrayStr.length; i++)
			{
				arrStr = arrStr + arrayStr[i];
			}	
		}
		if (str.indexOf(' ')!=-1)
		{
			arrStr = '';
			arrayStr = str.split(' ');
			for(var i; i < arrayStr.length; i++)
			{
				arrStr = arrStr + arrayStr[i];
			}	
		}
		tempstr = arrStr;
		ac1.value = tempstr.substring(0,2);
		tempstr = tempstr.substring(2,tempstr.length);
		ac2.value = tempstr.substring(0,4);
		tempstr = tempstr.substring(4,tempstr.length);
		ac3.value = tempstr.substring(0,5);
		tempstr = tempstr.substring(5,tempstr.length);
		ac4.value = tempstr.substring(0,5);
		tempstr = tempstr.substring(5,tempstr.length);
		ac5.value = tempstr.substring(0,5);
		tempstr = tempstr.substring(5,tempstr.length);
		ac6.value = tempstr.substring(0,5);
		tempstr = tempstr.substring(5,tempstr.length);
		ac7.value = tempstr.substring(0,5);
	}
	else if (mode==2){
		strobj = eval("document."+formName+"."+"txtSNG1");
		str = strobj.value;
		var sng1 = eval("document."+formName+"."+"txtSNG1");
		var sng2 = eval("document."+formName+"."+"txtSNG2");
		var sng3 = eval("document."+formName+"."+"txtSNG3");
		var sng4 = eval("document."+formName+"."+"txtSNG4");
		var sng5 = eval("document."+formName+"."+"txtSNG5");
		arrStr = str;
		if (str.indexOf("-")!=-1)
		{
			arrStr = '';
			arrayStr = str.split('-');
			for(var i=0; i < arrayStr.length; i++)
			{
				arrStr = arrStr + arrayStr[i];
			}	
		}
		if (str.indexOf(' ')!=-1)
		{
			arrStr = '';
			arrayStr = str.split(' ');
			for(var i; i < arrayStr.length; i++)
			{
				arrStr = arrStr + arrayStr[i];
			}	
		}
		tempstr = arrStr;
		sng1.value = tempstr.substring(0,4);
		tempstr = tempstr.substring(4,tempstr.length);
		sng2.value = tempstr.substring(0,4);
		tempstr = tempstr.substring(4,tempstr.length);
		sng3.value = tempstr.substring(0,4);
		tempstr = tempstr.substring(4,tempstr.length);
		sng4.value = tempstr.substring(0,4);
		tempstr = tempstr.substring(4,tempstr.length);
		sng5.value = tempstr.substring(0,4);
	}
	else if (mode==3){
		strobj = eval("document."+formName+"."+"txtItemCode1");
		str = strobj.value;
		var ic1 = eval("document."+formName+"."+"txtItemCode1");
		var ic2 = eval("document."+formName+"."+"txtItemCode2");
		var ic3 = eval("document."+formName+"."+"txtItemCode3");
		var ic4 = eval("document."+formName+"."+"txtItemCode4");
		var ic5 = eval("document."+formName+"."+"txtItemCode5");
		arrStr = str;
		if (str.indexOf("-")!=-1)
		{
			arrStr = '';
			arrayStr = str.split('-');
			for(var i=0; i < arrayStr.length; i++)
			{
				arrStr = arrStr + arrayStr[i];
			}	
		}
		if (str.indexOf(' ')!=-1)
		{
			arrStr = '';
			arrayStr = str.split(' ');
			for(var i; i < arrayStr.length; i++)
			{
				arrStr = arrStr + arrayStr[i];
			}	
		}
		tempstr = arrStr;
		ic1.value = tempstr.substring(0,2);
		tempstr = tempstr.substring(2,tempstr.length);
		ic2.value = tempstr.substring(0,4);
		tempstr = tempstr.substring(4,tempstr.length);
		ic3.value = tempstr.substring(0,3);
		tempstr = tempstr.substring(3,tempstr.length);
		ic4.value = tempstr.substring(0,2);
		tempstr = tempstr.substring(2,tempstr.length);
		ic5.value = tempstr.substring(0,tempstr.length);
	}
}

function jump(obj,limit,nextField,formName,mode){
	var key = String.fromCharCode(event.keyCode).toLowerCase();
	//alert (key);
	if (mode==0){
		if(nextField == 'txtEK2'){		
			if ((event.ctrlKey) && (key == "v"))
			{			
				splitString(formName,mode);
			}
		}else{
			if (obj.value.length == limit) {
				if(eval("document."+formName+"."+nextField) && eval("document."+formName+"."+nextField)){
					var nextLen = eval("document."+formName+"."+nextField+".value.length");
					var nextObj = eval("document."+formName+"."+nextField);
					if(nextLen == 0)
						nextObj.focus();
				}
			}
		}
	}
	else if (mode==1){	
		if(nextField.substring(0,5) == 'txtAC' && nextField.substring(nextField.length-1, nextField.length)=='2'){		
			if ((event.ctrlKey) && (key == "v"))
			{
				splitString(formName, mode, obj.name);
			}
		}else{
			if (obj.value.length == limit) {
				if(eval("document."+formName+"."+nextField) && eval("document."+formName+"."+nextField)){
					var nextLen = eval("document."+formName+"."+nextField+".value.length");
					var nextObj = eval("document."+formName+"."+nextField);
					if(nextLen == 0)
						nextObj.focus();
				}
			}
		}
	}
	else if (mode==2){
		if(nextField == 'txtSNG2'){
			if ((event.ctrlKey) && (key == "v"))
			{
				splitString(formName,mode);
			}
		}else{
			if (obj.value.length == limit) {
				if(eval("document."+formName+"."+nextField) && eval("document."+formName+"."+nextField)){
					var nextLen = eval("document."+formName+"."+nextField+".value.length");
					var nextObj = eval("document."+formName+"."+nextField);
					if(nextLen == 0)
						nextObj.focus();
				}
			}
		}
	}
	else if (mode==3){
		if(nextField == 'txtItemCode2'){
			if ((event.ctrlKey) && (key == "v"))
			{
				splitString(formName,mode);
			}
		}else{
			if (obj.value.length == limit) {
				if(eval("document."+formName+"."+nextField) && eval("document."+formName+"."+nextField)){
					var nextLen = eval("document."+formName+"."+nextField+".value.length");
					var nextObj = eval("document."+formName+"."+nextField);
					if(nextLen == 0)
						nextObj.focus();
				}
			}
		}
	}
}