n=T.length
precia=[];function ponprecios(){;j=0;precia[0]=numero[numero.length-1];for(i=1;i<n;i++){;if(i>numero[j])j=j+1;precia[i]=precios[j];}};ponprecios()
ife=(n*2)+4	// ’ndice de casillas de facturaci—n y env’o (=ife+i)

	// constantes elementales
V=""
b='&nbsp;'	
E=" euros"
Q="QQQQQ"	// separador cookie DAT

	// textos
T[0]="desde el n&uacute;mero actual ("+(n-1)+", "+(n)+" y "+(n+1)+")"
T[n]="desde el pr&oacute;ximo n&uacute;mero ("+(n)+", "+(n+1)+" y "+(n+2)+")"
cfe2=["   nombre:","   nif:","&nbsp;&nbsp;&nbsp;profesi&oacute;n:","   domicilio:","   c&oacute;digo postal:","   poblaci&oacute;n:","   provincia:","&nbsp;&nbsp;&nbsp;pa&iacute;s:","   e-mail:","   tel&eacute;fono:","   fax:",V];cfe2[12]=cfe2[0];cfe2[13]=cfe2[3];cfe2[14]=cfe2[4];cfe2[15]=cfe2[5];cfe2[16]=cfe2[6];cfe2[17]=cfe2[7];
cfe2[18]="Suscripci&oacute;n ";
cfe2[19]="Tect&oacute;nica ";
//cfe2[18]="Espa&ntilde;a"
//cfe2[19]="cr&eacute;dito"
cfe3=[]

