function popup_categorias(lc)
{
	Ventana("/share-ht/bdc/cats_nys.php?lc="+lc,800,600,0);
}

function validar_paso1(frmnav)
{
	var strout='';
	var strinv='';
	if(frmnav.nom_com.value.length==0)					strout += vmsg['_P1_NOEMPRESA'];
	if(frmnav.url.value.length==0)							strout += vmsg['_P1_NOURL'];
	if(frmnav.email.value.length==0) 						strout += vmsg['_P1_NOMAIL'];
	else if( !mail_valido(frmnav.email.value) )	strinv += vmsg['_P1_WRONGMAIL'];
	if(frmnav.telf.value.length==0) 						strout += vmsg['_P1_NOTELF'];
	else if(frmnav.telf.value.length < 7 || !validphone(frmnav.telf.value)) 
		strinv +=  vmsg['_P1_WRONGTELF'];
		
	if(frmnav.desc.value.length==0) 		strout +=  vmsg['_P1_NODESC'];
	if(frmnav.cat.value.length==0) 			strout += vmsg['_P1_NOCAT'];
	if(strout!='')	strout = vmsg['_P_NOALGO']+strout;
	if(strinv!='') 	strout += "\n"+strinv;
	
	if(strout!='') alert(strout);
	else
	{
		frmnav.step.value=2;
		frmnav.submit();
	}
}

function validar_paso2(frmnav)
{
	var strout=strinv='';
	if(frmnav.txtEmp.value.length==0)	strout += vmsg["_P2_NOEMPRESA"];
	
	if(frmnav.txtNif.value.length==0)					strout += vmsg["_P2_NONIF"];
	else if(frmnav.txtNif.value.length < 7 ) 	strinv += vmsg["_P2_WRONGNIF"];
	
	if(frmnav.txtDir.value.length==0) strout += vmsg["_P2_NODIR"];
	
	if(frmnav.txtCP.value.length==0) 				strout += vmsg["_P2_NOCP"];
	else if(!isnumeric(frmnav.txtCP.value))	strinv += vmsg["_P2_WRONGCP"];
	
	if(frmnav.txtCiu.value.length==0) strout += vmsg["_P2_NOCIUDAD"];
	if(frmnav.txtNom.value.length==0) strout += vmsg["_P2_NOCONTACTNAME"];
	if(frmnav.txtTfn.value.length==0) strout += vmsg["_P2_NOCONTACTTEL"];
	else if(frmnav.txtTfn.value.length < 7 || !validphone(frmnav.txtTfn.value)) strinv += vmsg["_P2_WRONGCONTACTTEL"];
		
	if(frmnav.txtEma.value.length==0) strout += vmsg["_P2_NOMAIL"];
	else if( !mail_valido(frmnav.txtEma.value) )	strinv += vmsg["_P2_WRONGMAIL"];
		
	if(strout!='')	strout = vmsg['_P_NOALGO']+strout;
	if(strinv!='') 	strout += "\n"+strinv;
	
	if(strout!='') alert(strout);
	else	frmnav.submit();
}

function validar_paso3(frmnav)
{
	var numcard = frmnav.txtNumTar1.value + frmnav.txtNumTar2.value + frmnav.txtNumTar3.value + frmnav.txtNumTar4.value;
	if(!frmnav.chkOk.checked)	alert(vmsg["_P3_NOCOND"]);
	else if(!cardval(numcard)) alert(vmsg["_P3_NOCARD"]);
	else if(frmnav.nombre.value.length==0)	alert(vmsg["_P3_NOTIT"]);
	else if(!isnumeric(frmnav.mes.value) || !isnumeric(frmnav.ano.value)) alert(vmsg["_P3_NOCAD"]);
	else
	{
		frmnav.num_tarjeta.value = numcard;
		frmnav.mes_caducidad.value = frmnav.mes.value;
		frmnav.anyo_caducidad.value = frmnav.ano.value.charAt(2) + frmnav.ano.value.charAt(3);
		frmnav.submit();
	}
}

function cargar_preview(locale)
{
	var params='';
	for(var i=0; i < document.frmnav.elements.length; i++)
	{
		if(document.frmnav.elements[i].value!=null && document.frmnav.elements[i].value!='')
		{
			//document.frmnav.elements[i].value = document.frmnav.elements[i].value.replace(/[\"\'\\]/g,"");
			params += '&' + document.frmnav.elements[i].name + '=' + URLEncode(document.frmnav.elements[i].value.replace('<',"&"+"lt"+";").replace('>',"&"+"gt"+";"));
		}
	}
	anemi("/share-ht/bdc/preview_live.php","preview",'lc='+locale+params);
}

function cargar_campo_preview(id_campo, valor_campo)
{
	myRegExp1 = new RegExp();
  myRegExp1.compile('<','g');
	myRegExp2 = new RegExp();
  myRegExp2.compile('>','g');
	document.getElementById(id_campo).innerHTML=valor_campo.replace(myRegExp1,'&'+'lt'+';').replace(myRegExp2,'&'+'gt'+';');
}

function pasar_siguiente(myfield,nextfield)
{
	if(myfield.value.length==4) nextfield.focus();
}

function cargar_preview_sync()
{
	var params=form_to_string();
	anemi_sync("/share-ht/bdc/preview_live.php","preview",params);
}

