var max_chars = 1500;
var c_messages = 0;
Event.observe(window, 'load', function()
{
	if ($('last_pics'))
	{
		$('last_pics').select('a[ref]').each(function(item)
		{
			item.onclick = function ()
			{
				load_file(item.readAttribute('ref'));
				return false;
			};
		});
	}

	if ($('prev_file'))
	{
		$('prev_file').onclick = function ()
		{
			load_file($('prev_file').readAttribute('ref'));
			return false;
		};
	}

	if ($('next_file'))
	{
		$('next_file').onclick = function ()
		{
			load_file($('next_file').readAttribute('ref'));
			return false;
		};
	}

	if (typeof(notif) != 'undefined')
	{
		show_notify();
		Event.observe(window, "scroll", scroll_notif, false); // Firefox
	}

	if ($('publish')) {Event.observe('publish', 'click', comment);}
	if ($('comment')) {Event.observe('comment', 'keyup', countChars);}
	if ($('login_no')) {Event.observe('login_no', 'click', toggle_login);}

	if ($('denuncia') && $('den'))
	{
		var ref = $('den');
		var divDen = $('denuncia');
		locateElement(ref, divDen, -1, 0);

		$('close_den').onclick = function ()
		{
			divDen.addClassName('hide')
		};

		ref.onclick = function ()
		{
			locateElement(ref, divDen, -1, 0);

			if (divDen.hasClassName('hide')) divDen.removeClassName('hide');
			else divDen.addClassName('hide')
		};

		$('b_den').onclick = function ()
		{
			divDen.select('input[type="radio"]').each(function(item)
			{
				if (item.checked) denounce(item.value);
			});
		};
	}

	if ($('smileys'))
	{
		$('smileys').select('img').each(function(item)
		{
			item.onclick = function ()
			{
				put_smile(item.id);
			};
		});
	}
});

function opacity(obj)
{
	if ($(obj).hasClassName('opaco')) $(obj).removeClassName('opaco');
	else $(obj).addClassName('opaco');
}

function load_file(id)
{
	edisable_select(false);//fix IE6
	put_layer();//pongo el layer opaco
	show_loading(tf_lang['flog_loading']);

	$('body').scrollTo();

	var url = uri.base+'/ax/load_file.php';
	var pars = 'file='+encodeURIComponent(id)+'&flog='+encodeURIComponent($F('this_flog').toLowerCase());
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: file_resp})
}

function file_resp(oJSN)
{
	var data = eval(oJSN.responseText);

	if (data)
	{
		//si tiene mas de 400 comentarios se le recarga la página
		if (data[0].comments[0] == 'KO')
		{
			close_not();
			window.location = uri.base+'/'+$F('this_flog')+'/'+data[0].id;
			return false;
		}

		if ($('denuncia')) $('denuncia').addClassName('hide');

		$('file_title').update((data[0].titulo ? data[0].titulo : ''));//titulo

		removeAllChildsElements($('file_pag'));//paginador
		if (data[0].pag_ant)
		{
			$('file_pag').insert('<a href="'+uri.base+'/'+$F('this_flog')+'/'+data[0].pag_ant+'" ref="'+data[0].pag_ant+'" id="prev_file" style="float:left; width:80px;" class="foto_opcion2">< Anterior</a>');
			$('prev_file').onclick = function (){load_file($('prev_file').readAttribute('ref')); return false;};
		}
		if (data[0].pag_sig)
		{
			$('file_pag').insert('<a href="'+uri.base+'/'+$F('this_flog')+'/'+data[0].pag_sig+'" ref="'+data[0].pag_sig+'" id="next_file" style="float:right; width:80px;" class="foto_opcion2">Siguiente ></a>');
			$('next_file').onclick = function (){load_file($('next_file').readAttribute('ref')); return false;};
		}

		removeAllChildsElements($('file_cont'));//archivo
		$('file_cont').insert(data[0].display);

		$('file_send').href = uri.base+'/'+$F('this_flog')+'/invitation/'+data[0].id;//para invitaciones

		$('file_date').update(data[0].date);
		$('file_desc').update((data[0].desc ? data[0].desc : ''));

		$('file').value = data[0].id;

		removeAllChildsElements($('comments_container'));

		$('total_com').update(data[0].comments.length);

		show_comment(data[0].comments);
	}

	close_not();
}

