YUI.namespace("f5.footer");
YUI.f5.footer.app = {
	ns:"f5.footer",
	init:function(Y){
		Y.log("app:init.", "info", this.ns);
		var xdrConfig = {
			id:"flash",
			yid:Y.id,
			src:"/gruprc_footer/io.swf?t=" + new Date().valueOf().toString()
		}
		Y.io.transport(xdrConfig);
		var handleStart = function(id,a){
			Y.log("io:start firing.", "info");
			Y.get("#f5-footer").setStyle("display", "block");
		}
		var handleSuccess = function(id,o,a){
			YUI().log("io:success.", "info");
			var oData = Y.JSON.parse(o.responseText);
			if(oData && oData.ticker_content){
				YUI.f5.footer.ticker.init(Y,oData.ticker_content);
			}
			if(oData && oData.tabs_content){
				YUI.f5.footer.tabs.init(Y,oData.tabs_content);
			}
		}
		var handleFailure = function(id,o,a){
			Y.log("io:failure.", "error", this.ns);
		}
		Y.on('io:xdrReady',function(){
			Y.log("io:xdrReady.", "info", this.ns);
			Y.io("http://content.gruprc.ro/footer-new-admin/data.js",{
				method:"GET",
				xdr:{
					use:"flash",
					repsonseXML:false
				},
				on:{
					start:handleStart,
					success:handleSuccess,
					failure:handleFailure
				}
			});
		});
	}
}
YUI({loadOptional:false,combine:true}).use("io-xdr","json-parse","log","node","substitute","anim", function(Y){
	Y.on("domready", function(){
		YUI.f5.footer.app.init(Y);
	},this);
});

