// JavaScript Document
jQuery.noConflict( )
// GLOBAL VARS   
var IMG_WIDTH = 220;
var IMG_HEIGHT = 220;
var IMG_SMALL_WIDTH = 160;
var IMG_SMALL_HEIGHT = 160;
var MAX_WAIT = 30;
var paisPorDefecto = getCookie('CLAS_IDPAIS');
if (paisPorDefecto == '') {
	setCookieIDPais(document, 'ESPANA');
	paisPorDefecto = getCookie('CLAS_IDPAIS');
}
var idiomaPorDefecto = 'es';

if (idiomaPorDefecto == '') {
	setCookieIdioma(document, 'es');
	idiomaPorDefecto = getCookie('LANG');
}
var offerImages;
var numImages = 0;
var uploadFiles = new Array();
var periodicTimer = 0;
var form_tmp;
var man_tmp = false;
var Formulario = new String;
var Idioma = new String;
var DestinoForm = new String;
var ID = new String;


//----------------------------------------------------------

jQuery(document).ready(globalEvents);

function globalEvents(){
	
	onloadPage('VCB');
	
	jQuery("#espanol").click ( function(){ jQuery("#espanol").addClass("select"); 
											setCookieIdioma(document, 'es');
											cambiarIdioma('es');																					
											 jQuery("#ingles").removeClass("select");
											 jQuery("#frances").removeClass("select");
											 jQuery("#aleman").removeClass("select");
										});
	jQuery("#ingles").click ( function(){ jQuery("#ingles").addClass("select"); 
											setCookieIdioma(document, 'en');
											cambiarIdioma('en');	
											 jQuery("#espanol").removeClass("select");
											 jQuery("#frances").removeClass("select");
											 jQuery("#aleman").removeClass("select");
										});
	jQuery("#frances").click ( function(){ jQuery("#frances").addClass("select"); 
											setCookieIdioma(document, 'fr');
											cambiarIdioma('fr');		
											 jQuery("#ingles").removeClass("select");
											 jQuery("#espanol").removeClass("select");
											 jQuery("#aleman").removeClass("select");			   
										});
	jQuery("#aleman").click ( function(){ jQuery("#aleman").addClass("select"); 
											setCookieIdioma(document, 'de');
											cambiarIdioma('de');	
										 	 jQuery("#ingles").removeClass("select");
											 jQuery("#frances").removeClass("select");
											 jQuery("#espanol").removeClass("select");						 
										});
	
	//home page
	jQuery(".verIconMenu").mouseover ( function(){ var nomeIco = this.id+'_icon'; 
											   if (document.getElementById(nomeIco).style.display == 'none'){
											   		document.getElementById(nomeIco).style.display = 'block';
											   }
										 });
	
	jQuery(".verIconMenu").mouseout ( function(){ jQuery(".iconMenu").hide();  });
	
	//button menu Page
	jQuery(".menuDiv").mouseover ( function(){ var subMenu = 'sub_'+this.id; 
											   if (document.getElementById(subMenu).style.display == 'none'){
												   //jQuery(subMenu).slideDown("slow");
											   		document.getElementById(subMenu).style.display = 'block';
													if (document.getElementById(subMenu).mouseOver == true)
														document.getElementById(subMenu).style.display = 'block';
											   }
										 });
	
	jQuery(".menuDiv").mouseout ( function(){ var subMenu = 'sub_'+this.id; 
											   if (document.getElementById(subMenu).style.display != 'none'){
											   		document.getElementById(subMenu).style.display = 'none';
													if (document.getElementById(subMenu).mouseOver == false)
														document.getElementById(subMenu).style.display = 'none';
											   }
										  });
	//button menu Page
	jQuery(".menuDivSelected").mouseover ( function(){ var subMenu = 'sub_'+this.id; 
											   if (document.getElementById(subMenu).style.display == 'none'){
											   		document.getElementById(subMenu).style.display = 'block';
													if (document.getElementById(subMenu).mouseOver == true)
														document.getElementById(subMenu).style.display = 'block';
											   }
										 });
	
	jQuery(".menuDivSelected").mouseout ( function(){ var subMenu = 'sub_'+this.id; 
											   if (document.getElementById(subMenu).style.display != 'none'){
											   		document.getElementById(subMenu).style.display = 'none';
													if (document.getElementById(subMenu).mouseOver == false)
														document.getElementById(subMenu).style.display = 'none';
											   }
										  });
	//button buscar page
	jQuery("#buttonBuscarPage").mouseover (function() { this.src="http://www.vivecostabrava.com/Images/buttonBuscaPage.gif"; this.style.cursor="pointer"; })
	jQuery("#buttonBuscarPage").mouseout (function() { this.src="http://www.vivecostabrava.com/Images/buttonBuscaPage.gif";; })
	jQuery("#buttonBuscarPage").click (function() { reloadPage(document.forms['formBusca']); })
	
	//Login
	jQuery("#buttonLogin").mouseover ( function(){ this.style.background="url(http://www.vivecostabrava.com/Images/buttonEnviar1.gif) no-repeat";
										   	 this.style.cursor="pointer";});
	jQuery("#buttonLogin").mouseout ( function(){this.style.background="url(http://www.vivecostabrava.com/Images/buttonEnviar.gif) no-repeat"; });					  
	jQuery("#buttonLogin").click (function() { privateZone(document.getElementById('login')); });
	//olvide contraseña
	jQuery("#olvidoContra").mouseover (function() { this.style.cursor="pointer"; this.style.color="#000"; });
	jQuery("#olvidoContra").mouseout (function() { this.style.cursor="default"; this.style.color="#00ACE6";});
	jQuery("#olvidoContra").click (function() { forgotPassword(document.getElementById('login'),'waitLogin'); });
	//alta01
	jQuery("#buttonAlta01").mouseover ( function(){this.src="http://www.vivecostabrava.com/Images/buttonEnviar1.gif"; this.style.cursor="pointer"; });
	jQuery("#buttonAlta01").mouseout ( function(){this.src="http://www.vivecostabrava.com/Images/buttonEnviar.gif"; });
	jQuery("#buttonAlta01").click ( function (){ sendUserAfterCheckNick(document.forms['formAlta'],'waitBox'); });
	//mantenimiento usuario
	jQuery("#buttonManUsuario").mouseover ( function(){this.src="http://www.vivecostabrava.com/Images/buttonEnviar1.gif"; this.style.cursor="pointer"; });
	jQuery("#buttonManUsuario").mouseout ( function(){this.src="http://www.vivecostabrava.com/Images/buttonEnviar.gif"; });
	jQuery("#buttonManUsuario").click ( function (){ sendUserAfterCheckNick(document.forms['formMan'],'waitBox'); }); 
	//alta02
	jQuery("#buttonAlta02").mouseover ( function(){this.src="http://www.vivecostabrava.com/Images/buttonEnviar1.gif"; this.style.cursor="pointer"; });
	jQuery("#buttonAlta02").mouseout ( function(){this.src="http://www.vivecostabrava.com/Images/buttonEnviar.gif"; });
	jQuery("#buttonAlta02").click ( function (){ sendAltaAnuncio(document.forms['formAlta'],'waitBox'); });
	//man Anuncio
	jQuery("#buttonMan").mouseover ( function(){this.src="http://www.vivecostabrava.com/Images/buttonEnviar1.gif"; this.style.cursor="pointer"; });
	jQuery("#buttonMan").mouseout ( function(){this.src="http://www.vivecostabrava.com/Images/buttonEnviar.gif"; });
	jQuery("#buttonMan").click ( function (){ sendManAnuncio(document.forms['formMan'],'waitBox'); });
	
	//imprimir el anuncio
	jQuery("#imprimirAnuncio").mouseover ( function(){});
	jQuery("#imprimirAnuncio").click ( function(){ window.print(); });
	//contactar en anuncio
	jQuery("#contactarAnuncio").mouseover ( function (){ this.style.cursor = 'pointer'; });
	jQuery("#contactarAnuncio").click ( function (){ if (document.getElementById('contactBox').style.display == 'none'){
														jQuery("#contactBox").show(); 
														jQuery("#opinaBox").hide(); 
														jQuery("#sendContactBox").slideDown("slow");
														jQuery("#sendContactBox").show();
														
														if (document.getElementById('sendContactBox').style.display != 'none'){
															jQuery("#confirmEnvio").hide();
															}
														}
												   else{ jQuery("#contactBox").slideUp("slow");  
												   	     jQuery("#sendContactBox").slideUp("slow"); }
										 });
	jQuery("#serraMensaje").mouseover ( function(){ this.style.pointer = 'cursor'; });
	jQuery("#serraMensaje").click ( function(){ if (document.getElementById("contactBox").style.display != 'none'){
														document.getElementById("contactBox").style.display = 'none';
													}
											});
	jQuery("#buttonContactar").mouseover ( function(){ this.style.cursor="pointer"; });
	jQuery("#buttonContactar").mouseout ( function(){ this.style.cursor="default"; });
	jQuery("#buttonContactar").click ( function(){ if (document.getElementById('mensError').style.display != 'none'){
														jQuery("#mensError").hide(); }
													sendMessage(document.forms['formMessage'], 'confirmMensaje', 'sendContactBox'); 
												});
	jQuery("#verText").mouseover ( function(){ this.style.cursor="pointer"; });
	jQuery("#buttonContactar").mouseout ( function(){ this.style.cursor="default"; });
	jQuery("#verText").click ( function(){ if (document.getElementById('anuncioBox')){
											jQuery(".textAnuncio").css("overflow", "hidden"); }
												});
}//fin de globalEvents

/**
 * Execute onload
 * @param {string} project Project
 * @return Boolean
 */

