
var imagesAdmittedFormat = ['jpg','jpeg','gif','png'];

var uploadFile = function (elem) {
	elem.style.display = 'none';
	parent.uploadValid = null;
	document.getElementById('upload-bar').style.display = '';
	document.getElementById('msg_error').style.display = 'none';
	elem.submit();
}

var delTempImg = function (tmp_id) {
	if (!window.uploadFormSended) {
		new Ajax("/upload/iframe", "del_image_file=1&tmp_id=" + tmp_id, function(){});
	}
}

var uploadValidate = function (form) {
	var isValid = true;
	var msg = '';
	if (!window.uploadValid) {
		if (window.uploadValid == null) {
			msg = 'Debe esperar a que termine de subir la foto al servidor.';
		} else {
			msg = 'Debe seleccionar una foto.';
		}
		isValid = false;
	} else if (form.elements.image_coord_x.value == '' || form.elements.image_coord_y.value == '') {
		msg = 'Debe posicionar la imagen.';
		isValid = false;
	} else if (form.elements.image_title.value == '') {
		msg = 'Debe escribir un título para la foto.';
		isValid = false;
	}
	document.getElementById('image_form_msg').innerHTML = msg;
	
	if (isValid) {
		window.uploadFormSended = true;
	}
	
	return isValid;
}

var confirmExitUpload = function () {
	if (window.uploadValid || window.uploadValid == null) {
		return confirm('Tiene pendiente una imagen para subir. ¿Está seguro que desea cancelar el proceso?');
	}
}

var signupValidate = function (form) {
	var isValid = true;
	var msg = '';
	
	if (form.elements.signup_nick.value.length < 4) {
		msg += '<p>El nick debe tener como mínimo 4 caracteres.</p>';
		isValid = false;
	}
	if (form.elements.signup_passwd.value != form.elements.signup_passwd2.value) {
		msg += '<p>La contrase&ntilde;a y su comprobaci&oacute;n no coinciden.</p>';
		isValid = false;
	}
	if (form.elements.signup_passwd.value.length < 4) {
		msg += '<p>La contrase&ntilde;a debe tener como mínimo 4 caracteres.</p>';
		isValid = false;
	}
	if (form.elements.signup_email.value.length == 0) {
		msg += '<p>Debe escribir un email v&aacute;lido.</p>';
		isValid = false;
	} else if (! /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(form.elements.signup_email.value)) {
		msg += '<p>Debe escribir un email v&aacute;lido.</p>';
		isValid = false;
	}
	if (form.elements.signup_nombre.value.length == 0) {
		msg += '<p>Debe escribir su nombre.</p>';
		isValid = false;
	}
	if (form.elements.signup_apellidos.value.length == 0) {
		msg += '<p>Debe escribir sus apellidos.</p>';
		isValid = false;
	}
	if (!form.elements.signup_sexo[0].checked && !form.elements.signup_sexo[1].checked) {
		msg += '<p>Debe seleccionar su sexo.</p>';
		isValid = false;
	}
	if (form.elements.signup_pais[0].selected) {
		msg += '<p>Debe seleccionar su pais.</p>';
		isValid = false;
	}
	
	document.getElementById('msg_signup').innerHTML = msg;
	return isValid;
}

var displayComplaintForm = function (bol) {
	var btn = document.getElementById('complaint-button');
	var divForm = document.getElementById('complaint-form');
	btn.style.display = bol ? 'none' : '';
	divForm.style.display = bol ? '' : 'none';
}

var complaintValidate = function (form) {
	var isValid = true;
	var msg = '';
	
	if (form.elements.complaint.value == '') {
		msg += 'Debe escribir un texto en la denuncia.';
		isValid = false;
	}
	
	document.getElementById('msg-complaint').innerHTML = msg;
	return isValid;
}

var confirmSearch = function (form) {
	if (form.elements.image_locate.value.length > 0) {
		if (form.elements.image_locate.value != form.elements.image_locate_selected.value) {
			if (document.getElementById(JMWmap.LOCATION_LIST_ELEMENT_NAME).getElementsByTagName('ul')[0].getElementsByTagName('li').length == 0) {
				return confirm('No ha encontrado ningun lugar con ese nombre.\nSi continúa no se tomará en cuenta el lugar.\n¿Desea continuar?')
			} else {
				return confirm('No ha seleccionado ningun lugar de la lista.\nSi continúa no se tomará en cuenta el lugar.\n¿Desea continuar?')
			}
		}
	}
	return true;
}

