var cm_values = [ '', '', '' ];
var cm_enabled = true;

function theme_multi_verify(theme,instance) {
  if ((theme.elements[instance].selectedIndex >= 0) && (theme.elements[instance].selectedIndex < theme.elements[instance].length )) {
    return true;
  } else {
    alert('Por favor, seleccione un tema');
    return false;
  }
}

function cerrar() {
  window.close( );
}

function user_verify(theform) {
  var text = '';
  var same_user =  13;
  var max_fields = 24;

  fields = new Array ('Nombre','Apellido','e','Direccion','Ciudad','Provincia/Estado','Codigo Postal',
  'Telefono','f','p','i','m','e1','s','Nombre Envio','Apellido Envio','EE','Direccion Envio',
  'Ciudad Envio','Provincia/Estado Envio','Codigo Postal Envio','Telefono Envio','FAX Envio','pe');
    required = new Array (1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1);
  for (count=0;count < same_user; count++) {
    if ((theform.elements[count].value == '') && (required[count] == 1)) {
      text = text + fields[count] + '\n';
    }
  }
  for (count=(same_user+1);count < max_fields; count++) {
    if ((theform.elements[count].value == '') && (required[count] == 1) && (!(theform.elements[same_user].checked))) {
      text = text + fields[count] + '\n';
    }
  }
  if (text != '') {
  if (theform.elements[same_user].checked) {
        alert('Faltan completar los siguientes datos:\n'+text);
    } else {
     alert('Faltan completar los siguientes datos, o marcar el casillero de Direccion de envio igual a la de facturacion :\n'+text);
    }
    return false;
  } else {
    return true;
  }
}

function comment_verify(theform) {
    var fields = new Array ('', 'Nombre','Profesion','E-Mail','', '', 'Comentarios');
    var required = new Array (0, 1, 0, 1, 0, 0, 1);
    var text = '';
    for (i=0; i < fields.length; i++) {
        if (theform.elements[i].value == '' && required[i] == 1) {
            text = text + fields[i] + "\n";
        }
    }
    if (text != '') {
        alert("Faltan completar los siguientes datos:\n"+text);
        return false;
    } else {
        return true;
    }
}

function user_form_verify(theform) {
  var text = '';
  var same_user =  10;
  var max_fields = 21;

  fields = new Array ('Nombre','Apellido','e','Direccion','Ciudad','Provincia/Estado','Codigo Postal',
  'Telefono','f','p','s','Nombre Envio','Apellido Envio','EE','Direccion Envio',
  'Ciudad Envio','Provincia/Estado Envio','Codigo Postal Envio','Telefono Envio','FAX Envio','pe');
    required = new Array (1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1);
  for (count=0;count < same_user; count++) {
    if ((theform.elements[count].value == '') && (required[count] == 1)) {
      text = text + fields[count] + '\n';
    }
  }
  for (count=(same_user+1);count < max_fields; count++) {
    if ((theform.elements[count].value == '') && (required[count] == 1) && (!(theform.elements[same_user].checked))) {
      text = text + fields[count] + '\n';
    }
  }
  if (text != '') {
    alert('Faltan completar los siguientes datos:\n'+text);
    return false;
  } else {
    return true;
  }
}

function check_login_data(theform, offset) {
  var text = '';
  var arroba = theform.elements[offset].value.indexOf('@');

  var dominio = theform.elements[offset].value;
  dominio = dominio.substr(arroba);

  var punto = dominio.indexOf('.') - 1;

  if ((theform.elements[offset].value == '') || (!((arroba > 0) && (punto > 0)))) {
    text = text + 'E-Mail vacio o incorrecto' + '\n';
  }
  if (theform.elements[offset+1].value != theform.elements[offset+2].value) {
    text = text + 'No coinciden las contrasenas' + '\n';
  }
  if (theform.elements[offset+1].value == '')  {
    text = text + 'Debe completar la contrasena' + '\n';
  }

  if (text != '') {
    alert('Faltan completar los siguientes datos:\n'+text);
    return false;
  } else {
    return true;
  }
}
/*
 Verifica que el pais no este en la lista negra de paises que no pueden recibir
 envios. Si esta en esa lista, da un alerta y deshabilita la opcion de usar
 la direccion del cliente como direccion de envio.
*/
function check_deliver( pais, checkbox, no_deliver ) {
  var count;
  checkbox.disabled = false;
  for (count=0; count<no_deliver.length; count++) {
    if ( pais.value == no_deliver[count] ) {
        checkbox.checked = false;
          checkbox.disabled = true;
          alert ("Atencion: Por razones ajenas a cuspide.com, no nos " +
                       "es posible realizar envios a personas residentes en " +
                       pais.value + "."
                      );
          break;
      }
  }
}

