// JavaScript Document
	var Exito = new function(){
		//
		this.show = function(msj){
			$('msjExito').innerHTML = msj;
			
			var l = $('capaExito');
			l.style.top = (((HScreen() - l.offsetHeight) / 2) + YPos()) + 'px';
			l.style.left = (((WScreen() - l.offsetWidth) / 2) + XPos()) + 'px';
			l.style.visibility = 'visible';
			
			try{ $('aceptarExito').focus(); }catch(e){ ; }
			AddEvent(document, 'keypress', escape);
			AddEvent($('aceptarExito'), 'click', accept);
			AddEvent($('cerrarExito'), 'click', accept);
		}
		
		this.hide = function(){
			RemEvent(document, 'keypress', escape);
			RemEvent($('aceptarExito'), 'click', accept);
			RemEvent($('cerrarExito'), 'click', accept);
			var l = $('capaExito');
			l.style.visibility = 'hidden';
			l.style.top = '-1000px';
		}
		
		this.onAccept = null;
		
		var accept = function(e){
			if(!!e){ StopEvent(e); }
			this.hide();
			if(!!this.onAccept){ this.onAccept(); }
		}.closure(this);
		
		var escape = function(event){
			if(event.keyCode == 27){ accept(); }
		}.closure(this);
		
		//
	}
// JavaScript Document
	var Error = new function(){
		//
		this.show = function(msj){
			$('msjError').innerHTML = msj;
			
			var l = $('capaError');
			l.style.top = (((HScreen() - l.offsetHeight) / 2) + YPos()) + 'px';
			l.style.left = (((WScreen() - l.offsetWidth) / 2) + XPos()) + 'px';
			l.style.visibility = 'visible';
			
			try{ $('aceptarError').focus(); }catch(e){ ; }
			AddEvent(document, 'keypress', escape);
			AddEvent($('aceptarError'), 'click', accept);
			AddEvent($('cerrarError'), 'click', accept);
		}
		
		this.hide = function(){
			RemEvent(document, 'keypress', escape);
			RemEvent($('aceptarError'), 'click', accept);
			RemEvent($('cerrarError'), 'click', accept);
			var l = $('capaError');
			l.style.visibility = 'hidden';
			l.style.top = '-1000px';
		}
		
		this.onAccept = null;
		
		var accept = function(e){
			if(!!e){ StopEvent(e); }
			this.hide();
			if(!!this.onAccept){ this.onAccept(); }
		}.closure(this);
		var escape = function(event){
			if(event.keyCode == 27){ accept(); }
		}.closure(this);
		
		//
	}