function onloadPage(project) {	
	//si es altaPaso02
	if (document.getElementById('googleMapBoxList')) LoadGMaps();
	

	var browserName= navigator.appName;
	var version= navigator.appVersion;
	
	if (document.getElementById('anuncioBox')){
		onloadAnuncio(project,'ofe');
	}
	else{
		if (document.getElementById('PAIS'))
				document.getElementById('PAIS').value = getCookie('CLAS_IDPAIS');
		if (document.getElementById('LANG'))
				document.getElementById('LANG').value = getCookie('LANG');
				
		if (document.getElementById('linkMapBox')) {
			if (GM_country_ID.match('TOD') != null)
				document.getElementById('linkMapBox').hide();
		}
		
		//solo en la home, si no el buscador no se informa corectamente
		/*
		if (document.getElementById ('contentBoxHome')){
			//cambiar_selects('ID1', 'ID1', 'SINPADRE');
			//espera('ajax_selects', 'cambiar_selects(\\\'IDPROVINCIA\\\', \\\'provincias\\\', \\\'\\\');');
			//if (document.getElementById('IDPROVINCIA') && document.getElementById('IDPROVINCIA').value != ''){
			//	cambiar_selects('POBLACION','poblaciones',this.value,'NO');
			//}
		}*/
		
		if (lang == 'es'){
			jQuery("#espanol").addClass("select");}
		if (lang == 'en'){
			jQuery("#ingles").addClass("select");}
		if (lang == 'fr'){
			jQuery("#frances").addClass("select");}
		if (lang == 'de'){
			jQuery("#aleman").addClass("select");}
			
			
			
		myFavs(project, "Mi lista", "Eliminar de Mi lista");
		
		// chGoogleAd();
		return true;
	}
}
//para la pagina de anuncio
function onloadAnuncio(project,ofedem) {
	//por google map, solo lo inicializamos si existe una direcci�n a mostrar
	
	if (GM_address != '') { LoadGMaps();}
	if (document.getElementById('PAIS'))
			document.getElementById('PAIS').value = paisPorDefecto;
			
	if (document.getElementById('linkMapBox')) {
		if (GM_country_ID.match('TOD') != null)
			document.getElementById('linkMapBox').hide();
	}
		if (lang == 'es'){
			jQuery("#espanol").addClass("select");}
		if (lang == 'en'){
			jQuery("#ingles").addClass("select");}
		if (lang == 'fr'){
			jQuery("#frances").addClass("select");}
		if (lang == 'de'){
			jQuery("#aleman").addClass("select");}
		
	myFavs(project, "Mi lista", "Eliminar de Mi lista");
	
	/*Tamañoo array*/
	if (images.length > 3){
	jQuery("#flechaLeft").html("<img src='http://www.vivecostabrava.com/Images/flechaLeft.gif' alt='flecha' id='imaFlechaLeft' />");
	jQuery("#flechaRight").html("<img src='http://www.vivecostabrava.com/Images/flechaRight.gif' alt='flecha' id='imaFlechaRight' />");
	}
	
	var lung = images.length -1;
	var imageFinal = images[lung];
	var firstImage = images[0];
	
	jQuery("#imaFlechaRight").click ( function(){   jQuery("#imaFlechaLeft").css("display","block");
											   		if (document.getElementById("imageDosRotate").src != imageFinal){
														images.push(images.shift());
															grandeima.push(images.shift());
														document.getElementById("imageUnoRotate").src = images[0];
															document.getElementById("urlUnoRotate").src = grandeima[0];
														document.getElementById("imageDosRotate").src = images[1];
															document.getElementById("urlDosRotate").src = grandeima[1];
													}
													else { jQuery("#imaFlechaRight").css("display","none");	}	
											  });
	
	
	
	

	jQuery("#imaFlechaLeft").click ( function(){ 	jQuery("#imaFlechaRight").css("display","block");
											  		if (document.getElementById("imageUnoRotate").src != firstImage){
													images.reverse();
														grandeima.reverse();
													images.push(images.shift());
														grandeima.push(images.shift());
													images.reverse();
														grandeima.reverse();
													document.getElementById("imageUnoRotate").src = images[0];
														document.getElementById("urlUnoRotate").src = grandeima[0];
													document.getElementById("imageDosRotate").src = images[1];
														document.getElementById("urlDosRotate").src = grandeima[1];
													}
													else { jQuery("#imaFlechaLeft").css("display","none");	}		
											  });
	// chGoogleAd();
	return true;
}

function changeImage(images){
	images.push(images.shift());												
	jQuery.each(images, function(i) {
	alert("mostrando movido " + this + " posicion:"+i);
	});
	document.getElementById("imageUnoRotate").src = images[0];
	document.getElementById("imageDosRotate").src = images[1];
	}
	
/**
 * Change to another country
 * @param {string} myPais Country
 * @return Boolean
 */
function cambiarMiPais(myPais){
	setCookieIDPais(document, myPais);

	var lang = new String('');
	if (document.getElementById('myLanguage') && document.getElementById('myLanguage').innerHTML.length > 0) {
		lang = document.getElementById('myLanguage').innerHTML;
	}

	document.location.href = 'http://' + location.hostname + '/' + lang + 'ListadoCostaBrava.xsql';
	return false;
}

function cambiarIdioma(lang){
	setCookieIdioma(document, lang);

	/*var lang = new String('');
	if (document.getElementById('myLanguage') && document.getElementById('myLanguage').innerHTML.length > 0) {
		lang = document.getElementById('myLanguage').innerHTML;
	}*/

	document.location.href = 'http://' + location.hostname + '/?LANG=' + lang;
	return false;
}
//buscador
function reloadPage(form) {
	
	var lang = new String('');
	if (document.getElementById('myLanguage') && document.getElementById('myLanguage').innerHTML.length > 0) {
		lang = document.getElementById('myLanguage').innerHTML;
	}
	if (form.elements['PAGINA'])
		form.elements['PAGINA'].value = 0;
	if(form.elements['CHK_FOTO']) {
		if (form.elements['CHK_FOTO'].checked)
			form.elements['SOLOFOTOS'].value = 'S';
		else
			form.elements['SOLOFOTOS'].value = 'N';
	}
	if (form.elements['TITULO'] && (form.elements['TITULO'].value == 'Nombre Hotel' || form.elements['TITULO'].value == 'Tipo de producto' || form.elements['TITULO'].value == 'Producto' || form.elements['TITULO'].value == 'Nombre Restaurante o Bar' || form.elements['TITULO'].value == 'Nombre establecimiento' ))
		form.elements['TITULO'].value = '';
		
		
	/*alert(form.elements['ID1'].value);
	alert(form.elements['ID1_val'].value);
	alert(form.elements['ID2'].value);
	alert(form.elements['TITULO'].value);*/
	
	var id1_valor = form.elements['ID1_val'].value;
	var id1_page = '';
	var id1_ok = '';
	
	if (id1_valor.match(' '))
		id1_page = id1_valor.replace(' ','-');
	if (id1_page.match(' '))
		id1_ok = id1_page.replace(' ','-');
	
			if (id1_valor != ''){
				if (id1_ok != ''){
					form.action = "http://" + location.hostname + '/' + lang + id1_ok + ".xsql";	
				}
				if (id1_page != '' && id1_ok == ''){
					form.action = "http://" + location.hostname + '/' + lang + id1_page + ".xsql";	
				}
				if (id1_page == '' && id1_ok == ''){
					form.action = "http://" + location.hostname + '/' + lang + id1_valor + ".xsql";	
				}
			SubmitMyForm(form);		
			}
			else{
			form.action = "http://" + location.hostname + '/' + lang + "ListadoCostaBrava.xsql";	
			SubmitMyForm(form);		
			}
			
	return true;
}


/* comprabamos que ADFS no est� vacio */
function comprobarADFS(){
	if (jQuery.trim(jQuery("#adfs").val()).length==0)return false;
	else jQuery("#cse-search-box").submit();
}

/**
 * Check login and encrypt password for login
 * @param {object} form HTML form 
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function privateZone(form) {

	var lang = new String('');
	//var Destino=document.location.toString();
	var Destino = form.elements['DESTINO'].value;
	if (document.getElementById('myLanguage') && document.getElementById('myLanguage').innerHTML.length > 0) {
		lang = document.getElementById('myLanguage').innerHTML;
	}

	if (form.elements['USER'].value == '' || form.elements['PASS'].value == '') {	
		alert('Introduce tu nombre de usuario y contraseña');
		return false;
	}
	else {
		form.elements['PARAMETRO'].value = encrypt(concat(concat(form.elements['USER'].value)+'|'+concat(form.elements['PASS'].value)));
		
		form.elements['SUBPARAMETRO_1'].value = form.elements['USER'].value;
		form.elements['SUBPARAMETRO_2'].value = form.elements['PASS'].value;
		if (inChain(document.location.toString() , 'DESTINO'))
			form.action = 'http://' + location.hostname + '/' + lang + 'ControlAcceso.xsql?DESTINO=' + Destino;
		else
			form.action = 'http://' + location.hostname + '/' + lang + 'ControlAcceso.xsql?DESTINO=' + Destino;
			//form.action = 'http://' + location.hostname + '/' + lang + 'ControlAcceso.xsql';
		
		SubmitMyForm(form);

	}
	return true;
}
/**
 * @param {string} chain
 * @return string
 */
function encrypt(chain) {
	var str = new String('');
	var valor;

	for (var i = 0; i < chain.length; i++) {
		valor = chain.charCodeAt(i);
		if (valor >= 65 && valor <= 90) {
			if ( valor <= 77)
				str += String.fromCharCode(valor + 13);
			else 
				str += String.fromCharCode(valor - 13); 
		}
		else {
			if (valor >= 97 && valor <= 122) {
				if (valor <= 109) 
					str += String.fromCharCode(valor + 13);
				else
					str += String.fromCharCode(valor - 13); 
			}
			else {
				if (valor >= 48 && valor <= 57) {
					if (valor <= 52)
						str += String.fromCharCode(valor + 5);  
					else
						str += String.fromCharCode(valor - 5);  
				}
				else
					str += String.fromCharCode(valor); 
			}
		}
	}
	
	return str;
}
/**
 * @param {string} chain
 * @return string
 */
function concat(chain) {
	var str = '';
	var j = 0;
	var k = 1;
	for(var i = 0; i < chain.length; i++) {
		if ((i % 2) == 0){  
			str += chain.charAt(j); 	   
			j++;
		}
		else{ 
			str += chain.charAt(chain.length - k);
			k++;
		}
	}
	return str;
}

/**
 * Changes the input field on click (e.g. for login)
 * @param {object} elem This element
 * @param {string} string Default value of the element
 * @param {string} type Type of the element (text, password, ...)
 * @param {boolean} focus Boolean
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function inputEffect(elem, string, type, focus) {	
	if (focus) {
		elem.style.display = 'none';
		document.getElementById(elem.id.substring(0, elem.id.indexOf('Fake'))).style.display = '';
		document.getElementById(elem.id.substring(0, elem.id.indexOf('Fake'))).focus();
	}
	else if (elem.value == '') {
		elem.style.display = 'none';
		document.getElementById(elem.id + 'Fake').style.display = '';
	}	
	return true;
}


/**
 * Changes the style of the input field on click
 * @param {object} elem This element
 * @param {string} string Default value of the element
 * @param {string} type Type of the element (text, password, ...)
 * @param {boolean} focus Boolean
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function inputEffectLight(elem, string, type, focus) {	
	if (focus) {
		if (elem.value == string) {
			elem.value = '';
			elem.className = elem.className.substring(0, elem.className.indexOf('finecolor'));
		}	
	}
	else {
		if (elem.value == '') {
			elem.value = string;
			elem.className = elem.className + ' finecolor';
		}		
	}	
	return true;
}

/**
 * Logout
 * @param {string} doc Which cookie to drop
 * @param {string} url Where to go after logout
 * @return undefined
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function logout(doc, url) {
	dropCookie(doc);
	doc.location.href = url;
	
	return undefined;
}


/**
 * Change style of input field and display message if forgotten password
 * @param {object} form HTML form
 * @return undefined
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function forgotPassword(form,id) {
	var msg = '';

	var lang = new String('');
	if (document.getElementById('myLanguage') && document.getElementById('myLanguage').innerHTML.length > 0) {
		lang = document.getElementById('myLanguage').innerHTML;
	}

	if (form.elements['USER'].value == '') {
		msg += 'La dirección de correo electrónico es obligatoria.\n';
		form.elements['USER'].style.background = '#ffff00';
		document.getElementById('inputEmailFake').style.background = '#ffff00';
		form.elements['USER'].style.border = '1px solid #C00';
		document.getElementById('inputEmailFake').style.border = '1px solid #C00';
	}
	else {
		if (!checkEmail(form.elements['USER'].value)) {
			msg += 'La dirección de correo electrónico no tiene el formato correcto: direccion@dominio.ext.\n';
			form.elements['USER'].style.background = 'silver';;
			document.getElementById('inputEmailFake').style.background = 'silver';
			form.elements['USER'].style.border = '1px solid #C00';
			document.getElementById('inputEmailFake').style.border = '1px solid #C00';
		}
	}
	
	if (msg == '') {
		form.action = "http://"+ location.hostname + '/' + lang + "OlvidoLoginSave.xsql";
		document.getElementById('ocultoLogin').style.display ="none";
		wait(id, "Please wait...");
		SubmitMyForm(form);
	}
	else
		alert("Por favor, compruebe las siguientes incidencias:\n\n" + msg);
	
	return undefined;
}

/**
 * @return Boolean
 */
function dropCookie(doc) {	
	doc.cookie = 'SES_ID=; path=/; host=' + location.hostname + ';';
	doc.cookie = 'COOKIE_NOMBREUSUARIO=; path=/; host=' + location.hostname + ';';
	return true;
}

