/*Function.prototype.executePeriodically = function() {
	
	var s = this;
	
	if(typeof arguments[0].callee != 'undefined') {
		var arguments = arguments[0];
	} else {
		var arguments = arguments;
	}
	
	var delay = arguments[0];
	var timeToExecute = arguments[1];
	this.__INTERVAL__ = null;
	
	var args = [];
	for(var i = 2; i<arguments.length; i++) { args.push(arguments[i]); }
	
	s.apply(this,args);
	
	if(this.__INTERVAL__)
		clearTimeout(this.__INTERVAL__);
	
	if(--timeToExecute > 0) {
		this.__INTERVAL__ = setTimeout(function() {
			arguments[1] = timeToExecute;
			s.executePeriodically(arguments);
		},delay);
	}
	
	return s;
	
}
*/

function toggleRealTaskOptions() {
	
	if($('durationDiv').style.display == 'block' || $('durationDiv').style.display == '') {
		
		$('durationDiv').style.display = "none";
		Effect.Appear($('provinceDiv'));
		
	} else {

		$('provinceDiv').style.display = "none";
		Effect.Appear($('durationDiv'));
		
	}
	
	return true;
	
}

function toggleExtendedTask(taskid) {

	Effect.toggle($('taskinfo-' + taskid), 'blind', {duration: .5});

	if($('task-' + taskid).hasClassName('hidden')) {

		$('expand-icon-' + taskid).src = '/images/icons/control_eject_blue.png';
		$('expand-icon-' + taskid).title = 'Ocultar información';
		$('task-' + taskid).removeClassName('hidden');
		
	} else {
		
		$('expand-icon-' + taskid).src = '/images/icons/control_eject_blue_down.png';
		$('expand-icon-' + taskid).title = 'Mostrar información';
		$('task-' + taskid).addClassName('hidden');
		
	}

	return false;
	
}

function toggleExtendedDonation(donationid) {

	Effect.toggle($('donation-extrainfo-' + donationid), 'blind', {duration: .5});

	if($('donation-' + donationid).hasClassName('hidden')) {

		$('expand-icon-' + donationid).src = '/images/icons/control_eject_blue.png';
		$('expand-icon-' + donationid).title = 'Ocultar información';
		$('donation-' + donationid).removeClassName('hidden');
		
	} else {
		
		$('expand-icon-' + donationid).src = '/images/icons/control_eject_blue_down.png';
		$('expand-icon-' + donationid).title = 'Mostrar información';
		$('donation-' + donationid).addClassName('hidden');
		
	}

	return false;
	
}

function clearSelectElement(elem) {

	while(elem.hasChildNodes()) {
	  elem.removeChild(elem.firstChild);
	}

}

function updateSelectElement(json,elem) {
	
  for(var i=0;i<json.length;i++) {
    var opt = document.createElement('OPTION');
    var text = document.createTextNode(json[i].name);
    opt.setAttribute('value',json[i].id);
    opt.appendChild(text);
    elem.appendChild(opt);
  }

}

function resetSelectElement(elem) {
	
	
}

function showMessage(msg,type,delay) {

	if($('flash')) {
		
		$('flash').innerHTML = "";
		switch(type) {
		
			case "error":
				var header = "<span style='padding-bottom: 4px; font-size: 12px'><img src='/images/icons/error.png' class='icon'>&nbsp;Atención</span><hr width=100% noshade size=1 color='#FFF' />";
				break;
			case "info":
				var header = "<span style='padding-bottom: 4px; font-size: 12px'><img src='/images/icons/information.png' class='icon'>&nbsp;Info</span><hr width=100% noshade size=1 color='#FFF' />";
				break;
			case "ok":
				var header = "<span style='padding-bottom: 4px; font-size: 12px'><img src='/images/icons/accept.png' class='icon'>&nbsp;Correcto</span><hr width=100% noshade size=1 color='#FFF' />";
				break;
			case "ko":
				var header = "<span style='padding-bottom: 4px; font-size: 12px'><img src='/images/icons/delete.png' class='icon'>&nbsp;Error</span><hr width=100% noshade size=1 color='#FFF' />";
				break;
				
		}
		
		var g = new k.Growler();
		g.growl(msg,{header: header,sticky: false, speedin: 0.5});
		/*
		$('flash').innerHTML = content;
		Effect.Appear('flash',{duration: 1.5});
		setTimeout("Effect.Fade('flash',{duration: 1.5})",delay*5);
		*/
		
	}
	
	return false;
	
	
}

function checkUserAuth() {
	
	if(!$('sessioncheck')) {
		new Ajax.Request('/ajax/checkUserAuth',
				{
					method: 'post',
					onSuccess: function(transport) {
						var json = transport.responseText.evalJSON(true);
						if(json["status"] == "KO") {
							showMessage('Tu sesión ha caducado.',5000);
							window.location.replace("/voluntario/index");
						} else {
							timerId = setTimeout('checkUserAuth()',300000);
						}
							
					},
					onFailure: function() {
						showMessage('Error conectando con el servidor.');
					}
				});
	}
	
}


