var dwBan_assetsPath = ''; // pfad zu assets
var dwBan_bannerPath = javascript_to_image_path; // pfad fu bildern

var dwBan_width = '';
var dwBan_height = '';

var dwBan_duration = 5000;
var dwBan_fadeSteps = 30;
var dwBan_useMenu = true;
var dwBan_menuOpac = 40;
var dwBan_menuBgColor = '#FFF';
var dwBan_menuFontColor = '#333';

// ----------------------------------------------------------------------------------------

var dwBan_current = 0;
var dwBan_container = null;
var dwBan_fadeObj = null;
var dwBan_backObj = null;
var dwBan_menuBtns = new Array();
var dwBan_timeout;
var dwBan_isOverMenu = false;
var dwBan_currentLink = '';
var dwBan_nextImageLoaded = false;
var dwBan_imgs = new Array(); // Array('bikd.jpg','bild.jpg')
var dwBan_links = new Array(); // Array('url1','url2')

function dwBan_init(imgs,links,div_id,h,w,menu,duration){
	
	// set vars
	if(duration && duration != dwBan_duration){
		dwBan_duration = duration;
	}
	if(menu == false){
		dwBan_useMenu = menu;
	}

	// get path
	dwBan_assetsPath = '';
	var HTMLScriptElements = document.getElementsByTagName("script");
	for (var i=0; i<HTMLScriptElements.length; i++) {
	 	if (HTMLScriptElements[i].src.match(/(.*)?dwBanner.js$/)) 
		dwBan_assetsPath = RegExp.$1;
	}
	dwBan_assetsPath += 'img/';

	// set messures
	dwBan_width = w+'px';
	dwBan_height = h+'px';
	
	// vars
	dwBan_imgs = imgs;
	dwBan_links = links;
	
	// container dwBan_fadeObj definieren
	dwBan_container = document.getElementById(div_id);
	dwBan_container.style.position = 'relative';
	dwBan_container.style.overflow = 'hidden';
	dwBan_container.style.width = dwBan_width;
	dwBan_container.style.height = dwBan_height;

	// erstes Bild erstellen
	var img = new Image()
	img.src = dwBan_bannerPath+dwBan_imgs[dwBan_current];
	
	// sichtbaren div erzeugen, bild einfügen 
	dwBan_fadeObj = document.createElement('div');
	dwBan_fadeObj.style.position = 'absolute';
	dwBan_fadeObj.style.opacity = 1;
	dwBan_fadeObj.style.MozOpacity = 1;
	dwBan_fadeObj.style.KhtmlOpacity = 1;
	dwBan_fadeObj.style.filter = "";
	dwBan_fadeObj.onclick = function(){dwBan_imageCilck(this);};
	dwBan_fadeObj.appendChild(img);
	
	// div mit Bild einfügen
	dwBan_container.appendChild(dwBan_fadeObj);
	
	// link aktualdwBan_isIEren
	dwBan_updateLink();

	// Wenn meherer Bilder vohanden sind
	if(dwBan_imgs.length > 1){
		
		// build menu
		if(dwBan_useMenu){
			dwBan_buildMenu();
		}
		
		// dwBan_timeout für ersten Fade
		dwBan_timeout = setTimeout('dwBan_insertNextHiddenImage()',10);
	}
}


function dwBan_insertNextHiddenImage(){
	
	// reset
	dwBan_nextImageLoaded = false;
	
	// kommendes Bild ermitteln
	var num = dwBan_current+1;
	if(num > dwBan_imgs.length-1){
		num = 0;
	}
	
	// Bild erstellen
	var img = new Image()
	img.onload = function(){
		if(img.width != 0 && img.width != null){ // Opera läd auch nicht gefundene dateien
			dwBan_nextImageLoaded = true;
		}
	}
	img.src = dwBan_bannerPath+dwBan_imgs[num];
	
	// sichtbaren div erzeugen, bild einfügen 
	dwBan_backObj = document.createElement('div')
	dwBan_backObj.appendChild(img);
	
	// div mit Bild einfügen
	dwBan_container.appendChild(dwBan_backObj);
	
	// fade initialdwBan_isIEren
	dwBan_timeout = setTimeout("dwBan_initNextFade()",dwBan_duration);
}

