function validaccc(ccc)
{
  if (ccc.length != 20)
  {
    return false;
  }

  var OP1 = ccc.substr(0,8);
  var DC1 = ccc.substr(8,1);
  var DC2 = ccc.substr(9,1);
  var OP2 = ccc.substr(10,10);

  //alert( "Entidad: "+OP1+"\r\nC.Control 1: "+DC1+"\r\nC.Control 2: "+DC2+"\r\nCuenta: "+OP2 );

  var suma = 0;
  suma += parseInt(OP1.substr(0,1)) * 4;
  suma += parseInt(OP1.substr(1,1)) * 8;
  suma += parseInt(OP1.substr(2,1)) * 5;
  suma += parseInt(OP1.substr(3,1)) * 10;
  suma += parseInt(OP1.substr(4,1)) * 9;
  suma += parseInt(OP1.substr(5,1)) * 7;
  suma += parseInt(OP1.substr(6,1)) * 3;
  suma += parseInt(OP1.substr(7,1)) * 6;

  var DCC1 = 11 - (suma % 11);
  DCC1 = (DCC1 == 11) ? 0 : (DCC1 == 10) ? 1 : DCC1;

  //alert ("suma = "+suma+" ; DCC1 = "+DCC1)

  var suma = 0;
  suma += parseInt(OP2.substr(0,1)) * 1;
  suma += parseInt(OP2.substr(1,1)) * 2;
  suma += parseInt(OP2.substr(2,1)) * 4;
  suma += parseInt(OP2.substr(3,1)) * 8;
  suma += parseInt(OP2.substr(4,1)) * 5;
  suma += parseInt(OP2.substr(5,1)) * 10;
  suma += parseInt(OP2.substr(6,1)) * 9;
  suma += parseInt(OP2.substr(7,1)) * 7;
  suma += parseInt(OP2.substr(8,1)) * 3;
  suma += parseInt(OP2.substr(9,1)) * 6;

  var DCC2 = 11 - (suma % 11);
  DCC2 = (DCC2 == 11) ? 0 : (DCC2 == 10) ? 1 : DCC2;

  //alert ("suma = "+suma+" ; DCC2 = "+DCC2)

  return ( DC1 !=  DCC1) ? false : ( DC2 !=  DCC2) ? false : true;
}

function validarEmail(valor) {
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
    return (true)
  } else {
    return (false);
  }
}

function stopEvent(e) {
    if (!e) e = window.event;
    if (e.stopPropagation) {
        e.stopPropagation();
    } else {
        e.cancelBubble = true;
    }
}

function cancelEvent(e) {
    if (!e) e = window.event;
    if (e.preventDefault) {
        e.preventDefault();
    } else {
        e.returnValue = false;
    }
}

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"), "");
}

function valNumero(string,campo){

  if(string!=""){
    var numero = parseInt(string);
    var result = 0;
    if(isNaN(numero)){
      campo.value='';
    }else{
      result=Math.round(numero*100)/100;
      campo.value=result;
    }
  }
}

function valNumeroDec(string,campo,dec){
  if (!dec) dec = 2;
  else dec = parseInt(dec);

  var temDec = Math.pow( 10, dec);

  if(string!=""){
    var numero = parseFloat(string);
    var result = 0;
    if(isNaN(numero)){
      campo.value='';
    }else{
      result=Math.round(numero*temDec)/temDec;
      result=result.toFixed(dec);
      campo.value=result;
    }
  }
}

function str_pad (input, pad_length, pad_string, pad_type) {
    // Returns input string padded on the left or right to specified length with pad_string  
    // 
    // version: 1006.1915
    // discuss at: http://phpjs.org/functions/str_pad    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // + namespaced by: Michael White (http://getsprink.com)
    // +      input by: Marco van Oort
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: str_pad('Kevin van Zonneveld', 30, '-=', 'STR_PAD_LEFT');    // *     returns 1: '-=-=-=-=-=-Kevin van Zonneveld'
    // *     example 2: str_pad('Kevin van Zonneveld', 30, '-', 'STR_PAD_BOTH');
    // *     returns 2: '------Kevin van Zonneveld-----'
    var half = '', pad_to_go;
     var str_pad_repeater = function (s, len) {
        var collect = '', i;
 
        while (collect.length < len) {collect += s;}
        collect = collect.substr(0,len); 
        return collect;
    };
 
    input += '';    pad_string = pad_string !== undefined ? pad_string : ' ';
    
    if (pad_type != 'STR_PAD_LEFT' && pad_type != 'STR_PAD_RIGHT' && pad_type != 'STR_PAD_BOTH') { pad_type = 'STR_PAD_RIGHT'; }
    if ((pad_to_go = pad_length - input.length) > 0) {
        if (pad_type == 'STR_PAD_LEFT') { input = str_pad_repeater(pad_string, pad_to_go) + input; }        else if (pad_type == 'STR_PAD_RIGHT') { input = input + str_pad_repeater(pad_string, pad_to_go); }
        else if (pad_type == 'STR_PAD_BOTH') {
            half = str_pad_repeater(pad_string, Math.ceil(pad_to_go/2));
            input = half + input + half;
            input = input.substr(0, pad_length);        }
    }
 
    return input;
}


//////////////////////////////////////////////////
/* Funcion Generica para abrir pop-up */
//////////////////////////////////////////////////

function abrePopUp(url,titulo,w,h,t,l){
    var miPopup = window.open(url,titulo.split(" ").join(""),"width="+w+",height="+h+",top="+t+",left="+l+",scrollbars=yes")
    miPopup.focus()
}

function checkDate(month, day, year) {
  var monthLength = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
  if (!day || !month || !year) {
    return false;
  }
  if (trim(day)=='' || trim(month)=='' || trim(year)=='') {
    return false;
  }
  // check for bisestile year
  if (year/4 == parseInt(year/4)) {
    monthLength[1] = 29;
  }
  if (month < 1 || month > 12) {
    return false;
  }
  if (day > monthLength[month-1]) {
    return false;
  }
  return true;
}