function getCookie(name) {	
	var cookies = document.cookie.split(';');
	for (var i = 0; i < cookies.length; i++) {
		cookie = cookies[i].split('=');
		if (jQuery.trim(cookie[0]) == jQuery.trim(name)) {
			if (cookie.length == 2)
				return jQuery.trim(cookie[1]);
			else
				return '';
		}
	}
	return '';
}
/**
 * @param {string} doc
 * @param {string} proyecto
 * @return Boolean
 */
function setCookie(doc, proyecto) {
	if (proyecto)
		doc.cookie = 'SES_ID_' + proyecto + "=" + doc.forms[0].elements['SES_ID'].value +'; path=/; host=' + location.hostname + ';';
	else
		doc.cookie = 'SES_ID' + "=" + doc.forms[0].elements['SES_ID'].value+'; path=/; host=' + location.hostname + ';';
	
	return true;
}
/**
 * @param {string} doc
 * @param {string} valor
 * @param {string} NCK
 * @return Boolean
 */
function setCookieFavorito(doc, valor, NCK)
{
	var valor_temp = getCookie(NCK);
	// si eliminamos un valor de la cookie
	if (arguments[3] == 'eliminamos')
		valor_temp = valor;
	// si a�adimos un valor a la cookie
	else
		valor_temp += ',' + valor;
	
	var finaliza = new Date();
	var fecha_actual =finaliza.toString()
	var milisegundos = Date.parse(fecha_actual);
	finaliza.setTime(milisegundos + (7776000*1000));
	doc.cookie = NCK+"=" + valor_temp+';expires=' + finaliza.toGMTString() + '; path=/; host=' + location.hostname + ';';

	return true;	
}
/**
 * @param {string} doc
 * @param {string} valor
 */
function setCookieIDPais(doc, valor) {
	var finaliza = new Date();
	var fecha_actual =finaliza.toString()
	// convertimos la fecha actual a milisegundos
	var milisegundos = Date.parse(fecha_actual);
	// sumamos a la fecha actual (en milisegundos), tres meses (en milisegundos) 
	finaliza.setTime(milisegundos + (7776000*1000));
		// asignamos la cookie expira.toGMTString() lo pasa al formato correcto para la asignacion de la cookie
	doc.cookie = 'CLAS_IDPAIS' + "=" + valor + ';expires=' + finaliza.toGMTString() + '; path=/; host=' + location.hostname + ';';	
}
/**
 * @param {string} doc
 * @param {string} valor
 */
function setCookieIdioma(doc, valor) {
	var finaliza = new Date();
	var fecha_actual =finaliza.toString()
	// convertimos la fecha actual a milisegundos
	var milisegundos = Date.parse(fecha_actual);
	// sumamos a la fecha actual (en milisegundos), tres meses (en milisegundos) 
	finaliza.setTime(milisegundos + (7776000*1000));
		// asignamos la cookie expira.toGMTString() lo pasa al formato correcto para la asignacion de la cookie
	doc.cookie = 'LANG' + "=" + valor + ';expires=' + finaliza.toGMTString() + '; path=/; host=' + location.hostname + ';';	
	//alert(doc.cookie);
	reloadPage
}
/**
 * @param {string} doc
 * @param {string} valor
 */
function setCookieUsuario(doc, valor){
	var finaliza = new Date();
	var fecha_actual =finaliza.toString()
	// convertimos la fecha actual a milisegundos
	var milisegundos = Date.parse(fecha_actual);
	// sumamos a la fecha actual (en milisegundos), tres meses (en milisegundos) 
	finaliza.setTime(milisegundos + (7776000*1000));
	// asignamos la cookie expira.toGMTString() lo pasa al formato correcto para la asignacion de la cookie
	doc.cookie = 'COOKIE_NOMBREUSUARIO' + "=" + valor+';expires='+ finaliza.toGMTString()+'; path=/; host='+ location.hostname +';';
}
// AJAX INITIALISATION----------------------------------------------------------

/**
 * @param {string} ID ID of the affected element
 * @param {string} TIPO Type
 * @param {string} VALOR Value
 * @param {string} FORZAR Something like boolean
 * @author Inyaki Huerta ikhuerta@gmail.com
 */
function cambiar_selects(ID, TIPO, VALOR, FORZAR) {
	if ((TIPO == "comunidades")
	 || (TIPO == "provincias")
	 || (TIPO == "poblaciones")
	 )
	
		cambiar_selects_cpp(ID, TIPO, VALOR, FORZAR);
	else 
		cambiar_selects_cats(ID, TIPO, VALOR);
}


/**
 * @param {string} ID ID of the affected element
 * @param {string} TIPO Type
 * @param {string} VALOR Value
 * @param {string} FORZAR Something like boolean
 * @author Inyaki Huerta ikhuerta@gmail.com
 */
function cambiar_selects_cpp(ID,TIPO,VALOR,FORZAR) {
	
	if (document.getElementById(ID)){
		document.getElementById(ID).innerHTML = "";
		
		C=crear('rnd','option',ID,'AB'); C.innerHTML = "Cargando, espere...";
		document.getElementById(ID).disabled = true;
		fecha = new Date();
		rnd = fecha.getTime(); // Obligamos a que la direcci�n que llama no sea la misma para que no coja los resultados de cache.
		if (!(FORZAR) || (FORZAR == 'NO'))
			URL = "comunidadProvinciaPoblacion.xsql?ID=" + VALOR + "&TIPO=" + TIPO + "&PARA_CACHE=" + rnd;
		else
			URL = "comunidadProvinciaPoblacion.xsql?ID=" + VALOR + "&TIPO=" + TIPO + "&FORZAR_PAIS=" + FORZAR + "&PARA_CACHE=" + rnd;
		ajax(URL, "paso_intermedio", ID);
	}
}


/**
 * @param {string} ID ID of the affected element
 * @param {string} NIVEL
 * @param {string} IDPADRE
 * @author Inyaki Huerta ikhuerta@gmail.com
 */
function cambiar_selects_cats(ID, NIVEL, IDPADRE) {
	document.getElementById(ID).innerHTML = "";
	C = crear('rnd', 'option', ID, 'AB');
	C.innerHTML = "Cargando...";
	document.getElementById(ID).disabled = true;
	fecha = new Date();
	rnd = fecha.getTime();
	URL = "listCategorias.xsql?CATEGORIA=" + NIVEL + "&PADRE=" +IDPADRE+ "&NOW=" + rnd;
	ajax(URL, "paso_intermedio", ID + ',N');
}


/**
 * @param {string} CONTENIDO
 * @param {string} ID
 * @param {string} DEBE_BORRAR_ULTIMO Something like boolean
 * @author Inyaki Huerta ikhuerta@gmail.com
 */
function paso_intermedio(CONTENIDO, ID, DEBE_BORRAR_ULTIMO) {
	B = document.getElementById(ID);
	B.innerHTML = "";
	A = CONTENIDO.split("\n");
	Cont = A.join("");
	A = Cont.split("  ");
	Cont = A.join("");
	A = Cont.split("///");
	for(i=0; A[i]; i++) {
		partes = A[i].split("//");
		C = crear('rnd', 'option', ID, 'AB');
		C.innerHTML = partes[1];
		D = partes[0].split(" ");
		partes[0] = D.join("");
		C.value = partes[0];
	}
	if(DEBE_BORRAR_ULTIMO == 'S')
		borrar(B.lastChild);
	if (B.childNodes.length > 2) {
		B.disabled = false;
		V = URLvar(ID);
		if (V && V != '')
			setTimeout("document.getElementById('"+ID+"').value = '"+V+"';", 200);
		if (V && (ID == 'ID1'))
			lanzar_ID2(V);
		else if (V && (ID == 'IDPROVINCIA'))
			lanzar_poblacion(V);
		else ya('ajax_selects');
	}
	else {
		B.disabled = true;
		B.innerHTML = "";
		C = crear('rnd', 'option', ID, 'AB');
		// Sin Subcategorias
		C.innerHTML = "";
		ya('ajax_selects');
	}
	A = null; 
	B = null;
}

function lanzar_ID2(V){ }
function lanzar_poblacion(V) {
	cambiar_selects('POBLACION','poblaciones',V);
}
//inChain controlla se la pagina dove vado esiste
function inChain(str, subStr) {
	var a = " " + str;
	if (a.indexOf(subStr) == -1)
		return false;
	else
		return true;
}
//invia un form
function SubmitMyForm(form){
	for(var j = 0; j < form.elements.length; j++){
		if (form.elements[j].type == 'textarea')
			form.elements[j].value = seperatePoints(form.elements[j].value);
		if (form.elements[j].type != 'file')
			form.elements[j].value = reemplazaCaracteres(form.elements[j].value, "'", "`");
	}
	var buttons = document.getElementsByName("sendFormButton");
	if (buttons[0]) {
		for (var i = 0; i < buttons.length; i++) { 
		//oculta i bottoni di invio dei form
		buttons[i].style.visibility  = 'hidden';
		}
	}
	
	form.submit();
}
//favoritos
/**
 * Add or Remove Favorite
 * @param {string} idanuncio Base ID for Favorite
 * @param {string} project Project Code
 * @return undefined
 */
function FavLista(idanuncio, project){
	var strFav = getCookie(project + '_FAV');
	var pos = strFav.indexOf(idanuncio);
	var favObj = document.getElementById('favorito' + idanuncio);
	var favObjTxt = document.getElementById('favoritoTxt' + idanuncio);
	
	if (pos == -1){
		//	si no existe la cookie
		if (document.getElementById('contactBox')){
			favObj.src = 'http://' + location.hostname + '/Images/Favorito-on.gif';
			favObjTxt.innerHTML = "Eliminar de Mi lista";
			favObjTxt.title = "Eliminar de Mi lista";
			setCookieFavorito(document, idanuncio, project + '_FAV');
			}
			else {
				favObj.src = 'http://' + location.hostname + '/Images/favno.gif';
				setCookieFavorito(document, idanuncio, project + '_FAV');
				}
		}
		else {
			// si existe en la cookie, tenemos que eliminarla
			if (document.getElementById('contactBox')){
				favObj.src = 'http://' + location.hostname + '/Images/Favorito-off.gif';
				favObjTxt.innerHTML = "Añadir a Mi lista" ;
				favObjTxt.title = "Añadir a Mi lista" ;
				getListCookie(idanuncio, project);
			}
			else {
				favObj.src = 'http://' + location.hostname + '/Images/favv.gif';
				getListCookie(idanuncio, project);
				}
			
		}
		myFavs(project, "Mi lista", "Eliminar de Mi lista");
		
		return undefined;
}
/**
 * List Favorites
 * @param {object} form HTML form for send
 * @param {string} project Project Code
 * @return undefined
 */
function ListaFavoritos(form, project){
	form.elements['FAVORITOS'].value = getCookie(project + '_FAV');	
	reloadPage(form);
	return undefined;
}
/**
 * Change Favorite-Link
 * @param {string} cookie Cookie
 * @param {string} name String to display
 * @param {string} remove Remove String
 * @return Boolean
 */
function myFavs(project, name, remove) {
	var cookieValue = getCookie(project + '_FAV');
	var favs;
	var favLength = 0;
	var favImg;
	var favTxt;
	var selection = document.getElementById('ListaFav');
	if (cookieValue) {
		favs = cookieValue.split(",");
		for (var i = 0; i < favs.length; i++) {
			if (favs[i] != '') {
				favLength++;
				favImg = document.getElementById('favorito' + favs[i]); 
				favTxt = document.getElementById('favoritoTxt' + favs[i]); 
				if (favImg) {
					//si es ficha
					if (document.getElementById('contactBox')){
						favImg.src = 'http://' + location.hostname + '/Images/Favorito-on.gif';
					}
					else{
						favImg.src = "http://" + location.hostname + "/Images/favno.gif";
						favImg.title = remove;
					}
				}
				if (favTxt) {
					favTxt.innerHTML = remove;
				}
			}
		}
	}
	if (document.getElementById('ListaFav')) {
	
		if (favLength == 0)
			selection.innerHTML = '<img src="/Images/Favorito-off.gif"><a href="javascript:ListaFavoritos(document.forms[\'favorites\'], \'' + project + '\');">' + name + ' (<strong> ' + favLength + '</strong>)</a>';
		else
			selection.innerHTML = '<img src="/Images/Favorito-on.gif"><a href="javascript:ListaFavoritos(document.forms[\'favorites\'], \'' + project + '\');">' + name + '(<strong> ' + favLength + '</strong>)</a>';	
		
	}
}

