
function loginGeneral(userName,password,fromIndex){
	var urlServlet = '/common/project/resources/servlet.php';
	var paramsGET = "?func=login&userName="+userName+"&password="+password;
	if(fromIndex){
		paramsGET = paramsGET+"&fromIndex="+fromIndex;
	}
	callAjax(loginCallback, paramsGET, urlServlet);
	
	return false;
}

function login(fromIndex){
	var userName = document.getElementById('userNameLoginBL').value;
	var password = document.getElementById('passwordLoginBL').value;
	return loginGeneral(userName,password,fromIndex);
}


function loginCopied(fromIndex){
	var userName = document.getElementById('userNameLoginBLCopied').value;
	var password = document.getElementById('passwordLoginBLCopied').value;
	return loginGeneral(userName,password,fromIndex);
}

function loginCallback(xmlhttp){
	var responseE = xmlhttp.responseXML.getElementsByTagName("response")[0];
	var response = responseE.getAttribute("value");
	if(response == 'fromIndex'){
		//redirect to user home
		window.location = "/publications.html";
	}
	else {
		if(response == "1"){
			userLoggedReload(); //ver loginFunctions.js
		}else{
			alert("Nombre de usuario o Password incorrectos.");
		}
	}
}



function expandSelfComments(userId,text,limit,despl,idLink){
	var paramsGET = "?func=expandSelfComments&userId="+userId+"&text="+text+"&limit="+limit+"&despl="+despl+"&idLink="+idLink;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(expandSelfCommentsCallback, paramsGET, urlServlet);
	despl = despl*1+5;
	document.getElementById('selfCommentsButton').innerHTML = "<a href=\"javascript:expandSelfComments('"+userId+"','"+text+"','"+limit+"','"+despl+"','"+idLink+"')\">+ publicaciones de mis amigos</a>";
}

function expandSelfCommentsCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	if(tmp = getNodeContent(xml.getElementsByTagName("response")[0]) && tmp.length > 3){
		document.getElementById('selfComments').innerHTML += getNodeContent(xml.getElementsByTagName("response")[0]);
	}
}



function logout(){
	var urlServlet = '/common/project/resources/servlet.php';
	var paramsGET = "?func=logout";
	callAjax(logoutCallback, paramsGET, urlServlet);
}

function logoutCallback(xmlhttp){
	document.location = '/index.html';
}

function ocultaMenus (totalitems){
	//primero ocultamos todos
	for (i=0; i<totalitems; i++){
		layr = 'capaFlotante'+i;
		titulo = 'titulo'+i;
		document.getElementById(layr).style.display = 'none';
		document.getElementById(titulo).style.position = 'static';
		document.getElementById(titulo).style.zIndex = 0;
	}
}

function desplegaMenu(valor,totalitems){
	//miramos si el form correspondiente a la capa referenciada por 'valor' tiene el estilo aplicado
	if (banderas[valor] == false){
		//aplicamos el estilo
		//checkboxesCfe.init({spacer: "/images/spacer.gif", scope: $('formMenu'+valor)});
		banderas[valor] = true;
	}
	
	//primero ocultamos todos
	for (i=0; i<=totalitems; i++){
		layr = 'capaFlotante'+i;
		titulo = 'titulo'+i;
		document.getElementById(layr).style.display = 'none';
		document.getElementById(titulo).style.position = 'static';
		document.getElementById(titulo).style.zIndex = 0;
	}
	
	//ocultamos todos los criterios desplegados
	for (i=0; i<=totalitems; i++){
		layr = 'capaCriterios'+i;
		if(document.getElementById(layr)){
			document.getElementById(layr).style.display = 'none';
		}
	}
	
	//desplegamos la capa con el valor correspondiente
	var menu = layr = 0;
	menu = 'op'+valor;
	titulo = 'titulo'+valor;
	layr = 'capaFlotante'+valor;
	coors = findPos(document.getElementById(menu));
	document.getElementById(titulo).style.position = 'relative';
	document.getElementById(titulo).style.zIndex = 15;
	//document.getElementById(layr).style.left = coors[0]+5+'px';
	document.getElementById(layr).style.left = '6px';
	document.getElementById(layr).style.top = (valor*17+34)+'px';
	document.getElementById(layr).style.display = 'block';
}