function imprimir_datos(idins,idped,lc)
{
	var g=form_to_string();
	Ventana("/share-ht/bdc/imprimir.php?idins="+idins+"&idpedido="+idped+"&lc="+lc,600,900);
}

function form_to_string()
{
	var params = '';
	for(i=0; i<document.frmnav.elements.length; i++)
	{
		if(document.frmnav.elements[i].name!='' && document.frmnav.elements[i].name!='undefined' && document.frmnav.elements[i].value!='')
			params += document.frmnav.elements[i].name + '=' + URLEncode(document.frmnav.elements[i].value) + '&';
	}
	return params;
}

// función que hace la petición de un objetos XMLHTTP
function getXMLHttp()
{
	 var req = false;
	 try {
	   req = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
	   try {
	     req = new ActiveXObject("Microsoft.XMLHTTP");
	   } catch (E) {
	     req = false;
	   }
	 }
	 if(!req && typeof XMLHttpRequest != 'undefined') {
	   req = new XMLHttpRequest();
	 }
	 return req;
}

//Función que gestiona la petición, el identificador, y los campos del formulario
function anemi(ul,id,myform)
{
	 var ajax_obj = getXMLHttp();
	 var obj = document.getElementById(id);
	 var resposta = "Cargando...";
	 ajax_obj.open('POST', ul, true);
	 ajax_obj.setRequestHeader("Method", "POST " + ul + " HTTP/1.1");
	 ajax_obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
	 ajax_obj.onreadystatechange = function() {
	   /* 0: Uninitizalized, 1: Loading, 2: Loaded, 3: Interactive, 4: Finished */
	   	if (ajax_obj.readyState == 4) {
	     resposta = ajax_obj.responseText;
	     obj.innerHTML = resposta;
	   }
	 }
	 if(myform == "[object HTMLFormElement]")
	   ajax_obj.send(form_to_string(myform));
	 else
	  ajax_obj.send(myform);
}

function anemi_sync(ul,id,myform)
{
	 var ajax_obj = getXMLHttp();
	 var obj = document.getElementById(id);
	 ajax_obj.open('POST', ul, false);
	 ajax_obj.setRequestHeader("Method", "POST " + ul + " HTTP/1.1");
	 ajax_obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
	 ajax_obj.send(myform);
	 obj.innerHTML = ajax_obj.responseText;
}

function mail_valido(texto)
{           
  var cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890@._-";
  
  var arroba = texto.indexOf("@",0);
  if ((texto.lastIndexOf("@")) != arroba) return false;
  
  var punto = texto.lastIndexOf(".");
              
  for (var contador = 0 ; contador < texto.length ; contador++){
      if (cadena.indexOf(texto.substr(contador, 1),0) == -1)	return false;
  }

  return ((arroba > 1) && (arroba + 1 < punto) && (punto + 1 < (texto.length)) && (texto.indexOf("..",0) == -1));
}

function cardval(s)
{
	// remove non-numerics
	var v = "0123456789";
	var w = "";
	
	for (i=0; i < s.length; i++)
	{
		x = s.charAt(i);
		if (v.indexOf(x,0) != -1)
		w += x;
	}
	
	// validate number
	j = w.length / 2;
	if (j < 6.5 || j > 8 || j == 7) return false;
	k = Math.floor(j);
	m = Math.ceil(j) - k;
	c = 0;
	for (i=0; i<k; i++)
	{
		a = w.charAt(i*2+m) * 2;
		c += a > 9 ? Math.floor(a/10 + a%10) : a;
	}
	for (i=0; i<k+m; i++) c += w.charAt(i*2+1-m) * 1;
	return (c%10 == 0);
}

function isnumeric(s)
{
	var nums = "0123456789";
	for (i=0; i < s.length; i++)
	{
		x = s.charAt(i);
		if (nums.indexOf(x,0) == -1) return false;
	}
	return true;
}

function validphone(s)
{
	var nums = "0123456789+ ";
	for (i=0; i < s.length; i++)
	{
		x = s.charAt(i);
		if (nums.indexOf(x,0) == -1) return false;
	}
	return true;
}

function checkIntro1(e,myform)
{
	var keycode;
	if (window.event)
	{
		keycode = window.event.keyCode;
	}
	else if(e)keycode = e.which;
	else return true;
	if (keycode == 13)
	{
		validar_paso1(myform);
		return false;
	}
	return true;
}

function checkIntro2(e,myform)
{
	var keycode;
	if (window.event)
	{
		keycode = window.event.keyCode;
	}
	else if(e)keycode = e.which;
	else return true;
	if (keycode == 13)
	{
		validar_paso2(myform);
		return false;
	}
	return true;
}

function checkIntro3(e,myform)
{
	var keycode;
	if (window.event)
	{
		keycode = window.event.keyCode;
	}
	else if(e)keycode = e.which;
	else return true;
	if (keycode == 13)
	{
		validar_paso3(myform);
		return false;
	}
	return true;
}

function limit_chars(myfield,num)
{
	if (myfield.value.length > num)
		myfield.value = myfield.value.substring(0, num);
}

function URLEncode( str )
{
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	var plaintext = str;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for
	return encoded;
};
