function user(){

}

/*### ### ### ### ### ### ### ### ### Funciones chachis ### ### ### ### ### ### ### ### ### ### ### */
function append(parent, el){
    return goog.dom.appendChild(parent, el);
}
function unappend(el){
    return goog.dom.removeNode(el);
}
function create(eltype, classnm){
    eltype = eltype || 'div';
    var item = goog.dom.createDom(eltype);
    if(classnm) item.className = classnm;
    return item;
}
function display(el){
    if(!el) return false;
    return el.style.display = '';
}
function displaynone(el){
    return el.style.display = 'none';
}
function displaytoggle(el){
    if(el.style.display == 'none') return display(el);
    else return displaynone(el);
}
function listen(obj, etype, handler, methode){
    if(!methode) methode = 'closure';
    if(typeof G != 'undefined' && obj instanceof G.MVCObject) methode = 'maps';
    var ev;
    var evF;
    switch(methode){
        case 'mapsdom':
            evF = G.event.addDomListener;
        break;
        case 'maps':
            evF = G.event.addListener;
        break;
        case 'closure':/*
            evF = goog.events.listen;
        break;*/
        default:
            evF = goog.events.listen;
    }
    ev = evF(obj, etype, handler);
    ev.method = methode;
    return ev;
}
function unlisten(listener){
    if(!listener) return;
    switch(listener.method){
        case 'mapsdom':
        case 'maps':
            evF = G.event.removeListener;
        break;
        case 'closure':
        default:
            evF = function(lis){
                if(typeof lis == 'number') return goog.events.unlistenByKey(lis);
                else return lis.removed = true;
            };
    }
    return evF(listener);
}
function trigger(obj, etype, args){
    if(typeof obj.dispatchEvent == 'function'){
//         try{
//             return obj.dispatchEvent({type: etype, arg: args});
//         }catch(Ex){
//             GT.error(Ex);
//             return false;
//         }
        return goog.events.dispatchEvent(obj, {type: etype});
    }
    return G.event.trigger(obj, etype, args);
}
function addClassName(obj, cn){
    if(!obj.className.match(new RegExp(cn, "gi"))) obj.className += " "+cn;
}
function removeClassName(obj, cn){
    obj.className = obj.className.replace(new RegExp(cn, "gi"), "");
}
// function getFlashMovie(name){
//     if(navigator.appName.indexOf('Microsoft') != -1)
//         return window[name];
//     else
//         return document[name];
// }
//per fer un callback concret a xajax es necessiten varies linies de codi, amb aquesta funció només cal una
function xajaxCallback(func){
    cl = xajax.callback.create();
    cl.onComplete = func;
    return cl;
}

function set_cookie( name, value, expires, path, domain, secure )
{
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}
// this fixes an issue with the old method, ambiguous values
// with this test document.cookie.indexOf( name + "=" );
function get_cookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );


		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}

/*### ### ### ### ### ### ### ### ### Funciones menos chachis ### ### ### ### ### ### ### ### ### ### ### */

var total_amigos_seleccionar = 0;
var id_amigos_counter = 'count_lista_amigos';
var id_amigos_seleccionados_counter = 'count_seleccionados_amigos';
function amigos_seleccionar(id){
	if(!id){
		id = id_amigos_counter;
	}
	if(!total_amigos_seleccionar) total_amigos_seleccionar = $(id).value;
	var lista = [];
	var z = 0;
	for (var i = 0; i<total_amigos_seleccionar; ++i){
		var d = $('amigo_'+i);
		if(d && d.checked){
			lista.push(d.value);
			if(z > 30) break;
			z++;
		}
	}

	if($(id_amigos_seleccionados_counter)) $(id_amigos_seleccionados_counter).innerHTML = z;

	return lista;
}

function amigos_seleccionar_all_none(all){
	amigos_seleccionar();
	for (var i = 0; i<30; ++i){
		var d = $('amigo_'+i);
		if(all) amigos_checkit(d);
		else amigos_uncheckit(d);
	}
	amigos_seleccionar();
}

function amigos_checkit(d){
	d.checked = true;
	d.parentNode.style.background='gray';
}

function amigos_uncheckit(d){
	d.checked = false;
	d.parentNode.style.background='transparent';
}

function amigos_alternacheck(d){
	if(d.checked) amigos_checkit(d);
	else amigos_uncheckit(d);
	amigos_seleccionar();
}




function inserta_link(){
	var init = $('Comments').value;
	var nom = prompt('Nombre a mostrar del link');
	if(nom!=null){
		var lin = prompt('Dirección del link', 'http://');
		if(lin != null && lin != 'http://'){
			$('Comments').value = init+"\n\n"+"[link='"+lin+"']"+nom+"[/link]";
		}
	}
}
function inserta_link_Fid(id){
	var init = $(id).value;
	var nom = prompt('Nombre a mostrar del link');
	if(nom!=null){
		var lin = prompt('Dirección del link', 'http://');
		if(lin != null && lin != 'http://'){
			$(id).value = init+"\n\n"+"[link=\""+lin+"\"]"+nom+"[/link]";
		}
	}
}
function inserta_link_Fid2(id){
	var init = $(id).value;
	var nom = prompt('Nombre a mostrar del link');
	if(nom!=null){
		var lin = prompt('Dirección del link', 'http://');
		if(lin != null && lin != 'http://'){
			$(id).value = init+"\n\n"+"<a href='"+lin+"' target='_blank'>"+nom+"</a>";
		}
	}
}
/*
function carga_notis(){
	if($('notificaciones').style.display=='none'){
// 		$('link_notis').innerHTML = "Ocultar";
// 		$('notificaciones').innerHTML = "";
		$('notificaciones').style.display='';
		xajax_notificaciones();
	}else{
		$('link_notis').innerHTML = "Notificaciones (0)";
		$('notificaciones').style.display='none';
	}

}*/

function timeout(){
	xajax_compro_notis();
	setTimeout("timeout();", 10000);
}


function timeout_prov(cod, time){
	if(time == null) time = 3000;
	cod += " timeout_prov(\""+cod+"\", "+time+");";
	setTimeout(cod, time);
}