function desplegaCriterios(capaFlotante){
	//ocultamos la capa correspondiente
	layr = 'capaFlotante'+capaFlotante;
	titulo = 'titulo'+capaFlotante;
	document.getElementById(layr).style.display = 'none';
	//document.getElementById(titulo).style.position = 'static';
	document.getElementById(titulo).style.zIndex = 0;
	
	//muestra el criterio correspondiente
	layr = 'capaCriterios'+capaFlotante;
	element = document.getElementById('titulo'+capaFlotante).style.margin="10px 0px 0px 0px";
	document.getElementById(layr).style.display = 'block';
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}

	return [curleft,curtop];
}




function showCriterios(idCat,idPhoto,idCatTotales,valor,photoType){
	//miramos si el form correspondiente a la capa referenciada por 'valor' tiene el estilo aplicado
	if (banderas[valor] == false){
		//aplicamos el estilo
		banderas[valor] = true;
	}

	//ocultamos todos
	for(var i = 0; i<idCatTotales;i++){
		jQuery('#criterioList_'+idPhoto+'_'+i+"_"+photoType).hide();
	}
	//desplegamos la capa correspondiente
	jQuery('#criterioList_'+idPhoto+'_'+idCat+"_"+photoType).show();
}


function writeDetallesCategoria(idPhotoType,idPhoto,conCats,callback){
	/*
	 * las fotos de tipo diseño gráfico son un caso especial porque 
	 * no se puede elegir el estilo "sepia" para ellas
	 * tenemos que buscar todos los html con este estilo
	 *
		<div class="sepiaRadio">
			<div class="detallesFormatoRadio">
				<input type="radio" class="crirHiddenJS" value="3" id="photoStyle_22996_3" name="photoStyle_22996"><label for="photoStyle_22996_3">Sepia</label>
			</div>
		</div>
	 * 
	 * y ocultarlos o mostrarlos si no es diseño
	 * 
	 * Si el usuario ha seleccionado diseño también tenemos que deschequear el radio
	 * la validación del formulario ya se encargará de que tenga que seleccionar una de las otras dos opciones de estilo 
	 */
	
	
	if(idPhotoType == 3){
		jQuery('.sepiaRadio').hide();
		jQuery('.sepiaRadio .crirHiddenJS').attr("checked",false);
	}
	else {
		jQuery('.sepiaRadio').show();
	}
	var paramsGET = "?func=writeDetallesCategoria&idPhoto="+idPhoto+"&idPhotoType="+idPhotoType+"&conCats="+conCats+"&callback="+callback;
	var urlServlet = '/common/project/resources/servlet.php';
		
	callAjax(writeDetallesCategoriaCallback, paramsGET, urlServlet);
}

function writeDetallesCategoriaCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	
	idPhoto = getNodeContent(xml.getElementsByTagName("idPhoto")[0]);
	callback = getNodeContent(xml.getElementsByTagName("callback")[0]);
	value = getNodeContent(xml.getElementsByTagName("response")[0]);
	
	
	
	document.getElementById('catAForPhoto_'+idPhoto).innerHTML = value;
	if(callback){
		eval(callback);
	}
}


function isEmptyRadioButtonPhoto(formObjectName){
	var idCat = null;
	var formObject = document.getElementsByName(formObjectName);
	clearError(formObjectName);
	if(formObject && !formObject.disabled){
		var num = formObject.length;
		var i = 0;
		var checked = false;
		while ((i < num) && !checked){
			if (formObject[i].checked == true){	
				idCat = formObject[i].value;
				checked = true;
			}else{
				i++;
			}
		}
	}
	
	if (idCat == null) {
		showError(formObjectName, "Este campo es obligatorio.");
		setFocus(formObject[0]);
	}
	
	return idCat;
	
}

