
	<!--
		//if (is.ie) {document.write("<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"css/ie.css\">");}
		//else {document.write("<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"css/ns.css\">");}
//	Definici&oacute;n variables
	var cantidad_1;		// Primer valor escogido en el primer input
	var cantidad_2;		// Segundo valor escogido en el segundo input
	var tria_1;			// Primera selección del select
	var tria_2;			// Segunda selección del select
	var i,j,k,l,ii,i2,j2,k2,l2,ii2;
	var X = new Array();		//Valores iniciales del sistema
	var X2 = new Array();		//Valores iniciales del sistema en Velocidad
	var YY = new Array();
	var Z=new Array();
	var Z2=new Array();
	var XX,YYY;
	var U = new Array();
	var U2 = new Array();
	var D = new Array();	//Matriz del sistema a resolver
	D[1] = new Array();
	D[2] = new Array();
	D[3] = new Array();
	var D2 = new Array();	//Matriz del sistema a resolver
	D2[1] = new Array();
	D2[2] = new Array();
	D2[3] = new Array();
	var DD,VV,N,COD;
	var reynolds;
	var Sol_diametro;
	var Sol_reynolds;
	var Sol_velocidad;
	var lambda;
		
//	Definici&oacute;n constantes
	var ro = 1.2;	//	Kg/m3
	var vis = 1.50*Math.pow(10,-5);	//	m2/s
	var ks = 9.00*Math.pow(10,-5);	
	var errdat=0;
	
	function nada(){
	}

	function Datos(){
				errdat=0;
	
				cantidad_1 = document.calculator.introd1.value;
				cantidad_2 = document.calculator.introd2.value;
				if (isNaN(cantidad_1)||(cantidad_1=="")) {
					//alert("introduzca un valor numérico en el primer campo");
					errdat=1;
				}
				if (isNaN(cantidad_2)||(cantidad_2=="")) {
					//alert("introduzca un valor numérico en el segundo campo");
					errdat=1;
				}
				tria_1 = document.calculator.datos1.selectedIndex;
				tria_2 = document.calculator.datos2.selectedIndex;	

				switch (tria_1){
					case 0:	document.calculator.medida1.value = 'mm';
							break;
					case 1:	document.calculator.medida1.value = 'Pa/m';
							break;
					case 2:	document.calculator.medida1.value = 'm³/h';
							break;
					case 3:	document.calculator.medida1.value = 'm/s';
							break;
				}

				switch (tria_2){
					case 0:	document.calculator.medida2.value = 'mm';
							break;
					case 1:	document.calculator.medida2.value = 'Pa/m';
							break;
					case 2:	document.calculator.medida2.value = 'm³/h';
							break;
					case 3:	document.calculator.medida2.value = 'm/s';
							break;
				}
							
				if((tria_1==tria_2)&(tria_1!=-1)){
					alert('Escoja dos datos diferentes');
					errdat=1;
				}
	}
	
	function Reynolds(DD, vis, v){
		// a 20°C  vis=15E-6 (m2/s)
		// Fórmula de REYNOLDS
		reynolds = (DD*v)/vis;
		return;
	}
		
	function lectura1(DD){
			m = (X[1] * ro * Math.pow(X[2],2))/2;
			m2 = (DD*X[2])/vis;	// Reynolds(DD,vis,X[2])
										
			if (m2 < 3000){		//Fórmula de Poiseusille - Régimen laminar
				KK1 = Math.pow(X[1],0.5);
				KK2 = m2;						
				YY[1] = X[1]-64/m2;
				YY[2] = (m/DD)-presion;
			}
			else {		//Fórmula de Colebrook - Régimen turbulento
				KK1 = Math.pow(X[1],0.5);					
				KK2 = m2;
				cuenta = (2.51/(KK1 * KK2)+(ks/DD)/3.71);
				logarit = (Math.LN10*Math.log(cuenta))/(Math.LN10*Math.log(10));
				YY[1] = (1/KK1)+(2*logarit);
				YY[2] = (m/DD)-presion;
			}
	}
	
	function lectura2(VV){
			Reynolds(X[2], vis, VV);
			m2 = reynolds;
			m = (X[1]*ro*Math.pow(VV,2))/(2*X[2]);
							
			if (m2 < 3000){		//Fórmula de Poiseusille - Régimen laminar
				KK1 = Math.pow(X[1],0.5);
				KK2 = m2;						
				YY[1] = X[1]-64/m2;
				YY[2] = m-presion;
			}
			else {		//Fórmula de Colebrook - Régimen turbulento
				KK1 = Math.pow(X[1],0.5);					
				KK2 = m2;
				cuenta = (2.51/(KK1 * KK2)+(ks/X[2])/3.71);
				logarit = (Math.LN10*Math.log(cuenta))/(Math.LN10*Math.log(10));
				YY[1] = (1/KK1)+(2*logarit);
				YY[2] = m-presion;
			}
	}
	
	function lectura3(DD,V){
			Reynolds(DD, vis, V);
			m2 = reynolds;
			m = Math.pow(X[1],-0.5);
			n = Math.pow(X[1],0.5);
							
			if (m2 < 3000){		//Fórmula de Poiseusille - Régimen laminar
				YY[1] = X[1]-64/m2;
			}
			else {		//Fórmula de Colebrook - Régimen turbulento
				cuenta = (2.51/(m2*n))+(ks/(DD*3.71));
				logarit = (Math.LN10*Math.log(cuenta))/(Math.LN10*Math.log(10));
				YY[1] = m+2*logarit;
			}
	}
	
	function lectura4(caudal){
			SS1 = Math.PI*Math.pow(X[1]/2,2);
			VV = caudal/(3600*SS1);
			Lambda(ks,vis,X[1],VV);
			KK2 = lambda; 
			YY[1] = (KK2*ro*Math.pow(VV,2)/(2*X[1]))-presion;
	}
	
	function Lambda(ks,vis,DD,V){
					var A,B;
					var N = 1;
					var Q = 0.000000000000001;
					var w = 100;
					var E = 0;
					var k = 0;
					var h = Q;

					X[1]= 0.02;
					
					while(k<w){
						k=k+1;
						// Llamada a la función lectura3 que nos dará los valores del vector YY						
						lectura3(DD,V);					
						for(i=1;i<=N;i++){
							D[i][N+1] = -YY[i];
							Z[i] = X[i];
							U[i] = X[i];
						}
						for(i=1;i<=N;i++){	
							for(j=1;j<=N;j++){
								Z[j] = Z[j]+h;
								for(l=1;l<=N;l++){
										X[l] = U[l];
								}
								lectura3(DD,V);
								B = YY[i];
								for(l=1;l<=N;l++){
										X[l] = Z[l];
								}
								lectura3(DD,V);
								AA = YY[i];
								D[i][j] = (AA-B)/h;
								Z[j] = U[j];
							}
						}			
						if(D[1][1]==0){
							lambda = 0;
							return;
						}
						D[1][2] = D[1][2]/D[1][1];

						E = 0;
				
						for(i=1;i<=N;i++){
							if (Math.abs(D[i][N+1])>E){
								E = Math.abs(D[i][N+1]);
							}
							X[i] = X[i]+D[i][N+1];
						}
						if(E <= Q){
							k = 101;
						}
				}
			lambda = U[1];
	}
	
	function Sol_Reynolds(lo,vo,presion,ks,ro,DD,vis,COD){	//Sabemos presión y diámetro.

					var A,B;
					var N = 2;
					var Q = 0.000001;
					var w = 100;
					var E = 0;
					var k = 0;
					var h = Q;

					X[1]= lo;
					X[2]= vo;
					
					while(k<w){
						k=k+1;
						// Llamada a la función lectura1 que nos dará los valores del vector YY						
						lectura1(DD);					
						for(i=1;i<=N;i++){
							D[i][N+1] = -YY[i];
							Z[i] = X[i];
							U[i] = X[i];
						}
						for(i=1;i<=N;i++){	
							for(j=1;j<=N;j++){
								Z[j] = Z[j]+h;
								for(l=1;l<=N;l++){
										X[l] = U[l];
								}
								lectura1(DD);
								B = YY[i];
								for(l=1;l<=N;l++){
										X[l] = Z[l];
								}
								lectura1(DD);
								AA = YY[i];
								D[i][j] = (AA-B)/h;
								Z[j] = U[j];
							}
						}			
						if((D[1][1]*D[2][2]-D[2][1]*D[1][2])==0){
							Sol_reynolds=0;
							return;
						}
						D[1][3] = (D[1][3]*D[2][2]-D[2][3]*D[1][2])/(D[1][1]*D[2][2]-D[2][1]*D[1][2]);
						D[2][3] = (D[2][3]*D[1][1]-D[1][3]*D[2][1])/(D[1][1]*D[2][2]-D[2][1]*D[1][2]);
													
						E = 0;
				
						for(i=1;i<=N;i++){
							if (Math.abs(D[i][N+1])>E){
								E = Math.abs(D[i][N+1]);
							}
							X[i] = X[i]+D[i][N+1];
						}
						if(E <= Q){
								k = 101;
							}
				}
	
	
	if(COD == 1){
			Sol_reynolds = U[1];
	}
	if(COD == 2){
			Sol_reynolds = U[2];
	}

}
	
	function Sol_Diametro(lo,d0,presion,ks,ro,VV,vis,COD){
		
		var N=2;
		var Q = 0.000001;
		var w = 100;
		var E = 0;
		var k = 0;
		var h = Q;

		X[1]= lo;
		X[2]= d0;
		
		while(k<w){
				k=k+1;
				// Llamada a la función lectura2 que nos dará los valores del vector YY						
				lectura2(VV);	
				
				for(i=1;i<=N;i++){
						D[i][N+1] = -YY[i];
						Z[i] = X[i];
						U[i] = X[i];
				}
				for(i=1;i<=N;i++){
					for(j=1;j<=N;j++){
						Z[j] = Z[j]+h;
						for(l=1;l<=N;l++){
							X[l] = U[l];
						}
						lectura2(VV);
						B = YY[i];
						for(l=1;l<=N;l++){
							X[l] = Z[l];
						}
						lectura2(VV);
						AA = YY[i];
						D[i][j] = (AA-B)/h;
						Z[j] = U[j];
					}
				}
				if((D[1][1]*D[2][2]-D[2][1]*D[1][2])==0){
						Sol_diametro = 0;
						return;
				}
				D[1][3] = (D[1][3]*D[2][2]-D[2][3]*D[1][2])/(D[1][1]*D[2][2]-D[2][1]*D[1][2]);
				D[2][3] = (D[2][3]*D[1][1]-D[1][3]*D[2][1])/(D[1][1]*D[2][2]-D[2][1]*D[1][2]);
													
				E = 0;
				
				for(i=1;i<=N;i++){
					if (Math.abs(D[i][N+1])>E){
						E = Math.abs(D[i][N+1]);
					}
					X[i] = X[i]+D[i][N+1];
				}
				if(E <= Q){
						k = 101;
				}
		}
		
		if(COD == 1){
			Sol_diametro = U[1];
		}
		if(COD == 2){
			Sol_diametro = U[2];
		}
	}
	