tc='Tarjeta de cr&eacute;dito'
tFP=[tc+" ***",tc+" ***",'Domiciliaci&oacute;n bancaria ****','Cheque bancario adjunto','Giro postal (en oficinas de correos)']
ning=unescape('Por favor, solicite%20alg%fan%20ejemplar')
cont=unescape('Por favor, indique alguna forma de contacto:\ne-mail, tel%e9fono o fax')
comp=unescape('Es necesario completar los datos de env%edo:\n\n')
node='Si solicita descuento, por favor,\nutilice correo postal o fax'
sota=unescape('Compras fuera de Espa%f1a:\ns%f3lo pagos con tarjeta de cr%e9dito')
teuno="Importe del ejemplar solicitado:"	// textos para celda (n*2)+2 calculada por ocl2() en 03calcula.js
temas="Importe de los ejemplares solicitados:"
ejuno=" ejemplar"
ejmas=" ejemplares"
tges=unescape("Env%edos%20a%20Espa%f1a:")
siga=unescape("sin%20gastos")
tgeu=unescape("Env%edos%20a%20Europa%20")
tgmu=unescape("Env%edos%20al%20exterior%20de%20Europa%20")
dees='Descuento de estudiante:'
to="Total compra:"
et1='Suscripci&oacute;n <br>(3&nbsp;monograf&iacute;as) '
et2='Ejemplares sueltos '
et3='* Los estudiantes que adjunten copia de la matr&iacute;cula del presente a&ntilde;o escolar, obtendr&aacute;n el 20% de descuento sobre el precio de suscripci&oacute;n y el 10% sobre los n&uacute;meros sueltos (s&oacute;lo en compras por&nbsp;correo postal, fax o&nbsp;e-mail).'
et5='Solicito descuento de estudiante y adjunto documento acreditativo donde consta el curso en el que estoy matriculado.'
et4='Descuento '
pa=[cfe2[7],V,"Afganist&aacute;n","mu","Albania","eu","Alemania","eu","Andorra","eu","Angola","mu","Antigua y Barbuda","mu","Arabia Saudita","mu","Argelia","mu","Argentina","mu","Armenia","mu","Australia","mu","Austria","eu","Azerbaiy&aacute;n","mu","Bahamas","mu","Bahrein","mu","Bangladesh","mu","Barbados","mu","Belar&uacute;s","eu","B&eacute;lgica","eu","Belice","mu","Benin","mu","Bhut&aacute;n","mu","Bolivia","mu","Bosnia y Herzegovina","eu","Botswana","mu","Brasil","mu","Brunei Darussalam","mu","Bulgaria","eu","Burkina Faso","mu","Burundi","mu","Cabo Verde","mu","Camboya","mu","Camer&uacute;n","mu","Canad&aacute;","mu","Colombia","mu","Comoras","mu","Congo","mu","Congo (Rep. Dem.)","mu","Corea del norte","mu","Corea del sur","mu","Costa de Marfil","mu","Costa Rica","mu","Croacia","eu","Cuba","mu","Chad","mu","Chile","mu","China","mu","Chipre","mu","Dinamarca","eu","Djibouti","mu","Dominica","mu","Ecuador","mu","Egipto","mu","El Salvador","mu","Emiratos &Aacute;rabes","mu","Eritrea","mu","Eslovaquia","eu","Eslovenia","eu","Espa&ntilde;a","es","Estados Unidos","mu","Estonia","eu","Etiop&iacute;a","mu","Fiji","mu","Filipinas","mu","Finlandia","eu","Francia","eu","Gab&oacute;n","mu","Gambia","mu","Georgia","eu","Ghana","mu","Granada","mu","Grecia","eu","Guatemala","mu","Guinea","mu","Guinea Bissau","mu","Guinea Ecuatorial","mu","Guyana","mu","Hait&iacute;","mu","Honduras","mu","Hungr&iacute;a","eu","India","mu","Indonesia","mu","Ir&aacute;n","mu","Iraq","mu","Irlanda","eu","Islandia","eu","Islas Marshall","mu","Islas Salom&oacute;n","mu","Israel","mu","Italia","eu","Libia","mu","Jamaica","mu","Jap&oacute;n","mu","Jordania","mu","Kazajst&aacute;n","mu","Kenya","mu","Kirguist&aacute;n","mu","Kiribati","mu","Kuwait","mu","Laos","mu","Lesotho","mu","Letonia","eu","L&iacute;bano","mu","Liberia","mu","Liechtenstein","eu","Lituania","eu","Luxemburgo","eu","Macedonia","eu","Madagascar","mu","Malasia","mu","Malawi","mu","Maldivas","mu","Mali","mu","Malta","mu","Marruecos","mu","Mauricio","mu","Mauritania","mu","M&eacute;xico","mu","Micronesia","mu","M&oacute;naco","eu","Mongolia","mu","Mozambique","mu","Myanmar","mu","Namibia","mu","Nauru","mu","Nepal","mu","Nicaragua","mu","Niger","mu","Nigeria","mu","Noruega","eu","Nueva Zelandia","mu","Om&aacute;n","mu","Pa&iacute;ses Bajos","eu","Pakist&aacute;n","mu","Palau","mu","Panam&aacute;","mu","Papua Nueva Guinea","mu","Paraguay","mu","Per&uacute;","mu","Polonia","eu","Portugal","eu","Qatar","mu","Reino Unido","eu","Siria","mu","Rep. Centroafricana","mu","Rep. Checa","eu","Rep. Moldova","eu","Rep. Dominicana","mu","Rumania","eu","Rusia","eu","Rwanda","mu","Saint Kitts y Nevis","mu","Samoa","mu","S. Marino","eu","S. Vicente y G.","mu","S. Luc&iacute;a","mu","S. Tom&eacute; y P.","mu","Senegal","mu","Seychelles","mu","Sierra Leona","mu","Singapur","mu","Somalia","mu","Sri Lanka","mu","Sud&aacute;frica","mu","Sud&aacute;n","mu","Suecia","eu","Suiza","eu","Suriname","mu","Swazilandia","mu","Tailandia","mu","Tanzania","mu","Tayikist&aacute;n","mu","Timor Oriental","mu","Togo","mu","Tonga","mu","Trinidad y Tobago","mu","T&uacute;nez","mu","Turkmenist&aacute;n","mu","Turqu&iacute;a","mu","Tuval&uacute;","mu","Ucrania","eu","Uganda","mu","Uruguay","mu","Uzbekist&aacute;n","mu","Vanuatu","mu","Venezuela","mu","Vietnam","mu","Yemen","mu","Serbia y Montenegro","eu","Zambia","mu","Zimbabwe","mu"]
pro=[cfe2[2],V,'Arquitecto',V,'Arquitecto t&eacute;cnico',V,'Constructor',V,'Estudiante',V,'Ingeniero',V,'Otra',V]
//pro=[' &nbsp; profesi&oacute;n:',V,'Arquitecto',V,'Arquitecto t&eacute;cnico',V,'Constructor',V,'Estudiante',V,'Ingeniero',V,'Otra',V]
uft='** Los datos de su tarjeta se procesar&aacute;n de forma segura a trav&eacute;s de&nbsp;la&nbsp;pasarela&nbsp;de&nbsp;pagos de&nbsp;la&nbsp;Confederaci&oacute;n Espa&ntilde;ola de&nbsp;Cajas de&nbsp;Ahorros.<br><br>*** &Uacute;nica forma v&aacute;lida para compras fuera de Espa&ntilde;a: tarjeta de cr&eacute;dito.<br><br>**** La renovaci&oacute;n de la suscripci&oacute;n ser&aacute; autom&aacute;tica, salvo que se indique lo contrario.'

	//	atributos
