//
// banengin.js   V 1.2   Pull type Banner-Engine with seeded Random Generator
// Copyright (c)2001-2003 /A/D/E/ CH-8712 Staefa
//


// Array Definitions ----------------------------------------------------------
// URL's
linkurl = new Array;
linkurl[0] = "mailto:postmaster@adenet.ch?subject=Werbeanfrage";
linkurl[1] = "mp4video.htm";
linkurl[2] = "services.htm";
linkurl[3] = "services.htm";
linkurl[4] = "services.htm";
linkurl[5] = "http://www.adenet.ch/VeronikaDombi/";
linkurl[6] = "mailto:postmaster@adenet.ch?subject=Werbeanfrage";
linkurl[7] = "http://www.lips.ch/";
linkurl[8] = "http://www.lips.ch/galerie/";
linkurl[9] = "http://praxis.dombi.ch/";


// Banner-Images 500 x 77 Pixel
banimg = new Array;
banimg[0] = "banner/banade.gif";
banimg[1] = "banner/banmpg.gif";
banimg[2] = "banner/banopt.gif";
banimg[3] = "banner/banslow.gif";
banimg[4] = "banner/banfire.gif";
banimg[5] = "banner/banvdo.gif";
banimg[6] = "banner/ban1st.gif";
banimg[7] = "banner/banrlips.jpg";
banimg[8] = "banner/bangal.gif";
banimg[9] = "banner/banvhd.jpg";


// New Window required?
banwin = new Array;
banwin[0] = false
banwin[1] = true
banwin[2] = true
banwin[3] = true
banwin[4] = true
banwin[5] = true
banwin[6] = false
banwin[7] = true
banwin[8] = true
banwin[9] = true

// ---------------------------------------------------------------------------

var banSecs  = 7; 			// Seconds to show
var banCount = -1;			// Global: Array Pointer
var banLast  = -1;			// Global: Last Pointer
var oban;				// Global: Timer-Object
banStat = new Array;			// Debug: Statistics-Data Capturing
banSout = new Array ( banimg.length );	// Debug: Statistics Output

function BanInit() {
	// Initializes the Banner-Display - call in <BODY ...

	BanSelect();

	if (document.images) {
		document.banner.src = banimg[ banCount ];
	};

	oban = setTimeout ( "BanInit();", banSecs * 1000);
}



function BanClick() {
	// Loads the corresponding URL on the Click

	var burl = linkurl[ banCount ]

	if ( banwin[ banCount ] ) {
		// Display Link in a new Window
		window.open( burl ,"_blank" );
	} else {
		// Display in same Window
		document.location = burl ;
	};
}


function BanSelect() {
	// Auto-Seeded random selection of a banner 
 	var now = new Date () ;
	var tmplen = banimg.length ;
 	banCount = Math.floor(  now.getTime () / (21+banCount) ) % tmplen ;

	if (banCount == banLast) {
		banCount ++ ;
		if (banCount > (tmplen-1))
			banCount = 0;
	}
	banLast = banCount;

	if (debug) {
		// Debug, Capture Data
		var bd_index = banStat.length ;
		if (banStat.length < 10000) 
			banStat[ bd_index ] = banCount;
	}
}


function BanStatistics() {
	// Display Banner-Engine Statistics
	if (debug) {
		var tmplen    = banimg.length ;
		var bd_num    = banStat.length ;
		var bd_equal  = Xround( 100/tmplen ,2 ) ;
		var bd_string = "BanStats: s=" + bd_num.toString() + ", n=" + banCount.toString() + "  ";
		var bd_graph  = "Banner-Statistics:\n---------------------------\n       (Equal Distribution at " + bd_equal.toString() + "%)\n\n|  ";

		for( jj = 0; jj < tmplen; jj++ ) {
			var jc = 0;
			var jcp = 0.00 ;
			for( j = 0; j < bd_num; j++ ){
				if( banStat[j] == jj )
					jc++;
			}
			jcp = Xround(jc/bd_num*100,1);
			banSout[ jj ] = jcp ;
			bd_string = bd_string + " |  " + jj.toString() + "=" + jcp.toString() + "%" ;
		}
		window.status = bd_string ;

		var maxsize = 0;
		var linescale = 0.0;
		for ( j = 0; j < tmplen; j++ )
			maxsize = (banSout[ j ] > maxsize) ? banSout[j] : maxsize ;

		for ( l = 10; l >= 0 ; l-- ) {
			linescale = Xround( maxsize * l/10, 1 ) ;
			for ( j = 0; j < tmplen; j++ ) {
				bd_graph = bd_graph + (banSout[j] >= linescale ? "o   " : "     ") ;
			}
			bd_graph = bd_graph + "| - " +  linescale.toString() + "%\n|  " ;
		}

		for( j = 0; j < tmplen ; j++ )
			bd_graph = bd_graph + j.toString() + "   " ;
		bd_graph = bd_graph + "|   n\n" ;

		for ( j = 0; j < tmplen * 3 ; j++ )
			bd_graph = bd_graph + "¯" ;
		alert( bd_graph + "\nSee at status line for more Details!") ;

	}
}


function Xround( number, decimal ) {
	// rounds a number to given decimal-Digits
	var xrtmp = Math.round( number * Math.pow(10,decimal) );
	return xrtmp/Math.pow( 10,decimal);
}



// End of File
