// SINOPSIS
// Funciones relativas al comportamiento del form de carga de evento de usuario
// KNWON BUGS
// Comentar funciones
// BITACORA
// GB 16-4-2009 Creacion en base a v2-form-carga-evento.js en admin

// DEFINES
var PERIODICIDAD_DESCONOCIDA = -2;
var PERIODICIDAD_UNICA = -1;
var PERIODICIDAD_DIARIA = 0;
var PERIODICIDAD_SEMANAL = 1;

// SINOPSIS
// Agrega al DOM de la pagina un link
// INPUT
// ASSUMPTIONS & BUGS
// BITACORA
// GB 3-9-2009 Creacion. Es copia de la agregarLink en v2-misdatos.js
function agregarLink()
{	
	var boton, botones;
	
	// ubico el ultimo boton para apgarlo
	botones = document.getElementsByClassName('linkButton');
	// alert( botones.length );
	boton = botones[botones.length-1]; 
	boton.style.visibility = "hidden";

	// Agrego agrego la nueva linea al div de links
	// obtengo el div de links
	var div = document.getElementById('linksDiv');
	// creo el proximo div que va adentro
	var newdiv = document.createElement('div');
	// agrega en el innerHTML un campo para ingresar un nombre y link
	newdiv.innerHTML = "URL: <input type='text' name='link[]' class='lbx-form'/><br />";
	newdiv.innerHTML += " Nombre: <input type='text' name='nombre_link[]' class='lbx-form'/><br />";
	newdiv.innerHTML += " <input class='linkButton' type='button' value='Agregar Otro' onclick='agregarLink()' />";
  	div.appendChild(newdiv);
}

// SINOPSIS
// Abre pagina de carga de lugar si usuario esta logueado
// ASSUMPTIONS & BUGS
// BITACORA
// Gustavo Bodner, 5-3-2009, Creacion en Admin
// Gustavo Bodner, 1-7-2009, Copia a Produ
function cargarNuevoLugar()
{
	if ( !userLoggedIn() )
	{
		openShadowbox("Tenes que estar logueado para poder cargar un lugar", "html", "Disculpa");
	}
	else
	{
	 	window.location.href="v2-venue-upload.php";
	}
}

// SINOPSIS
// Dispara acciones de render en el form de acuerdo a parametros del evento evento
// KNWON BUGS
// BITACORA
// GB 16-4-2009 
function initFormCargaEventoUser()
{
	// var periodicidad = getElementValue("periodicidad");
	// MostrarPeriodicidad( periodicidad );
	// alert ("En initFormCargaEventosUser()" );
	MostrarPeriodicidad();
}

// SINOPSIS
// Dispara acciones de render en el form de acuerdo a la periodicidad del evento
// KNWON BUGS
// Si la periodicidad es unica o diaria, conviene mandar al back la lista de dias
// marcada como completa porque filtra por dias!
// BITACORA
// GB 16-4-2009 Creacion en base a equivalente en admin MostrarPeriodicidad()
function MostrarPeriodicidad()
{
	periodicidad = document.getElementById("tipoPeriodicidad").value;
	// alert ( "En MostrarPeriodicidad, tipo periodicidad = " + periodicidad );
		
	var fechaInicio = document.getElementById("fechaInicio");
	var fechaFin = document.getElementById("fechaFin");
	
	if( periodicidad == PERIODICIDAD_UNICA ) 
	{
		completarSeleccionDiasSemanales();
		// Si le periodicidad es unica, unifico las fechas de inicio y fin
		document.getElementById("fechaFin").value = fechaInicio.value;  
		// borrarSeleccionDiasSemanales();
		document.getElementById("divFechaFin").style.display = "none";  
		document.getElementById("divDias").style.display = "none";  
	}
	else
	if ( periodicidad == PERIODICIDAD_DIARIA ) 
	{
		completarSeleccionDiasSemanales();
		document.getElementById("divFechaFin").style.display = "block";  
		document.getElementById("divDias").style.display = "none";  
	}	
	else
	if ( periodicidad == PERIODICIDAD_SEMANAL ) // Semanal = 1
	{
		document.getElementById("divFechaFin").style.display = "block";  
		document.getElementById("divDias").style.display = "block";  
	}	
}