tabind=1	// inicializa el contador de tabindex, cada vez que aparece aumenta en una unidad
function ta(){;Tta=" tabindex='"+tabind+"'";tabind++;return(Tta);return(tabind);}//tabindex: cada vez que asigna uno, aumenta el ’ndice
function si(k){;return(" size='"+k+"'");}
function co(k){;return(" colspan='"+k+"'");}
function ro(k){;return(" rowspan='"+k+"'");}
function wi(k){;return(" width='"+k+"'");}
function he(k){;return(" height='"+k+"'");}

	kv=' align=';	// > konstante variable
le=kv+"'left'";ce=kv+"'center'";ri=kv+"'right'";
	kv=' valign=';
va=kv+"'top'"	// < depurar con "to"
	kv=' bgcolor=';
bg=[kv+"'#ffff66'",kv+"'#ffcc33'",kv+"'#ccff33'",kv+"'#99cc33'"]
	kv=' class=';
cl=[kv+"'impar'",kv+"'par'",kv+"'inputotal'",kv+"'inputotalb'",kv+"'ts'",kv+"'n'",kv+"'rpn'",kv+"'cas'"]

	// etiquetas
function td(){;t='<td';for (j=0;j<arguments.length-1;j++){;t+=arguments[j];};t+='>'+arguments[arguments.length-1]+'<\/td>';return(t);}
function tdbg(i2){;return(td(bg[i2],b));}//td en funci—n del color
function tr(){;t='<tr';for (j=0;j<arguments.length-1;j++){;t+=arguments[j];};t+='>'+arguments[arguments.length-1]+'<\/tr>';return(t);}
function fo(nom,act,con){;t='<form name="'+nom+'" action="'+act+'" method="post" enctype="application\/x-www-form-urlencoded">'+con+'<\/form>';return(t);}

function im(an,al){	// imagen en blanco (ancho,alto)
	return("<img border='0' src='..\/i\/ic\/t1x1.gif' width='"+an+"' height='1' alt='"+al+"'>")
	}
//<img border='0' src='..\/r\/t1x1.gif' width='64' height='1' alt=''>

