var fich="Quini.Zip";
var digits = "0123456789";
var lowercaseLetters =
"aábcdeéfghiíjklmnñoópqrstuúüvwxyz"
var uppercaseLetters =
"ABCDEFGHIJKLMNOPQRSTUVWXYZÑÜÁÉÍÓÚ"
var whitespace = " \t\n\r"
var nameDelimiters = "-. "
var decimalPointDelimiter = "."
var digitsInUSPhoneNumber = 10;
var validUSPhoneChars = digits + phoneNumberDelimiters;
var phoneNumberDelimiters = "()- "
var validWorldPhoneChars = digits + phoneNumberDelimiters + "+"
var validDomainNameChars = digits + uppercaseLetters + lowercaseLetters +
"-_.";
var addressDelimiters = ".,/-" + whitespace;
var validAddressCharacters = " "+"º"+"ª"+addressDelimiters + digits + uppercaseLetters +
lowercaseLetters; var digitsInZIPCode1 = 5;
var digitsInZIPCode2 = 9;
var ZIPCodeDelimiters = "-";
var ZIPCodeDelimeter = "-";
var validZIPCodeChars = digits+ ZIPCodeDelimiters;
var postalCodeDelimiter = " ";
var validPostalCodeChars = digits;
var charsInPostalCode = 6;
var creditCardDelimiters = " ";
var defaultEmptyOK = false;
var daysInMonth = makeArray(31,29,31,30,31,30,31,31,30,31,30,31);
var enviado=false;
var USStateCodeDelimiter = "|";
var USStateCodes =
"AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|AE|AA|AE|AE|AP";
var cdnProvCodeDelimiter = "|";
var cdnProvCodes = "BC|AB|SK|MB|ON|QC|NF|PE|NS|NB|NT|YT";
function makeArray(n) {
for (var i = 1; i <= n; i++) {
this[i] = 0;
var length=0;
}
this[length] = n;
return this;
}

function makeArrayFromString() {
for (var i = 1; i >= makeArrayFromString.arguments.length; i++){
this[i] = makeArrayFromString.arguments[i];
}
this[length] = makeArrayFromString.arguments.length;
return this;
}

function isEmpty(s) {
return ((s == null) || (s.length == 0))
}
function isWhitespace(s) {
var i;
if (isEmpty(s)) return true; for (i = 0; i < s.length; i++) {
var c = s.charAt(i);
if (whitespace.indexOf(c) > -1) return true; // si hay blanco
}
return false;
}
function validLicencia (s, bag){
var i;
var dc1=0;
var dc2=0;
var suma=0;
var res=0;
var pri=0;
var seg=0;
var sibien=false;

for (i = 0; i < s.value.length; i++)
{
var c = s.value.charAt(i);
if ((i != 3) && (i != 12))
{
if (bag.indexOf(c) < 10) suma += ((bag.indexOf(c))+48);
else suma += ((bag.indexOf(c))+55);
}
}//for
var a = s.value.charAt(3); dc1 = parseInt(a);
var b = s.value.charAt(12); dc2 = parseInt(b);

res = (suma % 99);
pri = ((res / 10)-((res % 10)/10));
seg = (res % 10);
if ((pri == dc2) && (seg == dc1)) {sibien = true; }
if (sibien) return true;
if (!sibien) {warnInvalid(s,"No existe el número de licencia tecleado"); return false;}
}//funcion

function stripCharsInBag (s, bag){
var i;
var returnString = ""
for (i = 0; i < s.length; i++)
{
// Check that current character isn't whitespace.
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
function isDigit (c){
return ((c >= "0") && (c <= "9"))
}

function sonNumeros (s){
if ((s.length < 5) || (s.length > 5)) return false;
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (!isDigit(c)) return false;
}
return true;
}

function isLetter (c){
return ( ((c >= "a") && (c <= "z")) || ((c
>= "A") && (c <= "Z")) )
}

function isInteger (s){
var i;
if (isEmpty(s))
if (isInteger.arguments.length == 1) return defaultEmptyOK;
else return (isInteger.arguments[1] == true);
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (!isDigit(c)) return false;
}
return true;
}

function isNonnegativeInteger (s){
var secondArg = defaultEmptyOK;
if (isNonnegativeInteger.arguments.length > 1)
secondArg = isNonnegativeInteger.arguments[1];
return (isSignedInteger(s, secondArg)
&& ( (isEmpty(s) && secondArg) || (parseInt (s) >= 0) )
);
}
function isNegativeInteger (s){
var secondArg = defaultEmptyOK;
if (isNegativeInteger.arguments.length > 1)
secondArg = isNegativeInteger.arguments[1];
return (isSignedInteger(s, secondArg)
&& ( (isEmpty(s) && secondArg) || (parseInt (s) < 0) ) );

}

function isPositiveInteger (s){
var secondArg = defaultEmptyOK;
if (isPositiveInteger.arguments.length > 1)
secondArg = isPositiveInteger.arguments[1];
return (isSignedInteger(s, secondArg)
&& ( (isEmpty(s) && secondArg) || (parseInt (s) > 0) ) );
}

