

function getElementsByClassName(className) {
   var data = [];
   var node=(document.getElementById("wrapper"))? document.getElementById("wrapper"):document;
   var tags = (document.all) ? document.all  : node.getElementsByTagName("*");
   for(var i=0;i<tags.length;i++) { if(tags[i].className == className) data[data.length]=tags[i];}
   return data;
 }
	 
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);

function getStyle(oElm, strCssRule){
	var strValue = "";
	if(document.defaultView && document.defaultView.getComputedStyle){
		strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
	}
	else if(oElm.currentStyle){
		try{
			strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
				return p1.toUpperCase();
			});
			strValue = oElm.currentStyle[strCssRule];
		}
		catch(e){
			// Used to prevent an error in IE 5.0
		}
	}
	return strValue;
}

function cssjs(a,o,c1,c2){
	switch (a){
		case 'swap':
			o.className=!cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
		break;
		case 'add':
			if(!cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
		break;
		case 'remove':
			var rep=o.className.match(' '+c1)?' '+c1:c1;
			o.className=o.className.replace(rep,'');
		break;
		case 'check':
			var found=false;
			var temparray=o.className.split(' ');
			for(var i=0;i<temparray.length;i++){
				if(temparray[i]==c1){found=true;}
			}
			return found;
		break;
	}
}

/*			FUNCION PARA LIMPIAR UN NODO DE ELEMENTOS TEXTO POR RETORNO DE CARRO					*/
function cleanTree(obj){			
	if(obj.hasChildNodes()){

		obj = cleanWhiteSpace(obj);	

		for(var i = 0; i < obj.childNodes.length; i++)
		{		        							
			cleanTree(obj.childNodes[i]);
		}

	}
}			

// elimina los nodos #text "molestos" (los que hay al hacer salto de lineas de una etiqueta a otra, por ejemplo) de un elemento
function cleanWhiteSpace(element){
	for (var i = 0; i < element.childNodes.length; i++)
	{
		var node = element.childNodes[i];
		if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
		{						
			element.removeChild(node) 
		}							
	}
	return element;
}	

function insertAfter(newElement,targetElement) {
	  var parent = targetElement.parentNode;
	  if (parent.lastChild == targetElement) {
		parent.appendChild(newElement);
	  } else {
		parent.insertBefore(newElement,targetElement.nextSibling);
	  }
	}

function init(){
	if(!document.getElementById || !document.createTextNode){return;}
		if (getElementsByClassName('scrollContent').length!=0) {
			altoScroll=164;
			var scrollContent= getElementsByClassName('scrollContent')[0];
			altoScrollContent=scrollContent.offsetHeight;
			if(altoScrollContent>altoScroll){
				crearBarra();
				altoMaximo= altoScroll - altoScrollContent;
				scrollContent.style.height=altoScroll+'px';
				cleanTree(scrollContent);
				var elementos=scrollContent.childNodes;
				for (i=0;i<elementos.length;i++) {
					 elementos[i].style.position='relative';
					 elementos[i].style.top='0px';
				}
				var superior = getElementsByClassName('superior')[0];
				var inferior = getElementsByClassName('inferior')[0];
				addEvent(superior,'click',subir);
				addEvent(superior,'mouseover',subirPulsado);
				addEvent(superior,'mouseout',pararTimer);
				addEvent(inferior,'click',bajar);
				addEvent(inferior,'mouseover',bajarPulsado);
				addEvent(inferior,'mouseout',pararTimer);
		}
	}
}


function bajar(){
	var scrollContent=getElementsByClassName('scrollContent')[0];
	
	var elementos=scrollContent.childNodes;
	
	for (i=0;i<elementos.length;i++) {
		 var cadena= elementos[i].style.top;
		 var alto= parseInt(cadena.substring(0, cadena.length-2))-7;
		 
		 if(alto>altoMaximo) {
			elementos[i].style.top=alto+'px';
		 }
	}
		 
		 
	
}

function subir(){
	var scrollContent = getElementsByClassName('scrollContent')[0];
	
	var elementos=scrollContent.childNodes;
	
	for (i=0;i<elementos.length;i++) {
		var cadena=elementos[i].style.top;
		var alto= 7 + parseInt(cadena.substring(0,cadena.length-2));
		if (alto<=0) {
			elementos[i].style.top=alto+'px';
		}
	}
  }
function bajarPulsado(){
	bajar();
	timer=setTimeout(bajarPulsado,200);	
}

function subirPulsado(){
	subir();
	timer=setTimeout(subirPulsado,200);	
}

function pararTimer() {
	clearTimeout(timer);
}

function crearBarra(){
	  var scrollbar= document.createElement('div');
	  cssjs('add',scrollbar,'scrollBar');
	  
	  var barra= document.createElement('img');
	  barra.setAttribute('src','../design/es/images/scroll_barra.png');
	  cssjs('add',barra,'barra');
	  scrollbar.appendChild(barra);
	  
	  var superior= document.createElement('img');
	  superior.setAttribute('src','../design/es/images/scroll_boton_superior.png');
	  cssjs('add',superior,'superior');
	  scrollbar.appendChild(superior);
	  
	  var inferior = document.createElement('img');
	  inferior.setAttribute('src','../design/es/images/scroll_boton_inferior.png');
	  cssjs('add',inferior,'inferior');
	  scrollbar.appendChild(inferior);
	  
	  mainContent= getElementsByClassName('scrollContent')[0].parentNode;
	  insertAfter(scrollbar,mainContent);	  
  }

  
addEvent(window,'load',init);