﻿    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 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='';

            
            if (num != '')
            {
            
            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;
            }
            
            else
            return '';
    }

    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 ValidateNumeric(e) 
  { 
        var keyCode; //var keyCode = window.event.keyCode;
        if (window.event)
            keyCode = event.keyCode
        else
            keyCode = e.which

        if (keyCode == 8)//BACKSPACE key
            return;
        if (keyCode == 0)//TAB, Up, Down, Left, Right
            return;

        if (keyCode > 57 || keyCode < 48) 
        {
            if (window.event) //IE
                window.event.returnValue = false; 
            else //Firefox
                e.preventDefault();
        }
      
  }

  function ValidateAlphaNumeric(e, blUpper, blEMail) 
  { 
        var keyCode; //var keyCode = window.event.keyCode;

        if (blUpper==true)
            UpperCase(e);
            
        if (window.event)
            keyCode = event.keyCode
        else
            keyCode = e.which
        
        if (keyCode == 8)//BACKSPACE key
            return;
        if (keyCode == 0)//TAB, Up, Down, Left, Right
            return;
        
        var ValidChars;
        
        if(blEMail==true)
            ValidChars = "abcdefghijklmnoöpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.@_0123456789- ";
        else
            ValidChars = "abcçdefgğhıijklmnoöpqrsştuüvwxyzABCÇDEFGĞHIİJKLMNOÖPQRSŞTUÜVWXYZ ";
        
        if (ValidChars.indexOf(String.fromCharCode(keyCode))==-1)
        {
            if (window.event) //IE
                window.event.returnValue = false; 
            else //Firefox
                e.preventDefault();
        }
  }

  
    function UpperCase(evt)
    {
        var mkeyCode;

        if (window.event) //IE
            mkeyCode = event.keyCode;
        else //FireFox
            mkeyCode = evt.which;

        if(mkeyCode==105)
            mkeyCode = 304;
        if(mkeyCode==305)
            mkeyCode = 73;
        if (mkeyCode == 287)
            mkeyCode = 286;
        if (mkeyCode == 351)
            mkeyCode = 350;
        if (mkeyCode == 252)
            mkeyCode = 220;
        if (mkeyCode == 231)
            mkeyCode = 199;
        if (mkeyCode == 246)
            mkeyCode = 214;
        if (mkeyCode >= 97 && mkeyCode <= 122)
            mkeyCode = mkeyCode-32;
        if (mkeyCode == 39)
            mkeyCode = 96;
        
        if(window.event) //IE
            window.event.keyCode = mkeyCode;
        else //FireFox
        {
            if(evt.ctrlKey==true)return;
            if(mkeyCode!=evt.charCode)
            {
                evt.preventDefault();
                var ne = document.createEvent("KeyEvents");
                ne.initKeyEvent("keypress",false,true,window,false ,false,false,false,mkeyCode,mkeyCode);
                evt.target.dispatchEvent(ne);
            }
        }
    }  