// biblioteka
// klasa klikacza
// cont - kontener klikacza
// data - dane do klikacza
// sec - liczba SEKUND zmiany, nie obowiazkowy, domyslnie wartosc ze zmiennej dValue
function ClickShow(cont, data, sec) {
	//this.dValue = {"url":"#","src":"", "sec":4, "alt":""};
	this.dValue = {"url":"#defoultowa-wartosc-url","src":"defoultowa-wartosc-src", "sec":4, "alt":"domyslny-alt"};
	this.data = data||{};
	this.$ = function (oid) {
		if (typeof oid == "object") {
			return oid;
		}
		oid = document.getElementById(oid);
		if (oid) {
			return oid;
		} else {
			return null;
		}
	};
	this.c = this.$(cont);
	this.aLi = this.c.getElementsByTagName("LI");
	this.img = this.c.getElementsByTagName("IMG")[0];
    this.div = this.$("flash");
	this.time = 0;
	this.sec = sec||this.dValue.sec;
	this.timeout = function (ob, sec) {
		var cs = this;
		clearTimeout(this.time);
		if (!ob) {
			return false;
		}
		this.time = setTimeout(function () {cs.click(ob); return false;}, sec * 1000);
		return false;
	};
	this.loadImg = function () {
		var img = new Image();
		for (var i in this.data) {
            if (typeof data[i].src != "undefined" && data[i].src) {
                img.src = data[i].src;
            }
		}
	};

	this.click = function (ob) {
		var key = ob.hash.replace("#", "");
		var d;
		if (typeof this.data[key] == "undefined") {
			return false;
		}
		d = this.data[key];
		for (var i = 0, ln = this.aLi.length; i < ln; i++) {
			if (this.aLi[i].className == "active") {
				this.aLi[i].className = "";
				break;
			}
		}
		ob.parentNode.className = "active";
        if (typeof d["flash"] != "undefined" && d["flash"]) {
            this.div.innerHTML = d["flash"];
            this.div.style.display = "block";
            this.img.parentNode.style.display = "none";
        } else {
            this.img.src = d["src"]||this.dValue.src;
            this.img.alt = d["alt"]||this.dValue.alt;
            this.img.parentNode.href = d["url"]||this.dValue.url;
            this.div.style.display = "none";
            this.img.parentNode.style.display = "block";
        }
        if (this.sec > 0) {
            this.timeout(this.findNext(), this.sec);
        }
		return false;
	}
	this.findNext = function () {
		var ob, next = 1;
		for (var i = 0, ln = this.aLi.length; i < ln; i++) {
			if (next) {
				ob = this.aLi[i].getElementsByTagName("A")[0];
				next = 0;
			}
			if (this.aLi[i].className == "active") {
				next = 1;
			}
		}
		return ob||null;
	}
}

ClickShow.prototype.initialize = function () {
	var el, next, cs = this;
	if (!this.aLi) {
		return false;
	}
	for (var i = 0, ln = this.aLi.length; i < ln; i++) {
		el = this.aLi[i].getElementsByTagName("A")[0]||0;
		if (el) {
			el.onclick = function () {
				var self = this;
				return cs.click(self);
			};
		}
	}
	this.c.onmouseover = function () {
		cs.timeout();
	}
	this.c.onmouseout = function () {
		cs.timeout(cs.findNext(), cs.sec);
	}

	this.loadImg();
	next = this.findNext();
	if (next && this.sec > 0) {
		this.timeout(next, this.sec);
	}
	return false;
}
// koniec biblioteki

// dane
// url - nie musi miec # jest to url linka obrazka
// src - source obrazka
// alt - nie obowiazkowy , jesli go nie dodasz to pojdzie domyslny patrz zmienna dValue
//var ob = '<object type="application/x-shockwave-flash" data="zone_750x200_2.swf" width="100" height="100"><param name="type" value="application/x-shockwave-flash"><param name="wmode" value="transparent"><param name="allowScriptAccess" value="sameDomain"><param name="FlashVars" value="XMLPlayer=/multimedia-xml/%d.xml"><param name="movie" value="zone_750x200_2.swf"><param name="quality" value="high"><param name="bgcolor" value="#000"></object>';
//var data = {gal1:{url:"#url1", src:"/images/cms_bg.jpg", flash:ob},gal2:{url:"#url2", src:"/images/upload_btn.gif"},gal3:{url:"#url3", src:"/images/cms_bg.jpg"},gal4:{url:"#url4", src:"/images/upload_btn.gif"}};

// iniclaizacja klasy klikacza
//var klikacz = new ClickShow("banner-container", data, 3);
//klikacz.initialize();
