// JScript source code

	//var iEmail = "This field must be a valid email address (like foo@bar.com). Please reenter it now."
	var whitespace = " \t\n\r";
	var defaultEmptyOK = false;
	var daysInMonth = makeArray(12);
	daysInMonth[1] = 31;
	daysInMonth[2] = 29;   // must programmatically check this
	daysInMonth[3] = 31;
	daysInMonth[4] = 30;
	daysInMonth[5] = 31;
	daysInMonth[6] = 30;
	daysInMonth[7] = 31;
	daysInMonth[8] = 31;
	daysInMonth[9] = 30;
	daysInMonth[10] = 31;
	daysInMonth[11] = 30;
	daysInMonth[12] = 31;


	function makeArray(n) {
	//*** BUG: If I put this line in, I get two error messages:
	//(1) Window.length can't be set by assignment
	//(2) daysInMonth has no property indexed by 4
	//If I leave it out, the code works fine.
	//   this.length = n;
	   for (var i = 1; i <= n; i++) {
	      this[i] = 0;
	   } 
	   return this;
	}	
	
	function isDate (year, month, day)
	{   // catch invalid years (not 2- or 4-digit) and invalid months and days.
	    if (! (isYear(year, false) && isMonth(month, false) && isDay(day, false))) return false;

	    // Explicitly change type to integer to make code work in both
	    // JavaScript 1.1 and JavaScript 1.2.
	    var intYear = parseInt(year,10);
	    var intMonth = parseInt(month,10);
	    var intDay = parseInt(day,10);
		
	    // catch invalid days, except for February
	    if (intDay > daysInMonth[intMonth]) return false; 

	    if ((intMonth == 2) && (intDay > daysInFebruary(intYear))) return false;

	    return true;
	}
	
	function isYear (s)
	{   
		
		if (isEmpty(s)) 
	       if (isYear.arguments.length == 1) 
			return defaultEmptyOK;
	       else 
			return (isYear.arguments[1] == true);
	    if (!isNonnegativeInteger(s)) return false;
	    return ((s.length == 2) || (s.length == 4));
	}
	
	function isMonth (s)
	{   if (isEmpty(s)) 
	       if (isMonth.arguments.length == 1) return defaultEmptyOK;
	       else return (isMonth.arguments[1] == true);
	    return isIntegerInRange (s, 1, 12);
	}
	
	function isDay (s)
	{   if (isEmpty(s)) 
	       if (isDay.arguments.length == 1) return defaultEmptyOK;
	       else return (isDay.arguments[1] == true);   
	    return isIntegerInRange (s, 1, 31);
	}
	
	function daysInFebruary (year)
	{   // February has 29 days in any year evenly divisible by four,
	    // EXCEPT for centurial years which are not also divisible by 400.
	    return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
	}
	
	function isNonnegativeInteger (s)
	{   
		var secondArg = defaultEmptyOK;

	    if (isNonnegativeInteger.arguments.length > 1)
	        secondArg = isNonnegativeInteger.arguments[1];

	    // The next line is a bit byzantine.  What it means is:
	    // a) s must be a signed integer, AND
	    // b) one of the following must be true:
	    //    i)  s is empty and we are supposed to return true for
	    //        empty strings
	    //    ii) this is a number >= 0
		
	    return (isSignedInteger(s, secondArg)
	         && ( (isEmpty(s) && secondArg)  || (parseInt(s,10) >= 0) ) );
	}
	
	function isSignedInteger (s)
	{   
		
		if (isEmpty(s)) 
	       if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;
	       else return (isSignedInteger.arguments[1] == true);

	    else {
	        var startPos = 0;
	        var secondArg = defaultEmptyOK;

	        if (isSignedInteger.arguments.length > 1)
	            secondArg = isSignedInteger.arguments[1];

	        // skip leading + or -
	        s=s.toString();
	        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
	        {	
	           startPos = 1;    
	        }
	        return (isInteger(s.substring(startPos, s.length), secondArg));
	    }
	}
	function isInteger (s)
	{ 
		var i;
	    if (isEmpty(s)) 
	       if (isInteger.arguments.length == 1) return defaultEmptyOK;
	       else return (isInteger.arguments[1] == true);

	    // Search through string's characters one by one
	    // until we find a non-numeric character.
	    // When we do, return false; if we don't, return true.
		
	    for (i = 0; i < s.length; i++)
	    {   
	        // Check that current character is number.
	        var c = s.charAt(i);

	        if (!isDigit(c)) return false;
	    }

	    // All characters are numbers.
	    return true;
	}
	
	function isDigit (c)
	{   
		return ((c >= "0") && (c <= "9"));
	}
	
	function isEmpty(s)
	{   
		return ((s == null) || (s.length == 0));
	}
	function isIntegerInRange (s, a, b)
	{   
		if (isEmpty(s)) 
	       if (isIntegerInRange.arguments.length == 1) return defaultEmptyOK;
	       else return (isIntegerInRange.arguments[1] == true);

	    // Catch non-integer strings to avoid creating a NaN below,
	    // which isn't available on JavaScript 1.0 for Windows.
	    if (!isInteger(s, false)) return false;

	    // Now, explicitly change the type to integer via parseInt
	    // so that the comparison code below will work both on 
	    // JavaScript 1.2 (which typechecks in equality comparisons)
	    // and JavaScript 1.1 and before (which doesn't).
	    var num = parseInt(s,10);
	    return ((num >= a) && (num <= b));
	}
	
	function checkEmail (theField, emptyOK)
	{   
		if (checkEmail.arguments.length == 1) emptyOK = defaultEmptyOK;
		if ((emptyOK == true) && (isEmpty(theField))) return true;
		else if (!isEmail(theField, false)) 
		    return false;
		else return true;
	}
	
	function isEmail (s)
	{   
		if (isEmpty(s)) 
		    if (isEmail.arguments.length == 1) return defaultEmptyOK;
		    else return (isEmail.arguments[1] == true);
		
		// is s whitespace?
		if (isWhitespace(s)) return false;
		
		// there must be >= 1 character before @, so we
		// start looking at character position 1 
		// (i.e. second character)
		var i = 1;
		var sLength = s.length;

		// look for @
		while ((i < sLength) && (s.charAt(i) != "@"))
		{ i++;
		}

		if ((i >= sLength) || (s.charAt(i) != "@")) return false;
		else i += 2;

		// look for .
		while ((i < sLength) && (s.charAt(i) != "."))
		{ i++;
		}

		// there must be at least one character after the .
		if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
		else return true;
	}
	function isWhitespace (s)
	{   
		var i;

		// Is s empty?
		if (isEmpty(s)) return true;

		// Search through string's characters one by one
		// until we find a non-whitespace character.
		// When we do, return false; if we don't, return true.

		for (i = 0; i < s.length; i++)
		{   
		    // Check that current character isn't whitespace.
		    var c = s.charAt(i);

		    if (whitespace.indexOf(c) == -1) return false;
		}

		// All characters are whitespace.
		return true;
	}
	function CompDate (year1, month1, day1, year2, month2, day2)
	{
	/*
		Compara que la fecha 2 sea mayor que la 1.
		Si es mayor devuelve true, sino devuelve false

	*/
		var y1= parseInt (year1,10);
		var m1 =parseInt (month1,10);
		var d1 = parseInt (day1,10);

		var y2= parseInt (year2,10);
		var m2 =parseInt (month2,10);
		var d2 = parseInt (day2,10);

		if (y1>y2)
		{
			return false;
		}
		else
		{
			if (y1==y2 && m1>m2)
			{
				return false;
			}
			if (y1==y2)
			{
				if (m1==m2 && d1>d2)
				{
					return false;
				}
			}
		}
		return true;
	}		
	
	function checkHora(sHora)
	{
		var Hora= parseInt (sHora,10);
		
		if(!isInteger(Hora) || (Hora<0 || Hora>23))
		{		
			return false;
		}		
	
		return true;
	}
	
	function checkMinutos(sMinutos)	
	{
		var Minutos = parseInt (sMinutos,10);
		
		if(!isInteger(Minutos) || (Minutos<0 || Minutos>59))
		{
			return false;
		}			
		return true;
	}
	
	function MayorEdad (year, month, day, hoyYear, hoyMonth, hoyDay)		
	{
		//Si es mayor devuelve true, sino devuelve false
		
		//Fecha nacimiento introducida por el usuario
		var y = parseInt (year,10);
		var m = parseInt (month,10);
			m = m - 1;
		var d = parseInt (day,10);
	
		//Fecha nacimiento introducida
		var fecNacimiento = new Date(y,m,d);
	
		//fecha de hoy
		var hYear = parseInt(hoyYear,10);
		var hMonth = parseInt(hoyMonth,10);
			hMonth = hMonth - 1;
		var hDay = parseInt(hoyDay,10);
		
		//año hace 18 años
		var Year18 = (parseInt(hYear,10)-18);
		
		//fecha hace 18 años
		var fecHace18 = new Date(Year18,hMonth,hDay);
		
		
		if ( fecNacimiento > fecHace18) 
		{
			return false;				
		}
		else
		{
			return true;
		}		
	}

	// ***** Comprueba Telefono *****		
	function checkTelefono(p_sTelefono)
	{
		if (!isInteger(p_sTelefono))
		{
			alert(sTelefonoNum);
			return false;
		}
		return true;
	}
	
	// ***** Comprueba Telefono (sin mostrar alert) *****			
	function bcheckTelefono(p_sTelefono)
	{
		if (!isInteger(p_sTelefono))
		{
			return false;
		}
		return true;
	}
	
	
	//**** LTRIM ****
	function LTrim(cadena) {				
		var vacio = true;
		var i;
		var posPrimerCaracter;
		
		for (i=0;i<cadena.length;i++) {
			if (cadena.charAt(i)!=" ") {
				vacio=false;
				posPrimerCaracter=i;
				break;
			}//if			
		}//for
		if (vacio==false) {
			cadena = cadena.slice(parseInt(posPrimerCaracter,10),parseInt(cadena.length,10));
		}
		else {	cadena="";}

		return cadena;
	}//end function LTrim
		
	function RTrim(cadena) {
		var vacio = true;
		var i;
		var posPrimerCaracter;
				
		for (i=cadena.length-1;i>=0;i--) {	
		
			if (cadena.charAt(i)==" ") {
				vacio=false;
				posPrimerCaracter=i;	
				break;
			}//if	
		
		}//for
		if (vacio==false) {			
			cadena = cadena.slice(0,parseInt(posPrimerCaracter,10));
		}
		else {	cadena="";}
		
		return cadena;
	}//end RTrim
	
	
	//**** FORMATEA UN MUNERO ****
	function FormatoNumero (Valor, FormatoActual, SeparadorMillar, SeparadorDecimal, PosicionesMillares, PosicionesDecimales, SignoPositivo, SignoNegativo, SignoMonetario, PosicionSignoMonetario)
	{
		var MilesActual;
		var DecimalActual;
		var Numero;
		var ParteEntera;
		var ParteDecimal;
		var Contador;
		var FormatoMiles;
		var Signo;
		var Redondeo;
		var Resultado;
		
		Valor = Valor.toString();
		
		MilesActual = FormatoActual.charAt(0);
		DecimalActual = FormatoActual.charAt(1);
		
		Numero = Valor.split(DecimalActual);

		if (Valor.indexOf(DecimalActual) == -1)
		{
			Numero = Valor.toString();
			Numero = Numero.replace(" ", "");

			if (Numero == "")
			{
				ParteEntera = "0";
			}
			else
			{
				ParteEntera = parseFloat(Numero.replace(MilesActual, ""));
			}

			ParteDecimal = "0";
		}
		else
		{
			Numero[0] = Numero[0].replace(" ", "");
			Numero[1] = Numero[1].replace(" ", "");

			if (Numero[0] == "")
			{
				ParteEntera = "0";
			}
			else
			{
				ParteEntera = parseFloat(Numero[0].replace(MilesActual, ""));
			}

			if (Numero[1] == "")
			{
				ParteDecimal = "0";
			}
			else
			{
				ParteDecimal = Numero[1];
			}
		}

		Signo = SignoPositivo;

		ParteEntera = ParteEntera.toString();
		ParteDecimal = ParteDecimal.toString();
		
		if (Valor.indexOf("-") == -1)
		{
			Signo = SignoPositivo;
			ParteEntera = ParteEntera.replace(MilesActual, "");
		}
		else
		{
			Signo = SignoNegativo;
			
			if (ParteEntera.indexOf("-") != -1)
			{
	 			ParteEntera = ParteEntera.substring(1, ParteEntera.length);
			}

			ParteEntera = ParteEntera.replace(MilesActual, "");
		}
	
		switch(ParteEntera.charAt(0))
		{
			case "0":
			{
				ParteEntera = ParteEntera.replace(MilesActual, "");
				break;
			}
			case "1":
			{
				ParteEntera = ParteEntera.replace(MilesActual, "");
				break;
			}
			case "2":
			{
				ParteEntera = ParteEntera.replace(MilesActual, "");
				break;
			}
			case "3":
			{
				ParteEntera = ParteEntera.replace(MilesActual, "");
				break;
			}
			case "4":
			{
				ParteEntera = ParteEntera.replace(MilesActual, "");
				break;
			}
			case "5":
			{
				ParteEntera = ParteEntera.replace(MilesActual, "");
				break;
			}
			case "6":
			{
				ParteEntera = ParteEntera.replace(MilesActual, "");
				break;
			}
			case "7":
			{
				ParteEntera = ParteEntera.replace(MilesActual, "");
				break;
			}
			case "8":
			{
				ParteEntera = ParteEntera.replace(MilesActual, "");
				break;
			}
			case "9":
			{
				ParteEntera = ParteEntera.replace(MilesActual, "");
				break;
			}
			default:
			{
				ParteEntera = ParteEntera.substring(1, ParteEntera.length);
				ParteEntera = ParteEntera.replace(MilesActual, "");
				break;
			}
		}
		
		if (ParteDecimal.length < PosicionesDecimales)
		{
			for (Contador = 0; Contador < (PosicionesDecimales - ParteDecimal.length); Contador++)
			{
				ParteDecimal += "0";
			}
		}
		else
		{		
			if (ParteDecimal.length > PosicionesDecimales)
			{
				if (parseFloat(ParteDecimal) > 0)
				{
					ParteDecimal = "0." + ParteDecimal.toString();
					
					Redondeo = "0.";

					for (Contador = 0; Contador < PosicionesDecimales; Contador++)
					{
						Redondeo += "0";
					}

					Redondeo += "1";
					
					ParteDecimal = (parseFloat(ParteDecimal) + parseFloat(Redondeo)).toString();
					
					if (parseFloat(ParteDecimal) >= 1)
					{
						ParteEntera = (parseFloat(ParteEntera) + 1).toString();
						ParteDecimal = ParteDecimal.substring(2, 2 + PosicionesDecimales);
						
						ParteDecimal = ParteDecimal.replace(" ", "");
						if (ParteDecimal == "")
						{
							for (Contador = 0; Contador < (PosicionesDecimales - ParteDecimal.length); Contador++)
							{
								ParteDecimal += "0";
							}
						}
					}
					else
					{
						ParteEntera = parseFloat(ParteEntera);
						ParteEntera = ParteEntera.toString();
						
						ParteDecimal = ParteDecimal.substring(2, 2 + PosicionesDecimales);
					}
				}
				else
				{
					ParteEntera = parseFloat(ParteEntera);
					ParteEntera = ParteEntera.toString();
					
					for (Contador = 0; Contador < (PosicionesDecimales - ParteDecimal.length); Contador++)
					{
						ParteDecimal += "0";
					}
				}
			}
		}
		
		for (Contador = 0; Contador < (PosicionesDecimales - ParteDecimal.length); Contador++)
		{
			ParteDecimal += "0";
		}

		ParteEntera = ParteEntera.replace(" ", "");
		
		FormatoMiles = "";
		
		for (Contador = (ParteEntera.length - PosicionesMillares); Contador >= ( 1 - PosicionesMillares); Contador -= PosicionesMillares)
		{
			if (Contador <= 0)
			{
				FormatoMiles = ParteEntera.substring(0, (PosicionesMillares + Contador)) + FormatoMiles;
			}
			else
			{
				FormatoMiles = SeparadorMillar + ParteEntera.substring(Contador, PosicionesMillares + Contador) + FormatoMiles;
			}
		}

		ParteEntera = FormatoMiles;
		
		if (ParteEntera == "")
		{
			ParteEntera = "0";
		}
	
		if (PosicionSignoMonetario == 1)
		{
			if (PosicionesDecimales == 0)
			{
				Resultado = SignoMonetario + Signo + ParteEntera.toString();
			}
			else
			{
				Resultado = SignoMonetario + Signo + ParteEntera.toString() + SeparadorDecimal + ParteDecimal.toString();
			}
		}
		else
		{
			if (PosicionesDecimales == 0)
			{
				Resultado = Signo + ParteEntera.toString() + SignoMonetario;
			}
			else
			{
				Resultado = Signo + ParteEntera.toString() + SeparadorDecimal + ParteDecimal.toString() + SignoMonetario;
			}
		}
		
		return (Resultado);	
	}
	
	
	function bCarneConducir (year1, month1, day1, year2, month2, day2)
	{
		/*
			Recibe 2 parametros:
				-	Fecha 2 : Carné de conducir
				-	Fecha 1	:	Fecha de nacimiento
			Comprueba por fecha2 - fecha1 es mayor de 18 años
		*/
		var y1= parseInt (year1);
		var m1 =parseInt (month1,10);
		var d1 = parseInt (day1,10);

		var y2= parseInt (year2);
		var m2 =parseInt (month2,10);
		var d2 = parseInt (day2,10);

		if (y2-y1<18){
			return false;
		}
		else{
			if(y2-y1==18)
			{
				if(m2-m1<0){
					return false;
				}else if(m2-m1==0){
					if(d2-d1<0){
						return false;
					}
				}
			}
		}
		return true;
	}		

	function fillSelectFromArray(selectCtrl, itemArray, goodPrompt, badPrompt, defaultItem) 
	{
		var i, j;
		var prompt;
		// empty existing items
		for (i = selectCtrl.options.length; i >= 0; i--) {
			selectCtrl.options[i] = null; 
		}
		prompt = (itemArray != null) ? goodPrompt : badPrompt;
		if (prompt == null) {
			j = 0;
		}
		else {
			selectCtrl.options[0] = new Option(prompt);
			j = 1;
		}
		if (itemArray != null) {
			// add new items
			for (i = 0; i < itemArray.length; i++) {
				selectCtrl.options[j] = new Option(itemArray[i][0]);
				if (itemArray[i][1] != null) {
					selectCtrl.options[j].value = itemArray[i][1]; 
				}
				j++;
			}
			// select first item (prompt) for sub list
			selectCtrl.options[0].selected = true;
			//para activar campos ocultos en IE
			var lista = document.frmContacto.subcategoria
			if(document.frmContacto["categoria"].selectedIndex==3 && (lista.options[lista.selectedIndex].value.indexOf("x")==-1)){
				ActivarOpcionesEV(true);	
			}
			else{
				ActivarOpcionesEV(false);	
			}
			selectCtrl.focus();
		}
	}
	function rellenaSelectSin(selectCtrl, itemArray, goodPrompt, badPrompt, defaultItem) 
	{
		var i, j;
		var prompt;
		// empty existing items
		for (i = selectCtrl.options.length; i >= 0; i--) {
			selectCtrl.options[i] = null; 
		}
		prompt = (itemArray != null) ? goodPrompt : badPrompt;
		if (prompt == null) {
			j = 0;
		}
		else {
			selectCtrl.options[0] = new Option(prompt);
			j = 1;
		}
		if (itemArray != null) {
			// add new items
			for (i = 0; i < itemArray.length; i++) {
				selectCtrl.options[j] = new Option(itemArray[i][0]);
				if (itemArray[i][1] != null) {
					selectCtrl.options[j].value = itemArray[i][1]; 
				}
				j++;
			}
			// select first item (prompt) for sub list
			selectCtrl.options[0].selected = true;
		}
	}

	function fillSelectFromArray1(selectCtrl, itemArray, goodPrompt, badPrompt, defaultItem) 
	{
		var i, j;
		var prompt;
		// empty existing items
		for (i = selectCtrl.options.length; i >= 0; i--) {
			selectCtrl.options[i] = null; 
		}
		prompt = (itemArray != null) ? goodPrompt : badPrompt;
		if (prompt == null) {
			j = 0;
		}
		else {
			selectCtrl.options[0] = new Option(prompt);
			j = 1;
		}
		if (itemArray != null) {
			// add new items
			for (i = 0; i < itemArray.length; i++) {
				selectCtrl.options[j] = new Option(itemArray[i][0]);
				if (itemArray[i][1] != null) {
					selectCtrl.options[j].value = itemArray[i][1]; 
				}
				j++;
			}
			// select first item (prompt) for sub list
			selectCtrl.options[0].selected = true;
			selectCtrl.focus();
		}
	}

	function ActivarOpciones(bVisible){

	navegador = navigator.appName;
	versionNav = parseInt(navigator.appVersion);
	var bGeneral;
	bGeneral=location.search.indexOf("subcategoria=")>-1?false:true;
	var lista = document.frmContacto.subcategoria;
	var strCategoria = document.frmContacto["categoria"].value;
	if (versionNav>=4) {
		if ((navegador=="Netscape")) {
			//volver a llamar con los parámetros apropiados,siempre y cuando no venga por submit
				//alert(bVisible)
				document.frmContacto["bOpcionales"].value=bVisible;
				if(document.frmContacto.bPrimeraVez.value=="")
					document.frmContacto.bPrimeraVez.value=false
				if (bGeneral)
					document.frmContacto.submit();
				else{
					location.href=location.pathname+"?bPrimeraVez=false&bOpcionales="+bVisible+"&Categoria="+ strCategoria+"&subcategoria="+lista.options[lista.selectedIndex].value
					//alert(blocation)
				}
		}
		else if (navegador.indexOf('Explorer') != -1){
			var oVDiv=document.getElementById("opcionales");
			if(bVisible)
				oVDiv.style.visibility="visible";
			else
				oVDiv.style.visibility="hidden";
		}
	}	
	}
	
	
	function ActivarOpcionesEV(bVisible){
	//Modificado por EVarona 17/07/2007
       // No funciona los combos en Firefox, se usa esta nueva funcion en lugar de ActivarOpciones
       // y parece que va OK
		navegador = navigator.appName;
		versionNav = parseInt(navigator.appVersion);
		var bGeneral;
		bGeneral=location.search.indexOf("subcategoria=")>-1?false:true;
		var lista = document.frmContacto.subcategoria;
		var strCategoria = document.frmContacto["categoria"].value;
		var oVDiv=document.getElementById("opcionales");
		if(bVisible)
			oVDiv.style.visibility="visible";
		else
			oVDiv.style.visibility="hidden";
			
			
	}
	
	
	
	function Validar(frm){

		//Mod. Petición: 156338 A.G 13/05/09
		
		//Aceptar Condiciones Legales 
		if(frm.chkCondiciones.checked ==""){
			alert(sCondicionesLegales);
			return false;
		}
		
		//Fin Mod. Petición: 156338 A.G 13/05/09


		if(frm.categoria.selectedIndex < 1){
			alert(sSelectCat);
			return;
		}
		if(frm.subcategoria.selectedIndex < 0){
			alert(sSelectSubCat);
			return;
		}
		if(frm.sugerencia.value==""){
			alert(sEscribanosCyS);
			return;
		}
		var bEmail=frm.chkemail.checked;
		var bPostal=frm.chkpostal.checked;
		var bTelefono=frm.chktelefono.checked;
		
		if (bEmail || bPostal || bTelefono ){//debe indicar nombre
			if (frm.nombre.value==""){
				alert(sNombre);
				return;
			}
		}
		
		if (bEmail){//debe indicar email
			if (!isEmail(frm.email.value)){
				alert(sEmail);
				return;
			}
		}
		
		if (bTelefono  ){//debe indicar telefono
			if (!isInteger(frm.telefono.value)){
				alert(sTelefono);
				return;
			}
		}
		
		if (bPostal  ){//debe indicar datos postales
			if ((frm.domicilio.value=="") || (frm.cp.value=="") || (frm.localidad.value=="")|| (frm.provincia.value=="")){
				alert(sCP);
				return;
			}
		}
		//faltan campos opcionales

		if (frm.subcategoria.options[frm.subcategoria.selectedIndex].value=="solred"){
			if(frm.chkcliente.checked ){
				if( isEmpty(frm.nif.value)){
					alert(sNIF);
					return;
				}	
			}	
		}
		
		if(frm.bPrimeraVez.value=="")
			frm.bPrimeraVez.value=false;
	//cambiar action
	//	frm.action="/esp/plantillas/herramientas/respuestacontactenos.asp"
		document.getElementById("nombre").style.whiteSpace="pre";
		document.frmContacto.namecategoria.value = document.frmContacto.categoria[frmContacto.categoria.selectedIndex].text;
		document.frmContacto.namesubcategoria.value = document.frmContacto.subcategoria[frmContacto.subcategoria.selectedIndex].text;
		frm.bEnviar.value=true;
		frm.submit();
	} 

	function cambiaSubcategoria  ( nSeleccion ) {
		var lista = document.frmContacto.subcategoria
		var subcatactual=document.frmContacto.strSubCatActual.value
		var re=/&subcategoria=\w+&/;
		var newsearch;
		var bGeneral;
		bGeneral=location.search.indexOf("subcategoria=")>-1?false:true;	
		(location.search.indexOf("?")>-1)?ia="?":ia="?";
		(location.search.indexOf("bOpcionales")>-1)?ia="?bOpcionales=true&":ia="?bOpcionales=true&";

		if(subcatactual=="solred" && lista.options[nSeleccion].value!="visa"){
			if (!bGeneral){
				newsearch=location.search.replace(re,"&subcategoria="+ lista.options[nSeleccion].value +"&");
			}
			else
				newsearch=location.search + ia + "Categoria=3&subcategoria="+ lista.options[nSeleccion].value +"&bPrimeraVez=false"
			location.href=location.pathname+newsearch
		}
		
		if(subcatactual=="visa" && lista.options[nSeleccion].value!="solred"){
			if (!bGeneral){
				newsearch=location.search.replace(re,"&subcategoria="+ lista.options[nSeleccion].value +"&");
			}
			else
				newsearch=location.search + ia +  "Categoria=3&subcategoria="+ lista.options[nSeleccion].value +"&bPrimeraVez=false"
			location.href=location.pathname+newsearch
		}
		// SOLRED
		if(lista.options[nSeleccion].value=="solred" ){
			if (!bGeneral){
				newsearch=location.search.replace(re,"&subcategoria="+ lista.options[nSeleccion].value +"&");
			}
			else
			
				newsearch=location.search + ia +  "Categoria=3&subcategoria="+ lista.options[nSeleccion].value +"&bPrimeraVez=false"

			location.href=location.pathname+newsearch
		}
		// VISA
		if(lista.options[nSeleccion].value=="visa" ){
			if (!bGeneral){
				newsearch=location.search.replace(re,"&subcategoria="+ lista.options[nSeleccion].value +"&");
			}
			else
				newsearch=location.search +  ia + "Categoria=3&subcategoria="+ lista.options[nSeleccion].value +"&bPrimeraVez=false"
			location.href=location.pathname+newsearch
		}

		if((document.frmContacto["categoria"].selectedIndex==3) && lista.options[nSeleccion].value.indexOf("x")==-1){
			ActivarOpcionesEV(true);
		}
		else
			ActivarOpcionesEV(false);
	}