function validaPhotoForm(idPhoto){
	var ok;
	var idCat = isEmptyRadioButtonPhoto('catA_'+idPhoto);
	if (idCat == null){ 
		ok = false;
	}else{
		//catsC = document.getElementsByName('catC_'+idPhoto+'_'+idCat);
		//catsC = 'catC_'+idPhoto+'_'+idCat;
		ok = !isEmptyCheckBoxGroup(idPhoto,idCat);
		if (ok == false){
			showError('catA_'+idPhoto, "Este campo es obligatorio.");
			var objectA = document.getElementsByName('catA_'+idPhoto)
			setFocus(objectA[0]);
		}				
	}
	ok = !isEmptyRadioButton('photoType_'+idPhoto) && ok;	
	ok = !isEmptyRadioButton('photoStyle_'+idPhoto) && ok;					
	ok = !isEmptyRadioButton('photoPhormat_'+idPhoto) && ok;	
	ok = !isEmptyField('titleES_'+idPhoto) && ok;	
	ok = !isEmptyField('keywords_'+idPhoto) && ok;	
	
	return ok;
}
			
/*en esta función ok se usa como error y !ok como exito, ni idea de por que*/
function isEmptyCheckBoxGroup(idPhoto,idA){
	var ok = true;
	var numC = document.getElementById('numC_'+idPhoto+'_'+idA);
	if(!numC){
		return !ok;
	}
	var num = numC.value;
	var i=0;
	var checked = false;
	while ((i < num) && (!checked)){
		var checkBox = document.getElementsByName('catC_'+idPhoto+'_'+idA+'_'+i);
		checked = checkBox[0].checked;					
		i++;
	}
	
	if (checked === true) ok = false;
			
	return ok;
	
}

function linkMenuUser(destino){
	var url = '/'+destino+'.html';
	document.location = url;
}

function linkMenuUserFriends(destino, queryString){
	var url = '/'+destino+'.html'+queryString;
	document.location = url;
}

function cancelPhoto(id){
	var message = ' Realmente quieres borrar esta imagen?';
	if(confirm(message)){
		document.location = "?upload=deleteOne&id="+id;
	}
}

function cancelPhotoStep2(id){
	var message = ' Realmente quieres borrar esta imagen?';
	if(confirm(message)){
		document.location = "?upload=deleteOneStep2&id="+id;
	}
}

function popup(url,width,height){
	window.open('/'+url, '', 'menubar=no, width='+width+', height='+height+', toolbar=no, resizable=yes, scrollbars=yes');
}

//inicializamos el array de control
function initBanderas(totalItems){
	banderas = new Array(totalItems);
	for (var i = 0; i < totalItems; i++){
		banderas[i] = false;
	}
}

//limpia de formularios que engloban
function limpiaPadres (){
	document.write('<form></form>');
}

//aplicamos los estilos selectivamente
function aplicaEstiloBasics (valor){
	//radiosCfe = new cfe.base();
	//radiosCfe.unregisterModule("checkbox");
	//radiosCfe.init({spacer: "/images/spacer.gif", scope: $('formBasics'+valor)});
}

function aplicaEstiloMenu (valor){
	//radiosCfe = new cfe.base();
	//radiosCfe.unregisterModule("checkbox");
	//radiosCfe.init({spacer: "/images/spacer.gif", scope: $('op'+valor)});
}


function checkLength(what,maxKeys,txtmsg) {
	var str = new String(what.value);
	var len = str.length;
	var showstr = "("+len+")";
	if (len > maxKeys) showstr = "<b style='color:red;'>"+showstr+"</b>";
	document.getElementById(txtmsg).innerHTML = showstr;
}

function clickclear(thisfield, defaulttext) {
 if (thisfield.value == defaulttext) {
 thisfield.value = "";
 }
}

function clickrecall(thisfield, defaulttext) {
 if (thisfield.value == "") {
 thisfield.value = defaulttext;
 }
}

function validateForoSearchForm(){
	if (document.busqueda.search.value == ''){
		return(false);
	}else{
		return(true);
	}
	return(false);
}

function validateContestSearchForm(){
	if (document.busqueda.search.value == ''){
		return(false);
	}else{
		return(true);
	}
	return(false);
}

