//<script language=JavaScript>

function GetDecimalDelimiter(nCountryCode){
       var sRet='';
       switch (nCountryCode){
            case 3:    sRet = '#';
                           break;
            case 2:    sRet = ',';
                           break;
            default:    sRet = '.';
                           break;
        }
      return sRet;
}

function GetCommaDelimiter(nCountryCode){
       var sRet='';
       switch (nCountryCode){
            case 3:    sRet = '*';
                           break;
            case 2:    sRet = ',';
                           break;
            default:   sRet = ',';
                           break;
        }
      return sRet;
}

function FormatClean(num){
     var sVal='';
     var nVal = num.length;
     var sChar='';
   try{
       for(i=0;i<nVal;i++){
         sChar = num.charAt(i);
         nChar = sChar.charCodeAt(0);
         if ((nChar >=48) && (nChar <=57) )  { sVal += num.charAt(i);   }
      }
   }
    catch (exception) { AlertError("Format Clean",e); }
    return sVal;
}

function CleanComma(num){
     var sVal='';
     var nVal = num.length;
     var sChar='';
   try{
       for(i=0;i<nVal;i++)
      {
         sChar = num.charAt(i);
         nChar = sChar.charCodeAt(0);
         if ((nChar >=46) && (nChar <=57) )  {   sVal += num.charAt(i);   }
      }
   }
    catch (exception) { AlertError("Format Clean",e); }
    return sVal;
}

function FormatCurrency(num,nCountryCode){       
        var sVal='';
        var minus='';
        var Decimal='';
        Decimal = GetDecimalDelimiter(nCountryCode);
        if (num.lastIndexOf("-") == 0) { minus='-'; }
        if (num.lastIndexOf(Decimal) < 0) { num = num + '00'; }
        num = FormatClean(num);
       sVal = minus + FormatDollar(num,GetCommaDelimiter(nCountryCode)) + GetDecimalDelimiter(nCountryCode) + FormatCents(num); 
        return sVal;
 }

function FormatNumber(num,nCountryCode){       
        var sVal='';
        var minus='';
        var CommaDelimiter='';
        try {
           CommaDelimiter = GetCommaDelimiter(nCountryCode);
           if (num.lastIndexOf("-") == 0) { minus='-'; }
           num = FormatClean(num);
           num = parseInt(num);
           var samount = new String(num);
           for (var i = 0; i < Math.floor((samount.length-(1+i))/3); i++){
             samount = samount.substring(0,samount.length-(4*i+3)) + CommaDelimiter + samount.substring(samount.length-(4*i+3));
           }
        }
         catch (exception) { AlertError("Format Number",e); }
        return minus + samount;
}

function FormatCents(amount){
     var cents = '';
      try{
           amount = parseInt(amount);
           var samount = new String(amount);
           if (samount.length == 0) { return '00'; }
           if (samount.length == 1) { return '0' + samount; }
           if (samount.length == 2) { return samount; }
           cents =  samount.substring(samount.length -2,samount.length);
      }
      catch (exception) { AlertError("Format Cents",e); }
      return cents;
}

function FormatDollar(amount,CommaDelimiter){
   try{
        amount = parseInt(amount);
        var samount = new String(amount);
        if (samount.length < 3) { return 0; }  
        samount =  samount.substring(0,samount.length -2);
        for (var i = 0; i < Math.floor((samount.length-(1+i))/3); i++)
        {
           samount = samount.substring(0,samount.length-(4*i+3)) + CommaDelimiter + samount.substring(samount.length-(4*i+3));
         }
   }
    catch (exception) { AlertError("Format Comma",e); }
    return samount;
}

 function AlertError(MethodName,e){
        if (e.description == null) { alert(MethodName + " Exception: " + e.message); }
        else {  alert(MethodName + " Exception: " + e.description); }
 }