var merter = false;
// function megaventana(){
// 	if(!$('titulomega')){
// 		setTimeout('megaventana();', 500);
// 		return;
// 	}
// 	$('titulomega').innerHTML='<h3>Cargando...</h3>';
// 	$('megaventana').style.display='';
// 	$('megaventana').style.top=document.body.scrollTop+200+'px';
// 	$('contenidomega').innerHTML='<img src="ajax-loader.gif">';
// 	centramegaventana();
// 	merter = true;
// 	setTimeout("merter=false;", 500);
// }
// function centramegaventana(){
// 	var centro = document.body.offsetWidth/2;
// 	pos = centro-(parseInt($('megaventana').style.width)/2);
// 	$('megaventana').style.left=parseInt(pos)+'px';
// }
//
// function megaventanaout(){
// 	if(!merter) $('megaventana').style.display='none';
// }
var modify=false;
function valida_coment(){
	var texto = document.getElementById('Comments').value;
	if(texto == ''){
		$('megaviso').innerHTML = "Tu comentario está en blanco.";
		setTimeout("$('megaviso').innerHTML = '';", 2000);
	}else{
		xajax_ajaxcoment(xajax.getFormValues('form_coments'), modify);
	}
}
function valida_miniblog(){
	var texto = document.getElementById('minipostext').value;
	if(texto == ''){
		$('megaviso').innerHTML = "No puedes dejar el texto en blanco";
		setTimeout("$('megaviso').innerHTML = '';", 2000);
	}else{
		xajax_minipost(xajax.getFormValues('form_miniblog'));
	}
}

function comprueba_limite(lim, id){
// 	var total = $(id).value.length;
// 	if(total >= lim){
// 		megaventana();
// 		xajax_alert('Has alcanzado el límite de carácteres ('+lim+')', 'Limite de carácteres');
// 		return false;
// 	}
// 	return true;
}


function getTipo2FormValue(){
	for(var a in $("tipo2form").tipo2){
		if($("tipo2form").tipo2[a].checked)
			return $("tipo2form").tipo2[a].value;
	}
	return false;
}
/*
function procesaprompt(proctype, meta, id2){
	if(typeof proctype == 'undefined') return false;
	if(typeof id2 == 'undefined') id2 = 0;
	var val = $('prompt').value;
	if(!val || val == ''){
		alert("Debes describir el motivo de la denuncia con un breve texto.");
		return false;
	}
	$('contenidomega').innerHTML='<img src="ajax-loader.gif">';
	xajax_procprompt(val, proctype, meta, id2);
}*/

/* function initialize(){
	timeout();
} */

function setCargando2(ide){
	if($('LoadingLayer_'+ide)) return false;
	var X = $(ide).offsetWidth;
	var Y = $(ide).offsetHeight;

	var Xp = $(ide).offsetLeft;
	var Yp = $(ide).offsetTop;

	var D = goog.dom.createDom('div', {style: "position: absolute;"});
	var img = goog.dom.createDom('img', {style: "position: absolute;", src: '/images/cargando.gif'});
	goog.style.setInlineBlock(img);

	img.style.left = ((X/2)-28)+"px";
    img.style.top = /*((Y/2)-10)+"px"*/"50px";

	D.style.left = Xp;
	D.style.top = Xp;
	D.style.width = X+'px';
	D.style.height = Y+'px';
// 	D.style.padding = ((X/2)-28)+"px";

	D.style.background = 'white';
	D.style.zIndex = 500;
	D.id = "LoadingLayer_"+ide;

	goog.dom.appendChild(D, img);

	goog.style.setOpacity(D, 0.8);

	goog.dom.insertSiblingBefore(D, $(ide));
}


function unSetCargando(ide){
	if(!ide) ide = '';
	else ide = '_'+ide;
	if($('LoadingLayer'+ide)) goog.dom.removeNode($('LoadingLayer'+ide));
}
function unSetLoadingBg(ide){
	obj = typeof ide == 'object' ? ide : $(ide);
	obj.className = obj.className.replace(/loading_bg/g, '');
}
/* ###################################################### tabber ###################################################### */
function tabber(module, titulo){
	this.tabs = [];
	this.contents = [];
	this.module = module;
	this.module.style.paddingTop = titulo ? '50px' : '35px';
	this.toptitle = goog.dom.createDom('div', 'titulo', titulo);
	this.topcont = goog.dom.createDom('div', {style: 'position: absolute; top:0px; left:0px; width: '+(module.offsetWidth-2)+'px;'});
	var tabcont = goog.dom.createDom('div');
	this.tabContainer = tabcont;
	this.actualContent = false;
	this.actualContentNum = false;
	goog.dom.appendChild(this.topcont, this.toptitle);
	goog.dom.appendChild(this.topcont, this.tabContainer);
	goog.dom.appendChild(this.module, this.topcont);
	this.fakeContainer = goog.dom.createDom('div', {style:"display: none;"});
	goog.dom.appendChild(this.module, this.fakeContainer);
}
tabber.prototype.addTab = function(nombre, theselected, callback, more){
	var classe = (!this.tabs.length) ? " moduletab first " : " moduletab ";
	if(theselected) classe += " selected ";
	var obja =  typeof theselected == 'undefined' || !theselected ?
		{style: 'cursor: pointer'}
		:
		'';
// 	obja.className = classe;

	var tab = goog.dom.createDom('div', obja, nombre);
	tab.className = classe;
	var that = this;
	goog.events.listen(tab, 'click', function(){
		that.selectTab(this.pos);
	});
	if(more && !this.moreTab) /*return */this.addMoreTab();
	if(callback) goog.events.listen(tab, 'click',callback);

	this.tabs.push(tab);
	this.tabs[this.tabs.length-1].pos = this.tabs.length-1;
	goog.dom.appendChild((this.moreTabContainer || this.tabContainer), this.tabs[this.tabs.length-1]);
};
tabber.prototype.addContent = function(divi, theselected){
	var content = divi;
	this.contents.push(content);
	if(typeof theselected != 'undefined' && theselected) this.selectContent(this.contents.length-1);
};
tabber.prototype.selectTab = function(tnum){
	this.restauraTabs();
	this.actualTabNum = tnum;
	var tab = this.tabs[tnum];
	tab.className += " selected ";
	this.selectContent(tnum);
	if(this.changeTabHandler) this.changeTabHandler();
};
tabber.prototype.restauraTabs = function(){
	for(var a in this.tabs){
		if(this.tabs[a].style){
			this.tabs[a].className = this.tabs[a].className.replace('selected', '');
		}
	}
};
tabber.prototype.selectContent = function(num){
	for(var a in this.module.childNodes){
		this.module.childNodes == this.contents[num];
		goog.dom.removeNode(this.contents[num]);
	}
	if(this.actualContentNum !== false || this.actualContent){
		if(this.actualContent.style) this.actualContent.style.display='none';
		goog.dom.removeNode(this.actualContent);
	}
	if(typeof this.contents[num] == 'string'){
		this.fakeContainer.innerHTML = this.contents[num];
		this.actualContent = this.fakeContainer;
	}else if(typeof this.contents[num] == 'undefined'){
		this.contents[num] = goog.dom.createDom('div');
		this.actualContent = this.contents[num];
	}else if(typeof this.contents[num] == 'function'){
		this.actualContent = this.contents[num];
		return this.actualContent();
	}else{
		this.actualContentNum = num;
		this.actualContent = this.contents[num];
	}
	this.actualContent.style.display = '';
	goog.dom.appendChild(this.module, this.actualContent);
};
tabber.prototype.addMoreTab = function(){
	var classe = " moduletab moretab ";

	var tab = goog.dom.createDom('div', null, 'Más');
	tab.className = classe;
	this.moreTab = tab;

	goog.dom.appendChild(this.tabContainer, this.moreTab);

	this.moreTabContainer = goog.dom.createDom('div', 'moretab_container');
	this.moreTabContainer.style.top = parseInt(this.moreTab.offsetHeight+this.toptitle.offsetHeight-2)+'px';
	goog.dom.appendChild(this.moreTab, this.moreTabContainer);
};
tabber.prototype.nextTab = function(){
	if(this.actualTabNum == this.tabs.length-1){
		this.selectTab(0);
	}else{
		this.selectTab(this.actualTabNum+1);
	}
};
tabber.prototype.setChangeTabHandler = function(handler){
	this.changeTabHandler = handler || function(){};
};