function Sol_Velocidad(d0,presion,caudal,ks,ro,vis){
		var AA2,B2;
		var N = 1;
		var Q2 = 0.000001;
		var w2 = 100;
		var E2 = 0;
		var k2 = 0;
		var h2 = Q2;

		X2[1]= d0;
	
		while(k2<w2){
			k2 = k2+1;
			// Llamada a la función lectura4 que nos dará los valores del vector YY						
			lectura4(caudal);
			
			for(i2=1;i2<=N;i2++){
			
				D2[i2][N+1] = -YY[i2];
				Z2[i2] = X2[i2];
				U2[i2] = X2[i2];
			}
			for(i2=1;i2<=N;i2++){	
				for(j2=1;j2<=N;j2++){
					Z2[j2] = Z2[j2]+h2;
					for(l2=1;l2<=N;l2++){
							X2[l2] = U2[l2];
					}
					lectura4(caudal);
					B2 = YY[i2];
					for(l2=1;l2<=N;l2++){
							X2[l2] = Z2[l2];
					}
					lectura4(caudal);
					AA2 = YY[i2];
					D2[i2][j2] = (AA2-B2)/h2;
					Z2[j2] = U2[j2];
					
				}
			}			
			if(D2[1][1]==0){
				Sol_velocidad = 0;
				return;
			}
			D2[1][2] = D2[1][2]/D2[1][1];

			E2 = 0;
	
			for(i2=1;i2<=N;i2++){
				if (Math.abs(D2[i2][N+1])>E2){
					E2 = Math.abs(D2[i2][N+1]);
				}
				X2[i2] = X2[i2]+D2[i2][N+1];
			}
			if(E2 <= Q2){
				k2 = 101;
			}
	}
	Sol_velocidad = U2[1]*1000;
}
	