function FormatCoins(num, decimalNum, bolLeadingZero){	
        var sVal='';
        var minus='';
        var Decimal='';
        Decimal = '.';
        if (num.lastIndexOf("-") == 0) { minus='-'; }        
        if (num.lastIndexOf(Decimal) < 0) { num = num + '00'; } 
        num = FormatClean(num);
        if ( num.charAt(0) =='0') num= num.substring(1,num.length) ;	
        sVal = minus + FormatDollar(num,',') + '.'+ FormatCents(num); 
         return sVal;
 }
				
function Multiply(qty, note){
    var result,i,j = 0;
    i = parseInt(CleanComma(note)) ;
   if (qty!='')
	{
       j = parseFloat(qty); 
	}
   else j=0;
   if (isNaN(j)) return 0.00;
   result = i*j;
   return result ;
}
var previousAmount=0;
function SumTotal(total, previousAmount, newAmount) {
	var s = '';
	var result;
 	//alert('3 currentTotal='+ total );
	//alert('4 previousAmount='+ previousAmount );
	//alert('5 newAmount='+ newAmount );
	totalValue = parseFloat(CleanComma(total))
	previousValue = parseFloat(CleanComma(previousAmount));
	if(!previousValue) previousValue=parseFloat("0.00")
	result= totalValue  - previousValue
	if(!result) result=0; 
	//alert('6 result 1='+ result + "\n currentTotal="+total + "\n totalValue="+totalValue +"\n previousAmount="+previousAmount+"\n previousValue="+previousValue);
	result+=parseFloat(CleanComma(newAmount));
	//alert('7 result 2='+ result );
	s = new String(result) ;
	var arr = s.split('.',2) ;
	if ( !isNaN(arr[1]) ){
		if ( arr[1].length < 2 )
			result += '0' ;
	}
	if (isNaN(result)) result=0.00;
	//alert('8 result='+ result );
	return result;
}
function SumAndShowTotal( totalField, currentField) {
	var newAmount = currentField.value;
	var currentTotal = totalField.value;
 	if( !previousAmount || previousAmount =="") previousAmount = 0;
	//alert('3 previousAmount='+ previousAmount );
	//alert('4 currentTotal='+ currentTotal );
	//alert('5 newAmount='+ newAmount );
	if( !currentTotal || currentTotal == "") currentTotal = 0;
	if( !newAmount || newAmount == "") newAmount = 0;
	var newTotal = SumTotal(currentTotal, previousAmount, newAmount);
	totalField.value = newTotal;
	//alert('6 newTotal='+ newTotal );
	//alert('7 totalField.value='+ totalField.value );
}

//
function FormatAccount(account){
alert("function FormatAccount(account) is deprecated. \n It use the old Avgo format 999-99-999999.");
    var sac = new String(account);
    var result = '';
    if ( sac.length == 11 && sac.indexOf('-') < 0){
			for (var i=0;i<sac.length;i++){
							result += sac.charAt(i) ; 
					if ( (i==2 && sac.charAt(3) != '-')  || (i==4 && sac.charAt(5) != '-') )
						result += '-' ;
			}
	}else{	
			for (var i=0;i<sac.length;i++){
				result += sac.charAt(i) ; 
				if ( (i==2 && sac.charAt(3) != '-')  || (i==5 && sac.charAt(6) != '-') )
					result += '-' ;
			}
	}	
    return result;
}

// format the cheque number
// param is a string with the cheque number
function FormatChequeNumberStr(chequeNo){
	var num = new String(chequeNo);
	var len = 8 - chequeNo.length;
	for( i = 0; i < len; i++ )
		chequeNo = "0" + chequeNo;
	return chequeNo;
}
// param is a textbox / input field to be formatted
function FormatChequeNumber(chequeFieldName){
    var field = document.forms[0].elements[chequeFieldName]
	var chequeNo = new String(field.value);
	chequeNo= FormatChequeNumberStr(chequeNo);
	field.value= chequeNo;
}