function validateComment(form,id){
	var formObject = document.getElementById(id);
	formObject.value = ltrim(formObject.value);
	if(formObject.value==""){
		alert("Este campo es obligatorio.");
		setFocus(formObject);
	}else{
		blittons = form.getElementsByClassName('blitton');
		blitton = blittons[0];
		blitton.style.display='none';
		form.submit();
	}
}

function validateCommentMuro(form,id,reservedText,maxLength){
	var formObject = document.getElementById(id);
	formObject.value = ltrim(formObject.value);
	
	if (maxLength > 0 && formObject.value.length > maxLength){
		if (undefined != document.getElementById('maxCharError'+id)){
			document.getElementById('maxCharError'+id).style.display="block";
		}
		return false;
	}
	else {
		if (undefined != document.getElementById('maxCharError'+id)){
			document.getElementById('maxCharError'+id).style.display="none";
		}
	}
	
	if (formObject.value== reservedText){
		return false;
	}
	
	if(formObject.value==""){
		alert("Este campo es obligatorio.");
		setFocus(formObject);
	}else{
		blittons = form.getElementsByClassName('blitton');
		blitton = blittons[0];
		blitton.style.display='none';
		ajaxPost(form)
		
	}
}

function expandSelfComments(userId,text,limit,despl,idLink){
	var paramsGET = "?func=expandSelfComments&userId="+userId+"&text="+text+"&limit="+limit+"&despl="+despl+"&idLink="+idLink;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(expandSelfCommentsCallback, paramsGET, urlServlet);
	despl = despl*1+5;
	document.getElementById('selfCommentsButton').innerHTML = "<a href=\"javascript:expandSelfComments('"+userId+"','"+text+"','"+limit+"','"+despl+"','"+idLink+"')\">+ publicaciones de mis amigos</a>";
}

function expandSelfCommentsCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	if(xml.getElementsByTagName("ocultarId")[0]){
		jQuery('#'+getNodeContent(xml.getElementsByTagName("ocultarId")[0])).hide();
	}
	if(tmp = getNodeContent(xml.getElementsByTagName("response")[0]) && tmp.length > 3){
		document.getElementById('selfComments').innerHTML += getNodeContent(xml.getElementsByTagName("response")[0]);
	}
}

function expandSelfPublications(userId,text,limit,despl,idLink){
	var paramsGET = "?func=expandSelfPublications&userId="+userId+"&text="+text+"&limit="+limit+"&despl="+despl+"&idLink="+idLink;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(expandSelfPublicationsCallback, paramsGET, urlServlet);
	despl = despl*1+5;
	document.getElementById('selfPublicationsButton').innerHTML = "<a href=\"javascript:expandSelfPublications('"+userId+"','"+text+"',"+limit+","+despl+",'"+idLink+"')\">+ publicaciones de mis amigos</a>";
}

function expandSelfPublicationsCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	if(xml.getElementsByTagName("ocultarId")[0]){
		jQuery('#'+getNodeContent(xml.getElementsByTagName("ocultarId")[0])).hide();
	}
	if(tmp = getNodeContent(xml.getElementsByTagName("response")[0]) && tmp.length > 3){
		document.getElementById('selfPublications').innerHTML += getNodeContent(xml.getElementsByTagName("response")[0]);
	}
}

function expandFriendComments(userId,text,limit,despl,idLink){
	var paramsGET = "?func=expandFriendComments&userId="+userId+"&text="+text+"&limit="+limit+"&despl="+despl+"&idLin="+idLink;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(expandFriendCommentsCallback, paramsGET, urlServlet);
	despl = despl*1+5;
	document.getElementById('friendCommentsButton').innerHTML = "<a href=\"javascript:expandFriendComments('"+userId+"','"+text+"','"+limit+"','"+despl+"','"+idLink+"')\">+ publicaciones de mis amigos</a>";
}

function expandFriendCommentsCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	if(xml.getElementsByTagName("ocultarId")[0]){
		jQuery('#'+getNodeContent(xml.getElementsByTagName("ocultarId")[0])).hide();
	}
	if(tmp = getNodeContent(xml.getElementsByTagName("response")[0]) && tmp.length > 3){
		document.getElementById('friendComments').innerHTML += getNodeContent(xml.getElementsByTagName("response")[0]);
	}
}