function deleteMessage(messageId) {
	
	$('delete-icon-' + messageId).src = '/images/ajax-loader.gif';
	
	new Ajax.Request('/ajax/deleteMessage',
			{
				method: 'post',
				parameters: {
					messageid: messageId
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se borro el mensaje correctamente.','ok',5000);
						Effect.Fade($('message-' + messageId));
					} else {
						showMessage(json['errorMsg'],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function deleteAttachment(attachmentId) {
	
	$('delete-icon-' + attachmentId).src = '/images/ajax-loader.gif';
	
	new Ajax.Request('/ajax/deleteAttachment',
			{
				method: 'post',
				parameters: {
					attachmentid: attachmentId
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se borro el adjunto correctamente.','ok',5000);
						Effect.Fade($('attachment-' + attachmentId));
						Effect.Appear($('attachment-field-' + attachmentId));
						$('noattachment').value = 1;
					} else {
						showMessage(json['errorMsg'],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function deleteDomain(domainId) {
	
	$('emaildomain-icon-' + domainId).src = '/images/ajax-loader.gif';
	
	new Ajax.Request('/ajax/deleteDomain',
			{
				method: 'post',
				parameters: {
					domainid: domainId
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se borro el dominio correctamente.','ok',5000);
						Effect.Fade($('emaildomain-' + domainId));
					} else {
						showMessage(json['errorMsg'],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function deleteFile(fileId) {
	
	$('fileinfo-icon-' + fileId).src = '/images/ajax-loader.gif';
	
	new Ajax.Request('/ajax/deleteFile',
			{
				method: 'post',
				parameters: {
					fileid: fileId
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se borro el fichero correctamente.','ok',5000);
						Effect.Fade($('fileinfo-' + fileId));
					} else {
						showMessage(json['errorMsg'],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function setRead(messageId) {
	
	$('unread-icon-' + messageId).src = '/images/ajax-loader.gif';
	
	new Ajax.Request('/ajax/changeMessageStatus',
			{
				method: 'post',
				parameters: {
					messageid: messageId,
					statusid: 16
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se cambio el estado correctamente.','ok',5000);
						$('unread-link-' + messageId).href='javascript:setUnread(' + messageId + ');';
						$('unread-text-' + messageId).innerHTML = 'Marcar como nuevo';
						$('subject-' + messageId).removeClassName('unreadsubject');
						$('unread-icon-' + messageId).src = "/images/icons/email.png";
					} else {
						showMessage(json['errorMsg'],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function setUnread(messageId) {

	$('unread-icon-' + messageId).src = '/images/ajax-loader.gif';
	
	new Ajax.Request('/ajax/changeMessageStatus',
			{
				method: 'post',
				parameters: {
					messageid: messageId,
					statusid: 15
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se cambio el estado correctamente.','ok',5000);
						$('unread-link-' + messageId).href='javascript:setRead(' + messageId + ');';
						$('unread-text-' + messageId).innerHTML = 'Marcar como leido';
						$('subject-' + messageId).addClassName('unreadsubject');
						$('unread-icon-' + messageId).src = "/images/icons/email_open.png";
					} else {
						showMessage(json['errorMsg'],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function subscribeTask(userId,taskId) {
	
	$('link-icon').src = '/images/ajax-loader.gif';

	new Ajax.Request('/ajax/subscribeTask', { method: 'post', parameters: { user: userId, task: taskId },
		onSuccess: function(transport) {
			var json = transport.responseText.evalJSON(true);
			if(json["status"] == "OK") {
				showMessage('Te incribiste en la tarea correctamente.','ok',5000);
				$('subscriptionLink').href='javascript:unsubscribeTask(' + userId + ',' + taskId + ');';
				$('subscriptionLink').innerHTML = 'borrarme de esta tarea';
				$('link-icon').src = "/images/icons/delete.png";
				$('commentslink').style.display="inline";
			} else {
				showMessage(json['errorMsg'],'ko',5000);
			}
				
		},
		onFailure: function() {
			showMessage('Error conectando con el servidor.','error',5000);
		}
	});
	
}

function unsubscribeTask(userId,taskId) {
	
	$('link-icon').src = '/images/ajax-loader.gif';

	new Ajax.Request('/ajax/unsubscribeTask',
			{
				method: 'post',
				parameters: {
					user: userId,
					task: taskId
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Te borraste de la tarea correctamente.','ok',5000);
						$('subscriptionLink').href='javascript:subscribeTask(' + userId + ',' + taskId + ');';
						$('subscriptionLink').innerHTML = 'inscribirme en esta tarea';
						$('link-icon').src = "/images/icons/add.png";
						$('commentslink').style.display="none";

						Effect.Fade($('taskactivity'));
						Effect.Fade($('taskusers'));
						
					} else {
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function addBlock(ongid,userid) {
	
	$('block-icon-' + userid).src = '/images/ajax-loader.gif';
	$('block-text-' + userid).innerHTML = 'Bloqueando...';

	new Ajax.Request('/ajax/addBlock',
			{
				method: 'post',
				parameters: {
					ongid: ongid,
					userid: userid
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						
						showMessage('Se bloqueo el usuario correctamente.','ok',5000);
						$('taskuser-' + userid).removeClassName('taskuser');
						$('taskuser-' + userid).addClassName('blockeduser');
						$('blocked-text-' + userid).innerHTML = ' (Bloqueado) ';
						$('block-text-' + userid).innerHTML = 'Desbloquear';
						$('block-link-' + userid).href = 'javascript:removeBlock(' + json["blockid"] + ',' + userid + ')';
						$('block-icon-' + userid).src ='/images/icons/accept.png';
						
					} else {
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function removeBlock(blockid,userid) {
	
	$('block-icon-' + userid).src = '/images/ajax-loader.gif';
	$('block-text-' + userid).innerHTML = 'Desbloqueando...';

	new Ajax.Request('/ajax/removeBlock',
			{
				method: 'post',
				parameters: {
					blockId: blockid
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se elimino el bloqueo correctamente.','ok',5000);
						if($('taskuser-' + json["userid"])) {
							$('taskuser-' + json["userid"]).removeClassName('blockeduser');
							$('taskuser-' + json["userid"]).addClassName('taskuser');
							$('blocked-text-' + json["userid"]).innerHTML = '';
							$('block-text-' + json["userid"]).innerHTML = 'Bloquear';
							$('block-link-' + json["userid"]).href = 'javascript:addBlock(' + json["ongid"] + ',' + json["userid"] + ')';
							$('block-icon-' + json["userid"]).src ='/images/icons/exclamation.png';
						} else {
							Effect.Fade($('block-' + blockid));
						}
						
					} else {
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function rateUser(userid,rating,taskid) {
	
	$('rate-icon-' + userid).src = '/images/ajax-loader.gif';
	$('rate-text-' + userid).innerHTML = 'Valorando...';
	
	new Ajax.Request('/ajax/rateUser',
			{
				method: 'post',
				parameters: {
					userid: userid,
					rating: rating,
					taskid: taskid
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Has valorado al usuario ' + json['nickname'] + ' con ' + rating + ' puntos karma','ok',5000);
						$('rated-text-' + userid).innerHTML = " (Valorado: " + rating + " puntos karma) ";
						$('karma-' + userid).innerHTML = json["karma"];
						$('rate-icon-' + userid).src = '/images/icons/award_star_add_off.png';
						$('rate-text-' + userid).innerHTML = 'Valorar';

						$('rate-link-' + userid).disabled = true;
                        $('rate-link-' + userid).style.color = "#BBBBBB";
                        $('rate-link-' + userid).removeAttribute("href");
                        $('rate-link-' + userid).removeClassName("actionlink");

						$('ratingtool_' + userid).remove();
						
					} else {
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function linkUser(id) {

	new Ajax.Request('/ajax/linkUser',
			{
				method: 'post',
				parameters: {
					id: id
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se vinculo el usuario correctamente.','ok',5000);
						Effect.Fade($('pending-' + id));
						
					} else {
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function rejectUser(id) {

	new Ajax.Request('/ajax/rejectUser',
			{
				method: 'post',
				parameters: {
					id: id
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se rechazo el usuario correctamente.','ok',5000);
						Effect.Fade($('pending-' + id));
						
					} else {
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function suspendUser(userid) {
	
	$('suspend-icon-' + userid).src = '/images/ajax-loader.gif';
	$('suspend-text-' + userid).innerHTML = 'Suspendiendo...';
	
	new Ajax.Request('/ajax/suspendUser',
			{
				method: 'post',
				parameters: {
					userId: userid
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se suspendio el usuario correctamente.','ok',5000);
						$('suspend-icon-' + userid).src = '/images/icons/accept.png';
						$('suspend-text-' + userid).innerHTML = 'Activar';
						$('suspend-link-' + userid).href='javascript:activateUser(' + userid + ')';
						$('user-' + userid).removeClassName('filter');
						$('user-' + userid).addClassName('blockeduser');
					} else {
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function activateUser(userid) {
	
	$('suspend-icon-' + userid).src = '/images/ajax-loader.gif';
	$('suspend-text-' + userid).innerHTML = 'Activando...';
	
	new Ajax.Request('/ajax/activateUser',
			{
				method: 'post',
				parameters: {
					userId: userid
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se activo el usuario correctamente.','ok',5000);
						$('suspend-icon-' + userid).src = '/images/icons/error.png';
						$('suspend-text-' + userid).innerHTML = 'Suspender';
						$('suspend-link-' + userid).href='javascript:suspendUser(' + userid + ')';
						$('user-' + userid).removeClassName('blockeduser');
						$('user-' + userid).addClassName('filter');
					} else {
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function deleteUser(userid) {
	
	$('delete-icon-' + userid).src = '/images/ajax-loader.gif';
	$('delete-text-' + userid).innerHTML = 'Borrando...';
	
	new Ajax.Request('/ajax/deleteUser',
			{
				method: 'post',
				parameters: {
					userId: userid
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se borro el usuario correctamente.','ok',5000);
						$('user-' + userid).fade();
					} else {
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function closeTask(taskid) {
	
	if($('close-icon')) {
		var suffix = '';
	} else {
		var suffix = '-' + taskid;
	}

	$('close-icon' + suffix).src = '/images/ajax-loader.gif';
	$('close-text' + suffix).innerHTML = 'Cerrando...';
	
	new Ajax.Request('/ajax/closeTask',
			{
				method: 'post',
				parameters: {
					taskid: taskid
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						
						showMessage('Has cerrado la tarea correctamente.','ok',5000);
						if($('taskoptions-' + taskid)) {
							
							Effect.Fade($('taskoptions-' + taskid));
						
						} else {

							$('close-icon').src = '/images/icons/table_key_off.png';
							$('close-link').href = "javascript:return false;";
							$('edit-icon').src = '/images/icons/table_edit_off.png';
							$('edit-link').href = "javascript:return false;";						
							$('cancel-icon').src = '/images/icons/table_error_off.png';
							$('cancel-link').href = "javascript:return false;";						
							$('status-icon').src = '/images/icons/key.png';
							$('close-text').innerHTML = "Cerrar";
							$('status-text').innerHTML = 'Cerrada';
							
						}
						
					} else {
						$('close-icon' + suffix).src = '/images/icons/table_key.png';
						$('close-text' + suffix).innerHTML = 'Cerrar';
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error','ok',5000);
				}
			});
	
}

function cancelTask(taskid) {
	
	if($('cancel-icon')) {
		var suffix = '';
	} else {
		var suffix = '-' + taskid;
	}

	$('cancel-icon' + suffix).src = '/images/ajax-loader.gif';
	$('cancel-text' + suffix).innerHTML = 'Cancelando...';
	
	new Ajax.Request('/ajax/cancelTask',
			{
				method: 'post',
				parameters: {
					taskid: taskid
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						
						showMessage('Has cancelado la tarea correctamente.','ok',5000);
						if($('taskoptions-' + taskid)) {
							
							Effect.Fade($('taskoptions-' + taskid));
						
						} else {
						
							$('close-icon').src = '/images/icons/table_key_off.png';
							$('close-link').href = "javascript:return false;";
							$('edit-icon').src = '/images/icons/table_edit_off.png';
							$('edit-link').href = "javascript:return false;";						
							$('cancel-icon').src = '/images/icons/table_error_off.png';
							$('cancel-link').href = "javascript:return false;";						
							$('status-icon').src = '/images/icons/error.png';
							$('cancel-text').innerHTML = "Cancelar";
							$('status-text').innerHTML = 'Cancelada';
						
						}
						
					} else {
						showMessage(json["errorMsg"],'ko',5000);
						$('cancel-icon' + suffix).src = '/images/icons/table_error.png';
						$('cancel-text' + suffix).innerHTML = 'Cancelar';
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function deleteTask(taskid) {
	
	if($('delete-icon')) {
		var suffix = '';
	} else {
		var suffix = '-' + taskid;
	}

	$('delete-icon' + suffix).src = '/images/ajax-loader.gif';
	$('delete-text' + suffix).innerHTML = 'Borrando...';
	
	new Ajax.Request('/ajax/deleteTask',
			{
				method: 'post',
				parameters: {
					taskid: taskid
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						
						showMessage('Has borrado la tarea correctamente.','ok',5000);
						if($('task-' + taskid)) {
							
							Effect.Fade($('task-' + taskid));
						
						} else {
						
							document.location = '/ong/index';
						
						}
						
					} else {
						showMessage(json["errorMsg"],'ko',5000);
						$('delete-icon' + suffix).src = '/images/icons/table_delete.png';
						$('delete-text' + suffix).innerHTML = 'Borrar';
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function removeOngFilter(filterid) {
	
	$('ongfilter-icon-' + filterid).src = '/images/ajax-loader.gif';
	$('ongfilter-text-' + filterid).innerHTML = 'Eliminando...';

	new Ajax.Request('/ajax/removeOngFilter',
			{
				method: 'post',
				parameters: {
					filterId: filterid
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						
						showMessage('Se elimino el filtro de ong correctamente.','ok',5000);
						Effect.Fade($('ongfilter-' + filterid));
						
					} else {
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function removeSectorFilter(filterid) {
	
	$('sectorfilter-icon-' + filterid).src = '/images/ajax-loader.gif';
	$('sectorfilter-text-' + filterid).innerHTML = 'Eliminando...';

	new Ajax.Request('/ajax/removeSectorFilter',
			{
				method: 'post',
				parameters: {
					filterId: filterid
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						
						showMessage('Se elimino el filtro de sector correctamente.','ok',5000);
						Effect.Fade($('sectorfilter-' + filterid));
						
					} else {
						showMessage(json["errorMsg"],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function saveUserData(userid) {
	
	$('edit-icon-' + userid).src = '/images/ajax-loader.gif';
	$('edit-text-' + userid).innerHTML = 'Guardando...';
	
	new Ajax.Request('/ajax/saveUserData',
			{
				method: 'post',
				parameters: {
					userId: userid,
					nickname: $('user-' + userid + '-nickname').value,
					email: $('user-' + userid + '-email').value,
					hierarchy: $('user-' + userid + '-hierarchy').value
//					assigned: $('user-' + userid + '-assigned').value,
//					completed: $('user-' + userid + '-completed').value
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						
						showMessage('Se modificaron los datos del usuario correctamente.','ok',5000);
						disableForm(userid);
						
					} else {
						
						showMessage(json["errorMsg"],'ko',5000);
						
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function renameFile(fileid) {
	
	$('fileinfo-renameicon-' + fileid).src = '/images/ajax-loader.gif';
	$('fileinfo-renametext-' + fileid).innerHTML = 'Guardando...';
	
	new Ajax.Request('/ajax/renameFile',
			{
				method: 'post',
				parameters: {
					fileid: fileid,
					alias: $('filealias-' + fileid).value
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						
						showMessage('Se renombro el fichero correctamente.','ok',5000);
						fileRenameOff(fileid);
						
					} else {
						
						showMessage(json["errorMsg"],'ko',5000);
						
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function fileRenameOn(fileid) {
	
	$('file-form-' + fileid).removeClassName("readonly");
	$('file-form-' + fileid).addClassName("editable");

	$('filealias-' + fileid).disabled = false;
	
	$('fileinfo-renameicon-' + fileid).src='/images/icons/disk.png';
	$('fileinfo-renametext-' + fileid).innerHTML ='Guardar';
	$('fileinfo-renamelink-' + fileid).href ='javascript:renameFile(' + fileid + ')';
	
}

function fileRenameOff(fileid) {
	
	$('file-form-' + fileid).removeClassName("editable");
	$('file-form-' + fileid).addClassName("readonly");

	$('filealias-' + fileid).disabled = true;
	
	$('fileinfo-renameicon-' + fileid).src='/images/icons/textfield_rename.png';
	$('fileinfo-renametext-' + fileid).innerHTML ='Renombrar fichero';
	$('fileinfo-renamelink-' + fileid).href ='javascript:fileRenameOn(' + fileid + ')';
	
}

function enableForm(userid) {
	
	$('user-form-' + userid).removeClassName("readonly");
	$('user-form-' + userid).addClassName("editable");

	$('user-' + userid + '-hierarchytext').hide();
	$('user-' + userid + '-hierarchyspan').show();

	$('user-' + userid + '-nickname').disabled = false;
	$('user-' + userid + '-email').disabled = false;
//	$('user-' + userid + '-assigned').disabled = false;
//	$('user-' + userid + '-completed').disabled = false;
	
	$('cancel-' + userid).appear();
	
	$('edit-icon-' + userid).src='/images/icons/disk.png';
	$('edit-text-' + userid).innerHTML ='Guardar';
	$('edit-link-' + userid).href ='javascript:saveUserData(' + userid + ')';
	
	
}

function disableForm(userid) {

	$('cancel-' + userid).hide();
	
	$('user-form-' + userid).removeClassName("editable");
	$('user-form-' + userid).addClassName("readonly");

	$('user-' + userid + '-hierarchytext').innerHTML = $('user-' + userid + '-hierarchy').options[$('user-' + userid + '-hierarchy').selectedIndex].text.replace(/^\s+|\s+$/g,"");
	$('user-' + userid + '-hierarchyspan').hide();
	$('user-' + userid + '-hierarchytext').show();

	$('user-' + userid + '-nickname').disabled = true;
	$('user-' + userid + '-email').disabled = true;
	//$('user-' + userid + '-assigned').disabled = true;
	//$('user-' + userid + '-completed').disabled = true;
	
	$('edit-icon-' + userid).src='/images/icons/user_edit.png';
	$('edit-text-' + userid).innerHTML ='Editar';
	$('edit-link-' + userid).href ='javascript:enableForm(' + userid + ')';
	
}

function checkPasswd(id) {

	$('checkpasswd-icon-' + id).show();
	
	if($('passwd-' + id).value == $('passwdc-' + id).value) {

		if($('passwd-' + id).value.length >= 6) {

			$('checkpasswd-icon-' + id).src = '/images/icons/accept.png';
			$('changepasswd-' + id).appear();
			
		} else {
			
			$('checkpasswd-icon-' + id).src = '/images/icons/delete.png';
			
		}
		
	} else {
		
		$('checkpasswd-icon-' + id).src = '/images/icons/delete.png';
	
	}
	
}

function changeUserPassword(userid) {
	
	$('change-icon-' + userid).src = '/images/ajax-loader.gif';
	
	new Ajax.Request('/ajax/changeUserPassword',
			{
				method: 'post',
				parameters: {
					userId: userid,
					passwd: $('passwd-' + userid).value
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						
						showMessage('Se cambio la contraseńa correctamente.','ok',5000);
						$('change-icon-' + userid).src = '/images/icons/tag_blue_edit.png';
						$('change-text-' + userid).innerHTML = 'Cambiar contraseńa';
						
						
					} else {
						
						showMessage(json["errorMsg"],'ko',5000);
						
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function getChildNodes(e,from,value) {
	
	if(value != 0) {
		
		new Ajax.Request('/ajax/get' + from + 'Children',
		{
			method: 'post',
			parameters: {
				value: value
			},
			onSuccess: function(transport) {
				var json = transport.responseText.evalJSON(true);
				clearSelectElement(e);
				updateSelectElement(json,e);
				e.disabled = false;
				var name = substr(e.id,0,strlen(e.id)-1);
				var i = substr(e.id,strlen(e.id)-1,strlen(e.id));
				var next = name + String(Number(i)+1);
				if($(next))
					getChildNodes($(next),from,e.options[e.selectedIndex].value);
			},
			onFailure: function() {
				alert('KO');
			}
		});
		
	} else {
		
	}
}

// Donation

function cancelDonation(donationId) {

    $('cancel-icon-' + donationId).src = '/images/ajax-loader.gif';

    new Ajax.Request('/ajax/cancelDonation',
            {
                    method: 'post',
                    parameters: {
                            donation: donationId
                    },
                    onSuccess: function(transport)
                    {
                            var json = transport.responseText.evalJSON(true);
                            if(json["status"] == "OK")
                            {
                            		if(json["code"] == 9)
                            			showMessage('Se canceló la aportación correctamente. <br /><br />La aportación queda pendiente de cancelar por el administrador. Le llegara un correo electronico cuando esto suceda.','ok',5000);
                            		else
                            			showMessage('Se canceló la aportación correctamente.','ok',5000);
                            		
                                    var today  = new Date();
                                    var year = today.getFullYear();
                                    var month = today.getMonth();
                                    var day = today.getDate();
                                    var hour = today.getHours();
                                    var minutes = today.getMinutes();
                                    var seconds = today.getSeconds();
                                    
                                    month++;
                                    if(month < 10) month = '0' + String(month);
                                    if(json["code"] == 8)
                                    	$('cancel-date-text-' + donationId).innerHTML = year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds;
                                    else
                                    	$('cancel-date-text-' + donationId).innerHTML = '(Pendiente de cancelar)';
                                    
                                    Effect.Appear($('canceled-date-' + donationId));
                                    Effect.Fade($('donation-options-' + donationId));
                                    
                            }
                            else
                            {
                                    showMessage(json["errorMsg"],'ko',5000);
                            }
                    },
                    onFailure: function()
                    {
                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
                    }
            }
    );
}

function editDonation(donationId) {

    /*$('link-icon').src = '/images/ajax-loader.gif';*/

    new Ajax.Request('/ajax/editDonation',
            {
                    method: 'post',
                    parameters: {
                            donation: donationId
                    },
                    onSuccess: function(transport)
                    {
                            var json = transport.responseText.evalJSON(true);
                            if(json["status"] == "OK")
                            {
                                    showMessage('Modificaste tu aportación correctamente','ok',5000);
                                    /*$('subscriptionLink').href='javascript:subscribeTask(' + userId + ',' + taskId + ');';*/
                                    /*$('subscriptionLink').innerHTML = 'inscribirmeeeeeeeee en esta tarea';*/
                                    /*$('link-icon').src = "/images/icons/add.png";*/
                                    /*$('commentslink').style.display="none";*/

                                    /*Effect.Fade($('taskactivity'));
                                    Effect.Fade($('taskusers'))*/
                            }
                            else
                            {
                                    showMessage(json["errorMsg"],'ko',5000);
                            }
                    },
                    onFailure: function()
                    {
                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
                    }
            }
    );
}

function makeFinalist(announcementId) {

	$('finalist-icon-' + announcementId).src = '/images/ajax-loader.gif';
	
    new Ajax.Request('/ajax/makeFinalist',
            {
                    method: 'post',
                    parameters: {
                            announcementid: announcementId
                    },
                    onSuccess: function(transport)
                    {
                            var json = transport.responseText.evalJSON(true);
                            if(json["status"] == "OK")
                            {
                                    showMessage('La operación se completo con exito.','ok',5000);

                                    $('finalist-icon-' + announcementId).src = '/images/icons/delete.png';
                                    $('finalist-text-' + announcementId).innerHTML = 'Eliminar de los finalistas';
                                    $('finalist-link-' + announcementId).href = 'javascript:unmakeFinalist(' + announcementdId + ');';                                    
                            }
                            else
                            {
                                    showMessage(json["errorMsg"],'ko',5000);
                            }
                    },
                    onFailure: function()
                    {
                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
                    }
            }
    );
	
	
	
}

function unmakeFinalist(announcementId) {

	$('finalist-icon-' + announcementId).src = '/images/ajax-loader.gif';
	
    new Ajax.Request('/ajax/unmakeFinalist',
            {
                    method: 'post',
                    parameters: {
                            announcementid: announcementId
                    },
                    onSuccess: function(transport)
                    {
                            var json = transport.responseText.evalJSON(true);
                            if(json["status"] == "OK")
                            {
                                    showMessage('La operación se completo con exito.','ok',5000);
                                    
                                    $('finalist-icon-' + announcementId).src = '/images/icons/wand.png';
                                    $('finalist-text-' + announcementId).innerHTML = 'Hacer finalista';
                                    $('finalist-link-' + announcementId).href = 'javascript:makeFinalist(' + announcementdId + ');';
                                    
                            }
                            else
                            {
                                    showMessage(json["errorMsg"],'ko',5000);
                            }
                    },
                    onFailure: function()
                    {
                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
                    }
            }
    );
	
	
	
}

function deleteProject(announcementId) {

	$('delete-icon-' + announcementId).src = '/images/ajax-loader.gif';
	
    new Ajax.Request('/ajax/deleteProject',
            {
                    method: 'post',
                    parameters: {
                            announcementid: announcementId
                    },
                    onSuccess: function(transport)
                    {
                            var json = transport.responseText.evalJSON(true);
                            if(json["status"] == "OK")
                            {
        						showMessage('Se borro el proyecto correctamente.','ok',5000);
        						Effect.Fade($('project-' + announcementId));
                                    
                            }
                            else
                            {
                                    showMessage(json["errorMsg"],'ko',5000);
                            }
                    },
                    onFailure: function()
                    {
                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
                    }
            }
    );
	
	
	
}

function castVote(announcementId) {
	
	$('castvote-icon-' + announcementId).src = '/images/ajax-loader.gif';
	$('castvote-text-' + announcementId).innerHTML = 'Votando...';

    new Ajax.Request('/ajax/castVote',
            {
                    method: 'post',
                    parameters: {
                            announcementid: announcementId
                    },
                    onSuccess: function(transport)
                    {
                            var json = transport.responseText.evalJSON(true);
                            if(json["status"] == "OK")
                            {
                                    showMessage('Votaste correctamente al proyecto.','ok',5000);
                                    $('castvote-icon-' + announcementId).src = '/images/icons/star_off.png';
                                    $('castvote-text-' + announcementId).innerHTML = 'Votar proyecto';
                                    
                                    $('castvote-link-' + announcementId).disabled = true;
                                    $('castvote-link-' + announcementId).style.color = "#BBBBBB";
                                    $('castvote-link-' + announcementId).removeAttribute("href");
                                    $('castvote-link-' + announcementId).removeClassName("actionlink");
                                    
                            }
                            else
                            {
                                    showMessage(json["errorMsg"],'ko',5000);
                                    $('castvote-icon-' + announcementId).src = '/images/icons/star_off.png';
                                    $('castvote-text-' + announcementId).innerHTML = 'Votar proyecto';
                                    
                                    $('castvote-link-' + announcementId).disabled = true;
                                    $('castvote-link-' + announcementId).style.color = "#BBBBBB";
                                    $('castvote-link-' + announcementId).removeAttribute("href");
                                    $('castvote-link-' + announcementId).removeClassName("actionlink");
                            }
                    },
                    onFailure: function()
                    {
                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
                    }
            }
    );
	
}

// Popup functions

function activatePopup(popupId) {

		$('activate-popup-icon-' + popupId).src = '/images/ajax-loader.gif';
		
	    new Ajax.Request('/ajax/activatePopup',
	            {
	                    method: 'post',
	                    parameters: {
	                            popupid: popupId
	                    },
	                    onSuccess: function(transport)
	                    {
	                            var json = transport.responseText.evalJSON(true);
	                            if(json["status"] == "OK")
	                            {
	                                    showMessage('La operación se completo con exito.','ok',5000);

	                                    $('activate-popup-icon-' + popupId).src = '/images/icons/delete.png';
	                                    $('activate-popup-text-' + popupId).innerHTML = 'Desactivar';
	                                    $('activate-popup-link-' + popupId).href = 'javascript:deactivatePopup(' + popupId + ');';                                    
	                            }
	                            else
	                            {
	                                    showMessage(json["errorMsg"],'ko',5000);
	                            }
	                    },
	                    onFailure: function()
	                    {
	                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
	                    }
	            }
	    );
	
}

function deactivatePopup(popupId) {

	$('activate-popup-icon-' + popupId).src = '/images/ajax-loader.gif';
	
    new Ajax.Request('/ajax/deactivatePopup',
            {
                    method: 'post',
                    parameters: {
                            popupid: popupId
                    },
                    onSuccess: function(transport)
                    {
                            var json = transport.responseText.evalJSON(true);
                            if(json["status"] == "OK")
                            {
                                    showMessage('La operación se completo con exito.','ok',5000);

                                    $('activate-popup-icon-' + popupId).src = '/images/icons/bell_go.png';
                                    $('activate-popup-text-' + popupId).innerHTML = 'Activar';
                                    $('activate-popup-link-' + popupId).href = 'javascript:activatePopup(' + popupId + ');';                                    
                            }
                            else
                            {
                                    showMessage(json["errorMsg"],'ko',5000);
                            }
                    },
                    onFailure: function()
                    {
                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
                    }
            }
    );
	
}

function deletePopup(popupId) {
		
	$('delete-popup-icon-' + popupId).src = '/images/ajax-loader.gif';
	
	new Ajax.Request('/ajax/deletePopup',
			{
				method: 'post',
				parameters: {
					popupid: popupId
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se borro el popup correctamente.','ok',5000);
						Effect.Fade($('popup-' + popupId));
					} else {
						showMessage(json['errorMsg'],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}
// Event functions

function deleteEvent(eventId) {
	
	$('delete-event-icon-' + eventId).src = '/images/ajax-loader.gif';
	
	new Ajax.Request('/ajax/deleteEvent',
			{
				method: 'post',
				parameters: {
					eventid: eventId
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON(true);
					if(json["status"] == "OK") {
						showMessage('Se borro el evento correctamente.','ok',5000);
						Effect.Fade($('event-' + eventId));
					} else {
						showMessage(json['errorMsg'],'ko',5000);
					}
						
				},
				onFailure: function() {
					showMessage('Error conectando con el servidor.','error',5000);
				}
			});
	
}

function confirmAudience(audienceId) {

	$('confirm-audience-icon-' + audienceId).src = '/images/ajax-loader.gif';
	
    new Ajax.Request('/ajax/confirmAudience',
            {
                    method: 'post',
                    parameters: {
                            audienceid: audienceId
                    },
                    onSuccess: function(transport)
                    {
                            var json = transport.responseText.evalJSON(true);
                            if(json["status"] == "OK")
                            {
                                    showMessage('La operación se completo con exito.','ok',5000);

                                    $('confirm-audience-icon-' + audienceId).src = '/images/icons/delete.png';
                                    $('confirm-audience-link-' + audienceId).href = 'javascript:suspendAudience(' + audienceId + ');';                                    
                            }
                            else
                            {
                                    showMessage(json["errorMsg"],'ko',5000);
                            }
                    },
                    onFailure: function()
                    {
                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
                    }
            }
    );

}

function suspendAudience(audienceId) {

	$('confirm-audience-icon-' + audienceId).src = '/images/ajax-loader.gif';
	
    new Ajax.Request('/ajax/suspendAudience',
            {
                    method: 'post',
                    parameters: {
                            audienceid: audienceId
                    },
                    onSuccess: function(transport)
                    {
                            var json = transport.responseText.evalJSON(true);
                            if(json["status"] == "OK")
                            {
                                    showMessage('La operación se completo con exito.','ok',5000);

                                    $('confirm-audience-icon-' + audienceId).src = '/images/icons/accept.png';
                                    $('confirm-audience-link-' + audienceId).href = 'javascript:confirmAudience(' + audienceId + ');';                                    
                            }
                            else
                            {
                                    showMessage(json["errorMsg"],'ko',5000);
                            }
                    },
                    onFailure: function()
                    {
                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
                    }
            }
    );

}

function joinEvent(eventId) {

	$('join-event-icon-' + eventId).src = '/images/ajax-loader.gif';
	
    new Ajax.Request('/ajax/joinEvent',
            {
                    method: 'post',
                    parameters: {
                            eventid: eventId
                    },
                    onSuccess: function(transport)
                    {
                            var json = transport.responseText.evalJSON(true);
                            if(json["status"] == "OK")
                            {
                                    showMessage('La operación se completo con exito.','ok',5000);

                                    $('join-event-icon-' + eventId).src = '/images/icons/delete.png';
                                    $('join-event-link-' + eventId).href = 'javascript:unjoinEvent(' + eventId + ');';
                                    $('join-event-text-' + eventId).innerHTML = 'Borrarse de este evento';                                    
                                    
                            }
                            else
                            {
                                    showMessage(json["errorMsg"],'ko',5000);
                            }
                    },
                    onFailure: function()
                    {
                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
                    }
            }
    );

}

function unjoinEvent(eventId) {

	$('join-event-icon-' + eventId).src = '/images/ajax-loader.gif';
	
    new Ajax.Request('/ajax/unjoinEvent',
            {
                    method: 'post',
                    parameters: {
                            eventid: eventId
                    },
                    onSuccess: function(transport)
                    {
                            var json = transport.responseText.evalJSON(true);
                            if(json["status"] == "OK")
                            {
                                    showMessage('La operación se completo con exito.','ok',5000);

                                    $('join-event-icon-' + eventId).src = '/images/icons/accept.png';
                                    $('join-event-link-' + eventId).href = 'javascript:joinEvent(' + eventId + ');';
                                    $('join-event-text-' + eventId).innerHTML = 'Apuntarme a este evento';                                    
                                    
                            }
                            else
                            {
                                    showMessage(json["errorMsg"],'ko',5000);
                            }
                    },
                    onFailure: function()
                    {
                            showMessage('Error conectando con el servidor. Inténtelo nuevamente en un par de minutos','error',5000);
                    }
            }
    );

}
