var ACORDEON_CERRADO=1;
var ACORDEON_CERRANDO=2;
var ACORDEON_ABRIENDO=3;
var ACORDEON_ABIERTO=4;
var HORIZONTAL=1;
var VERTICAL_FIXED=2;
var VERTICAL=0;
var CALCULE_SIZE_HEADER=999999;
var skipAuto=(navigator.userAgent.match(/iPad/i)!=null)?true:false;
var date1=null;
var date2=null;
var delayLimit=2000;

function getLeft(nodo){
	if((nodo.style.left==undefined)||(nodo.style.left=='')){return 0;}var left=nodo.style.left;
	if(left.indexOf('px')){left=left.substring(0,left.length-2);}return parseInt(left);};
	
function getTop(nodo){
	if((nodo.style.top==undefined)||(nodo.style.top=='')){return 0;}var top=nodo.style.top;
	if(top.indexOf('px')){top=top.substring(0,top.length-2);}return parseInt(top);};
	
function getHeight(nodo){
	if(nodo.style.display!='none'&&nodo.style.display!=''){return nodo.offsetHeight;}
	visibility=nodo.style.visibility;nodo.style.visibility='hidden';
	display=nodo.style.display;nodo.style.display='block';
	height=parseInt(nodo.offsetHeight);nodo.style.display=display;
	nodo.style.visibility=visibility;return height;};
	
function closeNodeFast(nodo){
	nodo=document.getElementById(nodo);nodo.style[nodo.accordeonStyle]=nodo.space+'px';
	if(nodo.type_slide==VERTICAL){nodo.style.display='none';}clearInterval(nodo.interval);nodo.status=ACORDEON_CERRADO;};
	
function openNodeFast(nodo){
	nodo=document.getElementById(nodo);nodo.style[nodo.accordeonStyle]=(nodo.maxh+nodo.space)+'px';
	clearInterval(nodo.interval);nodo.status=ACORDEON_ABIERTO;};
	
function closeNode(nodo){
	if(date1==null)date1=new Date();nodo=document.getElementById(nodo);var temp=0;
	if(nodo.type_slide==HORIZONTAL){temp=getLeft(nodo)-nodo.space;}
	if(nodo.type_slide==VERTICAL_FIXED){temp=getTop(nodo)-nodo.space;}
	if(nodo.type_slide==VERTICAL){temp=getHeight(nodo)-nodo.space;}
	if(temp>0){var move=Math.round(temp/nodo.speed);nodo.style[nodo.accordeonStyle]=(temp-((move<1)?1:move)+nodo.space)+'px';}
	else{nodo.style[nodo.accordeonStyle]=nodo.space+'px';
	if(nodo.type_slide==VERTICAL){nodo.style.display='none';}clearInterval(nodo.interval);
	nodo.status=ACORDEON_CERRADO;if((new Date()-date1)>delayLimit){date1=null;}date1=null;}};

function openNode(nodo){
	if(!date1)date1=new Date();nodo=document.getElementById(nodo);var temp=0;
	if(nodo.type_slide==HORIZONTAL){temp=getLeft(nodo)-nodo.space;}
	if(nodo.type_slide==VERTICAL_FIXED){temp=getTop(nodo)-nodo.space;}
	if(nodo.type_slide==VERTICAL){temp=getHeight(nodo)-nodo.space;}
	if(temp<nodo.maxh){var move=Math.round((nodo.maxh-temp)/nodo.speed);
	nodo.style[nodo.accordeonStyle]=(temp+((move<1)?1:move)+nodo.space)+'px';}
	else{nodo.style[nodo.accordeonStyle]=(nodo.maxh+nodo.space)+'px';
	clearInterval(nodo.interval);nodo.status=ACORDEON_ABIERTO;
	if((new Date()-date1)>delayLimit){date1=null;}date1=null;}};

function closeNodeInit(nodo){
	if(nodo.status>ACORDEON_CERRADO){clearInterval(nodo.interval);
	if(skipAuto){nodo.interval=setInterval('closeNodeFast("'+nodo.id+'")',nodo.timeInterval);}
	else{nodo.interval=setInterval('closeNode("'+nodo.id+'")',nodo.timeInterval);}nodo.status=ACORDEON_CERRANDO;}};

function openNodeInit(nodo){
	if(nodo.status<ACORDEON_ABRIENDO){nodo.style.display='block';
	nodo.style[nodo.accordeonStyle]=nodo.space+"px";clearInterval(nodo.interval);
	if(skipAuto||nodo.primera){nodo.interval=setInterval('openNodeFast("'+nodo.id+'")',nodo.timeInterval);nodo.primera=false;}
	else nodo.interval=setInterval('openNode("'+nodo.id+'")',nodo.timeInterval);nodo.status=ACORDEON_ABRIENDO;}};
	