function se(w,mo,di){	// seletcs  (en FE 2, 7 y 17). w=valor de la funci—n, mo= matriz de options, di= discriminador
	k='<select '+cl[7]+ta()
	if(w!=2)k+="onfocus='ofs("+w+");onchange()' onchange='ocfe("+w+");ocl2()'"
	k+='>'+hom(mo,di)+'<\/select>'
	return(k);}
	function hom(mo,di){;op=V
		for(w2=0;w2<(mo.length);w2+=2){
			if(di==1)mo[w2+1]=mo[w2]
			op+="<option value='"+mo[w2+1]+"'>"+mo[w2]+"</option>";}
		return(op);}
		// hom(mo,di). Haz opciones desde una matriz mo (matriz de opciones).
		// Si el (di)scriminador es igual a 2, el primer elemento de mo se emplea para el texto que media entre
		//						las etiquetas de opci—n y el siguiente elemento de mo
		//						ser‡ el value correspondiente a la opci—n.
		// En el caso de ser w3=1 coincidir‡n el texto y el value, y mo puede tener los elementos impares vac’os,
		//						porque se igualar‡n al anterior.
		//
		//funciona pero hay que depurar: con w3==1, la matriz de opciones s—lo un elemento, no dos

	//eventos
nr='readonly'
function ns(k){;return(" onclick='ocl("+k+");ocl2()' onfocus='omo("+k+")' onblur='omu("+k+")'");}//eventos en inputs checkbox nśmeros y suscripci—n
function nf(k){;return(" onblur='obfe("+k+")' onfocus='offe("+k+")' onchange='ocfe("+k+")'"+ta());}//eventos en inputs text facturaci—n
function np(k){;return(" onclick='com("+k+");prda("+k+")'"+ta());}//eventos en inputs radio de compra

function omrt(k){;return(" onmouseover='omo("+k+")' onmouseout='omu("+k+")'");}//);}//eventos en tds de nśmeros y suscripci—n

inp='input type=';
function hi(nom,vh){	/* hidden(value)*/ ;return('<'+inp+'hidden name="'+nom+'" value="'+vh+'">');}
function ch(evc){	/* checkbox (evento en checkbox)*/	;return('<'+inp+"'checkbox'"+evc+'>');}	
function tx(vcl,vsi,evt){	/* text (variable de class, variable de size, evento en text)*/	;return('<'+inp+"'text'"+cl[vcl]+si(vsi)+evt+'>');}	
function tx2(vcl,vsi,evt,vtx){	/* text (variable de class, variable de size, evento en text y value)*/	;return('<'+inp+"'text'"+cl[vcl]+si(vsi)+evt+'value=\"'+vtx+'\">');}	

function ra(evr){	/* radio ()*/
	;return('<'+inp+"'radio'"+evr+'>');}

	// general
SEP=tr(td(co(13),b))	// l’nea en blanco de separaci—n

IMP=tr(td(co(11),ri,tx(2,59,nr)+tx(2,14))+td(co(2),b))	// importe ejemplares

function endm(numero){ // escribe nśmero como d manda (igual tiene que ir a c‡lculo)
	ne=String(Math.round(numero));return(ne.substring(0,(ne.length-2))+','+ne.substring((ne.length-2),(ne.length)));}
function ecfe() { // escribe valores en las casillas de facturaci—n y env’o al cargarse
//alert('ola')
	/*for (i=0;i<18;i++) {
		if (i!=2 &&i!=7&&i!=11&&i!=17)d.f.elements[ife+i].value=cfe[i] // si el indice es distinto del correspondiente a los "select" pa’ses fect y env. o profesi—n o coincidenci de datos
		if (i==2 || i==7 || i==17)d.f.elements[ife+i].selectedIndex=0;} // para PC selecciona los primeros
	for (i=1;i<n+1;i++){;if(enre[i]==unescape("en reedici%f3n"))d.f.elements[(i*2)+2].disabled=true;}*/
	}

	// redacci—n