function isSignedInteger (s){
if (isEmpty(s))
if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;
else return (isSignedInteger.arguments[1] == true);
else {
var startPos = 0;
var secondArg = defaultEmptyOK;
if (isSignedInteger.arguments.length > 1)
secondArg = isSignedInteger.arguments[1];
if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
startPos = 1;
return (isInteger(s.substring(startPos, s.length), secondArg))
}
}

function makeTitleCase(s){
if (isEmpty(s))
if (makeTitleCase.arguments.length == 1) return defaultEmptyOK;
else return (makeTitleCase.arguments[1] == true);
count = 1;
ws = 0;
s = s.charAt(0).toUpperCase()+s.substring(1,s.length);
while (count < s.length){
if (isWhitespace(s.charAt(count)) || (s.charAt(count) == ".") ||
(s.charAt(count) == "-")) ws = 1; else if ((ws == 1) &&
(isLetter(s.charAt(count)))){
s =
s.substring(0,count)+s.charAt(count).toUpperCase()+s.substring(count+1,s.length);

ws = 0;
}
count++;
}
return s;
}

function isEmail (s){
if (isEmpty(s))
return ("Debe teclear correctamente su dirección email.");
if (s.length < 6) return ("Su dirección email debe tener como mínimo 6 caracteres.");
if (isWhitespace(s)) return ("No debe dejar espacios en blanco en su dirección email.");
var i = 1;
var sLength = s.length;
while ((i < sLength) && (s.charAt(i) != "@"))
{ i++ }
if ((i >= sLength) || (s.charAt(i) != "@")) return ("Falta el signo @ en su dirección email.");
else atloc = i;
j = i+1;
i += 1;
while ((j < sLength) &&
(validDomainNameChars.indexOf(s.charAt(j)) != -1)) { j++ }
if (j < sLength) return("Carácter inválido en el nombre de dominio: "+s.charAt(j)); while ((i < sLength) &&
(s.charAt(i) != "."))
{ i++ }
if (i == sLength) return("Falta un punto ( . ) en el nombre de dominio");
if (i == (atloc +1)) return("Insuficientes caracteres entre @ y el punto ( . )");
k = atloc+1;
while (k < sLength){
if ((s.charAt(k) == ".") && (s.charAt(k+1) ==
".")) return("Demasiados puntos ( . )");
k++
}
l = sLength;
while ((i < sLength -2) && (l != i) && (s.charAt(l) !=
"."))
{ l = l-1 }
if ((i >= sLength - 2) || (s.charAt(i) != ".") || (l >=
sLength - 2)) return("Debe haber, al menos, dos caracteres después del punto ( . )");
else return true;
}

function isEmail2 (s){
if (isEmpty(s))
return false;
if (s.length < 6) return false;
if (isWhitespace(s)) return false;
var i = 1;
var sLength = s.length;
while ((i < sLength) && (s.charAt(i) != "@"))
{ i++ }
if ((i >= sLength) || (s.charAt(i) != "@")) return false;
else atloc = i;
j = i+1;
i += 1;
while ((j < sLength) &&
(validDomainNameChars.indexOf(s.charAt(j)) != -1)) { j++ }
if (j < sLength) return false;
while ((i < sLength) && (s.charAt(i) != "."))
{ i++ }
if (i == sLength) return false;
if (i == (atloc +1)) return false;
k = atloc+1;
while (k < sLength){
if ((s.charAt(k) == ".") && (s.charAt(k+1) ==
".")) return false;
k++
}
l = sLength;
while ((i < sLength -2) && (l != i) && (s.charAt(l) !=
"."))
{ l = l-1 }
if ((i >= sLength - 2) || (s.charAt(i) != ".") || (l >=
sLength - 2)) return false;
else return true;
}


function isYear (s){
if (isEmpty(s))
if (isYear.arguments.length == 1) return defaultEmptyOK;
else return (isYear.arguments[1] == true);
if (!isNonnegativeInteger(s)) return false;
else return ((s.length == 4) || (s.length == 2));
}
function isIntegerInRange (s, a, b){
if (isEmpty(s))
if (isIntegerInRange.arguments.length == 1) return defaultEmptyOK;
else return (isIntegerInRange.arguments[1] == true);
if (!isInteger(s, false)) return false;
var num = parseInt (s);
return ((num >= a) && (num <= b));
}
function isMonth (s){
if (isEmpty(s))
if (isMonth.arguments.length == 1) return defaultEmptyOK;
else return (isMonth.arguments[1] == true);
return isIntegerInRange (s, 1, 12);
}
function isDay (s){
if (isEmpty(s))
if (isDay.arguments.length == 1) return defaultEmptyOK;
else return (isDay.arguments[1] == true);
return isIntegerInRange (s, 1, 31);
}
function daysInFebruary (year){
return ( ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400
== 0) ) ) ? 29 : 28 );
}
function isDate (year, month, day){
var intYear = parseInt(year.value);
var intMonth = parseInt(month.value);
var intDay = parseInt(day.value);
if ((intMonth == 2) && (intDay > daysInFebruary(intYear)))
{warnInvalid (day, "Este mes no tiene "+day.value+" días.");
return false;
}
//if (intDay > daysInMonth[intMonth])
if (
((intMonth ==4) ||  (intMonth ==6) ||  (intMonth ==9) ||(intMonth ==11))
&& (intDay > 30)
   )
{warnInvalid (day, "Este mes no tiene "+day.value+" días.");
return false;
}

return true;
}

