/********************************
/*
/* PAGE INITIALIZATION
/*
/*******************************/

// DEFINE CONSTANTS
var ERROR_STR = '-:enTropico_!ERROR!_enTropico:-';
var SUCCESS_STR = '-:enTropico_!SUCCESS!_enTropico:-';
var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
var n = 0;//Is used by clickImgAnterior, clickImgsiguiente and imageNavigation

// set onLoad event handler to page
addEvent(window, 'load', initPage, false);

//initialize page elements
function initPage()
{

	//detect browser features.
	if (!document.getElementById || !document.getElementsByTagName || !document.getElementsByName)
		return;

	//arregla la imagen del menu
	menu();
	
	if(document.getElementById('ant'))
	{
		var btnImgAnt = document.getElementById('ant');
		addEvent(btnImgAnt, 'click', clickImgAnterior, false);
	}
	
	if(document.getElementById('sig'))
	{
		var btnImgSig = document.getElementById('sig');
		addEvent(btnImgSig, 'click', clickImgSiguiente, false);
	}
	
	if(document.getElementById('ampliaImagen'))
	{
		var ImgAmp = document.getElementById('ampliaImagen');
		addEvent(ImgAmp, 'click', ampliarImg, false);
	}

	//init click handlers to comentarios ver mas buttons
	initVerMas();

	//click handler for btnShowAllComments
	var btnCerrar = document.getElementById('divCerrarCaso');
	addEvent(btnCerrar, 'click', clickCerrar, false);

	//click handler for btnShowAllComments
	var btnAmpliar = document.getElementById('divampliarCaso');
	addEvent(btnAmpliar, 'click', clickAmpliar, false);

	//click handler for btn Opinar
	var btnOpinar = document.getElementById('btnOpinar');
	addEvent(btnOpinar, 'click', opinar, false);
	
	//click handler for btnOkRegister
	var btnShowRegister = document.getElementById('btnShowsRegister');
	addEvent(btnShowRegister, 'click', showRegister, false);
	
	//click handler for btnOkRegister
	var btnTwoShowRegister = document.getElementById('twoShowsRegister');
	addEvent(btnTwoShowRegister, 'click', showRegister, false);
	
	//click handler for btnOkLogin
	var btnPublicar = document.getElementById('Opinar');
	addEvent(btnPublicar, 'click', login, false);

	//click handler for btnOkRegister
	var okRegister = document.getElementById('btnOkRegister');
	addEvent(okRegister, 'click', register, false);
	
	//click ampliar images
	if(document.getElementById('ampliarImg'))
	{
		var btnAmpliarImg = document.getElementById('ampliarImg');
		addEvent(btnAmpliarImg, 'click', ampliarImg, false);
	}
	
	//click handler for btnShowAllComments
	if(document.getElementById('btnShowAll'))
	{
		var btnShowAllComments = document.getElementById('btnShowAll');
		addEvent(btnShowAllComments, 'click', showAllComments, false);
	}
}

function menu (e){document.getElementById('CasoMes').src = 'images/internas/b_caso_on.gif';}

function ampliarImg ()
{
	if(eval('imagenes'+idCaso))
	{
		var images = eval('imagenes'+idCaso);
		if(n<images.length)
		{
			var newRutaLarge   = eval('imagenes'+idCaso+'[-1 +'+'n][3]');
		}
		window.open(newRutaLarge,'plop','width=400,height=600');
	}
	
	
	
}
function clickAmpliar(e)
{
	//show button "cerrar"
	document.getElementById('divCerrarCaso').style.display='block';
	//show info in div "detalles"
	document.getElementById('divExpanded').style.display='block';
	//hide button "ampliar"
	document.getElementById('divampliarCaso').style.display='none';
}

function clickCerrar(e)
{
	//show button "cerrar"
	document.getElementById('divampliarCaso').style.display='block';
	//show info in div "detalles"
	document.getElementById('divExpanded').style.display='none';
	//hide button "ampliar"
	document.getElementById('divCerrarCaso').style.display='none';
}

function clickImgSiguiente(e)
{

	var length =  imagenes.length;
	
	if(n<length -1)
		n++;
	else
		n=0;
	
	drawImagen(n);
	
}

function clickImgAnterior(e)
{

	var length = imagenes.length;
	
	if(n==0)
		n=length - 1;
	else
		n--;
	
	drawImagen(n);
}

