//-------------------------------------------------------------------------------------------
// Author: Alexander Appelt
// Created: 23.02.2009
// Description: Javascript functions
//-------------------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
// check delivery costs
//----------------------------------------------------------------------------------
function checkDelivery(buyform)
{
   var obj_jssum = document.getElementById('jsx_idx_summary1');
   var obj_jsdel = document.getElementById('jsx_idx_summary2');
   var obj_jstot = document.getElementById('jsx_idx_summary3');
   var obj_jsdif = 15000 - obj_jssum.value;

   if(obj_jsdel.value != '0' && document.getElementById('overrideDelivery').value == '0')
   {
      document.getElementById('idx_deliveryask_content').innerHTML = '<b>Su pedido actual es por $'
         +disp_number(obj_jssum.value)
         +' y tiene un costo por envío de $2.000.</b><br>Si agrega $' +disp_number(obj_jsdif)
         +' a su pedido, el envío a su domicilio será sin costo de despacho.<br><br>'
         +' ¿Le gustaría agregar otros productos a su pedido?<br><br>'
         +'<table border="0" cellpadding="0" cellspacing="0" width="250">'
         +'<tr>'
         +'   <td class="text" align="left"><input type="button" class="button_comprar" value="SI, ATRAS" onclick="showCustomMessagebox(false)"></td>'
         +'   <td class="text" align="right"><input type="button" class="button_comprar" value="NO, SIGUIENTE" '
         +'    onclick="showCustomMessagebox(true);document.getElementById(\'overrideDelivery\').value=\'1\';document.buyform.submit();"></td>'
         +'</tr>'
         +'</table>';
         
      showCustomMessagebox(true);
      return false;
   }
   return true;
}

function showCustomMessagebox(mode)
{
   if(mode == true)
   {
      document.getElementById('idx_maincontent').style.display = 'none';
      document.getElementById('idx_deliveryask').style.display = '';
   }
   else
   {
      document.getElementById('idx_maincontent').style.display = '';
      document.getElementById('idx_deliveryask').style.display = 'none';
   }
   return true;
}

//----------------------------------------------------------------------------------
// calculate summary price
//----------------------------------------------------------------------------------
function calcSum()
{
   // object status
   var obj_exists = true;
   
   // get buy formular
   try
   {
      var obj_frm = document.buyform;
      var obj_len = obj_frm.elements.length;
   }
   catch(error)
   {
      obj_exists = false;      
   }
   
   // loop through form items
   if(obj_exists)
   {
      // set sum to zero
      var isum    = 0;
      
      // get summary object
      var obj_sum = document.getElementById('idx_summary1');
      var obj_del = document.getElementById('idx_summary2');
      var obj_tot = document.getElementById('idx_summary3');

      var obj_jssum = document.getElementById('jsx_idx_summary1');
      var obj_jsdel = document.getElementById('jsx_idx_summary2');
      var obj_jstot = document.getElementById('jsx_idx_summary3');
      
      var del_val = 0.00;
   
      for(var x = 0; x < obj_frm.elements.length; x++)
      {
      
         // check if element is an quantity field
         if(obj_frm.elements[x].type == 'text' && obj_frm.elements[x].name.indexOf('itmqty') >= 0)
         {
         
            // refomat value
            var val  = trim(obj_frm.elements[x].value).replace('.','');
            
            // parse to int
            var ival = parseInt(val);
            
            // check if number is valid
            if(val == '' || isNaN(ival) || String(ival) != val)
               ival = 0;
            else
            {
               // get item price
               var iprc = document.getElementById('prc' +obj_frm.elements[x].name);
               
               // calculate full item price
               var iqtyprc = eval(iprc.value) * ival;
               
               // add to summary price
               isum += iqtyprc;
            }
         }
         

      }

      // set delivery costs
      if(isum < 15000 && isum > 0)
      {
         obj_del.innerHTML = '2.000';
         del_val = 2000;
      }
      else
      { 
         obj_del.innerHTML = '0.000';
         del_val = 0;
      }
      
      // set summary prices
      obj_sum.innerHTML = disp_number(isum);
      obj_tot.innerHTML = disp_number(isum + del_val);

      obj_jssum.value = isum;
      obj_jsdel.value = del_val;
      obj_jstot.value = isum + del_val;
   }
}

//----------------------------------------------------------------------------------
// format price for output
//----------------------------------------------------------------------------------
function disp_number(num)
{
   // init variables
   var retstr  = '';
   var numstr  = String(num);
   var counter = 1;
   
   // ok, manuall format here for thousands
   // loop through each char backwards
   for( var x = (numstr.length -1); x >= 0; x--)
   {
      // add char to return string
      retstr = numstr.charAt(x) +retstr;
      
      // after three chars add the seperator
      if(counter % 3 == 0 && x > 0)
         retstr = '.' +retstr;
      
      // count the chars
      counter++;
   }
   
   // special format for 0
   if(retstr == '0')
      retstr = '000.000';
   
   return retstr;
}

//----------------------------------------------------------------------------------
// trim functions
//----------------------------------------------------------------------------------
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}
//----------------------------------------------------------------------------------
function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
//----------------------------------------------------------------------------------
function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}