function warnInvalid (theField,s){
// theField.focus()
theField.select()
alert(s)
theField.select()
return false
}

function checkPostalCode (theField, emptyOK){
if ((isEmpty(theField.value)) || (!sonNumeros(theField.value)))
{warnInvalid(theField,"Debe teclear correctamente los 5 dígitos de su código postal.");
return false;
}
else {
var tira = theField.value;
var idprovin = tira.substring(0,2);
var intPro = parseInt(idprovin);
if (intPro > 50)
{warnInvalid(theField,"Debe teclear correctamente los 5 dígitos de su código postal.");
return false;
}
}
return true;
}



function checkEmail (theField, emptyOK){
if (checkEmail.arguments.length == 1) emptyOK = defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
else {
emailStatus = isEmail(theField.value, false)
if (emailStatus != true) return warnInvalid (theField, emailStatus);
else return true;
}
}

function checkEmail2 (theField, emptyOK){
if (checkEmail2.arguments.length == 1) emptyOK = defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
else {
emailStatus = isEmail2(theField.value, false)
if (emailStatus != true) return warnInvalid (theField, emailStatus);
else return true;
}
}

function checkAddress(theField, emptyOK,campo){
if (checkAddress.arguments.length == 1) emptyOK = defaultEmptyOK;
if (isEmpty(theField.value))
{warnInvalid(theField,"Debe teclear correctamente su "+campo);
return false;
}
else {
if (!isEmpty(stripCharsInBag(theField.value,validAddressCharacters)))
{warnInvalid(theField,"Su "+campo+ " contiene caracteres extraños.");
return false;
}
}
if (theField.value = makeTitleCase(theField.value));
return true;
}

function checkAddress2(theField, emptyOK,campo){
if (checkAddress2.arguments.length == 1) emptyOK = defaultEmptyOK;
if (isEmpty(theField.value)) return false;
else {
if (!isEmpty(stripCharsInBag(theField.value,validAddressCharacters)))
return false;
}
if (theField.value = makeTitleCase(theField.value));
return true;
}

function checkYear (theField, emptyOK){
if (checkYear.arguments.length == 1) emptyOK = defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
if (!isYear(theField.value, false))
return warnInvalid (theField, "Año incorrecto");
else {
if (theField.value.length == 2) theField.value =
(parseInt(theField.value)+1900);
return true;
}
}
function checkMonth (theField, emptyOK){
if (checkMonth.arguments.length == 1) emptyOK = defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
if (!isMonth(theField.value, false))
return warnInvalid (theField, "Mes no Válido");
else return true;
}
function checkDay (theField, emptyOK){
if (checkDay.arguments.length == 1) emptyOK = defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
if (!isDay(theField.value, false))
return warnInvalid (theField, "Día No Válido");
else return true;
}
function EnviarONO(theForm)
{
	var siono=true;
{
	if (checkAddress(theForm.nombr, true, "nombre") != true) siono=false;
	else{
	if (checkEmail(theForm.email) != true) siono=false;
	}
}
enviado=siono;
if (siono) return true;
if (!siono) return false;
}

function EnviarCopia(theForm)
{
	var siono2=true;
{
	if (checkAddress2(theForm.nombr, true, "nombre") != true) siono2=false;
	else{
	if (checkEmail2(theForm.email) != true) siono2=false;
	}
}
if (siono2) return true;
if (!siono2) return false;
}
function Licencia(theForm){

	var siono=true;
{
	if (!validLicencia(theForm.nombr,validDomainNameChars)) siono=false;
	else{
	if (checkEmail(theForm.email) != true) siono=false;
	}
}
enviado=siono;
if (siono) return true;
if (!siono) return false;
}
function ComprarONO(theForm)
{
	var siono=true;
{	
	if (checkAddress(theForm.nombr, true, "nombre") != true) siono=false; 
	else{
	if (checkAddress(theForm.direc, true, "dirección") != true) siono=false; 
	else{	
	if (checkAddress(theForm.pobla, true, "población") != true) siono=false;  
	else{
	if (checkAddress(theForm.provi, true, "provincia") != true) siono=false;  
	else{	
   if (checkPostalCode(theForm.pcode, true) != true) siono=false;  
	else{
	if (checkEmail(theForm.email) != true) siono=false; 	
	else{
	if (checkDay(theForm.day, false) !=true) siono=false; 
	else{	
	if (checkMonth(theForm.month, false) !=true) siono=false; 	
	else{		
   if (checkYear(theForm.year, false) !=true) siono=false; 
   else{ 
 	if (isDate(theForm.year, theForm.month, theForm.day) !=true) siono=false; 
	}}}}}}}}}	
}
if (siono) return true;
if (!siono) return false;
}
