var _bannerSpeed = 5000;
var baseURL = '';

var _rootURL = '';
var _tabID = '';
var _pageURL = '';

var banner = new Banner('banner_top', 'banner', 30000);
//var banner2 = new Banner('banner_right', 'banner2', 7000);
var banner2 = new Banner('banner_right', 'banner2', 50000); //30000

function Start()
{
    InitSubnavigation();
    banner.shuffleBanner();
    banner2.shuffleBanner();
}

function InitSubNavigation(naviID, naviElmName)
{
    var arElements = document.getElementsByName(naviElmName);
    if (typeof(arElements) != 'undefined' && arElements != null && arElements.length > 0)
    {
        if (arElements[0].className == 'active')
            arElements[0].src = baseURL + 'images/subnaviitem_first_left_ov.gif';
        else
            arElements[0].src= baseURL + 'images/subnaviitem_first_left.gif';
            
        var elmNavi = document.getElementById(naviID);
        elmNavi.style.display = 'block';
        return 1;
    }
    
    return 0;
}



function Banner(bannerID, instanceName, timeinterval)
{
    this.id = bannerID;
    this.strInstanceName = instanceName;
    this.currentTopBannerIndex = 0;
    this.timeout = timeinterval;
    this.bannerElements = null;
    this.rotateBanner = _RotateBanner;
    this.shuffleBanner = _ShuffleBanner;
    this.viewNextBanner = _ViewNextBanner;
    this.viewNextRandomBanner = _ViewNextRandomBanner;
	this.randomArray = null;
	this.randomArrayCounter = 0;
}

function _RotateBanner()
{   
    this.bannerElements = document.getElementsByName(this.id);
    
    if (typeof(this.bannerElements) != 'undefined' && this.bannerElements.length != null && this.bannerElements.length > 0)
    {
        //alert('this.bannerElements: ' + this.bannerElements.length);
        this.currentTopBannerIndex = this.bannerElements.length-1;
        this.viewNextBanner();
    }
}   

function _ShuffleBanner()
{   
    this.bannerElements = document.getElementsByName(this.id);
    
    if (typeof(this.bannerElements) != 'undefined' && this.bannerElements.length != null && this.bannerElements.length > 0)
    {
        //alert('this.bannerElements: ' + this.bannerElements.length);
        //this.currentTopBannerIndex = this.bannerElements.length-1;
        this.viewNextRandomBanner();
    }
}   

function _ViewNextBanner()
{
    this.bannerElements[this.currentTopBannerIndex].parentNode.style.display = "none";
    
    if ((this.currentTopBannerIndex+1) >= this.bannerElements.length)
        this.currentTopBannerIndex = 0;
    else
        this.currentTopBannerIndex++; 
   
    this.bannerElements[this.currentTopBannerIndex].parentNode.style.display = "block"; 
    this.bannerElements[this.currentTopBannerIndex].style.zIndex = 1000;
    window.setTimeout("window['" + this.strInstanceName + "'].viewNextBanner()", this.timeout);
}

function _ViewNextRandomBanner()
{   
	if (this.randomArray == null)
	{
		this.randomArray = CreateRandomArray(this.bannerElements.length);
	}
	
	this.bannerElements[this.randomArray[this.randomArrayCounter]].parentNode.style.display = "none";
	this.bannerElements[this.randomArray[this.randomArrayCounter]].parentNode.style.zIndex = -1000;
	this.randomArrayCounter++;
	this.randomArrayCounter = this.randomArrayCounter % this.bannerElements.length;
	this.bannerElements[this.randomArray[this.randomArrayCounter]].parentNode.style.display = "block";
	this.bannerElements[this.randomArray[this.randomArrayCounter]].parentNode.style.zIndex = 1000;
	
    window.setTimeout("window['" + this.strInstanceName + "'].viewNextRandomBanner()", this.timeout);
}


function OpenPrintView()
{
    window.open(_pageURL + '/usetemplate-print/', 'Druckansicht', 'width=450,height=400, scrollbars=yes, resizable=yes');
} 

function OpenTeaserPopUp(url)
{
     window.open(url,"esn","width=450px, height=360px");
}

function OpenPopUp(url, nWidth, nHeight)
{
     window.open(url,"esn","width=" + nWidth + "px, height=" + nHeight + "px");
}

function GetRandom(min, max) {
	if(min > max) {
	  return(-1);
	}
	if(min == max) {
	  return(min);
	}
	return min + parseInt(Math.random() * (max - min + 1));
}
function ArrayContainsValue(inputArray, value)
{
	for (var itemVal in inputArray)	{
		if (inputArray[itemVal] == value) {
			return true;
		}
	}
	return false;
}
function CreateRandomArray(length)
{
	var randomArray = new Array(length);
	for (var cnt = 0; cnt < length; cnt++) {
		randomArray[cnt] = -1;
	}
	
	for (var cnt = 0; cnt < length; cnt++) {
		var alreadyContainsValue = true;
		
		var containsInt = true;
		while (containsInt)
		{
			var randomInt = GetRandom(0, length - 1);
			containsInt = ArrayContainsValue(randomArray, randomInt);
		}
		randomArray[cnt] = randomInt;
	}
	return randomArray;
}