/**
 * Get Favorites Cookie
 * @param {string} idanuncio
 * @param {string} project
 * @return Boolean
 */
function getListCookie(idanuncio, project) {
	//sacamos de la cookie
	var strFav = getCookie(project + '_FAV');
	var finder = ',' + idanuncio;
	var favObj=jQuery('Regfavorito'+idanuncio);
	fav=strFav.replace(finder, '');
	
	document.cookie = project + '_FAV=; path=/; host=' + location.hostname + ';';  		
	// si existe el elemento, estamos en la lista de favoritos
	setCookieFavorito(document,fav,project + '_FAV','eliminamos');
	
	if ((arguments[2])&&(arguments[3]))
		myFavs(project,arguments[2],arguments[3]);
	else myFavs(project,"Mi Lista","Borrar de Mi Lista");
	
	return true;
}
//Alta
function checkNick() {
	var params = new Array();
	if (arguments[0]) {
		params[params.length] = arguments[0];
	}
	if (arguments[1]) {
		params[params.length] = arguments[1];
	}
	var nick = jQuery.trim(document.getElementById('idAlias').value);
	
	if (document.getElementById('idAliasHidden')) {
		if (jQuery.trim(document.getElementById('idAliasHidden').value) == nick) {
			if (params && params.length > 0) {
				sendUser(params[0], params[1]);
				return false;
			}
			displayMessage('<em>' + nick + '</em> ' + TRANS_nick_is_available + '<br/>');
			return false;
		}
	}
	var post = 'NICK=' + nick;
	var action = 'http://' + location.hostname + '/checknick.xsql';
	if (nick.length < 1) {
		displayMessage(TRANS_nick_is_empty);
		return false;
	}
	sendRequest(action, handleCheckNick, post, params);
	return false;
}


function sendUserAfterCheckNick(form, id) {
	if (document.getElementById('idAlias')) {
		checkNick(form, id);
	}
	else {
		sendUser(form, id);
	}
	return false;
}


function handleCheckNick(req, params) {
	var innerText = new String('');
	var avail = false;
	if (req.responseText.substr(0, 1) != '{' && req.responseText.substr(0, 1) != '[') {
		innerText += '<p>' + TRANS_json_error + '</p>';
		innerText += '<a href="mailto:tecnico@' + location.hostname.replace('www.','') + '?subject=JSON%20Error">tecnico@' + location.hostname.replace('www.','') + '</a>';
	}
	else {
		var resp = eval('(' + req.responseText + ')');
		if (resp.nick_available) {
			innerText += '<em>' + resp.nick + '</em> ' + TRANS_nick_is_available + '<br/>';
			avail = true;
		}
		else {
			innerText += '<em>' + resp.nick + '</em> ' + TRANS_nick_is_notavailable + '<br/>';
			innerText += TRANS_nick_proposal + ':<br/>';
			innerText += '<ul>';
			for (var i = 0; i < resp.proposal.length; i++) {
				innerText += '<li style="cursor: pointer;" onclick="document.getElementById(\'idAlias\').value=\'' + resp.proposal[i] + '\';">' + resp.proposal[i] + '</li>';
			}
			innerText += '</ul>';

		}
	}
	if (avail && params && params.length > 0) {
		sendUser(params[0], params[1]);
		return false;
	}
	displayMessage(innerText);	
		
	return false;
}
/**
 * create or change user
 * @param {object} form HTML form for send
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
 
function sendUser(form,id) {
	var msg = '';

	var lang = new String('');
	if (document.getElementById('myLanguage') && document.getElementById('myLanguage').innerHTML.length > 0) {
		lang = document.getElementById('myLanguage').innerHTML;
	}
		
	var msgBaja = 'Seguro que deseas darte de baja';
	//form = variar_localizacion_ousuario(form);
	
	for (var i=0; i<form.length; i++) {
		if (form.elements[i].type == 'text')
			form.elements[i].value = jQuery.trim(form.elements[i].value);
	}

	//	Validacion de campos de usuario
	if (form.elements['NOMBRE'] && form.elements['NOMBRE'].value == '')
		msg += '- El nombre del usuario es obligatorio.<br />';
			
	if (form.elements['APELLIDOS'] && form.elements['APELLIDOS'].value == '')
		msg += '- Los apellidos del usuario son obligatorios.<br />';
		
	if (form.elements['EMAIL']) {
		if (form.elements['EMAIL'].value == '')
			msg += '- La dirección de correo electrónico del usuario es obligatoria.<br />';
		else { 
			if (!checkEmail(form.elements['EMAIL'].value))
				msg += '- La dirección de correo electrónico no tiene el formato correcto: direccion@servidor.tld.<br />';
		}
	}
	
	if (form.elements['IDPAIS'] && form.elements['IDPAIS'].value == '')
		msg += '- El pais es obligatorio.<br />';
		
	if (form.elements['IDPROVINCIA'] && form.elements['IDPROVINCIA'].value == '')
		msg += '- La provincia es obligatoria.<br />';

	// Alta y Man Usuario
	if (form.elements['BOLETIN']) {
		
		if (form.elements['BOLETIN'].checked)
			form.elements['BOLETIN'].value='S';
		else 
			form.elements['BOLETIN'].value='N';
	}
	// only Man
	if (form.elements['BAJA_HIDDEN']) {
	if (form.elements['BAJA'].checked)
			form.elements['BAJA_HIDDEN'].value = 'N';
		else						
			form.elements['BAJA_HIDDEN'].value = 'S';
	}
	
	// only Man
	
	if (form.elements['PASSWORD_HIDDEN']) {
		if(!(form.elements['PASSWORD'].value.match(" ")) && !(form.elements['REPASSWORD'].value.match(" "))) {
		
	
			if ((form.elements['PASSWORD'].value!='') && (form.elements['REPASSWORD'].value!='')) {
					
				
				if ((form.elements['PASSWORD_ANT'].value) != (form.elements['PASSWORD_HIDDEN'].value))
					msg += '- La contraseña anterior no es correcta.<br />';
				else  {
					if ((form.elements['PASSWORD'].value != form.elements['REPASSWORD'].value))
						msg += '- Las contraseñas nuevas no coinciden.<br />';
				}
			}
			else {
				if ((form.elements['PASSWORD'].value != '') || (form.elements['REPASSWORD'].value != ''))
					msg += '- Introduce el nuevo valor para la clave.<br />';
				else
					form.elements['PASSWORD'].value = form.elements['PASSWORD_HIDDEN'].value;
			} 
					
	
		}
		else
			msg += '- Introduce una clave sin espacios';
	}
	
	if (form.elements['BAJA_HIDDEN'] && form.elements['BAJA_HIDDEN'].value == 'N') {
		
		msg = '';
		if (confirm(msgBaja)){
			document.getElementById('ocultoButton').style.display ="none";
			wait(id, "Please wait...");
			SubmitMyForm(form);
		}
	}
					
	else if (msg == '') {
		// only Man
		if (form.elements['BAJA_HIDDEN']) { 
			if (form.elements['BAJA_HIDDEN'].value == 'N') {
				if (confirm(msgBaja)){
					jQuery("#ocultoButton").hide();	
					wait(id, "Please wait...");
					SubmitMyForm(form);
				}
				else
					document.location.href = document.location;
			}
			else{
				jQuery("#ocultoButton").hide();		
				wait(id, "Please wait...");				
				SubmitMyForm(form);
			}
		}
		// only Alta
		if (form.elements['CONFIRMACION']) {
			if (form.elements['CONFIRMACION'].checked){
				var target = '_top';
				var action = 'http://' + location.hostname + '/AltaPaso01Save.xsql';
				var enctype = 'application/x-www-form-urlencoded';
				form.encoding = enctype;
				form.target = target;
				form.action = action;
				jQuery("#ocultoButton").hide();
				wait(id, "Please wait...");
				SubmitMyForm(form);
			}
			else {
				var mesgSolicitudReglas = "Falta marcar la acceptacion de 'Condiciones de Publicación' y 'Política de Privacidad'.";
				alert(mesgSolicitudReglas);
				//displayMessage(mesgSolicitudReglas);
			}
		}
	}
	else {
		msg = "Por favor, compruebe las siguientes incidencias:<br /><br />" + msg;
		displayMessage(msg);
		//alert(msg);
	}
}
/**
 * @param {string} cadena
 * @param {string} carOrig
 * @param {string} carReemplazo
 * @return string
 */