YUI.namespace("f5.footer.ticker");
YUI.f5.footer.ticker = {
	container:"#f5-ticker-window",
	ticker:"#f5-ticker",
	controlUp:"#f5-ticker-up",
	controlDown:"#f5-ticker-down",
	height:null,
	interval:null,
	Y:null,
	ns:"f5.footer.ticker",
	init:function(Y,oData){
		this.Y = Y;
		this.Y.log("ticker:init.", "info", this.ns);
		this.prep(oData);
		this.setup();
		var c =  this.Y.get(this.ticker);
		var anim = new this.Y.Anim({
			node:c,
			duration:0.5,
			to:{
				xy: [c.getX(),c.getY()-this.height]
			},
			easing: this.Y.Easing.easeOut
		});
		anim.on("end",function(){
			c.appendChild(c.replaceChild(c.get("firstChild").next(),c.get("firstChild")));
			c.setY(c.getY()+32);
//			this.stop();
//			setTimeout(function(){
//				anim.run();
//			},3000);
		});
		this.rotate = anim;
		this.events();
		this.start();
	},
	setup:function(){
		this.Y.log("ticker:setup.", "info", this.ns);
		var c =this.Y.get(this.container).get("region");
		this.height = parseInt(c.height,10);
	},
	events:function(){
		this.Y.on("click",this.scrollUp,this.controlUp,this,this);
		this.Y.on("click",this.scrollDown,this.controlDown,this);
		this.Y.on("mouseover",this.pause,this.controlUp,this);
		this.Y.on("mouseover",this.pause,this.controlDown,this);
		this.Y.on("mouseout",this.start,this.controlUp,this);
		this.Y.on("mouseout",this.start,this.controlDown,this);
		this.Y.on("mouseover",this.pause,this.Y.get(this.ticker),this);
		this.Y.on("mouseout",this.start,this.Y.get(this.ticker),this);
	},
	prep:function(oData){
		this.Y.log("ticker:prep.", "info", this.ns);
		var c = this.Y.get(this.ticker);
		var s = "";
		this.Y.each(oData,function(oValue,key){
			var t = "<li><a class='title' href='{aUrl}' target='_blank' title='{aTitle}'><div>{aInner}</div></a><span class='ts'><div>{aTs}</div></span></li>";
			this.Y.log("ticker:build item numer " + key + ".", "info", this.ns);
			s = s + this.Y.Lang.substitute(t,oValue);
		},this);
		c.set("innerHTML",s);
	},
	scrollUp:function(e,self){
		//self.Y.log("ticker:up.", "info", self.ns);
		var c =  self.Y.get(self.ticker)
		var anim = new self.Y.Anim({
			node:c,
			duration:0.5,
			to:{
				xy: [c.getX(),c.getY()-self.height]
			},
			easing: self.Y.Easing.easeOut
		});
		anim.on("end",function(){
			c.appendChild(c.replaceChild(c.get("firstChild").next(),c.get("firstChild")));
			c.setY(c.getY()+32);
		});
		anim.run();
	},
	scrollDown:function(){
		//this.Y.log("ticker:down.", "info", this.ns);
		var c =  this.Y.get(this.ticker);
		var anim = new this.Y.Anim({
			node:c,
			duration:0.5,
			from:{
				xy: [c.getX(),c.getY()-this.height]
			},
			to:{
				xy: [c.getX(),c.getY()]
			},
			easing: this.Y.Easing.easeOut
		});
		anim.on("start", function(){
			c.insertBefore(c.get("lastChild"),c.get("firstChild"));
			c.setY(c.getY()-32);
		})
		anim.run();
	},
	start:function(){
		var self = this;
		this.interval = setInterval(
			function(){
				self.scrollUp(null,self);
			},
			4000
		);
	},
	pause:function(){
		clearInterval(this.interval);
	}
}
YUI.namespace("f5.footer.tabs");
YUI.f5.footer.tabs = {
	Y:null,
	_tabCount:0,
	_activePair:0,
	_container:"#f5-tabs",
	_nav:".yui-nav",
	_contents:".yui-content",
	_navNext:"#f5-tabs-next",
	_navPrev:"#f5-tabs-prev",
	_ns:"f5.footer.tabs",
	init:function(Y,oData){
		YUI().log("tabs:init.", "info", this._ns);
		this.Y = Y;
		var iCount = oData.length;
		this._tabCount = Math.floor((iCount / 5)) + 1;
		this._setup();
		for(var i = 0;i<this._tabCount;i++) {
			var oSlice = oData;
			this._addTab(i,oSlice.slice(i*5,(i+1)*5));
		}
	},
	setActive:function(e,args){
		this.setInactive();
		this._activePair = args;
		this._activePair.nav.addClass("selected");
		this._activePair.content.removeClass("yui-hidden");
	},
	setInactive:function(){
		this._activePair.nav.removeClass("selected");
		this._activePair.content.addClass("yui-hidden");
	},
	next:function(){
		var args = {};
		if(this._activePair.nav.next()){
			args.nav = this._activePair.nav.next();
			args.content = this._activePair.content.next();
		}
		else {
			args.nav = this._nav.get("firstChild");
			args.content = this._contents.get("firstChild");
		}
		this.setActive(null, args);
	},
	prev:function(){
		var args = {};
		if(this._activePair.nav.previous()){
			args.nav = this._activePair.nav.previous();
			args.content = this._activePair.content.previous();
		}
		else {
			args.nav = this._nav.get("lastChild");
			args.content = this._contents.get("lastChild");
		}
		this.setActive(null, args);
	},
	_setup:function(){
		YUI().log("tabs:setup.", "info", this._ns);
		this._nav = this.Y.get(this._container).query(this._nav).set("innerHTML", "");
		this._contents = this.Y.get(this._container).query(this._contents).set("innerHTML", "");;
		this.Y.on("click",this.next,this.Y.get(this._navNext),this,null);
		this.Y.on("click",this.prev,this.Y.get(this._navPrev),this,null);
		this._nav.get("parentNode").setStyle("width", ((this._tabCount+1)*1.0384)+"em");
		this._nav.get("parentNode").setStyle("*width", ((this._tabCount+1)*1.025)+"em");
	},
	_addTab:function(index, oItems){
		YUI().log("tabs:add tab index "+ index +" .", "info", this._ns);
		var active = (index==0) ? true : false;
		var nav = this._nav.appendChild(this.Y.Node.create(this._addNav(active)));
		var content = this._contents.appendChild(this.Y.Node.create(this._addContent(active, oItems)));
		this.Y.on("click",this.setActive,nav,this,{"nav":nav,"content":content});
		if(active){
			this._activePair = {
				"nav":nav,
				"content":content
			}
		}

	},
	_addNav:function(active){
		YUI().log("tabs:add nav.", "info", this._ns);
		var t = '<li id="' + this.Y.guid("nav") + '" class="{class}"><a><em></em></a></li>';
		var oActive = (active == true) ? {"class":"selected","title":"active"} : {"class":"","title":""};
		return this.Y.Lang.substitute(t,oActive);
	},
	_addContent:function(active, oItems){
		YUI().log("tabs:add content.", "info", this._ns);
		var tContent = '<div class="{class}">{cContent}</div>';
		var cContent = "";
		this.Y.each(oItems,function(value,key){
			var tItem = '<li>{source}{title}{image}</li>';
			var tSource = '<h3 class="f5-article-site"><a title="{title}" target="_blank" href="{url}">{title} \u00bb</a></h3>';
			var tTitle = '<h3 class="f5-article-title"><a title="{desc}" href="{url}" target="_blank"><span>{title}</span></a></h3>';
			var tImage = '<h3 class="f5-article-photo"><a title="{desc}" href="{url}" target="_blank"><img src="{src}" alt="{title}" title="{title}" width="67" /></a></h3>';
			try {
				cContent += this.Y.Lang.substitute(tItem,{
					"source":this.Y.Lang.substitute(tSource,{"title":value.sName,"url":value.sUrl}),
					"title":this.Y.Lang.substitute(tTitle,{"title":value.aTitle,"url":value.aUrl,"desc":value.aDesc,"sec":value.aSec}),
					"image":this.Y.Lang.substitute(tImage,{"title":value.aTitle,"url":value.aUrl,"src":value.iUrl,"desc":value.aDesc})
				});
			}
			catch(err) {
				alert(err);
			}
		},this);
		cContent = '<ul class="f5-article-list">' + cContent + '</ul>';
		return this.Y.Lang.substitute(tContent,{"class":(active == true) ? "" : "yui-hidden","cContent":cContent});
	}
}