function Result(){
	var diametro;
	var velocidad_paso;
	var caudal;
	var re;
	var landa;
					
	if((tria_1==0 & tria_2==1) || (tria_1==1 & tria_2==0)){		//Conocemos DIAMETRO Y PRESIÓN
		if(tria_1==0){
			presion=cantidad_2;
			diametro=cantidad_1;
		}
		else{
			presion=cantidad_1;
			diametro=cantidad_2;						
		}
		document.calculator.resultado1.value = diametro;
		document.calculator.resultado7.value = presion;
							
		seccion_conducto = Math.PI*Math.pow((diametro/2000),2);		//Calculo de la seccion del conducto
		document.calculator.resultado2.value = Redondeo(seccion_conducto);
		
		Sol_Reynolds(0.02,200,presion,ks,ro,(diametro/1000),vis,2); //Calculo de la velocidad de paso
		velocidad_paso = Sol_reynolds;
		document.calculator.resultado4.value = Redondeo(velocidad_paso);
		
		caudal = seccion_conducto*3600*velocidad_paso; //Calculo del caudal 
		document.calculator.resultado3.value = Redondeo(caudal);
		
		Sol_Reynolds(0.02,200,presion,ks,ro,(diametro/1000),vis,1);	//Calculo de la lambda				
		landa = Sol_reynolds;	
		document.calculator.resultado6.value = Redondeo(landa);
		
		Reynolds((diametro/1000),vis,velocidad_paso);	//Calculo de re 
		re = reynolds; 
		document.calculator.resultado5.value = Redondeo(re);
	}
	
	if((tria_1==1 & tria_2==3) || (tria_1==3 & tria_2==1)){		//Conocemos VELOCIDAD Y PRESIÓN
		if(tria_1==1){
			presion=cantidad_1;
			velocidad_paso=cantidad_2;
		}
		else{
			presion=cantidad_2;
			velocidad_paso=cantidad_1;						
		}
		
		document.calculator.resultado4.value = velocidad_paso;
		document.calculator.resultado7.value = presion;

		Sol_Diametro(0.02,(0.0001*1000),presion,ks,ro,velocidad_paso,vis,2);	//Calculo del diametro 
		diametro = Sol_diametro*1000;
		document.calculator.resultado1.value = Redondeo(diametro);
		
		seccion_conducto = Math.PI*Math.pow((diametro/2000),2);		//Calculo de la seccion del conducto
		document.calculator.resultado2.value = Redondeo(seccion_conducto);
		
		caudal = seccion_conducto*3600*velocidad_paso; //Calculo del caudal 
		document.calculator.resultado3.value = Redondeo(caudal);
		
		Sol_Reynolds(0.02,20,presion,ks,ro,(diametro/1000),vis,1);	//Calculo de la lambda				
		landa = Sol_reynolds;	
		document.calculator.resultado6.value = Redondeo(landa);
		
		Reynolds((diametro/1000),vis,velocidad_paso);	//Calculo de re
		re = reynolds; 
		document.calculator.resultado5.value = Redondeo(re);
	}
	
	if((tria_1==1 & tria_2==2) || (tria_1==2 & tria_2==1)){		//Conocemos CAUDAL Y PRESIÓN
		if(tria_1==1){
			presion=cantidad_1;
			caudal=cantidad_2;
		}
		else{
			presion=cantidad_2;
			caudal=cantidad_1;						
		}

		document.calculator.resultado3.value = caudal;
		document.calculator.resultado7.value = presion;

		Sol_Velocidad(0.1,presion,caudal,ks,ro,vis);			//Calculo del diametro
		diametro = Sol_velocidad;
		document.calculator.resultado1.value = Redondeo(diametro);

		seccion_conducto = Math.PI*Math.pow((diametro/2000),2);		//Calculo de la seccion del conducto
		document.calculator.resultado2.value = Redondeo(seccion_conducto);

		velocidad_paso = caudal/(3600*seccion_conducto);	 //Calculo de la velocidad de paso	
		document.calculator.resultado4.value = Redondeo(velocidad_paso);
		
		Lambda(ks,vis,(diametro/1000),velocidad_paso);	//Calculo de la lambda				
		landa = lambda;	
		document.calculator.resultado6.value = Redondeo(landa);

		Reynolds((diametro/1000),vis,velocidad_paso);  //Calculo de re
		re = reynolds; 
		document.calculator.resultado5.value = Redondeo(re);
	}
	
	if((tria_1==0 & tria_2==2) || (tria_1==2 & tria_2==0)){		//Conocemos DIAMETRO Y CAUDAL
		if(tria_1==0){
			diametro=cantidad_1;
			caudal=cantidad_2;
		}
		else{
			diametro=cantidad_2;
			caudal=cantidad_1;						
		}
		document.calculator.resultado1.value = diametro;
		document.calculator.resultado3.value = caudal;

		seccion_conducto = Math.PI*Math.pow((diametro/2000),2);		//Calculo de la seccion del conducto
		document.calculator.resultado2.value = Redondeo(seccion_conducto);
		
		velocidad_paso = caudal/(3600*seccion_conducto); //Calculo de la velocidad de paso
		document.calculator.resultado4.value = Redondeo(velocidad_paso);
		
		Lambda(ks, vis, (diametro/1000),velocidad_paso);	//Calculo de la lambda				
		landa = lambda;	
		document.calculator.resultado6.value = Redondeo(landa);
		
		Reynolds((diametro/1000),vis,velocidad_paso);	//Calculo de re
		re = reynolds; 
		document.calculator.resultado5.value = Redondeo(re);
		
		presion = (landa*1000/diametro)*(ro/2)*Math.pow(velocidad_paso,2);	//Cálculo de la presión
		document.calculator.resultado7.value = Redondeo(presion);
	}
	
	if((tria_1==3 & tria_2==2) || (tria_1==2 & tria_2==3)){		//Conocemos VELOCIDAD Y CAUDAL
		if(tria_1==3){
			velocidad_paso=cantidad_1;
			caudal=cantidad_2;
		}
		else{
			velocidad_paso=cantidad_2;
			caudal=cantidad_1;						
		}
		document.calculator.resultado4.value = velocidad_paso;
		document.calculator.resultado3.value = caudal;

		seccion_conducto = caudal/(3600*velocidad_paso);		//Calculo de la seccion del conducto
		document.calculator.resultado2.value = Redondeo(seccion_conducto);
		
		
		diametro = 1000*Math.pow(4*seccion_conducto/Math.PI,0.5); //Calculo de la velocidad de paso
		document.calculator.resultado1.value = Redondeo(diametro);
		
		Lambda(ks, vis, (diametro/1000),velocidad_paso);	//Calculo de la lambda				
		landa = lambda;	
		document.calculator.resultado6.value = Redondeo(landa);
		
		Reynolds((diametro/1000),vis,velocidad_paso);	//Calculo de re
		re = reynolds; 
		document.calculator.resultado5.value = Redondeo(re);
		
		presion = (landa*1000/diametro)*(ro/2)*Math.pow(velocidad_paso,2);	//Cálculo de la presión
		document.calculator.resultado7.value = Redondeo(presion);
	}
	
	if((tria_1==3 & tria_2==0) || (tria_1==0 & tria_2==3)){		//Conocemos VELOCIDAD Y DIAMETRO
		if(tria_1==3){
			velocidad_paso=cantidad_1;
			diametro=cantidad_2;
		}
		else{
			velocidad_paso=cantidad_2;
			diametro=cantidad_1;						
		}
		document.calculator.resultado4.value = velocidad_paso;
		document.calculator.resultado1.value = diametro;

		seccion_conducto = Math.PI*Math.pow((diametro/2000),2);		//Calculo de la seccion del conducto
		document.calculator.resultado2.value = Redondeo(seccion_conducto);
		
		caudal = seccion_conducto*3600*velocidad_paso; //Calculo del caudal 
		document.calculator.resultado3.value = Redondeo(caudal);
		
		Lambda(ks, vis, (diametro/1000),velocidad_paso);	//Calculo de la lambda				
		landa = lambda;	
		document.calculator.resultado6.value = Redondeo(landa);
		
		Reynolds((diametro/1000),vis,velocidad_paso);	//Calculo de re
		re = reynolds; 
		document.calculator.resultado5.value = Redondeo(re);
		
		presion = (landa*1000/diametro)*(ro/2)*Math.pow(velocidad_paso,2);	//Cálculo de la presión
		document.calculator.resultado7.value = Redondeo(presion);
	}
}  

