// variables general
var M_PI = 3.1416;
var solodebug2 = 0;	// este para ve msgerr
var solodebug3 = 0;	// este para el graba y valida pedido

var solodebugFormaOcx = 0;
var STR_FormaOcxDer = "";
var STR_FormaOcxIzq = "";
//
//var iModoScan = -1;
// activar modo 64
var iModoScan = 6;


function SoyLanguageEn ()
{
	if (miGetElementById ('languaje') == null){
		return false;
	}
	if (miCampo('languaje').value == 'en'){
		return true;
	}
	return false;
}

function SoyLanguageFr ()
{
	if (miGetElementById ('languaje') == null){
		return false;
	}
	if (miCampo('languaje').value == 'fr'){
		return true;
	}
	return false;
}

function SoyLanguagePt ()
{

  if (miGetElementById ('languaje') == null){
		return false;
	}
	if (miCampo('languaje').value == 'pt'){
		return true;
	}
	return false;
}

function SoyLanguageDe ()
{
	if (miGetElementById ('languaje') == null){
		return false;
	}
	if (miCampo('languaje').value == 'de'){
		return true;
	}

  //alert(miCampo('languaje').value);


  return false;
}


function Loginado_Empresa_pt ()
{
	if (miGetElementById ('empresa') == null){
		return false;
	}
	if (miCampo('empresa').value == 4){
		return true;
	}
	return false;
}

function Loginado_Empresa_fr ()
{
	if (miGetElementById ('empresa') == null){
		return false;
	}
	if (miCampo('empresa').value == 5){
		return true;
	}
	return false;
}

function Loginado_Empresa_de ()
{
	if (miGetElementById ('empresa') == null){
		return false;
	}
	if (miCampo('empresa').value == 6){
		return true;
	}
	return false;
}



function seleccioname (nomForm, nomCampo) {
	var obj;
	var que = QueExplorador ();
	if (que != "MSIE"){        // el MSIE.8 va como el mozilla
		obj = eval("document.forms[0]."+nomCampo);
	}else{
		obj = eval("document."+nomForm+"."+nomCampo);
	}
	obj.select();
	GuardaValor_AlEntrar (nomCampo, obj.value);
}

function miCampo (campo)
{
  var que = QueExplorador ();
  if (que == 'Firefox'){
    return (miGetElementById(campo));
  }
	// sustituye a --> document.fm_pedido.campo
	var cc = eval("document.forms[0]."+campo);
 	if (cc != null){
		return cc;
 	}
	return eval ("document.fm_pedido."+campo);
}

function miForm ()
{
	// sustituye a --> document.fm_pedido
	if (document.forms[0].name != 'fm_pedido'){
		alert ("ojo, es diferente de fm_pedido");
	}
	// return document.fm_pedido;  esto no va en Mozilla
	return document.forms[0];
}

function miGetElementById (campo)
{
	// sustituye a --> 	document.getElementById
		if (document.getElementById(campo) == null){
		var elemens = document.getElementsByName(campo);
		if (elemens.length == 0){
			return null;
		}
		return  document.getElementsByName(campo)[0];
	}
	return document.getElementById(campo);
}

function miTextXml (o)
{
	var que = QueExplorador (); 			// el MSIE.8 va como el mozilla
	if (que == "MSIE"){
		return o.text;  	// esto no va en Mozilla
	}
	return o.textContent;  // esto va en Firefox y Netscape
}

function vesHref (quetabs){
  switch (quetabs){
		case 'pedido':
			if (miGetElementById ('suReferencia') != null){
				if (trim(miCampo('suReferencia').value) == ""){
					miCampo('suReferencia').focus();
					miCampo('suReferencia').select();
//				document.location.href = "#ref1";
				}else{
					miCampo('ComboGamasDer').focus();
        }
			}
//			alert (quetabs);
			break;
		default:
//			alert ("no");
			break;
	}
}

function trim (cadena) {

	if (cadena == null) return "";
	return cadena.replace (/(^\s*)|(\s*$)/g, "");
}

function prueba (pp) {
	alert (pp);
	return true;
}

function validaIntNE(value) {
	if (trim(value) == "") return false;
	return  validaInt (trim(value));
}

function validaIntE(value) {
	if (trim(value) == "") return true;
	return  validaInt (value);
}

function validaInt(value) {
	var ret = value.match(/^[+-]?[0-9]+$/);
	if (ret){
	 	return true;
	}
	return false;
}

function validaFloat25(value) {
	return validaFloat (value);
}

// float con espacio
function validaFloatE (value) {
	if (trim(value) == "") return true;
	return  validaFloat(value);
}

function validaFloat(value) {
	ret = value.match(/^[+-]?[0-9]+(.[0-9]+)*$/);
	if (ret){
		return true;
	}
	return false;
}

function validaStrIden(value) {
	var patron = /^[A-Z]{3}$/;
	if ( patron.test (value) ) {
 		return true;
	}
	return false;
}

function validaStr(value) {
	if (value.length == 0){
		return false;
	}
	return true;
}

function validaCampo_w (elem){

	if (validaElemen (elem) == false){
		return false;
	}
	return validaCampo(elem, 0);
}


function validaElemen(elem) {
	if (elem.type.toUpperCase()=="TEXT"){
		if (elem.value.indexOf (',') > -1){
			// cambio comas por puntos
			var str = elem.value;
			elem.value = str.replace(",", ".");	// cambio comas por puntos
		}

		var tipo = elem.getAttribute("_tipo");
    if (tipo == 'Float25' || tipo == 'Int' || tipo == 'Float'){
		  if (trim(elem.value) == ""){
			    elem.value = "0";
      }
    }

		if (trim(elem.value.substring (0, 1)) == "."){
			elem.value = elem.value.replace(".", "0.");	// le pongo el cero delante
		}

		if (tipo!=""){
			var ret = false;
			try{
//alert ("ret=valida"+tipo+"('"+elem.value+"')");
//alert (elem.name);
				eval("ret=valida"+tipo+"('"+escape(trim(elem.value))+"')");
				if(ret){
     				return true;
				}
				var txterror = elem.getAttribute("_msgErr");
        //
        // si es un numero corresponde al numero de error del switch de traduccion
        //
        if ( validaIntNE (txterror) ){
            var numerror = parseInt(txterror);
            txterror =  dameRc (numerror);
        }else{
				  txterror += ".";
          txterror += dameRc(0);
				  txterror += trim(elem.value);
          txterror += " ";
          txterror += dameRc(1);
				  txterror += tipo;
        }
				alert(txterror);
				try{
//					elem.focus();
//					elem.select();
				}
				catch(e){}
				return false;
			}
			catch(e){
//				alert ("Tipo de dato desconocido, verifique los datos ("+ tipo + "). "+e.description);
				alert ( dameRc(2) + tipo + "). "+e.description);
				return false;
			}
		}
		return true;
	}
	return true;
}

function validaForm(oForm) {
	for (var i=0; i < oForm.elements.length; i++){
//		var res = validaElemen(oForm.elements[i]);
		var res = miValidaElemen(oForm.elements[i].name, 998);// caso especial 998 buscarlo aqui mismo
		if (res == false){
			return false;
		}
	}
	return true;
}

//////////////////////////////////////////////////////
//// valida campos form pedido, una_lenteCCC.tpl /////
//////////////////////////////////////////////////////

//_miupdates --> atributo del form que indica:
// 0 -> si no ha entrado en el focus del control (valor inicial)
// 1 -> entro pero no salio del control, este caso sacar msge pq entonces no se aplicaron los cambios en servidor mediante ajax
// 2 -> entro y salio del control

function unloadPedido ()
{
	var ok = true;
	var queojo = dimeQueOjoMarcado_w ();
	for (var i=0; i < miForm ().elements.length; i++){
		var elem = miForm ().elements[i];
		tipo = elem.type.toUpperCase();
		if (otrosControles (tipo)) continue;
//		if (tipo != "TEXT" && tipo != "RADIO") continue;
		// controlo si escojen solo un ojo pues solo valido el que sea
		if (queojo != 2){
			var queelem = dimeOjo (elem.name);
			if (queelem > -1 && queojo != queelem)
				continue;
		}
		if (elem.getAttribute("_miupdates") == 1){	// falta actualizar en servidor
			ok = false;
//			alert ("El campo en AMARILLO significa que FALTA actualizar con el servidor.\nDebes pulsar actualizar antes de cambiar de pantalla.\nSe perderan los valores en amarillo y en rojo");
			alert ( dameRc(3) );
			break;
		}
	}
}

// sumarestalaquo, si toco las flechas desde pantalla para
// aumentar el valor tengo que preveer el valor sumandole
// sumarestalaquo, no es el valor actual
function validaCampo(elem, sumarestalaquo) {

//alert(elem.name);
//EspMinTaladro

	if (elem.type.toUpperCase()!="TEXT") return true;
	if (elem.disabled == true) return true;
	var campo=99;
	// estos campos vienen de una_lenteCCC.tpl
	if (elem.name.indexOf ('Cil') > -1) 	  campo = 0;
	else if (elem.name.indexOf ('Esf') > -1)  campo = 1;
	else if (elem.name.indexOf ('Diam') > -1) campo = 2;
	else if (elem.name.indexOf ('Eje') > -1)  campo = 3;
	else if (elem.name.indexOf ('Adi') > -1)  campo = 4;
	// estos vienen de dibujaMontura.php
	else if (elem.name.indexOf ('basemontura') > -1)  		campo = 5;
	else if (elem.name.indexOf ('facialgrados') > -1)  	campo = 6;
	else if (elem.name.indexOf ('pantos') > -1)  	campo = 7;
	else if (elem.name.indexOf ('vertice') > -1) 	campo = 8;
	else if (elem.name.indexOf ('puente') > -1) 	campo = 9;
	else if (elem.name.indexOf ('dip_x') > -1) 		campo = 10;
	else if (elem.name.indexOf ('coDer_x') > -1) 	campo = 11;
	else if (elem.name.indexOf ('coIzq_x') > -1) 	campo = 12;
	else if (elem.name.indexOf ('coDer_y') > -1) 	campo = 13;
	else if (elem.name.indexOf ('coIzq_y') > -1) 	campo = 14;
	// suplementos especiales
	else if (elem.name.indexOf ('SuplePolarDerDp') > -1) 		campo = 15;
	else if (elem.name.indexOf ('SuplePolarIzqDp') > -1) 		campo = 16;
	else if (elem.name.indexOf ('SuplePolarDerAngulo') > -1) 	campo = 17;
	else if (elem.name.indexOf ('SuplePolarIzqAngulo') > -1) 	campo = 18;
	else if (elem.name.indexOf ('SupleRectDerX') > -1) 			campo = 19;
	else if (elem.name.indexOf ('SupleRectDerY') > -1) 			campo = 20;
	else if (elem.name.indexOf ('SupleRectIzqX') > -1) 			campo = 21;
	else if (elem.name.indexOf ('SupleRectIzqY') > -1) 			campo = 22;
	else if (elem.name.indexOf ('SupleBaseEspDer') > -1) 		campo = 23;
	else if (elem.name.indexOf ('SupleBaseEspIzq') > -1) 		campo = 24;
	else if (elem.name.indexOf ('EspMinCentro') > -1) 		campo = 25;
	else if (elem.name.indexOf ('EspMinTaladro') > -1) 			campo = 26;
	else if (elem.name.indexOf ('EspMinRanura') > -1) 		campo = 27;
	else if (elem.name.indexOf ('AnchoAvanzado') > -1) 			campo = 28;
	else if (elem.name.indexOf ('edAnchoDual') > -1) 			campo = 28;	 // tb esta en w_RanuraVariable.tpl
	else if (elem.name.indexOf ('edAnchoSimple') > -1) 			campo = 28;	 // tb esta en w_RanuraVariable.tpl
	else if (elem.name.indexOf ('AnguloAvanzado') > -1) 		campo = 29;
	else if (elem.name.indexOf ('ProfundoAvanzado') > -1) 		campo = 30;
	else if (elem.name.indexOf ('edProfSimple') > -1) 			campo = 30;
	else if (elem.name.indexOf ('edProfDual') > -1) 			campo = 30;	 // tb esta en w_RanuraVariable.tpl
	else if (elem.name.indexOf ('fe01_grados') > -1) 			campo = 31;	 // esta en w_RanuraVariable.tpl
	else if (elem.name.indexOf ('fe01') > -1 && elem.name.indexOf ('fe01_grados') < 0)	campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('fe02') > -1 && elem.name.indexOf ('fe02_grados') < 0 ) campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('fe03') > -1) 			campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('fe04') > -1) 			campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('fe05') > -1) 			campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('fe06') > -1) 			campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('fe07') > -1) 			campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('fe08') > -1) 			campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('fe09') > -1) 			campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('fe10') > -1) 			campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('fe11') > -1) 			campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('fe12') > -1) 			campo = 32;	 // esta en w_Solar_12.tpl
	else if (elem.name.indexOf ('CorredorSupDf') > -1) 			campo = 33;	 // w_prog_individualizado.html
	else if (elem.name.indexOf ('boxv') > -1) 			campo = 34;	 // esta en w_FormasStandar.tpl
	else if (elem.name.indexOf ('boxh') > -1) 			campo = 35;	 // esta en w_FormasStandar.tpl
	else return true;

	var msgErr="";
	var	valor = parseFloat(elem.value) + sumarestalaquo;
	var tipo = elem.getAttribute('_tipo');
	if (tipo == 'Float25'){
		var pp = valor % 0.25;
		if (pp != 0){
			campo=99; // voy abreak directamente para dar error
			msgErr="Graduaciones deben ser de cuarto en cuarto. ";
		}
	}

  switch (campo){
		case 0:
//			if (valor < -6 || valor > 6){msgErr="Cilindo debe ser superior a -6 y menor que 6 Dp.";break};
			if (valor < -6 || valor > 6){msgErr=dameRc(5);break};
			return true;
		case 1:
			return true;
		case 2:
//			if (valor < 50 || valor > 80){msgErr="Diametro debe estar entre 50 y 80 mm.";break};
			if (valor < 50 || valor > 80){msgErr=dameRc(6);break};
			return true;
		case 3:
//			if (valor < 0 || valor > 180){msgErr="Eje debe estar entre 0 y 180º";break;}
			if (valor < 0 || valor > 180){msgErr=dameRc(7);break;}
			return true;
		case 4:
//			if (valor < 0 || valor > 5){msgErr="Adicion debe estar entre 0 y 5 Dp.";break;}
			if (valor < 0 || valor > 5){msgErr=dameRc(8);break;}
			return true;
		case 5:
//			if (valor < 0 || valor > 9){msgErr="La base de la montura debe estar entre 0 y 9 Dp.";break;}
			if (valor < 0 || valor > 9){msgErr=dameRc(9);break;}
			return true;
		case 6:
//			if (valor < 0 || valor > 25){msgErr="El facial debe estar entre 0 y 25.";break;}
			if (valor < 0 || valor > 25){msgErr=dameRc(10);break;}
			return true;
		case 7:
			if (miCampo('unidadmm').checked == true){
				if (valor < 1 || valor > 6){
//					msgErr="El valor de Pantos en mm. debe estar entre 1 y 6 mm.";	break;
					msgErr=dameRc(11);	break;
				}
			}else{
				if (valor < 1 || valor > 15){
//					msgErr="El valor de Pantos en grados debe estar entre 1 y 15º";	break;
					msgErr=dameRc(12);	break;
				}
			}
			return true;
		case 8:
//			if (valor < 8 || valor > 25){msgErr="El valor de Vertice debe estar entre 8 y 25 mm.";break;}
			if (valor < 8 || valor > 25){msgErr=dameRc(13);break;}
			return true;
		case 9:
//			if (valor < 5 || valor > 25){msgErr="El valor del puente debe estar entre 5 y 25 mm.";break;}
			if (valor < 5 || valor > 25){msgErr=dameRc(14);break;}
			return true;
		case 10:
//			if (valor < 20 || valor > 80){msgErr="El valor de la dip debe estar entre 20 y 80 mm.";break;}
			if (valor < 20 || valor > 80){msgErr=dameRc(85);break;}
			return true;
		case 11:
//			if (valor < 10 || valor > 40){msgErr="Centros en horizontal debe estar entre 10 y 40 mm.";break;}
			if (valor < 10 || valor > 40){msgErr=dameRc(15);break;}
			return true;
		case 12:
//			if (valor < 10 || valor > 40){msgErr="Centros en horizontal debe estar entre 10 y 40 mm.";break;}
			if (valor < 10 || valor > 40){msgErr=dameRc(16);break;}
			return true;
		case 13:
		case 14:
			// 0.-mcvCentroBox
			if (miCampo('h_ModoCentradoV').value == 0){
				if (valor < -8 || valor > 8){
//					msgErr  ="altura vertical debe estar entre -8 y +8 mm. respecto al centro forma (";
					msgErr=dameRc(17);
					msgErr += valor + "  " + miCampo('h_ModoCentradoV').value + ").";
					break;
				}
			}
			// 1.-mcvBoxLejos, 2.-mcvMonturaLejos
			if (miCampo('h_ModoCentradoV').value == 1 || miCampo('h_ModoCentradoV').value == 2){
				if (valor < 8 || valor > 30){
//					msgErr="altura vertical debe estar entre 8 y 30 mm (";
					msgErr=dameRc(18);
					msgErr += valor + "  " + miCampo('h_ModoCentradoV').value + ").";
					break;
				}
			}
			// 3.-mcvBoxLentilla, 4.-mcvMonturaLentilla
			if (miCampo('h_ModoCentradoV').value == 3 || miCampo('h_ModoCentradoV').value == 4){
				if (valor < 6 || valor > 24){
//					msgErr="altura vertical debe estar entre 6 y 24 mm (";
					msgErr=dameRc(19);
					msgErr += valor + "  " + miCampo('h_ModoCentradoV').value + ").";
					break;
				}
			}
			return true;
			//
			// suplementos especiales
			//
		case 15:
			if (valor < 0 || valor > 5){
//				msgErr="Valores permitidos para el angulo del prisma derecho son : [0-5].";
				msgErr=dameRc(20);
				break;
			}
			return true;
		case 16:
//			if (valor < 0 || valor > 5){msgErr="Valores permitidos para el angulo del prisma izquierdo son : [0-5].";break;}
			if (valor < 0 || valor > 5){msgErr=dameRc(21);break;}
			return true;
		case 17:
//			if (valor < 0 || valor > 359){msgErr="Valores permitidos para los grados del prisma derecho son : [0-359].";break;}
			if (valor < 0 || valor > 359){msgErr=dameRc(22);break;}
			return true;
		case 18:
//			if (valor < 0 || valor > 359){msgErr="Valores permitidos para los grados del prisma izquierdo son : [0-359].";break;}
			if (valor < 0 || valor > 359){msgErr=dameRc(23);break;}
			return true;
		case 19:
//			if (valor < -10 || valor > 10){msgErr="Valores permitidos para los mm. del prisma rect.X derecho son : [-10, +10].";break;}
			if (valor < -10 || valor > 10){msgErr=dameRc(24);break;}
			return true;
		case 20:
//			if (valor < -10 || valor > 10){msgErr="Valores permitidos para los mm. del prisma rect.X izq. son : [-10, +10].";break;}
			if (valor < -10 || valor > 10){msgErr=dameRc(25);break;}
			return true;
		case 21:
//			if (valor < -10 || valor > 10){msgErr="Valores permitidos para los mm. del prisma rect.Y derecho son : [-10, +10].";break;}
			if (valor < -10 || valor > 10){msgErr=dameRc(26);break;}
			return true;
		case 22:
//			if (valor < -10 || valor > 10){msgErr="Valores permitidos para los mm. del prisma rect.Y izq. son : [-10, +10].";break;}
			if (valor < -10 || valor > 10){msgErr=dameRc(27);break;}
			return true;
		case 23:
//			if (valor < 0 || valor > 9){msgErr="Valores permitidos para la base derecha [0, 9].";break;}
			if (valor < 0 || valor > 9){msgErr=dameRc(28);break;}
			return true;
		case 24:
//			if (valor < 0 || valor > 9){msgErr="Valores permitidos para la base izquierda [0, 9].";break;}
			if (valor < 0 || valor > 9){msgErr=dameRc(29);break;}
			return true;
		case 25:
//			if (valor < 0){msgErr="Valor minimo permitido para el espesor de centro es 0mm. El valor 0 significa que nosotros lo calculamos.";break;}
			if (valor < 0){msgErr=msgErr=dameRc(30);break;}
			return true;
		case 26:
//			if (valor < 1.8){msgErr="Valor minimo permitido para el espesor minimo de taladro es 1.8mm";break;}
			if (valor < 1.8){msgErr=dameRc(31);break;}
			return true;
		case 27:
//			if (valor < 1.6){msgErr="Valor minimo permitido para el espesor minimo de ranura es 1.6mm";break;}
			if (valor < 1.6){msgErr=dameRc(32);break;}
			return true;
		case 28:
//			if (valor < 0.6 || valor > 1.5){msgErr="Intervalo permitido para el ancho especial es [0.6, 1.5mm]";break;}
			if (valor < 0.6 || valor > 1.5){msgErr=dameRc(86);break;}
			return true;
		case 29:
//			if (valor < 0 || valor > 18){msgErr="Intervalo permitido para el angulo especial es [0, 18]";break;}
			if (valor < 0 || valor > 18){msgErr=dameRc(87);break;}
			return true;
		case 30:
//			if (valor < 0.6 || valor > 1.5){msgErr="Intervalo permitido para la profundidad especial es [0.6, 1.5mm]";break;}
			if (valor < 0.6 || valor > 1.5){msgErr=dameRc(88);break;}
			return true;
		case 31:
//			if (valor < 0.6 || valor > 1.5){msgErr="Grados deben estar entre [0, 360]."}
			if (valor > 360 || valor < 0) {msgErr=dameRc(114);break;}
			return true;
		case 32:
//			if (valor < 0.6 || valor > 1.5){msgErr="Maximo valor escalon 1.5mm."}
			if (valor > 1.5 || valor < 0) {msgErr=dameRc(115);break;}
			return true;
		case 33:
			if (valor > 4 || valor < -4) {msgErr=dameRc(184);break;}
			return true;
		case 34:    // boxv
			if (valor > 80 || valor < 22) {msgErr=dameRc(186);break;}
			return true;
		case 35:    // boxh
			if (valor > 90 || valor < 22) {msgErr=dameRc(187);break;}
			return true;

		default :
			break;
	}
	alert (msgErr);
	return false;
}

function soyComboCliente (nameCampo)
{
    if (nameCampo.indexOf('Cliente') > -1){
        return true;
    }
    return false;
}

function dimeOjo (nameCampo) {
	var ojo = -1;
	if (nameCampo.indexOf('Der') > -1) 		ojo =  0;   	// dereho
	else  if (nameCampo.indexOf('Izq') > -1)ojo =  1;		// izquierdo
	else									ojo = -1;		// referencia y radio buton
	return ojo;
}

function onFocusPedido (nameCampo)
{
	if (nameCampo.indexOf('Der') > -1){
		if (nameCampo == 'CilDer' || nameCampo == 'EjeDer'
			|| nameCampo == 'EsfDer' || nameCampo == 'AdiDer' || nameCampo == 'DiamDer')
			miCampo('ojoder').checked = true;	// lo marco automaticamente
	}
	if (nameCampo.indexOf('Izq') > -1){
		if (nameCampo == 'CilIzq' || nameCampo == 'EjeIzq'
			|| nameCampo == 'EsfIzq' || nameCampo == 'AdiIzq' || nameCampo == 'DiamIzq')
			miCampo('ojoizq').checked = true;	// lo marco automaticamente
	}
//	var tipo, elem, value;
/*	if (nameCampo.indexOf('QueOjo') > -1){
		nameCampo =""+nameCampo;
		value = nameCampo.substring (6, 7);
		nameCampo = "QueOjo";
		alert (value);
		alert (nameCampo);
	}*/
	var elem;
	var ojo = dimeOjo (nameCampo);
	for (var i=0; i < miForm().elements.length; i++){
		elem = miForm().elements[i];
		if (nameCampo != elem.name) continue;
//		if (nameCampo == 'QueOjo' && elem.value != value) continue;
		var tipo = elem.type.toUpperCase();
		if (otrosControles_w (tipo)) continue;
		elem.setAttribute("_miupdates", 1);				// actualizo valor propiedad  al entrar onFocus()
//		elem.style.backgroundColor = "#FF8040"; 		// color naranja de falta sincronizar
		elem.style.backgroundColor = "#FFFF00"; 		// color naranja de falta sincronizar
		GuardaValor_AlEntrar (nameCampo, elem.value);
//		miForm().bServidor.disabled = false;
		if (tipo == "TEXT"){
			elem.select();
		}
	}
}

function GuardaValor_AlEntrar (campo, valor)
{
	miCampo('h_Modificado_Campo').value = campo;
	miCampo('h_Modificado_Valor').value = valor;
}

function CampoModificado (campo, valor)
{
	if (miCampo('h_Modificado_Campo').value == campo &&
			miCampo('h_Modificado_Valor').value == valor){
				return false;
	}
	return true;
}

function formatfloat(fl, dec, signo){
		str=""+fl;
		if (signo == true){
			if (str.indexOf("+")<0 && str.indexOf("-")<0){
				if (fl >= 0)	 	str="+"+fl;
				else			str="-"+fl;
			}
		}
        i = str.indexOf(".");
        if (i<0){
                i=str.length;
                str=str+".00000000000";
        }else{
                if(i==0){
                        i=1;
                        str="0"+str;
                }else{
                        str=str+"00000000000";
                }
        }
        return str.substring(0,i+dec);
}

// sumaunolaquo -> variable que significa que aumentamos de uno en uno, por lo tanto hay que
//	sumar o restar uno para validar el nuemo estado, por defecto sumamos 0.
function miValidaElemen(nomCampo, sumarestalaquo) { // onBlur cada elemento pantalla
	var elem;
	var find = false;

	for (var i=0; i < miForm().elements.length; i++){
		elem = miForm().elements[i];
		if (nomCampo != elem.name) continue;
		find = true;
		break;
	}

// ojo nacho
//alert (elem.name);

	if (elem.type.toUpperCase() !="TEXT"){
		return true;
	}

	if (elem.value.indexOf (',') > -1){
			// cambio comas por puntos
			var str = elem.value;
			elem.value = str.replace(",", ".");	// cambio comas por puntos
	}

	if (elem.disabled == true){
		return true;
	}

	// si no ha cambiado el contenido me voy con true y le quito el naranja
	if ( sumarestalaquo == 998){
		sumarestalaquo = 0;
	}else{
 		if (CampoModificado (nomCampo, elem.value) == false){
			elem.setAttribute("_miupdates", 0);		// como si no haya pasado nada
			elem.style.backgroundColor = "#FFFFFF";
			return true;
		}
	}
	//

	if (nomCampo == "Cliente") 	return true;	// no valido nada
	if (nomCampo == "valida") 	return true;	// viene de suplementos.html

	if (miGetElementById('diamNorLenteDer_w') != null){	// estoy en version onlineweb
		ponNormaInterrogante_w (nomCampo);
	}
	var ok = false;
	if (find == true){
		if (validaElemen(elem)){
			if (validaCampo(elem, sumarestalaquo)){
				ok = true;
				var tipo = elem.getAttribute('_tipo');
				if (tipo == 'Float25'){
					elem.value = formatfloat(elem.value, 3, true);
				}
			}

		}
		var color;
		if (ok == false && sumarestalaquo == 0){
			 color = "#FF0000"; 	// color rojo error
//			 elem.focus();			// lo selecciono
//		}else if (elem.getAttribute("_miupdates")==1) color = "#FF8040"; // naranja falta actualizar
		}else if (elem.getAttribute("_miupdates")==1) color = "#FFFF00"; // naranja falta actualizar
		else color = "#FFFFFF"; // normal sin error
		elem.style.backgroundColor = color;
	}
	return ok;
}

function ponNormaInterrogante_w (nomCampo)
{
	if (nomCampo != "EsfDer"    &&
		nomCampo != "EsfIzq"    &&
		nomCampo != "CilDer"    &&
		nomCampo != "CilIzq" 	&&
		nomCampo != "AdiDer"    &&
		nomCampo != "AdiIzq" 	)
			return;


	var ig = miCampo('ComboGamasDer').selectedIndex;
	if (ig < 0) return;
	var gama = miCampo('ComboGamasDer').options[ig].value;
	if (gama < 0){
		miGetElementById('diamNorLenteDer_w').innerHTML = "";
		miGetElementById('diamNorLenteIzq_w').innerHTML = "";
 		return;
	}
	var ojo = dimeOjo (nomCampo);
	var queojo = dimeQueOjoMarcado_w ();
	var cc = '<a href="#" onclick ="javascript:SetServidor_w(';
	cc += "'consultaNorma'";
	cc +=');"><img src="img/interrogante.gif" width="16" height="16" border="0" /></a>';
	if (ojo == 0){
		if ( queojo == 0 || queojo == 2){
			miGetElementById('diamNorLenteDer_w').innerHTML = cc;
		}else{
			miGetElementById('diamNorLenteDer_w').innerHTML = "";
		}
	}
	if (ojo == 1){
		if ( queojo == 1 || queojo == 2 ){
			miGetElementById('diamNorLenteIzq_w').innerHTML = cc;
		}else{
			miGetElementById('diamNorLenteIzq_w').innerHTML = "";
		}
	}
}