function reemplazaCaracteres(cadena, carOrig, carReemplazo) {
	cadena=String(cadena);
	var cadenaTmp='';

	var elVector = cadena.split(carOrig);
	if (elVector.length>1){
		for(var n=0;n<elVector.length;n++){
			if(n>0){
					cadenaTmp+=carReemplazo;
			}
			cadenaTmp+=elVector[n];
		} 
			return cadenaTmp;
	}
	else{ 
			return cadena;
	}
}
/**
 * Display info message in the page if possible otherwise alert
 * @param {string} message The message to display
 * @param {string} where ID of the element where to display
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
 
function displayMessage(message) {	
	
	if (jQuery("#contentInside") && jQuery("#title")) {
		jQuery('#messageError').html(message);
		jQuery('#messageError').show();
		window.scrollTo(1,1);
	}
	else {
		alert(message);
	}
	
	return true;
}
//function que dice al usuario de esperar
function wait(id, text) {
	jQuery('#waitBox').html ('<img src="http://www.vivecostabrava.com/Images/loading.gif" />');
	jQuery(id).show();
	return false;
}
/*
 * send new announcement
 * @param {object} form HTML form for send
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function sendAltaAnuncio(form,id) {

	//form = variar_localizacion_usuario(form);
	
	var lang = new String('');
	if (document.getElementById('myLanguage') && document.getElementById('myLanguage').innerHTML.length > 0) {
		lang = document.getElementById('myLanguage').innerHTML;
	}
	if (form.elements['ID_01'] && form.elements['ID1_VALUES'])
		form.elements['ID_01'].value = ConcadenarValores('ID1_VALUES', '|');
	if (form.elements['ID_02'] && form.elements['ID2_VALUES'])
		form.elements['ID_02'].value = ConcadenarValores('ID2_VALUES', '|');
	if (form.elements['ID_03'] && form.elements['ID3_VALUES'])
		form.elements['ID_03'].value = ConcadenarValores('ID3_VALUES', '|');
	if (form.elements['ID_04'] && form.elements['ID4_VALUES'])
		form.elements['ID_04'].value = ConcadenarValores('ID4_VALUES', '|');
	if (form.elements['ID_05'] && form.elements['ID5_VALUES'])
		form.elements['ID_05'].value = ConcadenarValores('ID5_VALUES', '|');
	if (form.elements['CAT'] && form.elements['CATEGORIA'])
		form.elements['CAT'].value = ConcadenarValores('CATEGORIA', '|');

		
	if (top.uploadFrame && top.uploadFrame.document && top.uploadFrame.document.getElementsByTagName("body")[0]) {
		top.uploadFrame.document.getElementsByTagName("body")[0].innerHTML = "";
	}
	 // errorCheck(form);
	if (!errorCheck(form,id,lang,'AltaPaso02Save.xsql')) {
		loadSubmit(form,id,lang,'AltaPaso02Save.xsql');
	}
	return true;
}
//errorCheck de altaPaso02....
function errorCheck(formu,id,lang,destinoForm) {
	 
	var msg = '';
	var adress = new String;
	var coordenadas =new String;
	var poblacion = new String;
	var provincia = new String;
	var pais = new String;
	
	adress='';
	DestinoForm=destinoForm;
	
	//si es noticia
	if (formu.elements['ID_01'] && formu.elements['ID_01'].value == 'NOTICIAS'){
		if (formu.elements['TITULO'] && formu.elements['TITULO'].value == '') {
			msg += '- El titulo es obligatorio.<br />';
		}
		if (formu.elements['PARTEXTO1'] && formu.elements['PARTEXTO1'].value == '') {
				msg += '- El texto de la noticia es obligatorio.<br />';
		}
		}
	else{
		//DATOS ANUNCIO
		if (formu.elements['TITULO'] && formu.elements['TITULO'].value == '') {
			msg += '- El titulo es obligatorio.<br />';
		}
		if (document.getElementById('serviciosID5') && formu.elements['ID_05'] && formu.elements['ID_05'].value == '') {
			msg += '- El tipo de actividad es obligatoria.<br />';
		}
		if (formu.elements['ID_03'] && formu.elements['ID_03'].value == '') {
			msg += '- Almenos un servicio es obligatorio.<br />';
		}
		if (formu.elements['PARTEXTO1'] && formu.elements['PARTEXTO1'].value == '') {
				msg += '- La descripción es obligatoria.<br />';
		}
		if (formu.elements['PARTEXTO2'] && formu.elements['PARTEXTO2'].value == '' && formu.elements['ID_01'].value == 'COMERCIOS') {
				msg += '- La familia de productos y servicios es obligatoria.<br />';
		}
		if (formu.elements['PARTEXTO3'] && formu.elements['PARTEXTO3'].value == '' && formu.elements['ID_01'].value == 'COMERCIOS') {
				msg += '- Las marcas de referencia son obligatorias.<br />';
		}
		if (formu.elements['PARTEXTO4'] && formu.elements['PARTEXTO4'].value == '') {
				msg += '- Los horarios son obligatorios.<br />';
		}
		//DATOS CONTACTO ANUNCIO	
		if (formu.elements['EMAIL_CONTACTO'] && formu.elements['EMAIL_CONTACTO'].value == '') {
				msg += '- La e-mail de contacto es obligatoria.<br />';
		}
		if (formu.elements['DIRECCION'] && formu.elements['DIRECCION'].value == '') {
			msg += '- La dirección es obligatoria.<br />';
		} else adress += (formu.elements['DIRECCION'].value != '') ? GM_normalizeAddress(formu.elements['DIRECCION'].value) + "," : "";
		if (formu.elements['IDPOBLACION'] && formu.elements['IDPOBLACION'].value == '') {    
			msg += '- La población es obligatoria.<br />';
		} else {poblacion = jQuery('#IDPOBLACION option:selected').text();adress += poblacion+ ",";}
			
		
		if (formu.elements['CODPOSTAL']) {
			if (formu.elements['CODPOSTAL'].value == '')
				msg += '- El codigo postal es obligatorio.<br />';
			else if (isNaN(formu.elements['CODPOSTAL'].value)){
				msg += '- El codigo postal no tiene el formato correcto.<br />';
			}
			adress += (formu.elements['CODPOSTAL'].value != '') ? formu.elements['CODPOSTAL'].value + "," : "";
		}
			
		adress += ('ESPANA' != '') ? 'España' : "";
		
	
		
		if (formu.elements['URL'] && formu.elements['URL'].value != 'http://') {
			if (formu.elements['URL'].value != ''){
				if(formu.elements['URL'].value.substring(0,7) != 'http://') {
					formu.elements['URL'].value = 'http://' + formu.elements['URL'].value;
				}
				if(!checkURL(formu.elements['URL']))
					msg += '- El formato correcto de la página web es http://www.dominio.com<br />'
			}
		}
		if (formu.elements['URL'].value == 'http://') {
			formu.elements['URL'].value = '';
		}
		if (formu.elements['TELEFONO_FIJO'] && formu.elements['TELEFONO_FIJO'].value != '') {
			if (!checkPhone(formu.elements['TELEFONO_FIJO'].value)) {
				msg += '- El número de teléfono fijo no tiene el formato correcto.<br />';
			}
		}
		if (formu.elements['MOVIL'] && formu.elements['MOVIL'].value != '') {
			if (!checkPhone(formu.elements['MOVIL'].value)) {
				msg += '- El número de teléfono movil no tiene el formato correcto.<br />';
			}
		}
		if (formu.elements['TELEFONO']) {
			formu.elements['TELEFONO'].value = formu.elements['TELEFONO_FIJO'].value +'|'+ formu.elements['MOVIL'].value;
			}
	}//fin else, anuncio normale
		
		if (msg != '') {
			msg = 'Por favor, comprueba las siguientes incidencias:<br /><br />' + msg;
			displayMessage(msg);
			return true;
		}
		else{
			//return false;
			if (adress && getCookie('CLAS_IDPAIS') == 'ESPANA'){
				displayMessage(msg);
				// Asignamos variables globales
				Formulario=formu;
				ID=id;
				Idioma=lang;
				DestinoForm=destinoForm;
				// Chequeamos
				adressCheck(adress);
				return true;
			}
			else return false;
		}

}


function loadSubmit(form,id,lang,destino){
	if (hasFiles(form)) {
			var target = 'uploadFrame';
			var action = 'http://' + location.hostname + '/cgi-bin/image.pl';
			var enctype = 'multipart/form-data';
			form.target = target;
			form.encoding = enctype;
			form.action = action;
			wait(id, "Please wait...");
			SubmitMyForm(form);
			form_tmp = form;
			man_tmp = true;
			periodicTimer = 0;
			periodicUpdate();
	}
	else {
			var target = '_top';
			var action = 'http://' + location.hostname + '/' + destino;
			var enctype = 'application/x-www-form-urlencoded';
			form.action = action;
			form.encoding = enctype;
			form.target = target;
			wait(id, "Please wait...");
			SubmitMyForm(form);
	}	
	
}

function adressCheck(adress){
	
	 var param = new String;
	 geocoder = new GClientGeocoder();
	 geocoder.getLocations(adress, handleadressCheck);
	 
}

 function handleadressCheck(response){
 	 	
 	var direccion_completa = new String;
 	var direccion_insert = new String;
 	var calle = new String;
 	var poblacion = new String;
 	var provincia = new String;
 	var cpostal = new String;
 	var latitud = new String;
 	var longitud = new String; 	
 	var msg_addr = new String;
 	var count = 0;
 	var AdresError =0;
 
        if (!response || response.Status.code != 200) {
        	direccion_insert=response.name;
        	AdresError=1;
        	// Devuelve un c�digo de ERROR
        	jQuery('#messageError').append('- La dirección es incorrecta: '+direccion_insert+'<br/>');
        	window.scrollTo(1,1);
        	jQuery('#GEO_LONG').val('');
        	jQuery('#GEO_LAT').val('');
	}
	else {
		// Devuelve solo una direcci�n
		if (response.Placemark.length==1){
			place = response.Placemark[0];
			if (place){
			
				if (response.name) direccion_insert=response.name;
				if (place.address) direccion_completa=place.address;
        			if (place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName) calle=place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName;
        			if (place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName) poblacion=place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
        			if (place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName) provincia=place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName;
        			if (place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode) cpostal=place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber;
        			if (place.Point.coordinates[0]) latitud=place.Point.coordinates[0];
        			if (place.Point.coordinates[1]) longitud=place.Point.coordinates[1];
        			
					alert(cpostal);
					alert('anuncio'+jQuery('#idCodPostal').val());
        			// Devuelve una direcci�n, pero no es la esperada
        			if (cpostal!=jQuery('#idCodPostal').val()){
        				AdresError=1;
        				//jQuery('#messageError').append('<br/><br/>');
        				jQuery('#messageError').append('- La dirección es incorrecta: '+direccion_insert+'<br/>');
        				jQuery('#messageError').append('- ¿Quiso decir: '+direccion_completa.split(',')[0]+direccion_completa.split(',')[1]+'?<br/>');
        				window.scrollTo(1,1);
        				jQuery('#GEO_LONG').val('');
        				jQuery('#GEO_LAT').val('');
        			}
        			// Devuelve una direcci�n esperada
        			else {
        				AdresError=0;
        				jQuery('#GEO_LONG').val(latitud);
        				jQuery('#GEO_LAT').val(longitud);
        				jQuery('#ADRESS_HIDDEN').val(direccion_completa);
        				loadSubmit(Formulario,ID,Idioma,DestinoForm);
        			 }
        		}
        		
	        		
        	}
        	else { 
        		 // Devuelve mas de una direcci�n
        		  AdresError=1;
        		  jQuery('#messageError').append('- La direcci�n es incorrecta: '+direccion_insert+'<br/>');
        		  for (j=0;j<response.Placemark.length;j++){
        		  	
        		  	if (response.Placemark[j].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode) cpostal=response.Placemark[j].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber;
        		  	if (response.Placemark[j].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.DependentLocality) cpostal=response.Placemark[j].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.DependentLocality.PostalCode.PostalCodeNumber;
        		  	if (response.Placemark[j].address) direccion_completa=response.Placemark[j].address;
        		  	
        		  	jQuery('#messageError').append('- Quiso decir '+response.Placemark[j].address+'<br/>');
        		  	
        		  }
        		  window.scrollTo(1,1);
        	}
        	
        	
        }
        
        if (AdresError==1){
        	jQuery('#messageError').append('- Pulse Confirmar alta si no quiere modificar ningún dato o pulse Corregir datos si los quiere modificar.<br/><br/>');
        	jQuery('#messageError').append(' <strong><input type="button" name="confirmaralta" value="Confirmar alta"  onclick="loadSubmit(document.forms[\''+Formulario.name+'\'],\''+ID+'\',\''+Idioma+'\',\''+DestinoForm+'\');">&nbsp;&nbsp;');
        	jQuery('#messageError').append(' <strong><input type="button" name="Corregirdatos" value="Corregir datos"  onclick="AsignaFocus(\'DIRECCION\',\'focus\');jQuery(\'#messageError\').hide();"><br/>');
        }
        	jQuery('#messageError').append('<br/>');
}


function CompruebaFecha(objFecha,tipo,cuandoAvisar){
	var DIAS_ANYO = '2009';
		var msgError='';
		if (!validarFecha(objFecha,tipo)){
			msgError='La fecha de finalización debe ser valida y tener el formato: dd/mm/aaaa\n';
		}
		else{
			if(compararFechas(objFecha.value,'MENOR',convertirFechaATexto(new Date())))	{
				msgError='La fecha de finalización ha de ser posterior a la fecha actual.\n';
				}
			else{
				if(compararFechas(objFecha.value,'MAYOR',convertirFechaATexto(calculaDias(new Date(),DIAS_ANYO,'NATURALES')))){
					msgError='La fecha de finalización está limitada a un año.\n';	
				}
			}
		}
		if(msgError!=''){
			// si hemos de avisar ahora lo hacemos si no, retornamos el mensaje
			if(cuandoAvisar=='AVISAR_AHORA'){
		  		alert(msgError);
		   		objFecha.focus();
		  	}
		  	else {  return '- '+msgError; }
		}
		else{   if(cuandoAvisar=='AVISAR_AHORA') { null; }
		 		else  {	return msgError;  }
		}
	}
/**
 * send new announcement
 * @param {object} form HTML form for send
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function sendManAnuncio(form,id) {
	
	var lang = new String('');
	if (document.getElementById('myLanguage') && document.getElementById('myLanguage').innerHTML.length > 0) {
		lang = document.getElementById('myLanguage').innerHTML;
	}
	
	if (form.elements['ID_01'] && form.elements['ID1_VALUES'])
		form.elements['ID_01'].value = ConcadenarValores('ID1_VALUES', '|');
	if (form.elements['ID_02'] && form.elements['ID2_VALUES'])
		form.elements['ID_02'].value = ConcadenarValores('ID2_VALUES', '|');
	if (form.elements['ID_03'] && form.elements['ID3_VALUES'])
		form.elements['ID_03'].value = ConcadenarValores('ID3_VALUES', '|');
	if (form.elements['ID_04'] && form.elements['ID4_VALUES'])
		form.elements['ID_04'].value = ConcadenarValores('ID4_VALUES', '|');
	if (form.elements['ID_05'] && form.elements['ID5_VALUES'])
		form.elements['ID_05'].value = ConcadenarValores('ID5_VALUES', '|');
	if (form.elements['CAT'] && form.elements['CATEGORIA'])
		form.elements['CAT'].value = ConcadenarValores('CATEGORIA', '|');
		

	if (top.uploadFrame && top.uploadFrame.document && top.uploadFrame.document.getElementsByTagName("body")[0]) {
		top.uploadFrame.document.getElementsByTagName("body")[0].innerHTML = "";
	}
	
	if (!errorCheck(form,id,lang,'ManAnuncioSave.xsql')) {
		loadSubmit(form,id,lang,'ManAnuncioSave.xsql');
	}
	return true;
}

function AsignaFocus(element,focus){
	if (focus){jQuery('#'+element).focus();}
	jQuery('#'+element).css("color","red");
}


/**
 * Check periodically if the image upload is finished
 * @return Boolean - true if filled file input found
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function periodicUpdate() {
	if (periodicTimer >= MAX_WAIT) {
		alert("we waited " + MAX_WAIT + " seconds and the upload still did not finish, so we suspect sth. went wrong ;-)\n\nYou should press the stop button of your browser!\n");
		return false;
	}
	periodicTimer++;
	
	if (top.uploadFrame && top.uploadFrame.document && top.uploadFrame.document.getElementsByTagName("p")[0]) {
		var buttons = document.getElementsByName("sendFormButton");
		if (buttons[0]) {
			for (var i = 0; i < buttons.length; i++) { 
			buttons[i].style.visibility  = 'visible';
			}
		}
		document.getElementById('waitBox').style.display = 'none';
		var uFrame = top.uploadFrame.document.getElementsByTagName("p")[0];
		if (uFrame.innerHTML.substr(0, 1) != '{' && uFrame.innerHTML.substr(0, 1) != '[') {
			alert("An undefined error occurred, please notify the admin");
			return false;
		}
		else {
			var response = eval('(' + uFrame.innerHTML + ')');
			handleFileRequest(response);
			return true;
		}
	}
	else {
		window.setTimeout(periodicUpdate, 1000);
		return false;
	}
	return true;
}
//en ManAnuncio
function setAnuncioLocation() {
	if (jQuery('IDPAIS') && jQuery('IDPAIS').value != '') {
		Pais_seleccionado(jQuery('IDPAIS').value);
	}
	else if (jQuery('MY_IDPAIS') && jQuery('MY_IDPAIS').value != '') {
		jQuery('IDPAIS').value = jQuery('MY_IDPAIS').value;
		Pais_seleccionado(jQuery('MY_IDPAIS').value);
	}
	return true;
}
//en ManAnuncio
function resetFormElements() {
	document.getElementsByName('IMAGENES_BORRADAS')[0].value = '';
	for (var i = 1; i < 6; i++) {
		if (jQuery("inputFile_" + i)) {
			jQuery("inputFile_" + i).value = '';
		}
	}

	return true;
}


/**
 * handle Request after file (or image) upload
 * @param {Array} resp Hopefully JSON string array
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function handleFileRequest(resp) {
	
	var lang = new String('');
	if (document.getElementById('myLanguage') && document.getElementById('myLanguage').innerHTML.length > 0) {
		lang = document.getElementById('myLanguage').innerHTML;
	}
	
	var form = form_tmp;
	var msg = '';
	var msgHeader = 'Se ha producido errores en el upload de imagenes!<br /><br />'
	var target = '_top';
	var enctype = 'application/x-www-form-urlencoded';
	var type = 'ANUNCIO'; // 'LIQUIDACION'
	var imageChain = new String('');
	var buttons = document.getElementsByName("sendFormButton");
	if (DestinoForm=='ManAnuncioSave.xsql') var action = 'http://' + location.hostname + '/' + lang + 'ManAnuncioSave.xsql';
	else var action = 'http://' + location.hostname + '/' + lang + 'AltaPaso02Save.xsql';

	if (buttons[0]) {
		for (var i = 0; i < buttons.length; i++) { 
		buttons[i].style.visibility  = 'visible';
		}
	}

	if (resp instanceof Array && resp.length > 0) {
		for (var i = 0; i < resp.length; i++) {
			if (resp[i].error && resp[i].error != '') {
				msg += resp[i].error;
			}
			else if (resp[i].big && resp[i].small) {
				/*var pos = parseInt(resp[i].small.split('_')[0].substring(resp[i].small.split('_')[0].length-1));
				if (pos >= 0 && pos <= 2)
					imageChain += 'ANUNCIO' + '|' + resp[i].small + '|' + resp[i].big + '#';
				else if (pos >= 3 && pos <= 5)
					imageChain += 'LIQUIDACION' + '|' + resp[i].small + '|' + resp[i].big + '#';
				else*/
					imageChain += type + '|' + resp[i].small + '|' + resp[i].big + '#';
			}
		}
		if (msg == '') {
			document.getElementsByName('CADENA_IMAGENES')[0].value = imageChain;
			form.encoding = enctype;
			form.action = action;
			form.target = target;
			//DebugMessages(form);
			
			SubmitMyForm(form);
		}
	}
	else if (resp.length < 1) {
		msg += "Parece que tus ficheros son demasiados grandes.<br />";
	}
	else { 
		msg += "Felicidades! Has producido un error que no podemos clasificar mas exacto.<br />";
	}
	
	if (msg != '') {
		msg = msgHeader + msg;
		displayMessage(msg);
		return false;
	}
	
	return true;
}
// IMAGE UPLOAD       ----------------------------------------------------------

