function el(n){
  return document.getElementById(n);
}
function lowc(o){
  o.value=o.value.toLowerCase();
}

function checkES(e){
  k=(document.layers || !document.all)?e.which:e.keyCode;
  return k<32 || /[\-0-9\@a-zA-Z\_]/.test(String.fromCharCode(k))
}
function verifyES(){
  o=document.getElementById("domain_es");
  if(o.value=="" || !/[0-9a-zA-Z\-]/.test(o.value) || o.value.length<3){
	alert("Indique un nombre de dominio, los caracteres permitidos son de la A a la Z, los dígitos del 0 al 9 y el guión - que no puede ser el primero ni último.\n\nNo se permte acentos, ni la ñ, ç, espacios en blanco, puntos, etc.\n\nNo hay distinción entre minúsculas y mayúsculas, la longitud máxima son 64 caracteres y la mínima 3.");
	o.focus();
	return false;
  }
  return true;
}
function countReg(){
  f=document.getElementById("d_reg");
  for(i=0;i<f.elements.length;i++){
	e=f.elements[i];
	if(e.type=="checkbox" && e.checked) return true;
  }
  return false;
}
function verifyRegIni(){
  document.getElementById("domain__es").value=document.getElementById("domain_es").value;
  if(countReg()) return true;

  alert("Indique dominios para registrar.");
  return false;
}
function verifyDoms(){
  document.getElementById("subbut").disabled=(countReg()==0);
}
function infoDomain(d){
  window.open("dominios_info.html?d="+d,"_blank","top="+(screen.height-570)/2+",left="+(screen.width-600)/2+",width=600,height=570,toolbar=no,menubar=no,resizable=yes,scrollbars=yes,location=no,directories=no,status=no,personalbar=no");
}