function check_mod_10( num ) {
  var i, suma, total, mod
  var digits1 = 0;
    var digits2 = 0;
  var ctrl = num.substr(num.length-1);
  var num = num.substr(0,num.length-1);
  for (i=0; i<num.length; i++) {
    ch =
        mod = i % 2;
        if ( mod == 0 ) {
          digits1 += parseInt(num.charAt(i));
        } else {
          digits2 += parseInt(num.charAt(i));
        }
  }
  total = (10 - ((digits1*3+digits2) % 10)) % 10;
  return (ctrl == total);
}

function verificar_cuspide_max( valor ) {
  if ( valor != '' ) {
      if ( valor.length != 9 ) {
          alert('El c�digo CUSPIDE|MAX ingresado no es correcto');
            return false;
        } else if ( check_mod_10(valor) ) {
          return true;
        } else {
          alert('El c�digo CUSPIDE|MAX ingresado no es correcto');
            return false;
        }
  } else {
    return true;
  }
}

function numeric(num) {
    num = num.toString().replace(/\$|\,/g,'');
    if (isNaN(num)) {
        num = "0";
    }
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num % 100;
    num = Math.floor(num/100).toString();
    if (cents < 10) {
        cents = "0" + cents;
    }
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {
        num = num.substring(0, num.length - (4*i+3)) +
        '.' +
        num.substring(num.length - (4*i+3));
    }
    return (((sign) ? '':'-') + '$ ' + num + ',' + cents);
}

function pay_click( payment, toggle ) {
    var total = params[0] + params[1];
    var price = document.getElementById("shipping_price");
    var cr_message = document.getElementById("cr_message");
    var cr_price = document.getElementById("cr_price");
    var message = document.getElementById("shipping_message");
    var sep = document.getElementById("sep");
    var ship_str = numeric(params[1]);
    message.innerHTML = messages[1];
    cr_message.innerHTML = "";
    cr_price.innerHTML = "";
    sep.innerHTML = "";
    if (payment == 1) {
        cr_message.innerHTML = messages[0];
        cr_price.innerHTML =numeric(total * params[2] / 100);
        sep.innerHTML = "<br/><br/>";
    } else {
        if (params[3]) {
            ship_str = "";
            message.innerHTML = messages[2];
        }
    }
    price.innerHTML = ship_str;
    toggle_canje(toggle);
}

function toggle_canje( val ) {
  var cm_items = [ 'cm_cupon', 'cm_doc', 'cm_select' ];
  if ( cm_enabled != val ) {
    cm_enabled = val;
    for ( i=0;i<cm_items.length;i++) {
      obj = document.getElementById( cm_items[i] );
      if ( val == true ) {
        obj.value = cm_values[i];
      } else {
        cm_values[i] = obj.value;
        obj.value = '';
      }
      obj.disabled = !val;
    }
  }
  if ( val ) {
      document.getElementById("gastos").innerHTML = document.getElementById("envio_gastos").innerHTML;
  } else {
      document.getElementById("gastos").innerHTML = document.getElementById("canje_puntos").innerHTML;
  }
}

function cmax_ajax_update( puntos ) {
  var card_num = document.getElementById("tarjeta").value;
  var doc_type = document.getElementById("tipo_doc").value;
  var doc_num = document.getElementById("nro_doc").value;
  cbaUpdateElement(
    'cmax-resp',
    '/ajax/cmax.php'+
    '?card_num='+card_num+
    '&doc_type='+doc_type+
    '&doc_num='+doc_num+
    '&puntos='+puntos,
    'Cargando...',
    false
  );
}

function cmax_postoff() {
  var pop = document.getElementById("cmax-resp");
  pop.innerHTML = '';
}

String.prototype.reverse = function() {
  var s = "";
  var i = this.length;
  while (i>0) {
    s += this.substring(i-1,i);
    i--;
  }
  return s;
}
