// JavaScript Document

var fc_acutes_val = [ 225, 233, 237, 243, 250, 193, 201, 205, 211, 218, 209, 241 ];
var fc_acutes_idx = [ 'a','e','i','o','u','A','E','I','O','U','N','n' ];
var fc_acutes = fc_makeacutes();


function fc_checkRadio (obj, msg) {
    for (var i=0;i<obj.length;i++) {
        if (obj[i].status) return true;
    }
    alert("Debe seleccionar "+msg);
    obj.focus();
    return false;
}

function fc_checkRadioValue (obj, val) {
    for (var i=0;i<obj.length;i++) {
        if (obj[i].status && obj[i].value==val) return true;
    }
    return false;
}


function fc_makeacutes(acu) {
  var acu = new Array();
  for (var i=0; i<fc_acutes_idx.length;i++) {
      var idx = fc_acutes_idx[i];
      acu[idx]=String.fromCharCode(fc_acutes_val[i]);
  }
  return acu;
}


function fc_checkEmail(obj,msg,len,recheck) {

  //var re = /^(\s*|\W*)(\w+\@\w+)((\w+|-+)+)((\.\w+)+)(\s*|\W*)$/;
  //var re = /^(\s*)(\w+\@\w+)+((\.\w+)+)(\s*)$/;
  var re = /^(\s*)(\w+\@\w+)+((\.|-)\w+)+(\s*)$/;
  var str = "car"+fc_acutes['a']+"cteres v"+fc_acutes['a']+"lidos";
  var msg1 = "Debe ingresar una direcci"+fc_acutes['o']+"n\nv"+fc_acutes['a']+"lida para " + msg;
  var msg2 = "Debe ingresar " + len + " o mas " + str + "\n(letras y/o digitos), para " + msg;

  return fc_checkField (obj,len,recheck,re,"$2$3",msg1,msg2);
}

function fc_checkWord (obj,msg,len,recheck) {

  var re = /^(\s*|\W*)(\w+)(\s*|\W*)$/;
  var msg1 = "Debe ingresar letras y/o digitos\n(sin espacios) para " + msg;
  var msg2 = "Debe ingresar " + len + " o mas letras y/o digitos\n(sin espacios), para " + msg;

  return fc_checkField (obj,len,recheck,re,"$2",msg1,msg2);
}

function fc_checkString (obj,msg,len,recheck) {

  var re = /^(\s*|\W*)(\w+)((\s+\w+)*)(\s*|\W*)$/;
  var str = "car"+fc_acutes['a']+"cteres v"+fc_acutes['a']+"lidos";
  var msg1 = "Debe ingresar letras y/o digitos para " + msg;
  var msg2 = "Debe ingresar " + len + " o mas " + str + "\n(letras y/o digitos), para " + msg;


  return fc_checkField (obj,len,recheck,re,"$2$3",msg1,msg2);
}

function fc_checkLatinString (obj,msg,len,recheck) {

  var re = /^(\s*|\W*)(.+)((\s+.+)*)(\s*|\W*)$/;
  var str = "car"+fc_acutes['a']+"cteres v"+fc_acutes['a']+"lidos";
  var msg1 = "Debe ingresar letras y/o digitos para " + msg;
  var msg2 = "Debe ingresar " + len + " o mas " + str + "\n(letras y/o digitos), para " + msg;


  return fc_checkField (obj,len,recheck,re,"$2$3",msg1,msg2);
}


function fc_checkPhoneNumber (obj,msg,len,recheck) {

  var re = /^(\s*|\W*)(\d+(\-\d+)*)(\s*|\W*)$/;
  var msg1 = "Debe ingresar solo digitos o guiones (sin espacios) para " + msg;
  var msg2 = "Debe ingresar " + len + " o mas digitos (sin espacios), para " + msg;

  return fc_checkField (obj,len,recheck,re,"$2",msg1,msg2);

}

function fc_checkDotNumber (obj,msg,len,recheck) {

  var re = /^(\s*|\W*)(\d+(\.\d+)*)(\s*|\W*)$/;
  var msg1 = "Debe ingresar solo digitos o puntos (sin espacios) para " + msg;
  var msg2 = "Debe ingresar " + len + " o mas digitos (sin espacios), para " + msg;

  return fc_checkField (obj,len,recheck,re,"$2",msg1,msg2);

}


function fc_checkNumber (obj,msg,len,recheck) {

  var re = /^(\s*|\W*)(\d+)(\s*|\W*)$/;
  var msg1 = "Debe ingresar solo digitos para " + msg;
  var msg2 = "Debe ingresar " + len + " o mas digitos,\npara " + msg;

  return fc_checkField (obj,len,recheck,re,"$2",msg1,msg2);

}


function fc_checkSelect (obj,msg,index) {

  var val = obj.options[obj.selectedIndex].value;
  if (obj.selectedIndex==index) {
      alert("Debe seleccionar un valor para "+msg);
      obj.focus();
      return false;
  }
  return true;
}


function fc_removeCRLF (val) {
    var i;
    var ns="";

    val = fc_trim(val);
    for (i=0;i<val.length;i++) {
        if (val.charCodeAt(i)<32) ns += " ";
        else if (val.charAt(i)=="'") ns += "´";
        //else if (val.charAt(i)=="´") ns += '`';
        else if (val.charAt(i)=="<") ns += " ";
        else if (val.charAt(i)==">") ns += " ";
        else ns += val.charAt(i);
    }

    return ns;
}


function fc_trim (val) {
    var i,j;
    var ns="";

    i=0;
    while (val.charCodeAt(i)<=32) i++;
    j=val.length-1;
    while (val.charCodeAt(j)<=32) j--;
    ns = val.substr(i,j+1);
    return ns;
}


function fc_checkField (obj,len,recheck,re,place,msg1,msg2) {

  var str = fc_removeCRLF (obj.value);

  if (str.length==0) {
      if (len==0) {
          obj.value="";
          return true;
      } else {
          alert(msg2);
          obj.focus();
          return false;
      }
  }

  str = str.replace(re, place);

  if (str.search(re)==-1) {
      alert(msg1);
      obj.focus();
      return false;
  }
  if (str.length<len) {
      alert(msg2);
      obj.focus();
      return false;
  }
  if (recheck) {
      val = prompt ("Reingrese " + msg + " para confirmar", "");
      if (val!=obj.value) {
          alert ("No coincide " + msg + ",\nintente nuevamente");
          obj.focus();
          return false;
      }
  }

  //obj.value = str;
  return true;
}

function fn_conditions(obj) {

	if (obj.status) return true;
	
	alert("Debe aceptar nuestros terminos y condiciones\npara completar la registración");
	obj.focus();
	return false;

}

function fn_register()
{

	var frm = document.all.register;

	if (!fc_checkLatinString(frm.name,"el nombre",3,false)) return;
	if (!fc_checkLatinString(frm.lastname,"el apellido",3,false)) return;
	if (!fc_checkEmail(frm.email,"el email",3,false)) return;
	if (!fc_checkWord(frm.user,"el nombre de usuario",3,false)) return;
	if (!fc_checkWord(frm.password1,"la contraseña",6,false)) return;
	if (!fc_checkWord(frm.password2,"la contraseña por segunda vez",6,false)) return;

	if (frm.password1.value!=frm.password2.value)
	{
		alert("Las contraseñas ingresadas no coinciden,\n por favor reingreselas.");
		frm.password1.focus();
		return;
	}

	if (!fn_conditions(frm.conditions)) return;

	frm.submit();
}

function fn_terminosRegistrarse()
{
}
