
//###################
//### WEB VERSION ###
//###################


function jsCheckbox(varField, varTable, varRowNo)
  {
   if (parent.bodyFrame.document.all['in' + varField + varRowNo].checked)
     {varStateCB = '1'}
   else
     {varStateCB = '0'}

   jsSave(varField, varTable, varRowNo);

   parent.bodyFrame.document.all['rw' + varField + varRowNo].value = varStateCB;

   if (varField == 'OverTime') 
     {jsCalc(varField, varTable, varRowNo)}
   else
     {jsTotal(varTable)}
  }



function jsCalc(varField, varTable, varRowNo)
  {
   switch (varField)
     {
      case 'Tax':        {varState1 = jsCheckTax('in' + varField + varRowNo);       break; }
      case 'Rate':       {varState2 = jsCheckNumber('inRate' + varRowNo, 5, 2);     break; }
      case 'Value':      {varState3 = jsCheckNumber('inValue' + varRowNo, 9, 2);    break; }
      case 'Qty':        {varState4 = jsCheckNumber('inQty' + varRowNo, 6, 2);      break; }
      case 'Discount':   {varState5 = jsCheckNumber('inDiscount' + varRowNo, 4, 1); break; }
     }

   switch (varField)
     {
      case 'Value':   
        {
         varValue = parent.bodyFrame.document.all['inValue' + varRowNo].value;

         parent.bodyFrame.document.all['inRate' + varRowNo].value = ""; jsSave('Rate', varTable, varRowNo);
         parent.bodyFrame.document.all['inUnit' + varRowNo].value = ""; jsSave('Unit', varTable, varRowNo);
         parent.bodyFrame.document.all['inQty' + varRowNo].value = "";  jsSave('Qty', varTable, varRowNo);

         break; }

      case 'Discount':   
        {jsSave(varField, varTable, varRowNo); break; }

      case 'Tax':   
        {jsSave(varField, varTable, varRowNo); break; }

      default:   
        {
         if (varField != 'OverTime') {jsSave(varField, varTable, varRowNo); }

         varQty = parent.bodyFrame.document.all['inQty' + varRowNo].value; varQty = parseFloat(varQty)
         varRate = parent.bodyFrame.document.all['inRate' + varRowNo].value; varRate = parseFloat(varRate)

         if (parent.bodyFrame.document.all['inOverTime' + varRowNo].checked) 
           {varOverTime = 1.5}
         else
           {varOverTime = 1}

         varValue = varQty * varRate * varOverTime;

         parent.bodyFrame.document.all['inValue' + varRowNo].value = jsDecimal(varValue);

         break; }
     }

   jsSave('Value', varTable, varRowNo);

   jsTotal(varTable);

   varState = true;

   switch (varField)
     {
      case 'Tax':        {varState = varState1; break; }
      case 'Rate':       {varState = varState2; break; }
      case 'Value':      {varState = varState3; break; }
      case 'Qty':        {varState = varState4; break; }
      case 'Discount':   {varState = varState5; break; }
     }

   return varState;
  }



