var tf_lang = new Array();

/* importar */
var uri = new Object();

var locat = window.location.href;

locat = (locat.charAt(7) == 'l') ? 'http://localhost/todoflogs' :  'http://static.todoflogs';

if (locat.charAt(7) == 'l')
{
	locat = 'http://localhost/todoflogs';

	uri.base  = locat;
	uri.stat  = locat+'/static.todoflogs.com';
	uri.js    = locat+'/static.todoflogs.com/js';
	uri.img   = locat+'/static.todoflogs.com/img';
	uri.skins = locat+'/skins.todoflogs.com';

}else {

	uri.base  = 'http://www.todoflogs.com';
	uri.stat  = 'http://static.todoflogs.com';
	uri.js    = 'http://static.todoflogs.com/js';
	uri.img   = 'http://static.todoflogs.com/img';
	uri.skins = 'http://skins.todoflogs.com';
}

tf_lang['importar_no_contactos'] = 'No se encontraron contactos.';
/* end importar */

/* registro */
tf_lang['registro_seleccionar'] = 'Seleccionar';
tf_lang['registro_no_ciudades'] = 'No se encontraron ciudades';
tf_lang['registro_datos_error'] = 'Datos err&oacute;neos, verf&iacute;quelos por favor.';
tf_lang['registro_email_hot'] = 'Intenta poner un mail de otra empresa como Yahoo o Gmail.';
tf_lang['registro_email_error'] = 'El e-mail no es v&aacute;lido.';
tf_lang['registro_nombre_error'] = 'El nombre no es v&aacute;lido.';
tf_lang['registro_pass_error'] = 'El password no es correcto.';
tf_lang['registro_nick_error'] = 'El nick ya fue utilizado o no es correcto.';
tf_lang['registro_terminos_error'] = 'Debe aceptar los t&eacute;rminos y condiciones.';
tf_lang['registro_pais_error'] = 'Elija un pa&iacute;s.';
tf_lang['registro_prov_error'] = 'Elija una provincia.';
tf_lang['registro_fecha_error'] = 'Fecha incorrecta.';
tf_lang['registro_emailre_error'] = 'Los e-mails no son iguales.';
tf_lang['registro_ape_error'] = 'El apellido no es v&aacute;lido.';
tf_lang['registro_passre_error'] = 'Los passwords no son iguales';

/* end registro */
tf_lang['personalizar_q'] = 'Seguro que desea borrarla?';
tf_lang['upload_simple'] = '&iquest;Problemas para subir las im&aacute;genes? Pruebe el cargador simple!';
tf_lang['upload_avanzado'] = 'Utilizar el cargador de java avanzado.';
tf_lang['upload_loading'] = 'Subiendo im&aacute;genes...';

/* libro de visitas*/
tf_lang['option_says'] = 'dijo el';
tf_lang['option_del'] = 'Borrar';
tf_lang['option_block'] = 'Bloquear';
tf_lang['option_mod'] = 'Editar';
tf_lang['option_bl'] = 'Bloqueado';
tf_lang['del_error'] = 'Error al borrar el comentario.';
tf_lang['comment_aviso_1'] = 'Debes escribir un comentario.';
tf_lang['comment_aviso_2'] = 'Ingresa tu nombre.';
tf_lang['comment_aviso_3'] = 'Se ha denunciado el archivo. Gracias!';
tf_lang['comment_error_1'] = 'Error de env&iacute;o';
tf_lang['comment_error_2'] = 'El usuario no acepta comentarios.';
tf_lang['comment_error_3'] = 'El usuario solo acepta comentarios de sus amigos.';
tf_lang['comment_error_4'] = 'El usuario te ha baneado, no puedes escribirle comentarios.';
tf_lang['comment_error_5'] = 'El usuario solo acepta comentarios de usuarios registrados.';
tf_lang['comment_error_6'] = 'Error al bloquear al usuario, quiz&aacute;s ya est&aacute; bloqueado.';
tf_lang['comment_error_7'] = 'Ya has denunciado el archivo!';
tf_lang['comment_error_8'] = 'Upsss ha ocurrido un error, Todoflogs.com da muchos m&aacute;s servicios que Fotolog, Flodeo o Metroflog no crees? Invita a tus amigos/as a registrarse a Todoflogs.com <a href="http://www.todoflogs.com/import">aqu&iacute;</a>';
/* libro de visitas*/

/* mensajeria */
tf_lang['pm_confirm'] = '&iquest;Est&aacute; seguro que desea eliminar el mensaje?';
/* mensajeria */