function show_comment(data)
{
	if (data)
	{
		for (var i=0; i<data.length; i++)
		{
			var out = '';
			var id = data[i].id;

			var div_cont = new Element('div', {'id': 'cont_'+id});
			var div_mess = new Element('div', {'class': 'modulo_mensaje mensaje color_texto'});
			var span_nombre = new Element('div',  {'class': 'comentario_nombre', 'id' : 'n_'+id, 'n' : data[i].rte.toLowerCase()});

			span_nombre.insert((data[i].anon == 1) ? new Element('span', {}).update(data[i].rte.toLowerCase()) : new Element('span', {}).insert(new Element('a', {'href' : uri.base+'/'+data[i].rte.toLowerCase(), 'class' : 'color_enlace pointer underline'}).update(data[i].rte.toLowerCase())));
			span_nombre.insert(span_fecha = new Element('span', {'style' : 'margin-left:5px; font-weight: normal;'}).update(tf_lang['option_says']+' '+data[i].date));
			div_mess.insert(span_nombre);
			div_mess.insert( Element('div', {'id' : 't_'+id, 'style': 'margin-top:15px; margin-bottom:15px;'}).update(data[i].comment));
			div_cont.insert(div_mess);

			if (data[i].show_del || data[i].show_block)
			{
				var div_opt = new Element('div', {'id': 'comments_options', 'class' : 'comments_options'});

				if (data[i].show_del)
				{
					var del_opt = new Element('div', {'class': 'enlace pointer options_opt', 'opt' : 'del', 'id' : 'del_'+id}).update(tf_lang['option_del']);
					del_opt.onclick = function(){del(this.id);}
					div_opt.insert(del_opt);
				}

				if (data[i].show_block)
				{
					var block_opt = new Element('div', {'class': 'enlace pointer options_opt', 'opt' : 'bl', 'id' : 'bl_'+id}).update(tf_lang['option_block']);
					block_opt.onclick = function(){block(this.id);}
					div_opt.insert(block_opt);
				}

				div_opt.insert(new Element('div', {'class': 'options_opt', 'id' : 'load_'+id}));
				div_cont.insert(div_opt);
			}

			div_cont.insert('<br clear="all"><div class="divisor3 color_divisores" style="margin-bottom:15px; margin-top:15px;"></div>');

			$('comments_container').insert(div_cont);
		}
	}
}

function put_smile(smile)
{
	var pos = get_car_pos($('comment'));
	var start = $F('comment').substr(0, pos);
	var end = $F('comment').substr(pos, $F('comment').length-1);

	$('comment').value = start+smile+end;
	set_car_pos($('comment'), start.length + smile.length);
}

function set_car_pos(obj, pos)
{
	if(obj.setSelectionRange)
	{
		obj.focus();
		obj.setSelectionRange(pos,pos);
	} else if (obj.createTextRange) {
		var range = obj.createTextRange();
		range.collapse(true);
		range.moveEnd('character', pos);
		range.moveStart('character', pos);
		range.select();
	}
}

function get_car_pos(obj)
{
	if (obj.selectionStart) return obj.selectionStart;
	else if(!document.selection) return 0;

	obj.focus();
	var c = "\001";
	var sel	= document.selection.createRange();
	var dul	= sel.duplicate();
	var len	= 0;
	dul.moveToElementText(obj);
	sel.text = c;
	len	= (dul.text.indexOf(c));
	sel.moveStart('character',-1);
	sel.text = "";
	return (len == -1 ? dul.text.length : len);
}

function toggle_login()
{
	toggle_item('comm_login');
	Event.stopObserving('login_no', 'click', toggle_login);
}

function edisable_select(state)
{
	if ($('form_buscar'))
	{
		$('form_buscar').select('select').each(function(item)
		{
			if (state) item.removeAttribute('disabled');
			else item.writeAttribute('disabled', 'disabled');
		});
	}
}