function drawImagen(n)
{
	
		var newTitulo = imagenes[n][2];
		var newRuta   = imagenes[n][0];
		var newAlt    = imagenes[n][1];
		
		//get nombre image from span
		var nombreImagen = document.getElementById('nombre');
		nombreImagen.innerHTML='<br />'+newTitulo;
		
		var numFoto = document.getElementById('numFoto');
		numFoto.innerHTML='Foto '+(n+1)+' ';
		//nombreImagen.firstChild.nodeValue =eval('imagenes'+idVademecum+'[0 +'+'n][2]');

		//get id from image for change propertys
		var imagen= document.getElementById('imagen');

		//set propertys to display new image
		imagen.src = newRuta;
		imagen.alt = newAlt;

}

function ampliarImg (e)
{
	
	if(imagenes)
	{
		var img = document.getElementById('imagen');
		
		var y = img.height;
		
		var newRutaLarge   = imagenes[n][3];
		
		var popup = window.open(newRutaLarge,'plop','width=400,'+'height='+(y*3.3));
		popup.focus();	
	}	
}

function opinar()
{
	//show form user
	document.getElementById('ExpandOpinar').style.display='block';
	
	//show btn registrarse
	document.getElementById('PestRegistro').style.display='block';
	
	//show btn registrarse
	document.getElementById('ExpandRegistro').style.display='none';

}

function login()
{
	
	var usr = escape(document.getElementById('login').value);
	var psw = escape(document.getElementById('password').value);
	var texto = document.getElementById('opinion').value;
	var opinion = escape(document.getElementById('opinion').value);
	var idCaso = escape(document.getElementById('idCaso').value);
	var error = false;
	
	//esconder todos los errores al dar click
	document.getElementById('errorUsuario').style.display='none';
	document.getElementById('errorClave').style.display='none';
	document.getElementById('errorOpinion').style.display='none';
	document.getElementById('errorFormLogin').style.display='none';			
	document.getElementById('errorIntentaDeNuevo').style.display='none';
	
	if (usr=='')
	{
		document.getElementById('errorUsuario').style.display='block';
		error=true;
		
	}
	if(psw =='')	
	{
		document.getElementById('errorClave').style.display='block';
		error=true;
	}	
	if(opinion =='')
	{
		document.getElementById('errorOpinion').style.display='block';
		error=true;
	}
	/*if(opinion.length >100)
	{
		document.getElementById('errorOpinionG').style.display='block';
		error=true;
	}*/
	if (error)
	{
		document.getElementById('errorFormLogin').style.display='block';			
		return;
	}
	else
	{
	
		//show cargando
		document.getElementById('cargando').style.display='block';

		var post = 'usr='+usr+'&psw='+psw+'&opinion='+opinion+'&idCaso='+idCaso;
	
	
		//ask server if user is logged in:
		var xmlhttp = new XMLHttpRequest();
		xmlhttp.open('POST', 'caso.php?action=loginUser', true);
		xmlhttp.onreadystatechange = function()
		{
			if (xmlhttp.readyState == 4)
			{
				//alert(xmlhttp.responseText);
				//if user is logged in, show comment form
				if (xmlhttp.status == 200 && xmlhttp.responseText.indexOf('true')!=-1 )
				{
					//hide cargando
					document.getElementById('cargando').style.display='none';
	
					//clear form
	
					//show form
					document.getElementById('ExpandOpinar').style.display='none';
	
					//hide form usr and psw
					document.getElementById('PestRegistro').style.display='none';
					
					//necesito saber cual es el el nombre del usuario y su profesion
					//para poner el comentario en el foro
					comentario(usr, idCaso, texto);
					
					//show thanks man
					document.getElementById('success').style.display='block';
					setTimeout('document.getElementById(\'success\').style.display=\'none\';',2000);
					

	
				}
				//else user not logged in
				else if(xmlhttp.status == 200 && xmlhttp.responseText.indexOf('false')!=-1)
				{
					//hide cargando
					document.getElementById('cargando').style.display='none';
	
					//hide login form
					document.getElementById('ExpandOpinar').style.display='block';
										
					//usuario ya existe
					document.getElementById('errorIntentaDeNuevo').style.display='block';
					
	
				}
				//else error
				else
				{
					//hide cargando
					document.getElementById('cargando').style.display='none';
					
					//show error man
					document.getElementById('error').style.display='block';
					setTimeout('document.getElementById(\'error\').style.display=\'none\';',2000);
				}
			}
		}

	//Send the post request
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send(post);
	
	}
	
	
	
	
}