function jsTotal(varTable)
  {
   var varNett = 0;
   var varDiscount = 0;
   var varSubTotal = 0;
   var varTax = 0;
   var varTotal = 0;
   var varDutyVAT = 0;

   switch (varTable)
     {
      case 'ln': 
        {objTable = parent.bodyFrame.document.getElementById('tableLines');
         varlastRow = objTable.rows.length;
         varlastRow = varlastRow / 3;

         varQuoteNett = 0;
         varQuoteDiscount = 0;
         varQuoteSubTotal = 0;
         varQuoteTax = 0;
         varQuoteTotal = 0;
         varQuoteDutyVAT = 0;

         for (y = 1; y <= varlastRow - 1;) 
           {
            if (parent.bodyFrame.document.all['inService' + y].value == 'delete') 
              {
               varNett = 0;
               varDiscount = 0;
               varSubTotal = 0;
               varTax = 0;
               varTotal = 0;
               varDutyVAT = 0;
              }
            else
              {
               varNett = parent.bodyFrame.document.all['inValue' + y].value;
               varNett = varNett.replace(',','');
               varNett = parseFloat(varNett); 
               if (isNaN(varNett)) {varNett = 0}

               varDiscount = parseFloat(parent.bodyFrame.document.all['inDiscount' + y].value);
               if (isNaN(varDiscount)) {varDiscount = 0}
               varDiscount = (varDiscount / 100) * varNett; 

               varSubTotal = varNett - varDiscount;

               varCode = parent.bodyFrame.document.all['inCode' + y].value;
               if (varCode >= 9000 && varCode <= 9499) {varDutyVAT = varNett} else {varDutyVAT = 0}
               }    

            varQuoteNett = varQuoteNett + varNett;
            varQuoteDiscount = varQuoteDiscount + varDiscount;
            varQuoteSubTotal = varQuoteSubTotal + varSubTotal;
            varQuoteDutyVAT = varQuoteDutyVAT + varDutyVAT;

            y = y + 1; }

         if (varQuoteNett == 0) {varQuoteNett = '0.00'} else {varQuoteNett = jsDecimal(varQuoteNett)}
         if (varQuoteDiscount == 0) {varQuoteDiscount = '0.00'} else {varQuoteDiscount = jsDecimal(varQuoteDiscount)}
         if (varQuoteSubTotal == 0) {varQuoteSubTotal = '0.00'} else {varQuoteSubTotal = jsDecimal(varQuoteSubTotal)}
         if (varQuoteDutyVAT == 0) {varQuoteDutyVAT = '0.00'} else {varQuoteDutyVAT = jsDecimal(varQuoteDutyVAT)}

         parent.bodyFrame.document.all['inQuoteNett'].value = varQuoteNett;
         parent.bodyFrame.document.all['inQuoteDiscount'].value = varQuoteDiscount;
         parent.bodyFrame.document.all['inQuoteSubTotal'].value = varQuoteSubTotal;
         parent.bodyFrame.document.all['inQuoteDutyVAT'].value = varQuoteDutyVAT;

         jsSave('QuoteSubTotal', 'sx');
         jsSave('QuoteDutyVAT', 'sx');

         break; }


      case 'jb': 
        {objTable = parent.bodyFrame.document.getElementById('tableJobs');
         varlastRow = objTable.rows.length;
         varlastRow = varlastRow / 3;

         varFileNett = 0;
         varFileDiscount = 0;
         varFileSubTotal = 0;
         varFileTax = 0;
         varFileTotal = 0;
         varFileDutyVAT = 0;

         varInvoiceNett = 0;
         varInvoiceDiscount = 0;
         varInvoiceSubTotal = 0;
         varInvoiceTax = 0;
         varInvoiceTotal = 0;

         for (y = 1; y <= varlastRow - 1;) 
           {

            if (parent.bodyFrame.document.all['inService' + y].value == 'delete') 
              {
               varNett = 0;
               varDiscount = 0;
               varSubTotal = 0;
               varTax = 0;
               varTotal = 0;
               varDutyVAT = 0;
              }
            else
              {
               varNett = parent.bodyFrame.document.all['inValue' + y].value;
               varNett = varNett.replace(',','');
               varNett = parseFloat(varNett); 
               if (isNaN(varNett)) {varNett = 0}

               varDiscount = parseFloat(parent.bodyFrame.document.all['inDiscount' + y].value);
               if (isNaN(varDiscount)) {varDiscount = 0}
               varDiscount = (varDiscount / 100) * varNett; 

               varSubTotal = varNett - varDiscount;

               if (parent.bodyFrame.document.all['inTax' + y].value == '1')
                 {varTax = varSubTotal * 0.175; varTotal = varSubTotal * 1.175}
               else
                 {varTax = 0; varTotal = varSubTotal}

               varCode = parent.bodyFrame.document.all['inCode' + y].value;
               if (varCode >= 9000 && varCode <= 9499) {varDutyVAT = varNett} else {varDutyVAT = 0}
              }

            varFileNett = varFileNett + varNett;
            varFileDiscount = varFileDiscount + varDiscount;
            varFileSubTotal = varFileSubTotal + varSubTotal;
            varFileTax = varFileTax + varTax;
            varFileTotal = varFileTotal + varTotal;
            varFileDutyVAT = varFileDutyVAT + varDutyVAT;

            varInvoice = parent.bodyFrame.document.all['inInvoice' + y].value;

            varSelected = parent.bodyFrame.document.all['inSelected' + y].checked;

            if (varSelected == true && varInvoice =="") 
              {
               //alert("YES")

               varInvoiceNett = varInvoiceNett + varNett;
               varInvoiceDiscount = varInvoiceDiscount + varDiscount;
               varInvoiceSubTotal = varInvoiceSubTotal + varSubTotal;
               varInvoiceTax = varInvoiceTax + varTax;
               varInvoiceTotal = varInvoiceTotal + varTotal;
              } 

            y = y + 1; }

//

         if (varFileNett == 0) {varFileNett = '0.00'} else {varFileNett = jsDecimal(varFileNett)}
         if (varFileDiscount == 0) {varFileDiscount = '0.00'} else {varFileDiscount = jsDecimal(varFileDiscount)}
         if (varFileSubTotal == 0) {varFileSubTotal = '0.00'} else {varFileSubTotal = jsDecimal(varFileSubTotal)}
         if (varFileTax == 0) {varFileTax = '0.00'} else {varFileTax = jsDecimal(varFileTax)}
         if (varFileTotal == 0) {varFileTotal = '0.00'} else {varFileTotal = jsDecimal(varFileTotal + 0.001)}
         if (varFileDutyVAT == 0) {varFileDutyVAT = '0.00'} else {varFileDutyVAT = jsDecimal(varFileDutyVAT)}

         parent.bodyFrame.document.all['inFileNett'].value = varFileNett;
         parent.bodyFrame.document.all['inFileDiscount'].value = varFileDiscount;
         parent.bodyFrame.document.all['inFileSubTotal'].value = varFileSubTotal;
         parent.bodyFrame.document.all['inFileTax'].value = varFileTax;
         parent.bodyFrame.document.all['inFileTotal'].value = varFileTotal;
         parent.bodyFrame.document.all['inFileDutyVAT'].value = varFileDutyVAT;

         if (varInvoiceNett == 0) {varInvoiceNett = '0.00'} else {varInvoiceNett = jsDecimal(varInvoiceNett)}
         if (varInvoiceDiscount == 0) {varInvoiceDiscount = '0.00'} else {varInvoiceDiscount = jsDecimal(varInvoiceDiscount)}
         if (varInvoiceSubTotal == 0) {varInvoiceSubTotal = '0.00'} else {varInvoiceSubTotal = jsDecimal(varInvoiceSubTotal)}
         if (varInvoiceTax == 0) {varInvoiceTax = '0.00'} else {varInvoiceTax = jsDecimal(varInvoiceTax)}
         if (varInvoiceTotal == 0) {varInvoiceTotal = '0.00'} else {varInvoiceTotal = jsDecimal(varInvoiceTotal + 0.001)}

         parent.bodyFrame.document.all['inInvoiceNett'].value = varInvoiceNett;
         parent.bodyFrame.document.all['inInvoiceDiscount'].value = varInvoiceDiscount;
         parent.bodyFrame.document.all['inInvoiceSubTotal'].value = varInvoiceSubTotal;
         parent.bodyFrame.document.all['inInvoiceTax'].value = varInvoiceTax;
         parent.bodyFrame.document.all['inInvoiceTotal'].value = varInvoiceTotal;

         jsSave('FileNett', 'sx');
         jsSave('FileSubTotal', 'sx');
         jsSave('FileDutyVAT', 'sx');

         break; }
     }
  }