////////////////////////////////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////


function dimeQueOjoMarcado_w () {
	var queojo = -1;
	var od = miCampo('ojoder').checked;
	var oi = miCampo('ojoizq').checked;
	if (od && oi) queojo = 2;
	else if (od) queojo = 0;
	else if (oi) queojo = 1;
	return queojo;
}

function otrosControles_w (tipo) {
	// solo analizo text y el combo de clientes
	if (tipo != "TEXT" && tipo != "SELECT-ONE"){
		 return true;
	}
	return false;
}

function unloadPedido_w ()
{
	var ok = true;
	var queojo = dimeQueOjoMarcado_w ();
	for (var i=0; i < miForm ().elements.length; i++){
		var elem = miForm ().elements[i];
		tipo = elem.type.toUpperCase();
		if (otrosControles_w (tipo)) continue;
//		if (tipo != "TEXT" && tipo != "RADIO") continue;
		// controlo si escojen solo un ojo pues solo valido el que sea
		if (queojo != 2){
			var queelem = dimeOjo (elem.name);
			if (queelem > -1 && queojo != queelem)
				continue;
		}
		if (elem.getAttribute("_miupdates") == 1){	// falta actualizar en servidor
			ok = false;
//			alert ("El valor en AMARILLO significa que FALTA actualizar con el servidor.\nDebes pulsar actualizar antes de cambiar de pantalla.\nSe perderan los valores en amarillo y en rojo");
			alert (dameRc(35));
			break;
		}
	}
}

function entraIdenificacionUsuario_w (){

	PonEsperando (1);
	var iu = miCampo('identusuario').value.toUpperCase();
	window.setTimeout("con_CampoPedido.connect('ajax/w_ponIdentUsuario.php', 'GET', 'identusuario="+iu+"', fin_QueOjo_w)", 0);
}

function RetenerPedidos_w () {
	var haysele = false;
	var pedidosretener = "";
	for (var i=0; i < miForm ().elements.length; i++){
		if (miForm ().elements[i].getAttribute("_tipo") != 'micheckbox')
			continue;
		if (miForm ().elements[i].checked == true){
			haysele = true;
			var situ = miForm ().elements[i].getAttribute("_situacion");
			if ( situ != 0 ) {	// solo los que estan en pendientes
				continue;
			}
			pedidosretener += miForm ().elements[i].getAttribute("_numpedido");
			pedidosretener += ";";	// separados por punto y coma
		}
	}
	if (haysele){
		onLocationHref_w('index.php?param=pedidos&tabsituacion=1&pedidosretener='+pedidosretener);
	}
}

function BorraSele_w () {
	var haysele = false;
	var pedidosborrar = "";
	for (var i=0; i < miForm ().elements.length; i++){
		if (miForm ().elements[i].getAttribute("_tipo") != 'micheckbox')
			continue;
		if (miForm ().elements[i].checked == true){
			haysele = true;
			var situ = miForm ().elements[i].getAttribute("_situacion");
			if ( situ == 3 || situ == 6 ) {	// en fabrica o enviado no se puede borrar
				continue;
			}
			pedidosborrar += miForm ().elements[i].getAttribute("_numpedido");
			pedidosborrar += ";";	// separados por punto y coma
		}
	}
	if (haysele){
		onLocationHref_w('index.php?param=pedidos&tabsituacion=1&pedidoborrar='+pedidosborrar);
	}
}

function EditarPedido_w (lectura) {
	  var haysele = false;
	  var pedido = "";
	  var cliente = -1;
	  var situacion = -1;

/*var e = Form.getElements(fm_pedido);
for (i=0; i < e.length; i++ ){
	alert (i);
} */


	  for (var i=0; i < miForm ().elements.length; i++){
		  if (miForm ().elements[i].getAttribute("_tipo") != 'micheckbox')
			  continue;
		  if (miForm ().elements[i].checked == true){
			  haysele = true;
			  pedido = miForm ().elements[i].getAttribute("_numpedido");
			  cliente = miForm ().elements[i].getAttribute("_cliente");
			  empresa = miForm ().elements[i].getAttribute("_empresa");
			  situacion = miForm ().elements[i].getAttribute("_situacion");
			  break;
		  }
	  }
	  // caso de situacion de ERROR
	  if (situacion == 44){
		  lectura = 0;	// lo trato como si fuera una modificacion de un pedido en pendientes
	  }

	  if (haysele){
		  if (lectura == 0)
		    onLocationHref_w('index.php?param=mipedido&tabpedido=0&empresaleer='+empresa+'&pedidoleer='+pedido+'&cliente='+cliente+'&dependientes=1'+'&situacion='+situacion);
		else{
			var quetabs="";
			var churro = 'index.php?param=mipedido&tabpedido=0&empresaleer='+empresa+'&pedidoleer='+pedido+'&cliente='+cliente;
			if (miGetElementById ('QueTabs') != null){
				quetabs = miCampo('QueTabs').value;
		  		churro += "&QueTabs=" +quetabs;
		  		if (quetabs == "pedidoshistoricomysql" || quetabs == "pedidosgestion"){
		  			churro += "&copiadehistorico=1";
		  		}else{
		  			churro += "&lectura=1";
		  		}
			}
	  		onLocationHref_w(churro);
		}
	}
}

