/**
 * @author rober
 */

var Editor = Object();

Editor.Vnoticias		= null;
Editor.Veditor			= null;
Editor.FormEliminador	= null;
Editor.FormEditor		= null;

// despliega la noticia
Editor.ShowNoticia = function (o) {

	Editor.getData(o);
	var div = Editor.DivContenido;
	// si esta desplegado lo pliego
	if (div.style.display!='none' && div.style.display!='') {
		div.style.display='none';

	// sino, lo despliego
	} else {
		div.style.display='block';
	}

	// cambio la imagen "up" o "down"
	try {
		var img = o.getElementsByTagName('img')[0];
		if (img.src.indexOf('down') != -1) {
			var src = img.src.replace('down', 'up');
		}else {
			var src = img.src.replace('up', 'down');
		}
		img.src = src;
	} catch(e) {}
}

// reseteo el editor y lo muestro
Editor.New = function (o) {
	Editor.reset();
	Editor.setData();
	Editor.Show();
}

// obtengo los datos, se los pongo en el editor y lo muestro
Editor.Edit = function (o) {


	Editor.reset();

	Editor.getData(o);
	Editor.setData();
	Editor.Show();


}

// pido confirmacion
//		Aceptar :
//	 		pongo el id en el FormEliminador y hago un submit

Editor.Del = function (o) {

	if (confirm("¿Está seguro?")) {
		Editor.getData(o);

		var elements = Editor.FormEliminador.elements;
		for (var i=0; i<elements.length; i++) {
			var input = elements[i];
			if (input.name == 'id') {
				input.value = Editor.Values.id;
			}
		}

		Editor.FormEliminador.submit();
	}
}

// Cambio el Display a falso
Editor.Hide = function () {
	Editor.changeDisplay(false);
}

// Cambio el Display a true
Editor.Show = function () {
	Editor.changeDisplay(true);
}

// Cambio el Display a Vnoticias y Veditor a falso o a true segun el parametro
Editor.changeDisplay = function (bol) {
	var dn = bol ? 'none' : document.all? '' : '';
	var de = bol ? (document.all? '' : '') : 'none';

	Editor.Vnoticias.style.display = dn;
	Editor.Veditor.style.display = de;
	try {
		tinyMCE.selectedInstance.contentDocument.body.style.display = "";
	} catch(e) {}
	try {
		var o = document.getElementById('msg_list');
		o.style.display = 'none';
	} catch(e) {}
}

// obtengo los datos ocultos del objeto
Editor.getData = function (o) {

	// cojo el div de los datos
	var div = o;
	while (div.tagName.toLowerCase() != 'div') {
		div = div.parentNode;
	}
	// cojo el div del contenido
	var padre = div.parentNode;
	for (var i=0; i<padre.childNodes.length; i++) {
		var elem = padre.childNodes[i];
		if (elem.id == 'contNoticia') {
			Editor.DivContenido = elem
		}
		else if (elem.id == 'Datos') {
			div = elem
		}
	}

	// recorro los inputs del div y los guardo en Editor.Values
	Editor.Values = Object();
	var inputs = div.getElementsByTagName('input');
	for (var i=0; i<inputs.length; i++) {
		var input = inputs[i];
		Editor.Values[input.name] = input.value;
	}
	try {
		Editor.Values['contenido'] = Editor.DivContenido.innerHTML
	}catch(e) {}
	// pongo como accion editar
	Editor.Values.action = 'editar';

}

// pongo los datos del objeto en el formulario
Editor.setData = function () {
	// recorro los elementos del formulario y les pongo los valores

	var elements = Editor.FormEditor.elements;
	for (var i=0; i<elements.length; i++) {
		var input = elements[i];

		if (input.tagName.toLowerCase() != 'textarea') {
			switch (input.type.toLowerCase()) {
			case 'text':
			case 'hidden':
				if (Editor.Values[input.name]) {
					input.value = Editor.Values[input.name];
				} else {
					Editor.Values[input.name] = '';
					input.value = '';
				}
				break;
				case 'file':
					input.value = '';
					break;
			}
		}

	}

	// intento cambiar el contenido (solo para noticias)
	try {

		tinyMCE.selectedInstance.setContent(Editor.Values.contenido);
		//tinyMCE.execCommand('mceInsertContent',false,Editor.Values.contenido);

	} catch (e) {

	}

	// intento cambiar el src de la imagen (solo para control news)
	try {
		Editor.changeImage(Editor.Values.img)
	}catch(e){}
}

// Obtengo los objetos principales: Vnoticias, Veditor y FormEliminador
// lo ejecuto al cargar la pagina
Editor.getFields = function () {
	if (Editor.Vnoticias == null) {
		try {
			Editor.Vnoticias = document.getElementById('Vnoticias');
		} catch (e) {}
	}
	if (Editor.Veditor == null) {
		try {
			Editor.Veditor = document.getElementById('Veditor');
		} catch (e) {}
	}
	if (Editor.FormEliminador == null) {
		try {
			Editor.FormEliminador = document.getElementById('formEliminador');
		} catch (e) {}
	}
	if (Editor.FormEditor == null) {
		try {
			Editor.FormEditor = Editor.Veditor.getElementsByTagName('form')[0];
		} catch (e) {}
	}
}

// Reinicia los valores del objeto
Editor.reset = function () {
	Editor.Values = Object();
	Editor.Values.id = '-1';
	Editor.Values.action = 'nuevo';
}

// Cambia la imagen con el src dado (si la tiene)
Editor.changeImage = function (src) {
	var images = Editor.FormEditor.getElementsByTagName('img');
	for (var i=0; i<images.length; i++) {
		var img = images[i];
		if (img.id == 'img') {
			img.src = src ? src : '/images/control_news/nueva.gif';
		}
	}
}

window.onload = function () {
	Editor.getFields();
}
