/*
Description: Acordión moofx y scroll para las anclas
Author: I2B Technologies
Author URI: http://www.i2b.cl
Owner: Entel PCS empresas
Owner URI: www.entelpcsempresas.cl
Version: 2.0
*/

var myAccordion, destino=0, ubicacionActual=-1;

//define los stretch, stretcher y detecta si hay ancla
window.onload = function(){
	var myStretch = document.getElementsByClassName('stretch');
	var myStretcher = document.getElementsByClassName('stretcher');
	myAccordion = new fx.Accordion(myStretch, myStretcher, {opacity: false});
	
	var url=window.location.href;
	destino=url.split("#")[1];
	if(destino) { despliegue(); }
}

// si hay un ancla, intenta abrir el stretcher y hacer el scroll
function despliegue(){
	try{
		stretch="stretch_"+destino;
		myAccordion.showThisHideOpen(document.getElementById(stretch));
		window.setTimeout(ancla,700);
	}
	catch(e){}
}

// detecta la posición del stretcher y hace el scroll
function ancla(){
	stretch="#"+destino;
	for(i=0;i<document.anchors.length;i++){
		if(document.anchors[i].name==ancla){
			var aqui=document.anchors[i].offsetTop;
		}
	}
	donde=findPos(document.getElementById(destino),'y');
	ubi=document.documentElement.scrollTop;

	if((document.documentElement.scrollTop>donde+10 || document.documentElement.scrollTop<donde-10) && ubicacionActual!=ubi){
		ubicacionActual=ubi;
		dest=ubicacionActual+((donde-ubicacionActual)/8);
		window.scroll(0,dest);
		t=setTimeout(ancla,10);
	}
	else{
		clearTimeout(t);
	}
}

//encuentra la posición del objeto (la utiliza la funcion "ancla")
function findPos(obj,eje) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	if(eje=="x"){ return curleft; }
	if(eje=="y"){ return curtop; }
}