function essunu(){	// escribe suscripci—n y nśmeros
	TCO=V	// texto completo
	for(l=0;l<n+1;l++){	// recorre las suscripciones y las monograf’as publicadas
		Tnum=V
		if(l<2){
			Ac=[3,5,1,1]	// array de ’ndices de colspan
			Aa=[ce,le,ri,V]	// array de align
			Ak=[ch(ns(l)),T[l],tx(l%2,14,nr),b]	//array de contenidos de las td
			if(l==1)Ak[1]=T[n]
			for(m=0;m<4;m++){	// recorre las 4 de la primera
				Tnum+=td(bg[l%2],co(Ac[m]),Aa[m],cl[5],omrt(l),Ak[m])//asigna los valores de las Array en cada celda td
				}
			if(l==0)TCO+=tr(td(ro(2),cl[4],ri,va,et1)+td(ro(2),b)+Tnum+td(ro(2),b))
			if(l==1)TCO+=tr(Tnum)+SEP
			}
		else{
			Ac=[3,1,4,1,1]	// array de ’ndices de colspan
			Aa=[ce,ri,le,ri,V]	// array de align
			Ak=[ch(ns(l)),(l-1)+b+b,T[l-1],tx(l%2,14,nr),b]	// array de contenidos de las td
			for(m=0;m<5;m++){	// recorre las 5 td de cada tr tipo
				Tnum+=td(bg[l%2],co(Ac[m]),Aa[m],cl[5],omrt(l),Ak[m])	// asigna los valores de las Array en cada celda td
				}
			if(l==2)TCO+=tr(td(ro(n-1),cl[4],ri,va,et2)+td(ro(n-1),b)+Tnum+td(ro(n-1),b))
			if(l>2)TCO+=tr(Tnum);}}	// escribe las etiquetas tr de cada fila con su contenido (Tnum)
//	DESC1=tr(td(co(2),he(46),b)+td(co(3),bg[2],b)+td(co(6),bg[2],le,cl[4],et3)+td(bg[2],b)+td(b))
//	DESC2=tr(td(cl[4],ri,va,he(23),et4)+td(b)+td(bg[2],co(3),ce,ch(nd))+td(co(6),bg[3],ri,cl[5],tx(3,30,nr)+tx(3,14,nr))+td(bg[3],b)+td(b))
	TCO+=SEP+IMP
	return(TCO);}

	// sistematizada
FP=[]	// Formas de Pago
	for(iFP=0;iFP<tFP.length;iFP++){;FP[iFP]=tr(td(bg[3],co(4),ri,cl[5],tFP[iFP])+tdbg(3)+td(bg[3],co(2),le,ra(np(iFP))));}//1
		
CED2=[]	// Coincidencia y Env’o de Datos (valores rango 0,1,2)
	tC=[[1,7,5,'Coinciden con los de facturaci&oacute;n'],[2,2,4,'A trav&eacute;s de internet **'],[2,2,4,'Por correo postal o fax']]
	for(vC=0;vC<3;vC++){
		kC=td(bg[tC[vC][0]],co(tC[vC][1]),le,cl[tC[vC][2]],tC[vC][3])
		if(vC!=0)kC+=tdbg(2)+td(bg[2],co(4),b);CED2[vC]=kC;}

function FE(w){	// Facturaci—n y Env’o, casillas de datos 
	v1=[32,17,0,32,17,25,17,0,25,17,17,0,32,32,17,25,17,0]	// valores si(ze) **s—lo en algunos inputs
	v2=[0,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0]	// ’ndices de valor de bg[color] (en FE1)
	v3=[2,1,1,2,1,1,1,1,1,1,1,3,2,2,1,1,1,1]	// valores co(lspan)
	v4=[ri,ce,le,ri,ce,le,ce,le,ri,ce,le,ce,ri,ri,ce,le,ce,le]	// align
	v5=[1,1,1,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0]	// ’ndices de valor de bg[color] **en la śltima tdbg()
	//e=tx(6,v1[w],nf(w));	
	e=tx2(6,v1[w],nf(w),cfe3[w]);	
	if(w==2)e='* '+se(w,pro,1)
	if(w==7||w==17)e=se(w,pa,2)
	if(w==11)e=ch(" onclick='occo();ocl2()'"+ta())	// checkbox de coincide
	k=td(bg[v2[w]],co(v3[w]),v4[w],cl[4],e)+tdbg(v5[w])
	if(w==11)k=e
	if(w==12)k+=td(bg[1],co(4),b)	
	return(k);}
																														