function dwBan_initNextFade(){
	
	// wenn das kommende Bilde geladen ist geht es weiter
	if(dwBan_nextImageLoaded){
	
		// dwBan_current aktualdwBan_isIEren
		dwBan_current++;
		if(dwBan_current > dwBan_imgs.length-1){
			dwBan_current = 0;
		}
	
		// Menü aktualdwBan_isIEren
		dwBan_updateMenu();
		
		// fade initialdwBan_isIEren
		dwBan_fadeOut(0,dwBan_fadeSteps);
	
	// wenn nicht loop bis es geladen ist
	}else{
		// fade initialdwBan_isIEren
		dwBan_timeout = setTimeout("dwBan_initNextFade()",800);
	}
}

function dwBan_fadeOut(opac,steps){ 

	if(dwBan_fadeObj.style.opacity){
		var clipOpacity = parseFloat(dwBan_fadeObj.style.opacity)*100;
	}else if(dwBan_fadeObj.style.MozOpacity){
		var clipOpacity = parseFloat(dwBan_fadeObj.style.MozOpacity)*100;
	}else if(dwBan_fadeObj.style.KhtmlOpacity){
		var clipOpacity = parseFloat(dwBan_fadeObj.style.KhtmlOpacity)*100;
	}else if(dwBan_fadeObj.filters.alpha.opacity){
		var clipOpacity = parseFloat(dwBan_fadeObj.filters.alpha.opacity);
	}
	
	if(clipOpacity > opac){
		var step = 100/steps;
		var newOpac = clipOpacity-step;
		
		dwBan_fadeObj.style.opacity = (newOpac / 100);
		dwBan_fadeObj.style.MozOpacity = (newOpac / 100);
		dwBan_fadeObj.style.KhtmlOpacity = (newOpac / 100);
		dwBan_fadeObj.style.filter = "alpha(opacity=" + newOpac + ")";

		dwBan_timeout = setTimeout("dwBan_fadeOut("+opac+","+steps+")",40);
	}else{
		// durechsichtigen div entfernen
		dwBan_container.removeChild(dwBan_fadeObj);
		
		// hintergrund zu fordergund machen
		//replaceChild(Textknoten, document.getElementById("z2").firstChild);
		dwBan_fadeObj = dwBan_backObj;
		dwBan_fadeObj.style.position = 'absolute';
		dwBan_fadeObj.style.opacity = 1;
		dwBan_fadeObj.style.MozOpacity = 1;
		dwBan_fadeObj.style.KhtmlOpacity = 1;
		dwBan_fadeObj.style.filter = "";
		dwBan_fadeObj.onclick = function(){dwBan_imageCilck(this);};
		
		// neues Bild einfügen
		dwBan_insertNextHiddenImage();
		
		// link aktualdwBan_isIEren
		dwBan_updateLink();
	}
}

function dwBan_buildMenu(){
	
	var dwBan_isIE = /MSIE/.test(navigator.userAgent);
	
	var tbl = document.createElement("table");
        var tblBody = document.createElement("tbody");
	var row = document.createElement("tr");
	
	// zurück btn
	var cell = document.createElement("td");
	cell.id = 'prev';
	dwBan_setCellAttributes(cell,dwBan_menuOpac);
	cell.onclick = function(){dwBan_toggleImage(this);};
	
	var btnImg = new Image();
	if(dwBan_isIE){
		btnImg.src = dwBan_assetsPath+'trans.gif';
		btnImg.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+dwBan_assetsPath+"back_btn.png');";
	}else{
		btnImg.src = dwBan_assetsPath+'back_btn.png';
	}
	cell.appendChild(btnImg);
	row.appendChild(cell);
	
	// einzelne btns erstellen
	for (var i = 0; i < dwBan_imgs.length; i++) {
		cell = document.createElement("td");
		dwBan_setCellAttributes(cell,dwBan_menuOpac);
		cell.onclick = function(){dwBan_toggleImage(this);};
		var cellText = document.createTextNode(i+1);
		cell.appendChild(cellText);
		row.appendChild(cell);
		dwBan_menuBtns.push(cell);
	}
	
	// zurück btn
	cell = document.createElement("td");
	cell.id = 'next';
	dwBan_setCellAttributes(cell,dwBan_menuOpac);
	cell.onclick = function(){dwBan_toggleImage(this);};
	
	var btnImg = new Image();
	if(dwBan_isIE){
		btnImg.src = dwBan_assetsPath+'trans.gif';
		btnImg.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+dwBan_assetsPath+"next_btn.png');";
	}else{
		btnImg.src = dwBan_assetsPath+'next_btn.png';
	}
	cell.appendChild(btnImg);
	row.appendChild(cell);
	
	
	// Tabelle formatieren
	tblBody.appendChild(row);
        tbl.appendChild(tblBody);
	
        tbl.setAttribute("cellSpacing", "0");
	tbl.setAttribute("cellPadding", "0");
	tbl.setAttribute("border", "0");
	
	tbl.style.height = '20px'; 
	//tbl.style.width = '100px'; 
	
	tbl.style.position = 'absolute'; 
	tbl.style.bottom = '20px'; 
	tbl.style.left = '20px'; 
	tbl.style.zIndex = '1'; 
	
	cell.onmouseover = function(){dwBan_isOverMenu = true;};
	cell.onmouseout = function(){dwBan_isOverMenu = false;};
	
	// menü einfigen
	dwBan_container.appendChild(tbl);
	
	// Menü aktualdwBan_isIEren
	dwBan_updateMenu();
}