// JavaScript Document
function form(nombre, archivo){
	
	var error = $('error' + nombre);
	var loader = $('loader' + nombre);
	
	var enviando = false;
	var errores = 0;
	var aCampos = new Array();
	var aValidar = new Array();
	var aLimpiar = new Array();
	var req = new Request();
	var elemento = false;
	this.moreInfo = '';
	//
	this.onSuccess = null;
	this.onError = null;
	this.onSend = null;
	
	//
	req.listener = function(){

		var d = req.respuestaXML;
		block(false);
		if(!!loader){ loader.style.display = 'none'; }
		if(!d){ alert(req.respuestaHTML); }
		else if(d.getAttribute('exito') == 'si'){
			if(!this.onSuccess){
				block(true);
				Exito.onAccept = onAccept;
				Exito.show(d.firstChild.data);
			}
			else{ this.onSuccess(d); }

		}
		else{
			if(!this.onError){
				block(true);
				Error.onAccept = onAccept;
				Error.show(d.firstChild.data);
			}
			else{ this.onError(d); }
		}

	}.closure(this);
	
	this.pedirExterno = function(archivo,valor){
		req.pedir(archivo,valor);	
	}
	
	this.onAccept = function(){
		onAccept();	
	}
	
	var onAccept = function(){
		clean();
		block(false);
	}.closure(this);
	
	this.addField = function(campo, nombre, expresion, clear){
		var o = {'c':campo, 'n':nombre};
		//
		aCampos.push(o);
		if(expresion){
			campo.expresion = expresion;
			campo.inputError = inputError;

			if(campo.tagName.toLowerCase() != 'select')campo.onblur = funcVal.closure(campo);
			else campo.onchange = funcVal.closure(campo);
			//
			aValidar.push(aCampos.length - 1);
		}
		if(clear){ aLimpiar.push(aCampos.length - 1); }
		return aCampos.length-1;
	}
	
	var clean = function(){
		var i = null;
		//
		for(i in aLimpiar){ aCampos[aLimpiar[i]]['c'].value = ''; }
		for(i in aCampos){ inputError(aCampos[i]['c'], false); }
		errores = 0;
		showError();
	}
	
	this.enter = function(event){
		if(event.keyCode == 13){ this.send(); }
	}.closure(this);
	
	this.send = function(event,sinBlock){
		var v = '', i = null;
		if(!!event){ StopEvent(event); }
		if(!!this.onSend){ this.onSend(); }
		//

		
	
		if(enviando){ return false; }
		else if(validate()){ return false; }
				//
		block(true);
		if(!!loader){ loader.style.display = 'block'; }
		//

		for(i in aCampos){
			v += aCampos[i]['n'] + SEP_IGUAL + trim(aCampos[i]['c'].value) + SEP_AND;
		}
		if(this.moreInfo != ''){ v += this.moreInfo; }
			//
		req.pedir(DIR_ROOT + 'requests/' + archivo + '.php', v);
		return true;
	}.closure(this);
	
	var inputError = function(c, b){
		errores += (b)? 1:0;
		c.className = (b)? 'inputError':'';
	}.closure(this);
	
	var showError = function(){
		error.style.display = (errores > 0)? 'block':'none';
	}
	
	var funcVal = function(){
		this.value = trim(this.value);
		if(this.value.search(this.expresion) == 0 && !this.errorDesactivado){ this.inputError(this, false); }
		else{ this.inputError(this, true); }
	}
	
	var validate = function(){
		var i = null, c;
		//
		errores = 0;
		for(i in aValidar){
			c = aCampos[aValidar[i]]['c'];
			if(!c.disabled){ 
				if(c.tagName.toLowerCase() != 'select')c.onblur();
				else c.onchange();
				
			}
		}
		
		showError();
		return (errores > 0);
	}
	
	this.unblock = function(){
		var i = null;		
		enviando = false;
		for(i in aCampos){ aCampos[i]['c'].disabled = false; }
		
	}
	
	var block = function(b){
		var i = null;
		//
		enviando = b;
		for(i in aCampos){ aCampos[i]['c'].disabled = b; }
	}

}



	var oSuscribirseNewsletter = 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';


		//C
		this.suscribirse = function(a,e){

			iniciarPop();
			if(!formSeteado){
				reqType = 'datosFormulario';
				req.pedir(DIR_ROOT + 'requests/registroNewsletterInfo.php','tipo' + SEP_IGUAL + 'datosFormulario' + SEP_AND + datosPersonales);				
			}

			oPopSuscribirse.open(a);			
			if(e)StopEvent(e);
		}
		
		this.enviarSuscripcion = function(evt){
			var error = false, t = '';
			
			if(evt){ StopEvent(evt); }
			if(wait){ return false; }
			
			

			nombreR.onblur();
			if(nombreR.parentNode.className == errorClass){ error = true; }
			
			apellidoR.onblur();
			if(apellidoR.parentNode.className == errorClass){ error = true; }
			
			emailR.onblur();
			if(emailR.parentNode.className == errorClass){ error = true; }
			
			provinciaR.onblur();
			if(provinciaR.parentNode.className == errorClass){ error = true; }
			
			ciudadR.onblur();
			if(ciudadR.parentNode.className == errorClass){ error = true; }
			
			barrioR.onblur();
			if(barrioR.parentNode.className == errorClass){ error = true; }

			comoLlego.onblur();
			if(comoLlego.parentNode.className == errorClass){ error = true; }


			if($('tipoParticularSuscribirse').checked){
				t += 'tipoRegistro' + SEP_IGUAL + 'particular' + SEP_AND;
				if($('organizandoSiSuscribirse').checked){
					t += 'organizandoEvento' + SEP_IGUAL + 'si' + SEP_AND;
					fechaEvento.onblur();
					if(fechaEvento.parentNode.className == errorClass){ error = true; }
					var tipoEv = 'casamiento';
					if($('tipoEventoQuinceSuscribirse').checked)tipoEv = 'quince';
					else if($('tipoEventoCumpleaniosSuscribirse').checked)tipoEv = 'cumpleanios';
					else if($('tipoEventoEmpresarialSuscribirse').checked)tipoEv = 'empresarial';		
					t += 'tipoEvento' + SEP_IGUAL + tipoEv + SEP_AND;
					t += 'fechaEvento' + SEP_IGUAL + fechaEvento.value + SEP_AND;					
				}
				else{
					t += 'organizandoEvento' + SEP_IGUAL + 'no' + SEP_AND;	
				}
			}
			else{
				t += 'tipoRegistro' + SEP_IGUAL + 'empresa' + SEP_AND;
				empresa.onblur();
				if(empresa.parentNode.className == errorClass){ error = true; }
				rubro.onblur();
				if(rubro.parentNode.className == errorClass){ error = true; }
				t += 'empresa' + SEP_IGUAL + empresa.value + SEP_AND;
				t += 'rubro' + SEP_IGUAL + rubro.value + SEP_AND;
				t += 'web' + SEP_IGUAL + web.value + SEP_AND;
				
				
			}
			t += 'comoLlego' + SEP_IGUAL + comoLlego.value + SEP_AND;				
			
			if(error){
				errorR.innerHTML = 'Complete o corrija los campos resaltados';
				errorR.style.display = 'block';
				return false;
			}
			
			errorR.style.display = 'none';
			
			wait = true;
			reqType = 'suscribirse';
			
			t += getDatosPersonales();
			$('laySuscribirse').style.visibility = 'hidden';
			Loader.show();
			
			req.pedir(DIR_ROOT + 'requests/suscribirseNewsletter.php', t);
		}		
		//G
		var getDatosPersonales = function(){
			datosPersonales = '';
			datosPersonales += 'nombre' + SEP_IGUAL + trim(nombreR.value) + SEP_AND;
			datosPersonales += 'apellido' + SEP_IGUAL + trim(apellidoR.value) + SEP_AND;
			datosPersonales += 'email' + SEP_IGUAL + trim(emailR.value) + SEP_AND;
			datosPersonales += 'idPais' + SEP_IGUAL + trim(paisR.value) + SEP_AND;
			datosPersonales += 'idProvincia' + SEP_IGUAL + trim(provinciaR.value) + SEP_AND;
			datosPersonales += 'idCiudad' + SEP_IGUAL + trim(ciudadR.value) + SEP_AND;
			datosPersonales += 'idBarrio' + SEP_IGUAL + trim(barrioR.value) + SEP_AND;
			datosPersonales += 'nombreProvincia' + SEP_IGUAL + trim(provinciaNR.value) + SEP_AND;
			datosPersonales += 'nombreCiudad' + SEP_IGUAL + trim(ciudadNR.value) + SEP_AND;
			datosPersonales += 'nombreBarrio' + SEP_IGUAL + trim(barrioNR.value) + SEP_AND;
			datosPersonales += 'direccion' + SEP_IGUAL + trim(direccionR.value) + SEP_AND;
			datosPersonales += 'cp' + SEP_IGUAL + trim(cpR.value) + SEP_AND;
			datosPersonales += 'telefono' + SEP_IGUAL + trim(telefonoR.value) + SEP_AND;
			
			Cookie.set('datosPersonales', datosPersonales);
			return datosPersonales;
		}		
	
		//I
		var iniciarPop = function (){
			if(!oPopSuscribirse){
			 	oPopSuscribirse = new layer('Suscribirse','');
				oPopSuscribirse.sinScroll = true;
				if(Nav.esIE){ $('laySuscribirse').style.visibility = 'visible'; }	
			   	AddEvent($('cerrarSuscribirse'), 'click', oPopSuscribirse.close);
			}
			
		}
		var inicializarFormulario = function(){
			
			
			nombreR = $('nombreSuscribirse');
			if(!nombreR.onblur){
				nombreR.onblur = function(){
					var v = trim(this.value);
					if(v == '' || v.length < 3){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(nombreR);
			}
			
			apellidoR = $('apellidoSuscribirse');
			if(!apellidoR.onblur){
				apellidoR.onblur = function(){
					var v = trim(this.value);
					if(v == '' || v.length < 3){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(apellidoR);
			}
			
			emailR = $('emailSuscribirse');
			if(!emailR.onblur){
				emailR.onblur = function(){
					var v = trim(this.value);
					if(v == '' || !erEmail.test(v)){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(emailR);
			}
			
			if($('newsEmail').value != '' && $('newsEmail').value != 'Escriba su e-mail')emailR.value = $('newsEmail').value;
			
			paisR = $('paisSuscribirse');
			if(!paisR.onchange){
				paisR.onchange = function(){
					provinciaR.disabled = ciudadR.disabled =
					barrioR.disabled = true;
					
					provinciaNR.style.display = ciudadNR.style.display = 
					barrioNR.style.display = 'none';
					
					reqType = 'provincias';
					
					var v = 'tipo' + SEP_IGUAL + reqType + SEP_AND;
					v += 'idPais' + SEP_IGUAL + paisR.value + SEP_AND;
					
					req.pedir(DIR_ROOT + 'requests/zonas_geograficas.php', v);
				};
			}
			
			provinciaR = $('provinciaSuscribirse');
			if(!provinciaR.onchange){
				provinciaR.onchange = function(){
					
					var v = trim(provinciaR.value);
					
					ciudadR.disabled = barrioR.disabled = true;
					provinciaNR.style.display = (v == '0')? '' : 'none';
					ciudadNR.style.display = barrioNR.style.display = 'none';
					
					if(erNumero.test(v) && v != ''){
						
						reqType = 'ciudades';
						
						var v = 'tipo' + SEP_IGUAL + reqType + SEP_AND;
						v += 'idProvincia' + SEP_IGUAL + provinciaR.value + SEP_AND;
						
						req.pedir(DIR_ROOT + 'requests/zonas_geograficas.php', v);
					}
				};
			}
			if(!provinciaR.onblur){
				provinciaR.onblur = function(){
					var v = trim(this.value);
					if(v == '' || !erNumero.test(v)){ this.parentNode.className = errorClass; }
					else{ provinciaNR.onblur(); }
				}.closure(provinciaR);
			}
			
			provinciaNR = $('provinciaNombreSuscribirse');
			if(!provinciaNR.onblur){
				provinciaNR.onblur = function(){
					var v = trim(this.value);
					if(provinciaR.value == '0' && (v == '' || v.length < 3)){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(provinciaNR);
			}
			
			ciudadR = $('ciudadSuscribirse');
			if(!ciudadR.onchange){
				ciudadR.onchange = function(){
					
					var v = trim(ciudadR.value);
					
					barrioR.disabled = true;
					ciudadNR.style.display = (v == '0')? '' : 'none';
					barrioNR.style.display = 'none';
					
					if(erNumero.test(v) && v != ''){
						
						reqType = 'barrios';
						
						var v = 'tipo' + SEP_IGUAL + reqType + SEP_AND;
						v += 'idCiudad' + SEP_IGUAL + ciudadR.value + SEP_AND;
						
						req.pedir(DIR_ROOT + 'requests/zonas_geograficas.php', v);
					}
				};
			}
			if(!ciudadR.onblur){
				ciudadR.onblur = function(){
					var v = trim(this.value);
					if(v == '' || !erNumero.test(v)){ this.parentNode.className = errorClass; }
					else{ ciudadNR.onblur(); }
				}.closure(ciudadR);
			}
			
			ciudadNR = $('ciudadNombreSuscribirse');
			if(!ciudadNR.onblur){
				ciudadNR.onblur = function(){
					var v = trim(this.value);
					if(ciudadR.value == '0' && (v == '' || v.length < 3)){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(ciudadNR);
			}
			
			barrioR = $('barrioSuscribirse');
			if(!barrioR.onchange){
				barrioR.onchange = function(){
					
					var v = trim(barrioR.value);
					barrioNR.style.display = (v == '0')? '' : 'none';
				};
			}
			if(!barrioR.onblur){
				barrioR.onblur = function(){
					var v = trim(this.value);
					if(v == '' || !erNumero.test(v)){ this.parentNode.className = errorClass; }
					else{ barrioNR.onblur(); }
				}.closure(barrioR);
			}
			
			barrioNR = $('barrioNombreSuscribirse');
			if(!barrioNR.onblur){
				barrioNR.onblur = function(){
					var v = trim(this.value);
					if(barrioR.value == '0' && (v == '' || v.length < 3)){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(barrioNR);
			}
			
			direccionR = $('direccionSuscribirse');
			cpR = $('cpSuscribirse');
			telefonoR = $('telefonoSuscribirse');
			errorR = $('errorSuscribirse');
			cargandoR = $('cargandoSuscribirse');
			//exitoR = $('exitoSuscribirse');
			




			web = $('webSuscribirse');
			comoLlego = $('comoLlegoSuscribirse');
			if(!comoLlego.onblur){
				comoLlego.onblur = function(){
					var v = trim(this.value);
					if(v == '' || v.length < 3){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(comoLlego);
			}
			
			fechaEvento = $('fechaEventoSuscribirse');
			if(!fechaEvento.onblur){
				fechaEvento.onblur = function(){
					var v = trim(this.value);
					if(v != '' && !erFecha.test(v)){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(fechaEvento);
			}
			empresa = $('empresaSuscribirse');
			if(!empresa.onblur){
				empresa.onblur = function(){
					var v = trim(this.value);
					if(v == ''){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(empresa);
			}
			rubro = $('rubroSuscribirse');
			if(!rubro.onblur){
				rubro.onblur = function(){
					var v = trim(this.value);
					if(v == ''){ this.parentNode.className = errorClass; }
					else{ this.parentNode.className = ''; }
				}.closure(rubro);
			}

			AddEvent($('organizandoSiSuscribirse'),'click',function(){mostrarOrganizacion('block')});
			AddEvent($('organizandoNoSuscribirse'),'click',function(){mostrarOrganizacion('none')});
			AddEvent($('tipoEmpresaSuscribirse'),'click',function(){mostrarDatos('empresa')});
			AddEvent($('tipoParticularSuscribirse'),'click',function(){mostrarDatos('particular')});	
			
			

			FireEvent($('tipoParticularSuscribirse'),'click');
			if(Nav.esIE){ $('laySuscribirse').style.visibility = 'visible'; }


			iniciado = true;
			
		}		
		
		//L
		var listener = function(){
			var d = req.respuestaXML;
			wait = false;
			
			if(!d){ alert(req.respuestaHTML); }
			//
			else if(reqType == 'datosFormulario'){
				$('formularioContenidoSuscribirseNewsletter').innerHTML = d.firstChild.data;
				inicializarFormulario();
				formSeteado = true;				
			}

	
			//
			else if(reqType == 'suscribirse'){
				/*nombreR.disabled = apellidoR.disabled = emailR.disabled = comentarioR.disabled = 
				cpR.value = direccionR.disabled = telefonoR.disabled = ciudadR.value = 
				provinciaR.value = false;*/
			
				if(d.getAttribute('exito') != 'si'){
					
					errorR.innerHTML = d.firstChild.data;
					errorR.style.display = 'block';
					$('laySuscribirse').style.visibility = 'visible';					
				}
				else{
					Exito.onAccept = function(){
						$('laySuscribirse').style.visibility = 'visible';
						$('tipoParticularSuscribirse').checked = true;
						FireEvent($('tipoParticularSuscribirse'),'click');
						comoLlego.value = '';
						empresa.value = '';
						rubro.value = '';
						web.value = '';
						fechaEvento.value = '';
						$('tipoEventoCasamientoSuscribirse').checked = true;
						FireEvent($('tipoEventoCasamientoSuscribirse'),'click');
					   	FireEvent($('cerrarSuscribirse'), 'click');
					};
					Exito.show(d.firstChild.data);
					Loader.hide();
				}
			}
			//
			else if(reqType == 'provincias'){
				
				while(provinciaR.hasChildNodes()){ provinciaR.removeChild(provinciaR.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;
					
					provinciaR.appendChild(opt);
				}
				provinciaR.disabled = false;
			}
			//
			else if(reqType == 'ciudades'){
				
				while(ciudadR.hasChildNodes()){ ciudadR.removeChild(ciudadR.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;
					
					ciudadR.appendChild(opt);
				}
				ciudadR.disabled = false;
			}
			//
			else if(reqType == 'barrios'){
				
				while(barrioR.hasChildNodes()){ barrioR.removeChild(barrioR.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;
					
					barrioR.appendChild(opt);
				}
				barrioR.disabled = false;
			}
			//
		}.closure(this);
	
		//M
		var mostrarOrganizacion = function(display){
			$('contDatosParticular2').style.display = display;
		}
		var mostrarDatos = function(tipo){
			if(tipo == 'particular'){
				$('contDatosEmpresa').style.display = 'none';
				$('contDatosParticular1').style.display = 'block';
				if($('organizandoSiSuscribirse').checked){
					$('contDatosParticular2').style.display = 'block';
				}
			}
			else{
				$('contDatosEmpresa').style.display = 'block';
				$('contDatosParticular1').style.display = 'none';
				$('contDatosParticular2').style.display = 'none';
				
			}
		}
		
	
		
		// Envio de Consulta del Clasificado
		var datosPersonales = (Cookie.get('datosPersonales') == '')? '' : Cookie.get('datosPersonales');
		var idClasificado, idPlus, nombreR, apellidoR, emailR, comentarioR, paisR, provinciaR, provinciaNR, 
		ciudadR, ciudadNR, barrioR, barrioNR, direccionR, cpR, telefonoR, errorR, cargandoR, exitoR;
		
		var consultaTabIndex = 0;
		var oPopSuscribirse = null;
		var empresa = null;
		var rubro = null;
		var web = null;
		var comoLlego = null;
		var fechaEvento = null;

		var formSeteado = false;
		var clasInfo;
		var wait = false, reqType;
		var req = new Request(listener);
		var htmlFormTemporal = '';
	}
		