function L(vL){	// L’neas	
	cL=[3,3,5,3,3,3,3,5]// valores colspan
	kL=td(bg[1],he(25),co(cL[vL]),ce,b)
		// la l’nea 0 en S(4)
	if(vL==1)kL=tr(kL+FE(3)+FE(4)+FE(5))
	if(vL==2)kL=tr(kL+tdbg(0)+FE(6)+FE(7))
	if(vL==3)kL=tr(kL+tdbg(1)+FE(8)+FE(9)+FE(10))
	if(vL==4)kL=td(bg[1],he(25),co(cL[vL]),ce,FE(11))+CED2[0]
	if(vL==5)kL=tr(kL+FE(12))
	if(vL==6)kL=tr(kL+FE(13)+FE(14)+FE(15))
	if(vL==7)kL=tr(kL+tdbg(0)+FE(16)+FE(17))
	return(kL);}

tS=[V,V,V,V,'Datos de&nbsp;facturaci&oacute;n'+b,'Datos de&nbsp;env&iacute;o'+b,'Formas&nbsp;de&nbsp;pago'+b]//textos de la Secciones

function S(vS){	// Secciones
	rS=[V,V,V,V,4,4,7]	// valores de rowspan
	kS=[V,V,V,V,L(0)+FE(0)+FE(1)+FE(2),L(4),td(bg[2],co(3),ro(7),b)+CED2[1]]	// kontenido de las Secciones
	return(SEP+tr(td(ro(rS[vS]),ri,va,cl[4],tS[vS])+td(ro(rS[vS]),b)+kS[vS]+td(ro(rS[vS]),b)));}

function escribe(){	//lo que queda despuŽs de essunu
	essunu()
	d.write(TCO+S(4)+L(1)+L(2)+L(3)+SEP+tr(td(co(5),b)+td(co(7),cl[4],et3)+td(b))+S(5)+L(5)+L(6)+L(7)+SEP+IMP+IMP+S(6)+FP[0]+CED2[2]+FP[1]+FP[2]+FP[3]+FP[4]+SEP);}
	
function formateam(){	// formatea mensaje
	mens="\n "
	arN=tN.split('NNN')
	arD=tD.split('QQQQQ')
	gaent=V
	if(gaen==0)gaent='envio sin gastos\n'
	else(gaent=endm(gaen)+" euros\n");
	
	if(arN[0]==n)mens+=cfe3[18]+" ("+(n-1)+", "+n+" y "+(n+1)+") .- "+endm(precia[0])+" euros\n"
	if(arN[0]==0)mens+=cfe3[18]+" ("+n+", "+(n+1)+" y "+(n+2)+")  .- "+endm(precia[0])+" euros\n"
	if(arN[0]!=n&&arN[0]!=0)mens+=cfe3[19]+arN[0]+" .- "+endm(precia[arN[0]])+" euros\n"
	for(i=1;i<arN.length-1;i++){
		mens+=cfe3[19]+arN[i]+" .- "+endm(precia[arN[i]])+" euros\n"
		}
	mens+="\n\nImporte: \t"+endm(imp)+" euros\n"
	mens+="\nDatos facturacion:\n"
	for(i=0;i<arD.length-1;i++){
		if(i==11)mens+="\n"
		if(cfe3[i]!=arD[i])mens+=cfe3[i]+" "+arD[i]+"\n"
		}
	mens+="\n"+ttega+" "+gaent+"\n"
	mens+="Total compra: \t"+endm(toco)+" euros"
	mens=unescape(mens)
	return(mens)
	}
	
	