﻿// JScript File
function ccc12(ctrlFromID,ctrlChkDigit,ctrlToID)
    {
        var NewGtin;
        var GtinLength = 11;
        var GTIN12 =  document.getElementById(ctrlFromID).value;
        var IsValid = Validation(GTIN12,GtinLength);
        if(IsValid == true)
        {
           var GtinLen = GenerateCheckDigit(GTIN12);   
           NewGtin = "00" + GTIN12 + GtinLen;
           document.getElementById(ctrlChkDigit).value = GtinLen; 
           document.getElementById(ctrlToID).value = NewGtin;         
        }
    }    
    function ccc14(ctrlFromID,ctrlChkDigit,ctrlToID)
    {
        var NewGtin;
        var GtinLength = 13;
        var GTIN14 =  document.getElementById(ctrlFromID).value;
        var IsValid = Validation(GTIN14,GtinLength);
        if(IsValid == true)
        {
            var GtinLen = GenerateCheckDigit(GTIN14);
            NewGtin = GTIN14 + GtinLen;
            document.getElementById(ctrlChkDigit).value = GtinLen; 
            document.getElementById(ctrlToID).value = NewGtin;                             
        }
    }
    
    function Validation(GTIN,GtinLength)
    {   
        var Flag =true;
        if(GTIN == null || GTIN == '')
        {
            if(GtinLength == 11)
            {
                Flag = false;
                alert("Please enter 11 digits in the Item Reference");
            }
            if(GtinLength == 13)
            {   
                Flag = false;
                alert("Please enter 13 digits in the Item Reference");
            }
        } 
        else if(IsNumeric(GTIN) == false) 
        {            
            if(GtinLength == 11)
            {
                Flag = false;
                alert("Please enter 11 digits in the Item Reference");
            }
            if(GtinLength == 13)
            {   
                Flag = false;
                alert("Please enter 13 digits in the Item Reference");
            }
        }
        else if(IsNumeric(GTIN) == true) 
        {            
            if(GtinLength == 11  && GTIN.length < 11)
            {
                Flag = false;
                alert("Please enter 11 digits in the Item Reference");
            }
            if(GtinLength == 13 && GTIN.length < 13)
            {   
                Flag = false;
                alert("Please enter 13 digits in the Item Reference");
            }
        }
        return Flag;              
    }
    
    function IsNumeric(sText)
    {
        var ValidChars = "0123456789";
        var IsNumber=true;
        var Char;
        
        for (i = 0; i < sText.length && IsNumber == true; i++) 
        { 
            Char = sText.charAt(i); 
            if (ValidChars.indexOf(Char) == -1) 
            {
                IsNumber = false;
            }
        }
        return IsNumber;  
   }
   
   function GenerateCheckDigit(GTIN)
   {
        var I;
        var iFactor;
        var iWgtTot;
        var iChrNum;
        var iChkDigit;
        var iLen;
        var sCode = GTIN;            
        var GtinLen = GetGtinLength(GTIN)
        switch (GtinLen)
        {
            case 10:
                iLen = 10;
                break;

            case 11:
                iLen = 11;
                break;

            case 12:
                iLen = 11;
                break;

            case 13:
                iLen = 13;
                break;

            case 14:
                iLen = 13;
                break;

            default:
                return "";
        }
        iFactor = 3;

        iWgtTot = 0;
        
        for (var i = iLen - 1; i >= 0; i--)
        {   
            iChrNum = sCode.charAt(i);
            iWgtTot = iWgtTot + iChrNum * iFactor;            
            iFactor = 4 - iFactor;
        }
       
        I = iWgtTot % 10;
        
        if (I != 0)
        {
            iChkDigit = (10 - I);
        }
        else
        {
            iChkDigit = 0;
        }
        
        var strTemp = "0123456789";
        var RetVal= strTemp.charAt(iChkDigit);                 
        return(RetVal);
   }
   
   function GetGtinLength(Gtin)
   {
        var GtinLength = null;
        if(Gtin != null && Gtin != '')
        {
            GtinLength = Gtin.length
        }
        return GtinLength;
   }
   
   function CloseGTINCalculator(txtGTIN,txtCheck,txtNewGTIN)
   {
        el = document.getElementById("msgOverLay");
	    el.style.visibility = "hidden";
	    document.getElementById(txtGTIN).value = '';
	    document.getElementById(txtCheck).value = '';
	    document.getElementById(txtNewGTIN).value = '';
   }
   
   function ApplyGTIN14(gtinNew,hdnID,txtGTIN,txtCheck,AllowUpdate){
        var CtrlID = document.getElementById(hdnID).value;
        document.getElementById(CtrlID).value = document.getElementById(gtinNew).value;
        if(AllowUpdate == 'T')
            UpdateTextBoxFromGTINCalculator(CtrlID,'upc'); 
        CloseGTINCalculator(txtGTIN,txtCheck,gtinNew);
    }

    function ApplyGTIN12(gtinNew,hdnID,txtGTIN,txtCheck,AllowUpdate){
        var CtrlID = document.getElementById(hdnID).value;
        document.getElementById(CtrlID).value = document.getElementById(gtinNew).value;  
        if(AllowUpdate == 'T')
            UpdateTextBoxFromGTINCalculator(CtrlID,'scc');      
        CloseGTINCalculator(txtGTIN,txtCheck,gtinNew);
    }
    
    function CloseGTINCalculatorClick(txtGTIN12,txtCheck12,txtNewGTIN12,txtGTIN14,txtCheck14,txtNewGTIN14)
   {
        el = document.getElementById("msgOverLay");
	    el.style.visibility = "hidden";
	    document.getElementById(txtGTIN).value = '';
	    document.getElementById(txtCheck).value = '';
	    document.getElementById(txtNewGTIN).value = '';
   }
   
   function ClearAll(txtGTIN12,txtCheck12,txtNewGTIN12,txtGTIN14,txtCheck14,txtNewGTIN14)
   {
	    document.getElementById(txtGTIN12).value = '';
	    document.getElementById(txtCheck12).value = '';
	    document.getElementById(txtNewGTIN12).value = '';
	    document.getElementById(txtGTIN14).value = '';
	    document.getElementById(txtCheck14).value = '';
	    document.getElementById(txtNewGTIN14).value = '';
   }