function expandFriendForoPosts(userId,text,limit,despl,idLink){
	var paramsGET = "?func=expandFriendForoPosts&userId="+userId+"&text="+text+"&limit="+limit+"&despl="+despl+"&idLink="+idLink;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(expandFriendForoPostsCallback, paramsGET, urlServlet);
	despl = despl*1+5;
	document.getElementById('friendForoPostsButton').innerHTML = "<a href=\"javascript:expandFriendForoPosts('"+userId+"','"+text+"','"+limit+"','"+despl+"','"+idLink+"')\">+ publicaciones de mis amigos</a>";
}

function expandFriendForoPostsCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	if(xml.getElementsByTagName("ocultarId")[0]){
		jQuery('#'+getNodeContent(xml.getElementsByTagName("ocultarId")[0])).hide();
	}
	if(tmp = getNodeContent(xml.getElementsByTagName("response")[0]) && tmp.length > 3){
		document.getElementById('friendForoPosts').innerHTML += getNodeContent(xml.getElementsByTagName("response")[0]);
	}
}


function expandSelfForoPosts(userId,text,limit,despl,idLink){
	var paramsGET = "?func=expandSelfForoPosts&userId="+userId+"&text="+text+"&limit="+limit+"&despl="+despl+"&idLink="+idLink;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(expandSelfForoPostsCallback, paramsGET, urlServlet);
	despl = despl*1+5;
	document.getElementById('selfForoPostsButton').innerHTML = "<a href=\"javascript:expandSelfForoPosts('"+userId+"','"+text+"','"+limit+"','"+despl+"','"+idLink+"')\">+ publicaciones de mis amigos</a>";
}

function expandSelfForoPostsCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	if(xml.getElementsByTagName("ocultarId")[0]){
		jQuery('#'+getNodeContent(xml.getElementsByTagName("ocultarId")[0])).hide();
	}
	if(tmp = getNodeContent(xml.getElementsByTagName("response")[0]) && tmp.length > 3){
		document.getElementById('selfForoPosts').innerHTML += getNodeContent(xml.getElementsByTagName("response")[0]);
	}
}



function expandFriendPublications(userId,text,limit,despl,idLink){
	var paramsGET = "?func=expandFriendPublications&userId="+userId+"&text="+text+"&limit="+limit+"&despl="+despl+"&idLink="+idLink;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(expandFriendPublicationsCallback, paramsGET, urlServlet);
	despl = despl*1+5;
	document.getElementById('friendPublicationsButton').innerHTML = "<a href=\"javascript:expandFriendPublications('"+userId+"','"+text+"',"+limit+","+despl+",'"+idLink+"')\">+ publicaciones de mis amigos</a>";
}

function expandFriendPublicationsCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	if(xml.getElementsByTagName("ocultarId")[0]){
		jQuery('#'+getNodeContent(xml.getElementsByTagName("ocultarId")[0])).hide();
	}
	var temp = getNodeContent(xml.getElementsByTagName("response")[0]);
	if(temp.length > 3){
		document.getElementById('friendPublications').innerHTML += getNodeContent(xml.getElementsByTagName("response")[0]);
	}
}

function expandFriendPhotos(userId,text,limit,despl,idLink){
	var paramsGET = "?func=expandFriendPhotos&userId="+userId+"&text="+text+"&limit="+limit+"&despl="+despl+"&idLink="+idLink;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(expandFriendPhotosCallback, paramsGET, urlServlet);
	despl = despl*1+5;
	document.getElementById('friendPhotosButton').innerHTML = "<a href=\"javascript:expandFriendPhotos('"+userId+"','"+text+"','"+limit+"','"+despl+"','"+idLink+"')\">+ publicaciones de mis amigos</a>";
}

function expandFriendPhotosCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	if(xml.getElementsByTagName("ocultarId")[0]){
		jQuery('#'+getNodeContent(xml.getElementsByTagName("ocultarId")[0])).hide();
	}
	if(tmp = getNodeContent(xml.getElementsByTagName("response")[0]) && tmp.length > 3){
		document.getElementById('friendPhotos').innerHTML += getNodeContent(xml.getElementsByTagName("response")[0]);
	}
}