//browser detection
var strUserAgent = navigator.userAgent.toLowerCase(); 
var isIE = strUserAgent.indexOf("msie") > -1; 
var isNS6 = strUserAgent.indexOf("netscape6") > -1; 
var isNS4 = !isIE && !isNS6  && parseFloat(navigator.appVersion) < 5; 
			
//regular expressions
var reValidChars =  /\d/;                  //  '/\d/;'
var reValidString = /^\d*$/;              ///(\.\d\d[1-9]?)(?=\d\d)\d+\$1\g/;
var reKeyboardChars = /[\x00\x03\x08\x0D\x16\x18\x1A]/;
var reClipboardChars = /[cvxz]/i;
			
//mask functions
function maskKeyPress(objEvent,ctl) {
    var iKeyCode, strKey, objInput;  
	if (isIE) {
		iKeyCode = objEvent.keyCode;
		objInput = objEvent.srcElement;
	} else {
		iKeyCode = objEvent.which;
		objInput = objEvent.target;
	}
	if  (iKeyCode == '13')
		{
		ctl.focus() ;	 
		return false;
        }
	strKey = String.fromCharCode(iKeyCode);
	if (isValid(objInput.value)) {
		objInput.validValue = objInput.value;
		if (!reValidChars.test(strKey) && !reKeyboardChars.test(strKey) && !checkClipboardCode(objEvent, strKey)) {
			return false;
		}
	} else {
		objInput.value = objInput.validValue;
		return false;
	}
}
			
function checkClipboardCode(objEvent, strKey){
	if (isNS6)
		return objEvent.ctrlKey && reClipboardChars.test(strKey);
	else
		return false;
}
			
function isValid(strValue){
//	alert("isValid=" + (reValidString.test(strValue) || strValue.length == 0));
	return reValidString.test(strValue) || strValue.length == 0;			
}

function maskChange(objEvent){
	var objInput;
	if (isIE) {
		objInput = objEvent.srcElement; 
	} else {
		objInput = objEvent.target;
	}
	if (!isValid(objInput.value)) {
		objInput.value = objInput.validValue || "";
		objInput.focus();
	    objInput.select(); 
	} else {
		objInput.validValue = objInput.value;
	}
}
			
function maskPaste(objEvent){
	var strPasteData = window.clipboardData.getData("Text");
	var objInput = objEvent.srcElement;
	if (!isValid(strPasteData)) {
		objInput.focus();
		return false;
	}
}	

var ModalDialogWindow;
var ModalDialogInterval;
var ModalDialog = new Object;

ModalDialog.value = '';
ModalDialog.eventhandler = '';

function ModalDialogMaintainFocus(){
    try{
	  if (ModalDialogWindow.closed){
		window.clearInterval(ModalDialogInterval);
		eval(ModalDialog.eventhandler);       
		return;
	  }
	  ModalDialogWindow.focus(); 
	}
   catch (everything) {   }
}
        
function ModalDialogRemoveWatch(){
	ModalDialog.value = '';
	ModalDialog.eventhandler = '';
}
        
function ModalDialogShow(Title,url,ctlValue,ctlFocus,args){
   ModalDialogRemoveWatch();
   //ModalDialog.eventhandler = EventHandler;
   if (args==''){
        args='dialogWidth:400px;dialogHeight:30;left=325;top=300;toolbar=0;';
	args+='location=0;status=0;menubar=0;scrollbars=1;resizable=0';  
     }
   ModalDialogWindow=window.showModalDialog(url,Title,args); 
     if(parseFloat(ModalDialogWindow) > 0 ){
		document.getElementById(ctlValue).value  = ModalDialogWindow;
	} else{
		document.getElementById(ctlValue).value = document.getElementById(ctlValue).value;
	}
     document.forms[0].submit();
     document.getElementById(ctlFocus).focus();
}

function ClosePopUp(val){
	window.returnValue = val;
	window.close();
}

//</script>