function checkKeys(e){
  k=(document.layers || !document.all)?e.which:e.keyCode;
  return k<32 || /[ '\.,\/\-\+0-9\@a-zA-Z\_]/.test(String.fromCharCode(k));
}
function changeTbl(o,p){
  for(i=0;i<4;i++){
	t=el(p+"_tbl_"+i);
	if(t) t.style.display=(o.checked && parseInt(o.value)==i)?"":"none";
  }
  if(p=="a"){
	a=(o.checked && parseInt(o.value)==1);
	el("t_a_cto").style.display=el("b_a_cto").style.display=(a)?"":"none";
	if(!a && el("t_opc0").checked){
	  ot=el("t_opc1");
	  ot.checked=true;
	  changeTbl(ot,'t');
	}
	if(!a && el("b_opc0").checked){
	  ob=el("b_opc2");
	  ob.checked=true;
	  changeTbl(ob,'b');
	}
	el("t_a_copy").style.display=el("b_a_copy").style.display=(a)?"":"none";
  }
  if(p=="t"){
	t=(o.checked && parseInt(o.value)==1);
	el("b_t_cto").style.display=(t)?"":"none";
	if(!t && el("b_opc1").checked){
	  ob=el("b_opc2");
	  ob.checked=true;
	  changeTbl(ob,'b');
	}
	el("b_t_copy").style.display=(t)?"":"none";
  }
}
function changeType(o){
  p=el("r_type0").checked;
  el("r_td_org").style.color=(p)?"#808080":"#000000";
  el("r_td_type").style.color=(p)?"#D8D8D8":"#000000";
  el("r_td_vatid").innerHTML=(p)?"NIF/NIE:":"CIF:";
  el("r_org_type").disabled=p;
  p=(p && el("r_opc0").checked);
  if(p){
	oa=el("a_opc0");
	oa.checked=true;
	changeTbl(oa,'a');
  }
  el("a_r_part_n").style.display=el("a_r_part_e").style.display=(p)?"none":"";
  c=el("r_opc0").checked && el("r_type1").checked;
  if(c && el("a_opc0").checked){
	oa=el("a_opc1");
	oa.checked=true;
	changeTbl(oa,'a');
  }
  el("a_r_part_r").style.display=(c)?"none":"";
}
function changeRegistrant(o){
  changeType(el("r_type0"));
  el("a_r_copy").style.display=el("t_r_copy").style.display=el("b_r_copy").style.display=(o.checked && o.value==1)?"none":"";
  changeTbl(o,"r");
}
function changeZAccount(o){
  el("b_zacc").style.color=(o.checked)?"#000000":"#AAAAAA";
  el("bz_cid").disabled=!o.checked;
}
function copyCData(f,p){
  flds=new Array("name","vatid","address","city","state","pc","country","phone","fax","email");
  for(i=0;i<flds.length;i++) el(p+"_"+flds[i]).value=el(f+"_"+flds[i]).value;
}
function backES(){
  el("step").value=1;
  f=el("frm");
  f.action="/#doms";
  f.submit();
}
function openWin(u,w,h){
  window.open(u,"_blank","top="+(screen.height-h)/2+",left="+(screen.width-w)/2+",width="+w+",height="+h+",toolbar=no,menubar=no,resizable=yes,scrollbars=yes,location=no,directories=no,status=no,personalbar=no");
}
function contactSearch(i){
  openWin("/dominios_cto.html?i="+i,500,300);
}
function verifyEMail(o){
  var regex=new RegExp("^[-\.0-9a-z_]+@([-0-9a-z_]+\.)+\.(net|com|gov|mil|org|edu|int|biz|info|name|pro|aero|coop|museum|jobs|travel|cat|[a-z]{2})$","i");
  return regex.test(o);
}
function verifyAccount(o,e){
  k=(document.layers || !document.all)?e.which:e.keyCode;
  if(k<32) return;
  if(o.value.length>=o.maxLength){
	n=parseInt(o.id.substring(9,10))+1;
	if(n<5) el("b_account"+n).focus();
  }
}
function verifyForm(caption,prefix,fields,efields){
  if(typeof fields=="object"){
	var flds="",f1;
	for(i in fields){
	  if(el(prefix+i).value==""){
		flds+="\n- "+fields[i];
		if(!f1) f1=prefix+i;
	  }
	}
	if(flds!=""){
	  alert(caption+"\n\nFalta indicar un valor para:"+flds);
	  if(el(f1).type!="hidden") el(f1).focus();
	  return false;
	}
  }
  if(typeof efields=="object"){
	var efls="",em;
	for(i in efields){
	  v=el(prefix+i).value;
	  if(v!="" && !verifyEMail(v)){
		efls+="\n- "+efields[i];
		if(!em) em=prefix+i;
	  }
	}
	if(efls!=""){
	  alert(caption+"\n\nEMail no válido");
	  el(em).focus();
	  return false;
	}
  }
  for(i in fields){
	if(i=="phone" && (!verifyPhone(caption,prefix,i,fields[i]) || !verifyPhone(caption,prefix,"fax","Fax"))) return false;
  }
  return true;
}
function verifyPasswd(c,p){
  o=el(p+"_passwd");
  if(o.value==""){
	alert(c+"\n\nFalta indicar una contraseña");
	o.focus();
	return false;
  }
  if(o.value.length<6 || o.value.length>16){
	alert(c+"\n\nLa contraseña debe tener entre 6 y 16 caracteres");
	o.focus();
	return false;
  }
  if(o.value!=el(p+"_passwd_verify").value){
	alert(c+"\n\nLas contraseñas no coinciden");
	o.focus();
	return false;
  }
  return true;
}
function verifyPhone(c,p,f,d){
  o=el(p+f);
  if(o.value=="") return true;
  var regex=new RegExp("^[\+]{1}[0-9]{1,3}\.[0-9]{1,14}$");
  if(o.value.length>17 || !regex.test(o.value)){
	alert(c+"\n\n"+d+" no válido, debe tener formato: +34.902467833");
	o.focus();
	return false;
  }
  return true;
}
function verifyReg(){
  frms={"r":"Propietario del dominio","a":"Contacto administrativo","t":"Contacto técnico","b":"Contacto de facturación"};
  flds={"name":"Nombre","vatid":"NIF/NIE/CIF","address":"Dirección","city":"Ciudad","state":"Provincia","pc":"Código postal","country":"País","phone":"Teléfono","email":"EMail"};
  efls={"email":"EMail"};

  if(el("r_opc0").checked){
	if(!verifyForm(frms['r'],"r_",flds,efls) || !verifyPasswd(frms['r'],"r")) return false;
	if(el("r_type1").checked && el("r_org_type").value=="0"){
	  alert("Indique la forma jurídica");
	  el("r_org_type").focus();
	  return false;
	}
	if(el("r_opc0").checked && el("r_type0").checked && !el("a_opc0").checked){
	  alert("El contacto administrativo en los particulares debe ser el mismo que el propietario del dominio");
	  el("a_opc0").focus();
	  return false;
	}
	if(el("r_opc0").checked && el("r_type1").checked){
	  if(el("a_opc0").checked){
		alert("El contacto administrativo no puede ser el mismo que el propietario del dominio si éste es una empresa");
		el("a_opc1").focus();
		return false;
	  }
	}
  }
  if(el("r_opc1").checked && !verifyForm(frms['r'],"r1_",{"name":"Contacto","passwd":"Contraseña"},{})) return false;
  if(el("a_opc1").checked && (!verifyForm(frms['a'],"a_",flds,efls) || !verifyPasswd(frms['a'],"a"))) return false;
  if(el("a_opc2").checked && !verifyForm(frms['a'],"a2_",{"name":"Contacto"},{})) return false;
  if(el("t_opc1").checked && (!verifyForm(frms['t'],"t_",flds,efls) || !verifyPasswd(frms['t'],"t"))) return false;
  if(el("t_opc2").checked && !verifyForm(frms['t'],"t2_",{"name":"Contacto"},{})) return false;
/*  el("b_account").value=el("b_account1").value+""+el("b_account2").value+""+el("b_account3").value+""+el("b_account4").value;
  if(!verifyForm(frms['b'],"b_",{"account":"Cuenta bancaria"},{})){
	el("b_account1").focus();
	return false;	
  }*/
  if(el("b_opc2").checked && (!verifyForm(frms['b'],"b_",flds,efls) || !verifyPasswd(frms['b'],"b"))) return false;
  if(el("b_opc3").checked && !verifyForm(frms['b'],"b3_",{"name":"Contacto"},{})) return false;
  if(el("b_zaccount").checked && !verifyForm(frms['b'],"bz_",{"cid":"Código cliente"},{})) return false;
  if(!verifyForm("Servidores de nombres","",{"dns_1":"DNS primario","dns_2":"DNS secundario"},{})) return false;
  if(el("dns_1").value==el("dns_2").value){
	alert("Los DNS no pueden ser iguales");
	el("dns_1").focus();
	return false;
  }

  el("oper").value="register";
  return true;
}

function verifyOrders(){
  flds={"passwd":"Contraseña","orders":"Pedidos"};
  for(i in flds){
	o=document.getElementById(i);
	if(o.value==""){
	  alert("Falta indicar un valor para: "+flds[i]);
	  o.focus();
	  return false;
	}
  }
  return true;
}

function verifyRegNew(p){
  flds={"name":"Nombre","address":"Dirección","city":"Ciudad","state":"Provincia","pc":"Código postal","country":"País","phone":"Teléfono","email":"EMail"};
  efls={"email":"EMail"};
  if(!verifyForm("Crear contacto","r_",flds,efls)) return false;
  if(p==1 && !verifyPasswd("Crear contacto","r")) return false;
}
function verifyUpdate(){
  flds={"adm":"Contacto administrativo","tec":"Contacto técnico","bil":"Contacto facturación","dns_1":"Servidor DNS 1º","dns_2":"Servidor DNS 2º"};
  return verifyForm("Modificar dominio","u_",flds,{});
}