/* comentarios */
tf_lang['comments_confirm'] = 'Est%E1 seguro que desea eliminar el archivo?';
tf_lang['comments_error_f_w'] = 'Upss ha ocurrido un error...revisa los textos!';
/* comentarios */

/**/
tf_lang['notif_notif'] = 'Notificaciones';
tf_lang['notif_cerrar'] = 'Cerrar';
tf_lang['flog_loading'] = 'Cargando, espere por favor...';
/**/
/* edit files */
tf_lang['edit_premium_adv'] = 'Debes ser usuario premium para utilizar este skin.';
tf_lang['edit_files_ok'] = 'Se ha modificado satisfactoriamente.';
tf_lang['edit_files_error'] = 'Error al editar, int&eacute;ntelo mas tarde.';
tf_lang['edit_mp3_error'] = 'Error al subir el mp3 verifique tama&ntilde;o y formato del archivo.';
tf_lang['edit_mp3_error2'] = 'El nombre del archivo no es v&aacute;lido!';
tf_lang['edit_mp3_up'] = 'Subiendo el archivo...';
tf_lang['edit_mp3_eliminar'] = 'Eliminar';
tf_lang['edit_mp3_nombre'] = 'Artista / Tema : ';
tf_lang['edit_mp3_archivo'] = 'Archivo : ';
tf_lang['edit_mp3_no_music'] = 'No tienes m&uacute;sica en tu flog ';
tf_lang['file_question'] = '&iquest;Est&aacute; seguro que desea borrar el archivo?';
tf_lang['friends_q'] = '&iquest;Est&aacute; seguro que desea eliminar este amigo?';
tf_lang['title_premium_adv'] = 'Debes ser usuario premium para utilizar &eacute;sta herramienta! ';
/**/

/* forbidden words */
var f_words = new Array('fotolog', 'flodeo', 'metroflog');

/*
* TODOFLOGS Main Javascript
*/

/**
* Check all checkboxes that are child elements of the passed in element.
* @param {String} elem startiing element
*/
function setCheckboxGroup(elem, checked)
{
	$(elem).select('input[type=checkbox]').each(function(item) {
		item.checked = checked;
	});
}

/**
* Return the number of checkboxes checked within a form.
* @param {String}	form	The form id or obj
*/
function returnCheckboxCheckedCount(form)
{
	var count = 0;
	$(form).getInputs('checkbox').each(function(item) {
		if (item.checked) {
			count++;
		}
	});
	return count;
}

/**
* Toggle a between two classes, by replacing one class with the other class.
* @param {Stirng || obj} 		element id or element obj
* @param {String}	class1		className to toggle
* @param {String}	class2		className to toggle
*/
function toggleClasses(elem, class1, class2)
{
	var el = $(elem);
	if (el.hasClassName(class1)) {
		el.removeClassName(class1);
		el.addClassName(class2);
	} else if (el.hasClassName(class2)) {
		el.removeClassName(class2);
		el.addClassName(class1);
	}
}

/**
* Return the first sibling that matches the passed in selector.
* @param {String}	elem		starting element (searching siblings only)
* @param {String}	selector	CSS selector to find
*/
function getMatchingSibling(elem, selector)
{
	return $(elem).siblings().find(function(el) {
		return el.match(selector);
	});
}
/**
* Return the first Ancestors that matches the passed in selector.
* @param {String}	elem		starting element (searching ancestors element nodes only)
* @param {String}	selector	CSS selector to find
*/
function getMatchingAncestors(elem, selector)
{
	return $(elem).ancestors().find(function(el) {
		return el.match(selector);
	});
}
/**
* Return the first Descendants that matches the passed in selector.
* @param {String}	elem		starting element (searching descendants element nodes only)
* @param {String}	selector	CSS selector to find
*/
function getMatchingDescendants(elem, selector)
{
	el = $(elem).select(selector);
	return el[0];
}

/**
*  Add or remove a class to an element
*  @param {String} elem - target element
*  @param {boolean} select
*  @param {String} className - name of the class to add or remove
*/
function highlightElement(elem, select, className)
{
	if(select){
		$(elem).addClassName(className);
		$(elem).next('tr').addClassName(className);
	}
	else{
		$(elem).removeClassName(className);
		$(elem).next('tr').removeClassName(className);
	}
}