/* ########################################################## slider ########################################################## */

function slider(cont, slide){
	this.container = cont;
	this.slide = slide;
	this.slide.style.position = 'relative';
	this.duration = 2000;
	this.actualPosition = 0;
	this.initialPosition = 0;
	this.rightMoves = 0;
	this.leftMoves = 0;
	this.Moves = 0;
}
slider.prototype.rightMove = function(hmany){
	var one = this.container.offsetWidth;
	if(typeof hmany == 'undefined') hmany = 1;
	this.Moves += hmany;

	var newposition = this.actualPosition - (one*hmany);

	var anim = new goog.fx.dom.Slide(this.slide, [this.actualPosition, 0], [newposition, 0], this.duration, goog.fx.easing.easeOut);

	if( this.canGoRight(newposition) ){
		this.leftMove(this.Moves-hmany);
	}else{
		this.actualPosition = newposition;
		anim.play();
	}
}
slider.prototype.leftMove = function(hmany){
	if(typeof hmany == 'undefined') hmany = 1;
	this.rightMove(-hmany);
}
slider.prototype.canGoRight = function(newposition){
	return Math.abs(newposition) > this.slide.offsetWidth;
}
slider.prototype.canGoLeft = function(newposition){
	return -newposition < this.initialPosition;
}
/* ################################################## Material ################################################# */
function descargar_material(tipo_ref, id_ref){
	window.open('/descargar.php?type_ref='+tipo_ref+'&id_ref='+id_ref);
}

/* ################################################## USERBAR ################################################# */
function userbar(barra, initContainer){
	this.bar = barra;
	this.Desplegables = [];
	var that = this;
	this.positioningContainer = initContainer;

	this.oldX = false;
	this.oldY = false;

// 	this.barContainer = goog.dom.createDom('div', {style: 'position: absolute; top: 0px; left: 0px;'});
// 	goog.dom.appendChild(document.body, this.barContainer);
	this.barContainer = $('USER_BAR_CONTAINER');
// 	this.barContainer.style.zIndex = 748974;

	this.listener = goog.events.listen(window, 'scroll', function(){
		s = that.getTopscroll();
		if (s > that.getOffsetTop()[1] && that.bar != that.barContainer.firstChild) {
			that.LetsParty();
		}else if(s < that.positioning && that.bar == that.barContainer.firstChild){
			that.Resaca();
		}else if (that.bar == that.barContainer.firstChild){
			that.setTop(s);
		}else{
			that.setOldTop();
		}
	});
}
userbar.prototype.getTopscroll = function(){
	if (self.pageYOffset){
		 s = self.pageYOffset;
	 }else if (document.documentElement && document.documentElement.scrollTop) {
		 s = document.documentElement.scrollTop;
	 }else if (document.body) {
		 s = document.body.scrollTop;
	}

	return s;
}
userbar.prototype.setTop = function(s){
	var NX = this.positioningX;
	var NY = s;
	if(this.anim) this.anim.stop();
	this.anim = new goog.fx.dom.Slide(this.bar, [parseInt(this.bar.style.left), parseInt(this.bar.style.top)], [NX, NY], 200, goog.fx.easing.easeOut);
	this.anim.play();
}
userbar.prototype.setOldTop = function(){
	if(this.oldX === false) return false;
	if(this.anim) this.anim.stop();
	this.bar.style.position = this.oldPos;
	this.bar.style.top = this.oldY+'px';
	this.bar.style.left = this.oldX+'px';
};
userbar.prototype.LetsParty = function(){
	this.positioning = this.getOffsetTop()[1];
	this.positioningX = this.getOffsetTop()[0];
	if(!this.oldX && !this.oldY){
		this.oldX = this.bar.offsetLeft;
		this.oldY = this.bar.offsetTop;
		this.oldPos = this.bar.style.position;
	}
	goog.dom.removeNode(this.bar);
	goog.dom.appendChild(this.barContainer, this.bar);
    addClassName(this.bar, 'floating');
	this.bar.style.position='absolute';
	this.bar.style.top = this.getTopscroll()+'px';
	this.bar.style.left = this.positioningX+'px';
};
userbar.prototype.Resaca = function(){
	if(this.anim) this.anim.stop(false);
    removeClassName(this.bar, 'floating');
	goog.dom.removeNode(this.bar);
	goog.dom.appendChild(this.positioningContainer, this.bar);
	var that = this;
	this.setOldTop();
};
userbar.prototype.getOffsetTop = function(){
	if(!this.baloo){
		var obj = this.bar;

		var curleft = curtop = 0;

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

			this.baloo = [curleft,curtop];
		}
	}
	return this.baloo;
}

userbar.prototype.addDesplegable = function(button, div, func, func2){
	var desp = new desplegable_userbar(button, div, func, func2);
	var that = this;
// 	goog.events.listen(desp, 'readystatechange', function(){
// 		that.hideDesplegables();
// 	});
	desp.popa.addEventListener(goog.ui.PopupBase.EventType.BEFORE_SHOW, function(){
		that.hideDesplegables();
	});
	this.Desplegables.push(desp);
}

userbar.prototype.hideDesplegables = function(){
	for (var a in this.Desplegables){
		this.Desplegables[a].Close();
	}
}