/**
 * Add new Line with remove button
 * @param {string} id Suffix of the element id
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function addFile(id) {
	var uploadElem = document.getElementById("inputFile_" + id);
	if (uploadElem.value != '') {
		uploadFiles[uploadFiles.length] = uploadElem.value;
		if (!document.getElementById("inputLink_" + id)) {
			var rmLink = document.createElement('div');
			rmLink.setAttribute("class","remove");
			
			jQuery('Element').append(rmLink);
			rmLink.setAttribute('id', 'inputLink_' + id);
			rmLink.innerHTML = '<a href="javascript:removeFile(\'' + id + '\');">Remove</a>'
			document.getElementById("imageLine_" + id).appendChild(rmLink);
		}
	}
	else {
		uploadFiles.splice(id, 1);
		document.getElementById("imageLine_" + id).removeChild(document.getElementById("inputLink_" + id));
	}
	
	displayFiles();
	return true;
}

/**
 * Remove line with remove button
 * @param {string} id Suffix of the element id
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */

function removeFile(id) {
	var clearedInput;
	var uploadElem = document.getElementById("inputFile_" + id);
	uploadElem.value = '';
	clearedInput = uploadElem.cloneNode(false);
   uploadElem.parentNode.insertBefore(clearedInput, uploadElem);
   uploadElem.parentNode.removeChild(uploadElem);
	uploadFiles.splice(id, 1);
	document.getElementById("imageLine_" + id).removeChild(document.getElementById("inputLink_" + id));
	
	displayFiles();
	return undefined;
}

/**
 * Prepare image for removing
 * @param {string} fileId Database-ID of the image
 * @param {int} num Number of 
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function deleteFile(fileId, num) {
	var uploadElem = document.getElementById("inputFile_" + num);
	var deleteChain = document.getElementsByName('IMAGENES_BORRADAS')[0].value;
	uploadElem.style.display = '';
	uploadElem.value = '';
	deleteChain += fileId + '|S#';
	document.getElementsByName('IMAGENES_BORRADAS')[0].value = deleteChain;
	return false;
}

/**
 * Display new line for image
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function displayFiles() {
	
	for (var i = 1; i < 6; i++) {
		if (document.getElementById("inputFile_" + i) && document.getElementById("inputFile_" + i).value != '' && document.getElementById("imageLine_" + (1+i))) {
			document.getElementById("imageLine_" + (1+i)).style.display = '';
		} 
	}
	return true;
}


/**
 * Verify URL
 * @param {string} strng URL
 * @return Boolean
 */