function register()
{
	var password =  escape(document.getElementById('passRegister').value);
	var email =  (document.getElementById('email').value);
	var nombre = escape(document.getElementById('nombreRegistro').value);
	var profesion = escape(document.getElementById('profesionRegister').value);
	var login = escape(document.getElementById('loginNew').value);
	var apellido = escape(document.getElementById('apellido').value);
	var checkEmail = escape(document.getElementById('checkEmail').value);
	var error = false;
	
	//esconder todos los errores cada vez que se da click
	document.getElementById('errorNombre').style.display='none';
	document.getElementById('errorApellido').style.display='none';
	document.getElementById('errorProfesion').style.display='none';
	document.getElementById('errorEmail').style.display='none';
	document.getElementById('errorConfirmEmail').style.display='none';
	document.getElementById('errorUsuarioRegister').style.display='none';
	document.getElementById('errorEmailsDiferentes').style.display='none';
	document.getElementById('errorClaveRegister').style.display='none';
	document.getElementById('errorFormRegister').style.display='none';			
	document.getElementById('errorUsuarioExiste').style.display='none';
	
	if (nombre=='')
	{
		document.getElementById('errorNombre').style.display='block';
		error=true;
	}
	if(apellido =='')	
	{
		document.getElementById('errorApellido').style.display='block';
		error=true;
	}	
	if(profesion =='-1')
	{
		document.getElementById('errorProfesion').style.display='block';
		error=true;
	}
	if(!re.test(email))
	{
		document.getElementById('errorEmail').style.display='block';
		error=true;
	}
	if(!re.test(checkEmail))
	{
		document.getElementById('errorConfirmEmail').style.display='block';
		error=true;
	}
	if(login =='')
	{
		document.getElementById('errorUsuarioRegister').style.display='block';
		error=true;
	}
	if(password =='')
	{
		document.getElementById('errorClaveRegister').style.display='block';
		error=true;
	}
	if(email!=checkEmail)
	{
		document.getElementById('errorEmailsDiferentes').style.display='block';
		error=true;
	}
	if (error)
	{
		document.getElementById('errorFormRegister').style.display='block';			
		return false;
	}
	else
	{
		//show cargando
		document.getElementById('cargando').style.display='block';
		
		//build the post for sending it to the server
		var post = 'password='+password+'&email='+email+'&nombre='+nombre+'&profesion='+profesion+'&login='+login+'&apellido='+apellido+'&checkEmail='+checkEmail;
	
		//ask server if user is logged in:
		var xmlhttp = new XMLHttpRequest();
		xmlhttp.open('POST', 'caso.php?action=logNewUser', true);
		xmlhttp.onreadystatechange = function()
		{
			if (xmlhttp.readyState == 4)
			{
				//if user is logged in, show comment form
				if (xmlhttp.status == 200 && xmlhttp.responseText.indexOf('true')!=-1)
				{
					//hide cargando
					document.getElementById('cargando').style.display='none';
					
					//hide form usr and psw
					document.getElementById('ExpandRegistro').style.display='none';
					
					//clear form
					
					//show form
					document.getElementById('ExpandOpinar').style.display='block';
					
					//le coloco los datos que escribio al registrarse en el formulario de opinion
					document.getElementById('login').value = login;
					document.getElementById('password').value = password;
					document.getElementById('opinion').focus();
					
					/*var form = document.getElementById('formLogin');
					form.opinion.focus();*/
					
					//limpio los errores del formulario si los hay
					document.getElementById('errorUsuario').style.display='none';
					document.getElementById('errorClave').style.display='none';
					document.getElementById('errorOpinion').style.display='none';
					document.getElementById('errorFormLogin').style.display='none';
					document.getElementById('errorIntentaDeNuevo').style.display='none';

	
				}
				//else user not logged in
				else if(xmlhttp.status == 200 && xmlhttp.responseText.indexOf('false')!=-1)
				{
					//hide cargando
					document.getElementById('cargando').style.display='none';
	
					//show login form
					document.getElementById('errorUsuarioExiste').style.display='block';
	
					//hide login form
					//document.getElementById('formLogin').style.display='none';*/
				}
				//else error
				else
				{
					//show error man
					document.getElementById('error').style.display='block';
					setTimeout('document.getElementById(\'error\').style.display=\'none\';',2000);
				}
			}
		}
	
		//Send the post request
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlhttp.send(post);
	}
}