/**
*  Add or remove a class to a group element
*  @param {String} elem - starting element (searching descendants element nodes only)
*  @param {boolean} select
*  @param {String} className - name of the class to add or remove
*  @param {String} selector - CSS selector to find
*/
function highlightGroupElement(elem, select, className, selector)
{
	$(elem).select(selector).each(function(item) {
		if(select){
			item.addClassName(className);
			item.next('tr').addClassName(className);
		}else{
			item.removeClassName(className);
			item.next('tr').removeClassName(className);
		}
	});
}

/* onwheel extension */
//Object.extend(Event, {
//	wheel:function (event){
//		var delta = 0;
//		if (!event) event = window.event;
//		if (event.wheelDelta) {
//			delta = event.wheelDelta/120;
//			if (window.opera) delta = -delta;
//		} else if (event.detail) { delta = -event.detail/3;	}
//		return Math.round(delta); //Safari Round
//	}
//});

function decode_utf8(s)
{
	return decodeURIComponent( escape( s ) );
}

function encode_utf8(s)
{
	return unescape( encodeURIComponent( s ) );
}

function getProvinces()
{
	removeAllChildsElements($('select_pr'));

	var url = uri.base+'/ax/zones.php';
	var pars = 'c='+escape($F('select_co'))+'&p=0';
	var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: provinces})
}

function provinces(oJSN)
{
	var data = eval(oJSN.responseText);

	$('select_pr').insert(new Element('option', {'value': '0'}).update(tf_lang['registro_seleccionar']));

	if(data)
	for (var i = 0; i < data.length; i++)
	$('select_pr').insert(new Element('option', {'value': data[i].id}).update(data[i].nombre));

	if ($('select_pr_ac')) removeAllChildsElements($('select_pr_ac'));
}

function toggle_adv()
{
	if ($('avanzada').hasClassName('hide'))
	{
		$('avanzada').removeClassName('hide');
		if ($('w_status')) $('w_status').value = 1;
	} else {
		$('avanzada').addClassName('hide');
		if ($('w_status')) $('w_status').value = 0;
	}
}

function toggle_search()
{
	if ($('search').hasClassName('hide'))
	{
		$('search').removeClassName('hide');
	} else {
		$('search').addClassName('hide');
	}
}

function toggle_item(item)
{
	if ($(item).hasClassName('hide'))
	{
		$(item).removeClassName('hide');
	} else {
		$(item).addClassName('hide');
	}
}

function removeSelectedChildElements(elem, type)
{
	$(elem).select(type).each(function(item) {
		item.remove();
	});
}

function removeAllChildsElements(elem)
{
	$(elem).descendants().each(function(item) {
		item.remove();
	});
}

function center_object(obj)
{
	if(obj != null)
	{
		if (typeof window.innerHeight != 'undefined')
		var screen_size = window.innerHeight;
		else
		var screen_size = document.documentElement.clientHeight;

		var scroll = obj.cumulativeScrollOffset();
		var top = Math.round(scroll[1] + ((screen_size - obj.getHeight())) / 2);

		var margin = obj.getWidth() / 2;

		obj.setStyle({'position' : 'absolute', 'top' : top+'px', 'left' : '50%', 'marginLeft' : '-'+margin+'px'});
	}
}

function put_layer()
{
	var body = $('body');
	var div_layer = new Element('div', {'id': 'layer'});
	div_layer.setStyle({'width' : body.getWidth()+'px', 'height':body.getHeight()+'px'});
	body.insert(div_layer);
}

function locateElement(refElem, elem, marginTop, marginLeft)
{
	var a = refElem.positionedOffset();
	elem.setStyle({left: (a[0] + marginLeft)+'px', top: (a[1] + $(refElem).getHeight() + marginTop)+'px'});
}

function send(form)
{
	$(form).submit();
}

if (document.images)
{
	ajax_loading = new Element('img',{'src' : uri.img+'/ajax_loader.gif', 'width' : '16px', 'height' : '16px'});
	img_wrong = new Element('img',{'src' : uri.img+'/wrong.jpg', 'width' : '20px', 'height' : '20px'});
	img_good = new Element('img',{'src' : uri.img+'/good.jpg', 'width' : '20px', 'height' : '20px'});
	img_alert = new Element('img',{'src' : uri.img+'/alert.jpg', 'width' : '20px', 'height' : '20px'});
}

function showError(obj, message)
{
	$(obj).addClassName('error');
	$(obj).update('<img src="'+img_wrong.src+'"/> '+message);
}

function removeError(obj)
{
	$(obj).removeClassName('error');
	$(obj).update('');
}

