//xp_progressbar
//Copyright 2004 Brian Gosselin of ScriptAsylum.com

//v1.0 - Initial release
//v1.1 - Added ability to pause the scrolling action (requires you to assign
//the bar to a unique arbitrary variable).
//- Added ability to specify an action to perform after a x amount of
//- bar scrolls. This requires two added arguments.
//v1.2 - Added ability to hide/show each bar (requires you to assign the bar
//to a unique arbitrary variable).

//var xyz = createBar(
//total_width,
//total_height,
//background_color,
//border_width,
//border_color,
//block_color,
//scroll_speed,
//block_count,
//scroll_count,
//action_to_perform_after_scrolled_n_times
//)

var w3c=(document.getElementById)?true:false;
var ie=(document.all)?true:false;
var N=-1;

function createBar(w,h,bgc,brdW,brdC,blkC,speed,blocks,count,action){
	createBar(w,h,bgc,brdW,brdC,blkC,speed,blocks,count,action, N);
}
function createBar(w,h,bgc,brdW,brdC,blkC,speed,blocks,count,action, NewN){
	N=NewN;
	if(ie||w3c){
		var t='<div id="_xpbar'+(++N)+'" style="visibility:visible; position:relative; overflow:hidden; width:'+w+'px; height:'+h+'px; background-color:'+bgc+'; border-color:'+brdC+'; border-width:'+brdW+'px; border-style:solid; font-size:1px;">';
		t+='<span id="blocks'+N+'" style="left:-'+(h*2+1)+'px; position:absolute; font-size:1px">';
		for(i=0;i<blocks;i++){
			t+='<span style="background-color:'+blkC+'; left:-'+((h*i)+i)+'px; font-size:1px; position:absolute; width:'+h+'px; height:'+h+'px; '
			t+=(ie)?'filter:alpha(opacity='+(100-i*(100/blocks))+')':'-Moz-opacity:'+((100-i*(100/blocks))/100);
			t+='"></span>';
		}
		t+='</span></div>';
		document.write(t);
		var bA=(ie)?document.all['blocks'+N]:document.getElementById('blocks'+N);
		bA.bar=(ie)?document.all['_xpbar'+N]:document.getElementById('_xpbar'+N);
		bA.blocks=blocks;
		bA.N=N;
		bA.w=w;
		bA.h=h;
		bA.speed=speed;
		bA.ctr=0;
		bA.count=count;
		bA.action=action;
		bA.togglePause=togglePause;
		bA.showBar=function(){
			bA.bar.style.visibility="visible";
		}
		bA.hideBar=function(){
			bA.bar.style.visibility="hidden";
		}
		bA.tid=setInterval('startBar('+N+')',speed);
		return bA;
	}}

function startBar(bn){
	var t=(ie)?document.all['blocks'+bn]:document.getElementById('blocks'+bn);
	if(parseInt(t.style.left)+t.h+1-(t.blocks*t.h+t.blocks)>t.w){
		t.style.left=-(t.h*2+1)+'px';
		t.ctr++;
		if(t.ctr>=t.count){
			eval(t.action);
			t.ctr=0;
		}}else t.style.left=(parseInt(t.style.left)+t.h+1)+'px';
}

function togglePause(){
	if(this.tid==0){
		this.tid=setInterval('startBar('+this.N+')',this.speed);
	}else{
		clearInterval(this.tid);
		this.tid=0;
	}}

function togglePause(){
	if(this.tid==0){
		this.tid=setInterval('startBar('+this.N+')',this.speed);
	}else{
		clearInterval(this.tid);
		this.tid=0;
	}}

function muestraBarraProgreso()
{
	var capa = document.getElementById( 'capaProcesando' );

	h=75;
	w=375;
	LeftPosition = (785) ? (785-w)/2 : 0;
	TopPosition = (739) ? (739-h)/2 : 0;

	capa.style.visibility='visible';
	capa.style.top=TopPosition;
	capa.style.left=LeftPosition;

	bar1.showBar();
}
function muestraBarraProgresoCentrada(ancho,relative){
	var capa = document.getElementById( 'capaProcesando' );
	var tabla = document.getElementById( 'miTablaOculta' );
	var arr=document.body.clientHeight/2;
	var izq=(document.body.clientWidth-ancho)/2;
	capa.style.top=arr;
	capa.style.left=izq;
	if(relative==1){
		tabla.style.top=arr;
		tabla.style.left=izq;
	}else{
		tabla.style.top=0;
		tabla.style.left=0;
	}
	capa.style.display='block';
	tabla.style.visibility='visible';
	bar1.showBar();
}
function muestraBarraProgresoCentrada(factor){
	var capa = document.getElementById( 'capaProcesando' );
	var tabla = document.getElementById( 'miTablaOculta' );
	var arr=document.body.clientHeight/factor;
	var izq=(document.body.clientWidth-300)/2;
	capa.style.top=arr;
	capa.style.left=izq;
	/*
	 * if(relative==1){ tabla.style.top=arr; tabla.style.left=izq; }else{
	 */
	tabla.style.top=0;
	tabla.style.left=0;
	// }
	capa.style.display='block';
	tabla.style.visibility='visible';
	bar1.showBar();
}
/*
 * function mBPC(ancho,relative){ var capa = document.getElementById( 'divProcesando' ); var tabla = document.getElementById( 'divmiTablaOculta' ); var arr=document.body.clientHeight/3; var izq=(document.body.clientWidth-ancho)/2; capa.style.top=arr; capa.style.left=izq; if(relative==1){ tabla.style.top=arr; tabla.style.left=izq; }else{ tabla.style.top=0; tabla.style.left=0; } capa.style.display='block'; tabla.style.visibility='visible'; bar0.showBar(bar0); } function muestraProcesandoConHREF(direccion){ muestraBarraProgresoCentrada(300,0); document.location.href=direccion;
 *  } function muestraProcesando(){ mBPC(300,0);
 *  } function muestraProcesandoConHREF(direccion,indice){ muestraBarraProgresoCentrada(300,indice); document.location.href=direccion;
 *  } function muestraProcesando(indice){ muestraBarraProgresoCentrada(300,indice);
 *  }
 */	
