// 	Rutinas variadas
//	Toma parámetros generales
	var PTipo = /(Firefox|MSIE|Opera|Safari|Chrome).[0-9.]{1,99}/i.exec(navigator.userAgent);
	PTipo = PTipo.toString().substring(0,1);								//F=FireFox M=Explorer O=Opera S=Safari C=Chrome
	var PSrch = window.location.search.substring(1,9999).split("&");	// Parámetros de entrada
	var PAncho = new Number(document.documentElement.clientWidth);		// Ancho de la pantalla en pixels
	var PAlto = new Number(document.documentElement.clientHeight);		// Alto de la pantalla en pixels
	var TimeID = null;													// ID de time por reajuste

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Rutina de posicionamiento de #.... 
function Ajustar(AltoContenedor){
	var Nm = new Number();
	PCnt = Alto = AltoContenedor;
	if (document.styleSheets[0].rules){
		var Rs = document.styleSheets[0].rules;
	}else{ 
		var Rs = document.styleSheets[0].cssRules;
	}
	//	Toma y establece valores 
	for (i=0;i<Rs.length;i++){
		switch (Rs[i].selectorText){
		case "#contenedor":
			AltCnt = Alto;
			Rs[i].style.height = AltCnt + 'px';
			break;
		case "#menu":
			AltMenu = parseInt(Rs[i].style.height) + 10;					// Alto
			AltMenu += parseInt(Rs[i].style.marginBottom);
			break;
		}
	}
	//	Posiciona
	for (i=0;i<Rs.length;i++){
		switch (Rs[i].selectorText){
		case "#contenedor":
			Nm = PAncho - parseInt(Rs[i].style.width);
			Rs[i].style.marginLeft = ((Nm < 0) ? 0 : (Nm / 2)) + 'px';
			Nm = PAlto - AltMenu - AltCnt;
			Rs[i].style.marginTop = ((Nm < 0) ? 0 : (Nm / 2)) + 'px';
			break;
		case "#menu":
			Nm = PAncho - parseInt(Rs[i].style.width);
			Rs[i].style.marginLeft = ((Nm < 0) ? 0 : (Nm / 2)) + 'px';
			Nm = PAlto - AltMenu;
			Rs[i].style.marginTop = (((Nm < AltCnt) ? AltCnt : Nm) + 10) + 'px';
		}
	}
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//		Reajuste despues de modificar el tamaño del explorador
function Reajustar(){
	if (TimeID != null) window.clearTimeout(TimeID);
	TimeID= window.setTimeout("Reajustar1()", 40);
}
function Reajustar1(){
	window.location.search = "?" + PSrch[0];
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//			Ajusta el tamaño del ListaFotos. Comienza el desplazamiento por tiempo y lo interrumpe por mouse
var _IncScroll = 2;				// Pixels de scroll
var _TmpScroll = 50;			// ms entre scroll y scroll
var _EspScroll = 10;			// pasos de espera entre movimiento a der e izq
var _IDTimeScroll = null;		// Referencia a Interval
var _SwScroll = 0;				// Bandera para activar scroll
function ListaFotos(idDiv){										// Ajusta tamaño tira fotos
	var Cl = document.images;
	var Ln = 0;
	for (i=0;i<Cl.length;i++){
		if (Cl.item(i).parentNode.parentNode.id == idDiv){
			L = Cl.item(i).offsetLeft + Cl.item(i).width;
			if (Ln < L) Ln = L;
		}
	}
	document.getElementById(idDiv).style.width = Ln + "px";
	switch (PTipo){
	case "M":
		document.all.Fotos.onmouseover = Para;
		document.all.Fotos.onmouseout = Mueve;
		break;
	default:
		var Elm = document.getElementById("Fotos");
		Elm.addEventListener("mouseover",Para,false);
		Elm.addEventListener("mouseout",Mueve,false);
		break;
	}
	Mueve();			// Comienza a mover la tira de fotos
}
function Para(){ParaMueve(_SwScroll & 0x0E);}
function Mueve(){ParaMueve(_SwScroll | 0x1);}
function ParaMueve(Val){
	if ((_SwScroll = Val) == 0x1){
		if (_IDTimeScroll == null)
			_IDTimeScroll = window.setInterval("TiraFotosScroll()",_TmpScroll);
	}else{
		if (_IDTimeScroll != null) window.clearInterval(_IDTimeScroll);
		_IDTimeScroll = null;
	}
}
var _PasEspScroll = 0;
function TiraFotosScroll(){
	var Elm = document.getElementById("Fotos");
	V = Elm.scrollLeft;
	Elm.scrollLeft += _IncScroll;
	if (V == Elm.scrollLeft){
		if (_PasEspScroll++ > _EspScroll){			// Paradiña al final del ciclo
			_PasEspScroll = 0;
			_IncScroll = _IncScroll * (-1);
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//		Cambia los textos del iframe
function CambiaTexto(Nom,Fic){				     			// Cambia el texto del iframe. Nom es fichero a presentar
	var Rl = document.getElementById("menu2").getElementsByTagName("a");
	for (i=0;i<Rl.length;i++) Rl[i].className = "opcionA";	// activa todos
	document.getElementById(Nom).className = "opcionAt";
	var Elms = document.getElementById("Texto").childNodes;
	for(i=0;i<Elms.length;i++){
		if (Elms[i].tagName == "IFRAME") break;
	}
	Elms[i].src = Fic;	// carga el fichero
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//		Rutinas de hoja Maquinaria
function VerMaquina(Evento){					//	Click sobre las fotos.
	if (!(Evento)) Evento = window.event;
	Elm = (Evento.target) ? Evento.target: Evento.srcElement;
	if (Elm.id == "FotoGrande"){
		var Nm = Elm.src.toLowerCase().split("imagen/");
		document.getElementById("Maquinas").style.visibility = "visible";
		document.getElementById("Maquina").style.visibility = "hidden";
		document.getElementById("FotoGrande").src = "";
		document.getElementById("Texto").getElementsByTagName("iframe")[0].src = Nm[0] + "Texto.html";
		document.title = "GEONOR maquinaria";
	}else{
		var Nm = Elm.src.toLowerCase().split("imagen/mini");
		Nm[1] = Nm[1].substring(0,Nm[1].length-4);
		document.getElementById("Maquinas").style.visibility = "hidden";
		document.getElementById("Maquina").style.visibility = "visible";
		var ElmT  = document.getElementById("FotoGrande");
		ElmT.alt = Elm.alt;
		ElmT.title = Elm.title;
		document.title = "GEONOR " + Elm.title;
		ElmT.src = Nm[0] + "Imagen/" + Nm[1] + ".jpg";
		document.getElementById("Texto").getElementsByTagName("iframe")[0].src = Nm[0] + Nm[1] + ".html";
	}
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//		Click sobre el div de scroll
var _PosA = 0;				// 	Posición absoluta de la barra de scroll
var _Posi = 0;				//	Posición del ratón al pulsar el botón
var _Prop = 0;				//  Proporción entre barra scroll y documento original
var _LonS = 0;				//  Longitud zona scroll
var _ElmI = null;			//  IFrame;
function ScrNecesita(){
	//	toma elemento div, elemento iframe, window dentro de iframe y documento hijo
	var _ElmS = document.getElementById("Texto").getElementsByTagName("div")[0];
	_ElmI = document.getElementById("Texto").getElementsByTagName("iframe")[0];
	var _ElmW =	_ElmI.contentWindow;
	var ElmD = _ElmW.document.body;
	//	Calcula posición absoluta de la barra de scroll
	var Elm = _ElmS;
	_PosA = (PTipo == "M") ? document.documentElement.clientTop : 0;
	do{
		_PosA += Elm.offsetTop;
		Elm = Elm.offsetParent;
	}while(/(BODY|HTML)/i.exec(Elm.tagName) == null);
	//	Calcula proporcion entre tamaño de documento y ventana.
	_Prop = ElmD.offsetHeight / _ElmW.document.documentElement.clientHeight;
	//	Calcula longitud de barra de scroll
	_LonS = _ElmS.offsetHeight;
	//	Oculta o visualiza la barra de scroll
	var Etq = (_Prop >= 1) ? "visible" : "hidden";
	Elms = _ElmS.getElementsByTagName("IMG");
	for(i=0;i<Elms.length;i++) Elms[i].style.visibility = Etq;
	//	Establece eventos de mouse
	switch(PTipo){
	case "M":
		_ElmS.onmousedown = ScrDwn;
		_ElmS.onmouseup = ScrUp;
		_ElmS.onmousewheel = ScrWhl;
		_ElmW.document.onmousewheel = ScrWhl;
		_ElmW.document.body.onclick = ScrEjec;
		break;
	default:
		var Nom = (null != /(C|S)/i.exec(PTipo)) ? "mousewheel" : "DOMMouseScroll";
		_ElmS.addEventListener("mousedown",ScrDwn,false);
		_ElmS.addEventListener("mouseup",ScrUp,false);
		_ElmS.addEventListener(Nom,ScrWhl,false);
		_ElmW.document.addEventListener(Nom,ScrWhl,false);
		_ElmW.document.addEventListener("click",ScrEjec,false);
		break;
	}
}
function ScrWhl(Evento){
	if (!(Evento)) Evento = window.event;
	if (!(Evento)) Evento = _ElmI.contentWindow.event;
	switch (PTipo){
		case "M":
		case "S":
		case "C":
			_Inc = (Evento.wheelDelta / 120);
			break;
		default:
			_Inc = Evento.detail / (-3);
	}
	_ElmI.contentWindow.scrollBy(0, _Inc * (-16));
}
function ScrDwn(Evento){
	if (!(Evento)) Evento = window.event;
	switch (PTipo){
		case "M":
			_Posi = Evento.clientY + document.documentElement.scrollTop;
			break;
		default:
			_Posi = Evento.pageY;
			break;
	}
}
function ScrUp(Evento){
	if (!(Evento)) Evento = window.event;
	var _Poso = (PTipo == "M") ? document.documentElement.scrollTop + Evento.clientY :
			Evento.pageY;
	if (Math.abs(_Poso - _Posi) < 5){			// Caso click
		_Poso -= _PosA;
		if ((_Poso < 12) || (_Poso > (_LonS - 12))){
			_Inc = (_Poso < 12) ? -16 : 16;		// Caso click sobre las flechas
		}else{									// Caso intermedio
			_Inc = (_Poso < (_LonS / 2)) ? -160 : 160;	
		}
	}else{
		_Inc = Math.round((_Poso - _Posi) * _Prop);	// Caso desliza el ratón.
	}
	_ElmI.contentWindow.scrollBy(0,_Inc);
}
function ScrEjec(Evento){
	if (!(Evento)) Evento = window.event;
	if (!(Evento)) Evento = _ElmI.contentWindow.event;
	var Elm = (PTipo == "M") ? Evento.srcElement : Evento.target;
	if (Elm.tagName == "SPAN") Elm = Elm.parentNode;
	if (Elm.tagName != "A") return;
	document.location.href = Elm.href;
}