function removeClassName(nodo,className){
	var cadena=nodo.className.split(/\s+/);
	for(var i=0;i<cadena.length;i++){if(cadena[i]==className){cadena.splice(i,1);nodo.className=cadena.join(' ');break;}}};

function nextSlide(acordiansNumber){
	date1=new Date();nextView=acordians[acordiansNumber].currentView+1;
	if(nextView>=acordians[acordiansNumber].len)nextView=0;acordians[acordiansNumber].headers[nextView].functionAcordion();};

function slide_acordeon(acordion,interval){
	var nodo=document.getElementById(acordians[acordion].idContent);
	var functionText='nextSlide('+acordion+');';
	eval('var auxFunction1 = function(){if(acordians['+acordion+'].forzeStop!=undefined) return false; acordians['+acordion+'].intervalSecuencia = setInterval("nextSlide('+acordion+')",'+interval+');};');
	if(!AddEvent(nodo,'mouseout',auxFunction1,false)){nodo.onmouseout=auxFunction1;}
	eval('var auxFunction2 = function(){clearInterval(acordians['+acordion+'].intervalSecuencia)};');
	if(!AddEvent(nodo,'mouseover',auxFunction2,false)){nodo.onmouseover=auxFunction2;}
	if(!AddEvent(nodo,'mousemove',auxFunction2,false)){nodo.onmousemove=auxFunction2;}
	acordians[acordion].intervalSecuencia=setInterval(functionText,interval);};
	var acordians=new Array();

function Accordian(acordeon){
	return AccordianPrepare(acordeon.idContent,acordeon.classNameActive,acordeon.classNameheaders,acordeon.classNameCotentDiv,acordeon.classNameInitSelectedElement,acordeon.event,
	(acordeon.functionBefore!=undefined)?acordeon.functionBefore:null,(acordeon.functionAfter!=undefined)?acordeon.functionAfter:null,
	(acordeon.speed!=undefined)?acordeon.speed:5,(acordeon.forzeSize!=undefined)?acordeon.forzeSize:0,
	(acordeon.timeInterval!=undefined)?acordeon.timeInterval:10,(acordeon.slideTimeInterval!=undefined)?acordeon.slideTimeInterval:1000,
	(acordeon.slide!=undefined)?acordeon.slide:false,(acordeon.space!=undefined)?acordeon.space:0,
	(acordeon.roundedFixedSpace!=undefined)?acordeon.roundedFixedSpace:0,(acordeon.type!=undefined)?acordeon.type:HORIZONTAL,
	(acordeon.relations!=undefined)?acordeon.relations:true)};

