﻿function addEvent(obj, evType, fn)
{
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent('on'+evType, fn);
		return r;
	} else {
		return false;
	}
}

function addEvento(obj, evType, fn)
{
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent('on'+evType, fn);
		return r;
	} else {
		return false;
	}
}


function mooAjax( parametros, direccion, metodo, funCargando, funComplete )
 {
	var direc = document.getElementById('direccionServidor');
	urlSalida = direc.value + direccion;
	
	var peticion = new Request(
				{url: urlSalida,
				data: { 'do' : '1' },
				evalScripts: true,
				method: metodo,
				onRequest: funCargando,
				onSuccess: funComplete
				}
			).send(parametros);
		return false;
 }
 

function cartelCargando( texto )
{
	if( !$defined( texto ) ) texto = 'Cargando';
	if( $('cartelCargando') )
	{
		$('cartelCargando').set('html', 'Cargando...' );	
		//$(id).appear({ duration: 1.5 });
		$('cartelCargando').style.display = 'block';
		new Fx.Tween('cartelCargando', {
			property: 'opacity',
			duration: 100, 
			transition: Fx.Transitions.Quart.easeInOut
			}).start(0,1);
	}
}

function liberarCartelCargando()
{
	if( $('cartelCargando') )
	{
		new Fx.Tween('cartelCargando', {
				property: 'opacity',
				duration: 200, 
				transition: Fx.Transitions.Quart.easeInOut
				}).start(1,0);
	}
}


function cargar(el,parametros, direccion, funCargando, funComplete) {
    if( $type(el) == 'string' )
		el = $(el);
	if( !$defined( funComplete ) )
	{
		funComplete = function(e) {
             //actualizamos contenedor
            el.set('html',e);
        };
	}
	if( !$defined(funCargando) )
	{
		funCargando = null;
	}
    mooAjax( parametros, direccion, 'post', funCargando, funComplete);
  
};


function cargarFileManager( nombreElemento )
{
	var el = $( nombreElemento );
	var div, tips;
	
	var manager = new FileManager({
		url: 'fileManagerAjax/manager.php',
		assetBasePath: '../estilo/Assets',
		language: 'es',
		selectable: true,
		uploadAuthData: {session: 'MySessionId'},
		onComplete: function(r, a)
			{
				el.set('value', r);
			}
	});
	
	new Element('button', {'class': 'browser', text: 'Asignar un archivo'}).addEvent('click', manager.show.bind(manager)).inject(el, 'after');
}

// funcion que te extrae el padre de un objeto independientemente de si usas firefox o iexplorer
function cogerPadre( objeto )
	{
		if( objeto != null )
		{
			if(objeto.parentElement)
				return objeto.parentElement;
			else
			{
				if(objeto.parentNode)
					return objeto.parentNode;
				else return null;
			}
		}
		else return null;
	}

/*
function asignarRutaArchivo( ruta, archivo )
{
	var el = $('rutaArchivo');
	el.set('value', ruta );
}*/


// Para el tiniMCE: Cierra las etiquetas abiertas por el corte de "<!-- reductor pagina -->" 
// Intenta poner un <p> ante aquellos que sean cortados a saco, puesto que si encuentra etiquetas cerradas sin las de apertura simplemente las borra. 
// Con añadir un <p> al principio, al menos las <p> parecen salvarse. Si fallase sería a causa de falta de trim.
// Necesita el archivo htmlparser.js (digitapolis)
function limpiarHtmlPagebreak(element_id, html, body)
{	
	var vectorHtml = html.split("<!-- reductor pagina -->");
	if( vectorHtml.length > 1 )
	{
		var htmlFinal = new Array();
		for( var i = 0; i < vectorHtml.length; i++ )
		{
			var results = "";
			var actual = vectorHtml[i];
			
			if( actual.lastIndexOf('</p>') == actual.length - 4 && actual.indexOf('<p>') != 0 )
				actual = '<p>' + actual;
			
			HTMLParser(actual, {
			  start: function( tag, attrs, unary ) {
			    results += "<" + tag;

			    for ( var i = 0; i < attrs.length; i++ )
			      results += " " + attrs[i].name + '="' + attrs[i].escaped + '"';

			    results += (unary ? "/" : "") + ">";
			  },
			  end: function( tag ) {
			    results += "</" + tag + ">";
			  },
			  chars: function( text ) {
			    results += text;
			  },
			  comment: function( text ) {
			    results += "<!--" + text + "-->";
			  }
			});
			
			// si es el segundo, añadimos las etiquetas para el botón del futuro "ver más"
			
			
			if( i == 1 && results.indexOf('<div class="desplegablePagebreak">') < 0)
				results = '<div class="desplegablePagebreak">' + results + '</div>';

			htmlFinal.push( results );
		}
		
		html = htmlFinal.join("<!-- reductor pagina -->");
	}
	//return htmlFinal;
	return html;
}