function Redondeo(x){
	if(x==0) return 0;
	if(x=="-") return "-";
	var y = x*1000;
	x =	Math.round(y)/1000;	
	return x;
}

function ejecucion(){
	Datos();
	if (errdat==1){	
	return false;
	}else{
	Result();
	}
}
function Conversion() {
			var factor =  new Array(7);
			//                    mm cda  mm cdm   kp/cm2   pr. atm.   Pa      bar          mbar      baria
			factor[0]= new Array( 1,      0.07355, 0.0001,  0.0000966, 9.8026, 0.000098026, 0.098026, 98.026 ); // mm c.d.a.
			factor[1]= new Array( 13.6,   1,       0.00136, 0.0013158, 133.4,  0.001334,    1.334,    1334   ); // mm c.d.m.
			factor[2]= new Array( 10000,  735.5,   1,       0.966,     98026,  0.98026,     980.26,   980260 ); // kp/cm2
			factor[3]= new Array( 10334,  760,     1.0334,  1,         101300, 1.013,       1013,     1013000); // pr. atm.
			factor[4]= new Array( 0.102,  0.0075,  1.02e-5, 9.87e-6,   1,      1e-5,        0.01,     10     ); // Pa
			factor[5]= new Array( 10200,  75,      1.02,    0.987,     1e5,    1,           1000,     1e6    ); // bar
			factor[6]= new Array( 10.2,   7.5e-2,  1.02e-3, 9.87e-4,   100,    1e-3,        1,        1000   ); // mbar
			factor[7]= new Array( 0.0102, 7.5e-5,  1.02e-6, 9.87e-7,   0.1,    1e-6,        0.001,    1      ); // baria
		
			cantidad = document.calculator.cantidad.value;
			//Primero nos aseguramos que los datos entrados sean numéricos
			if (isNaN(cantidad)) {
				alert("Introduzca un valor numérico");
				document.calculator.resultado.value = "-";
			}else{
				uni1=document.calculator.unit1.selectedIndex;
				uni2=document.calculator.unit2.selectedIndex;
				resultado=cantidad*factor[uni1][uni2];
				document.calculator.resultado.value = Redondeo(resultado);
			}
		}
		


	//-->