function ImprimeAbono_w (pedido, empresa, cliente, albaranprats)
{
	// abono == 1  --> es para entrar un abono
	// abono == 0  --> es para sacar una copia del impreso del albaran

	var quepant = "";
	if (miGetElementById ('QueTabs') != null){
		quepant = miCampo('QueTabs').value;
	}

  var esabono = false;
	if (quepant == 'w_solicita_abono.tpl'){		// puedo tb venir de   pedidosgestionabonos
		var sele = false;
		for (var ib=0; ib < miForm().RadioGroup1.length; ib++){
			if (miForm().RadioGroup1[ib].checked){
				sele = true;
				break;
			}
		}
		if (sele == false){
			alert (dameRc(118));
			return;
		}
    esabono = true;
	}

	var str = '&quecambia=enviaabonowebservice';
	str += "&selpedido=(";
	str += pedido;
	str += ")";
	str += '&cliente=';
	str += cliente;
	str += '&empresa=';
	str += empresa;
	str += '&albaranprats=';
	str += albaranprats;
  if (esabono == true){
    str += '&esabono=1';
  }

	PonEsperando (1);

  //alert (str);

	// al volver de ajax va a la etiqueta --> xml_muestra_abono_jpg

	window.setTimeout("con_onEnviaPedidos.connect('enviaAbonosWebService.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function SolicitaAbono_w (abono)
{
	// viene de w_pedidos_encurso.tpl
	// abono == 1  --> es para entrar un abono
	// abono == 0  --> es para sacar una copia del impreso del albaran

	var haysele = false;
	var pedidosel = "";
	var pedido, cliente, empresa, albaranprats;
	for (var i=0; i < miForm ().elements.length; i++){
		if (miForm ().elements[i].getAttribute("_tipo") != 'micheckbox')
			continue;
		if (miForm ().elements[i].checked == true){
			haysele = true;
			var situ = miForm ().elements[i].getAttribute("_situacion");
			if ( situ != 10 && situ != 9 ) {	// solo facturados
				alert (dameRc(105));
				return;
			}
			pedido = miForm ().elements[i].getAttribute("_numpedido");
			cliente = miForm ().elements[i].getAttribute("_cliente");
			empresa = miForm ().elements[i].getAttribute("_empresa");
			albaranprats = miForm ().elements[i].getAttribute("_albaranprats");
		}
	}

	if (trim(albaranprats) == "" ){
		alert (dameRc(116));
		return;
	}
	if (haysele){

		if (abono == 0){	// solo impresion abono
			ImprimeAbono_w (pedido, empresa, cliente, albaranprats);
			return;
		}

		var quetabs = "";
		if (miGetElementById ('QueTabs') != null){
			quetabs = miCampo('QueTabs').value;
		}

		var str = "index.php?param=onlineweb&quepantalla=w_solicita_abono.tpl";
		str += '&empresaleer=';
		str += empresa;
		str += '&pedidoleer=';
		str += pedido;
		str += '&cliente=';
		str += cliente;
		str += '&QueTabs=';
		str += quetabs;
		str += '&albaranprats=';
		str += albaranprats;

//alert (quetabs);

		PonEsperando (1);
		onLocationHref_w(str);
	}
}

function  ocultoUploadFile ()
{
	document.form_subearchivo.ruta.value = document.form_subearchivo.fileUpload.value;
}

var con_resultadoUpload_w = new XHConn();
var fin_resultadoUpload_w = function (oXML) {
	miGetElementById('formUpload').innerHTML = oXML.responseText;
};

function controlMsgUpload_w (estado, file) {
	var link = '<br><br><img border="0" src="img/cargando2.gif" width="16" height="16">';

//	if (estado == 0) var mensaje = '</a> El archivo '+file+' se ha subido al servidor correctamente, importandolo a base de datos. ' + link;
  if (estado == 0) var mensaje = dameRc(36) + link;
	if (estado == 1) var mensaje = dameRc(37) + file;
	if (estado == 2) var mensaje = dameRc(38) + file;
	if (estado == 3) var mensaje = dameRc(39) + file;
	miGetElementById('formUpload').innerHTML=mensaje;
}

function resultadoUpload_w (estado, file) {
	controlMsgUpload_w (estado, file);
	if (estado == 0){	// sin error
		window.setTimeout("con_resultadoUpload_w.connect('w_importarPedidosXml.php', 'GET', 'archivoxml="+file+"', fin_resultadoUpload_w)", 1000);
	}else{
		var txt = '<br><br><a class="verdana txt9 color_azul" href="index.php?param=pedidos&tabsituacion=1"><b>';
    txt += dameRc(40);
    txt += '</b></a></td>';
		miGetElementById('formUpload').innerHTML += txt;
	}
}

var fin_resultadoUpload2_w = function (oXML) {
	onLocationHref_w('index.php?param=mipedido');
};

function resultadoUpload2_w (estado, file) {
	controlMsgUpload_w (estado, file);
//	alert ("pues si yata");
	if (estado == 0){	// sin error
		window.setTimeout("con_resultadoUpload_w.connect('w_importarFormaXml.php', 'GET', 'archivoxml="+file+"', fin_resultadoUpload2_w)", 1000);
	}else{
		var txt = '<br><br><a class="verdana txt9 color_azul" href="index.php?param=mipedido"><b>';
    txt += dameRc(40);
    txt += '</b></a></td>';
		miGetElementById('formUpload').innerHTML += txt;
	}
}

function createDocumet() {
	var aVersions = [ "MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0",
			"MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument",	"Microsoft.XmlDom"];
	for (var i=0; i < aVersions.length; i++){
		try{
			var oXmlDom = new ActiveXObject(aVersions[i]);
			return oXmlDom;
		}
		catch (oError){
				// no hacer nada
		}
	}
	throw new Error ("MSXML no esta instalado");
}

function trataNodoFiltroGamas (oNodo) {
	var encontrada = false;
	var select = miCampo('ComboGamasDer');
	select.options.length = 0;
	var gamaSeleccionada = -1;

 	for (var i=0; i < oNodo.childNodes.length; i++){

		var o = oNodo.childNodes[i];

		if (i==0){
			gamaSeleccionada = miTextXml (o.childNodes[0]);		// viene la gama actual seleccionada
//			gamaSeleccionada = o.childNodes[0].text;		// viene la gama actual seleccionada
			continue;
		}

// ojo nacho
//alert(miTextXml (o.childNodes[0]) + "  -  " + miTextXml (o.childNodes[1]));


		var oOption = new Option (miTextXml (o.childNodes[1]), miTextXml (o.childNodes[0]) );
//		var oOption = new Option (o.childNodes[1].text, o.childNodes[0].text);
//    if (miTextXml(o.childNodes[2]).length > 2){
      oOption.style.color = miTextXml(o.childNodes[2]);
//    }

		select.options.add (oOption);
		if ( gamaSeleccionada == miTextXml (o.childNodes[0]) ){
//		if ( gamaSeleccionada == o.childNodes[0].text ){
			encontrada = true;
			select.options[select.length-1].selected=true;
		}
	}
	if (encontrada == false && select.length > 0){
		var txt = "gama: (" + trim(gamaSeleccionada) +")";
		var oOption = new Option (txt, gamaSeleccionada);
		select.options.add (oOption);
		select.options[select.length-1].selected=true;
	}
}

function trataNodoTonos_w (oNodo) {
	var txt = "no esta definido el nodo xml hijo de <";
	txt += oNodo.nodeName;
	txt += "> --> ";
	var cb_tonos = miCampo('ComboTonos');
 	for (var i=0; i < oNodo.childNodes.length; i++){
		var o = oNodo.childNodes[i];

		var tipo = miTextXml (o.childNodes[0]);		// viene el tipo
		var subtipo = miTextXml (o.childNodes[1]);	// viene el subtipo
		var nombre =  miTextXml (o.childNodes[2]);	// viene el nombre del tratamien
		var seleccionado = miTextXml (o.childNodes[3]);	// viene es o no el seleccionado

		var oOption = new Option (nombre, tipo+""+subtipo);
		cb_tonos.options.add (oOption);
		if ( seleccionado == 1 ){
			cb_tonos.options[cb_tonos.length-1].selected=true;
		}
	}
}

function trataNodoColores_w (oNodo) {
	var txt = "no esta definido el nodo xml hijo de <";
	txt += oNodo.nodeName;
	txt += "> --> ";
	var cb_colors = miCampo('ComboColores');
 	for (var i=0; i < oNodo.childNodes.length; i++){
		var o = oNodo.childNodes[i];
		var tipo = miTextXml (o.childNodes[0]);		// viene el tipo
		var subtipo = miTextXml (o.childNodes[1]);	// viene el subtipo
		var nombre =  miTextXml (o.childNodes[2]);	// viene el nombre del tratamien
		var seleccionado = miTextXml (o.childNodes[3]);	// viene el nombre del tratamien

		var oOption = new Option (nombre, tipo+""+subtipo);
		cb_colors.options.add (oOption);
		if ( seleccionado == 1 ){
			cb_colors.options[cb_colors.length-1].selected=true;
		}
	}
}

function seleccionar_todos ()
{
    var si = (miCampo('cb_sel_todos').checked == true);
	  for (var i=0; i < miForm ().elements.length; i++){
		    if (miForm ().elements[i].getAttribute("_tipo") != 'micheckbox')
			    continue;
			  var situ = miForm ().elements[i].getAttribute("_situacion");
			  if ( situ != 0 ) {	// solo los que estan en pendientes
				    continue;
			  }
        miForm ().elements[i].checked = si;
    }
    if (si == true){
        miGetElementById('id_sel_todos').innerHTML = dameRc (190);
    }else{
        miGetElementById('id_sel_todos').innerHTML = dameRc (189);
    }
}

function trataNodoOrgadures_w (oNodo) {
	var txt = "no esta definido el nodo xml hijo de <";
	txt += oNodo.nodeName;
	txt += "> --> ";

	if (oNodo.childNodes.length	== 0){
		miCampo('cb_orgadur').disabled = true;
		miCampo('cb_orgadur2').disabled = true;
		miCampo('cb_orgadur').checked = false;
		miCampo('cb_orgadur2').checked = false;
	}

 	for (var i=0; i < oNodo.childNodes.length; i++){
		var o = oNodo.childNodes[i];
		var tipo = miTextXml (o.childNodes[0]);		// viene el tipo
		var subtipo = miTextXml (o.childNodes[1]);	// viene el subtipo
		var nombre =  miTextXml (o.childNodes[2]);	// viene el nombre del tratamien
		var seleccionado = miTextXml (o.childNodes[3]);	// viene el nombre del tratamien

		if (tipo == 51){
			miCampo('cb_orgadur').value = tipo+""+subtipo;
			miCampo('cb_orgadur').disabled = false;
			if ( seleccionado == 1 ){
				miCampo('cb_orgadur').checked = true;
			}else{
				miCampo('cb_orgadur').checked = false;
			}
		}else{
			miCampo('cb_orgadur2').value = tipo+""+subtipo;
			miCampo('cb_orgadur2').disabled = false;
			if ( seleccionado == 1 ){
				miCampo('cb_orgadur2').checked = true;
			}else{
				miCampo('cb_orgadur2').checked = false;
			}
		}
	}
}

function trataNodoTratamien_w (oNodo) {
	var txt = "no esta definido el nodo xml hijo de <";
	txt += oNodo.nodeName;
	txt += "> --> ";
	var cb_trats = miCampo('ComboTrats');
 	for (var i=0; i < oNodo.childNodes.length; i++){
		var o = oNodo.childNodes[i];
		var tipo = miTextXml (o.childNodes[0]);		// viene el tipo
		var subtipo = miTextXml (o.childNodes[1]);	// viene el subtipo
		var nombre =  miTextXml (o.childNodes[2]);	// viene el nombre del tratamien
		var seleccionado = miTextXml (o.childNodes[3]);	// viene el nombre del tratamien

		var oOption = new Option (nombre, tipo+""+subtipo);
		cb_trats.options.add (oOption);
		if ( seleccionado == 1 ){
			cb_trats.options[cb_trats.length-1].selected=true;
		}
	}
}

function trataNodoActualizaValores_w (oNodo) {

	// si estoy en el html showmodal del imax no refresco
	if (miGetElementById ('IdEstoyEnHtmlParamsImax') != null){
		return;
	}
	// si estoy en el html showmodal de los suplementos no refresco
	if (miGetElementById ('IdEstoyEnHtmlSuples') != null){
		return;
	}
	//
	var elem, indice, nombrecampo, exec;
//	var t_campos = obtener_valor (str, 'TotalCampos');
	for (var i=0; i < oNodo.childNodes.length; i++){
		var o = oNodo.childNodes[i];
		if (o.nodeName == "TotalCampos")	continue;

		indice = miTextXml (o.childNodes[1]);		// es el indice del elemento en el form
//alert("indice " + indice);
		elem = miForm().elements[indice];
		if (elem == null){
// ojo nacho
//			return;
			nombrecampo = miTextXml (o.childNodes[0]); 	// es el indice del elemento en el form
			exec = "elem = miForm()."+nombrecampo;
			eval (exec);
		}
		elem.setAttribute('_miupdates', 2);		// actualizo valor propiedad al salir onBlur()
		elem.style.backgroundColor = "#FFFFFF";
	}
}

function trataNodoGama_w (oNodo, quecambia) {
	var txt = "no esta definido el nodo xml hijo de <";
	txt += oNodo.nodeName;
	txt += "> --> ";
  var valor = "";
  var nombre = "";
	var bCambiaForma = false;
 	for (var i=0; i < oNodo.childNodes.length; i++){
		var o = oNodo.childNodes[i];
//alert(o.nodeName + "." + miTextXml (o) +".");
		switch (o.nodeName){
			case 'idgama': miCampo('idgama').value = trim(miTextXml (o));break;
			case 'diamNorLenteDer': miGetElementById('diamNorLenteDer_w').innerHTML = miTextXml (o);break;
			case 'diamNorLenteIzq': miGetElementById('diamNorLenteIzq_w').innerHTML = miTextXml (o);break;
			case 'DiametroMaxDer': 	miCampo('DiamDer').value = miTextXml (o);break;
			case 'DiametroMaxIzq': 	miCampo('DiamIzq').value = miTextXml (o);break;

			case 'h_PolarPermitido': miCampo('h_PolarPermitido').value = miTextXml (o);break;
			case 'h_RectPermitido':  miCampo('h_RectPermitido').value = miTextXml (o);break;
			case 'h_EspPermitido':   miCampo('h_EspPermitido').value = miTextXml (o);break;
			case 'h_BasePermitido':  miCampo('h_BasePermitido').value = miTextXml (o);break;
			case 'h_DescPermitido':  miCampo('h_DescPermitido').value = miTextXml (o);break;
			case 'otrossuplementos': miGetElementById('botonotrossuples').innerHTML = montaBotonOtrosSuples (miTextXml (o));break;
			// imax
			case 'h_dip_x':
            miCampo('h_dip_x').value = miTextXml (o);
            break;
			case 'h_coDer_y':
            miCampo('h_coDer_y').value = miTextXml (o);
            break;
			case 'h_facialgrados':	miCampo('h_facialgrados').value = miTextXml (o);break;
			case 'h_pantos':		miCampo('h_pantos').value = miTextXml (o);break;
			case 'h_vertice':		miCampo('h_vertice').value = miTextXml (o);break;
			case 'h_identusuario':	miCampo('h_identusuario').value = miTextXml (o);break;
			case 'h_puente':		miCampo('h_puente').value = miTextXml (o);break;
			case 'h_Corredor':
			case 'Corredor':	if (miGetElementById('h_Corredor') != null){
									miCampo('h_Corredor').value = miTextXml (o);
								}
								if (miGetElementById('Corredor') != null){
									miCampo('Corredor').value = miTextXml (o);
								}
								break;
			case 'h_hayforma':
								bCambiaForma = true;
								miCampo('h_hayforma').value = miTextXml (o);
								break;
			case 'h_ModoCentradoV':
								miCampo('h_ModoCentradoV').value = trim(miTextXml (o));
								break;
			//
			case '_gamatipo': 		miCampo('gamatipo').value = trim(miTextXml (o));break;
			case '_gamasubtipo': 	miCampo('gamasubtipo').value = trim(miTextXml (o));
												// campos1[4] gamatipo y campos1[5] gamasubtipo
									var desactiva = (miTextXml (o) != 'EVO' && miTextXml (o) != 'SPO');
									// en miLoad () de w_prog_individualizado.html esta duplicada esta pregunta
									// en w_datosCentraje_pantos.tpl tambien esta
									// en w_datosCentraje_basefacial.tpl tambien esta
									if (miGetElementById('identusuario') != null){
										miGetElementById('identusuario').disabled = desactiva;
										miGetElementById('vertice').disabled = desactiva;
										miGetElementById('pantos').disabled = desactiva;
										miGetElementById('unidadmm').disabled = desactiva;
										miGetElementById('unidadgr').disabled = desactiva;
										miGetElementById('facialgrados').disabled = desactiva;
/*										miCampo('identusuario').disabled = desactiva;
										miForm().vertice.disabled  = desactiva;
										miForm().pantos.disabled   = desactiva;
										miForm().unidadmm.disabled = desactiva;
										miForm().unidadgr.disabled = desactiva;
										miForm().facialgrados.disabled = desactiva;*/
									}
									break;
			// si es 1 es expres sino es 0
			case 'h_norma_rigidaDer':
									miCampo('h_norma_rigidaDer').value = miTextXml (o);
									miCampo('DiamDer').disabled = (miTextXml (o) > 0);
									if (miTextXml (o) > 0){  // es expres si es 1
										miCampo('DiamDer').value = miGetElementById('diamNorLenteDer_w').innerHTML;
									}else{
										if (miCampo('DiamDer').value < 50){
											miCampo('DiamDer').value = miGetElementById('diamNorLenteDer_w').innerHTML;
										}
									}
									break;
			case 'h_norma_rigidaIzq':
									miCampo('h_norma_rigidaIzq').value = miTextXml (o);
									miCampo('DiamIzq').disabled = (miTextXml (o) > 0);
									if (miTextXml (o) > 0){  // es expres si es 1
										miCampo('DiamIzq').value = miGetElementById('diamNorLenteIzq_w').innerHTML;
									}else{
										if (miCampo('DiamIzq').value < 50){
											miCampo('DiamIzq').value = miGetElementById('diamNorLenteIzq_w').innerHTML;
										}
									}
									break;
			case 'div_norma_rigida':
									if (miGetElementById('div_norma_rigida') != null){
										miGetElementById('div_norma_rigida').innerHTML = "norma"+miTextXml (o);
									}
									break;
			case 'tonos': 			trataNodoTonos_w (o);break;
			case 'colores': 		trataNodoColores_w (o);break;
			case 'tratamien': 		trataNodoTratamien_w (o);break;
			case 'orgadures':		trataNodoOrgadures_w (o);break;
      case 'CorredorSupDf':
      case 'h_CorredorSupDf':
              if (miGetElementById('h_CorredorSupDf') != null){
									miCampo('h_CorredorSupDf').value = miTextXml (o);
							}
              if (miGetElementById('CorredorSupDf') != null){
									miCampo('CorredorSupDf').value = miTextXml (o);
							}
              break;
			case 'id_zona_receta':
			      if (miGetElementById('id_zona_receta') != null){
              valor = miTextXml (o);
              if (valor == ""){
							    miGetElementById('id_zona_receta').className = "color_azul";
							    miGetElementById('id_nombre_campanya').innerHTML = "&nbsp;";
              }else{
							    miGetElementById('id_zona_receta').className = "img_zona_receta";
							    miGetElementById('id_nombre_campanya').innerHTML = "&nbsp;&nbsp;" + valor;
			            if (miGetElementById('id_fin_ped_salir_1') != null){
			                miGetElementById('id_fin_ped_salir_1').innerHTML = "&nbsp;";
                      miGetElementById('id_fin_ped_salir_2').innerHTML = "&nbsp;";
                  }
              }
            }
          break;
      case 'bloquea_add_campanya':
			      if (miGetElementById('AdiDer') != null){
                var dis = (miTextXml (o) == 1);
                miGetElementById('AdiDer').disabled = dis;
                miGetElementById('AdiIzq').disabled = dis;
            }
          break;
      case 'id_vinculo_campanya':
			      if (miGetElementById('id_vinculo_campanya') != null){
                valor = miTextXml (o);
                if (valor != ""){
                    miGetElementById('id_vinculo_campanya').innerHTML = miTextXml (o);
			              if (miGetElementById('id_fin_ped_salir_1') != null){
			                  miGetElementById('id_fin_ped_salir_1').innerHTML = "&nbsp;";
                        miGetElementById('id_fin_ped_salir_2').innerHTML = "&nbsp;";
                    }
                }
            }
            break;
			case 'id_color_campanya':
			      if (miGetElementById('id_nombre_campanya') != null){
              valor = miTextXml (o);
              if (valor != ""){
							    miGetElementById('id_nombre_campanya').style.color = valor;
              }
            }
          break;
/*			case 'id_iconocampanya':
			      if (miGetElementById('id_iconocampanya') != null){
              valor = miTextXml (o);
              if (valor != ""){
							    miGetElementById('id_iconocampanya').innerHTML = valor;
              }
            }
          break;*/
			default:				alert (txt + "<" + o.nodeName + ">");
		}
	}
	//
	// y se trata de cualquier imax
	if (quecambia == 'idgama' || bCambiaForma == true){
		if (miCampo('h_norma_rigidaDer').value == 1 || miCampo('h_norma_rigidaIzq').value == 1){
			miCampo('DiamDer').disabled = true;
			miCampo('DiamIzq').disabled = true;
		}else{
			if (miCampo('h_hayforma').value == false){
				miCampo('DiamDer').disabled = false;
				miCampo('DiamIzq').disabled = false;
			}else{
				miCampo('DiamDer').disabled = true;
				miCampo('DiamIzq').disabled = true;
			}
		}
		//
    // imax impresion o evolta
		if (miCampo('gamatipo').value == 'T' || miCampo('gamasubtipo').value == 'ILT' || miCampo('gamasubtipo').value == 'EVT'){
//
// IMAX e IMPRESION parametros especiales
// SI NO HAY FORMA
// 1.=ver codigo funcion fin_SetServidor_w codigo repetido
// 2.=ver codigo funcion trataNodoGama_w
// 3.=y en receta.tpl tb estan los mismos ifs
// 4.=y en TValidaPedido.php tb estan los mismos ifs
// 5.=y en progresivoindividualizadfo.html tb estan los mismos ifs
			if (miCampo('h_hayforma').value == false){
				// caso impresion
				if (miCampo('gamasubtipo').value == 'ILT' || miCampo('gamasubtipo').value == 'EVT'){
					var yaHaEntradoDatosImax = miCampo('h_dip_x').value > 45; // no necesita alturas
					if (quecambia != 'consultaNorma' && yaHaEntradoDatosImax == false){
						abreModalImax ();
					}
				}else{
					// caso imax
					if (miCampo('gamasubtipo').value != 'FF4' &&
							miCampo('gamasubtipo').value != 'FF6'){
							// mostramos pantalla progresivos individualizados
							var yaHaEntradoDatosImax = (miCampo('h_dip_x').value > 45 && miCampo('h_coDer_y').value > 5);
							if (quecambia != 'consultaNorma' && yaHaEntradoDatosImax == false){
								abreModalImax ();
							}
					}
				}
			}
		}
	}
}

function montaBotonOtrosSuples (siboton){
	var div = '<table width="115" border="0" cellspacing="0" cellpadding="0"><tr>';
	if (trim(siboton) == "1"){
		div += '<td width="18"><a href="#" onclick="javascript:abreModalSuplementos ();">';
		div += '<img src="img/bot_azul.gif" width="18" height="14" border="0" /></a></td>';
		div += '<td width="97" class="verdana txt9">&nbsp;';
		div += dameRc(107) + ' </td>';	// otros suplementos
	}else{
		div += '<td width="18">&nbsp;</td>';
		div += '<td width="97" class="verdana txt9">';
		div += dameRc(108) + ' </td>';		// gama no admite suplementos</td>';
	}
	div += '</tr>';
	return div;
}

function montaInputEspesores_w (campo, valor){
	var pp = '<input name="';
	pp += campo;
	pp += '" id="';
  pp += campo;
  pp += '" type="text" disabled class="menu_input2" _tipo="Float" value="';
	pp += valor;
	pp += '">';
	return pp;
}

function montaInputFacetas_w (campo, valor){
	var pp = '<input name="';
	pp += campo;
  pp += '" id="';
  pp += campo;
	pp += '" type="text" class="menu_input2" _tipo="Int" value="';
	pp += valor;
	pp += '" ';
	pp += 'onFocus="javascript:seleccioname(';
	pp += "'fm_pedido', '";
	pp += campo;
	pp += "');";
	pp += '" onBlur="javascript:refrescaDibujoPorValor_w(';
	pp += "'";
	pp += campo;
	pp += "');";
	pp += '" >';
//(alert (pp);
	return pp;
}


var con_SetServidor_w = new XHConn();
var fin_SetServidor_w = function (oXML) {

// debug nacho --> va bien activarlo cuando hay un error y no lo  vemos
if (solodebug2 == 1){
	alert ("fin_SetServidor_w: " + oXML.responseText);
}

/*  var que = QueExplorador ();
  if (que == 'Firefox'){
      alert (oXML.responseText);
	    try{             // viene xml mal formado
        var scs=oXML.responseText.extractScript();
        scs.evalScript();
	    }
	    catch(e){
        alert ("firefox: " + e.description);
      }
  }*/


	var codigoJs = "";     // codigo javascript a interpretar despues de ajax
	var txterr = "";
//	var trataImax = false;
	var ModoServidor = 0; // por 0.- defecto normal, 1.- seria programa externo
	var bajaFichero = "";
	var href_nodo = "";
	var strparametros = "";
	var hrefmequedo = false;
	var vengoDeNodeName	= "";
	var setGrabapedido = false;
	var estoyenmipedido = (miGetElementById ('IdEstoyEnMiPedido') != null);

	var txt = "no esta definido el nodo xml hijo de <";
	txt += oXML.nodeName;
	txt += "> --> ";
	var quecambia = "";
 	var xmlDoc = oXML.responseXML.documentElement;			// <mixml>
	var len = 0;
	try{             // viene xml mal formado
		len = xmlDoc.childNodes.length;
	}
	catch(e){
		alert (e.description+ "\n"+oXML.responseText);
//		alert (oXML.responseText);
		PonEsperando (0);
		if (miGetElementById('DibujaIdsMontura') != null){
			miGetElementById('DibujaIdsMontura').innerHTML = "";
		}
		return;
	}
 	for (var i=0; i < xmlDoc.childNodes.length; i++){		// nivel 1 inferior
		var o = xmlDoc.childNodes[i];

// ojo nacho
if (solodebug2 == 1){
	alert (o.nodeName);
}

		switch (o.nodeName){
			case 'mialert':
				alert (miTextXml (o));
 				break;
			case 'ModoServidor':
				ModoServidor = miTextXml (o);
 				break;
			case 'finModoServidor':
				if (miTextXml (o) == 999){
//					window.close();
				}
				break;
			case 'valida_pedido_webservice':
				hrefmequedo=true;
if (solodebug3==1){
	alert (".-VENGO (valida_pedido_webservice) web -> .- VOY (ValidaPedidoWebService), pedido:" + miTextXml (o) );
}
				ValidaPedidoWebService (miTextXml (o));
				break;
			case 'graba_pedido_webservice':
if (solodebug3==1){
	alert (".- VENGO (graba_pedido_webservice) web -> .- VOY (GrabaPedidoWebService), pedido: " + miTextXml (o) );
}
//				var java_fun = eval(miTextXml (o));
//				java_fun ();
				GrabaPedidoWebService (miTextXml (o));
				break;
			case 'href_nodo':
				href_nodo = miTextXml (o);
				break;
      case 'add_gama_favoritos':
        alert (miTextXml (o));
        break;
			case 'add_ojo_click':
				miGetElementById('IdOjo').innerHTML = "";break;
			case 'valder_click':
			case 'valizq_click':
				if (o.nodeName == 'valder_click') 	miGetElementById('IdOjoDer').innerHTML = miTextXml (o);
				else								miGetElementById('IdOjoIzq').innerHTML = miTextXml (o);
				var div = '<div id=IdOjo align="center">'+miTextXml (o)+"</div>";
				miGetElementById('IdOjo').innerHTML = div;
				break;
			case 'esfder_click': miCampo('EsfDer').value = miTextXml (o);break;
			case 'cilder_click': miCampo('CilDer').value = miTextXml (o);break;
			case 'diader_click': miCampo('DiamDer').value = miTextXml (o);break;
			case 'esfizq_click': miCampo('EsfIzq').value = miTextXml (o);break;
			case 'cilizq_click': miCampo('CilIzq').value = miTextXml (o);break;
			case 'diaizq_click': miCampo('DiamIzq').value = miTextXml (o);break;
			case 'adicion_click':	break; // le hago caso a las etiquetas de abajo
			case 'adider_click':
				miGetElementById('IdAdiDer').innerHTML = 'Adicion: ' + miTextXml (o) + '  ';
				miCampo('AdiDer').value = miTextXml (o);
				break;
			case 'adiizq_click': miGetElementById('IdAdiIzq').innerHTML = 'Adicion: ' + miTextXml (o) + '  ';
				miCampo('AdiIzq').value = miTextXml (o);
				break;
			case 'diamder':
			     	miCampo('DiamDer').value = miTextXml (o);
				break;
			case 'diamizq':
			     	miCampo('DiamIzq').value = miTextXml (o);
				break;
			case 'coDer_y_pant':
				if (miGetElementById('coDer_y_pant') != null){
					miCampo('coDer_y_pant').value = miTextXml (o);
				}
				break;
			case 'coIzq_y_pant':
				if (miGetElementById('coIzq_y_pant') != null){
					miCampo('coIzq_y_pant').value = miTextXml (o);
				}
				break;
			case 'h_Corredor':
			case 'Corredor':
				if (miGetElementById('h_Corredor') != null){
					miCampo('h_Corredor').value = miTextXml (o);
				}
				if (miGetElementById('Corredor') != null){
					miCampo('Corredor').value = miTextXml (o);
				}
				break;
			case 'errores_echo':
				txterr = trim (miTextXml (o));
				if (txterr.length > 0){
					txterr = "_echo: " + txterr;
					alert (txterr);
				}
				break;
			case 'clienteNuevoPedido':
					var txt = parseInt(miTextXml (o));
				  if (txt == 1){
              alert ("ok");
          }else{
              alert ("igual que estaba");
          }
				break;
			case 'nuevoUsuario':	// lo debo añadir en el combo
				miCampo('edBorraUsuario').value = "";
				if (miTextXml (o) != ""){
					var select = miGetElementById('cbUsuarios');
					var txt = miTextXml (o) + "-" + miCampo('edNuevoNombre').value;
					var oOption = new Option (txt, miTextXml (o));
					select.options.add (oOption);
					borraItemComboMenosUno ();
					miCampo('edNuevoUsuario').value = "";
					miCampo('edNuevoNombre').value = "";
					miCampo('edBorraUsuario').value = miTextXml (o);
					select.options[select.length-1].selected = true;
				}
				break;
			case 'eliminaUsuario':
				miCampo('edBorraUsuario').value = "";
				var select = miGetElementById('cbUsuarios');
				if (miTextXml (o) == 1){
					select.options[select.selectedIndex] = null;
					if (select.length == 0){
						var oOption = new Option ("no hay usuarios", -1);
						select.options.add (oOption);
					}else{
//						alert ("Ok, usuario borrado");
						alert (dameRc(45));
						select.options[0].selected = true;
					}
				}
				break;
			case 'nuevoConCliente':	// lo debo añadir en el combo
				miCampo('edNuevoCliente').value = "";
				if (miTextXml (o) != ""){
					var select = miGetElementById('cbClientesActivos');
					var oOption = new Option (miTextXml (o), miTextXml (o));
					select.options.add (oOption);
					miCampo('edNuevoCliente').value = "";
					miCampo('edBorraCliente').value = miTextXml (o);
					select.options[select.length-1].selected = true;
				}
				break;
			case 'eliminaConCliente':
				miCampo('edBorraCliente').value = "";
				var select = miGetElementById('cbClientesActivos');
				if (miTextXml (o) == 1){
					select.options[select.selectedIndex] = null;
//					alert ("Ok, cliente borrado");
					alert (dameRc(46));
					select.options[0].selected = true;
				}
				break;
			case 'VerEspExp':
			case 'BiselarEnPrats':
			case 'entra_rotura_stock':
//				if (miTextXml (o) == 1)	alert ("Ok, datos grabados correctamente");
//				else				alert ("Error, algo fue mal, no se guardaron los cambios");
				if (miTextXml (o) == 1)	alert (dameRc(47));
				else					alert (dameRc(48));
				break;
			case 'ModoCentradoV':
			case 'ModoCentradoH':
//				if (miTextXml (o) == 1)	alert ("Ok, datos centrado grabados correctamente");
//				else				alert ("Error, algo fue mal, no se guardaron los cambios");
				if (miTextXml (o) == 1)	alert (dameRc(47));
				else				alert (dameRc(48));
				break;
			case 'ParamsTracer':
//				if (miTextXml (o) == 1)	alert ("Ok, datos tracer grabados correctamente");
//				else				alert ("Error, algo fue mal, no se guardaron los cambios para el tracer");
				if (miTextXml (o) == 1)	alert (dameRc(47));
				else				alert (dameRc(49));
				break;
			case 'EspesoresMinimos':
//				if (miTextXml (o) == 1)	alert ("Ok, datos espesores minimos guardados correctamente");
//				else				alert ("Error, algo fue mal, no se guardaron los espesores minimos");
				if (miTextXml (o) == 1)	alert (dameRc(47));
				else				alert (dameRc(50));
				break;
			case "div_tabsconforma":
				miGetElementById('div_tabsconforma').innerHTML =  miTextXml (o);
				break;
			case "borraForma":
//				trataImax = true;
				miGetElementById('dibujosforma').innerHTML =  "";
				miGetElementById('dibujosforma').innerHTML =  "";
				miCampo('h_hayforma').value	= false;
				break;
			case "refrescadibujo":
if (solodebug2 == 1){
	alert (miTextXml (o));
}
				break;
			case "preconsultaIdForma":		// viene de javascript:dibujaIdforma_w ()
				miGetElementById('DibujaUnaIdForma').innerHTML = miTextXml (o);
				break;
			case "preconsultaIdMontura":		// viene de javascript:dibujaIdforma_w ()
				miGetElementById('DibujaIdsMontura').innerHTML = miTextXml (o);
				break;
			case "div_errores":     // errores generales del array pon_errores de clase Tsesion
			case "div_dibujosforma": // registros de Formas y monturas y consultaEspesores (biselmontaje)
      case "div_valora_pedido":
				if (miGetElementById('dibujosforma') != null){
					miGetElementById('dibujosforma').innerHTML =  miTextXml (o);
				}
				break;
			case "div_BotonSoloTaladros":
				miGetElementById('div_BotonSoloTaladros').innerHTML =  miTextXml (o);
				break;
			case "div_datoscentraje":
				miGetElementById('dibujosforma').innerHTML =  miTextXml (o);
				break;
			case "div_detalle_gama":
				if (miGetElementById('div_tabsconforma') != null){
					miGetElementById('div_tabsconforma').innerHTML = "";
				}
				if (miGetElementById('dibujosforma') != null) miGetElementById('dibujosforma').innerHTML = miTextXml (o);
				else alert (miTextXml (o));
				break;
			case 'SupleEspDerV':   // ojo que tambien se modifica por esta otra variable  miForm().EspCenDer.value ARREGLAR
				miCampo('h_SupleEspDerV').value = miTextXml (o);
//alert (miTextXml (o));
    			break;
			case 'SupleEspIzqV':
				miCampo('h_SupleEspIzqV').value = miTextXml (o);
    			break;
			case 'div_idEspMinimos':	// espesores minimos
				miGetElementById('idEspMinimos').innerHTML = miTextXml (o);
//				alert (miTextXml (o));
				break;
			case 'SupleEspMinMont':   // ojo que tambien se modifica por esta otra variable  miForm().EspCenDer.value ARREGLAR
				miCampo('SupleEspMinMont').value = miTextXml (o);
    			break;
			case 'SupleEspMinTals':   // ojo que tambien se modifica por esta otra variable  miForm().EspCenDer.value ARREGLAR
				miCampo('SupleEspMinTals').value = miTextXml (o);
    			break;
			case "div_dibujaUnaReceta":
			case "div_dibujaBiselMontaje":
			case "div_dibujaUnPerfil":
				if (miGetElementById('DibujaUnaReceta') != null){
					miGetElementById('DibujaUnaReceta').innerHTML = miTextXml (o);
				}
				//
				if (miGetElementById('idEspCenDer') != null){
//alert (o.nodeName);
//alert ("EspCenDer " + miForm().EspCenIzq.value);
					if (miCampo('EspCenDer').value > 0.1){
	  					miGetElementById('idEspCenDer').innerHTML = montaInputEspesores_w ("SupleEspDerV", miCampo('EspCenDer').value);
					}else{
						miGetElementById('idEspCenDer').innerHTML = "nd."
					}
					if (miCampo('EspCenIzq').value > 0.1){
						miGetElementById('idEspCenIzq').innerHTML = montaInputEspesores_w ("SupleEspIzqV", miCampo('EspCenIzq').value);
					}else{
 						miGetElementById('idEspCenIzq').innerHTML = "nd."
					}
					if (miGetElementById('idFacetaDer') != null){
						if (miCampo('hFacetaDer').value > 0.1){
  	  						miGetElementById('idFacetaDer').innerHTML = montaInputFacetas_w ("FacetaDer", miCampo('hFacetaDer').value);
						}else{
 							miGetElementById('idFacetaDer').innerHTML = "nd."
						}
					}
					if (miGetElementById('idFacetaIzq') != null){
						if (miCampo('hFacetaIzq').value > 0.1){
							miGetElementById('idFacetaIzq').innerHTML = montaInputFacetas_w ("FacetaIzq", miCampo('hFacetaIzq').value);
						}else{
							miGetElementById('idFacetaIzq').innerHTML = "nd."
						}
					}
				}
				if ( (quecambia == "datoscentraje" || quecambia == "dimensionaforma") && miCampo('dondeestoy').value == '22'){
   					miGetElementById('idBoxV').innerHTML = miCampo('BoxV').value;
					miGetElementById('idBoxH').innerHTML = miCampo('BoxH').value;
					miCampo('VTdelta').value = miCampo('BoxBisV').value;
					miCampo('HTdelta').value = miCampo('BoxBisH').value;
				}
				break;
			case 'interpretaAjax':
				if (miTextXml (o) == "si"){
					codigoJs = oXML.responseText.extractScript();    //capturamos los scripts
//alert (codigoJs);
        			codigoJs.evalScript();
				}
				break;
			case 'id_botonVerSuples':
					if (miGetElementById('botonVerSuples') != null){
						if (miTextXml (o) == 1){	// hay suples
   	 						var txt = '<table width="125" border="0" cellspacing="0" cellpadding="0"><tr>';
              				txt += '<td width="18"><a href="#" onclick="javascript:abreModalSuplementos ();">';
        					txt += '<img src="img/bot_rojo.gif" width="18" height="14" border="0" /></a></td>';
        					txt += '<td width="97" class="verdana negrita rojo">&nbsp;';
        					txt +=	dameRc(106) + '</td></tr></table>';	// "hay suplementos"
/*              				var txt = '<a href="#" alt="Ver suplementos especiales" onclick="javascript:abreModalSuplementos ();">';
              				txt += '<img src="img/bot_rojo.gif" width="18" border="0" />Hay suplementos</a>';*/
							miGetElementById('botonVerSuples').innerHTML = txt;
						}else{
   	 						var txt = '<table width="125" border="0" cellspacing="0" cellpadding="0"><tr>';
              				txt += '<td width="18">&nbsp;</td><td width="97">&nbsp;</td></tr></table>';;
							miGetElementById('botonVerSuples').innerHTML = "";
						}
					}
				break;
			case 'dondeestoy':			miCampo('dondeestoy').value = miTextXml (o);break;
			case 'quecambia': 			quecambia = miTextXml (o); break;
			case 'gama': 				trataNodoGama_w (o, quecambia); break;
			case 'permite_pulido':
									if (miGetElementById('cb_Pulido') != null){
										if (miTextXml (o) > 0){  // es expres si es 1
											miCampo('cb_Pulido').disabled = false;
									    if (miGetElementById('h_soymineral') != null){
											  miCampo('h_soymineral').value = false;
                      }
										}else{
											if (miCampo('cb_Pulido').checked == true){
												alert (dameRc(121));
												miCampo('cb_Pulido').checked = false;
												miCampo('cb_Pulido').disabled = true;
											}
											miCampo('cb_Pulido').disabled = true;
									    if (miGetElementById('h_soymineral') != null){
											  miCampo('h_soymineral').value = true;
                      }
										}
									}
								break;
			case 'actualizavalores':
				trataNodoActualizaValores_w (o);
				break;
			case 'filtrogamas':
				trataNodoFiltroGamas (o);
				break;
	    case 'id_favoritos':
			      if (miGetElementById('id_favoritos') != null){
                if (miTextXml (o) == "1"){
			              miGetElementById('id_favoritos').innerHTML = "Del.";
			              miGetElementById('id_favoritos_bot').innerHTML =  '<img src="img/bot_rojo.gif" width="18" border="0" /></a>';
                }else{
			              miGetElementById('id_favoritos').innerHTML = "Add.";
			              miGetElementById('id_favoritos_bot').innerHTML =  '<img src="img/bot_verde.gif" width="18" border="0" /></a>';
                }
            }
						break;
			case 'avisos':
			case 'avisosWS':
				var txtaccion = "", iss = 0, soloavisos = new Array (), midondevoy = -1, qqmm = -1;
				var iacc = 0, cambiossesion = new Array ();
 				for (var x=0; x < o.childNodes.length; x++){
					var otmp = o.childNodes[x];
					if (otmp.nodeName == 'aviso'){
						var vvalor = "", qqueaumenta = "";
 						for (var y=0; y < otmp.childNodes.length; y++){
							var oa = otmp.childNodes[y];
							switch (oa.nodeName){
								case 'dondevoy':
											midondevoy = miTextXml (oa);
											if (midondevoy > -1) qqmm = iss;
											break;
								case 'queaumenta':	qqueaumenta = miTextXml (oa);break;
								case 'valor':		vvalor = miTextXml (oa);break;
								case 'txt':
									if (qqueaumenta == "" && vvalor == ""){
										soloavisos [iss++] = miTextXml (oa);
									}else{
										cambiossesion [iacc++] = new Array (miTextXml (oa), qqueaumenta, vvalor);
									}
									break;
								default:				alert (txt + "<" + o.nodeName + ">");
 							}
 						}
					}else{
						alert (txt + "<" + otmp.nodeName + ">");
					}
				}
				// GRABA PEDIDO PRIMER RETORNO
				// ya he leido todos los avisos y los tengo cargados en los arrays anteriores
				// ahora los muestro primero los avisos y luego uno por uno las acciones si
				//
if (solodebug3==1){
	if (iss > 0){
		alert (".- VENGO con (avisos):" );
	}else{
		alert (".- VENGO sin (avisos):" );
	}
}
				if (midondevoy > -1){
					alert (soloavisos[qqmm]);
					hrefmequedo = true;		// me quedo en la pantalla del pedido y no hago el href a otra pantalla
					break;
				}else{
					var txtAvisos = "";
					for (var is=0; is < iss; is++){
						txtAvisos += soloavisos[is];
						txtAvisos += "\n";
					}
					if ( iss > 0 && confirm (txtAvisos) == false){
						hrefmequedo = true;	// me quedo en la pantalla del pedido y no hago el href a otra pantalla
						break;
					}
				}
				//
				// confirmo las acciones y cargo parametros url para modificar valores sesion
				// importante parametro 'TotalCamposBis' para tratar los parametros en servidor.php
				var TotalCamposBis = 0;
				for (var ia=0; ia < iacc; ia++){
					if ( confirm (cambiossesion [ia][0]) == true){	// 'txt'
						strparametros += "&queaumenta";
						strparametros += TotalCamposBis;
						strparametros += "=";
						strparametros += cambiossesion [ia][1];		// 'queaumenta'
						strparametros += "&valor";
						strparametros += TotalCamposBis;
						strparametros += "=";
						strparametros += cambiossesion [ia][2];		// 'valor'
						if (cambiossesion [ia][1] == "SupleDescDerX"){
							miCampo('h_SupleDescDerX').value = cambiossesion [ia][2];
						}
						if (cambiossesion [ia][1] == "SupleDescIzqX"){
							miCampo('h_SupleDescIzqX').value = cambiossesion [ia][2];
						}
						if (cambiossesion [ia][1] == "pulido"){
							miCampo('cb_Pulido').checked = true;
						}
						TotalCamposBis++;
					}
				}
				if (TotalCamposBis > 0){
					strparametros += "&TotalCamposBis=";
					strparametros += TotalCamposBis;
					miCampo('mi_href').value += strparametros;
				}
				// le paso todos los campos del pedido para
				// checkear que no haya ninguno sin actualizar
				vengoDeNodeName = o.nodeName; // cargo aviso o avisoWS
				if (vengoDeNodeName == "avisos"){
					strparametros += updateCamposPedido ();
				}
				//
				//
				setGrabapedido = true;	// cambio el href por el ajax
				break;
			case 'xml_pedidos_prats':
//				alert (miTextXml (o));
				break;
			case 'xml_pedidos_prats_1':
  				var bEstoyWs = (estoyenmipedido && miCampo('mi_href').value.indexOf ("solovalidapedido") > 0);
				  if (ModoServidor == 1){
                    // en modo aplicacion exterior me lo salto este aviso pq ya voy a la pantalla xml
                    if (solodebug3==1){
	                          alert (".- VENGO (xml_pedidos_prats_1). Modo 1, no hago nada");
                    }
          }else{
                    // si estamos en modo normal les enseño el resultado como showmessage
					    var res_xml = miTextXml (o);
   					  if (bEstoyWs){
if (solodebug3==1){
	alert (".- VENGO (xml_pedidos_prats_1). Modo 0 y validando");
}
						      if (confirm (res_xml) == false){
							        hrefmequedo = true;
						      }
   					  }else{
if (solodebug3==1){
	alert (".- VENGO (xml_pedidos_prats_1). Modo 0, xml");
}
						      alert (res_xml);
   					  }
          }
				  break;
			case 'docTmp':	// fichero a bajar.exportar
					bajaFichero	= miTextXml (o);
				break;
			case 'xml_muestra_abono_jpg':	// fichero a bajar.exportar
				var uurl = miTextXml (o);      // en modo Ulloa me lo salto este aviso pq ya voy a la pantalla xml
				PonEsperando (0);
				var rrr = 'index.php?param=onlineweb&quepantalla=w_xml_muestra_abono_jpg.tpl&url_Abono='+uurl;
				if (miGetElementById('edObserva') != null){	// estoy en pantalla w_solicita_abono.tpl
					rrr += "&observa=";
					rrr += escape(miGetElementById ("edObserva").value);
					rrr += "&motivo=";
					for (var ib=0; ib < miForm().RadioGroup1.length; ib++){
						if (miForm().RadioGroup1[ib].checked){
							rrr += miForm().RadioGroup1[ib].value;
							break;
						}
					}
				}else{		// estoy en pantalla de imprimir abonos w_pedidos_encurso
					rrr += "&soloimprimeabono=1"; // solo impresion abono sin cabecera ni observaciones
				}

				onLocationHref_w (rrr);
//alert (rrr);
//				imprime_Abono_w (uurl);
				return;
			default:
				alert (txt + "<" + o.nodeName + ">");break;
		}
 	}
	//
	//
	switch (quecambia){
		case 'FalloWebService_pedido':
//			alert ("Pedido enviado.");
if (solodebug3==1){
	alert (".- VENGO (FalloWebService_pedido) .-VOY (EnviaPedidosSele_w) por mail.");
}
			alert (dameRc(104));
			EnviaPedidosSele_w (-1);
			return;
		case 'FalloWebService_solovalidapedido':

if (solodebug3==1){
	alert (".- VENGO (FalloWebService_solovalidapedido) .- VOY (SetServidor_wPedidos) grabo el pedido en web.");
}
      // si falla la validacion del servidor paso a grabarlo igualmente
			SetServidor_wPedidos ('grabapedido', '', "fin_valida_ws");
			return;
		case 'enviapedidoswebservice':	// final envio pedidos
        	var bEstoyWs = (estoyenmipedido && miCampo('mi_href').value.indexOf ("solovalidapedido") > 0);
        	if (ModoServidor == 1){
				      onLocationHref_w('index.php?param=onlineweb&quepantalla=acuse_recibo');
			    }else{
				      //
              // FIN GRABA PEDIDO WEB SERVICE Y VALIDA PEDIDO WEB SERVICE
              //
   			      if (bEstoyWs){
					        if (hrefmequedo	== true){	// han cancelado cuando les he enseñado xml e respuesta --> xml_pedidos_prats_1

if (solodebug3==1){
	alert (".- VENGO (enviapedidoswebservice) .- cancelado (hrefmequedo).");
}
						          SetServidor_w ("nada");
					        }else{
if (solodebug3==1){
	alert (".- VENGO (enviapedidoswebservice) .- VOY (SetServidor_wPedidos(graba pedido) fin_valida_ws).");
}

						          SetServidor_wPedidos ('grabapedido', '', "fin_valida_ws");
					        }
   					      return;
   				    }else{

if (solodebug3==1){
	alert (".- VENGO (enviapedidoswebservice) .- VOY (peds.pendientes).");
}
					        onLocationHref_w('index.php?param=pedidos&tabsituacion=1');
				    }
			    }
			break;
		case 'enviapedidos':
			if (ModoServidor == 1){

if (solodebug3==1){
	alert ("ModoServidor=1 .- VENGO (enviapedidos) .- VOY (param=onlineweb&quepantalla=acuse_recibo).");
}
				  onLocationHref_w('index.php?param=onlineweb&quepantalla=acuse_recibo');
			}else{
if (solodebug3==1){
	alert (".- VENGO (enviapedidos) .- VOY (peds.pendientes)");
}
				  onLocationHref_w('index.php?param=pedidos&tabsituacion=1');
			}
			break;
		case 'enviados_error':
//			alert ("error al enviar, puede que no se haya enviado algun o todos los pedidos");
			alert (dameRc(90));
			break;
		case 'exportados_error':
//			alert ("error al exportar, puede que no se haya exportado alguno o todos los pedidos");
			alert (dameRc(90));
			break;
		case 'exportapedidos':
			// ahora esta generado el xml
			break;
		case "preconsultaIdForma":break;    // viene de javascript:dibujaIdforma_w ()
		case "Monturas":break;	// la sustitucion ya la he hecho arriba
		case "Formas":break;	// la sustitucion ya la he hecho arriba
		case "MonturasAire":break;	// la sustitucion ya la he hecho arriba
		case "href":	// despues de actualizar me voy deonde querian
			// si bAvisosGrabapedido == true ya le he agregado al final parametros para cambiar
			// el parametro que sea
			if (setGrabapedido == false && hrefmequedo == false){
				document.location.href = miCampo('mi_href').value;
			}
			break;
		case "filtrogamas":
		case "idgama":

		    var ft = miCampo('ftodas').checked;
        activafMatDis (ft);

		case "consultaNorma":
			miCampo('ComboTrats').disabled 		= false;
			miCampo('ComboGamasDer').disabled 	= false;
		case "cbcolores":
			miCampo('ComboColores').disabled 	= false;
		case "cbtonos":
			miCampo('ComboTonos').disabled 		= false;
		case "cbtratas":
			miCampo('ComboTrats').disabled 		= false;
			break;
		case 'suplementos':
			break;
		case 'ParamsImaxSinForma':
//				alert("fin paramImaxSinForma");
				break;
		case "puente":
			if (miGetElementById('coDer_y_pant') != null){
				if (miCampo('coDer_y_pant').disabled == false){
					miCampo('coDer_y_pant').select();
				}else{
					miCampo('coIzq_y_pant').select();
				}
			}
			break;
		case 'nuevoUsuario':
		case 'eliminaUsuario':
		case 'clienteNuevoPedido':
		case 'nuevoConCliente':
		case 'eliminaConCliente':
		case 'ModoCentradoV':
		case 'ModoCentradoH':
		case 'ParamsTracer':
		case 'BiselarEnPrats':
		case 'EspesoresMinimos':
//			estoyenmipedido = false;
			break;
		case 'origenforma':
          if (miGetElementById('id_ScanMontura_ocx') != null){
//              alert ("ahora activo ocx");
              miGetElementById('id_ScanMontura_ocx').innerHTML = dame_object_ocx ();
          }
          break;
		default:
	}

	if (estoyenmipedido == true){
		// boton Param IMAX
		var quitaboton = true;
		if (trim(miCampo('gamatipo').value) == 'T' || trim(miCampo('gamasubtipo').value) == 'ILT' || trim(miCampo('gamasubtipo').value) == 'EVT'){
//
// Imax e Impesion parametros especiales
//
// SI NO HAY FORMA
// 1.=ver codigo funcion fin_SetServidor_w codigo repetido
// 2.=ver codigo funcion trataNodoGama_w
// 3.=y en receta.tpl tb estan los mismos ifs
// 4.=y en TValidaPedido.php tb estan los mismos ifs
// 5.=y en progresivoindividualizadfo.html tb estan los mismos ifs
			if (miCampo('h_hayforma').value == false){
					// caso imax
					if (miCampo('gamasubtipo').value != 'FF4' &&
							miCampo('gamasubtipo').value != 'FF6'){
						// mostramos pantalla progresivos individualizados
						quitaboton = false;
						var txt = '<a href="#" alt="';
            txt +=  dameRc(125);
            txt += '"';
            txt += ' onclick="javascript:abreModalImax ();">';
						txt += '<img src="img/bot_rojo.gif" width="18" border="0" /></a>';
						miGetElementById('botonImaxSinForma_w').innerHTML = txt;
					  txt	=  dameRc(125);   // 'P.Imax';
						miGetElementById('botonImaxSinFormaTxt_w').innerHTML = txt;
					}
			}
		}
		if (quitaboton){
			var txt = '&nbsp;';
			if (miGetElementById('botonImaxSinForma_w') != null){
				miGetElementById('botonImaxSinForma_w').innerHTML = txt;
			}
			if (miGetElementById('botonImaxSinFormaTxt_w') != null){
				miGetElementById('botonImaxSinFormaTxt_w').innerHTML = txt;
			}
		}
	}

	// fin boton imax
	PonEsperando (0);

	if (bajaFichero != ""){
	  	onLocationHref_w('bajaFichero.php?docTmp='+bajaFichero);
	}
	//	caundo grabapedido
	// vengo las dos veces de avisos ,de heber Avisado los "avisos" y tb si valido contra webservice los "avisosWS"
	if (setGrabapedido==true && hrefmequedo == false){
		SetServidor_wPedidos ('grabapedido', strparametros, vengoDeNodeName);
		return;
	}
	if (hrefmequedo == true){ // me han cancelado y me quedo en la pantalla
		return;
	}
	if (href_nodo != ""){
		document.location.href = href_nodo;
	}

	if (quecambia == 'idgama' && miCampo('dondeestoy').value == '99'){
		// si tengo la pantalla de detalle una gama abierta y cambian de gama la refresco
		detalleUnaGama ();
	}

};

function updateCamposPedido ()
{
	var str	="&EjeDer="+miCampo('EjeDer').value;
	str +="&CilDer="+miCampo('CilDer').value;
	str +="&EsfDer="+miCampo('EsfDer').value;
	str +="&AdiDer="+miCampo('AdiDer').value;
  str +="&DiamDer="+miCampo('DiamDer').value;
	// izquierdo
	str +="&EjeIzq="+miCampo('EjeIzq').value;
	str +="&CilIzq="+miCampo('CilIzq').value;
	str +="&EsfIzq="+miCampo('EsfIzq').value;
	str +="&AdiIzq="+miCampo('AdiIzq').value;
  str +="&DiamIzq="+miCampo('DiamIzq').value;
	str +="&ControlaCamposPedido=1";
	if (miGetElementById ('suReferencia') != null){	// puede ser actualizacion donde la referencia no se toca queda como estuviese
		str +="&suReferencia="+escape(miCampo('suReferencia').value);
	}
	return str;
}

function montaUpdates_w () {

	var str="";

	var value = -1;
	var campos = 0;
	var queojo = dimeQueOjoMarcado_w ();

	var estoyEnHtmlParamImax = false;
	if (miGetElementById ('IdEstoyEnHtmlParamsImax') != null){
		estoyEnHtmlParamImax = true;		// pq solo se entra un los param de altura para el ojo der
	}		// y cuando solo hay un izquierdo no se copiaba la altura (en combinacion con Servidor.php

	for (var i=0; i < miForm().elements.length; i++){
		var elem = miForm().elements[i];
		var tipo = elem.type.toUpperCase();
		if (otrosControles_w (tipo)) continue;
    var soycampocliente = soyComboCliente (elem.name);
		if (queojo != 2 && estoyEnHtmlParamImax == false && soycampocliente == false){
			var queelem = dimeOjo (elem.name);
			if (queelem > -1 && queojo != queelem)
				continue;
		}
		if (elem.name == "Corredor" && estoyEnHtmlParamImax == true){
			elem.setAttribute("_miupdates", 1);				// actualizo valor propiedad  al entrar onFocus()
//			elem.style.backgroundColor = "#FF8040"; 		// color naranja de falta sincronizar
			elem.style.backgroundColor = "#FFFF00"; 		// color naranja de falta sincronizar
		}
		var miupdates = elem.getAttribute("_miupdates"); // miro si falta actualizar
        if (miupdates == 1){
			if (campos>0)str += "&";
			str += "Campo"+campos;
        	str += "=";
        	str += elem.name;
        	str += "&" + elem.name + "_valor=";

			// caso especial, <= 0 son mm y > 0 son grados pero por pantalla siempre es positivo
			var valor = CasosEspeciales (elem.name, elem.value);

        	str += escape(valor);
        	str += "&" + elem.name + "_indice_form=";
        	str += i;
        	campos++;
		}
	}
	if (campos > 0){
		str += "&TotalCampos="+campos;
		// importante para actualizar el ojo marcado
		str += "&queojo="+queojo;
		//
	}
//alert (str);
	return str;
}

function onLocationHref_w (href) {

	  if (miGetElementById ('IdEstoyEnMiPedido') == null){
		    document.location.href = href;
		    return;
	  }

    if (href.indexOf ("mataproceso=1") >  0){//tocada actual para parar bucle
        FuerzaNoEspera ();  // se ha quedado en bucle
    }

    // me guardo la referencia de la pagina solicitada por el usuario
    miCampo('mi_href').value = href;
	  SetServidor_w ("href");

}

function SetServidor_wPedidos (quecambia, strparametros, vengoDeNodeName)
{
	  var step = 1;
	  var bValida   = (miCampo('mi_href').value.indexOf ("solovalidapedido") > 0);
	  var bGotoPend = (miCampo('mi_href').value.indexOf ("gotopendientes") > 0);

    if (bValida && vengoDeNodeName != "fin_valida_ws"){     // valida pedidos ws
		  step = 2;
   	}
	  var pp = 103;
	  // por defecto siempre enseño donde estoy, si quiero ir
	  // expresamente a alguna pestaña tengo que llamar a la funcion de abajo
   	if (step == 2){     // empieza orden de graba pedido
		  pp = 119;
		  strparametros += "&solovalidapedido=1";
	  }
	  //
   	if (bGotoPend == true && vengoDeNodeName != "fin_valida_ws"){     // empieza orden de graba pedido
		  strparametros += "&gotopendientes=1";
	  }
    //
	  if (miGetElementById('DibujaUnaReceta') != null){
		  miGetElementById('DibujaUnaReceta').innerHTML = dameLink(pp);
	  }

if (solodebug3==1){
	var tmp = quecambia + "  -  " + strparametros + ".";
	if (step == 2){
		alert (".- VOY -> VALIDA PEDIDO Web: " + tmp );
	}else{
		alert (".- VOY -> VALIDAyGRABA PEDIDO Web: " + tmp );
	}
}

	  SetServidor_www (quecambia, miCampo('dondeestoy').value, 1, strparametros);
}

function SetServidor_w (quecambia) {
	// por defecto siempre enseño donde estoy, si quiero ir
	// expresamente a alguna pestaña tengo que llamar a la funcion de abajo

// ojo nacho

	SetServidor_ww (quecambia, miCampo('dondeestoy').value);


}

function SetServidor_ww (quecambia, dondevoy) {
	// no utilizo tercer parametro que es la pagina
	SetServidor_www (quecambia, dondevoy, 1, "");
}

function SetServidor_wwP (quecambia, pagina) {
	// no utilizo tercer parametro que es la pagina
	// el diez es porque tengo que ir a la pantalla de seleccion de forma es la "10"
	//SetServidor_www (quecambia, 10, pagina, "");
SetServidor_www (quecambia, -99, pagina, "");
}


function SetServidor_origen (quecambia) {

	var dondevoy;
	var cc = miCampo('cb_OrigenForma');
// ojo nacho
//alert (cc.name);
	var io = cc.selectedIndex;

// ojo nacho
//alert (io);
	switch (io) {	// pantalla tracer
		case 1:
       		dondevoy = "10";	// selecciona formas
			    SetServidor_www (quecambia, dondevoy, 1, "");
			    break;
		case 2:
       		dondevoy = "13";	// formas avanzado
			    SetServidor_www (quecambia, dondevoy, 1, "");
			    break;
		case 3:
       		dondevoy = "11";	// tracer
			    SetServidor_ww (quecambia, dondevoy);
			    break;
		case 4:
       		dondevoy = "12";	// selecciona monturas
			    SetServidor_www (quecambia, dondevoy, 1, "");
			break;
		case 5:
       		dondevoy = "16";	// leer fichero xml para importar solo la forma de un xml
			    onLocationHref_w ("index.php?param=onlineweb&quepantalla=uploadsoloformaxml");
			break;
		case 6:
       		dondevoy = "17";	// leer fichero xml para importar solo la forma de un xml
			    onLocationHref_w ("index.php?param=onlineweb&quepantalla=uploadsoloformaoma");
      break;
		case 7:      // leer tableta de applet
//       		dondevoy = "19";
//          SetServidor_ww (quecambia, dondevoy);
//			    onLocationHref_w ("index.php?param=onlineweb&quepantalla=applet_tableta");
            abreModalTableta ();
			break;
		case 8:
       		dondevoy = "18";	// leer formas estandar
			    SetServidor_www (quecambia, dondevoy, 1, "");
			break;
		case 9:
          var id = miGetElementById ("cbComboCampanyas");
          if (id != null){
//alert ("ini drop drawn icon");
//          id.msDropDown();
//$("#cbComboCampanyas").msDropDown();
//$("this").hide();
alert ("atención ñññ ó `j");
          }
//          var id = miGetElementById ("id_zona_receta");
//          id.className = "img_zona_receta";
			break;
		default:
			    // no depende de dondevoy
			    SetServidor_wwP (quecambia, 1);
			    break;
	}
}

function bot_favoritos ()
{
  // ojo nacho
	var fcamp = miCampo('cbComboCampanyas').selectedIndex;
  var remove = (fcamp == 1);
	var ig = miCampo('ComboGamasDer').selectedIndex;
	if (ig < 0){
			alert (dameRc(57));
      return;
  }
	var gama = miCampo('ComboGamasDer').options[ig].value;
	if (gama < 0){
			alert (dameRc(57));
      return;
  }

	var cargando = '<img border="0" src="img/cargando2.gif"width="16" height="16">';
	miGetElementById('reloj').innerHTML = cargando;
	var str = "quecambia=add_gama_favoritos";
	str += "&idgama=";
	str += gama;
  if (remove){    // borrar
	    str += "&remove=1";
  }
	str += "&refrescadibujo=0";
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'POST', '"+str+"', fin_SetServidor_w)", 0);
}

function abreModalTableta ()
{
	var miObjeto = new Object();
  if (miGetElementById ('idlanguaje') != null){
		  miObjeto.idlanguaje = miCampo('idlanguaje').value;
	}else{
		  miObjeto.idlanguaje = 1;
	}
  miObjeto.str = "";

//  var ancho = window.screen.availWidth;
//  var alto = window.screen.availHeight;
  var ancho = screen.width;
  var alto = screen.height;
  var params = "dialogWidth:";
  params += ancho;
  params += "px;dialogHeight:";
  params += alto;
  params += "px;center:yes;";

  miObjeto.ancho = ancho;
  miObjeto.alto = alto;

//alert (params);

  var objRetorno = window.showModalDialog("html/applet_tableta.html", miObjeto, params);
	//
  var str = objRetorno.str; // me duvuelve a donde voy
  //alert (str);
  PonEsperando (1);
  window.setTimeout("con_SetServidor_w.connect('servidor.php', 'POST', '"+str+"', fin_on_socket_get)", 0);
}

var fin_on_socket_get = function (oXML)
{
    onLocationHref_w('index.php?param=mipedido&mataproceso=1');
}


//  ojo nacho, mal pasadas
//  pasadas aapplet_tableta.html
//
function on_socket_get(message)
{
    // aqui estoy
    // en message viene toda lo del socket
	  var str = "&quecambia=addformascanomasocket";
    str += "&iorigenforma=1";
	  str += "&dondeestoy=10";
	  str += "&dondevoy=20";
    str += "&vademontura=0";   // ver posibilidades vademontura
    str += "&xml_de_socket=";
    str += message;

	  window.setTimeout("con_SetServidor_w.connect('servidor.php', 'POST', '"+str+"', fin_on_socket_get)", 0);
}
function retJavaApplet2_Cancelar ()
{
     // me voy a seleccionar otra vez la forma
	  var str = "&quecambia=origenforma";
    str += "&iorigenforma=1";
	  str += "&dondeestoy=10";
	  str += "&dondevoy=-99";   // para que vaya donde le toca
	  window.setTimeout("con_SetServidor_w.connect('servidor.php', 'POST', '"+str+"', fin_on_socket_get)", 0);
}
//

function dameLink (rc)
{
	var link = '<table width="190" align="center" border="0" cellpadding="0" cellspacing="0">';
	link += '<tr><td align="center" class="verdana txt10 color_azul">';
	link += dameRc(rc);
	link += ' ....</td></tr>';
	link += '<tr><td align="center"><img border="0" src="img/cargando3.gif" width="190" height="14"></td></tr>';
	link += '</table>';

	return link;
}

function SetServidor_www (quecambia, dondevoy, pagina, strparametros) {

if (solodebug2 == 1){
	alert ("SetServidor_www: quecambia:" + quecambia +" dondevoy:" + dondevoy +" pagina:" + pagina);
}

	if ( dimeQueOjoMarcado_w () == -1 && quecambia == "idgama"){
//		alert ("Debes seleccionar mínimo un ojo");
		alert (dameRc(92));

//		return;
	}

	if (Espere ()) return;

	var str = montaUpdates_w ();

	var bAvisosGrabapedido = false;
	var bSoloValidaPedido = false;
	if (quecambia == "href") {	// no hay que actualizar el servidor
    	if (miCampo('mi_href').value.indexOf ("grabapedido") > 0){     // empieza orden de graba pedido
			bAvisosGrabapedido = true;	// GRABA PEDIDO 1er paso, activar los avisos antes de grabar definitivamente
    		if (miCampo('ojoder').checked == false && miCampo('ojoizq').checked == false){
//				alert ("ERROR: debes marcar mínimo un ojo");
				alert (dameRc(93));
				return;
    		}
			var tono = -1;
			var ic = miCampo('ComboColores').selectedIndex;
			if (ic > -1){	// si hay seleccionado un color a medias pq el tono no esta seleccionado ERROR
				var color = miCampo('ComboColores').options[ic].value;
				var it = miCampo('ComboTonos').selectedIndex;
				if (it > -1)	tono = miCampo('ComboTonos').options[it].value;
				if ( color != "-1-1" && tono == "-1-1" ){    // "-1-1" porque lo toma como texto y es color -1 y tono .1 cuando no hay
//					alert ("ERROR: debes seleccionar el tono del color");
					alert (dameRc(55));
					return;
				}
			}else{
				var it = miCampo('ComboTonos').selectedIndex;
				if (it > -1) tono = miCampo('ComboTonos').options[it].value;
				if (tono == "-1-1"){   // "-1-1" porque lo toma como texto y es color -1 y tono .1 cuando no hay
//					alert ("ERROR: debes seleccionar el color");
					alert (dameRc(56));
					return;
				}
			}
     	}
	}

	if (str.indexOf ("Campos") <= 0){		// no hay que actualizar el servidor
		if (quecambia == "href"){			// y ademas nos vamos a otra direccion
			if (bAvisosGrabapedido == false){	// y no le hemos dado al boton grabapedido, pq sino primero tengo  que validar
				document.location.href = miCampo('mi_href').value;	// no hay nada que actualizar, me voy donde quieren
				return;
			}
		}
	}

	if (quecambia != ""){
		if (str.indexOf ("=") > 0)	str += "&";
		str += "quecambia="+quecambia;
		var ig = miCampo('ComboGamasDer').selectedIndex;
		if (ig < 0){
//			alert ("no hay gama seleccionada");
			alert (dameRc(57));
			return;
		}
		var subtipo = "";
		var gama = miCampo('ComboGamasDer').options[ig].value;

		var link = "";
   		if (miCampo('mi_href').value.indexOf ("solovalidapedido") > 0){     // empieza orden de graba pedido
			link = dameLink(103);
		}else{
			link = dameLink(103);
		}
		var cargando = '<img border="0" src="img/cargando2.gif"width="16" height="16">';

		switch (quecambia){
			case "grabapedido":	break;
			case "nada":break;
			case "borraForma":break;
			case "addIdFormaMontura":break;
			case "preconsultaIdForma":
			case "preconsultaOcxTracer":
				alert ("tiene funcion independiente (dibujaIdforma_w)");
				break;
			case "borraTaladros":
				if (miGetElementById('DibujaIdsMontura') != null){
					miGetElementById('DibujaIdsMontura').innerHTML = cargando;
				}
				break;
			case "addFormaOcx":
				break;
			case "filtrogamas":
				miCampo('ComboTrats').disabled = true;
				miCampo('ComboColores').disabled = true;
				miCampo('ComboTonos').disabled = true;
				miCampo('ComboGamasDer').disabled = true;
				if (miCampo('ftodas').checked){
					str += "&ftodas=1";
				}else{
					str += "&ftodas=0";
				}
				var fd, fm;
				for (fd=0; fd < miForm().fdiseno.length; fd++){
					if (miForm().fdiseno[fd].checked)	break;
				}
				str += "&fdiseno="+fd;
				for (fm=0; fm < miForm().fmaterial.length; fm++){
					if (miForm().fmaterial[fm].checked)	break;
				}
				str += "&fmaterial="+fm;
				fg = 0;
				if (miGetElementById('idgrupo') != null){
					if (miCampo('fgrupo').checked) fg = 1;
				}
				str += "&fgrupo="+fg;
				var fcamp = miCampo('cbComboCampanyas').selectedIndex;
        if (fcamp > 0){
				  str += "&fcampanya="+fcamp;
        }
				break;
			case "href":	// actualizo si hay algo pendiente y luego me voy donde querian
				if (bAvisosGrabapedido == true){
					// PRIMERA LLAMADA GRABA PEDIDO, graba pedido antes avisos y actualizo graduacion
					str += "&grabapedido_avisos=1";	// antes de grabar validar y avisos
					str += updateCamposPedido ();   // antes de las validaciones tambien se lo paso
				}
				break;
			case "consultaNorma":
				miCampo('ComboTrats').disabled 		= true;
				miCampo('ComboGamasDer').disabled 	= true;
				miCampo('ComboColores').disabled 	= true;
				miCampo('ComboTonos').disabled 		= true;
				str += "&subtipo="+subtipo;
				str += "&idgama="+gama;
				break;
			case "selorgadur":
				if (miCampo('cb_orgadur').checked)	str += "&orgadur=51";
				else										str += "&orgadur=0";
				break;
			case "selorgadur2":
				if (miCampo('cb_orgadur2').checked)	str += "&orgadur2=52";
				else										str += "&orgadur2=0";
				break;
			case "cambiaqueojo":
				var ojo = dimeQueOjoMarcado_w ();
				str += "&QueOjo="+ojo;
				// no hay break espresamente para que recalcule gamas
			case "idgama":
				miCampo('cb_orgadur').disabled = true;
				miCampo('cb_orgadur2').disabled = true;
				miCampo('ComboTrats').disabled 		= true;
				miCampo('ComboGamasDer').disabled 	= true;
				var cb_trats = miCampo('ComboTrats');
				var cb_colors = miCampo('ComboColores');
				//	aviso si cambian de gama y habian elegido trats o colores
				var color = "";
				var trata = "";
				var ic = cb_colors.selectedIndex;
				if (ic > -1)	color = cb_colors.options[ic].value;
				var it = cb_trats.selectedIndex;
				if (it > -1)	trata = cb_trats.options[it].value
				if (trim(color) != "-1-1" || trim(trata) != "-1-1"){
//					alert ("Al cambiar de gama se BORRARAN los tratamientos y/o colores que tiene seleccionados.");
					alert (dameRc(94));
				}
				//
				cb_trats.options.length = 0;	// borro combo
				cb_colors.options.length = 0;	// borro combo
			case "cbcolores":
				// sacar color seleccionado
				miCampo('ComboColores').disabled 	= true;
				var cb_tonos = miCampo('ComboTonos');
				cb_tonos.options.length = 0;	// borro combo
				var ic = miCampo('ComboColores').selectedIndex;
				if (ic >= 0){
					subtipo = miCampo('ComboColores').options[ic].value;
				}
			case "cbtonos":
				miCampo('ComboTonos').disabled 		= true;
				if (quecambia == "cbtonos"){
					var it = miCampo('ComboTonos').selectedIndex;
					if (it >= 0){
						subtipo = miCampo('ComboTonos').options[it].value;
						str += "&nombre="+miTextXml (miCampo('ComboTonos').options[it]);
					}
				}
				str += "&subtipo="+subtipo;
				str += "&idgama="+gama;
				break;
			case "cbtratas":
				miCampo('ComboTrats').disabled 		= true;
				var it = miCampo('ComboTrats').selectedIndex;
				if (it >= 0){
					str += "&codtrata="+miCampo('ComboTrats').options[it].value;
					str += "&nombre="+'"'+miTextXml (miCampo('ComboTrats').options[it])+'"';
				}
				break;
			case "origenforma":
				var io = miCampo('cb_OrigenForma').selectedIndex;
				if (io < 0) return;
				if (io == 0){
					miCampo('h_hayforma').value = false;
				}
				str += "&iorigenforma="+io;
				// break;  no se hace el break para que pase por formas expresamente
			case "Formas":	// selecciona forma de la tabla formas
			case "Monturas":	// selecciona forma de la tabla formas
      		case "MonturasAire":	// selecciona forma de la tabla formas
				var im=0;
				var txtBusca = "";
				if (miGetElementById ('edBuscar') != null){
					miGetElementById('masreloj').innerHTML = cargando;
					if (miGetElementById ('cb_Montura') != null){
						im = miCampo('cb_Montura').selectedIndex;
					}
					txtBusca = miCampo('edBuscar').value;
				}
				if (dondevoy == 12)	str  += '&radiobuton=Monturas';
								//else				str  += '&radiobuton=MonturasAire';  //else				str  += '&radiobuton=Formas';
				str += '&tabmaterial=' + im;
				str += "&txtbuscar=";
				str += txtBusca;
				str += "&pagina=";
				str += pagina;

				miCampo('idformatmp').value = 0;
				miCampo('idvarillatmp').value = 0;

//				CambiaDibujo_w ('buscaFormas', txt);
				break
			case "datoscentraje":
				if (miGetElementById ('cb_Escala') != null){
					if (miCampo('cb_Escala').checked)	str += "&escala=1";
					else										str += "&escala=0";
				}
				break;
			case "dimensionaforma":
				break;

			default:
				break;
		}
	}

	str += "&dondeestoy="+miCampo('dondeestoy').value;
	str += "&dondevoy="+dondevoy;

	if (trim(strparametros) != ''){
		str	+= strparametros;
	}

	if (quecambia == "grabapedido"){
		if (miGetElementById('relojgrabapedido') != null){
			miGetElementById('relojgrabapedido').innerHTML = link;
		}
	}

	if (refrescaDibujo (quecambia, dondevoy) == true){	// solo pongo reloj si tengo que refrescar
		if (miGetElementById('DibujaUnaReceta') != null){
			if (quecambia == "grabapedido"){
//				miGetElementById('DibujaUnaReceta').innerHTML = link;
			}else{
				miGetElementById('DibujaUnaReceta').innerHTML = cargando;
			}
		}
		str += "&refrescadibujo=1";	// envio al servidor
	}else{
		str += "&refrescadibujo=0";	// envio al servidor
	}
	//
if (solodebug2==1){
	alert ("SetServidor_www: " + str);
}
	//
	PonEsperando (1);

if (solodebug3==1){
	if (bAvisosGrabapedido == true){
		alert ("1.- VOY -> GRABA PEDIDO (avisos): " + str );
	}
}


	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function dibujaIdsFormaMontura_w (idforma, idvarilla, modelo, alto, ancho)
{
		if (idforma == -1 && idvarilla == -997){
          // vengo de la pantalla w_FormasEstandar.tpl  boton redimensionar boxing
            if (miCampo('idformatmp').value == 0){
                alert (dameRc(188));
                return;
            }else{
			          idforma = miCampo('idformatmp').value;
            }
    }

		if (Espere ()) return;

		var cargando = '<img border="0" src="img/cargando2.gif"width="16" height="16">';
		miGetElementById('DibujaUnaIdForma').innerHTML = cargando;

		if (miGetElementById('idForma') != null){
			miGetElementById('idForma').innerHTML = idforma;
		}
		if (miGetElementById('modelo') != null){
			miGetElementById('modelo').innerHTML = modelo;
		}
		miCampo('idformatmp').value = idforma;
		miCampo('idvarillatmp').value = idvarilla;

		var str = montaUpdates_w ();

		if (str.indexOf ("Campos") >= 0){	// no hay que actualizar el servidor
			str += "&";
		}
		str += "quecambia=preconsultaIdForma";
		str += "&IdForma="+idforma+"&alto="+alto+"&ancho="+ancho;
		var dondeestoy = "&dondeestoy=10";
		if (idvarilla > -1){
			str +="&IdVarilla="+idvarilla;
			dondeestoy = "&dondeestoy=12";
		}
		if (idvarilla == -998){	// vengo de la pantalla w_seleccinaFormasAvazado.tpl
			str +="&estoyEnFormasAvanzado=1";
			dondeestoy = "&dondeestoy=13";
		}
		if (idvarilla == -997){	// vengo de la pantalla w_FormasEstandar.tpl
      str += dameNuevoBoxing_w ();
			dondeestoy = "&dondeestoy=18";
		}

		str += dondeestoy;
// en este caso no poner dondevoy
//		str += "&dondevoy="+miCampo('dondeestoy').value;
		PonEsperando (1);
		window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);

}

function dameNuevoBoxing_w ()
{
			var str ="&estoyEnFormasStandart=1";
      var ok = true;
      if (validaCampo_w(miCampo('boxh')) == false || validaCampo_w(miCampo('boxv')) == false){
          return;
      }
/*      try{
          var ii = parseFloat(hh);
          ii = parseFloat(vv);
      }
			catch(e){
          ok = false;
			    alert ( dameRc(2) + tipo + "). "+e.description);
			}*/
      var hh = miCampo('boxh').value;
      var vv = miCampo('boxv').value;

      if (hh < 10){
        miCampo('boxh').value = "";
      }
      if (vv < 10){
        miCampo('boxv').value = "";
      }

      if (ok && trim(hh) != ""){
			  str +="&boxh=";
        str += hh;
      }
      hh = miCampo('boxv').value;
      if (ok && trim(hh) != ""){
			  str +="&boxv=";
        str += hh;
      }
      return str;
}

function copiaForma_Taladros_w (opcion)
{
	if (Espere ()) return;

	var idforma = miCampo('idformatmp').value;
	if (idforma < 1000){
		miGetElementById('reloj').innerHTML = "";
//		alert ("falta seleccionar la forma");
		alert (dameRc(59));
 		return;
	}

	var cargando = '<img border="0" src="img/cargando2.gif"width="16" height="16">';
	if (miGetElementById('DibujaIdsMontura') != null){
		miGetElementById('DibujaIdsMontura').innerHTML = cargando;
	}

	var str = montaUpdates_w ();
	if (str.indexOf ("Campos") >= 0){	// no hay que actualizar el servidor
		str += "&";
	}
	str += "&quecambia=copiaFormaTaladros";
	if (opcion == 'FormaYtal')
		str += "&quecopio=FormaYtal";
	else{
		str += "&quecopio=soloTaladros";
	}
	str += "&IdForma=";
	str += idforma;
	str += "&dondeestoy=13";
	str += "&dondevoy=15";	// solo refresco dibujo no genero toda la pagina
	str += "&estoyEnFormasAvanzado=1";

	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function addIdForma_Taladros_w (bVademontura)
{
	// bVademontura es obsoleto pq ahora significa mas cosas
	// tres posibilidades
	// 0 es forma normal  					-> w_seleccionaForma.tpl
	// 1 es forma y montura 				-> w_seleccionaMontura.tpl
	// 2 es forma pero cogida de deltasBis 	-> w_seleccionaFormasAvanzada.tpl
	// 3 tambien de w_datoscentraje_dimensiona.tpl
	// 4 es forma normal pero solo para precal  -> w_FormasEstandar.tpl
	if (Espere ()) return;

	var idvarilla = -1
	var idforma = miCampo('idformatmp').value;
	if (idforma < 1000 && bVademontura != 3){
		miGetElementById('reloj').innerHTML = "";
//		alert ("falta seleccionar la forma");
		alert (dameRc(59));

 		return;
	}
	if (bVademontura == 1){
		idvarilla = miCampo('idvarillatmp').value;
		if (idvarilla <= 0){
			miGetElementById('reloj').innerHTML = "";
 			return;
		}
	}
	if (trim(miCampo('gamatipo').value) == 'T'){		// si es imax
		var txt = '&nbsp;';
		miGetElementById('botonImaxSinForma_w').innerHTML = txt;
	}

	var str = montaUpdates_w ();
	if (str.indexOf ("Campos") >= 0){	// no hay que actualizar el servidor
		str += "&";
	}
	// 0.- forma seleccionada
  str += "idformaaceptada=";
  str += idforma;
	// 1.- tenemos tambien la varilla
	if (bVademontura == 1){
		str += "&idvarillaaceptada=";
		str += idvarilla;
	}
	// 2.- para indicar que la forma la he de sacar de deltasBis
	if (bVademontura == 2 || bVademontura == 3){
		str += "&formaEstaEnBis=1";
	}

	str += "&quecambia=addIdFormaMontura";
	str += "&dondeestoy="+miCampo('dondeestoy').value;
	str += "&dondevoy=20";
	str += "&vademontura=";
	str += bVademontura;

  if (bVademontura==4){ // viene de formas standart
	  str += dameNuevoBoxing_w ();
  }

	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

var con_cb_ChangeNuevo = new XHConn();

var fin_ChangeNuevo_w = function (oXML) {
	miGetElementById('DatosCentrajeCombos').innerHTML = oXML.responseText;
	var im = miCampo('cb_Montura').selectedIndex;
	var txt = "";
	if (im == 0 || im == 1){ // acetato o metal
//		txt = "En una montura de metal o acetato no se puede dimensionar la forma.";
		txt = dameRc(109);
	}else{
		txt  = '<a href="#" onclick="javascript:addIdForma_Taladros_w (3);">';
		txt += '<img src="img/bot_blanco.gif" width="18" height="15" border="0" /></a>&nbsp;&nbsp;&nbsp;';
		txt += dameRc(110);
	}
	if (miGetElementById('idAceptaDimensiona') != null){	 // sino estamos en dimensiona no esta esta etiqueta
		miGetElementById('idAceptaDimensiona').innerHTML = txt;
	}
	PonEsperando (0);

	if (miCampo('dondeestoy') != null){
		if (miCampo('dondeestoy').value == '23'){
			SetServidor_ww ('datoscentraje', '20');
		}
	}
}

function cb_ChangeNuevo_w (iquecombo)
{

  if (Espere ()) return;

	var im = miCampo('cb_Montura').selectedIndex;
	var ia = miCampo('cb_Acabado').selectedIndex;
	var ib = 0;

	for (ib=0; ib < miForm().rb_biselar.length; ib++){
		if (miForm().rb_biselar[ib].checked)	break;
	}

	var pulido = 0;
	if (miCampo('cb_Pulido').checked){
		pulido = 1;
	}

	var tabpedido = miCampo('tabpedido').value;
	var esp = 0;
	var funcionFin = "fin_ChangeNuevo_w";	// no hay refrecso del dibujo de la forma
	var ip = miCampo('cb_Posicion').selectedIndex;

	PonEsperando (1);

  if (iquecombo == 0)
	window.setTimeout("con_cb_ChangeNuevo.connect('w_miCombosChangeNuevoCCC.php','GET','im="+im+"&ia="+ia+"&ip="+ip+"&iquecombo="+iquecombo+"&espesores="+esp+"', "+funcionFin+")", 1000);
	else if (iquecombo == 1)
	window.setTimeout("con_cb_ChangeNuevo.connect('w_miCombosChangeNuevoCCC.php','GET','im="+im+"&ia="+ia+"&ip="+ip+"&iquecombo="+iquecombo+"&espesores="+esp+"', "+funcionFin+")", 1000);
	else if (iquecombo == 2){
	window.setTimeout("con_cb_ChangeNuevo.connect('w_miCombosChangeNuevoCCC.php','GET','im="+im+"&ia="+ia+"&ip="+ip+"&ibiselar="+ib+"&iquecombo="+iquecombo+"&espesores="+esp+"', "+funcionFin+")", 1000);
	}else if (iquecombo == 3)
	window.setTimeout("con_cb_ChangeNuevo.connect('w_miCombosChangeNuevoCCC.php','GET','im="+im+"&ia="+ia+"&ip="+ip+"&iquecombo="+iquecombo+"&espesores="+esp+"', "+funcionFin+")", 1000);
	else if (iquecombo == 99)	// checkbox pulido viene de miCombosChangeXXXCCC.tpl
	window.setTimeout("con_cb_ChangeNuevo.connect('w_miCombosChangeNuevoCCC.php','GET','im="+im+"&ia="+ia+"&ip="+ip+"&pulido="+pulido+"&iquecombo="+iquecombo+"&espesores="+esp+"', "+funcionFin+")", 1000);
	else if (iquecombo == 999) // checkbox pulido viene de miCombosChangeXXXCCC.tpl
	window.setTimeout("con_cb_ChangeNuevo.connect('w_miCombosChangeNuevoCCC.php','GET','im="+im+"&ia="+ia+"&ip="+ip+"&pulido="+pulido+"&iquecombo="+iquecombo+"&espesores="+esp+"&tabpedido="+tabpedido+"', "+funcionFin+")", 1000);
	else
	alert ("combo no existe en cb_Change");
}


//////////////////////////////
////////////////////////////// rollo navegacion
//////////////////////////////


function refrescaDibujoPorValor_w (queaumenta){

	refrescaDibujo_ww (queaumenta, -997);		// numero raro
}

function refrescaDibujoPorValor_ww (quecambia, queaumenta){

	refrescaDibujo_www (quecambia, queaumenta, -997);		// numero raro
}

function refrescaDibujo_ww (queaumenta, cuanto)
{
	refrescaDibujo_www (queaumenta, queaumenta, cuanto);
}

function refrescaDibujo_www (quecambia, queaumenta, cuanto){

	if (queaumenta != 'nada'){
		var pp="miCampo('"+queaumenta+"').value";
		var valor = eval(pp);
		if (CampoModificado (queaumenta, valor) == false){
			return;
		}
	}

	if (queaumenta != 'nada' && miValidaElemen(queaumenta, 0) == false){
		return;
	}

	while (1) {
		if (Espere () == false){
			break;
		}
	}

	var valor=0;
	var str = montaUpdates_w ();
	if (str.indexOf ("Campos") >= 0){	// no hay que actualizar el servidor
		str += "&";
	}

	var dondevoy = miCampo('dondeestoy').value;
	if (refrescaDibujo (queaumenta, dondevoy) == true){	// solo pongo reloj si tengo que refrescar
		if (miGetElementById('DibujaUnaReceta') != null){
			var cargando = '<img border="0" src="img/cargando2.gif"width="16" height="16">';
			miGetElementById('DibujaUnaReceta').innerHTML = cargando;
		}
		str += "refrescadibujo=1";	// envio al servidor
	}else{
		str += "refrescadibujo=0";	// envio al servidor
	}

	if (queaumenta != 'nada'){
		var pp="miCampo('"+queaumenta+"').value";
		var valor = parseFloat(eval(pp));

		if (cuanto == -997){	// numero raro, por valor
			actualizaValoresCliente (queaumenta, valor);
		}else{					// por cuanto
			var quanto =  parseInt(cuanto);
			if (quanto == 0){
				quanto =  parseFloat(cuanto);
			}
			valor +=  quanto;
			pp = "miCampo('"+queaumenta+"').value = "+valor;
			eval(pp);
			str += "&cuanto="+quanto;
		}
	}

	str += "&quecambia="+quecambia;
	str += "&dondeestoy="+miCampo('dondeestoy').value;
	str += "&dondevoy="+miCampo('dondeestoy').value;
	str += "&queaumenta="+queaumenta;

	// caso especial, <= 0 son mm y > 0 son grados pero por pantalla siempre es positivo
	valor = CasosEspeciales (queaumenta, valor);

	str += "&valor="+valor;
	var esp = 0;	// a pelo en esta pantalla no tocan espesores
/*	if (miForm().dondeestoy.value >= 30
			&& miForm().dondeestoy.value < 40){
		esp = 1;
	}*/
	str += "&espesores="+esp;

//alert ("refrescaDibujo_ww: " + str);

	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function CasosEspeciales (campo, valor)
{
	var ret_valor = valor;
	if (campo == 'pantos'){
		if (miCampo('unidadmm').checked){
			ret_valor = valor * -1;
//			alert ("casosEspeciales. " + ret_valor);
		}
	}
	return ret_valor;
}

function actualizaValoresCliente (queaumenta, cuanto)
{
	if (queaumenta != 'nada'){
		var pp = "miCampo('"+queaumenta+"').value";
		var valor = parseFloat(eval(pp));
		var qq = parseFloat(cuanto);
//		if (cuanto > 5)	valor  = qq;
//		else			valor += qq;
		valor = qq;
		if (queaumenta == 'dip_x_pant'){
			var mitad = valor / 2;
			miCampo('coDer_x_pant').value = mitad;
			miCampo('coIzq_x_pant').value = mitad;
		}
		pp = "miCampo('"+queaumenta+"').value = "+valor;
		eval(pp);
		if (queaumenta == 'coDer_x_pant' || queaumenta == 'coIzq_x_pant'){
			var otro = parseFloat(miCampo('dip_x_pant').value);
			if (queaumenta == 'coDer_x_pant'){
				miCampo('coIzq_x_pant').value = otro - parseFloat(miCampo('coDer_x_pant').value);
			}else{
				miCampo('coDer_x_pant').value = otro - parseFloat(miCampo('coIzq_x_pant').value);
			}
//			var ppd = parseFloat(miForm().coDer_x_pant.value);
//			var ppi = parseFloat(miForm().coIzq_x_pant.value);
//			miForm().dip_x_pant.value = ppd + ppi;
		}
		if (queaumenta == 'coDer_y_pant'){
			miCampo('coIzq_y_pant').value = miCampo('coDer_y_pant').value;
		}
	}
}

function refrescaDibujo (quecambia, dondevoy){

	var que = queGrupocambia (quecambia);

	// tercera pantalla centraje no refrescamos
	if (que == "dips.tpl" && dondevoy == 22){
		return false;
	}
	// datos centraje no hemos de refrescar
	if (que == "combos.tpl" && dondevoy >= 20 && dondevoy <= 22){
		return false;
	}
	// facial solo cambio en la 21
	if (que == "basefacial.tpl" && (dondevoy == 20 || dondevoy == 22) ){
		return false;
	}

	if (que == "combosCentraje.tpl"){
		return false;
	}

	if (que == "combosNogama.tpl"){  // son los combos excepto la gama
		return false;
	}


	return true;
}

function queGrupocambia (quecambia){

	if (quecambia == "dip_x" || quecambia == "coDer_x" || quecambia == "coIzq_x"
		|| quecambia == "coDer_y" || quecambia == "coIzq_y" || quecambia == "puente"){
			return "dips.tpl";
	}

	if (quecambia == "AnguloAvanzado" || quecambia == "AnchoAvanzado" || quecambia == "ProfundoAvanzado"){
		return "combosCentraje.tpl";
	}

	if (quecambia == "facialgrados" || quecambia == "basemontura"){
		return "basefacial.tpl";
	}
	if (quecambia == "combos"){
		return "basefacial.tpl";
	}

	if (quecambia == "cbcolores" || quecambia == "cbtonos" || quecambia == "cbtratas"){
		return "combosNogama.tpl";
	}

	return quecambia;
}


///////////////////////////////////////////////////////
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////

//
// para el dimensiona parecido
//

function cambiaQueOjo_w ()
{
	SetServidor_w ("cambiaqueojo");
}

// pantalla solar y ranura variable
function valida_var_w (nomCampo)
{
	if (miCampo (nomCampo).value.indexOf (',') > -1){
	// cambio comas por puntos
		var str = miCampo (nomCampo).value;
		miCampo (nomCampo).value = str.replace(",", ".");	// cambio comas por puntos
	}

	var find = false;
	for (var i=0; i < miForm().elements.length; i++){
		elem = miForm().elements[i];
		if (nomCampo != elem.name) continue;
		find = true;
		break;
	}

	if (find && validaElemen (elem) == false){
		return false;
	}

	if (find && validaCampo(elem, 0) == false) {
		return false;
	}

	return true;
}

function valida_var (campo)
{
	if (valida_var_w (campo) == false){
		return;
	}

	pon_Manita ();
}

function pon_Manita ()
{
	var txt = '<div id="Image4_container" style=" width: 20;  height: 22; overflow: hidden;" >';
	txt += '<img id="Image4" src="img/hand.down.gif"  width="20"  height="22"  border="0"       />';
	txt += '</div>';

	miGetElementById('Image4_outer').innerHTML = txt;
}

function rb_Puntos ()
{
	dibujaModificaEditSolar_w (1, 0);
}

function incrementaSolar (inc)
{
	var pp = parseInt(miCampo('Edit1').value)
	pp += parseInt(inc);
	miCampo('Edit1').value = parseInt(pp);
	dibujaModificaEditSolar_w (1, 0);
}

function dibujaModificaEditSolar_w (bBotonAplicar, queBotPredefinido)
{
	// seguridad por si cambian combos
	var im = miCampo('cb_Montura').selectedIndex;
	var ia = miCampo('cb_Acabado').selectedIndex;

	if (im > 1 || ia != 3){	// no esta en la opcion de solar
		SetServidor_ww ('datoscentraje', '20');
		return;
	}

	var str = "quecambia=modificaEditSolar";
	str += "&dondeestoy="+miCampo('dondeestoy').value;
	str += "&dondevoy=23";

	var queSolarModo = 0;

	if (miCampo('rb_queEditSolar') != null){
		if (queBotPredefinido > 0){
			if (queBotPredefinido < 2)  miCampo('rb_queEditSolar')[0].checked = true;	// el uno
			else						miCampo('rb_queEditSolar')[1].checked = true;	// o el cuatro
			str += "&queBotPredefinido=";
			str += queBotPredefinido;
		}else{
			if (bBotonAplicar > 0){
				var ib = 0;

				for (ib=0; ib < miForm().rb_queEditSolar.length; ib++){
					if (miForm().rb_queEditSolar[ib].checked) break;
				}
				if (ib == 0) queSolarModo = 1;
				else if (ib == 1) queSolarModo = 6;
				else if (ib == 2) queSolarModo = 4;
				else if (ib == 3) queSolarModo = 12;
			}
		}
	}

	if (queSolarModo > 0){
		str += "&queSolarModo=";
		str += queSolarModo;
	}

	if (bBotonAplicar > 0) {	// no vengo de aplicar boton
		str += "&toyEditandoSolarModo=1";
	}

	var campo = "";
	var vals12 = "";
	if (bBotonAplicar > 0 && queBotPredefinido == 0){
		var valorAcum = 0;
		var qEditsHay = 0;
		for (var i=0; i < 12; i++){
			if (i+1 < 10) campo = "fe0";
			else 		campo = "fe";
			campo += i+1;
			if (miCampo(campo) != null){
				valorAcum += parseFloat(miCampo(campo).value);
				qEditsHay += 1;
			}
		}

		if (queSolarModo > qEditsHay){
			valorAcum = (valorAcum / qEditsHay) * 10.0;
		}

		var pp = 0;
		for (var i=0; i < 12; i++){
			if (i+1 < 10) campo = "fe0";
			else 		campo = "fe";
			campo += i+1;
			if (miCampo(campo) != null){
				pp = miCampo(campo).value * 10.0;
				if (parseInt(miCampo('Edit1').value) != 0){
					pp += parseInt (miCampo('Edit1').value);
				}
				vals12 += pp;
			}else{
				if (queSolarModo == 1 && i==3) vals12 += valorAcum;
				if (queSolarModo == 4 && (i==0 || i==3 || i==6 || i==9) ) vals12 += valorAcum;
				if (queSolarModo == 6 && (i==0 || i==2 || i==4 || i==6 || i==8 || i==10) ) vals12 += valorAcum;
				if (queSolarModo == 12) vals12 += valorAcum;
			}
			vals12 += ";";
		}
		str += "&setSolarDatos12=";
		str += vals12;
	}

	PonEsperando (1);

//alert (str);
	if (miGetElementById('Image4_outer') != null){
		miGetElementById('Image4_outer').innerHTML = "";	// borro la mano de aplicar
	}

	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 500);
}

function setTipoRanVar ()
{
	if (miCampo('rb_TipoRanVar') == null){
		return;
	}
	var ib = 0;

	for (ib=0; ib < miForm().rb_TipoRanVar.length; ib++){
		if (miForm().rb_TipoRanVar[ib].checked) break;
	}

	if (ib == 0){
		miGetElementById('Image3_outer').innerHTML = "";
		miGetElementById('Edit3_outer').innerHTML = "";
		miGetElementById('Edit4_outer').innerHTML = "";
		miGetElementById('Label3_outer').innerHTML = "";
		miGetElementById('Label5_outer').innerHTML = "";
		miGetElementById('fe01_outer').innerHTML = "";
		miGetElementById('fe02_outer').innerHTML = "";
	}else{
		var txD = '<div id="Image3_container" style=" width: 65;  height: 74; overflow: hidden;" >';
		txD += '<img id="Image3" src="img/randual.bmp"  width="65"  height="75"  border="0"       /></div>';
		miGetElementById('Image3_outer').innerHTML = txD;
		txD = '<input type="text" id="edAnchoDual" name="edAnchoDual" value=';
		txD += parseFloat(miCampo("h_ancho_dual").value);
		txD += ' style=" font-family: Verdana; font-size: 10px;  height:20px;width:48px;"    tabindex="51" ';
		txD += ' _tipo="Float" _msgErr="';
		txD += dameRc(113) + '"  />';		// valor debe ser numerico
		miGetElementById('Edit3_outer').innerHTML = txD;
		txD = '<input type="text" id="edProfDual" name="edProfDual" value=';
		txD += parseFloat(miCampo("h_prof_dual").value);
		txD += ' style=" font-family: Verdana; font-size: 10px;  height:20px;width:48px;"    tabindex="52" ';
		txD += ' _tipo="Float" _msgErr="';
		txD += dameRc(113) + '"  />';		// valor debe ser numerico
		miGetElementById('Edit4_outer').innerHTML = txD;
		txD = '<div id="Label3" style=" font-family: Verdana; font-size: 10px;  height:13px;width:41px;"   >';
		txD += dameRc(111);
		txD += '</div>';
		miGetElementById('Label3_outer').innerHTML = txD;
		txD = '<div id="Label5" style=" font-family: Verdana; font-size: 10px;  height:13px;width:56px;"   >';
		txD += dameRc(112);
		txD += '</div>';
		miGetElementById('Label5_outer').innerHTML = txD;
		txD  = '<input type="text" id="fe01_grados" onchange="javascript:valida_var (';
		txD += "'fe01_grados'";
		txD += ');" name="fe01_grados" value=';
		txD += parseInt(miCampo("h_fe01_grados").value);
		txD += ' style=" font-family: Verdana; font-size: 10px;  background-color: #FFFFD0;height:20px;width:32px;"    tabindex="45" ';
		txD += ' _tipo="Int" _msgErr="';
		txD += dameRc(113) + '"  />';		// valor debe ser numerico
		miGetElementById('fe01_outer').innerHTML = txD;
		txD  = '<input type="text" id="fe02_grados" onchange="javascript:valida_var (';
		txD += "'fe02_grados'";
		txD += ');" name="fe02_grados" value=';
		txD += parseInt(miCampo("h_fe02_grados").value);
		txD += ' style=" font-family: Verdana; font-size: 10px;  background-color: #FFFFD0;height:20px;width:32px;"    tabindex="46" ';
		txD += ' _tipo="Int" _msgErr="';
		txD += dameRc(113) + '"  />';		// valor debe ser numerico
		miGetElementById('fe02_outer').innerHTML = txD;
	}

	pon_Manita ();
}

function dibujaModificaRanuraVar_w (bBotonAplicar)
{
	// seguridad por si cambian combos
	var im = miCampo('cb_Montura').selectedIndex;
	var ia = miCampo('cb_Acabado').selectedIndex;

	if (im != 3 || ia != 2){	// no esta en la opcion de ranura variable
		SetServidor_ww ('datoscentraje', '20');
		return;
	}

	var str = "quecambia=modificaRanuraVar";
	str += "&dondeestoy="+miCampo('dondeestoy').value;
	str += "&dondevoy=24";

	if (bBotonAplicar > 0) {	// no vengo de aplicar boton
		str += "&toyEditandoRanuraVar=1";
		if (miCampo('rb_TipoRanVar') != null){
			var ib = 0;
	    for (ib=0; ib < miForm().rb_TipoRanVar.length; ib++){
		    if (miForm().rb_TipoRanVar[ib].checked) break;
	    }
		}
		str += "&queTipoRanVar=";
		str += ib;
		str += "&AnchoSimple=";
		str += parseFloat(miCampo("edAnchoSimple").value);
		str += "&ProfSimple=";
		str += parseFloat(miCampo("edProfSimple").value);
		if (ib == 1){	// va de ranura dual
			str += "&AnchoDual=";
			str += parseFloat(miCampo("edAnchoDual").value);
			str += "&ProfDual=";
			str += parseFloat(miCampo("edProfDual").value);
			str += "&ini=";
			str += parseInt(miCampo("fe01_grados").value);
			str += "&fin=";
			str += parseInt(miCampo("fe02_grados").value);

		}
	}

//alert (str);

	PonEsperando (1);

	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 500);
}

function dibujaFormaDim2_w (queaumenta, cuanto)
{
	if (queaumenta != 'nada' && miValidaElemen(queaumenta, cuanto) == false){
		return;
	}
	if (queaumenta != 'nada'){
		actualizaValoresClienteDimensiona (queaumenta, cuanto, true);
	}
	var str = "quecambia=dimensionaforma";
	str += "&queaumenta="+queaumenta;
	str += "&cuanto="+cuanto;
	str += "&dondeestoy="+miCampo('dondeestoy').value;
	str += "&dondevoy="+miCampo('dondeestoy').value;

	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function dibujaFormaDim1_w (queaumenta){
	if (queaumenta != 'nada' && miValidaElemen(queaumenta, 0) == false){
		return;
	}
	var pp ="miCampo('"+queaumenta+"').value";
	var valor = parseFloat(eval(pp));
	if (valor > 6 || valor < -6){
//		alert ("maximo 0.6 de corrección");
		alert (dameRc(95));
		return;	// no hhago nada
	}
	if (queaumenta != 'nada'){
		actualizaValoresClienteDimensiona (queaumenta, valor, false);
	}

	str = "quecambia=dimensionaforma";
	str += "&queaumenta="+queaumenta;
	str += "&valor="+valor;
	str += "&dondeestoy="+miCampo('dondeestoy').value;
	str += "&dondevoy="+miCampo('dondeestoy').value;

	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function actualizaValoresClienteDimensiona (queaumenta, cuanto, masigual){
	if (queaumenta != 'nada'){
		var pp = "miCampo('"+queaumenta+"').value";
		var valor = parseFloat(eval(pp));
		var qq = parseFloat(cuanto);
		if (masigual == true)	valor += qq;
		else					valor = qq;
		pp = "miCampo('"+queaumenta+"').value = "+valor;
		eval(pp);
		if (queaumenta == 'HTdelta' || queaumenta == 'VHTotal'){
			var pp = parseFloat(miCampo('HIdelta').value);
			pp += qq * 0.5;
			miCampo('HIdelta').value = pp;
			pp = parseFloat(miCampo('HDdelta').value);
			pp += qq * 0.5;
			miCampo('HDdelta').value = pp;
		}
		if (queaumenta == 'VTdelta' || queaumenta == 'VHTotal'){
			var pp = parseFloat(miCampo('VSdelta').value);
			pp += qq * 0.5;
			miCampo('VSdelta').value = pp;
			pp = parseFloat(miCampo('VNdelta').value);
			pp += qq * 0.5;
			miCampo('VNdelta').value = pp;
		}
	}
}

function OrdenaPendientes_w (orden, ordenacampo, situacion) {

	var txtBusca = "";
	if (miGetElementById ('edBuscar') != null){
		txtBusca = miCampo('edBuscar').value;
		var str  = 'index.php?param=buscapedidos';
		str += "&quebusco=Pedidos";
		str += "&tabsituacion=";
		str += situacion;	// 1 es pendientes, 888 es en curso ver TAbsSitu de misenums.php
		str += "&textobuscar=";
		str += txtBusca;
		str += "&orden=";
		str += orden;
		str += "&ordenacampo=";
		str += ordenacampo;
		str += "&pagina=1";
		onLocationHref_w (str);
	}
}

var con_PruebasSqlServer_w = new XHConn();

var fin_PruebasSqlServer_w = function (oXML) {

	miGetElementById('reloj').innerHTML = "";

}

function PruebasSqlServer_w (){

	var cargando = '<img border="0" src="img/cargando2.gif" width="16" height="16">';
	miGetElementById('reloj').innerHTML = cargando;

	var str  = 'idgama=24';

	window.setTimeout("con_PruebasSqlServer_w.connect('tablasSQLServer.php', 'GET', '"+str+"', fin_PruebasSqlServer_w)", 0);
}

function BuscaPedidoPendientes_w (situacion) {
	var txtBusca = "";
	if (miGetElementById ('edBuscar') != null){
		txtBusca = miCampo('edBuscar').value;
		var str  = 'index.php?param=buscapedidos';
		str += "&quebusco=Pedidos";
		str += "&tabsituacion=";	// 1 es pendientes, 888 es en curso ver TAbsSitu de misenums.php
		str += situacion;	// 1 es pendientes, 888 es en curso ver TAbsSitu de misenums.php
		str += "&textobuscar=";
		str += txtBusca;
		str += "&pagina=1";
		onLocationHref_w (str);
	}
}

function BuscaPedidoGestion_w (quepantalla) {

	var txtBusca = "";
	if (miGetElementById ('edBuscar') != null){
		var cargando = '<img border="0" src="img/cargando2.gif" width="16" height="16">';
		miGetElementById('reloj').innerHTML = cargando;

		txtBusca = miCampo('edBuscar').value;
		var str  = 'index.php?param=gestionbusca';
		str += "&quepantalla=";
    if (quepantalla=='pedidosgestionabonos'){
        quepantalla = "pedidosgestionabonosbusca";// lo cambio para luego no limitar el select a SQL Server
        // , peta si hay muchos registros la primera vez cuando vengo del menu loginado de la izquierda
    }
		str += quepantalla;
		if (miGetElementById ('cbClienteGestionBuscado') != null){
			str += "&clientegestionbuscado=";
			var cgb = miCampo('cbClienteGestionBuscado').selectedIndex;
			if (cgb < 0) str += "-1";
			else	str += miCampo('cbClienteGestionBuscado').options[cgb].value;
		}
		str += "&textobuscar=";
		str += txtBusca;
		str += "&pagina=1";
		onLocationHref_w (str);
	}
}

function OrdenaCampoGestion_w (orden, ordenacampo, quepantalla) {

	var txtBusca = "";
	if (miGetElementById ('edBuscar') != null){
		var cargando = '<img border="0" src="img/cargando2.gif" width="16" height="16">';
		miGetElementById('reloj').innerHTML = cargando;

		txtBusca = miCampo('edBuscar').value;
		var str  = 'index.php?param=gestionbusca';
		str += "&quepantalla=";
    if (quepantalla=='pedidosgestionabonos'){
        quepantalla = "pedidosgestionabonosbusca";// lo cambio para luego no limitar el select a SQL Server
        // , peta si hay muchos registros la primera vez cuando vengo del menu loginado de la izquierda
    }
		str += quepantalla;
		if (miGetElementById ('cbClienteGestionBuscado') != null){
			str += "&clientegestionbuscado=";
			var cgb = miCampo('cbClienteGestionBuscado').selectedIndex;
			if (cgb < 0) str += "-1";
			else	str += miCampo('cbClienteGestionBuscado').options[cgb].value;
		}
		str += "&textobuscar=";
		str += txtBusca;
		str += "&orden=";
		str += orden;
		str += "&ordenacampo=";
		str += ordenacampo;
		str += "&pagina=1";
		onLocationHref_w (str);
	}
}

function CopiaSele () {
	var haysele = false;
	var pedido = "";
	var cliente = -1;
	for (var i=0; i < miForm ().elements.length; i++){
		if (miForm ().elements[i].getAttribute("_tipo") != 'micheckbox')
			continue;
		if (miForm ().elements[i].checked == true){
			haysele = true;
			pedido = miForm ().elements[i].getAttribute("_numpedido");
			cliente = miForm ().elements[i].getAttribute("_cliente");
			empresa = miForm ().elements[i].getAttribute("_empresa");
			break;
		}
	}
	if (haysele){
		onLocationHref_w('index.php?param=mipedido&pedidocopiar='+pedido+'&cliente='+cliente+'&empresaleer='+empresa);
	}
}

var con_onEnviaPedidos = new XHConn();

function ValidaPedidoWebService (pedido)
{
	var str = '&quecambia=enviapedidoswebservice';
	var pedidosenviar = "&selpedidos= ( ";
	pedidosenviar += pedido;
	pedidosenviar += " ) ";
	str += pedidosenviar;
	str += "&solovalidapedido=1";
	PonEsperando (1);
//	alert(str);
	window.setTimeout("con_onEnviaPedidos.connect('enviaPedidosWebService.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function GrabaPedidoWebService (pedido)
{
	var str = '&quecambia=enviapedidoswebservice';
	var pedidosenviar = "&selpedidos= ( ";
	pedidosenviar += pedido;
	pedidosenviar += " ) ";
	str += pedidosenviar;
	PonEsperando (1);
//	alert(str);
	window.setTimeout("con_onEnviaPedidos.connect('enviaPedidosWebService.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function EnviaPedidosSele_w (tipoenviopedido)
{
	var haysele = false;
	var pedidosenviar = " ( ";
	for (var i=0; i < miForm ().elements.length; i++){
		if (miForm ().elements[i].getAttribute("_tipo") != 'micheckbox')
			continue;
		if (miForm ().elements[i].getAttribute("_situacion") != 0)
			continue;
		if (miForm ().elements[i].checked == true){
			if (haysele == true)
				pedidosenviar += ",";	// separados por punto y coma
			haysele = true;
			pedidosenviar += miForm ().elements[i].getAttribute("_numpedido");
		}
	}

	if (haysele == false){
//		alert ("no hay pedidos en situacion 'pendiente' seleccionados");
		alert (dameRc(62));
		return;
	}

	pedidosenviar += " ) ";
	var str = "";
	if (tipoenviopedido	> 0){	// webservice
		str = 'quecambia=enviapedidoswebservice';
	}else{
		str = 'quecambia=enviapedidos';
	}
	str += '&selpedidos=';
	str += pedidosenviar;

// ojo nacho
//alert (str);

	PonEsperando (1);
	if (tipoenviopedido	> 0){	// webservice
		window.setTimeout("con_onEnviaPedidos.connect('enviaPedidosWebService.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
	}else{						// via mails
		window.setTimeout("con_onEnviaPedidos.connect('enviaPedidos.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
	}
}

/*function abreModalAyudaPrismas ()
{
	var miObjeto = new Object();
	window.showModalDialog("html/pp.html", miObjeto, "dialogHeight:630px; dialogLeft:300px;");
} */

function abreModalSuplementos ()
{
	var miObjeto = new Object();
//	miObjeto.DatosOk 		 0.- sin ambios,  > 1.- ok grabamos, -1.- algun error;
	miObjeto.DatosOk 				= 0;
	// Polares
	miObjeto.PolarPermitido			= miCampo('h_PolarPermitido').value;
	miObjeto.SuplePolarDerDp 		= miCampo('h_SuplePolarDerDp').value;
	miObjeto.SuplePolarDerAngulo 	= miCampo('h_SuplePolarDerAngulo').value;
	miObjeto.SuplePolarIzqDp 		= miCampo('h_SuplePolarIzqDp').value;
	miObjeto.SuplePolarIzqAngulo 	= miCampo('h_SuplePolarIzqAngulo').value;

	miObjeto.RectPermitido	= miCampo('h_RectPermitido').value;
	miObjeto.SupleRectDerX 	= miCampo('h_SupleRectDerX').value;
	miObjeto.SupleRectDerY 	= miCampo('h_SupleRectDerY').value;
	miObjeto.SupleRectIzqX 	= miCampo('h_SupleRectIzqX').value;
	miObjeto.SupleRectIzqY 	= miCampo('h_SupleRectIzqY').value;

	miObjeto.EspPermitido 	= miCampo('h_EspPermitido').value;
	miObjeto.SupleEspDerV 	= miCampo('h_SupleEspDerV').value;
	miObjeto.SupleEspIzqV 	= miCampo('h_SupleEspIzqV').value;

	miObjeto.DescPermitido 	= miCampo('h_DescPermitido').value;
	miObjeto.SupleDescDerX 	= miCampo('h_SupleDescDerX').value;
	miObjeto.SupleDescDerY 	= miCampo('h_SupleDescDerY').value;
	miObjeto.SupleDescIzqX 	= miCampo('h_SupleDescIzqX').value;
	miObjeto.SupleDescIzqY 	= miCampo('h_SupleDescIzqY').value;

	miObjeto.BasePermitido 	= miCampo('h_BasePermitido').value;
	miObjeto.SupleBaseEspDer = miCampo('h_SupleBaseEspDer').value;
	miObjeto.SupleBaseEspIzq = miCampo('h_SupleBaseEspIzq').value;
	miObjeto.ojoder = miCampo('ojoder').checked;
	miObjeto.ojoizq = miCampo('ojoizq').checked;
	miObjeto.dondeestoy = miCampo('dondeestoy').value;
	miObjeto.empresa = miCampo('empresa').value;

  if (miGetElementById ('languaje') != null){
		miObjeto.languaje = miCampo('languaje').value;
	}else{		miObjeto.languaje = 'es';
	}


	miObjeto.str = "";

	var quehtml= "html/w_suplementos.html";

//	var objRetorno=window.showModalDialog("html/w_suplementos.html", miObjeto, "dialogHeight:630px; dialogLeft:300px;");
	var objRetorno=window.showModalDialog(quehtml, miObjeto, "dialogHeight:650px; dialogLeft:300px;");

	if (objRetorno.DatosOk == 1){
		miCampo('h_SuplePolarDerDp').value=objRetorno.SuplePolarDerDp;
		miCampo('h_SuplePolarDerAngulo').value=objRetorno.SuplePolarDerAngulo;
		miCampo('h_SuplePolarIzqDp').value=objRetorno.SuplePolarIzqDp;
		miCampo('h_SuplePolarIzqAngulo').value=objRetorno.SuplePolarIzqAngulo;

		miCampo('h_SupleRectDerX').value = objRetorno.SupleRectDerX;
		miCampo('h_SupleRectDerY').value = objRetorno.SupleRectDerY;
		miCampo('h_SupleRectIzqX').value = objRetorno.SupleRectIzqX;
		miCampo('h_SupleRectIzqY').value = objRetorno.SupleRectIzqY;

		miCampo('h_SupleEspDerV').value = objRetorno.SupleEspDerV;
		miCampo('h_SupleEspIzqV').value = objRetorno.SupleEspIzqV;
		miCampo('h_SupleDescDerX').value = objRetorno.SupleDescDerX;
		miCampo('h_SupleDescDerY').value = objRetorno.SupleDescDerY;
		miCampo('h_SupleDescIzqX').value = objRetorno.SupleDescIzqX;
		miCampo('h_SupleDescIzqY').value = objRetorno.SupleDescIzqY;
		miCampo('h_SupleBaseEspDer').value = objRetorno.SupleBaseEspDer;
		miCampo('h_SupleBaseEspIzq').value = objRetorno.SupleBaseEspIzq;

		// actualiza variables servidor

		var str = objRetorno.str;  // se han guardado los cambios en w_suplementos.html con un montaupdates ()
		if (trim(str) == ""){
			return;
		}
		if (objRetorno.dondeestoy >= 30){
			str += "&quecambia=consultaespesores";
		}else{
			str += "&quecambia=suplementos";
		}
		str += "&dondevoy="+objRetorno.dondeestoy;

		window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
	}else{
		if (objRetorno.DatosOk < 0){
//			alert ("algun suplemento tiene un valor incorrecto (en color rojo), no se admiten los cambios" );
			alert (dameRc(63));
		}
	}
}


function abreModalImax () {

	var miObjeto = new Object();

	miObjeto.DatosOk 		= true;
	miObjeto.dip_x 			= miCampo('h_dip_x').value;
	miObjeto.coDer_y 		= miCampo('h_coDer_y').value;
	miObjeto.puente 		= miCampo('h_puente').value;
	miObjeto.facialgrados 	= miCampo('h_facialgrados').value;
	miObjeto.pantos 		= miCampo('h_pantos').value;
	miObjeto.vertice 		= miCampo('h_vertice').value;
	miObjeto.identusuario 	= miCampo('h_identusuario').value;
	miObjeto.Corredor 		= miCampo('h_Corredor').value;
	miObjeto.gamatipo 		= trim(miCampo('gamatipo').value);
	miObjeto.gamasubtipo	= trim(miCampo('gamasubtipo').value);
	miObjeto.h_ModoCentradoV= trim(miCampo('h_ModoCentradoV').value);
	miObjeto.CorredorSupDf=miCampo('h_CorredorSupDf').value;
  miObjeto.idgama 	= miCampo('idgama').value;

  miObjeto.empresa = miCampo('empresa').value;
	if (miGetElementById ('languaje') != null){
	  miObjeto.languaje = miCampo('languaje').value;
	}else{
	  miObjeto.languaje = 'es';
	}

	miObjeto.ojoder = miCampo('ojoder').checked;
	miObjeto.ojoizq = miCampo('ojoizq').checked;
	miObjeto.dondeestoy 	= miCampo('dondeestoy').value;
	miObjeto.str = "";

	var quehtml= "html/w_prog_individualizado.html";

	var objRetorno=window.showModalDialog(quehtml, miObjeto, "dialogHeight:400px; dialogWidth:480px; dialogLeft:350px;");
	if (objRetorno.DatosOk==true){

		miCampo('h_dip_x').value 			= objRetorno.dip_x;
		miCampo('h_coDer_y').value 			= objRetorno.coDer_y;
		miCampo('h_puente').value			= objRetorno.puente;
		miCampo('h_facialgrados').value 	= objRetorno.facialgrados;
		miCampo('h_pantos').value 			= objRetorno.pantos;
		miCampo('h_vertice').value 			= objRetorno.vertice;
		miCampo('h_identusuario').value 	= objRetorno.identusuario;
		miCampo('h_Corredor').value 		= objRetorno.Corredor;
		miCampo('h_CorredorSupDf').value 		= objRetorno.CorredorSupDf;

		var str = objRetorno.str;  // se han guardado los cambios en w_suplementos.html con un montaupdates ()

//alert (str);
		if (trim(str) == ""){
//			alert ("nada actualizado");
			return;
		}
		str += "&quecambia=ParamsImaxSinForma";
		str += "&dondevoy=00";

		window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
	}
}

function PantosmmClic_w (dedondevengo)
{
	miCampo('unidadgr').checked = ! miCampo('unidadmm').checked;
	if (dedondevengo == 0)
		refrescaDibujoPorValor_w ('pantos');
}

function PantosgrClic_w (dedondevengo)
{
	miCampo('unidadmm').checked = ! miCampo('unidadgr').checked;
	if (dedondevengo == 0)
		refrescaDibujoPorValor_w ('pantos');
}

function abs_w (valor)
{
	if (valor < 0){
		return (valor * -1);
	}
	return valor;
}

function PonEsperando (valor)
{
	if (valor == 1){
		var cargando = '<img border="0" src="img/cargando2.gif"width="16" height="16">';

		if (miGetElementById('bSemaforo') != null){
			miCampo('bSemaforo').value = "1";
		}
		if (miGetElementById('reloj') != null){	// estoy en version onlineweb
			miGetElementById('reloj').innerHTML = cargando;
		}

		if (miGetElementById('IdEstoyEnMiPedido') != null){
			miCampo('ComboTrats').disabled 		= true;
			miCampo('ComboGamasDer').disabled 	= true;
			miCampo('ComboColores').disabled 	= true;
			miCampo('ComboTonos').disabled 		= true;
			miCampo('ComboTrats').disabled 		= true;
			miCampo('ComboGamasDer').disabled 	= true;

      activafMatDis (true);

			if (miGetElementById('fgrupo') != null){
				miCampo('fgrupo').disabled 			= true;
			}
			miCampo('Cliente').disabled 		= true;

		  miCampo('ojoder').disabled 			= true;
			miCampo('ojoizq').disabled 			= true;
			if (miGetElementById('cb_OrigenForma') != null){
				  miCampo('cb_OrigenForma').disabled 	= true;
			}
			if (miGetElementById('cb_Pulido') != null){
				  miCampo('cb_Pulido').disabled 			= true;
			}

			if (miGetElementById('rb_biselar') != null){
				miGetElementById('rb_biselar').disabled 			= true;
			}
			if (miGetElementById('cb_Montura') != null){
				miGetElementById('cb_Montura').disabled 			= true;
			}
			if (miGetElementById('cb_Acabado') != null){
				miGetElementById('cb_Acabado').disabled 			= true;
			}
			if (miGetElementById('cb_Posicion') != null){
				miGetElementById('cb_Posicion').disabled 			= true;
			}

		}

	}else{
		if (miGetElementById('bSemaforo') != null){
			miCampo('bSemaforo').value = "0";
		}
		if (miGetElementById('reloj') != null){	// estoy en version onlineweb
			miGetElementById('reloj').innerHTML = "";
		}

		if (miGetElementById('IdEstoyEnMiPedido') != null){
			miCampo('ComboTrats').disabled 		= false;
			miCampo('ComboGamasDer').disabled 	= false;
			miCampo('ComboColores').disabled 	= false;
			miCampo('ComboTonos').disabled 		= false;
			miCampo('ComboTrats').disabled 		= false;
			miCampo('ComboGamasDer').disabled 	= false;

		  var ft = miCampo('ftodas').checked;
      activafMatDis (ft);

			if (miGetElementById('fgrupo') != null){
				miCampo('fgrupo').disabled 			= false;
			}
			miCampo('Cliente').disabled 		= false;

      var nca = 0;
      try{      // numerocampanyaasociado, podia estar desactivado entonces no activar
          nca = parseInt(miCampo('h_nca').value);
      }
			catch(e){
          nca = 0;
      }
      if (nca == 0){
			    miCampo('ojoder').disabled 			= false;
			    miCampo('ojoizq').disabled 			= false;
      }

			if (miGetElementById('cb_OrigenForma') != null){
				miCampo('cb_OrigenForma').disabled 	= false;
			}

			if (miGetElementById('cb_Pulido') != null ){
          if (miGetElementById('h_soymineral') != null ){
              if (miCampo('h_soymineral').value != true){	// tengo que aguantar como estaba pq lentes minerales esta desactivado
                miCampo('cb_Pulido').disabled 	= false;
              }else{
                miCampo('cb_Pulido').disabled 	= true;
              }
          }
			}

			if (miGetElementById('rb_biselar') != null){
				miGetElementById('rb_biselar').disabled 			= false;
			}
			if (miGetElementById('cb_Montura') != null){
				miGetElementById('cb_Montura').disabled 			= false;
			}
			if (miGetElementById('cb_Acabado') != null){
				miGetElementById('cb_Acabado').disabled 			= false;
			}
			if (miGetElementById('cb_Posicion') != null){
				miGetElementById('cb_Posicion').disabled 			= false;
			}
		}

	}
}


function activafMatDis (disable)
{
		for (var fd=0; fd < miForm().fdiseno.length; fd++){         // solo miform con firefox no miCAmpo
			  miForm().fdiseno[fd].disabled = disable;
    }
	  for (var fd=0; fd < miForm().fmaterial.length; fd++){       // solo miform con firefox no miCAmpo
			  miForm().fmaterial[fd].disabled = disable;
    }
}


function FuerzaNoEspera ()
{
      if (miGetElementById('bSemaforo') != null){
          if (miCampo('bSemaforo').value == "1"){
              miCampo('bSemaforo').value = "0";
          }
      }
}

function Espere ()
{
	if (miCampo('bSemaforo').value == "1"){
//		alert ("Espere por favor ...");
		alert (dameRc(96));
		return true;
	}
	return false
}

function ponNuevoUsuario ()
{
	var usuario = miCampo('edNuevoUsuario').value;
	if (usuario.length < 6){
//		alert ("el usuario minimo cuatro letras o números, inténtelo de nuevo");
		alert (dameRc(64));
		return;
	}
	var nombre = miCampo('edNuevoNombre').value;
	if (nombre.length < 4){
//		alert ("el nombre del usuario es obligatorio");
		alert (dameRc(97));
		return;
	}
	var pass = miCampo('edNuevoPassword').value;
	if (pass.length < 6){
//		alert ("el password minimo ha de tener 6 letras o números, inténtelo de nuevo");
		alert (dameRc(65));
		return;
	}
	var str = "quecambia=nuevoUsuario";
	str += "&usuario=";
	str += usuario;
	str += "&nombre=";
	str += nombre;
	str += "&pass=";
	str += pass;
	str += "&refrescadibujo=0";	// para
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function borraItemComboMenosUno ()
{
	var select = miGetElementById('cbUsuarios');
	for (var i=0; i < select.length; i++){
		if (select.options[i].value == -1){
			select.options[i] = null;	// borra item
		}
		break;
	}
}

function eliminaUsuario ()
{
	var usuario = miCampo('edBorraUsuario').value;
	if (usuario.length < 4){
//		alert ("para borrarlo debes escojer un usuario de la lista.");
		alert (dameRc(66));
		return;
	}
	var str = "quecambia=eliminaUsuario";
	str += "&usuario=";
	str += usuario;
	str += "&refrescadibujo=0";	// para
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function onChangeCbUsuarios ()
{
	var iu = miCampo('cbUsuarios').selectedIndex;
	if (iu < 0) return;
	var usuario = miCampo('cbUsuarios').options[iu].value;
	if (usuario != ""){
		miCampo('edNuevoUsuario').value = "";
		miCampo('edNuevoPassword').value = "";
		if (usuario != -1)
			miCampo('edBorraUsuario').value = usuario;
	}
}

function onChangeCbSalvaCliente ()
{
	var nc = miCampo('cbSalvaCliente').selectedIndex;
	if (nc < 0) return;
	var nuevoPedido = parseInt(miCampo('cbSalvaCliente').options[nc].value);
	var str = "quecambia=clienteNuevoPedido";
	str += "&clienteNuevoPedido=";
	str += nuevoPedido;
	str += "&refrescadibujo=0";	// para
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function onChangeCbClientesActivos ()
{
	var iu = miCampo('cbClientesActivos').selectedIndex;
	if (iu < 0) return;
	var cliente = miCampo('cbClientesActivos').options[iu].value;
	if (cliente != ""){
		miCampo('edNuevoCliente').value = "";
		miCampo('edNombreCliente').value = "";
		miCampo('edBorraCliente').value = cliente;
	}
}

function eliminaCliente ()
{
	var cliente = miCampo('edBorraCliente').value;
	if (cliente.length < 4){
//		alert ("para borrarlo debes escojer un cliente de la lista.");
		alert (dameRc(67));
		return;
	}
	var str = "quecambia=eliminaConCliente";
	str += "&cliente=";
	str += cliente;
	str += "&refrescadibujo=0";
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function nuevoCliente ()
{
	var cliente = miCampo('edNuevoCliente').value;
	if (cliente.length != 4){
//		alert ("el código de cliente debe tener cuatro digitos");
		alert (dameRc(68));
		return;
	}
	var nombre = miCampo('edNombreCliente').value;
	if (nombre.length < 4){
//		alert ("el nombre del cliente minimo ha de tener 4 letras.");
		alert (dameRc(69));
		return;
	}
	var str = "quecambia=nuevoConCliente";
	str += "&cliente=";
	str += cliente;
	str += "&nombre=";
	str += nombre;
	str += "&refrescadibujo=0";
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function aceptaVertical ()
{
	var str = "quecambia=ModoCentradoV";
	var i = miCampo('cbRefAltura').selectedIndex;
	str += "&refaltura=";
	str += i;
	i = miCampo('cbRefMono').selectedIndex;
	str += "&refmono=";
	str += i;
	i = miCampo('cbRefBifo').selectedIndex;
	str += "&refbifo=";
	str += i;
	i = miCampo('cbRefProg').selectedIndex;
	str += "&refprog=";
	str += i;
	str += "&refrescadibujo=0";
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function aceptaHorizontal ()
{
	var str = "quecambia=ModoCentradoH";
	var i = miCampo('cbLejosCercaBifo').selectedIndex;
	str += "&lejoscercabifo=";
	str += i;
	i = miCampo('cbLejosCercaProg').selectedIndex;
	str += "&lejoscercaprog=";
	str += i;
	str += "&refrescadibujo=0";
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function testCalibrado ()
{
	alert ("test calibrado");
}

function onChangeCalibre ()
{
  miCampo('edCalibre').value = comasPorPuntos(miCampo('edCalibre').value);
  var fCalibre = miCampo('edCalibre').value;
	var tmp =  (fCalibre * M_PI ) + 0.005;
	var tmpint = parseInt(tmp * 100);
	miCampo('edPerimetro').value = tmpint / 100;
}

function onChangePerimetro ()
{
  miCampo('edPerimetro').value = comasPorPuntos(miCampo('edPerimetro').value);
	var fPerimetro = miCampo('edPerimetro').value;
	var tmp = (fPerimetro / M_PI ) + 0.005;
	var tmpint = parseInt(tmp * 100);
	miCampo('edCalibre').value = tmpint / 100;
}

function comasPorPuntos (value)
{
	if (value.indexOf (',') > -1){
			// cambio comas por puntos
			value = value.replace(",", ".");	// cambio comas por puntos
	}
  return value;
}

function aceptaTracer ()
{
	var str = "quecambia=ParamsTracer";
	var tt = miCampo('cbTipoTracer').selectedIndex;
	str += "&tipotracer=";
	str += tt;
	tt = miCampo('cbPuertoScaner').selectedIndex;
	str += "&puertoscaner=";
	str += tt + 1;    	// lo aumento en uno para poasarlo a del indice del combo a puerto COM real
	var tmp = miCampo('edPerimetro').value * 100;
	var tmpint = parseInt(tmp);
	str += "&perimetro=";
	str += tmpint;	// ya esta pasado a integer para salvarlo directamente en BD
	str += "&refrescadibujo=0";
	var tt = tipoalgoritmo ();
	if (tt > -1){
		str += "&tipoalgoritmo=";
		str += tt;
	}
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function aceptaEspesoresMinimos ()
{
	if (miValidaElemen('edEspMinRanura',0) == false) return;
	if (miValidaElemen('edEspMinTaladro',0) == false) return;
	if (miValidaElemen('edEspMinCentro',0) == false) return;

	var str = "quecambia=EspesoresMinimos";
	var ee = miCampo('edEspMinRanura').value * 10;	// en BD es integer
	str += "&espminranura=";
	str += ee;
	ee = miCampo('edEspMinTaladro').value * 10;	// en BD es integer
	str += "&espmintaladro=";
	str += ee;
	ee = miCampo('edEspMinCentro').value * 10;	// en BD es integer
	str += "&espmincentro=";
	str += ee;	// ya esta pasado a integer para salvarlo directamente en BD
	str += "&refrescadibujo=0";
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function dameTxtPuerto (puerto)
{
	var com;
	switch (puerto){
		case 1: com = "COM1";	break;
		case 2: com = "COM2";	break;
		case 3: com = "COM3";	break;
		case 4: com = "COM4";	break;
		case 5: com = "COM5";	break;
		case 6: com = "COM6";	break;
		case 7: com = "COM7";	break;
		case 8: com = "COM8";	break;
		default: com = "SIN DEFINIR";
	}
	return com;
}

function muestraMsgAyuda_w (txtpuerto)
{
/*	var txt  = "No se ha creado bien el objeto ActiveX. ASEGURESE:\n";
	txt += "1.- en la parte inferior derecha del Navegador aparezca 'Sitios de confianza en verde'.\n";
	txt += "2.- de haber activado en la configuración del Navegador los apartados correspondientes a 'Controles ActiveX'.\n";
	txt += "3.- de haber instalado el driver correpondiente desde la pagina de descargas de www.opticaprats.com.\n";
	txt += "4.- si no es la tableta, ASEGURESE que el puerto es el ";*/
	var txt  = dameRc(70);
	txt += "\n";
	txt += dameRc(71);
	txt += "\n";
	txt += dameRc(72);
	txt += "\n";
	txt += dameRc(73);
	txt += "\n";
	txt += dameRc(74);
	txt += txtpuerto;
	txt += ".\n";
	alert (txt);
}

function borraString ()
{
	return new String ("");
}

function QueExplorador()
{
//
// ojo quwe esta repetida en w_prog_individualizado.html
// y en w_suplementos.html
//
//	if (navigator.userAgent.indexOf('MSIE 8') != -1)	 return "MSIE8";
	if (navigator.userAgent.indexOf('MSIE') != -1)	 return "MSIE";
	if (navigator.userAgent.indexOf('Opera') != -1)	 return "Opera";
	if (navigator.userAgent.indexOf('Chrome') != -1) return "Chrome";
	if (navigator.userAgent.indexOf('Safari') != -1) return "Safari";
	if (navigator.userAgent.indexOf('Firefox') != -1)return "Firefox";
	return "MSIE";
}

function SistemaOperativo()
{
	if (navigator.userAgent.indexOf('IRIX') != -1) 			{var SO = "Irix" }
	else if ((navigator.userAgent.indexOf('Win') != -1) && (navigator.userAgent.indexOf('98') != -1)) {var SO= "Windows 98"}
	else if ((navigator.userAgent.indexOf('Win') != -1) && (navigator.userAgent.indexOf('95') != -1)) {var SO= "Windows 95"}
	else if (navigator.appVersion.indexOf("16") !=-1) {var SO= "Windows 3.1"}
	else if (navigator.userAgent.indexOf("NT 5.1") !=-1) {var SO= "Windows XP"}
	else if (navigator.userAgent.indexOf("NT 5.2") !=-1) {var SO= "Windows Server 2003"}
	else if (navigator.userAgent.indexOf("NT 5") !=-1) {var SO= "Windows 2000"}
	else if (navigator.userAgent.indexOf("NT 6") !=-1) {var SO= "Windows Vista"}
	else if (navigator.appVersion.indexOf("NT") !=-1) {var SO= "Windows NT"}
	else if (navigator.appVersion.indexOf("SunOS") !=-1) {var SO= "SunOS"}
	else if (navigator.appVersion.indexOf("Linux") !=-1) {var SO= "Linux"}
	else if (navigator.userAgent.indexOf('Mac') != -1) {var SO= "Macintosh"}
	else if (navigator.appName=="WebTV Internet Terminal") {var SO="WebTV"}
	else if (navigator.appVersion.indexOf("HP") !=-1) {var SO="HP-UX"}
	else {var SO= "No identificado"}
	return SO;
}

function tipoalgoritmo ()
{
	if (miGetElementById ('rb_tipoalgoritmo') == null){
		return -1;
	}
	var itipo;
	var haymarcado = false;
	for (itipo=0; itipo < miForm().rb_tipoalgoritmo.length; itipo++){
		if (miForm().rb_tipoalgoritmo[itipo].checked){
			haymarcado = true;
			break;
		}
	}
	if (haymarcado == false){
		return -1;
	}

	return itipo;
}

//
// normal con comillas, primero finales y luego las iniciales de los deltas
// sin b64 y vista sin comillas
//

function scanOmaOcx_w (puerto, tipo_tracer, cpp_version)
{
//alert (puerto+1);

    var bSoyAccura = false;
	  var bSoyTableta = false;

	  var tt = trim(tipo_tracer);
	  if (tt == "tableta"){
      bSoyTableta = true;
      puerto = damePuertoSegunIdioma ();
    }

	  if (tt == "accura"){	// cliente 3513 exMarta lo tiene en OMA
		    bSoyAccura = true;
	  }

	  if (miGetElementById ('tipoalgoritmotracer') != null){
		    var tt = miCampo ('tipoalgoritmotracer').value;

		    if (tt == 1){
			      scanOmaOcxVista_w (puerto, tipo_tracer);
        }else{
		        if (tt == 2){
			            if (cpp_version > 100){  // venimos de PratsOnlineWeb.exe
                      scanOmaSocket_w (puerto, tipo_tracer);
                  }else{
                      if (bSoyTableta){
                          abreModalTableta ();
//                          scanTabletaJavaApplet2 (puerto);          // dibuja en applet a pelo
                      }else{
//                          scanOmaJavaApplet (puerto, tipo_tracer);  // dll scanlapiz de pago
	                        scanOmaOcxNormal_w (puerto, tipo_tracer);
                      }
                  }
            }else{
	              scanOmaOcxNormal_w (puerto, tipo_tracer);
            }
        }

	  	  return;
	  }
	  //
	  var so = SistemaOperativo();
	  // 1.- si soy tableta aunque sea vista me voy al scanOmaOcxNormal_w (12.12.2008 sino petaba abajo en montaje)
	  // 2.- si soy accura aunque NO sea vista me voy al scanOmaOcxVista_w (12.12.2008 sino petaba MANLLEU.2153)
	  // 3.- si soy internet explorer 8 me voy al vista
	  var ie8 = false;
    // ojo nacho
    //alert (navigator.userAgent);
    //	if (navigator.userAgent.indexOf('MSIE 8') != -1){
    // mejor la pregunta de abajo pq el msie8 tiene un boton compatibilidad versiones anteriores que si esta pulsado no aparece MSIE 8
    //	if (navigator.userAgent.indexOf('Mozilla/4.0') != -1){		// en ultima posicion esta bien detras del MSIE
	  if (navigator.userAgent.indexOf('MSIE 8') != -1){
		    ie8 = true;
	  }
    //	if (bSoyAccura == true || (so == "Windows Vista" && bSoyTableta == false) || ie8 == true){
	  if (bSoyAccura == true || (so == "Windows Vista" && bSoyTableta == false)){
		    scanOmaOcxVista_w (puerto, tipo_tracer);
	  }else{
		    scanOmaOcxNormal_w (puerto, tipo_tracer);
	  }
}

function dame_object_ocx ()
{
    var obb = '<OBJECT  ID="ScanMontura1"';
    obb += 'classid="clsid:834FBEE5-D957-11D3-9C50-0060972F00DC"';
    obb += 'codebase="info/ScanOma.inf"';
    obb += 'width=1 height=1 align=center hspace=0 vspace=0></OBJECT>';
    return obb;
}

function scanOmaJavaApplet (puerto, tipo_tracer)
{
/*    var txtDiv = '<applet code="NewApplet" ';
    txtDiv += 'archive="javascript/iScanMontura.jar, javascript/lib/ezjcom18.jar, ';
    txtDiv += 'javascript/lib/JScanLapiz.jar,javascript/lib/plugin.jar" ';
    txtDiv += 'WIDTH=0 HEIGHT=0 name="iScanMontura" MAYSCRIPT> ';
    txtDiv += '<param name="h_puerto_scaner" value="';
    txtDiv += puerto + 1;
    txtDiv += '"/>'
    txtDiv += '<param name="h_ModoScan" value="';
    txtDiv += CalModoScan (tipo_tracer);
    txtDiv += '"/>';
    txtDiv += '</applet>';*/

    var txtDiv = '<applet code="AppletOma" ';
    txtDiv += 'archive="javascript/JavaAppletOma.jar, javascript/lib/comm.jar, ';
//    txtDiv += 'javascript/lib/plugin.jar, javascript/lib/AbsoluteLayout.jar, javascript/lib/scanoma.CAB" ';
    txtDiv += 'javascript/lib/plugin.jar, javascript/lib/AbsoluteLayout.jar" ';
    txtDiv += 'WIDTH=400 HEIGHT=250 name="AppletOma" MAYSCRIPT> ';
    txtDiv += '<param name="h_puerto_scaner" value="';
    txtDiv += puerto + 1;
    txtDiv += '"/>'
    txtDiv += '<param name="h_puerto_scaner" value="';
    txtDiv += puerto + 1;
    txtDiv += '"/>'
    txtDiv += '<param name="h_ancho" value="360"/>';
    txtDiv += '<param name="h_alto" value="230"/>';
    txtDiv += '</applet>';

// ojo nacho
alert (txtDiv);

		miGetElementById('JavaAppletOcx').innerHTML = txtDiv;
}

function retJavaApplet (strarray) {

  	var realJsString = strarray + "";
  	var arrayFromJava = realJsString.split("{|}");

  	var radioIniDer   = arrayFromJava[0];
  	var DeltasDer     = arrayFromJava[1];
  	var BaseDer       = arrayFromJava[2];
  	var DistBordeDer  = arrayFromJava[3];
  	var TaladrosDer   = arrayFromJava[4];
  	var radioIniIzq   = arrayFromJava[5];
  	var DeltasIzq     = arrayFromJava[6];
	  var BaseIzq       = arrayFromJava[7];
	  var DistBordeIzq  = arrayFromJava[8];
	  var TaladrosIzq   = arrayFromJava[9];

	  var hayojoderecho   = (radioIniDer > 0);
	  var hayojoizquierdo = (radioIniIzq > 0);

	  if (hayojoderecho == false && hayojoizquierdo == false){
		    alert (dameRc(75));
      	return;
	  }

    var bSoyTableta = false;
    if (hayojoderecho==true){
      if ( parseInt(BaseDer) >= 999) {
          bSoyTableta = true;
      }
    }
    if (hayojoizquierdo==true) {
      if ( parseInt(BaseIzq) >= 999 ){
          bSoyTableta = true;
      }
    }

	  var bSoyAlAire = false; // cuando el puente es cero lo activo
	  var	strFin;
    var strTals;

    if (parseInt(radioIniDer) > 0){
	    // la comilla inicial al final sino va mal, ultimo punto montura se lo carga en scanoma
      var strDer = DeltasDer;
	    strDer += '\"';
//	    var ll_fallo_como_alert = strDer.length;
	    strDer += "&based=";
	    strDer += BaseDer;
	    if (bSoyTableta == true){
          strDer += "&taladrosd=";
			    if (TaladrosDer != "no hay taladros"){
		          strTals = '\"';
              strTals += TaladrosDer;
		          strTals += '\"';
              strDer  += strTals;
			    }else{
              strDer += "";
          }
      }else{	// si soy tableta no machaco el puente con 0, puede haber puente
				  // entrado si es un imax en la pantalla prog_individualizado.html
	        strDer += "&puente=";
			    var puente = (parseFloat(DistBordeDer)*2);
			    if ( puente < 5 ){
			        bSoyAlAire = true;	// solo devuelvo una lente
          }
	        strDer += new String (puente);
      }
      strDer += "&radioinid=";
	    strDer += radioIniDer;
	    // debe ser parametro POST pq van muchos datos mas de 255 caracteres que permite el GET
		  // la comilla inicial la pongo aqui, ultimo punto montura se lo carga en scanoma
		  strFin = new String ('formad=\"'+strDer);
	  }
	  //	muestro progres bar
	  var strMas = montaUpdates_w ();
	  strMas += "&quecambia=preconsultaOcxTracer";
	  strMas += "&dondeestoy=11";
	  strMas += "&dondevoy=14";// previsualizacion de la forma del tracer
	  // modoscan para ver si b64 o no
	  if (iModoScan > 0){
		  strMas += "&callmodoscan=";
		  strMas += iModoScan;
	  }
	  //
	  strFin += strMas;
	  //
	  // OJO IZQUIERDO
	  //
    if (hayojoderecho == true && (bSoyTableta == true || bSoyAlAire == true) ){
        //		alert ("no enviare el ojo izquierdo ya se hara simetria");
	  }else{
        if (parseInt(radioIniIzq) > 0){
    	      var strIzq = DeltasIzq;
			      // la comilla inicial al final sino va mal, ultimo punto montura se lo carga en scanoma
			      strIzq += '\"';
			      strIzq += "&basei=";
			      strIzq += BaseIzq;
			      if (bSoyTableta == true){
			          strIzq += "&taladrosi=";
				        if (obj.Taladros != "no hay taladros"){
		                strTals = '\"';
                    strTals += TaladrosIzq;
		                strTals += '\"';
        	          strIzq += strTals;
				        }else{
                    strIzq += "";
                }
			      }
			      strIzq += "&radioinii=";
			      strIzq += radioIniIzq;
			      // falta comilla del principio
			      // la comilla inicial la pongo aqui, ultimo punto montura se lo carga en scanoma
		  	    strFin += new String ('&formai=\"'+strIzq);
      }
	}


	var cargando = '<img border="0" src="img/cargando2.gif"width="16" height="16">';
	if (miGetElementById('DibujaUnaIdForma') != null){	// estoy en version onlineweb
		  miGetElementById('DibujaUnaIdForma').innerHTML = cargando;
	}

	if (solodebugFormaOcx == 1){
	    alert ("ojo (solodebugFormaOcx) activado en main.js");
		  window.setTimeout("con_SetServidor_w.connect('utf8_iso.php', 'POST', '"+strFin+"', fin_SetServidor_w)", 0);
		  return;
	}

	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'POST', '"+strFin+"', fin_SetServidor_w)", 0);
}

function damePuertoSegunIdioma ()
{
    var puerto = 0; // español
    if (SoyLanguageDe()){
        puerto = 6;
    }
    if (SoyLanguageFr()){
        puerto = 5 ;
    }
    if (SoyLanguagePt()){
        puerto = 4;
    }
    if (SoyLanguageEn()){
        puerto = 7 ;
    }
    return puerto - 1;  // pq luego siempre sumo uno
}

function scanOmaSocket_w (puerto, tipo_tracer)
{
	  var tt = trim(tipo_tracer);
	  if (tt == "tableta"){
      bSoyTableta = true;
      puerto = damePuertoSegunIdioma ();
    }

    var param = "<GET_XML>";
    param += "<PUERTO>";
    param += puerto + 1;
    param += "</PUERTO>";
	  if (tt == 'nideck'){
        param += "<MODOSCAN>";  // solo para tracer nidek
        param += CalModoScan (tipo_tracer);
        param += "</MODOSCAN>";
    }
    param += "</GET_XML>";

// ojo nacho
//alert(param);

    socket_connect('localhost', 55000);

	  socket_send (param);
}

function scanOmaOcxNormal_w (puerto, tipo_tracer)
{
	if (Espere ()) return;

	var bSoyTableta = false;
	if (trim(tipo_tracer) == "tableta"){
		bSoyTableta = true;
	}
	var bSoyAlAire = false; // cuando el puente es cero lo activo

	// objeto ocx
	var obj = miGetElementById('ScanMontura1');
	if (obj == null){
		muestraMsgAyuda_w (dameTxtPuerto(puerto + 1));
		return;
	}

	var ms = CalModoScan (tipo_tracer);

	try{
		obj.PuertoComm = puerto + 1;	// viene la posicion en el combo, +1 para que sea el puerto
		obj.ModoScan = ms;
		obj.Explora();			// metodo del ocx
	}
	catch(e){
		if (dameTxtPuerto(obj.PuertoComm) == "SIN DEFINIR"){	// significa que no se ha creado bien el activex
			muestraMsgAyuda_w (dameTxtPuerto(puerto + 1));
			return;
		}
		muestraMsgAyuda_w ();
//		alert ("ASEGURESE que el puerto es el " + dameTxtPuerto(puerto + 1)) ;
		return;
	}
	var	strFin;
	//
	// 	OJO DERECHO
	//
    obj.Ojo = 0;	// referencia ojo derecho
	var hayojoderecho = false;
  	if (obj.RadioIni > 0){
		hayojoderecho = true;
		var deltasDer = new String(obj.RadioDeltas);
		// la comilla inicial al final sino va mal, ultimo punto montura se lo carga en scanoma
		var strDer = deltasDer;
		strDer += '\"';
		var ll_fallo_como_alert = strDer.length;
		strDer += "&based=";
		strDer += obj.Base.toFixed (2);
		if (bSoyTableta == true){
			strDer += "&taladrosd=";
			if (obj.Taladros != "no hay taladros")	strDer += obj.Taladros;
			else									strDer += "";
		}else{	// si soy tableta no machaco el puente con 0, puede haber puente
				// entrado si es un imax en la pantalla prog_individualizado.html
			strDer += "&puente=";
			var puente = (obj.DistBorde*2).toFixed (2);
			if ( puente < 5 ){
				bSoyAlAire = true;	// solo devuelvo una lente
			}
			strDer += new String (puente);
		}
		strDer += "&radioinid=";
		strDer += obj.RadioIni.toFixed (2);
		// debe ser parametro POST pq van muchos datos mas de 255 caracteres que permite el GET
		// la comilla inicial la pongo aqui, ultimo punto montura se lo carga en scanoma
		strFin = new String ('formad=\"'+strDer);
	}
	//	muestro progres bar
	var strMas = montaUpdates_w ();
	strMas += "&quecambia=preconsultaOcxTracer";
	strMas += "&dondeestoy=11";
	strMas += "&dondevoy=14";// previsualizacion de la forma del tracer
	// modoscan para ver si b64 o no
	if (iModoScan > 0){
		strMas += "&callmodoscan=";
		strMas += iModoScan;
	}
	//
	strFin += strMas;
	//
	// OJO IZQUIERDO
	//
    obj.Ojo = 1;	// referencia ojo derecho
	var hayojoizquierdo = false;
	if (hayojoderecho == true && (bSoyTableta == true || bSoyAlAire == true) ){
//		alert ("no enviare el ojo izquierdo ya se hara simetria");
	}else{
  		if (obj.RadioIni > 0){
			hayojoizquierdo = true;
			var deltasIzq = new String(obj.RadioDeltas);
    		var strIzq = deltasIzq;
			// la comilla inicial al final sino va mal, ultimo punto montura se lo carga en scanoma
			strIzq += '\"';
			ll_fallo_como_alert = strIzq.length;
			strIzq += "&basei=";
			strIzq += obj.Base.toFixed (2);
			if (bSoyTableta == true){
				strIzq += "&taladrosi=";
				if (obj.Taladros != "no hay taladros")	strIzq += obj.Taladros;
				else									strIzq += "";
			}
			strIzq += "&radioinii=";
			strIzq += obj.RadioIni.toFixed (2);
			// falta comilla del principio
			// la comilla inicial la pongo aqui, ultimo punto montura se lo carga en scanoma
			strFin += new String ('&formai=\"'+strIzq);
		}
		if (hayojoizquierdo == false && hayojoderecho == false){
//			alert ("NO SE HA RECIBIDO BIEN LA FORMA, vuelva a intentarlo");
			alert (dameRc(75));
			return;
		}
	}
	var cargando = '<img border="0" src="img/cargando2.gif"width="16" height="16">';
	if (miGetElementById('DibujaUnaIdForma') != null){	// estoy en version onlineweb
		miGetElementById('DibujaUnaIdForma').innerHTML = cargando;
	}
	PonEsperando (1);
	if (solodebugFormaOcx == 1){
		alert ("ojo (solodebugFormaOcx) activado en main.js");
		window.setTimeout("con_SetServidor_w.connect('utf8_iso.php', 'POST', '"+strFin+"', fin_SetServidor_w)", 0);
		return;
	}

	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'POST', '"+strFin+"', fin_SetServidor_w)", 0);
}

var con_PostBodyDer = new XHConn ();
var con_PostBodyIzq = new XHConn ();

var fin_PostBody = function (oXML)
{
	var hayojoder = false;
	var hayojoizq = false;
	if (STR_FormaOcxDer.length > 5){
		hayojoder = true;
	}else{
		miCampo('ocxFormaDer').value = "";
		if (STR_FormaOcxIzq.length > 5){
			hayojoizq = true;
		}else{
			miCampo('ocxFormaIzq').value = "";
		}
	}

	EnviaOjoPorOjo (hayojoder, hayojoizq);
};

function EnviaOjoPorOjo (hayojoder, hayojoizq)
{
	PonEsperando (1);
	var strFin = "";
	strFin = montaUpdates_w ();
	if (hayojoder == false && hayojoizq == false){
		strFin += "&quecambia=preconsultaOcxTracerVista";
		strFin += "&dondeestoy=11";
		strFin += "&dondevoy=14";
		if (iModoScan > 0){
			strFin += "&callmodoscan=";
			strFin += iModoScan;
		}
		window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+strFin+"', fin_SetServidor_w)", 0);
	}else{
		if (hayojoder == true){
			strFin += STR_FormaOcxDer;
			STR_FormaOcxDer = "";
		}else{
			strFin += STR_FormaOcxIzq;
			STR_FormaOcxIzq	= "";
		}

		if (hayojoder == true){
//alert("ojo nacho der");
			window.setTimeout("con_PostBodyDer.connect('servidor.php', 'POST', '"+strFin+miCampo('ocxFormaDer').value+"', fin_PostBody)", 500);
		}else{
			window.setTimeout("con_PostBodyIzq.connect('servidor.php', 'POST', '"+strFin+miCampo('ocxFormaIzq').value+"', fin_PostBody)", 500);
//alert("ojo nacho izq");
		}
	}
};

function scanOmaOcxVista_w (puerto, tipo_tracer)
{
	if (Espere ()) return;

	var bSoyTableta = false;
	if (trim(tipo_tracer) == "tableta"){
		bSoyTableta = true;
	}
	var bSoyAlAire = false; // cuando el puente es cero lo activo


	STR_FormaOcxDer = "";
	STR_FormaOcxIzq = "";
	miCampo('ocxFormaDer').value = "";
	miCampo('ocxFormaIzq').value = "";

	// objeto ocx
	var obj = miGetElementById('ScanMontura1');
	if (obj == null){
		muestraMsgAyuda_w (dameTxtPuerto(puerto + 1));
		return;
	}
	var ms = CalModoScan (tipo_tracer);

	try{
		obj.PuertoComm = puerto + 1;	// viene la posicion en el combo, +1 para que sea el puerto
		obj.ModoScan = ms;
		obj.Explora();			// metodo del ocx
	}
	catch(e){
		if (dameTxtPuerto(obj.PuertoComm) == "SIN DEFINIR"){	// significa que no se ha creado bien el activex
			muestraMsgAyuda_w (dameTxtPuerto(puerto + 1));
			return;
		}
		muestraMsgAyuda_w ();
		return;
	}
	//
	// 	OJO DERECHO
	//
	var iVista = 0;
	var bSimetria = false;
	var talsDer = "";
	var talsIzq = "";
	var	hayTalsDer = false;
    obj.Ojo = 0;	// referencia ojo derecho
	var hayojoderecho = false;
	var hayojoizquierdo = false;
  	if (obj.RadioIni > 0){
		hayojoderecho = true;
		// BASE MONTURA
		STR_FormaOcxDer = "&queaumenta"+iVista+"=basemontura";
		STR_FormaOcxDer += "&valor"+iVista+"=";
		STR_FormaOcxDer += obj.Base.toFixed (2);
		iVista++;
		// TALADROS DER
		if (bSoyTableta == true){
			talsDer = trim(new String(obj.Taladros));
			if (talsDer.length > 10){
				if (talsDer != "no hay taladros"){
//					if (talsDer.indexOf ('A;A;A;') > -1){
						hayTalsDer = true;
						STR_FormaOcxDer += "&queaumenta"+iVista+"=taladrosBis";
						STR_FormaOcxDer += "&valor"+iVista+"=";
						STR_FormaOcxDer += talsDer;
						iVista++;
//					}
				}
			}
		}else{ 	// PUENTE
				// si soy tableta no machaco el puente con 0, puede haber puente
				// entrado si es un imax en la pantalla prog_individualizado.html
			STR_FormaOcxDer += "&queaumenta"+iVista+"=puente";
			STR_FormaOcxDer += "&valor"+iVista+"=";
			var puente = (obj.DistBorde*2).toFixed (2);;
			if (puente < 5){
				bSoyAlAire = true; 	// no paso la forma izquierda
			}
			STR_FormaOcxDer += new String (puente);
			iVista++;
		}
		// RadioINIDer
		STR_FormaOcxDer += "&queaumenta"+iVista+"=radioIniDerVista";
		STR_FormaOcxDer += "&valor"+iVista+"=";
		STR_FormaOcxDer += obj.RadioIni.toFixed (2);
		iVista++;
		if (bSoyTableta == true || bSoyAlAire == true){
			bSimetria = true;	// paso en blanco la izquierda
			STR_FormaOcxDer += "&queaumenta"+iVista+"=radioIniIzqVista";
			STR_FormaOcxDer += "&valor"+iVista+"=";
			iVista++;
			STR_FormaOcxDer += "&queaumenta"+iVista+"=deltasBisIzq";
			STR_FormaOcxDer += "&valor"+iVista+"=";
			iVista++;
			STR_FormaOcxDer += "&queaumenta"+iVista+"=taladrosBisIzq";
			STR_FormaOcxDer += "&valor"+iVista+"=";
			iVista++;
		}
		var dd = "&TotalCamposBis="+(iVista+1);
		STR_FormaOcxDer += dd;
		// RADIO DELTAS DER
		STR_FormaOcxDer += "&queaumenta"+iVista+"=deltasBis";
		STR_FormaOcxDer += "&valor"+iVista+"=";
		miCampo('ocxFormaDer').value = new String (obj.RadioDeltas);
	}
	//
	// OJO IZQUIERDO
	//
	if (bSimetria){
//		alert ("simetria");
		STR_FormaOcxIzq = "";
	}else{
		iVista = 0;
 	   	obj.Ojo = 1;	// referencia ojo derecho
 		if (obj.RadioIni > 0){
			hayojoizquierdo = true;
			// BASE MONTURA
			STR_FormaOcxIzq = "&queaumenta"+iVista+"=basemontura";
			STR_FormaOcxIzq += "&valor"+iVista+"=";
			STR_FormaOcxIzq += obj.Base.toFixed (2);
			iVista++;
			// TALADROS IZQ
			talsIzq = trim(new String(obj.Taladros));
			if (talsIzq.length > 10){
				if (talsIzq != "no hay taladros"){
//					if (talsIzq.indexOf ('A;A;A;') > -1){
						STR_FormaOcxIzq += "&queaumenta"+iVista+"=taladrosBisIzq";
						STR_FormaOcxIzq += "&valor"+iVista+"=";
						STR_FormaOcxIzq += talsIzq;
						iVista++;
//					}
				}
			}
			// PUENTE SI NO HAY OJO DERECHO
			if (hayojoderecho == false){
				STR_FormaOcxIzq += "&queaumenta"+iVista+"=puente";
				STR_FormaOcxIzq += "&valor"+iVista+"=";
				STR_FormaOcxIzq += (obj.DistBorde*2).toFixed (2);
				iVista++;
			}
			// RadioINIIzq
			STR_FormaOcxIzq += "&queaumenta"+iVista+"=radioIniIzqVista";
			STR_FormaOcxIzq += "&valor"+iVista+"=";
			STR_FormaOcxIzq += obj.RadioIni.toFixed (2);
			iVista++;
			var tt = "&TotalCamposBis="+(iVista+1);
			STR_FormaOcxIzq += tt;
			// RADIO DELTAS IZQ
			STR_FormaOcxIzq += "&queaumenta"+iVista+"=deltasBisIzq";
			STR_FormaOcxIzq += "&valor"+iVista+"=";
			miCampo('ocxFormaIzq').value = new String (obj.RadioDeltas);
		}
	}
	//
	if (hayojoizquierdo == false && hayojoderecho == false){
//		alert ("NO SE HA RECIBIDO BIEN LA FORMA, vuelva a intentarlo");
		alert (dameRc(75));
		return;
	}
	//	muestro progres bar
	var cargando = '<img border="0" src="img/cargando2.gif"width="16" height="16">';
	if (miGetElementById('DibujaUnaIdForma') != null){	// estoy en version onlineweb
		miGetElementById('DibujaUnaIdForma').innerHTML = cargando;
	}
	// envio datos
	EnviaOjoPorOjo (hayojoderecho, hayojoizquierdo);
}


function scanOmaOcx_Test_w (puerto)
{
  if (miGetElementById('id_ScanMontura_ocx') != null){
        miGetElementById('id_ScanMontura_ocx').innerHTML = dame_object_ocx ();
  }else{
    alert ("driver ocx no encontrado");
  }

	// objeto ocx
	var obj = miGetElementById('ScanMontura1');
//	if (obj == null)	alert("no se ha instalado el driver correspondiente");
	if (obj == null)	alert(dameRc(77));
	obj.PuertoComm = puerto + 1;	// viene la posicion en el combo, +1 para que sea el puerto
//    obj.ModoScan = 2;
	obj.Explora();			// metodo del ocx
    obj.Ojo = 0;	// referencia ojo derecho
  	if (obj.RadioIni==0){
//		alert ("ASEGURESE que el puerto es el " + dameTxtPuerto(obj.PuertoComm)) ;
		alert ( dameRc(78) + dameTxtPuerto(puerto + 1)) ;
     	return;     // no hay forma
	}
	var ppractico  = obj.Perimetro;
 	var diferencia = abs_w(ppractico - miCampo('edPerimetro').value);
	var tolera = abs_w( diferencia * 100) / miCampo('edPerimetro').value;
	miCampo('edDiferencia').value = tolera;
  miCampo('edTolerancia').value = comasPorPuntos(miCampo('edTolerancia').value);
	if ( tolera > miCampo('edTolerancia').value ){
		miCampo('edDiferencia').style.backgroundColor = "#FF6600";
//		alert ("Debe de calibrar el tracer");
		alert (dameRc(79));
	}else{
		miCampo('edDiferencia').style.backgroundColor = "#00FF00";
//		alert ("Ok, no necesita calibrar el Tracer");
		alert (dameRc(80));
	}
}


var con_rebota_w = new XHConn();
var fin_rebota_w = function (oXML) {
	alert (oXML.responseText);
}

function  detalleUnaGama ()
{
 	var ig = miCampo('ComboGamasDer').selectedIndex;
	if (ig < 0){
//		alert ("no hay gama seleccionada");
		alert (dameRc(82));
		return;
	}
	var gama = miCampo('ComboGamasDer').options[ig].value;
	if (gama == -1){
//		alert ("no hay gama seleccionada");
		alert (dameRc(82));
		return;
	}

	if (Espere ()) return;

	PonEsperando (1);

	var str = "quecambia=div_detalle_gama";
	str += "&dondevoy=99&idgama=";
	str += gama;
	var txtgama = miTextXml (miCampo('ComboGamasDer').options[ig]);
/*	str += "&nombregama='";
	str += txtgama;
	str += "'";*/
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}


//function  pedidosGestionReal (cliente, pagina, tampag, ordenacampo, textobuscar)
function  pedidosGestionReal ()
{
//	var str = "quecambia=RebotaConsultaAlbaranes";
//	window.setTimeout("con_rebota_w.connect('rebotaServidorIopsa.php', 'GET', '"+str+"', fin_rebota_w)", 0);
	onLocationHref_w('index.php?param=onlineweb&quepantalla=pedidosgestion');
}

function  pedidosGestionRealRevisadas ()
{
	onLocationHref_w('index.php?param=onlineweb&quepantalla=pedidosgestionrevisadas');
}

function  pedidosGestionAbonos ()
{
	onLocationHref_w('index.php?param=onlineweb&quepantalla=pedidosgestionabonos');
}


function dameGraduacion (cil, esf)
{
	// cilindro positivo y cilindro negativo
	var txt = "";
	var cilpos = true;
	if (cil >= 0){
		txt  = "&nbsp;&nbsp;Cil.Pos.: +";
		txt += cil;
	}else{
		cilpos = false;
		txt  = "<br><br>&nbsp;&nbsp;Cil.Neg.: ";
		txt += cil;
	}
	if (esf >= 0){
		txt += "&nbsp;&nbsp;Esf: +";
		txt += esf;
	}else{
		txt += "&nbsp;&nbsp;Esf: ";
		txt += esf;
	}
		txt += "&nbsp;&nbsp;";
	return txt;
}

function v (cil, esf){

//	var x = (document.layers) ? e.pageX : event.clientX;
//	var y = (document.layers) ? e.pageY : event.clientY;

	if (cil==-99 && esf ==-99){
		miGetElementById('span1').innerHTML = "";
		return;
	}

	var capa = miGetElementById('span1');
	if (capa == null){
		miGetElementById('span1').innerHTML = "no encuentro";
		return;
	}

	var x = document.body.scrollLeft + window.event.clientX;
	var y = document.body.scrollTop  + window.event.clientY;

	capa.style.posLeft = x + 30;
	capa.style.posTop  = y - 30;

 	var txt = dameGraduacion (cil, esf);
 	txt += dameGraduacion (-cil, cil+esf);

 	var tx = '<div id=span1 width="260" class="spanstyle width:260px;">';
 	tx += txt;
 	tx += '</div>';

// 	alert (tx);

	miGetElementById('span1').innerHTML = tx;
}

function ponOjo(queojo)
{
	miCampo('ojo_click').value = queojo;
}

function vv (cil, esf){
	var txt ="Cil: ";
	if (cil > 0) txt = txt+"+"+cil;
	else         txt = txt+"-"+cil;
	txt = txt + " Esf: ";
	if (esf > 0) txt = txt+"+"+esf;
	else         txt = txt+esf;
//	txt = txt + "br";
	miGetElementById('overDiv').innerHTML = txt;
}
function m (cil, esf, diam){
	var txt ="Cil: ";
	if (cil > 0) txt = txt+"+"+cil;
	else         txt = txt+"-"+cil;
	txt = txt + " Esf: ";
	if (esf > 0) txt = txt+"+"+esf;
	else         txt = txt+esf;
	miGetElementById('IdOjo').innerHTML = txt;
	miCampo('esfera_click').value = esf;
	miCampo('cilindro_click').value = cil;
	miCampo('diametro_click').value = diam;
}

function add_Ojo (ojo){
	var cargando = '<img border="0" src="img/cargando2.gif"width="16" height="16">';
	miGetElementById('IdOjo').innerHTML = cargando;
	var esf = miCampo('esfera_click').value;
	var cil = miCampo('cilindro_click').value;
	var dia = miCampo('diametro_click').value;
	var str = "quecambia=add_ojo_click";
	str += "&ojo=";
	str += ojo;
	str += "&cil=";
	str += cil;
	str += "&esf=";
	str += esf;
	str += "&dia=";
	str += dia;
	str += "&refrescadibujo=0";
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function add_Adicion (ojo){
	var adicion = miCampo('adicion_click').value;
	if (adicion < 0.75 || adicion > 5){
//		alert ("El valor de la adicion es incorrecto");
		alert (dameRc(98));
		return;
	}
	var cargando = '<img border="0" src="img/cargando2.gif"width="16" height="16">';
	var str = "quecambia=adicion_click";
	if (ojo == 0){
		str += "&ojo=0";
		miGetElementById('IdAdiDer').innerHTML = cargando;
	}else{
		str += "&ojo=1";
		miGetElementById('IdAdiIzq').innerHTML = cargando;
	}
	str += "&adicion=";
	str += adicion;
	str += "&refrescadibujo=0";
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function a (adicion, celda){
	var elem;
	var txt ="Adicion: ";
	miCampo('adicion_click').value = adicion;
	for (var i=50; i < 425; i+=25){
		elem = miGetElementById (i);
		if (elem != null){
			elem.style.backgroundColor = "#00FF00"; //verde
		}
	}
	var pp = adicion * 100;
	miGetElementById (pp).style.backgroundColor = "#FFFFFF";

//	celda.style.backgroundColor="#FFFFFF";   // blanco
//	celda.style.color="#000000";             // negro
}


function obtener_valor(str, campo)
{
	var pos = str.indexOf(campo);
	if (pos > -1){
		var pos_separador = str.indexOf("&", pos);
		if (pos_separador > -1){
			return str.substring(pos + campo.length + 1, pos_separador);
		}else{
			return str.substring(pos + campo.length + 1, str.length);
		}
	}else{
		return -1;
	}
}

function cuentaLineas(cadena)
{
	var str;
	str = cadena.split('\r\n');
	return (str.length);
}
//

function trataregistro (oNodo)
{
	var txt = "no esta definido el nodo xml hijo de <";
	txt += oNodo.nodeName;
	txt += "> --> ";
	var clave = "";
	var nombre = "";
	var operacion = "";
	var msg = "";
	var linea = "";
 	for (var i=0; i < oNodo.childNodes.length; i++){
		var o = oNodo.childNodes[i];
		switch (o.nodeName){
			case 'clave': 	clave = miTextXml (o);break;
			case 'nombre': 	nombre = miTextXml (o);break;
			case 'operacion': 	operacion = miTextXml (o);break;
			case 'message':		msg = miTextXml (o);break;
			default:
				alert (txt + "<" + o.nodeName + ">");
				break;
		}
		if (o.nodeName == 'operacion'){
			linea = clave;
			linea += " ";
			linea += trim(nombre);
			linea += " ";
			linea += trim(operacion);
			linea += trim(msg);
		}
	}
	return linea;
}

var con_tablas_w = new XHConn();
var fin_tablas_w = function (oXML)
{
	var pagina = -1;
	var txtlin = "";
	var txa = miGetElementById ("txtarea");

if (solodebug2 == 1){
	alert ("fin_tablas_w: " + oXML.responseText);
}

 	var xmlDoc = oXML.responseXML.documentElement;			// <mixml>
 	for (var i=0; i < xmlDoc.childNodes.length; i++){		// nivel 1 inferior
		var o = xmlDoc.childNodes[i];
		switch (o.nodeName){
			case 'totalregs':
				if (miTextXml (o) <= 0){
					var txtfin = '<div id="div_FinConsulta">&nbsp;</div>';
					miGetElementById('div_FinConsulta').innerHTML = txtfin;
					txa.value += "\nFin actualizacion";
					PonEsperando (0);
					return;
				}
			case 'pagina':
				pagina = miTextXml (o);
				break;
			case 'registro':
				txtlin =  trataregistro (o) ;
				if ( txtlin.length > 0){
					txa.value += txtlin ;
					txa.value += "\n";
				}
//				alert ("para");
				break;
			default:
				break;
  		}
	}
	//
	// RECURSIVO si llego aqui es que no he acabado
	//
	if (pagina > 1){
		mant_tabla (pagina);
	}
}

var fin_tablas_SQL_w = function (oXML)
{
	var txa = miGetElementById ("txtarea");
	var empresa = -1;
	var pagina = -1;
	var clave ="";
	var des ="";
 	var xmlDoc = oXML.responseXML.documentElement;			// <mixml>
	try{
		var len = xmlDoc.childNodes.length;
	}
	catch(e){
		alert (e.description+ "\n"+oXML.responseText);
		PonEsperando (0);
		return;
	}
	var fin=false;
	var txtmsg="";
 	var xmlDoc = oXML.responseXML.documentElement;			// <mixml>
 	for (var i=0; i < xmlDoc.childNodes.length; i++){		// nivel 1 inferior
		var o = xmlDoc.childNodes[i];
		if (o.nodeName!='registro'){
			continue;
		}
		for (var x=0; x < o.childNodes.length; x++){		// nivel 1 inferior
			var oo = o.childNodes[x];
			switch (oo.nodeName){
				case 'errores_echo':
					txterr = trim (miTextXml (oo));
					if (txterr.length > 0){
						txterr = "_echo: " + txterr;
						alert (txterr);
					}
					break;
				case 'totalregs':
					if (miTextXml (oo) <= 0){
						fin=true;
						break;
					}
					break;

				case 'pagina':
					pagina = miTextXml (oo);
					break;
				case 'empresa':
					empresa = miTextXml (oo);
					txtmsg += miTextXml (oo);
					txtmsg += "\t";
					break;
				case 'clave':
					clave =  miTextXml (oo);
					txtmsg += miTextXml (oo);
					txtmsg += "\t";
					break;
				case 'descripcion':
					des =  miTextXml (oo);
					txtmsg += miTextXml (oo);
					txtmsg += "\n";
					break;
				default:
					break;
 				}
		}
	}

	if (fin == false){
		if (pagina > 0){
            if (clave == "--" && des == "--"){
            	txtmsg = "pagina "+pagina;
			}else{
            	txtmsg += "pagina "+pagina;
			}
            txtmsg += "\n";
           	txa.value += txtmsg;
			tabla_SQL_Server (empresa, pagina);       // recursivo
		}
	}else{
		PonEsperando (0);

		if (empresa == 1)		txtmsg += ".-Fin Barcelona\n";
		else if (empresa == 2)	txtmsg += ".-Fin Valencia\n";
		else if (empresa == 3)	txtmsg += ".-Fin Madrid\n";
		else if (empresa == 4)	txtmsg += ".-Fin Lisboa\n";

        txa.value += txtmsg;

		if (empresa == 1)		tabla_SQL_Server (2, 1);	// a por valencia   y pagina 1
		else if (empresa == 2)	tabla_SQL_Server (3, 1);	// a por madrid y pagina 1
		else if (empresa == 3)	tabla_SQL_Server (4, 1);	// a por Lisboa
	}
}

function tabla_SQL_Server (empresa, pagina)
{
	var quesql = miCampo('cbQueTabla').selectedIndex;
	var txa = miGetElementById ("txtarea");
	if ( quesql == 4 && trim(txa.value).length <= 5){
		alert ("no hay  sql en la txtarea");
		return;
	}
	if (empresa == 1 && pagina==1 && quesql != 4){
		txa.value = "";	// borro la textarea
	}
	var str = "&sql=";
	if ( quesql == 4){
		str += trim(txa.value);
		alert (str);
	}else{
		str += "";
	}
	str += "&quesql=";
	str += quesql;

	str += "&pagina=";
	str += pagina;
	str += "&tampagina=200";

	if (miCampo('cb_insert').checked == true){
		str += "&insert=1";
	}
	if (miCampo('cb_update').checked == true){
		str += "&update=1";
	}
	if (miCampo('cb_borra').checked == true){
		str += "&borra=1";
	}
	str += "&empresa=";	// empiezo por barcelona y luego en el retorno ya hago las otras
	str += empresa;
	if (empresa == 1)
			if (pagina==1) txa.value += ".-Consultando Barcelona\npagina1\n";
	else if (empresa == 2)
			if (pagina==1) txa.value += ".-Consultando Valencia\npagina1\n";
	else if (empresa == 3)
			if (pagina==1) txa.value += ".-Consultando Madrid\npagina1\n";
	else{
//		alert ("Empresa no definida, error");
		alert (dameRc(99));
		return
	}
	PonEsperando (1);
	window.setTimeout("con_tablas_w.connect('tablasSQLServer.php', 'POST', '"+str+"', fin_tablas_SQL_w)", 0);
}

function mant_tabla (pagina)
{
	var qt = miCampo('cbQueTabla').selectedIndex;

	if (qt > 2){
		tabla_SQL_Server (1, 1);  // empiezo por empresa Barcelona 1   y pagina 1
		return;
	}

	var txa = miGetElementById ("txtarea");
	if (pagina == 1){
		txa.value = "";	// borro la textarea
	}
	var quetabla = "";

	txa.value += "  Datos pagina ";
	txa.value += pagina;
	txa.value += "\n";

	var cargando = '<img border="0" src="img/cargando2.gif" width="16" height="16">';
	miGetElementById('reloj').innerHTML = cargando;

	var str = "quetabla=";
	str += qt;
	str += "&pagina=";
//	str += 8;
	str += pagina;
	str += "&tampagina=20";
	if (miCampo('cb_insert').checked == true){
		str += "&insert=1";
	}
	if (miCampo('cb_update').checked == true){
		str += "&update=1";
	}
	if (miCampo('cb_borra').checked == true){
		str += "&borra=1";
	}

//alert(str);

	window.setTimeout("con_tablas_w.connect('tablas.php', 'GET', '"+str+"', fin_tablas_w)", 0);
}

var con_tablasmysql_w = new XHConn();
var fin_tablasmysql_w = function (oXML)
{
	var txa = miGetElementById ("txtarea");

//alert ("fin_tablasmysql_w: " + oXML.responseText);

 	var xmlDoc = oXML.responseXML.documentElement;			// <mixml>
 	for (var i=0; i < xmlDoc.childNodes.length; i++){		// nivel 1 inferior
		var o = xmlDoc.childNodes[i];
		switch (o.nodeName){
			case 'errores_echo':
				txterr = trim (miTextXml (o));
				if (txterr.length > 0){
					txterr = "_echo: " + txterr;
					alert (txterr);
				}
				break;
			case 'totalregs':
				var txtfin = '<div id="div_FinConsulta">&nbsp;</div>';
				miGetElementById('div_FinConsulta').innerHTML = txtfin;
				txa.value += "\nFin actualizacion ";
				txa.value += miTextXml (o);
				txa.value += " registros implicados.\n\n";
				break;
			case 'registro':
				txtlin =  trataregistro (o) ;
				if ( txtlin.length > 0){
					txa.value += txtlin ;
					txa.value += "\n";
				}
				break;
			case 'div_FinConsulta':
				miGetElementById('div_FinConsulta').innerHTML =  miTextXml (o);
				break;
			case 'verContenidoTxt':
				miGetElementById ("txtarea").value = miTextXml (o);
				break;
			case 'borrarFixSele':
				ver_tmpPeds	();
				break;
			default:
				break;
  		}
	}
	PonEsperando (0);
}


function dameFixSele ()
{
	var ig = miCampo('ListBox1').selectedIndex;
	if (ig < 0){
		alert ("no hay seleccion");
		return;
	}
	return miCampo('ListBox1').options[ig].value;
}

function borrarFixSele ()
{
	str += dameFixSele ();
	var str = "borrarFixSele=";
	str += dameFixSele ();
	window.setTimeout("con_tablasmysql_w.connect('tablasMySql.php', 'POST', '"+str+"', fin_tablasmysql_w)", 0);
}

function verContenidoTxt (file)
{
	miGetElementById ("txtarea").value = "";
	var str = "verContenidoTxt=";
	str += dameFixSele ();
	window.setTimeout("con_tablasmysql_w.connect('tablasMySql.php', 'POST', '"+str+"', fin_tablasmysql_w)", 0);
}

function ver_tmpPeds ()
{
	var str = "ver_tmpPeds=1";
	window.setTimeout("con_tablasmysql_w.connect('tablasMySql.php', 'POST', '"+str+"', fin_tablasmysql_w)", 0);
}

function ponCondicionTablaMySql ()
{
	var qt = miCampo('cbQueTablaMySql').selectedIndex;
	var condicion = "";
	switch (qt){
		case 2:
			condicion = " p_pedidos.empresa = 1 and p_pedidos.cliente in (3539, 1095) ";
			break;
		case 3:
			// las comillas simples en la fecha petan
			// {{ tuco para que no peten las comillas
			// luego hago un replace en el php por comillas simples
			// que es lo que quiere el mysql
			condicion = ' p_pedidos.fecha_pedido < {{2008-10-30}} and p_pedidos.empresa = 1 ';
			break;
		case 4:
		case 0:
		case 1:
		default:
			condicion = "sin condicion";
			break;
	}
	miCampo('condicion').value = condicion;
}

function mant_tabla_mysql ()
{
	var txa = miGetElementById ("txtarea");
	txa.value = "";	// borro la textarea
	var quetabla = "";
	var qt = miCampo('cbQueTablaMySql').selectedIndex;
	txa.value += "  Datos funcion ";
	txa.value += qt;
	txa.value += "\n";

	var cargando = '<img border="0" src="img/cargando2.gif" width="16" height="16">';
	miGetElementById('reloj').innerHTML = cargando;

	var str = "quetablamysql=";
	str += qt;

	if (qt == 1){	// pruebas
		pruebasForma ();
		return;
	}

	var condicion = miCampo('condicion').value;
	if (trim(condicion) == ""){
		miGetElementById('reloj').innerHTML = "";
//		alert ("falta condicion");
		alert (dameRc(100));
		return;
	}
	if (condicion.indexOf ('sin condicion') <= 0){
		str += "&condicion=";
		str += condicion;
	}

	window.setTimeout("con_tablasmysql_w.connect('tablasMySql.php', 'POST', '"+str+"', fin_tablasmysql_w)", 0);
}

function cotastaladros_w ()
{
	str = "quecambia=dimensionaformacotas";
	if (miCampo('formao').checked){
		str += "&formaoriginal=1";
	}
	if (miCampo('formam').checked){
		str += "&formamodificada=1";
	}
	str += "&dondeestoy="+miCampo('dondeestoy').value;
	str += "&dondevoy="+miCampo('dondeestoy').value;
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function aceptaBiselarEnPrats ()
{
	var str = "quecambia=BiselarEnPrats";
	var i = miCampo('cbBiselarEnPrats').selectedIndex;
	str += "&biselarenprats=";
	str += i;
	str += "&refrescadibujo=0";
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function CalModoScan (tipo_tracer)
{
	// ojo los protocolo nideck aun lo hacen servir, son los unicos
  if ( trim(tipo_tracer) != "nideck" ){
      if (iModoScan > 0){
		      return iModoScan;
	    }
  }
	var tm = miCampo('materialmontura').value;
	if (tm == "" || tm == 0){
		return (0);
	}

	var modoscan = 0;
  var ojoplantilla = 0;
	var queojo = dimeQueOjoMarcado_w ();
   	switch (tm){
   		case 1:  // acetato
       	case 2:  // metal
          	if(queojo == 2)  // los dos ojos
           		modoscan = 3;
           	else if(queojo == 1) // izquierdo
           		modoscan = 1;
          	else if(queojo == 0) // derecho
           		modoscan = 2;
           	break;
       	case 3: // Al Aire
       		if(ojoplantilla == 0) // Derecho
       			modoscan = 4;
          	else if(ojoplantilla == 1) // Izquierdo
           		modoscan = 5;
           	break;
		default:
			break;
   	}
	return modoscan;
}

var con_onExportaPedidos = new XHConn();

function ExportaPedidosSele_w ()
{
	var solouncliente1 = -1;
	var solouncliente2 = -1;
	var haysele = false;
	var pedidosexportar = " ( ";
	for (var i=0; i < miForm ().elements.length; i++){
		if (miForm ().elements[i].getAttribute("_tipo") != 'micheckbox')
			continue;
		if (miForm ().elements[i].checked == true){
			if (haysele == true){
				pedidosexportar += ",";	// separados por punto y coma
			}else{
				solouncliente1	= miForm ().elements[i].getAttribute("_cliente");
			}
			solouncliente2	= miForm ().elements[i].getAttribute("_cliente");
			if (solouncliente1 != solouncliente2){
//				alert ("Los pedidos a exportar deben ser del mismo cliente");
				alert (dameRc(83));
				return;
			}
			haysele = true;
			pedidosexportar += miForm ().elements[i].getAttribute("_numpedido");
		}
	}

	if (haysele == false){
//		alert ("no hay pedidos seleccionados para exportar");
		alert (dameRc(84));
		return;
	}

	pedidosexportar += " ) ";
	var str = 'quecambia=exportapedidos';
	str += '&quecliente=';
	str += solouncliente1;
	str += '&selpedidos=';
	str += pedidosexportar;

	PonEsperando (1);
	window.setTimeout("con_onExportaPedidos.connect('exportaPedidos.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function registrado ()
{
	rellenaEmpresa ();
	document.location.href = "index.php?param=registrado";
}

function rellenaEmpresa ()
{
	if (document.fm_loguin.rellenado.value == "1"){
		return;
	}
	var empresa = document.fm_loguin.usuario.value.substring (0, 3);
	if (empresa == 'mad' || empresa == 'via'|| empresa == 'lis'){
		document.fm_loguin.rellenado.value = "1";	// ya no volver por aqui
		if (empresa == 'via'){
			document.fm_loguin.cb_empresa.selectedIndex = 1;
			PreCargaEmpresa_w (2);
		}else{
			if (empresa == 'mad'){
				document.fm_loguin.cb_empresa.selectedIndex = 2;
				PreCargaEmpresa_w (3);
			}else{
				document.fm_loguin.cb_empresa.selectedIndex = 3;
				PreCargaEmpresa_w (4);
			}
		}
	}
}

var con_PreCargaEmpresa_w = new XHConn();
var fin_PreCargaEmpresa_w = function (oXML){}

function PreCargaEmpresa_w (empresa){
	var str  = 'empresa=';
	str += empresa;
	window.setTimeout("con_PreCargaEmpresa_w.connect('PreCargaEmpresa.php', 'GET', '"+str+"', fin_PreCargaEmpresa_w)", 0);
}


function pruebasClick_w ()
{
	var str = "";
	if (miGetElementById('div_tabsconforma') != null){
		str += "div_tabsconforma\n";
	}
	if (miGetElementById('dibujosforma') != null){
		str += "dibujosforma\n";
	}
	if (miGetElementById('div_dibujaUnaReceta') != null){
		str += "div_dibujaUnaReceta\n";
	}
	if (miGetElementById('div_dibujaBiselMontaje') != null){
		str += "div_dibujaBiselMontaje\n";
	}
	if (miGetElementById('div_dibujaBiselMontaje') != null){
		str += "div_dibujaBiselMontaje\n";
	}
	if (miGetElementById('div_dibujaBiselMontaje') != null){
		str += "div_dibujaUnPerfil\n";
	}
	alert (str);
}


var con_sugerencias = new XHConn();

var fin_sugerencias = function (oXML) {
//	alert ("Su sugeréncia se ha enviado con éxito. GRACIAS.");
	alert (dameRc(101));
	onLocationHref_w('index.php?param=pedidos&tabsituacion=1');
};

function sugerencias (nombre, email, descripcion)
{
	var cliente = miCampo('cliente').value;
	var nombre = miCampo('nombre').value;
	var email = miCampo('email').value;
	var descripcion = miCampo('descripcion').value;
	var empresa = miCampo('empresa').value;
	var ipreal = miCampo('ipreal').value;
	if (trim(nombre).length == 0 &&
			trim(email).length == 0 &&
				trim(descripcion).length == 0 ){
//		alert ("debe rellenar algun dato, gracias");
		alert (dameRc(102));
		return;
	}

	con_sugerencias.connect("mail_sugerencias.php", "GET", "nombre="+nombre+"&email="+email+"&ipreal="+ipreal+"&cliente="+cliente+"&empresa="+empresa+"&descripcion="+descripcion, fin_sugerencias);
}

function cambiaVerEspExp_w ()
{
	var estoyenmipedido = (miGetElementById ('IdEstoyEnMiPedido') != null);
//	pp = $('VerEspExp').getAttribute('_tipo');

	var sino = miCampo('VerEspExp').checked;
	var str = "quecambia=VerEspExp";
	str += "&sino=";
	if (sino){
		str += 1;
	}else{
		str += 0;
	}
	str += "&refrescadibujo=0";
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function cambiaRoturaStock_w ()
{
	var estoyenmipedido = (miGetElementById ('IdEstoyEnMiPedido') != null);

	var sino = miCampo('roturastock').checked;
	var str = "quecambia=entra_rotura_stock";
	str += "&sino=";
	if (sino){
		str += 1;
	}else{
		str += 0;
	}
	str += "&refrescadibujo=0";
	PonEsperando (1);
	window.setTimeout("con_SetServidor_w.connect('servidor.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}


function gestionaTecla ()
{
    return; // se llama desde la form del esqueleto.tpl
  var tcl = (document.all)?e.keyCode:e.which;
          alert (tcl);
    if ((tcl >= 48 && tcl <= 57) || tcl == 8 || tcl == 0){
          alert (tcl);
    }
}

function gestionaIntro (quetabs)
{
//ojo nacho
	var txtBusca="";
	switch (trim(quetabs)){
			case "inicio_no_loginado":
				onLocationHref_w('index.php?param=registrado');
				break;
			case "encurso":
 			case "pendientes":
				if (miGetElementById ('edBuscar') != null){
					BuscaPedidoPendientes_w (1);
 				}else{
					EditarPedido_w (0);
				}
				break;
			case "pedidosgestion":
 			case "pedidoshistoricomysql":
 			case "pedidosgestionrevisadas":
				if (miGetElementById ('edBuscar') != null){
					if (miGetElementById ('QueTabs') != null){
						quetabs = miCampo('QueTabs').value;
						BuscaPedidoGestion_w (quetabs);
					}else{
						BuscaPedidoGestion_w ('pedidoshistoricomysql');
					}
				}else{
					EditarPedido_w (1);
 				}
				break;
 			case "acuse_recibo":		// me voy explorer
				onLocationHref_w('index.php?param=inicio&logout=1');
 				break;
 			case "mantenimiento":
 				break;
 			case "sugerencias":			// no viene aqui directamente post
				break;
 			case "uploadsoloformaxml":	// no viene aqui directamente post
 			case "uploadsoloformaoma":
 				break;
 			case "pedido":	// grabo pedido
				onLocationHref_w('index.php?param=grabapedido');
				break;
 			default:		// miro pedido actual
 			case "upload":
 			case "errores":
 			case "pruebas":
 			case "verflash":
 			case "encuestas":
 			case "informacion":
 			case "configuracion":
 			case "configuracion1":
 			case "verflashtutorial":
				onLocationHref_w('index.php?param=mipedido');
 				break;
	}
}

function vers ()
{
	if (document.forms[0].name != 'fm_loguin'){
		alert ("ojo, es diferente de fm_loguin");
	}
	// return document.fm_pedido;  esto no va en Mozilla
	document.forms[0].version.value = navigator.userAgent;
//	alert (document.forms[0].version.value);
}

function activaOMClick ()
{
	var nomiv = miCampo('NomImagenVuelo').value;
	var t = miGetElementById (nomiv);
	var txt = "x= ";
	txt += findLeftObj(t);
	txt += " y=";
	txt += findTopObj(t);

	alert (txt);
	var que = QueExplorador ();
	if (que != "MSIE"){        // el MSIE.8 va como el mozilla
		if (document.captureEvents) document.captureEvents(Event.CLICK);
	}
	document.onclick = Mi_OMC;
}

function desactivaOMClick ()
{


}


function findLeftObj (obj)
{
	var curleft = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}else{
		if (obj.x)	curleft += obj.x;
	}
	return curleft;
}

function findTopObj (obj)
{
	var curtop = 0;
	if (obj.offsetParent){
		while (obj.offsetParent){
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}else{
		if (obj.y)	curtop += obj.y;
	}
	return curtop;
}


function Mi_OMC (e)
{
 	if (miGetElementById ('NomImagenVuelo')==null){
		return;
 	}
	var nomiv = miCampo('NomImagenVuelo').value;

	if (!e){
		e=window.event;
	}
	var x = 0;
	var y = 0;
	var que = QueExplorador ();
	if (que == "MSIE"){        // el MSIE.8 va como el mozilla
		x = e.clientX + document.body.scrollLeft;
		y = e.clientY + document.body.scrollTop;
	}else{
		x = e.pageX;
		y = e.pageY;
	}

	var t = miGetElementById (nomiv); // busco la imagen
	if (t == null) return;

	x -= findLeftObj(t);
	y -= findTopObj(t);

	txt = "x= ";
	txt += x;
	txt += " y=";
	txt += y;
	miGetElementById('div_pos_xy').innerHTML =  txt;
}

function imprime_w (idCampo)
{
	var elem = miGetElementById (idCampo);
	if (elem == null){
		alert ("error no encontrado");
		return;
	}
	var elem1 = miGetElementById ("btImprimir");
	if (elem1 != null)   // escondo los botones para que no se impriman
		elem1.style.visibility = "hidden";
	elem1 = miGetElementById ("btSalir");
	if (elem1 != null)
		elem1.style.visibility = "hidden";

	var ventimp = window.open(' ', 'popimpr');
	ventimp.document.write (elem.innerHTML);
	ventimp.document.close();
	ventimp.print();
	ventimp.close();
	if (idCampo == 'Panel1_outer'){
		pedidosGestionAbonos ();
	}
}

function imprime_Abono_w (url)
{
	var htm = "<html><head><title>";
	htm += dameRc(117);
	htm += '</title><meta http-equiv="Content-Type" content="';
	htm += 'text/html; charset=iso-8859-1"></head><body>';
	htm += '<img src="';
	htm += url;
	htm += '" alt="';
	htm += dameRc(117);
	htm += '" width="785" height="553" align="center" />';
	htm += '<div><div align="center"><input name="imprimir" id="imprimir" type="button" id="imprimir"';
	htm += 'value="Imprimir" onClick="javascript:print();"></div></div></body></html>';

	alert (htm);

	var ventimp = window.open(' ', 'print');
	ventimp.document.write (htm);
	ventimp.document.close();
//	ventimp.print();
}

var con_base64 = new XHConnBase64 ();

var fin_base64 = function (oXML)
{
	PonEsperando (0);
	alert (oXML.responseText);
}

function pruebasForma ()
{
	PonEsperando (1);

//	var str = "&quetablamysql=1";
	var str = "forma=";
	str += base64_encode (pp);
	window.setTimeout("con_base64.connect('pruebas.php', 'POST', '"+str+"', fin_base64)", 1000);
}

function pruebasCodArt ()
{
	PonEsperando (1);

	var str = "gama=";
	str += miCampo('gama').value;
	str += "&cil=";
	str += miCampo('cil').value;
	str += "&esf=";
	str += miCampo('esf').value;

	window.setTimeout("con_base64.connect('pruebasPrecio.php', 'POST', '"+str+"', fin_base64)", 1000);
}

var con_onExportaForma = new XHConn();

function salvaForma ()
{
  //alert ("en construccion salva forma");
  //return;
	var str = 'quecambia=exportapedidos';
	str += '&forma=vca';
	PonEsperando (1);
	window.setTimeout("con_onExportaForma.connect('exportaSoloForma.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function salvaMontaje ()
{
	var str = 'quecambia=exportapedidos';
	str += '&forma=montajexml';
	PonEsperando (1);
	window.setTimeout("con_onExportaForma.connect('exportaSoloForma.php', 'GET', '"+str+"', fin_SetServidor_w)", 0);
}

function cambiaTitulo (title) { document.title = title; }

function nuevaVentana (url)
{
    if (trim(url) == ""){
        return;
    }
    var miObjeto = new Object();
    window.showModalDialog (url, miObjeto, "dialogHeight:600px; dialogWidth:800px; center:yes");
}

var con_activar = new XHConn();
function activar_webservice (sino)
{
	  var str = 'activarwebservice=';
    str += sino;
	  window.setTimeout("con_activar.connect('ActivarWebservice.php', 'POST', '"+str+"', fin_activar_w)", 0);
}

var fin_activar_w = function (oXML)
{
    var res = parseInt(trim(oXML.responseText));
    switch (res){
      case 0: alert ("fichero PARA_WEBSERVICE_XXXX  creado y parado webservice");break;
      case 1: alert ("fichero PARA_WEBSERVICE_XXXX borrado y arrancado webservice");break;
      default: alert ("algo ha fallado");break;
    }
    pedidosGestionReal();
}