function show_sys_m(answer, obj, texto)
{
	$(obj).insert(new Element('img',{'src' : answer ? img_good.src : img_wrong.src}));
	if (texto != '') $(obj).insert('<span class="texto_peq color_texto">&nbsp;'+texto+'</span>');
}

function question_box(id, call_function, q)
{
	if ($('question_box')) return false;

	var div = new Element('div',{'id' : 'question_box', 'class' : 'file_box archivo_texto del_box', 'style' : 'display:none;'});
	div.insert(new Element('div', {}).update(q));
	div.insert(new Element('br', {}));
	var div2 = new Element('div', {});
	div2.insert(new Element('input', {'type' : 'image', 'id' : 'borrar', 'id_c' : id, 'src' : uri.img+'/aceptar.jpg'}));
	div2.insert(new Element('input', {'type' : 'image', 'id' : 'cancelar', 'src' : uri.img+'/cancelar.jpg'}));
	div.insert(div2);

	$('body').insert(div);
	center_object(div);
	if (div.getStyle('display') == 'none')	Effect.toggle('question_box', 'appear', {duration:0.5, from:0, to:1.0});

	Event.observe('borrar', 'click', function(){call_function(id);});
	Event.observe('cancelar', 'click', function(){close_effect('question_box');});
	Event.observe(window, "scroll", function(){follow_obj(div);}, false); // Firefox
}

function create_advice(text)
{
	if ($('advice_box')) return false;

	var div = new Element('div',{'id' : 'advice_box', 'class' : 'file_box archivo_texto del_box', 'style' : 'display:block;'});
	div.insert(new Element('div', {'height' : '30px'}).update('<img src="'+img_alert.src+'" style="float:left;"/><div style="margin-left:3px;margin-top:3px; float:left;">'+text+'</div>'));
	div.insert(new Element('br', {}));
	div.insert(new Element('br', {}));
	var div2 = new Element('div', {});
	div2.insert(new Element('input', {'type' : 'image', 'id' : 'aceptar', 'src' : uri.img+'/aceptar.jpg'}));
	div.insert(div2);

	$('body').insert(div);
	center_object(div);
	if (div.getStyle('display') == 'none') Effect.toggle('advice_box', 'appear', {duration:0.5, from:0, to:1.0});

	Event.observe('aceptar', 'click', function(){close_effect('advice_box');});
}

function check_f_words(text)
{
	if (!text) return true;
	
	for (var i=0; i < f_words.length; i++)
	{
		var b = text.toLowerCase();
		b = b.replace(/\s/g, '');

		if (b.indexOf(f_words[i]) != -1) return false;
	}
	return true;
}

/* chequea los elementos de un formulario que no contengan palabras prohibidas */
function check_words(event)
{
	var obj = Event.element(event);

	$(obj).getElements().each(function(item)
	{
		if (!check_f_words($F(item)))
		{
			Event.stop(event);
			showError($('m_message'), tf_lang['comment_error_8']);
			$('m_message').scrollTo();
			return;
		}
	});
}

function show_loading(text)
{
	if ($('div_loading')) return false;
	
	var div = new Element('div', {'class' : 'file_box archivo_texto del_box', 'id' : 'div_loading'});
	div.insert('<span>'+text+'</span>');
	div.insert(ajax_loading);
	$('body').insert(div);
	center_object(div);
	Event.observe(window, "scroll", function(){follow_obj(div);}, false); // Firefox
}

function close_effect(id, effect)
{
	if (elem = $(id))
	{
		if (elem.getStyle('display') != 'none') Effect.toggle(id, effect);
		setTimeout('remove_elem(\''+id+'\')', 1000);
	}
}

function remove_elem(elem)
{
	if ($(elem)) $(elem).remove();
}

function sleep(millisec)
{
	var now = new Date();
	var exit_time = now.getTime() + millisec;
	while(true)
	{
		now = new Date();
		if(now.getTime() > exit_time) return;
	}
}

function follow_obj(obj)
{
	if (obj) center_object(obj);
}

Event.observe(window, 'load', function()//search bar
{
	if ($('close_adv')) {Event.observe('close_adv', 'click', toggle_adv);}
	if ($('open_adv')) {Event.observe('open_adv', 'click', toggle_adv);}
	if ($('open_search')) {Event.observe('open_search', 'click', toggle_search);}
	if ($('select_co')) {Event.observe('select_co', 'change', getProvinces)};
});