// SINOPSIS
// Acciones a tomar cuando cambia alguna fecha en los controles de fecha inicio o fin
// BITACORA
// gb 6-5-2009 creacion en base a carga fechas en admin
function onCambioFechas()
{
	// alert("En onCambioFechas()");
	// controlo que la fecha de inicio no sea mayor que la fecha de fin
	var fechaInicio = document.getElementById("fechaInicio").value;
	var fechaFin = document.getElementById("fechaFin").value;
	if ( fechaInicio > fechaFin )
		document.getElementById("fechaFin").value = fechaInicio;
}


// SINOPSIS
// Setea en false la seleccion de dias semanales
// BITACORA
// gb 16-4-2009 copiada de js correspondiente en admin
function borrarSeleccionDiasSemanales()
{
	document.getElementById("diaSemanal1").checked = false;
	document.getElementById("diaSemanal2").checked = false;
	document.getElementById("diaSemanal3").checked = false;
	document.getElementById("diaSemanal4").checked = false;
	document.getElementById("diaSemanal5").checked = false;
	document.getElementById("diaSemanal6").checked = false;
	document.getElementById("diaSemanal7").checked = false;
}

// SINOPSIS
// Setea en true la seleccion de dias semanales
// BITACORA
// gb 16-4-2009 copiada de js correspondiente en admin
function completarSeleccionDiasSemanales()
{
	document.getElementById("diaSemanal1").checked = true;
	document.getElementById("diaSemanal2").checked = true;
	document.getElementById("diaSemanal3").checked = true;
	document.getElementById("diaSemanal4").checked = true;
	document.getElementById("diaSemanal5").checked = true;
	document.getElementById("diaSemanal6").checked = true;
	document.getElementById("diaSemanal7").checked = true;
}


// SINOPSIS
// Envia el form. Llamanda desde formulario de carga de evento.
// ASSUMPTIONS & BUGS
// BITACORA
// GB 16-4-2009 Creacion
function submitFormCargaEventoUser()
{
	// alert( "Entrando a submitFormCargaEventoUser");
	// GB 18-6 este if se podria sacar?, podemos asumir que si estamos aca el usuario esta logueado?
	if ( !userLoggedInLocal() )
	{
		var content = '<div style="background-color:#ffffff; height:100px; width: 250px; font-size:13px; padding:10px; text-align:center">Lo sentimos, debes estar logueado para poder grabar tu evento!<br/><br/>Hacelo desde la barra superior por favor, o registrate.</div>';
		// var content = "Logueate che!";
		var player = "html"
		var title = "Login!";
		openShadowbox(content, player, title);

	}
	else
	{	
		if ( preSubmitFormCargaEventoUser() == false )
			return;

		// gb 19-5-2009 Deshabilito el boton de enviar
		document.getElementById("divBotonEnviar").innerHTML = "<p style='color:#FF3399'>Enviando...</p>";

		// Submit form
		var form = document.forms['evento'];
		form.submit();
	}
}