function dwBan_updateMenu(){
	for(var i=0 ; i < dwBan_menuBtns.length ; i++){
		var btn = dwBan_menuBtns[i];
		if(i == dwBan_current){
			dwBan_setCellAttributes(btn,dwBan_menuOpac+20);
		}else{
			dwBan_setCellAttributes(btn,dwBan_menuOpac);
		}
	}
}

function dwBan_toggleImage(e){
	
	// dwBan_timeouts anhalten
	clearTimeout(dwBan_timeout);
	
	// gewünschte nummer ermitteln
	var num = dwBan_current;
	if(e.id && e.id != ''){
		if(e.id == 'next'){
			num++;
			if(num > dwBan_imgs.length-1){
				num = 0;
			}
		}
		if(e.id == 'prev'){
			num--;
			if(num < 0){
				num = dwBan_imgs.length-1;
			}
		}
	}else{
		num = parseInt(e.innerHTML)-1;
	}
	
	// gewünschte nummer setzen
	dwBan_current = num;
	
	// acturelles Bild entfernen
	while (dwBan_fadeObj.hasChildNodes()) {
		dwBan_fadeObj.removeChild(dwBan_fadeObj.firstChild);
	}
	
	// neues Bild erstellen
	var img = new Image()
	img.src = dwBan_bannerPath+dwBan_imgs[dwBan_current];
	
	// div sich/bar machen und bild einfügen
	dwBan_fadeObj.style.position = 'absolute';
	dwBan_fadeObj.style.opacity = 1;
	dwBan_fadeObj.style.MozOpacity = 1;
	dwBan_fadeObj.style.KhtmlOpacity = 1;
	dwBan_fadeObj.style.filter = "";
	dwBan_fadeObj.appendChild(img);
	
	// Menü aktualdwBan_isIEren
	dwBan_updateMenu();
	
	// link aktualdwBan_isIEren
	dwBan_updateLink();
	
	// fading einleiten wenn next oder prev gedrückt wurde
	if(e.id && e.id != ''){
	
		// altes hintergrundbild löschen
		if(dwBan_backObj != null){
			dwBan_container.removeChild(dwBan_backObj);
			dwBan_backObj = null;
		}
		
		// fading initialdwBan_isIEren
		dwBan_insertNextHiddenImage();
	}
}


function dwBan_setCellAttributes(cell,opacity){
	cell.style.backgroundColor = dwBan_menuBgColor; 
	cell.setAttribute("align", "center");
	cell.setAttribute("width", "20");
	//cell.setAttribute("height", "20");
	
	cell.style.fontFamily = 'verdana,arial';
	cell.style.fontWeight = 'bold';
	cell.style.fontSize = 11+'px'; 
	cell.style.color = dwBan_menuFontColor;
	//cell.style.border = '1px solid #444';
	
	cell.style.cursor = 'hand';
	cell.style.cursor = 'pointer';
	
	cell.style.opacity = (opacity / 100);
	cell.style.MozOpacity = (opacity / 100);
	cell.style.KhtmlOpacity = (opacity / 100);
	cell.style.filter = "alpha(opacity="+opacity+")";
}

function dwBan_updateLink(){
	dwBan_currentLink = '';
	if(dwBan_links && dwBan_links[dwBan_current]){
		dwBan_currentLink = dwBan_links[dwBan_current];
		dwBan_fadeObj.style.cursor = 'hand';
		dwBan_fadeObj.style.cursor = 'pointer';
	}
}

function dwBan_imageCilck(){
	if(!dwBan_isOverMenu && dwBan_currentLink != ''){
		window.location.href = dwBan_currentLink;
	}
}