function checkURL(strng) { 
  if(strng.value.match(/^(http|ftp)\:\/\/\w+([\.\-]\w+)*\.\w{2,4}(\:\d+)*([\/\.\-\?\&\%\#]\w+)*\/?$/i) || 
	  strng.value.match(/^mailto\:\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w{2,4}$/i)){ 
	 return true; 
  } else { 
	 return false; 
  } 
} 
/**
 * Verify Email
 * @param {string} strng Email
 * @return Boolean
 */
function checkEmail(strng) {
	var value = true;
	var emailFilter = /^.+@.+\..{2,5}$/;
	if (!(emailFilter.test(strng))) { 
		value = false;
	}
	else {
		//test email for illegal characters
		var illegalChars = /[\(\)\<\>\,\;\:\\\"\[\]]/;
		if (strng.match(illegalChars)) {
			value = false;
		}
	}
	return value;    
}


/**
 * Verify PhoneNumber
 * @param {string} strng PhoneNumber
 * @return Boolean
 */
function checkPhone(strng) {
	var value = true;					
	var stripped = strng.replace(/[\(\)\.\-\+\ ]/g, '');
	if (isNaN(stripped)) {
		value = false;
	}
	return value;
}

/**
 * @param {string} texto
 * @return string
 */
function seperatePoints(texto) {
	
	var miString = texto;
	var result = ""

	for (i=0;i<miString.length-1;i++) {
			
		if ((miString.charAt(i)==',')||(miString.charAt(i)==':')||(miString.charAt(i)==';')){
			
			result += miString.charAt(i)+' ';
		}
		else{
			result += miString.charAt(i);
		}
    			
	}
		
	result += miString.charAt(miString.length - 1);
	return result;
}

/**
 * Search form if there is a filled file input
 * @param {object} form HTML form where the file tag is included
 * @return Boolean - true if filled file input found
 */
function hasFiles(form) {
	for (var i = 1; i < form.length; i++) {
		if (form.elements[i].type == 'file' && form.elements[i].value != '') {
			return true;
		}
	}
	return false;
}
/**
 * Concatenate Radio or Checkbox values
 * @param {string} input Elements by TagName
 * @param {string} symbol Concatenation separator
 * @return string
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function ConcadenarValores(input, symbol) {	
	var s = '';
	var i, j;
	
	for (i = 0; i < document.getElementsByName(input).length; i++) {
		if (document.getElementsByName(input)[i].checked) {
			if (s == '')
				s += document.getElementsByName(input)[i].value;
			else
				s += symbol + document.getElementsByName(input)[i].value;
		}
	}
	return s;
}
/**
 * @param {string} NOMBRE
 * @return
 * @author Inyaki Huerta ikhuerta@gmail.com
 */
function URLvar(NOMBRE)
{
	
	if (location.search.length > 2)
		Variables = location.search.substring(1, location.search.length);
	else
		Variables = mySearchString.substring(1, mySearchString.length);
	
	var Vuelta = false;
	V = Variables.split("&");
	for (i=0; i < V.length; i++) {
		partes = V[i].split("=");
		if (partes[0] == NOMBRE)
			Vuelta=partes[1];
	}	
	return Vuelta;
}
/**
 * Send an opinion
 * @param {object} form HTML form
 * @param {string} id Base ID of the corresponding elements
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function sendOpinion(form,id,daNasc){
	var msg = '';
	var post = new String('');

	if (("#opinaError"))  jQuery("#opinaError").hide();
	
 	for(var n=0; n < form.length;n++) {
		if(form.elements[n].type == 'text') {
			form.elements[n].value = jQuery.trim(form.elements[n].value);
		}
	}

	
	if (form.elements['TITULO'] && form.elements['TITULO'].value == '')
		msg += '- El título del comentario es obligatorio.<br />';

	if (form.elements['OPINION'] && form.elements['OPINION'].value == '')
		msg += '- No ha introducido ninguna opinión.<br />';

	post += 'IDANUNCIO=' + form.elements["IDANUNCIO"].value;
	post += '&TITULO=' + form.elements["TITULO"].value;
	post += '&OPINION=' + form.elements["OPINION"].value;
	post += '&MAIL=' + form.elements["MAIL"].value;
	post += '&NOMBRE=' + form.elements["NOMBRE"].value;
	post += '&PUNTUACION=' + form.elements["PUNTUACION"].value;

	
	if (msg == '') {
		// SubmitMyForm(form); 
		waitM(id,daNasc, "Please wait ...");
		sendRequest(form.action, handleFormRequest, post);
		form.reset();
	}
	else {
		msg = 'Por favor, comprueba las siguientes incidencias:<br /><br />' + msg;
		verMessage(msg, 'opinaError');	
	}
	
	return true;
}
/**
 * Send a contact message
 * @param {object} form HTML form
 * @param {string} id Base ID of the corresponding elements
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function sendMessage(form, id, daNasc) {
	var msg = '';
	var send = '';
	var post = new String('');
	
	if (jQuery("#mensError"))  jQuery("#mensError").hide();
	
	for(var n=0; n < form.length;n++) {
		if(form.elements[n].type == 'text') {
			form.elements[n].value = jQuery.trim(form.elements[n].value);
		}
	}

	if (form.elements['NAME'] && form.elements['NAME'].value == '')
		msg += '- Introduce tu nombre.<br />'
	if (form.elements['SURNAME'] && form.elements['SURNAME'].value == '')
		msg += '- Introduce tus apellidos.<br />';
		
	if (form.elements['MAIL_ENVIA']){
		if (form.elements['MAIL_ENVIA'].value == '')
			msg += '- La dirección de correo electrónico es obligatoria.<br />'
		else {
			if (!checkEmail(form.elements['MAIL_ENVIA'].value))
				msg += '- La dirección de correo electrónico no tiene el formato correcto: direccion@servidor.ext.<br />'
		}
	}
	if (form.elements['MENSAJE'] && form.elements['MENSAJE'].value == '')
		msg += '- No has introducido ningún mensaje.<br />'

	if (form.elements['SURNAME'])
		form.elements['NOMBRE'].value = form.elements['NAME'].value + " " + form.elements['SURNAME'].value;
	else if (form.elements['NAME'])
		form.elements['NOMBRE'].value = form.elements['NAME'].value;
	
	
	send += form.elements['MENSAJE'].value;

	post += 'IDANUNCIOLARGO=' + form.elements["IDANUNCIOLARGO"].value;
	if (form.elements['IDDESTINARIO'])
		post += '&IDDESTINARIO=' + form.elements["IDDESTINARIO"].value;
	if (form.elements['NOMBRE'])
		post += '&NOMBRE=' + form.elements["NOMBRE"].value;
	if (form.elements['MAIL_ENVIA'])
		post += '&MAIL_ENVIA=' + form.elements["MAIL_ENVIA"].value;
	post += '&ASUNTO=' + form.elements["ASUNTO"].value;
	post += '&MESSAGE=' + send;
	
	
	
	if (msg == '') {
		waitM(id, daNasc, "Please wait ...");
		sendRequest(form.action, handleFormRequest, post);
		form.reset();
	}
	else {
		msg = 'Por favor, comprueba las siguientes incidencias:<br /><br />' + msg;
		verMessage(msg,'mensError');	
	}
	
	return true;
}


/**
 * Send a recomendation
 * @param {object} form HTML form
 * @param {string} id Base ID of the corresponding elements
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function sendRecomendation(form, id, daNasc) {
	
	var msg = '';
	var post = new String('');
	
	if (jQuery("#recomError"))  jQuery("#recomError").hide();

	for(var n=0; n < form.length;n++) {
		if(form.elements[n].type == 'text') {
			form.elements[n].value = jQuery.trim(form.elements[n].value);
		}
	}

	if (form.elements['NAME_ENVIA'] && form.elements['NAME_ENVIA'].value == '')
		msg += '- Introduce tu nombre.<br />'
	
	if (form.elements['NAME_ENVIA'] && form.elements['MAIL_ENVIA'].value == '')
		msg += '- La dirección de correo electrónico es obligatoria.<br />'
	else {
		if (!checkEmail(form.elements['MAIL_ENVIA'].value))
			msg += '- La dirección de correo electrónico no tiene el formato correcto: direccion@servidor.ext.<br />'
	}

	if (form.elements['NAME_ENVIA_AMIGO'] && form.elements['NAME_ENVIA_AMIGO'].value == '')
		msg += '- Introduce el nombre del contacto.<br />'
	
	if (form.elements['MAIL_ENVIA_AMIGO']) {
		if (form.elements['MAIL_ENVIA_AMIGO'].value == '')
			msg += '- La dirección de correo electrónico del contacto es obligatoria.<br />'
		else {
			if (!checkEmail(form.elements['MAIL_ENVIA_AMIGO'].value))
				msg += '- La dirección de correo electrónico no tiene el formato correcto: direccion@servidor.ext.<br />'
		}
	}
	if (form.elements['ASUNTO'] && form.elements['ASUNTO'].value == '')
		msg += '- Introduce el asunto del mensaje.<br />'

	if (form.elements['MENSAJE'] && form.elements['MENSAJE'].value == '')
		msg += '- No has introducido ningún mensaje.<br />'

	
	post += 'IDANUNCIO=' + form.elements["IDANUNCIO"].value;
	post += '&NAME_ENVIA=' + form.elements["NAME_ENVIA"].value;
	post += '&MAIL_ENVIA=' + form.elements["MAIL_ENVIA"].value;
	post += '&NAME_ENVIA_AMIGO=' + form.elements["NAME_ENVIA_AMIGO"].value;
	post += '&MAIL_ENVIA_AMIGO=' + form.elements["MAIL_ENVIA_AMIGO"].value;

	if (msg == '') {
		
		waitM(id, daNasc, "Please wait ...");
		sendRequest(form.action, handleFormRequest, post);
		form.reset();
	}
	else {
	//	window.history.go(location.href (jQuery('#recomError')));
		msg = 'Por favor, comprueba las siguientes incidencias:<br /><br />' + msg;
		document.getElementById(id).style.display="block";
		verMessage(msg, 'recomError');	
	}
	
	return true;
}
/**
 * Show loading image and waiting message for AJAX
 * @param {string} id Base ID of the corresponding elements
 * @param {string} text Message while loading
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function waitM(id, daNasc, text) {
	var waitMsg = new String('');

	document.getElementById(daNasc).style.display="none";

	//document.getElementById(id + 'Field').style.display="none";
//	document.getElementById(id + 'Send').style.display="none";
	
	//if (document.getElementById(id + 'Link'))
		//document.getElementById(id + 'Link').style.display="none";
	
	waitMsg += '<div id="wait">';
	waitMsg += '<div id="waitImage">';
	waitMsg += '<br />';
	waitMsg += '<img src="http://www.vivecostabrava.com/Images/loading.gif" />';
	waitMsg += '</div>';
	waitMsg += '<br />';
	waitMsg += '<div id="waitText">';
	waitMsg += '<p>' + text + '</p>';
	waitMsg += '</div>';
	waitMsg += '</div>';
	document.getElementById(id).style.display = "block";
	document.getElementById(id).innerHTML = waitMsg;
	//document.getElementById(id + 'Receive').style.display="block";

	return true;
}

function verMessage(message,id) {	

	if (id=='mensError' || id == 'recomError' || id == 'opinaError'){
		// pagina de anuncio	
		if (id == 'mensError') { 
			jQuery("#mensError").html(message);
			jQuery("#mensError").show();
			}
		if (id == 'recomError') { 
			jQuery("#recomError").html(message);
			jQuery("#recomError").show();
			}
		if (id == 'opinaError') { 
			jQuery("#opinaError").html(message);
			jQuery("#opinaError").show();
			}
	}
	else{
		alert(message);
	}
}

function Pais_seleccionado(ID)
{
	$('IDPROVINCIA').disabled = false;
	$('IDPOBLACION').disabled = true;
	cambiar_selects('IDPROVINCIA', 'provincias', '', ID);
	$('IDPROVINCIA').value = '-1';
	$('IDPOBLACION').innerHTML = '';
	C = crear('rnd', 'option', 'IDPOBLACION', 'AB');
	C.innerHTML = "No Iniciado";
}


//parar reanudar... anuncio en zona privada
function CambioEstadoAnuncio(pagina,idanuncio,nuevoEstado,proyecto){
		var msgBorrarAnuncio='¿Realmente quieres Eliminar este anuncio?';
		
		if(nuevoEstado=='B'){
			if(confirm(msgBorrarAnuncio)){
				document.location.href=pagina+'?IDANUNCIO='+idanuncio+'&NUEVOESTADO='+nuevoEstado+'&ID_USUARIO='+document.forms['form'].elements['ID_USUARIO'].value+'&PROYECTO='+proyecto;
			}
		}
		else{
			document.location.href=pagina+'?IDANUNCIO='+idanuncio+'&NUEVOESTADO='+nuevoEstado+'&ID_USUARIO='+document.forms['form'].elements['ID_USUARIO'].value+'&PROYECTO='+proyecto;
		}
	}

	// funcion para validar fechas
  	// recibe el campo de texto y el tipo de validacion OPCIONAL | OBLIGATORIO
  	// devuelve true(correcto)|false (error)
  	
function validarFecha(objFecha,tipo){
		var validacion=true;        
		
      	if(tipo=="OPCIONAL"){ 
			if(objFecha.value!="") {//validacion=CheckDate(objFecha.value);
        		validacion=CheckDate2(objFecha.value);
        	}
      	}	  	
      	else{	    
	  		//validacion=CheckDate(objFecha.value);
	  		if(objFecha.value==""){ validacion=false; }
	  		else{ validacion=CheckDate2(objFecha.value); }
      	}
      	return  validacion;     
    }
    //	valida la fecha
    function CheckDate(Fecha)
    {
		//alert("en CheckDate()"+ Fecha);
	  	vector = new String(Fecha).split("/");
	  	dia=vector[0];
	  	mes=vector[1];
	  	anyo=vector[2];
		
		if (isNaN(anyo) || (anyo<2020))
	  	{
			//fechas, formato dd/mm/aaaa o d/m/aa
			var er_mes31dias = /^([1-3]0|[0-2][1-9]|31|[0-9])\/(1|01|3|03|5|05|7|07|8|08|10|12)\/(19[0-9][0-9]|20[0-1][0-9]|2020)$/;
			var er_mes30dias = /^([1-3]0|[0-2][1-9]|[0-9])\/(4|04|6|06|9|09|11)\/(19[0-9][0-9]|20[0-1][0-9]|2020)$/;
			var er_mes28dias = /^([1-2]0|[0-2][1-8]|[0-1]9|[0-9])\/(02|2)\/(19[0-9][0-9]|200[1-3]|200[5-7]|2009|201[0-1]|201[3-5]|201[7-9])$/;
	    	var er_mes29dias = /^([1-2]0|[0-2][1-9]|[0-9])\/(02|2)\/(2000|2004|2008|2012|2016|2020)$/;
	    		
	    	//comprueba la fecha segun calendario (hasta el 2020, ojo)
			if (!(er_mes31dias.test(Fecha) || 
	      			er_mes30dias.test(Fecha) ||
	      			er_mes29dias.test(Fecha) ||
	     	 		er_mes28dias.test(Fecha)))
			{
	      		return(false);		
	    	}
	    	else
	    	{ 
	      		return (true);
	    	}
	  	}
	  	else
	  	{ 
	    	//para anyo>2020 tenemos comprobacion menos efectiva
	    	if (isNaN(dia) || (dia <1) || (dia>31))
	    	{
	      		return(false);           
	    	}
	    	else
	    	{
	      		if (isNaN(mes) || (mes <1) || (mes>12))
	      		{
	        		return(false);
              	}
              	else
              	{
                	if (isNaN(anyo) || (anyo<2000) || (anyo>3000))
                	{
		  				//errores="Error a\xF1o incorrecto en ";
		  				return(false);
					}
					else
					{ 
		  				return (true);
					}//else
              	}//else
            }//else
		}//else
	}
	
	
	//	funcion para comprar fechas
	//	el formato de la fecha ha de ser dd/mm/yyyy
	//	el tipo MAYOR|MENOR|MENORIGUAL|MAYORIGUAL|IGUAL
	   
	function compararFechas(fechaOrigen,tipo,fechaDestino )
	{
		var fechaOrigenFormatoIngles=idiomaFecha(fechaOrigen,"E","I");
		var fechaDetinoFormatoIngles=idiomaFecha(fechaDestino,"E","I");
		
		fechaOrigenFormatoIngles=new Date(fechaOrigenFormatoIngles);
		fechaDetinoFormatoIngles=new Date(fechaDetinoFormatoIngles);
		
		fechaOrigenFormatoIngles=parseInt(fechaOrigenFormatoIngles.getTime());
		fechaDetinoFormatoIngles=parseInt(fechaDetinoFormatoIngles.getTime());
          
         
		if(tipo=="MAYOR"){
			if(fechaOrigenFormatoIngles>fechaDetinoFormatoIngles)
				return 1;
            else
				return 0;
          }
          else{
            if(tipo=="MENOR"){
              if(fechaOrigenFormatoIngles<fechaDetinoFormatoIngles)
                return 1;
              else 
                return 0;
            }
            else{
              if(tipo=="MENORIGUAL"){
                if(fechaOrigenFormatoIngles<=fechaDetinoFormatoIngles)
                  return 1;
                else 
                  return 0;
              }
              else{
                if(tipo=="MAYORIGUAL"){
                  if(fechaOrigenFormatoIngles>=fechaDetinoFormatoIngles)
                    return 1;
                  else 
                    return 0;
                }
                else{
                  if(tipo=="IGUAL"){
                    if(fechaOrigenFormatoIngles==fechaDetinoFormatoIngles)
                      return 1;
                    else 
                      return 0;
                  }
                  else{
                    alert("el tipo: "+tipo+" no es un operador valido");
                    return 0;
                  }
                }
              }
            }
          } 
        }
        
        /*
           funcion que devuelve una fecha con el formato DD/MM/YYYY
           
           entrada:   D/M/YYYY , DD/M/YYYY � D/MM/YYYY
           salida:    DD/MM/YYYY
        */
        
function normalizarFecha(fecha){
          var dia=obtenerSubCadenaFecha(fecha, 1);
          var mes=obtenerSubCadenaFecha(fecha, 2);
          var annyo=obtenerSubCadenaFecha(fecha, 3);
          
          if(Number(dia)<10){
            dia="0"+String(Number(dia));
          }
          
          if(Number(mes)<10){
            mes="0"+String(Number(mes));
          }
          
          var fechaTmp=dia+"/"+mes+"/"+annyo;
          return fechaTmp;
          
        }
        
        function convertirFechaATexto(fFecha){
          var fecha=fFecha.getDate()+"/"+(Number(fFecha.getMonth())+1)+"/"+fFecha.getFullYear();
        return fecha;
 }
 
 	
        //	devuelve el dia, mes, anyo de una fecha 
        //	util para convertir a formato ingles 
        //	formato de la fecha dd/mm/yyyy
	//	formatos soportados E espanyol, I ingles
        function idiomaFecha(fecha, formatoEntrada,formatoSalida){
          var nuevaFecha;          
          if(formatoEntrada==formatoSalida){
            nuevaFecha=fecha;  
          }
          else{
              nuevaFecha=obtenerSubCadenaFecha(fecha, 2)+"/"+obtenerSubCadenaFecha(fecha, 1)+"/"+obtenerSubCadenaFecha(fecha, 3);
          }
          return nuevaFecha;  
        }
        // devuelve el dia, mes o anyo de una fecha
        // formato fecha dd/mm/yyyy
        // posiciones 1,2,3
        function obtenerSubCadenaFecha(fecha, posicion){
         
         var separador_1;
         var separador_2;
         
         var separadores=0;
         
         for(var n=0;n<fecha.length;n++){
           if(fecha.substring(n,n+1)=="/"){
             separadores++;
             if(separadores==1){
               separador_1=n;
             }
             else
               if(separadores==2)
                 separador_2=n;
           }
         }
         if(posicion==1){
           return fecha.substring(0,separador_1);
         }
         else
           if(posicion==2){
             return fecha.substring(separador_1+1,separador_2);
           }
           else{
             return fecha.substring(separador_2+1,fecha.length);
           }
             
       }
	   

function CheckDate2(campoFecha){
	
	var checkstr = "0123456789";
	var DateField = campoFecha;
	var Datevalue = "";
	var DateTemp = "";
	var seperator = "/";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
   	err = 0;
   
   	DateValue = normalizarFecha(campoFecha);
   	
   /* Delete all chars except "/" */
   for(i = 0; i < DateValue.length; i++) {
	if (checkstr.indexOf(DateValue.substr(i,1)) < 0 && DateValue.substr(i,1)!=seperator){
	      return false;
	  }
   }
   
   /* Delete all chars except 0..9 */
   for(i = 0; i < DateValue.length; i++) {
	if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   DateValue = DateTemp;
   
   
   /* Always change date to 8 digits - string*/
   /* if year is entered as 2-digit / always assume 20xx */
   
   
   if (DateValue.length == 6) {
      DateValue = DateValue.substr(0,4) + "20" + DateValue.substr(4,2); 
      err=100;
   }
   if (DateValue.length != 8) {
      err = 19;
   }
   /* year is wrong if year = 0000 */
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }
   /* Validation of month*/
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   /* Validation of day*/
   day = DateValue.substr(0,2);
   if (day < 1) {
     err = 22;
   }
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
   /* if 00 ist entered, no error, deleting the entry */
   if ((day == 0) && (month == 0) && (year == 00)) {
      err = 0; day = ""; month = ""; year = ""; seperator = "";
   }
   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   if (err == 0) {
      //DateField.value = day + seperator + month + seperator + year;
      return true;
   }
   /* Error-message if err != 0 */
   else {
      return false;
      //alert("Date is incorrect!");
      //DateField.select();
      //DateField.focus();
   }
}
// calcula dias, naturales o habiles
	function calculaDias(hoy,incremento,tipo)
	{
		if(tipo=="NATURALES")
		{
			return calcularDiasNaturales(hoy,incremento);
		}
		else
		{
			if(tipo=="HABILES")
			{
				return calcularDiasHabiles(hoy,incremento);
			}
			else
			{
			 alert("Error, el tipo: "+tipo+" no es valido");
			 return hoy;	
			}	
		}	
	}
	
	
	// calcula dias habiles
	function calcularDiasHabiles(hoy,incremento)
	{
   		var fechaResultado=hoy;
   		var incrementoDiasHabiles=0;

   		if(incremento>=0)
   		{
     			while(incrementoDiasHabiles<incremento)
     			{
       				fechaResultado=sumaDiasAFecha(fechaResultado,1);  
       				if(fechaResultado.getDay()!=0 && fechaResultado.getDay()!=6)
         				incrementoDiasHabiles++;
     			}
   		}
   		else{
     			while(incrementoDiasHabiles>incremento)
     			{
       				fechaResultado=sumaDiasAFecha(fechaResultado,-1);  
       				if(fechaResultado.getDay()!=0 && fechaResultado.getDay()!=6)
         				incrementoDiasHabiles--;
     			}
   		}
   
   		return(fechaResultado);
 	}
 	
 	// calcula dias naturales
 	function calcularDiasNaturales(fechainicio,incremento)
 	{ 
    		return sumaFechas(fechainicio,incremento*24*60*60*1000);
  	}
  	
  	// suma dos fechas
  	function sumaFechas(fecha1,fecha2)
  	{
    		var fFecha1=new Date(fecha1); 
    		var fFecha2=new Date(fecha2); 
    		var Resultado=parseInt(fFecha1.getTime()+fFecha2.getTime()); 
    		var fResultado=new Date(Resultado); 
    
    		return fResultado;
  	}
	
// ANUNCIO            ----------------------------------------------------------
/**
 * Reformats and displays the image
 * @param {object} el The image
 * @param {int} arguments[1] Optionally image width (and height)
 * @param {int} arguments[2] Optionally image height
 * @return Boolean
 * @author Martin Gangkofer gangkofer@gmail.com
 */
function formatImage(el) {
	var imgWidth;
	var imgHeight;
	var tmpWidth;
	var tmpHeight;
	var anImg = el.parentNode.parentNode;
	
	
	divImage = document.getElementById("imageAnuncio");
	offerImages = document.getElementById("imageAnuncio").getElementsByTagName("img");	
	numImages = offerImages.length;
	
	el.style.display = '';
	el.removeAttribute("width");
	el.removeAttribute("height");
	el.removeAttribute("margin");
	el.removeAttribute("style");
	
	
	
	if (arguments[1] && arguments[2]) {
		imgHeight = arguments[1];
		imgWidth = arguments[2];
	}
	else if (arguments[1] && !arguments[2]) {
		imgHeight = arguments[1];
		imgWidth = arguments[1];	
	}
	else if (el == offerImages[0]) {
		imgHeight = IMG_HEIGHT;
		imgWidth = IMG_WIDTH;
	}
	else if (numImages <= 1 && el == offerImages[1]) {
		imgHeight = IMG_HEIGHT;
		imgWidth = IMG_WIDTH;	
	}
	else {
		imgHeight = IMG_SMALL_HEIGHT;
		imgWidth = IMG_SMALL_WIDTH;
	}
		
	el.style.display = '';
	tmpWidth = el.width;
	tmpHeight = el.height;
	el.style.display = 'none';

	//anImg.style.width = imgWidth + 10 + 'px';
	//anImg.style.height = imgHeight + 10 + 'px';

	
	if (tmpWidth > tmpHeight) {
		if (tmpWidth > imgWidth) {
			//alert(tmpWidth+ ' 1 >'+ imgWidth);
			tmpHeight = Math.floor((imgWidth/tmpWidth) * tmpHeight);
			tmpWidth = imgWidth;
			el.width = tmpWidth;
			el.height = tmpHeight;
			//divImage.style.width=tmpWidth;
			//divImage.style.height.width=tmpHeight;
			
		}
		
		
	}
	
	else {
		if (tmpHeight > imgHeight) {
			tmpWidth = Math.floor((imgHeight/tmpHeight) * tmpWidth);
			tmpHeight = imgHeight;
			el.width = tmpWidth;
			el.height = tmpHeight;
			//divImage.style.width=tmpWidth;
			//divImage.style.height.width=tmpHeight;
		
		}
	}	

	el.style.display = '';

	return true;
}