function desplegable_userbar(button, div, func, func2){
	this.div = div;
	this.button = button;

	this.popa = new goog.ui.Popup(this.div);
	this.popa.setHideOnEscape(true);
	this.popa.setAutoHide(true);
	this.buttonCorner = goog.positioning.Corner.BOTTOM_RIGHT;
	this.menuCorner = goog.positioning.Corner.TOP_RIGHT;
	this.popa.setPinnedCorner(this.menuCorner);
	this.popa.setPosition(new goog.positioning.AnchoredViewportPosition(this.button,this.buttonCorner));

	this.action = func;
	this.action2 = func2;

	this.div.style.display = 'none';

	var that = this;
	goog.events.listen(this.popa, 'mouseover', function(){
		that.canHide = false;
	});
	goog.events.listen(this.popa, 'mouseout', function(){
		that.canHide = true;
	});
	goog.events.listen(this.button, 'click', function(){
		if(!that.popa.isVisible()){
// 			that.action();
			that.Open();
		}else if ( that.canHide){
			that.action();
			setTimeout(function(){that.Close();}, 100);
		}
	});
	/*
	goog.events.listen(this.button, 'click', function(){
		that.action2();
		that.Close();
	});*/
// 	this.popa.addEventListener(goog.ui.PopupBase.EventType.BEFORE_SHOW, function(){
// 		that.dispatchEvent({type: 'readystatechange', target: null});
// 	});
// 	goog.events.listen(this.popa, goog.ui.PopupBase.EventType.BEFORE_SHOW, function(){
// 		that.dispatchEvent({type: goog.ui.PopupBase.EventType.BEFORE_SHOW, target: null});
// 	});
}

desplegable_userbar.prototype.Open = function(){
	this.popa.setVisible(true);
	this.action();
}

desplegable_userbar.prototype.Close = function(){
	this.popa.setVisible(false);
}


/* ################################################## INIT ################################################# */
if(typeof init_functions == 'undefined') init_functions = [];
var RIJP;
var RIJHistory = new goog.History;
var RIJ_last_url = "";
var UrlManager = new GTurlManager;

