/** -- Funktion fuer Promotion-Box -- **/

function PromoBoxObjectSlider(CoreDOM, data) {
	dojo.NodeList.prototype.hover = function(over, out) {
		return this.onmouseenter(over).onmouseleave(out || over);
	}
  //this.WebServerScriptUrlSSL = window.location.protocol+'//'+window.location.host+'/epages/Store.sf/';
  this.WebServerScriptUrlSSL = epages.vars.BaseUrl;
  
	this.CoreDOM = CoreDOM;
	this.data = data;
	__core = this;
	this.curPos = 0;
	this.isAnimate = 0;
	this.NodeWidth = data.nodeWidth;
	this.AnimNode;
	this.AutoSlide;
	this.Duration = data.duration||5000;
 
	createNavElements = function() {
		next = dojo.create("div", {
			id : __core.CoreDOM.id + "Next"
		}, __core.CoreDOM);
		prev = dojo.create("div", {
			id : __core.CoreDOM.id + "Prev"
		}, __core.CoreDOM);
		next.innerHTML = "next";
		prev.innerHTML = "prev";
		dojo.addClass(next, "NextButton");
		dojo.addClass(next, "SlideButton");
		dojo.addClass(prev, "PrevButton");
		dojo.addClass(prev, "SlideButton");
 
		dojo.connect(next, "onclick", null, function(e) {
			if (__core.isAnimate == 0) {
				__core.isAnimate('next');
			}
		});
		dojo.connect(prev, "onclick", null, function(e) {
			if (__core.isAnimate == 0) {
				__core.isAnimate('prev');
			}
		});
	}
 
	createPreview = function() {
		__core.PreviewBox = dojo.create("div", {
			id : __core.CoreDOM.id + "PB"
		}, __core.CoreDOM);
		dojo.addClass(__core.PreviewBox, "PreviewBox");
		dojo.style(__core.PreviewBox, "display", "none");
		dojo.style(__core.PreviewBox, "zIndex", 200);
		dojo.query(".QuickSwitch li").hover(
			function(e) {
				Elem = e.currentTarget;
				if (typeof (Elem) == 'undefined') {
					Elem = e.srcElement;
				}
				nextPos = parseInt(dojo.attr(Elem, "goto"));
				dojo.style(__core.PreviewBox, "left", e.clientX
						- (dojo.style(__core.PreviewBox, "width") / 2)
						+ "px");
				dojo.style(__core.PreviewBox, "top", e.clientY + "px");
				dojo.style(__core.PreviewBox, "backgroundImage", "url('"
						+ __core.data.objects[nextPos] + "')");
				dojo.style(__core.PreviewBox, "display", "block");
			}, function(e) {
				Elem = e.currentTarget;
				if (typeof (Elem) == 'undefined') {
					Elem = e.srcElement;
				}
				dojo.style(__core.PreviewBox, "display", "none");
			}
		);
	}
 
	selectCurItem = function() {
		dojo.query(".QuickSwitch li").forEach(function(node) {
			dojo.removeClass(node, "curItem");
		});
		//console.log('cur pos',__core.curPos);
		dojo.addClass(dojo.query(".QuickSwitch li")[__core.curPos], "curItem");
	}
 
	loadData = function(node,CurObj) {
		dojo.addClass(node,'PlainSlideElement');
		dojo.xhrGet({
			url: __core.WebServerScriptUrlSSL+'?ObjectID='+CurObj+'&ChangeAction=BlockMonitor&ViewAction='+__core.data.ViewAction,
			handleAs: 'text',
			preventCache: true,
			load: function (data)
			{
				node.innerHTML = data;
				dojo.removeClass(node,'PlainSlideElement');
			},
			error: function(data)
			{
				console.log(data);
				//__self.debug("Error","<pre>"+data+"</pre>");
			}
 
		});
	};
 
	createQuickSwitcher = function() {
		qs = dojo.create("ul", {
			className : "QuickSwitch"
		}, __core.CoreDOM);
		for (i = 0; i < __core.data.objects.length; i++) {
			li = dojo.create("li");
			span = dojo.create("span",{ innerHTML: (i+1) } ,li);
			dojo.place(li, qs, "last");
			dojo.attr(span, "goto", i);
			//li.innerHTML = '<span>'+(i+1)+'</span>';
			if(i==0) {dojo.addClass(li,'first')}
			dojo.connect(span, "onclick", null, function(e) {
				console.log('click');
				clearInterval(__core.AutoSlide);
				Elem = e.currentTarget;
				if (typeof (Elem) == 'undefined') {
					Elem = e.srcElement;
				}
				nextPos = parseInt(dojo.attr(Elem, "goto"));
				__core.doAnim(__core.data.objects[nextPos]);
				__core.curPos =  nextPos;
			});
		}
		dojo.style(qs,'left',(dojo.style(__core.CoreDOM,'width') / 2 - dojo.style(qs,'width') / 2)+"px");
	}
 
	this.doAnim = function(obj)
	{
		__core.AnimNode = dojo.query('.SlideElement',__core.CoreDOM)[0];
		dojo.fadeOut(
			{
				node: __core.AnimNode,
				duration: 500,
				onEnd: function(){
					dojo.xhrGet({
						url: __core.WebServerScriptUrlSSL+'?ObjectID='+obj+'&ChangeAction=BlockMonitor&ViewAction='+__core.data.ViewAction,
						handleAs: 'text',
						preventCache: true,
						load: function (data)
						{
							__core.AnimNode.innerHTML = data;
							dojo.fadeIn({
								node: __core.AnimNode,
								duration: 500
							}).play();
 
						},
						error: function(data)
						{
							console.log(data);
							//__self.debug("Error","<pre>"+data+"</pre>");
						}
 
					});
					selectCurItem();
				}
			}
		).play();
		var newNode = loadData(img,__core.data.objects[0]);	
	}
 
	init = function() {
		__core.CoreDOM = dojo.byId(CoreDOM);
 
		if (__core.data.width) {
			__core.NodeWidth = __core.data.width;
		}
 
		__core.CoreDOM.SlideNode = dojo.create("div", {
			className: "SlideContainer"
		}, __core.CoreDOM);
 
		img = dojo.create('div',{id:__core.CoreDOM.id + 'img1',className: "SlideElement"}, __core.CoreDOM.SlideNode);
		loadData(img,__core.data.objects[0]);
 
		if (__core.data.enableQuickSwitch == true) {
			createQuickSwitcher();
			selectCurItem();
			if (__core.data.enableQuickPreview == true) {
				createPreview();
			}
 
		}
		if (__core.data.enableNavigation == true) {
			createNavElements();
		}
 
		if (__core.data.enableAutoSlide == true)
		{
			__core.AutoSlide = setInterval ('autoSlide()',__core.Duration);
		}
 
	}
 
	autoSlide = function()
	{
		__core.curPos = (__core.curPos+1) % __core.data.objects.length;
		__core.doAnim(__core.data.objects[__core.curPos]);
		selectCurItem();
	}
 
	init();
}


