// JavaScript Document
 oContacto = new function(){

		var erEmail = RegExp('^[a-z0-9_\.\-]+@[a-z0-9_\-]+(\.[a-z0-9_\-]{2,5})*\.[a-z]{2,4}$');
		var erNumero = RegExp('^[0-9]+$');
		var erFecha = RegExp('^(0[1-9]|[1-2][0-9]|3[0-1])/(0[1-9]|1[0-2])/[1-2][0-9]{3}$');
		var erSiNo = RegExp('^[01]$');
		var errorClass = 'fieldsetError';
		var cargandoForm = false;


		//A
		this.analizarTecla = function(e){
			if(e.keyCode == 13)FireEvent($('enviarContacto'),'click');
		}
		

		//E
		this.enviarContacto = function(evt){
			if(!iniciado)inicializarContacto();
			var error = false, t = '';
			
			if(evt){ StopEvent(evt); }
			if(wait){ return false; }
			
			

			nombreC.onblur();
			if(nombreC.parentNode.className == errorClass){ error = true; }
			
			apellidoC.onblur();
			if(apellidoC.parentNode.className == errorClass){ error = true; }
			
			emailC.onblur();
			if(emailC.parentNode.className == errorClass){ error = true; }
			
			provinciaC.onblur();
			if(provinciaC.parentNode.className == errorClass){ error = true; }
			
			ciudadC.onblur();
			if(ciudadC.parentNode.className == errorClass){ error = true; }
			
			
			comentarioC.onblur();
			if(comentarioC.parentNode.className == errorClass){ error = true; }
			
			
			if(error){
				errorC.innerHTML = 'Complete o corrija los campos resaltados';
				errorC.style.display = 'block';
				return false;
			}
			

			
			wait = true;
			reqType = 'contactar';
			
			t += getDatosPersonales();
			t += 'consulta' + SEP_IGUAL + comentarioC.value + SEP_AND;
			Loader.show();
			Blocker.show();
			req.pedir(DIR_ROOT + 'requests/contacto.php', t);
		}		
		//G
		var getDatosPersonales = function(){
			datosPersonales = '';
			datosPersonales += 'nombre' + SEP_IGUAL + trim(nombreC.value) + SEP_AND;
			datosPersonales += 'apellido' + SEP_IGUAL + trim(apellidoC.value) + SEP_AND;
			datosPersonales += 'email' + SEP_IGUAL + trim(emailC.value) + SEP_AND;
			datosPersonales += 'idPais' + SEP_IGUAL + trim(paisC.value) + SEP_AND;
			datosPersonales += 'idProvincia' + SEP_IGUAL + trim(provinciaC.value) + SEP_AND;
			datosPersonales += 'idCiudad' + SEP_IGUAL + trim(ciudadC.value) + SEP_AND;
			datosPersonales += 'nombreProvincia' + SEP_IGUAL + trim(provinciaNC.value) + SEP_AND;
			datosPersonales += 'nombreCiudad' + SEP_IGUAL + trim(ciudadNC.value) + SEP_AND;
			datosPersonales += 'direccion' + SEP_IGUAL + trim(direccionC.value) + SEP_AND;
			datosPersonales += 'cp' + SEP_IGUAL + trim(cpC.value) + SEP_AND;
			datosPersonales += 'telefono' + SEP_IGUAL + trim(telefonoC.value) + SEP_AND;
			
			oCookie.set('datosPersonales', datosPersonales);
			return datosPersonales;
		}		
	
		this.inicializarContacto = function(){
			
			
			nombreC = $('nombreContacto');
			if(!nombreC.onblur){
				nombreC.onblur = function(){
					var v = trim(this.value);
					if(v == '' || v.length < 3){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(nombreC);
			}
			
			apellidoC = $('apellidoContacto');
			if(!apellidoC.onblur){
				apellidoC.onblur = function(){
					var v = trim(this.value);
					if(v == '' || v.length < 3){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(apellidoC);
			}
			
			emailC = $('emailContacto');
			if(!emailC.onblur){
				emailC.onblur = function(){
					var v = trim(this.value);
					if(v == '' || !erEmail.test(v)){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(emailC);
			}
			
			paisC = $('paisContacto');
			if(!paisC.onchange){
				paisC.onchange = function(){
					provinciaC.disabled = ciudadC.disabled = true;
					
					provinciaNC.style.display = ciudadNC.style.display = 'none';
					
					reqType = 'provincias';
					
					var v = 'tipo' + SEP_IGUAL + reqType + SEP_AND;
					v += 'idPais' + SEP_IGUAL + paisC.value + SEP_AND;
					
					req.pedir(DIR_ROOT + 'requests/zonas_geograficas.php', v);
				};
			}
			
			provinciaC = $('provinciaContacto');
			if(!provinciaC.onchange){
				provinciaC.onchange = function(){
					
					var v = trim(provinciaC.value);
					
					ciudadC.disabled = true;
					provinciaNC.style.display = (v == '0')? '' : 'none';
					ciudadNC.style.display = 'none';
					
					if(erNumero.test(v) && v != ''){
						
						reqType = 'ciudades';
						
						var v = 'tipo' + SEP_IGUAL + reqType + SEP_AND;
						v += 'idProvincia' + SEP_IGUAL + provinciaC.value + SEP_AND;
						
						req.pedir(DIR_ROOT + 'requests/zonas_geograficas.php', v);
					}
				};
			}
			if(!provinciaC.onblur){
				provinciaC.onblur = function(){
					var v = trim(this.value);
					if(v == '' || !erNumero.test(v)){ this.parentNode.className = errorClass; }
					else{ provinciaNC.onblur(); }
				}.closure(provinciaC);
			}
			
			provinciaNC = $('provinciaNombreContacto');
			if(!provinciaNC.onblur){
				provinciaNC.onblur = function(){
					var v = trim(this.value);
					if(provinciaC.value == '0' && (v == '' || v.length < 3)){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(provinciaNC);
			}
			
			ciudadC = $('ciudadContacto');
			if(!ciudadC.onchange){
				ciudadC.onchange = function(){
					
					var v = trim(ciudadC.value);
					
					ciudadNC.style.display = (v == '0')? '' : 'none';

					
				};
			}
			if(!ciudadC.onblur){
				ciudadC.onblur = function(){
					var v = trim(this.value);
					if(v == '' || !erNumero.test(v)){ this.parentNode.className = errorClass; }
					else{ ciudadNC.onblur(); }
				}.closure(ciudadC);
			}
			
			ciudadNC = $('ciudadNombreContacto');
			if(!ciudadNC.onblur){
				ciudadNC.onblur = function(){
					var v = trim(this.value);
					if(ciudadC.value == '0' && (v == '' || v.length < 3)){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(ciudadNC);
			}
			

			
			direccionC = $('direccionContacto');
			cpC = $('cpContacto');
			telefonoC = $('telefonoContacto');
			comentarioC = $('comentarioContacto');
			if(!comentarioC.onblur){
				comentarioC.onblur = function(){
					var v = trim(this.value);
					if(v == '' || v.length < 3){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(comentarioC);
			}			
			errorC = $('errorContacto');
			
			iniciado = true;
		}		
		
		//L
		var listener = function(){
			var d = req.respuestaXML;
			wait = false;
			
			if(!d){ 
				alert(req.respuestaHTML); 
				Blocker.hide();
				Loader.hide();				
			}
			//

			else if(reqType == 'contactar'){
			
				if(d.getAttribute('exito') != 'si'){
					Error.onAccept = Error.onCancel = function(){
						Error.hide();
						blockearCampos(false);
						Blocker.hide();
					}
					Error.show(nodo.firstChild.data);
					Loader.hide();
				}
				else{
					Exito.onAccept = function(){
						comentarioC.value = '';
						Blocker.hide();
					};
					Exito.show(d.firstChild.data);
					Loader.hide();
				}
			}
			//
			else if(reqType == 'provincias'){
				
				while(provinciaC.hasChildNodes()){ provinciaC.removeChild(provinciaC.firstChild); }
				
				for(var i = 0, t = d.childNodes.length; i < t; i++){
					var opt = document.createElement('option');
					opt.value = d.childNodes[i].getAttribute('value');
					opt.innerHTML = d.childNodes[i].firstChild.data;
					
					provinciaC.appendChild(opt);
				}
				provinciaC.disabled = false;
			}
			//
			else if(reqType == 'ciudades'){
				
				while(ciudadC.hasChildNodes()){ ciudadC.removeChild(ciudadC.firstChild); }
				
				for(var i = 0, t = d.childNodes.length; i < t; i++){
					var opt = document.createElement('option');
					opt.value = d.childNodes[i].getAttribute('value');
					opt.innerHTML = d.childNodes[i].firstChild.data;
					
					ciudadC.appendChild(opt);
				}
				ciudadC.disabled = false;
			}
			//
			//
		}.closure(this);
		
		
		// Envio de Consulta del Clasificado
		var datosPersonales = (oCookie.get('datosPersonales') == '')? '' : oCookie.get('datosPersonales');
		var nombreC, apellidoC, emailC, comentarioC, paisC, provinciaC, provinciaNC, 
		ciudadC, ciudadNC, direccionC, cpC, telefonoC, errorC, cargandoC, exitoC;
		
		var clasInfo;
		var wait = false, reqType;
		var req = new Request(listener);
		var iniciado = false;
	
	
	}