function show_notify()
{
	edisable_select(false);//fix IE6

	put_layer();//pongo el layer opaco

	var div_notify = new Element('div', {'id': 'notify_cont'});
	div_notify.insert(get_cuadro());

	$('body').insert(div_notify);

	div_notify.setStyle({'width' : $('t_notif').getWidth()+'px', 'display' : 'block'});//necesito el ancho de la tabla sino da error
	center_object(div_notify);//centro la notificacion
}

function scroll_notif()
{
	center_object($('notify_cont'));//centro la notificacion
}

function close_not()
{
	edisable_select(true);//fix IE6

	if ($('div_loading')) $('div_loading').remove();
	if ($('notify_cont')) $('notify_cont').remove();
	if ($('layer')) $('layer').remove();
}

function get_cuadro()
{
	var data = eval(notif);

	var out = '<table id="t_notif" border="0" cellspacing="0" cellpadding="0"><tr><td width="15" height="15" class="notify_b_1"></td><td height="15" background="'+uri.img+'/m_top2.png"></td><td width="15" height="15" class="notify_b_2"></td></tr><tr><td width="15" background="'+uri.img+'/m_izq.png"></td>';
	out += '<td class="cuadro" style="background-color:#FFF;">';
	out += '<div>';
	out += '<div class="noti_title"><strong>'+tf_lang['notif_notif']+':</strong></div>';
	out += '<div style="float:right; width:50px; text-align:right;"><a href="javascript:close_not();" class="n_enlaces pointer">x</a></div>';
	out += '</div><br clear="all" /><br />';

	if (data)
	{
		for (var i = 0; i < data.length; i++)
		{
			out += '<div id="'+data[i].id+'">';
			out += '<b>'+data[i].fecha+' <br /> '+data[i].titulo+':</b>';
			out += '<div class="texto">'+data[i].texto+'</div>';
			out += '<a href="javascript:del_notif('+data[i].id+');" class="n_enlaces pointer">Eliminar</a>';
			out += '<div class="separator"></div><br />';
			out += '</div>';
		}
		c_messages = data.length;
	}
	out += '<div>';
	out += '<div style="float:left;" id="noti_loader"></div>';
	out += '<div style="float:right;"><a href="javascript:close_not();" class="n_enlaces pointer">'+tf_lang['notif_cerrar']+'</a></div>';
	out += '</div>';
	out += '</td><td width="15" background="'+uri.img+'/m_der.png"></td></tr><tr><td width="15" height="15" class="notify_b_3"></td><td height="15" background="'+uri.img+'/m_end2.png"></td><td width="15" height="15" class="notify_b_4"></td></tr></table>';

	return out;
}

function del_notif(id)
{
	$('noti_loader').insert(ajax_loading);
	var url = uri.base+'/ax/notif.php';
	var pars = 'n='+id;
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: del_not_resp})
}

function del_not_resp(o)
{
	removeSelectedChildElements($('noti_loader'), 'img');

	var data = o.responseText;

	if (data)
	{
		c_messages--;
		$(data).remove();
		if (c_messages < 1) close_not();
	}
}

function denounce(type)
{
	$('load_den').insert(ajax_loading);

	var url = uri.base+'/ax/denounce.php';
	var pars = 't='+type+'&file='+encodeURIComponent($F('file'))+'&flog='+encodeURIComponent($F('this_flog').toLowerCase());
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: denounce_resp})
}

function denounce_resp(o)
{
	removeSelectedChildElements($('load_den'), 'img');
	var data = o.responseText;

	$('men_den').update((parseInt(data) == 1) ? tf_lang['comment_aviso_3'] : tf_lang['comment_error_7']);
}

function countChars (event)
{
	var key = event.which || event.keyCode;
	var car = max_chars;

	if ($F('comment').length > 1500) $('comment').value = $F('comment').substr(0, 1500);

	switch (key) {
		case Event.KEY_BACKSPACE :
		car = max_chars - ($F('comment').length);
		break;
		case Event.KEY_DELETE :
		car = max_chars - ($F('comment').length);
		break;
		default :
		car = max_chars - ($F('comment').length);
	}

	$('caract').update('('+car+')');
}