var displayImageElement = function (id, bol, e) {
	var ofin = document.getElementById(id.substring(0, id.length-1)+'span');
	var oinit = document.getElementById(id.substring(0, id.length-1)+'edit');
	
	if (bol) {
		oinit.value = ofin.innerHTML.replace('<br>','\n')
		document.getElementById(id).style.display="none";
		document.getElementById(id+'_edit').style.display="";
		document.getElementById(id.substring(0, id.length-1)+'edit').focus();
	} else {
		
		try {
			if (!e) {
				e = event;
			}
			if (e.keyCode != 13 && e.keyCode != 27) {
				return;
			}
			if (e.keyCode == 13 && oinit.tagName.toLowerCase() != 'input') {
				return;
			}
		} catch (ex) {
			e = {}
		}
		
		document.getElementById(id).style.display="";
		document.getElementById(id+'_edit').style.display="none";
		
		if (e.keyCode == 27) {
			oinit.value = ofin.innerHTML;
			return;
		}
		
		if (ofin.innerHTML.replace('<br>','\n') != oinit.value) {
			ofin.innerHTML = oinit.value.replace('\n','<br>');
			new Ajax(window.location.href, id +'='+ oinit.value, function () {});
		}
		
	}
}

var showMapEdit = function (bol) {
	document.getElementById('map-edit-button').style.display = bol ? 'none' : '';
	document.getElementById('map-edit').style.display = bol ? '' : 'none';
	JMWmap.loadMarkerUpload();
	JMWmap.showMarkerUploadInfo();
}

var validateContactus = function (form) {
	var isValid = true;
	var msg = '';
	
	if (form.elements.person_name.value.length == 0) {
		msg += '<p>Debe escribir un nombre.</p>';
		isValid = false;
	}
	if (form.elements.person_mail.value.length == 0) {
		msg += '<p>Debe escribir un email v&aacute;lido.</p>';
		isValid = false;
	} else if (! /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(form.elements.person_mail.value)) {
		msg += '<p>Debe escribir un email v&aacute;lido.</p>';
		isValid = false;
	}
	if (form.elements.person_comments.value.length == 0) {
		msg += '<p>Debe escribir un comentario.</p>';
		isValid = false;
	}
	
	document.getElementById('msg_contactus').innerHTML = msg;
	return isValid;
}

var seleccionarPendientes = function (bol) {
	var chboxes = document.getElementsByTagName('input');
	for (var i=0; i<chboxes.length; i++) {
		if (chboxes[i].type == 'checkbox') {
			chboxes[i].checked = bol;
		}
	}
}

var showHelp = function (bol) {
	var div = document.getElementById('help-container');
	if (typeof(bool) == 'undefined') {
		bol = true;
		if (div.abierto) {
			bol = false;
		}
		div.abierto = bol;
	}
	div.style.display = bol ? 'block' : 'none';
}

var confirmPhotoDelete = function () {
	return confirm('¿Está seguro de que desea eliminar la foto?\nSi continúa no se podrán deshacer los cambios.');
}
var confirmUserDelete = function () {
	return confirm('¿Está seguro de que desea deshabilitar el usuario?');
}

var ismaxlength = function (obj) {
	var mlength = obj.getAttribute ? parseInt(obj.getAttribute("maxlength")) : "";
	if (mlength == 0) {
		mlength = 4294967295;
	}

	if (obj.getAttribute && obj.value.length > mlength){
		obj.value=obj.value.substring(0, mlength);
	}

}

var displayImageEditor = function (elem,bol) {
	elem.className = bol ? 'image-editor-edit' : 'image-editor';
	if (!bol) {
		var n = elem.name;
		try{var v = escape(elem.value);}
		catch(e){var v = elem.value;}
		new Ajax(window.location.href, n +'='+ v, function (req) {});
	}
}

var changeTextAreaHeight = function (textarea) {
	textarea.style.height = '14px';
	textarea.style.height = textarea.scrollHeight + 'px';
}

window.onload = function () {
	/* max length*/
	var eventNames = ['onkeydown','onkeyup','onpaste','onchange','onpropertychange'];
	var textareas = document.getElementsByTagName('textarea');
	for (var i=0; i<textareas.length; i++) {
		if (!document.all && textareas[i].className.indexOf('image-editor') == 0) {
			changeTextAreaHeight(textareas[i]);
		}
		for (var j=0; j<eventNames.length; j++) {
			textareas[i][eventNames[j]] = function () {
				if (!document.all && this.className.indexOf('image-editor') == 0) {
					changeTextAreaHeight(this);
				}
				ismaxlength(this);
			};
		}
	}
}