function expandFriendParticipations(userId,text,limit,despl,idLink){
	var paramsGET = "?func=expandFriendParticipations&userId="+userId+"&text="+text+"&limit="+limit+"&despl="+despl+"&idLink="+idLink;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(expandFriendParticipationsCallback, paramsGET, urlServlet);
	despl = despl*1+5;
	document.getElementById('friendParticipationsButton').innerHTML = "<a href=\"javascript:expandFriendParticipations('"+userId+"','"+text+"','"+limit+"','"+despl+"','"+idLink+"')\">+ publicaciones de mis amigos</a>";
}

function expandFriendParticipationsCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	
	if(xml.getElementsByTagName("ocultarId")[0]){
		jQuery('#'+getNodeContent(xml.getElementsByTagName("ocultarId")[0])).hide();
	}
	if(tmp = getNodeContent(xml.getElementsByTagName("response")[0]) && tmp.length > 3){
		document.getElementById('friendParticipations').innerHTML += getNodeContent(xml.getElementsByTagName("response")[0]);
	}
}


function ajaxPost(form){
	document.getElementById('loadingHolder').style.display="block";
	var paramString = "";
	
	var text = form.comment.value;
	//TODO hacer que los enters se guarden en base de datos
	//text = text.replace("\n","");
	
	paramString += "?comment="+text;
	paramString += "&func="+form.func.value;
	paramString += "&targetId="+form.targetId.value;
	paramString += "&userId="+form.userId.value;
	paramString += "&idToRefresh="+form.idToRefresh.value
	paramString += "&functionToExecute="+form.functionToExecute.value;
	if(form.param){
		paramString += "&param="+form.param.value;
	}
	if(form.param1){
		paramString += "&param1="+form.param1.value;
	}
	if(form.param2){
		paramString += "&param2="+form.param2.value;
	}
	if(form.param3){
		paramString += "&param3="+form.param3.value;
	}
	if(form.param4){
		paramString += "&param4="+form.param4.value;
	}
	
	var paramsGET = paramString;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(ajaxPostPublicationsCallback, paramsGET, urlServlet);
	return false;
}

function ajaxPostPublicationsCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	var data = xml.getElementsByTagName("publication")[0];
	var text = getNodeContent(data);
	var idToRefresh = data.getAttribute("idToRefresh");
	window.location.reload();
	//document.getElementById(idToRefresh).innerHTML = text;
	//document.getElementById('loadingHolder').style.display="none";
	
}

function toggleImageNavigation(){
	element = document.getElementById("imageNavigation");
	if(element.style.display=="none"){
		element.style.display = "block";
	}
	else {
		element.style.display = "none";
	}
}

function expandReplyToReply(id){
	jQuery.fn.reverse = [].reverse;
	
	var nToShow = 5;
	var nShownThisClick = 0;
	
	var replyToReplies = jQuery('#'+id+' .replyToReply:hidden');
	replyToReplies = replyToReplies.reverse(); 
	replyToReplies.each(
		function(){
			
			//mostramos n
			if(nShownThisClick < nToShow){
				jQuery(this).show();
				nShownThisClick++;
				
				var nHidden = jQuery('#'+id+' .replyToReply:hidden').size();
				//cambiamos el nº de mensajes que muestra el link de expndir
				if(nHidden == 1){
					//si queda solo uno cambiamos toda la traducción (de plural a singular)
					//jQuery('#'+id+' .expandReplyToReply SPAN').html('');
					jQuery('#'+id+' .expandReplyToReply A').html('+ Mostrar <span>1</span> commentario anterior');
				}
				else {
					//si queda más de uno no cambiamos la traducción
					jQuery('#'+id+' .expandReplyToReply SPAN').html(nHidden);
				}
				
				
				//si no hay más que mostrar ocultamos el link de expand
				if(nHidden == 0){
					jQuery('#'+id+' .expandReplyToReply').hide();
				}
			}
		}
	);
}