function comment()
{
	var anon = '';
	var comment = '';

	if ($('anon'))
	{
		if ($F('anon') == '')
		{
			showError($('message'), tf_lang['comment_aviso_2']);
			return;
		}else anon = $F('anon');
	}

	if ($('comment'))
	{
		if ($F('comment') == '')
		{
			showError($('message'), tf_lang['comment_aviso_1']);
			return;
		}

		if (!check_f_words($F('comment')))
		{
			showError($('message'), tf_lang['comment_error_8']);
			return;
		}

		comment = $F('comment');
	}

	$('publish').writeAttribute('disabled', 'disabled');
	$('comment').writeAttribute('disabled', 'disabled');
	$('loading').insert(ajax_loading);

	var url = uri.base+'/ax/comments.php';
	var pars = 'a=1&anon='+encodeURIComponent(anon.toLowerCase())+'&comment='+encodeURIComponent(comment)+'&file='+encodeURIComponent($F('file'))+'&flog='+encodeURIComponent($F('this_flog').toLowerCase())+'&hash='+encodeURIComponent($F('hash'));
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: com_response})
}

function com_response(oJSN)
{
	removeSelectedChildElements($('loading'), 'img');
	var data = eval(oJSN.responseText);

	if(typeof(data) == 'object')
	{
		show_comment(data);

		if ($('total_com')) $('total_com').innerHTML = parseInt($('total_com').innerHTML) + 1;
		if ($('anon')) $('anon').value = '';
		if ($('comment')) $('comment').value = '';

		$('caract').update('('+max_chars+')');
		$('message').update('');
		$('message').removeClassName('error');

	} else {
		$('message').addClassName('error');
		$('message').update(get_error(data));
	}
	$('comment').removeAttribute('disabled');
	$('publish').removeAttribute('disabled');
}

var com = new String('');
function del(id)
{
	com = id.substr(4, id.length);

	if ($('load_'+com))
	{
		$('load_'+com).update('');
		$('load_'+com).insert(ajax_loading);
	}

	var url = uri.base+'/ax/comments.php';
	var pars = 'a=2&f='+encodeURIComponent($F('file'))+'&c_id='+encodeURIComponent(com)+'&fl='+encodeURIComponent($F('this_flog').toLowerCase());
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: del_response})
}

function del_response(oJSN)
{
	if ($('load_'+com)) removeAllChildsElements($('load_'+com));

	var data = eval(oJSN.responseText);

	if (typeof(data) == 'object')
	{
		removeAllChildsElements($('cont_'+data[0].c_id));
		$('cont_'+data[0].c_id).remove();

		if ($('total_com')) $('total_com').innerHTML = parseInt($('total_com').innerHTML) - 1;
	} else {
		$('load_'+com).addClassName('error_type');
		$('load_'+com).update(tf_lang['del_error']);
	}
}

function block(id)
{
	com = id.substr(3, id.length);

	if ($('load_'+com))
	{
		$('load_'+com).update('');
		$('load_'+com).insert(ajax_loading);
	}

	if ($('n_'+com).readAttribute('n') == '') return;

	var f = $('n_'+com).readAttribute('n');
	var url = uri.base+'/ax/comments.php';
	var pars = 'a=3&f='+encodeURIComponent(f);
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: block_response})
}

function block_response(oJSN)
{
	if ($('load_'+com)) removeAllChildsElements($('load_'+com));

	var data = eval(oJSN.responseText);

	if (typeof(data) == 'object')
	{
		$('bl_'+com).onclick = function(){ return 0; };
		$('bl_'+com).update(tf_lang['option_bl']);
	} else {
		$('load_'+com).addClassName('error_type');
		$('load_'+com).update(get_error(data));
	}
}

function get_error(n)
{
	switch (n)
	{
		case 1 : return tf_lang['comment_error_1']; break;

		case 2 : return tf_lang['comment_error_2']; break;

		case 3 : return tf_lang['comment_error_3']; break;

		case 4 : return tf_lang['comment_error_4']; break;

		case 5 : return tf_lang['comment_error_5']; break;

		case 6 : return tf_lang['comment_error_6']; break;

		default : return tf_lang['comment_error_1'];
	}
}