
//window.onload = accordionStart;
addEvent(
	window,
	"load",
	function() {
		var oAccordion = accordion_menu();
		fixHeight();
	}
);


   /*
    *   Antes de utilizarla es necesario crear la variable global 'stretchers'
    */
	var stretchers;

    function accordion_menu() { //safari cannot get style if window isnt fully loaded
        var nHeight = (typeof(accordion_menu.arguments[0]) == "undefined") ? 300 : accordion_menu.arguments[0];

        var colorOptions = (typeof(accordion_menu.arguments[1]) == "undefined") ? '' : accordion_menu.arguments[1];
        var textcolor_on = (typeof(colorOptions.textcolor_on) == "undefined") ? '#FFFFFF' : colorOptions.textcolor_on; // '#e0542f';
        var textcolor_off = (typeof(colorOptions.textcolor_off) == "undefined") ? '#000099' : colorOptions.textcolor_off; // '#e0542f';
        var bgcolor_on_public 	= (typeof(colorOptions.bgcolor_on) == "undefined") ? '#000099' : colorOptions.bgcolor_on; // '#e0542f';
        var bgcolor_off_public = (typeof(colorOptions.bgcolor_off) == "undefined") ? '#99CCFF' : colorOptions.bgcolor_off;
        var bgcolor_on_private = (typeof(colorOptions.bgcolor_on) == "undefined") ? '#EF9654' : colorOptions.bgcolor_on;;
        var bgcolor_off_private = (typeof(colorOptions.bgcolor_off) == "undefined") ? '#FFDA9C' : colorOptions.bgcolor_off;

        var moreOptions = accordion_menu.arguments[2];
		var indexToShow = 0; // Índice de pestaña que debe mostrarse abierta al cargar (0..n-1)

	   	//Reiniciar elementos
		$("accordionDiv").descendants().each(function(el){
			el.removeAttribute("_extended");
		});

		var form_divs = $$('div.accordionMark');
		form_divs.each(function(form_div){
			form_div.removeAttribute('style');
		});

        stretchers = $$('div.accordionTabContentBox');
	    stretchers.each(function(item, i){
			item.setStyle({height: '0px', overflow: 'hidden'});

			//Encontrar la opción seleccionada
			if(item.getElementsByClassName("selected").length > 0) {
				indexToShow = i; //Desplegar la sección que contenga la opción activa
			}
	    });

		var togglers = $$('div.accordionTabTitleBar');
		var bgFx = [];

		togglers.each(function(toggler, i){
			toggler.onclick = null; //Importante para que al hacer la rellamada no salga "stack overflow"
			if (toggler.getAttribute("id"))
				toggler.setStyle({backgroundColor: bgcolor_off_private});
			else
				toggler.setStyle({backgroundColor: bgcolor_off_public});
			toggler.defaultColor = toggler.getStyle('background-color');

			//fx creation
			bgFx[i] = new Fx.Color(toggler, 'background-color', {wait: false});
		});

		var myAccordion = new Fx.Accordion(togglers, stretchers, {maxHeight: nHeight,  opacity: false, start: false, transition: Fx.Transitions.quadOut,
			beforeActive: function(toggler, i){
				var togglerMark = $$('div.accordionMark')[i];

				if (togglerMark) {
                    if (togglerMark.offsetHeight > nHeight){
					    togglerMark.setStyle({height: (nHeight + 'px'), overflowY: 'scroll'});
				    }
                }
			},

			onActive: function(toggler, i) {
                if (bgFx[i]) {
                	if ($(toggler).getAttribute("id"))
					    bgFx[i].toColor(bgcolor_on_private);
                	else
					    bgFx[i].toColor(bgcolor_on_public);
				    $(toggler.firstChild).setStyle({color: textcolor_on, cursor: 'default'});
                }
			},

			onBackground: function(toggler, i){
				bgFx[i].clearTimer();
				$(toggler.firstChild).setStyle({color: textcolor_off, cursor: 'pointer'});
				toggler.setStyle({backgroundColor: toggler.defaultColor});
			}
		});

		if(typeof(moreOptions) != "undefined"){
			for(var optionName in moreOptions){
				myAccordion.options[optionName] = moreOptions[optionName];
			}
		}

		myAccordion.showThisHideOpen(indexToShow);

        return myAccordion;
	}

	function fixHeight() {
		h=document.getElementById('contenedor').offsetHeight;
		document.getElementById('contenedor').style.height=h;

		in_h = document.body.clientHeight;
		in_e = parseInt(getStyle('contenedor','height'));

		if (in_h <= in_e) {
			return;
		} else {
			document.getElementById('content_layout').style.height = (document.documentElement.clientHeight - 226) + 'px';
		}
	}


	function getStyle(el, styleProp) {
		var x = document.getElementById(el);
		if (x.currentStyle)
			var y = x.currentStyle[styleProp];
		else if (window.getComputedStyle)
			var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
		return y;
	}