// SINOPSIS
// Chequea condiciones antes de mandar form
// ASSUMPTIONS & BUGS
// Faltan chquear algunos datos
// Puede ser que se este llamando a esta funcion desde el shadowbox de login o desde el mismo form. Debe funcionar de ambas maneras.
// BITACORA
// GB 17-6-2009 Creacion
// GB 17-6-2009 Adapto para poder usar desde shadowbox de login
function preSubmitFormCargaEventoUser()
{
	var titulo = document.getElementById("titulo");
	if ( titulo == null )
		// Esto se hace por si estamos llamando la funcion desde el shadowbox de login 
		titulo = parent.document.getElementById("titulo");
	var fechaInicio = document.getElementById("fechaInicio");
	if ( fechaInicio == null )
		fechaInicio = parent.document.getElementById("fechaInicio");	
	var lugar = document.getElementById("lugar");
	if ( lugar == null )
		lugar = parent.document.getElementById("lugar");
	// gb 7-7-2009 cambio nombre variable a id-lugar
	// var idLugar = document.getElementById("idLugar");
	var idLugar = document.getElementById("id-lugar");
	if ( idLugar == null )
		idLugar = parent.document.getElementById("id-lugar");		
	var tags = document.getElementById("tags");
	if ( tags == null )
		tags = parent.document.getElementById("tags");		
	
	// gb 22-6-2009 ojo no usar lenght para chequear que da undefined
	// alert ("Titulo = " + titulo.value + ", length = " + titulo.value.length );
	if ( titulo.value == "" )
	{
		alert( "Debes completar el titulo para grabar tu evento");
		return false;
	}

	if ( fechaInicio.value == "" )
	{
		alert( "Debes completar la fecha de inicio para grabar tu evento");
		return false;
	}

	if ( lugar.value == "" )
	{
		alert( "Te faltó completar el Lugar donde se realiza el evento. Para ello tipeá las primeras letras del nombre y seleccioná el Lugar de la lista que se te desplegará.");
		return false;
	}

	if ( idLugar.value == 0 )
	{
		alert( "Te faltó completar el Lugar donde se realiza el evento. Para ello tipeá las primeras letras del nombre y seleccioná el Lugar de la lista que se te desplegará.");
		return false;
	}

	// gb 20-5-2009, para tags being tipo text
	// var tags = trim(document.getElementById("tags").value);
	// gb 30-5-2009, para tags siendo un textarea
	// gb 21-9 esto muestra valores no actuales del contenido
	// var tagsContent = trim(tags.innerHTML);
	var tagsContent = tags.value;
	// alert(tagsContent); 
	
	// gb 6-10-2009
	// Por lo menos uno y menos de diez palabras clave
	if ( trim(tagsContent).length == 0 )
	{
		alert( "Tenés que cargar al menos una palabra clave!");
		return false;
	}
	
	// creo array y cuento
	var lista = tagsContent.split(",");
	// alert( "Hay " + lista.length + " palabras clave");
	if ( lista.length > 10 )
	{
		alert( "Perdón, como máximo podés cargar hasta diez palabras clave!");
		return false;
	}	
	
	if ( tagsContent.indexOf( '\'' ) > 0 || tagsContent.indexOf('"') > 0 )
	{
		// alert(tagsContent.indexOf( '\'' ));alert(tagsContent.indexOf('\"'));
		alert("Los tags no deben contener comillas!");
		return false;
	}
		
	return true;
}

// SINOPSIS
// Setea el href/action del boton a submitear el evento
// ASSUMPTIONS & BUGS
// BITACORA
// GB 18-6-2009 Creacion
function changeActionBotonEnviarFormCargaEventoUser()
{
	// alert( "En changeActionBotonEnviarFormCargaEventoUser()");
	var enviar = document.getElementById("boton-enviar");
	if ( enviar == null )
		enviar = parent.document.getElementById("boton-enviar");
	/* gb 18-6-2009 esto no anda...
	enviar.href = "javascript:submitFormCargaEventoUser()";
	*/
	// Cambio de boton
	var enviar2 = document.getElementById("boton-enviar-2");
	if ( enviar2 == null )
		enviar2 = parent.document.getElementById("boton-enviar-2");
	enviar.style.display = "none";
	enviar2.style.display = "block";
}

// SINOPSIS
function ltrim(s) {
   return s.replace(/^\s+/, "");
}

// SINOPSIS
function rtrim(s) {
   return s.replace(/\s+$/, "");
}

// SINOPSIS
function trim(s) {
   return rtrim(ltrim(s));
}