function init_rij(){
    rij_init_proc();
//     showBanners();
// 	rij_history = new goog.History();
	rij_format_links();
    rij_load_player();

    RIJHistory.setEnabled(true);
    if(!RIJHistory._rijevent)
        RIJHistory._rijevent = goog.events.listen(RIJHistory, goog.History.EventType.NAVIGATE, function(e){
            var token = e.token.replace('!/', '');
			if(token == ""){
				var indexOf = location.href.indexOf('#');
				if(indexOf > 0) token = location.href.substr(0,indexOf);
			}
            if(token/* && RIJ_last_url*/){
                if(RIJ_last_url != token) /*alert(token);*/ rij_go(token);
            }
        });

//   var h = new goog.History(true, 'history_blank.html');
//   goog.events.listen(h, goog.History.EventType.NAVIGATE, navCallback);
//   h.setEnabled(true);
//
//   function setToken(opt_token) {
//       var input = goog.dom.getElement('token_input');
//           h.setToken(opt_token || input.value);
//   }
//
//     function replaceToken(opt_token) {
//         var input = goog.dom.getElement('token_input');
//             h.replaceToken(opt_token || input.value);
//     }
//
//       function navCallback(e) {
//           var output = goog.dom.getElement('token_output');
//               if (output) {
//                   var token = (e.token == null) ? 'null' : '\u201C' + e.token + '\u201D';
//                   goog.dom.setTextContent(output, token);
//               }
//       }

}
function rij_load_player(){
    RIJP = new RIJplayer();
    RIJP.init();
}
function rij_init_proc(){
    //cosas al inicio
    if(!$("custom_style_link").href.match("custom_style.css")) $("custom_style_link").href = "custom_style.css";
//     for(var a in init_functions){
    var max = init_functions.length;
    for(var a=0; a<max; ++a){
        if(typeof init_functions[0] == 'function') init_functions[0]();
        init_functions.splice(0,1);
//         delete init_functions[a];
    }

}
function rij_format_links(){
    var as = $("pagina").getElementsByTagName("a");
    for(var a in as){
        if(as[a] && as[a].href && !as[a].href.match(/#|(javascript|jpg|jpeg|gif|png)/ig)){
            if(as[a].rij_format_listener || as[a].rel.match(/rij_format_protected/g)) continue;
            as[a].rij_format_listener = listen(as[a], 'click', function(e){
                e.preventDefault();
				if(e.ctrlKey || e.isButton(2)) return window.open(this.href);
                rij_go(this.href);
            });
        }
    }
}
function rij_format_forms(){
    var as = $("pagina").getElementsByTagName("form");
    for(var a in as){
        if(typeof as[a] != 'undefined' /*&& as[a].action*/){
			var act = as[a].action;
			if(!act || act.match('frameUpload')) continue;
			var params = UrlManager.getParamsListFromUrl(as[a].action);
			var url = RIJ_last_url;
			for(var b in params){
				if(params[b]) url = UrlManager._updateUrlParam(b, params[b], url);
			}
            as[a].action = url;
        }
    }
//     zzzzz = as;
}
// var SCRIPT;
function module_request_callback(response){
    if(!response || !response.responseText) return false;
    $('content').innerHTML = /*rt*/response.responseText;
    var rt = response.responseText;
//     rt = rt.replace(/\/\*.*\*\//g, '');
//     rt = rt.replace(/\/\/.*/g, '');
    rt = rt.replace(new RegExp('\\n','g'), "/**###*/");

    var re = /<script.*?>(.*?)<\/script/igm;
//         re.lastIndex = 0;
//     SCRIPT = re.exec(rt);
    var match;
    while (match = re.exec(rt)) {
        if(typeof match[1] == 'string'){
            var mtx = match[1].replace(/(\/\*\*\#\#\#\*\/)+/g, "\n");
            if(mtx.match(/document\.write/ig)) continue;
			mtx = mtx.replace(/(var)( )((?:[a-z][a-z]+))/gi, "$3");
			mtx = mtx.replace(/(function)(\s+)((?:[a-z][a-z]+))(\(.*\))/gi, "$3 = $1$4");
            try{eval(mtx);}catch(test){}
        }
    }

    rij_init_proc();
//     showBanners();
    rij_format_links();
	rij_format_forms();
}
function rij_go(url){
    if(!url) return false;
// 	url = url.substr(url.indexOf('/'));
//     hideBanners();
//     alert(url);
	var indexOf = url.indexOf("rapinjam");
    if(url.match(/(http)/) && (indexOf == -1 || indexOf > 15)) return window.open(url);
    else rij_setUrl(url);

    var ref = url.replace(/index.php/ig, 'request_module.php');

//     var url_add = "";
//     if(!url.match('ajax_url')) url_add = (ref.match(/\?/) ? "&" : "?") + "ajax_url=1";
    url = UrlManager._updateUrlParam("ajax_url", 1, url);


	var _gaq = _gaq || [];
	_gaq.push(['_trackPageview', url]);
    RIJAPI_ajax_request('GET', url, module_request_callback);
    $('content').innerHTML = "<div class='loading_bg' style='height: 50px;'></div>";
//     rij_history.setToken(url);
}
function rij_setUrl(url){
    var lastin = url.lastIndexOf("#");
    lastin = lastin > 0 ? lastin : url.replace('http://','').indexOf("/")/*+7*/;
    if(url.match(/rapinjam\.com/)) url = lastin > 0? url.substr(lastin+8) : url;

    var nurl = location.href;
    var lastin = nurl.lastIndexOf("#");
        lastin = lastin > 0 ? lastin+3 : lastin;
    nurl = nurl.substr(0,lastin);
    var alm = nurl.match('#!/') ? "" : "!/";
    RIJ_last_url = url;
    var new_url = nurl+alm+url;
    if(new_url.match('#')) location.href = new_url;
}
function rij_form_send(f){
	f = f || this;
	if(f.method != 'post') return true;
	var post = "";
	for(var a in f.elements){
		var item = f.elements[a];
		if(item.value && item.name && item.type != 'submit'
			&& ((item.type != 'checkbox' && item.type != 'radio') || item.checked)){
			post += "&"+item.name+"="+escape(item.value);
		}
	}

	if(RIJ_last_url){
		var url = RIJ_last_url;
		var ref = url.replace(/index.php/ig, 'request_module.php');
	}else{
		var nurl = location.href;
		var lastin = nurl.lastIndexOf("#");
			lastin = lastin > 0 ? lastin+3 : lastin;
		var url = nurl.substr(0,lastin);
	}
	rij_setUrl(url);
	
    var lastin = url.lastIndexOf("#");
    lastin = lastin > 0 ? lastin : url.replace('http://','').indexOf("/")/*+7*/;
    if(url.match(/rapinjam\.com/)) url = lastin > 0? url.substr(lastin+8) : url;
	url = UrlManager._updateUrlParam("ajax_url", 1, url);
	
	var _gaq = _gaq || [];
	_gaq.push(['_trackPageview', url]);
	RIJ_last_post = post;
    RIJAPI_ajax_request('POST', url, module_request_callback, post);
    $('content').innerHTML = "<div class='loading_bg' style='height: 50px;'></div>";
	return false;
}
/* ### Control de banners */
function showBanners(){
//     if(typeof rij_banner_names != 'undefined')
//         for(var a in rij_banner_names){
//             if($('index_conf_fake_output_'+rij_banner_names[a]))
//                 append($('index_conf_fake_output_'+rij_banner_names[a]), $('index_conf_definitive_output_'+rij_banner_names[a]));
//         }
}
function hideBanners(){
//     if(typeof rij_banner_names != 'undefined')
//         for(var a in rij_banner_names){
//             if($('index_conf_real_output_'+rij_banner_names[a]))
//                 append($('index_conf_real_output_'+rij_banner_names[a]), $('index_conf_definitive_output_'+rij_banner_names[a]));
//         }
}

var Dialog = new goog.ui.Dialog(null, true);
Dialog.setContent('Some windowed elements leak through standard divs so ' +
        'we add an iframe to mask the nasties.');
Dialog.setTitle('I have an Iframe mask :)');

Dialog.setButtonSet(goog.ui.Dialog.ButtonSet.OK_CANCEL);
// Dialog.setVisible(true);


/* ################################################## Texto ################################################# */
function addTextCounter(id, qa){
	if(!qa) qa = 500;
	goog.events.listen($(id), goog.events.InputHandler.EventType.INPUT, function(){
		restaTexto(id, qa);
	});
	restaTexto(id, qa);
// 	$(id+'_counter').innerHTML = qa-$(id).value.length;
}

function restaTexto(id, qa){
	var nqa = qa-$(id).value.length;
	if(nqa < 0) $(id+'_counter').style.background = '#F75959';
	else $(id+'_counter').style.background = '';
	$(id+'_counter').innerHTML = nqa;
}

function parseUrlToComent(id){
	var pasteHandler = new goog.events.PasteHandler($(id));
	var regexp = /((((ftp|http|https):\/\/)|(www\.))+(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?([\w#!:.?+=&%@!\-\/]+))[\ \n]/
	var regexp2 = /((((ftp|http|https):\/\/)|(www\.))+(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?([\w#!:.?+=&%@!\-\/]+))/

	var comproFunc = function(){
		var val = $(id).value;
		if(val.match(regexp) && !PrevUrlLoaded){
			var Err = regexp2.exec(val);
			var uri = Err[0];
			getUrlPrev(uri);
		}
	}
	goog.events.listen(pasteHandler, goog.events.PasteHandler.EventType.PASTE, function(e){
		setTimeout(function(){
			var val = $(id).value;
			if(val.match(regexp2) && !PrevUrlLoaded)
				$(id).value += "\n";

			comproFunc();
		}, 2);
	});
	goog.events.listen($(id), goog.events.InputHandler.EventType.INPUT,comproFunc);
}

var PrevUrlLoaded;
function getUrlPrev(url){
	xajax_load_external(url);

	$('linketer').style.display = '';

	maine = goog.dom.createDom('div');

	var div = goog.dom.createDom('div', {style: 'float: left; height: 80px; width: 80px; padding: 5px; margin: 5px; margin-top: 10px; text-align: center; background: white;', id:'urlP_image'});
	var img = goog.dom.createDom('img', {src: '/images/loader-img.gif'});
	goog.dom.appendChild(div, img);
	goog.dom.appendChild(maine, div);

	var regexp = /((((ftp|http|https):\/\/)|(www\.))+[\w#!:.?+=&%@!\-]+)/;
	var arr = regexp.exec(url);

	divA = goog.dom.createDom('div', {style: 'float: left; width: 380px;'});

	var div = goog.dom.createDom('div', {style: 'float: left; font-weight: bold; font-size: 10pt; margin: 5px;', id:'urlP_title'}, arr[1]);
	goog.dom.appendChild(divA, div);

	var div = goog.dom.createDom('div', {style: 'float: left; clear: left; margin: 0px 5px;', id:'urlP_url'}, url.substr(0, 60));
	goog.dom.appendChild(divA, div);

	var div = goog.dom.createDom('div', {style: 'float: left; clear: left;width:350px; font-size: 8pt; color: gray; padding: 6px;', id:'urlP_desc'});
	goog.dom.appendChild(divA, div);

	goog.dom.appendChild(maine, divA);


	var div = goog.dom.createDom('div', {style: 'clear: both; margin: 15px;'});

	var tmp2 = goog.dom.createDom('a', {style: 'clear: right;', id:'UrlPrevDelImgLink', onclick: function(){
		closeUrlImgPrev();
	}}, "Quitar imagen");
	goog.dom.appendChild(div, tmp2);
	var tmp2 = goog.dom.createTextNode(" | ");
	goog.dom.appendChild(div, tmp2);

	var tmp2 = goog.dom.createDom('a', {style: 'clear: right;', onclick: function(){
		closeUrlPrev();
	}}, "Cancelar enlace");
	goog.dom.appendChild(div, tmp2);

	var clearer = goog.dom.createDom('div', {style: 'clear: both; margin: 10px;'});
	goog.dom.appendChild(maine, clearer);
	goog.dom.appendChild($('linketer'), maine);
	goog.dom.appendChild($('linketer'), div);

	$('linketer').style.height = '150px';

	PrevUrlLoaded = true;
	PrevUrlImgActive = true;
}
var UrlPrevImages;
var PrevUrlImgActive = false;
function loadUrlPrevImgs(arr){
	UrlPrevImages = [];
	for(var a in arr){
		var img = goog.dom.createDom('img', {src: "cropimage.php?&x=80&y=80&foto="+arr[a], style: 'width: 80px; height: 80px;', id:'link_meta_image',
		onload: function(){
			this.style.background = 'transparent';
		}});
		UrlPrevImages.push(img);
	}
	setUrlPrevImg(0);
}

function setUrlPrevImg(num){
	var main = $('urlP_image');
	main.innerHTML = "";
	goog.dom.appendChild(main, UrlPrevImages[num]);

	if(UrlPrevImages[num-1]){
		var Nbutton = goog.dom.createDom('div', {onclick: function(){
			setUrlPrevImg(num-1);
		}, innerHTML: "&larr;"});
		Nbutton.className = "larr";
		goog.dom.appendChild(main, Nbutton);
	}
	if(UrlPrevImages[num+1]){
		var Nbutton = goog.dom.createDom('div', {onclick: function(){
			setUrlPrevImg(num+1);
		}, innerHTML: "&rarr;"});
		Nbutton.className = "rarr";
		goog.dom.appendChild(main, Nbutton);
	}
}

function closeUrlPrev(){
	$('linketer').style.height = '0px';
	$('linketer').innerHTML = '';
// 	PrevUrlLoaded = false;
}
function closeUrlImgPrev(brute){
	if($('urlP_image').style.visibility == 'hidden') return reopenUrlImgPrev();
	$('urlP_image').style.visibility = 'hidden';
	if(brute)
		goog.dom.removeNode($('UrlPrevDelImgLink'));
	if($('UrlPrevDelImgLink'))
		$('UrlPrevDelImgLink').innerHTML = "Poner Imagen";
	PrevUrlImgActive = false;
}
function reopenUrlImgPrev(){
	$('urlP_image').style.visibility = 'visible';
	if($('UrlPrevDelImgLink'))
		$('UrlPrevDelImgLink').innerHTML = "Quitar imagen";
	PrevUrlImgActive = true;
}

/* ################################################## popup ################################################# */
function popup(btn, div){
	if(typeof div == 'string') div = $(div);
	if(typeof btn == 'string') btn = $(btn);
	this.btn = btn;
	this.popa = new goog.ui.Popup(div);
	this.popa.setHideOnEscape(true);
	this.popa.setAutoHide(true);
	this.buttonCorner = goog.positioning.Corner.TOP_RIGHT;
	this.menuCorner = goog.positioning.Corner.TOP_LEFT;
}
popup.prototype.mostrar = function(){
	this.popa.setVisible(false);
	this.popa.setPinnedCorner(this.menuCorner);
	this.popa.setPosition(new goog.positioning.AnchoredViewportPosition(this.btn,this.buttonCorner));
	this.popa.setVisible(true);
};

function setPopaMenu(btn, params){
	var user = params['user'];
	var id_user = params['id_user'];
	var titulo = params['titulo'];

	if(!$('popap') || !popap) return false;
	if(typeof User == 'undefined' || !User || user == User.login || id_user==User.id) return false;
	$('popap').innerHTML = '';

	if(!typeof titulo == 'undefined') titulo = user;
	if(!user) return false;

	if(params['crewlogo']){
		var diva = goog.dom.createDom('img', {src: params['crewlogo'], alt: params['crewname'], title: params['crewname']});
		diva.className = 'crewlogo';
		goog.dom.appendChild($('popap'), diva);
	}
	if(params['titulo']){
		var diva = goog.dom.createDom('div', {innerHTML: params['titulo']});
		diva.className = 'titulo';
		goog.dom.appendChild($('popap'), diva);
	}
	if(params['pais']){
		var diva = goog.dom.createDom('div', {innerHTML: params['pais']});
		diva.className = 'pais';
		goog.dom.appendChild($('popap'), diva);
	}
// 	if(ciudad){
		var diva = goog.dom.createDom('div', {innerHTML: params['ciudad']});
		diva.className = 'ciudad';
		goog.dom.appendChild($('popap'), diva);
// 	}

	//var diva = goog.dom.createDom('div', {innerHTML: "<a target='_blank' href='/"+user+"'>Ver ficha</a>"});
	//goog.dom.appendChild($('popap'), diva);
	if(params['bloqueado'] < 2){
		if(params['amigo'] && params['favoritos'] == 1){
			var diva = goog.dom.createDom('input', {type: 'button',id: 'favorito_'+id_user, value: 'Añadir a favoritos', onclick: function(){
				xajax_contacto(id_user, 'anh_fav');
			},
			style: 'margin: 0px 2px;'});
			diva.className = 'rapinbutton _favorito';
			goog.dom.appendChild($('popap'), diva);
		}else if(params['favoritos'] == 2){
			var diva = goog.dom.createDom('input', {type: 'button',id: 'favorito_'+id_user, value: 'Quitar de favoritos', onclick: function(){
				xajax_contacto(id_user, 'qui_fav');
			},
			style: 'margin: 0px 2px;'});
			diva.className = 'rapinbutton _favorito';
			goog.dom.appendChild($('popap'), diva);
		}
// 		if(seguidor){
// 			var diva = goog.dom.createDom('input', {type: 'button',id: 'comentar_'+id_user, value: 'Añadir comentario', onclick: function(){
//                 window.open("");
// 			},
// 			style: 'margin: 0px 2px;'});
// 			diva.className = 'rapinbutton _mas';
// 			goog.dom.appendChild($('popap'), diva);
// 		}
		if(params['msj'] && !params['bloqueado']){
			var diva = goog.dom.createDom('input', {type: 'button',id: 'mensaje_'+id_user, value: 'Enviar mensaje', onclick: function(){
// 				var loca = location.href;
// 				loca = loca.replace(/([\&|\?]?T=\w*)*/ig, '');
// 				loca = loca.replace(/\[\&|\?]?opt=\w*/ig, '');
// 				loca = loca.replace(/\[\&|\?]?id_destin=\w*/ig, '');
// 				if(!loca.match(/\?/)) loca += "?";
// 				loca += "&T=mensajeria&opt=nuevo&id_destin="+id_user;
// 				location.href=loca;
				rij_go("?&T=mensajeria&opt=nuevo&id_destin="+id_user);
			},
			style: 'margin: 0px 2px;'});
			diva.className = 'rapinbutton _mensaje';
			//var diva = goog.dom.createDom('div', 'option', 'Enviar mensaje privado');
			goog.dom.appendChild($('popap'), diva);
		}
		if(params['amigo'] && id_user != 1){
			var diva = goog.dom.createDom('input', {type: 'button',id: 'seguir_'+id_user, value: 'Dejar de seguir', onclick: function(){
				xajax_contacto(id_user, 'dejar');
			},
			style: 'margin: 0px 2px;'});
			diva.className = 'rapinbutton _mas';
			goog.dom.appendChild($('popap'), diva);
		}else if(id_user != 1){
			var diva = goog.dom.createDom('input', {type: 'button',id: 'seguir_'+id_user, value: 'Seguir usuario', onclick: function(){
				xajax_contacto(id_user, 'seguir');
			},
			style: 'margin: 0px 2px;'});
			diva.className = 'rapinbutton _mas';
			goog.dom.appendChild($('popap'), diva);
		}
		if(params['bloqueado'] && id_user != 1){
			var diva = goog.dom.createDom('input', {type: 'button',id: 'bloquear_'+id_user, value: 'Desbloquear', onclick: function(){
				xajax_contacto(id_user, 'desbloquear');
			},
			style: 'margin: 0px 2px;'});
			diva.className = 'rapinbutton _cruz';
			goog.dom.appendChild($('popap'), diva);
		}else if(id_user != 1){
			var diva = goog.dom.createDom('input', {type: 'button',id: 'bloquear_'+id_user, value: 'Bloquear usuario', onclick: function(){
				xajax_contacto(id_user, 'bloquear');
			},
			style: 'margin: 0px 2px;'});
			diva.className = 'rapinbutton _cruz';
			goog.dom.appendChild($('popap'), diva);
		}
		if(params['online'] && id_user != 1){
			var diva = goog.dom.createDom('input', {type: 'button',id: 'chatear_'+id_user, value: 'Abrir chat', onclick: function(){
				chatWith(user);
			}, style: 'margin: 0px 2px;'});
			diva.className = 'rapinbutton _chat';
			goog.dom.appendChild($('popap'), diva);
		}
	}else{
		var diva = goog.dom.createDom('div', {innerHTML: "Este usuario te ha bloqueado y no puedes interactuar con el/ella."});
		diva.className = 'ciudad';
		goog.dom.appendChild($('popap'), diva);
	}

	popap.btn = btn;
	popap.mostrar();
}


/* ############################################ Desplegable ############################################ */
// var desplegable_anims = new goog.fx.AnimationParallelQueue();
function desplegable(div, activer){
	this.div = div;
	this.initW = this.div.offsetWidth;
	this.activer = activer;

	this.pm2 = new goog.ui.PopupMenu();
	this.pm2.setToggleMode(false);
	this.pm2.decorate(this.div);

	this.pm2.attach(this.activer,
	        goog.positioning.Corner.BOTTOM_LEFT,
	        goog.positioning.Corner.TOP_LEFT);

	var that = this;
	goog.events.listen(this.activer, 'mouseover', function(e) {
	      that.pm2.setVisible(true);
	});



// 	this.div.style.visibility = "hidden";
// 	var that = this;
// 	this.eventin = goog.events.listen(this.div, 'mouseover', function(){that.crece();});
// 	this.eventin2 = goog.events.listen(this.activer, 'mouseover', function(){that.crece();});
// 	this.eventout = goog.events.listen(this.div, 'mouseout', function(){that.reduce();});
// 	this.eventout2 = goog.events.listen(this.activer, 'mouseout', function(){that.reduce();});
}
// desplegable.prototype.crece = function(){
// 	if(this.crecido) return false;
// 	this.reducido = false;
// // 	this.activer.innerHTML = "open";
// 	var a = w = this.initW;
// 	var h = this.div.offsetHeight;
// 	var b = this.div.childNodes.length*12;
// 	this.div.style.visibility = "visible";
// 	this.div.style.overflow = "hidden";
// 	this.anim = new goog.fx.dom.Resize(this.div, [w, h], [a, b], 200, goog.fx.easing.easeOut)
// 	desplegable_anims.add(this.anim);
// 	goog.events.listen(this.anim, 'finish', function(){
// 	});
// 	desplegable_anims.play();
// 	this.crecido = true;
// }
// desplegable.prototype.reduce = function(){
// 	if(this.reducido) return false;
// 	this.crecido = false;
// // 	this.activer.innerHTML = "closed";
// 	var a = w = this.initW;
// 	var h = this.div.offsetHeight;
// 	var b = 0;
// 	this.anim = new goog.fx.dom.Resize(this.div, [w, h], [a, b], 200, goog.fx.easing.easeOut);
// 	desplegable_anims.add(this.anim);
// 	var that = this;
// 	goog.events.listen(this.anim, 'finish', function(){
// 		that.div.style.visibility = "hidden";
// // 		this.reducido = true;
// 	});
// 	desplegable_anims.play();
// 	this.reducido = true;
// }

/* ############################################# Miniblog ########################################### */
var mini_meta_info = {tipo: 0};
function compileMetaInfo(){
	mini_meta_info = {tipo: 0};
	if($('urlP_url')){
		mini_meta_info.tipo = 'link';
		mini_meta_info.titleurl = $('urlP_title').innerHTML;
		mini_meta_info.linkurl = $('urlP_url').innerHTML;
		mini_meta_info.descurl = $('urlP_desc').innerHTML;
		mini_meta_info.imgurl = PrevUrlImgActive ? $('link_meta_image').src : false ;
	}
	closeUrlPrev();
	return mini_meta_info;
}

function mini_comentar(ide){
	if($(ide)) $(ide).style.display = 'inline';
}

function mini_cancelar(ide){
	if($(ide)) $(ide).style.display = 'none';
}

/* ############################################# Megaventana ########################################### */
var megaventana;
// var megaventana_event;
// var megaventana_event2;
var megaventana_yes_selected = false;
var megaventana_no_selected = false;
function megaV(cont, titulo, buttonset, handler0, handler1, buttonname0, buttonname1){
	megaventana = new goog.ui.Dialog(null, true);
	if(!titulo) titulo = "Cargando...";
	if(!cont) cont = "Ha ocurrido un error.";
// 	if(!handler0) handler0 = function(){};
// 	if(!handler1) handler1 = function(){};

	megaventana_yes_selected = false;
	megaventana_no_selected = false;

	switch(buttonset){
		case 1:
			goog.ui.Dialog.ButtonSet.MEGAVB = new goog.ui.Dialog.ButtonSet()
			      .set(goog.ui.Dialog.DefaultButtonKeys.YES, "Aceptar")
			      .set(goog.ui.Dialog.DefaultButtonKeys.NO, "Cancelar"
				,false, true)
			;
		break;
		case 2:
			goog.ui.Dialog.ButtonSet.MEGAVB = new goog.ui.Dialog.ButtonSet()
			      .set(goog.ui.Dialog.DefaultButtonKeys.YES, "Si")
			      .set(goog.ui.Dialog.DefaultButtonKeys.NO, "No"
				,false, true)
			;
		break;
		case 3:
			goog.ui.Dialog.ButtonSet.MEGAVB = new goog.ui.Dialog.ButtonSet()
			      .set(goog.ui.Dialog.DefaultButtonKeys.YES, buttonname0)
			      .set(goog.ui.Dialog.DefaultButtonKeys.NO, buttonname1
				,false, true)
			;
		break;
		default:
			goog.ui.Dialog.ButtonSet.MEGAVB = new goog.ui.Dialog.ButtonSet()
			      .set(goog.ui.Dialog.DefaultButtonKeys.YES, "Aceptar", false, true);
	}
	megaventana.setButtonSet(goog.ui.Dialog.ButtonSet.MEGAVB);
	megaventana.setTitle(titulo);
	megaventana.setContent(cont);
// 	goog.events.unlisten(megaventana, goog.ui.Dialog.EventType.SELECT);
// 	megaventana_event = null;
	var megaventana_event = goog.events.listen(megaventana, goog.ui.Dialog.EventType.SELECT, function(e) {
		switch(e.key){
			case 'yes': megaventana_yes_selected = true; if(typeof handler0 == 'function') handler0(); break;
			case 'no': megaventana_no_selected = true; if(typeof handler1 == 'function') handler1(); break;
		}
	});
// 	goog.events.unlisten(megaventana, goog.ui.Dialog.EventType.AFTER_HIDE);
// 	megaventana_event2 = null;
	var megaventana_event2 = goog.events.listen(megaventana, goog.ui.Dialog.EventType.AFTER_HIDE, function(e) {
		if(!megaventana_yes_selected && handler1) handler1();
	});

	megaventana.setVisible(true);
}

function needRegistro(txt){
	megaV(txt, 'Interacción limitada', false, false);
	goog.ui.Dialog.ButtonSet.MEGAVB = new goog.ui.Dialog.ButtonSet()
		.set(goog.ui.Dialog.DefaultButtonKeys.YES, "Registrarme")
		.set(goog.ui.Dialog.DefaultButtonKeys.NO, "Más adelante"
		,true, true)
	;
	var megaventana_event = goog.events.listen(megaventana, goog.ui.Dialog.EventType.SELECT, function(e) {
		switch(e.key){
			case 'yes': megaventana_yes_selected = true; location.href="?T=registro"; break;
		}
	});
	megaventana.setButtonSet(goog.ui.Dialog.ButtonSet.MEGAVB);
}

function ponContacto(nombre, img){
	$('contacto_nombre').innerHTML = nombre;
	$('contacto_avatar').innerHTML = "<img class='loader' src='imagen.php?foto="+img+"&x=100&y=100'>";
}

/* ############################################# Denunciar ########################################### */
function denunciar(titulo, tipo_ref, id_ref){
	optxt = '';
	for(var a in array_tipos_denuns){
		optxt += "<option value='"+a+"'>"+array_tipos_denuns[a]+"</option>";
	}

	megaV("<div style=\'\'><div>Motivo de la denuncia: <select  id=\'motivo_denuncia\' class=\'select_style\'>"+
	optxt+
	"</select></div><div style=\'padding-top: 10px;\'><div>Danos detalles:</div><div><textarea id=\'texto_denuncia\' class=\'text_field\'></textarea></div></div></div>", "Denunciar \""+
	titulo+"\"", 3, function(){
		xajax_denunciar_el($('motivo_denuncia').value, $('texto_denuncia').value, tipo_ref, id_ref);
	}, false, "Enviar denuncia", "cancelar");
}

/* ############################################# Banear ########################################### */
function ban_window(id_ref,type_ref,banned){
	if(banned){
		var txt = "¿Seguro que deseas retirar el ban de este elemento?";
	}else{
		var txt = "Especifica el motivo del ban:";
			txt += "<form id='ban_form'>";
				txt += "<div><input name='ban_type' type='radio' value='spam'> Spam</div>";
				txt += "<div><input name='ban_type' type='radio' value='respect'> Falta de respeto</div>";
				txt += "<div><input name='ban_type' type='radio' value='other'> Otro </div>";
			txt += "</form>";
	}
	megaV(txt, "Baneado", 1, function(){
		var data = {type: ""};
		if(banned) data['unban'] = true;
		if(document.getElementById('ban_form')){
			var ban_type = document.getElementById('ban_form').ban_type;
			var value = '';
			var l = ban_type.length;
			for(var a=0; a < l; ++a){
				if(ban_type[a].checked){
					value = ban_type[a].value;
					break;
				}
			}
			data['type'] = value;
		}
		xajax_ban_material(id_ref,type_ref,data);
	},function(){});
}

/* ############################################# Ajax de la API ########################################### */
var RIJAPI_ajax_request = function() {
  function handleReadyState(o, callback) {
	o.onreadystatechange = function(){
		if (this.readyState == 4 && this.status == 200) {
			if (callback) {
				callback(this);
			}
		}
	}
  }
  var getXHR = function() {
    var http;
    try {
      http = new XMLHttpRequest;
        getXHR = function() {
          return new XMLHttpRequest;
        };
    }
    catch(e) {
      var msxml = [
        'MSXML2.XMLHTTP.3.0',
        'MSXML2.XMLHTTP',
        'Microsoft.XMLHTTP'
      ];
      for (var i=0, len = msxml.length; i < len; ++i) {
        try {
          http = new ActiveXObject(msxml[i]);
          getXHR = function() {
            return new ActiveXObject(msxml[i]);
          };
          break;
        }
        catch(e) {}
      }
    }
    return http;
  };
  return function(method, uri, callback, postData) {
    var http = getXHR();
    http.open(method, uri, true);
    handleReadyState(http, callback);
	if(postData && postData.length){
		http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http.setRequestHeader("Content-length", postData.length);
		http.setRequestHeader("Connection", "close");
	}
    http.send(postData || null);
    return http;
  };
}();

//seleccionar un campo
function makeSelection(obj){
	if(obj.nodeName.toLowerCase()=='textarea' || (obj.nodeName.toLowerCase()=='input' && obj.type=='text')){
	obj.select();
		return;
	}
	if (window.getSelection) {
		var sel = window.getSelection();
		var range = document.createRange();
		range.selectNodeContents(obj);
		sel.removeAllRanges();
		sel.addRange(range);
	}
	else if (document.selection) {
		document.selection.empty();
		var range = document.body.createTextRange();
		range.moveToElementText(obj);
		range.select();
	}
}

//validar material
function validar_elemento(id_ref, type_ref){
	megaV("¿Seguro que deseas validar este material?", "Validar material", 2, function(){
		xajax_validar_material(id_ref, type_ref, true);
	});
}