function AccordianPrepare(id,classNameSelected,classHeader,classContents,classSelected,event,func1,func2,speed,forzeSize,timeInterval,slideTimeInterval,slide,space,roundedFixedSpace,type_slide,relations){
	var nodeBase=document.getElementById(id);
	var acordiansNumber=acordians.length;
	var contents=getElementsByClass(classContents,nodeBase);
	var headers=getElementsByClass(classHeader,nodeBase);
	var sel=null;
	var pattern=new RegExp("(^|\\s)"+classSelected+"(\\s|$)");
	var len=headers.length;if(len!=contents.length)
	{return false;}var valor_space=0;
	if(forzeSize>0){
		if(space==CALCULE_SIZE_HEADER){for(i=0;i<len;i++){var nodoAux=headers[i];forzeSize-=nodoAux.offsetHeight+roundedFixedSpace;}}
		else{forzeSize-=space*len;}}for(i=0;i<len;i++)
		{if((contents[i].id==undefined)||(contents[i].id=='')){contents[i].id=id+'_acordion_'+acordiansNumber+'_'+i;}
		var node=contents[i];node.style.overflow='hidden';
		if(type_slide==VERTICAL){node.maxh=getHeight(node);node.accordeonStyle='height';node.style.display='none';}
		else{node.maxh=forzeSize;if(type_slide==HORIZONTAL){node.accordeonStyle='left';}
		else{node.accordeonStyle='top';node.style.top=valor_space+"px";}}
		node.speed=(speed==undefined)?7:speed;node.timeInterval=(timeInterval==undefined)?10:timeInterval;node.progressNumber=0;node.space=valor_space;
		node.type_slide=type_slide;node.status=ACORDEON_CERRADO;node.primera=true;var nodoAux=headers[i];node.header=nodoAux;
		nodoAux.asociateContent=i;nodoAux.classNameAux=classNameSelected;nodoAux.classNameCopy=(nodoAux.className!=undefined)?nodoAux.className:'';
		nodoAux.acordiansNumber=acordiansNumber;
		if(relations==true){nodoAux.functionAcordion=function(){
			if(this.initFunction!=undefined){
				if(!this.initFunction()){return false;}}for(var i=0;i<acordians[this.acordiansNumber].len;i++)
				{var content=acordians[this.acordiansNumber].contents[i];
				var header=acordians[this.acordiansNumber].headers[i];
				if(i==this.asociateContent){
					acordians[this.acordiansNumber].currentView=i;header.className=header.className+' '+header.classNameAux;}
				else{header.className=header.classNameCopy;}
				if(((type_slide==VERTICAL)&&(i==this.asociateContent))||(((type_slide==HORIZONTAL)||(type_slide==VERTICAL_FIXED))&&(i>this.asociateContent))){openNodeInit(content);}else{closeNodeInit(content);}}if(this.finalFunction!=undefined){this.finalFunction();}return false;}}else{nodoAux.stateOpen=true;nodoAux.functionAcordionOpen=function(){if(this.initFunction!=undefined){this.initFunction();}var content=acordians[this.acordiansNumber].contents[this.asociateContent];var header=acordians[this.acordiansNumber].headers[this.asociateContent];header.className=header.className+' '+header.classNameAux;openNodeInit(content);this.stateOpen=false;return false;};nodoAux.functionAcordionClose=function(){var header=(this.header!=undefined)?this.header:this;var content=acordians[header.acordiansNumber].contents[header.asociateContent];header.className=header.classNameCopy;closeNodeInit(content);if(header.finalFunction!=undefined){header.finalFunction();}header.stateOpen=true;return false;};nodoAux.functionAcordion=function(){if(this.stateOpen)this.functionAcordionOpen;else this.functionAcordionClose(this);}}if(func1!=undefined){nodoAux.finalFunction=func1;}if(func2!=undefined){nodoAux.initFunction=func2;}if(relations==true){if(!AddEvent(nodoAux,event,this.functionAcordion,false)){if(event=='click')nodoAux.onclick=nodoAux.functionAcordion;if(event=='mouseover')nodoAux.onmouseover=nodoAux.functionAcordion;}}else{if(event=='click')nodoAux.onclick=nodoAux.functionAcordion;if(event=='mouseover'){nodoAux.intervalOpenMenu= -1;nodoAux.onmouseover=function(){clearInterval(this.intervalOpenMenu);this.functionAcordionOpen();};nodoAux.onmouseout=function(){clearInterval(this.intervalOpenMenu);this.intervalOpenMenu=setTimeout('document.getElementById("'+acordians[this.acordiansNumber].contents[this.asociateContent].id+'").functionAcordionClose()',1000)};node.functionAcordionClose=nodoAux.functionAcordionClose;node.onmouseover=function(){clearInterval(this.header.intervalOpenMenu);this.header.functionAcordionOpen();};node.onmouseout=function(){clearInterval(this.header.intervalOpenMenu);this.header.intervalOpenMenu=setTimeout('document.getElementById("'+this.id+'").functionAcordionClose()',1000)};}}if(pattern.test(nodoAux.className)){sel=nodoAux;}if(space==CALCULE_SIZE_HEADER){valor_space+=nodoAux.offsetHeight+roundedFixedSpace;}else{valor_space+=space;}}acordians.push({contents:contents,headers:headers,len:len,idContent:id,currentView:len-1});if(sel!=null){sel.functionAcordion();}if(slide){slide_acordeon(acordiansNumber,slideTimeInterval);}return acordiansNumber;};

function getElementsByClass(searchClass,node,tag){
	var classElements=new Array();
	if(node==null)node=document;
	if(tag==null)tag='*';
	var els=node.getElementsByTagName(tag);
	var elsLen=els.length;var pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");for(var i=0,j=0;i<elsLen;i++){
		if(pattern.test(els[i].className)){classElements[j]=els[i];j++;}}return classElements;};
				
function AddEvent(object,evt,func,capture){
	if(typeof func!='function')return false;
	if(object.addEventListener){object.addEventListener(evt,func,capture);return true;}
	else if(object.attachEvent){object.attachEvent('on'+evt,func);return true;}return false;};
				
function RemoveEvent(object,evt,func,capture){
	if(typeof func!='function')return false;
	if(object.removeEventListener){object.removeEventListener(evt,func,capture);return true;}
	else if(object.detachEvent){object.detachEvent('on'+evt,func);return true;}return false;} 