function jsSave(varField, varTable, varRowNo)
  {
   if (typeof(parent.bodyFrame.document.all[varRowNo]) == 'undefined') {varRowNo = ''; }

   varState = true;
   varPage = jsGet('gvPage');

   switch (varField)
     {
      case 'Qual1':            {varState = jsCheckDate('inQual1');                     break; }
      case 'Qual2':            {varState = jsCheckDate('inQual2');                     break; }
      case 'Qual3':            {varState = jsCheckDate('inQual3');                     break; }
      case 'Qual4':            {varState = jsCheckDate('inQual4');                     break; }
      case 'Date':             {varState = jsCheckDate('inDate' + varRowNo);           break; }
      case 'Time':             {varState = jsCheckTime('inTime' + varRowNo);           break; }
      case 'Size':             {varState = jsCheckNumber('inSize', 7, 2);              break; }
      case 'Budget':           {varState = jsCheckNumber('inBudget', 9, 2);            break; }
      case 'CustomsValue':     {varState = jsCheckNumber('inCustomsValue', 8, 2);      break; }
      case 'Code':             {varState = jsCheckNumber('inCode' + varRowNo, 4, 0);   break; }
      case 'Rate':             {varState = jsCheckNumber('inRate' + varRowNo, 5, 2);   break; }
      case 'CharFileRef':      {varState = jsCheckCharFileRef();                       break; }
      case 'JDERef':           {varState = jsCheckNumber('inJDERef', 6, 0);            break; }
      case 'GLDate':           {varState = jsCheckDate('inGLDate');                    break; }
      case 'InDate':           {varState = jsCheckDate('inInDate');                    break; }
      case 'OutDate':          {varState = jsCheckDate('inOutDate');                   break; }
      case 'Weight':           {varState = jsCheckNumber('inWeight' + varRowNo, 7, 2); break; }
      case 'Volume':           {varState = jsCheckNumber('inVolume' + varRowNo, 6, 2); break; }
      case 'OutWeight':        {varState = jsCheckNumber('inOutWeight' + varRowNo, 7, 2); break; }
      case 'OutVolume':        {varState = jsCheckNumber('inOutVolume' + varRowNo, 6, 2); break; }
      case 'Terms':            {varState = jsCheckNumber('inTerms', 3, 0);             break; }
      case 'CreditLimit':      {varState = jsCheckNumber('inCreditLimit', 7, 2);       break; }
      case 'AccountsStatus':   {varState = jsCheckCase('inAccountsStatus');            break; }
      case 'CurrencySelect':   {if (varPage == 'exhibition_Details'); jsRemoveChild('exhibition_Tariff'); break; }
     }

   if (parent.bodyFrame.document.all['gvUser'].value == 'LAWLERN') {varType = "text"; } else {varType = "hidden"; }

   varInner = parent.bodyFrame.document.all['PassedVar'].innerHTML;

   switch (varTable)
     {
      case undefined:   
        {varSourceName = "in" + varField;
         varSourceValue = parent.bodyFrame.document.all[varSourceName].value;
         varSourceValue = varSourceValue.replace(/\r/g,'#r');
         varSourceValue = varSourceValue.replace(/\n/g,'#n');
         if (varSourceValue == "") {varSourceValue = 'CC'}
         varInputName = "sv" + varField; 
         break; }
 
      case 'st': 
        {varSourceName = "in" + varField;

         if (parent.bodyFrame.document.all[varSourceName].checked == true)
           {varSourceValue = true; }
         else
           {varSourceValue = false; }

         varInputName = "sv" + varField; 
         break; }

      case 'sx': 
        {varSourceName = "in" + varField;
         varSourceValue = parent.bodyFrame.document.all[varSourceName].value;
         varInputName = "sx" + varField; 
         break; }

      case 'ps': // Where is this used ?????
        {varSourceName = "in" + varField;
         varSourceValue = parent.bodyFrame.document.all[varSourceName].value;
         varInputName = "ps" + varField; 
         break; }

      default:   
        {varSourceName = "in" + varField + varRowNo;

         varSourceValue = parent.bodyFrame.document.all[varSourceName].value;
         if (varSourceValue == "") {varSourceValue = 'blank'}
         varInputName = "rw" + varField + varRowNo;
         varRowName = varTable + varRowNo;
         varDbIdName = "inID" + varRowNo; 
         varDbIdValue = parent.bodyFrame.document.all[varDbIdName].value;  

         if (parent.bodyFrame.document.all['gvUser'].value == 'LAWLERN')
           {varRowText = "<br>" + varRowName; }
         else
           {varRowText = ""; }

         if (typeof(parent.bodyFrame.document.all[varRowName]) == 'undefined')
           {varInner = varInner + varRowText + "<input type=" + varType + " name=" + varRowName + " value='" + varDbIdValue + "'>"}
         else
           {}   

         break; }
     }


   //if (varInputName == 'svTypeSelect')      {varInputName = 'svEType'; jsSet('inTypeInput',varSourceValue); }
   if (varInputName == 'svYearSelect')      {varInputName = 'svEYear'; jsSet('inYearInput',varSourceValue); }
   if (varInputName == 'svCurrencySelect')  {varInputName = 'svCurrency'; jsSet('inCurrencyInput',varSourceValue); }

   //if (varInputName == 'svTypeInput')       {varInputName = 'svEType'}
   if (varInputName == 'svYearInput')       {varInputName = 'svEYear'}
   if (varInputName == 'svCurrencyInput')   {varInputName = 'svCurrency'}


   if (varField == 'CharFileRef') {varSourceValue = varSourceValue.toUpperCase()}
   if (varField == 'CoordinatorShortCode') {varSourceValue = varSourceValue.toUpperCase()}
   if (varField == 'Code_User') {varSourceValue = varSourceValue.toUpperCase()}


   if (varTable != 'st' && varSourceValue.indexOf("'") > -1)
     {varSourceValue = varSourceValue.replace(/'/, ""); parent.bodyFrame.document.all[varSourceName].value = varSourceValue}

   if (parent.bodyFrame.document.all['gvUser'].value == 'LAWLERN')
     {
      varSaveText = "<br>gvSave";
      varInputText = "<br>" + varInputName;
     }
   else
     {
      varSaveText = "";
      varInputText = "";
     }

   if ((typeof(parent.bodyFrame.document.all['gvSave']) == 'undefined') && (varTable != 'ps'))
     {
      varSave = parent.bodyFrame.document.all['gvID'].value;  

      varInner = varInner + varSaveText + "<input id=gvSave type=" + varType + " name=gvSave value='" + varSave + "'>" //<br> 
     }
   else
     {}   

   parent.bodyFrame.document.all['PassedVar'].innerHTML = varInner;

   var oForm = parent.bodyFrame.document.all['PassedVar'];

   if (typeof(parent.bodyFrame.document.all[varInputName]) == 'undefined')
     {
      if (parent.bodyFrame.document.all['gvUser'].value == 'LAWLERN')
        {oInput =  parent.bodyFrame.document.createElement("br");
         oForm.appendChild(oInput)
         oInput =  parent.bodyFrame.document.createTextNode(varInputName);
         oForm.appendChild(oInput)
         oInput =  parent.bodyFrame.document.createElement("<input type=text value='" + varSourceValue + "' name=" + varInputName + ">");
         oForm.appendChild(oInput)}
      else
        {oInput =  parent.bodyFrame.document.createElement("<input type=hidden value='" + varSourceValue + "' name=" + varInputName + ">");
         oForm.appendChild(oInput)}
     }
   else
     {
      varID = parent.bodyFrame.document.all[varInputName];

      oForm.removeChild(varID);

      if (parent.bodyFrame.document.all['gvUser'].value == 'LAWLERN')
        {
         oInput =  parent.bodyFrame.document.createElement("br");
         oForm.appendChild(oInput)
         oInput =  parent.bodyFrame.document.createTextNode(varInputName);
         oForm.appendChild(oInput)
         oInput =  parent.bodyFrame.document.createElement("<input type=text value='" + varSourceValue + "' name=" + varInputName + ">");
         oForm.appendChild(oInput)
        }
      else
        {
         oInput =  parent.bodyFrame.document.createElement("<input type=hidden value='" + varSourceValue + "' name=" + varInputName + ">");
         oForm.appendChild(oInput)
        }
     }

   if (varField == 'Code') {jsPDA(varTable, varRowNo)}

   if (varField == 'Value' || varField == 'Rate')
     {
      varNumber = jsDecimal(parent.bodyFrame.document.all[varSourceName].value);
      parent.bodyFrame.document.all[varSourceName].value = varNumber;
     }

   //if (varField == 'Code') {varState = varState1}

   return varState;
  }


//##################################################


function jsSaveNumber(varField, varPrecison, varNumericScale, varTable, varRowNo) //SN
  {
   if (typeof(parent.bodyFrame.document.all[varRowNo]) == 'undefined') {varRowNo = ''; }
   varReturnSN = jsCheckNumber('in' + varField + varRowNo, varPrecison, varNumericScale);
   jsSetSave(varField, jsDecimal2(parent.bodyFrame.document.all['in' + varField].value, varNumericScale), varTable, varRowNo);
   return varReturnSN;
  }

function jsSaveDate(varField, varTable, varRowNo) //SD
  {
   if (typeof(parent.bodyFrame.document.all[varRowNo]) == 'undefined') {varRowNo = ''; }
   varReturnSD = jsCheckDate('in' + varField + varRowNo); 
   jsSave(varField, varTable, varRowNo); 
   return varReturnSD;
  }

function jsSaveTime(varField, varTable, varRowNo) //ST
  {
   if (typeof(parent.bodyFrame.document.all[varRowNo]) == 'undefined') {varRowNo = ''; }
   varReturnST = jsCheckTime('in' + varField + varRowNo); 
   jsSave(varField, varTable, varRowNo); 
   return varReturnST;
  }

function jsSaveUCase(varField, varTable, varRowNo) //SU
  {
   if (typeof(parent.bodyFrame.document.all[varRowNo]) == 'undefined') {varRowNo = ''; }
   varReturnSUC = jsCheckCase('in' + varField + varRowNo); 
   jsSave(varField, varTable, varRowNo); 
   return varReturnSUC;
  }