function expandParticipationReply(id){
	jQuery.fn.reverse = [].reverse;
	
	var nToShow = 5;
	var nShownThisClick = 0;
	
	var replyToReplies = jQuery('#'+id+' .replyPost:hidden');
	replyToReplies = replyToReplies.reverse(); 
	replyToReplies.each(
		function(){
			
			//mostramos n
			if(nShownThisClick < nToShow){
				jQuery(this).show();
				nShownThisClick++;
				
				var nHidden = jQuery('#'+id+' .replyPost:hidden').size();
				//cambiamos el nº de mensajes que muestra el link de expndir
				jQuery('#'+id+' .expandParticipationReply SPAN').html(nHidden-1);
				
				//si no hay más que mostrar ocultamos el link de expand
				if(nHidden == 0){
					jQuery('#'+id+' .expandParticipationReply').hide();
				}
			}
		}
	);
}

function expandCommentReply(id){
	jQuery.fn.reverse = [].reverse;
	
	var nToShow = 5;
	var nShownThisClick = 0;
	
	var replyToReplies = jQuery('#'+id+' .listitem:hidden');
	replyToReplies = replyToReplies.reverse(); 
	replyToReplies.each(
		function(){
			
			//mostramos n
			if(nShownThisClick < nToShow){
				jQuery(this).show();
				nShownThisClick++;
				
				var nHidden = jQuery('#'+id+' .listitem:hidden').size();
				//cambiamos el nº de mensajes que muestra el link de expndir
				jQuery('#'+id+' .expandCommentReply SPAN').html(nHidden-1);
				
				//si no hay más que mostrar ocultamos el link de expand
				if(nHidden == 0){
					jQuery('#'+id+' .expandCommentReply').hide();
				}
			}
		}
	);
}

function expandComment(id){
	document.getElementById(id+'Short').style.display = "none";
	document.getElementById(id+'Long').style.display = "inline";
}


function showGuideInfo(id){
	var paramsGET = "?func=showGuideInfo&id="+id;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(showGuideInfoCallback, paramsGET, urlServlet);
}

function showGuideInfoCallback(xmlhttp){
	xml = xmlhttp.responseXML;
	if(xml.getElementsByTagName("id")[0]){
		document.getElementById('guideInfo'+getNodeContent(xml.getElementsByTagName("id")[0])).innerHTML = getNodeContent(xml.getElementsByTagName("response")[0]);
	}
}


/* STAR RATING*/
function rate(participationId,rating){
	var paramsGET = "?func=rate&participationId="+participationId+"&rating="+rating;
	var urlServlet = '/common/project/resources/servlet.php';
	callAjax(rateCallback, paramsGET, urlServlet);	
}

function rateCallback(xmlhttp){
	var xml = xmlhttp.responseXML;
	var response = getNodeContent(xml.getElementsByTagName("response")[0]);
	var success = getNodeContent(xml.getElementsByTagName("success")[0]);
	var rate = getNodeContent(xml.getElementsByTagName("rate")[0]);
	var participationId = getNodeContent(xml.getElementsByTagName("participationId")[0]);
	jQuery('#starsMessages').text(response);

	if(success){
		showVoteFeedback(response,'ok');
	}
	else {
		showVoteFeedback(response,'ko');
	}
	
	/*
	//fade
	setTimeout(function(){
		jQuery("#starsMessages").fadeOut(1000);
	}, 2000);

	setTimeout(function(){
		jQuery(".rate .normal").fadeOut(1000);
		setTimeout(function(){
			//se ha votado correctamente
			var ui = jQuery("#starsAvg"+participationId).data("stars");
			ui.select(Math.round(rate));
			jQuery(".rate .average").fadeIn(1000);
			jQuery("#holderForParticipation"+participationId+" .normal").html("");
		}, 1000);
	}, 2000);
	*/
}

function showVoteFeedback(text,feed){
	jQuery('#voteFeedback').removeClass('ok');
	jQuery('#voteFeedback').removeClass('ko');
	jQuery('#voteFeedback').removeClass('notice');
	jQuery('#voteFeedback').addClass(feed);
	jQuery('#voteFeedback .feedbackMessage').html(text);
	jQuery('#voteFeedback').show();
}

function closeVoteFeedback(){
	jQuery('#voteFeedback').hide();
}