function initVerMas()
{
	var opiniones = document.getElementById('opiniones');
	var botones = opiniones.getElementsByTagName('a');
	var l = botones.length;
	for(var i=0; i<l; i++)
	{
		//if id is btnOpinionCortado
		if( botones[i].id && botones[i].id.indexOf('btnOpinionCortado')!=-1 )
		{

			addEvent(botones[i], 'click', showOpinion, false);
		}
		//if id is btnOpinionTodo
		else if( botones[i].id && botones[i].id.indexOf('btnOpinionTodo')!=-1 )
		{
			addEvent(botones[i], 'click', hideOpinion, false);
		}
	}
}

function showRegister()
{
	//hide login
	document.getElementById('ExpandOpinar').style.display='none';
	
	//hiede btn register
	document.getElementById('PestRegistro').style.display='none';
	

	//show register
	document.getElementById('ExpandRegistro').style.display='block';
}


function showOpinion(e)
{
	//get clicked button.
	if(window.event)
		var target = window.event.srcElement;
	else
		var target = e.target;

	//get id of clicked button
	var id = target.id.substring(17,target.id.length);

	//hide opCortado
	document.getElementById('opCortado'+id).style.display='none';

	//show opTodo
	document.getElementById('opTodo'+id).style.display='block';
}

function hideOpinion(e)
{
	//get clicked button.
	if(window.event)
		var target = window.event.srcElement;
	else
		var target = e.target;

	//get id of clicked button
	var id = target.id.substring(14,target.id.length);

	//hide opTodo
	document.getElementById('opTodo'+id).style.display='none';

	//show opCortado
	document.getElementById('opCortado'+id).style.display='block';
}

//request comments to server
function showAllComments()
{
	//show cargando
	document.getElementById('cargando').style.display='block';

	//post data to server
	var post = 'idCaso='+idCaso;

	var xmlhttp = new XMLHttpRequest();
	xmlhttp.open('POST', 'caso.php?action=getComments', true);
	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4)
		{
			//alert(xmlhttp.responseText);
			if (xmlhttp.status == 200 && xmlhttp.responseText.indexOf(ERROR_STR)==-1 )
			{
				//show comments
				document.getElementById('masComentarios').style.display='block';
				
				//hide cargando
				document.getElementById('cargando').style.display='none';
				
				//la respuesta que biene del servidor se la ponemos al div "masComentarios"
				document.getElementById('masComentarios').innerHTML=xmlhttp.responseText;
			}
			else
			{
				//hide cargando
				document.getElementById('cargando').style.display='none';

				//show error
				document.getElementById('error').style.display='block';

				//hide error message in a few seconds
				setTimeout('document.getElementById(\'error\').style.display=\'none\';',5000);
			}
		}
	}

	//Send the post request
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send(post);
	//}
}

function comentario(usr, idCaso, texto)
{
	
	var post = 'usr='+usr+'&idCaso='+idCaso;
	
	var xmlhttp = new XMLHttpRequest();
	xmlhttp.open('POST', 'caso.php?action=userNameProfession', true);
	xmlhttp.onreadystatechange = function()
	{
		if (xmlhttp.readyState == 4)
		{
			//alert(xmlhttp.responseText);
			if (xmlhttp.status == 200 && xmlhttp.responseText.indexOf(ERROR_STR)==-1 )
			{
				//recibo la respuesta del servidor
				var received = eval('(' + xmlhttp.responseText + ')');	
				
				//me ubico en donde quiero color los nuevos elementos
				var ul = document.getElementById('comm');
				
				//creo los elementos para el nuevo cometario
				var li = document.createElement('li');
				var h4 = document.createElement('h4');
				var span = document.createElement('span');
				
				//coloco los valores que me devolvio el servidor
				h4.innerHTML= received[0]['nombre']+', '+received[0]['profesion']+'<br>';
				span.innerHTML=texto;
				
				//les doy papas a los nuevos elementos
				li.appendChild( h4 );
				li.appendChild( span );
				ul.appendChild( li );
				
			}
			else
			{
				//hide cargando
				document.getElementById('cargando').style.display='none';

				//show error
				document.getElementById('error').style.display='block';

				//hide error message in a few seconds
				setTimeout('document.getElementById(\'error\').style.display=\'none\';',5000);
			}
		}
		
	}
	
	//Send the post request
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send(post);
		

	
}