/*global $, Ajax, Services, debug, debugObj, window */

var NewsManager = {

	// public vars
	NEWS_TIMEOUT: 5 * 1000,
	BANNER_TIMEOUT: 5 * 1000,
	news_show: false,
	banner_show: false,	
	types: "",

	// private vars	
	news: [],
	news_current: 0,
	news_timeoutID: 0,
	banner: [],
	banner_current: 0,
	banner_timeoutID: 0,

	// methods
	init: function()
	{
		Services.GetNews(NewsManager.handleInit, NewsManager.types);
	},

	handleInit: function()
	{
		debug("calling handleInit");
		
		var manager, response;
		manager = NewsManager;
		if (Services.isRequestOK())
		{
			debug("isRequestOK == true");

			response = Services.parseJSON(Ajax.getResponse());
			if (response.Success)
			{
				debug("response.Success == true");

				if (manager.news_show)
				{
					manager.news = response.News;
					debugObj(manager.news);
					manager.initNews();
				}

				if (manager.banner_show)
				{
					// TODO: set manager.banner array
					manager.banner = response.Banners;
					//manager.banner = response.News;
					debugObj(manager.banner);
					manager.initBanner();
				}
			}
		}
	},
	
	initNews: function()
	{
		debug("calling initNews");

		var manager = NewsManager;
		if (manager.news.length > 0)
		{
			debug("showing divNewsMain div");

			$("divNewsMain").style.display = "block";
			manager.newsShowItem();
			if (manager.news.length > 1)
			{
				debug("showing divNewsLinks div");

				$("divNewsLinks").style.display = "block";
				manager.news_timeoutID = window.setTimeout( NewsManager.newsNext, manager.NEWS_TIMEOUT );
			}			
		}
	},

	newsNext: function()
	{
		debug("calling newsNext");

		var manager = NewsManager;
		// reset counter
		window.clearTimeout(manager.news_timeoutID);

		manager.news_current = manager.news_current + 1;
		if (manager.news_current >= manager.news.length) {
			manager.news_current = 0;
		}
		manager.newsShowItem();
		manager.news_timeoutID = window.setTimeout( NewsManager.newsNext, manager.NEWS_TIMEOUT );
	},

	newsPrev: function()
	{
		debug("calling newsPrev");

		var manager = NewsManager;
		// reset counter
		window.clearTimeout(manager.news_timeoutID);

		manager.news_current = manager.news_current - 1;
		if (manager.news_current < 0) {
			manager.news_current = (manager.news.length - 1);
		}
		manager.newsShowItem();	
		manager.news_timeoutID = window.setTimeout( NewsManager.newsNext, manager.NEWS_TIMEOUT );
	},

	// NOTE: this can be overridden if needed
	newsShowItem: function()
	{
		debug("calling newsShowItem");
		debug("current = " + this.news_current);
		
		var item;
	
		if (this.news_current >= 0 && this.news_current < this.news.length)
		{
			item = this.news[this.news_current];
			if (item.Text == "") {
				$("divNewsText").style.display = "none";
			} else {
				$("divNewsText").style.display = "block";
				$("divNewsTitle").innerHTML = item.Headline;
				$("divNewsContent").innerHTML = item.Text;
				$("aNewsMore").href = item.URL
			}
			if (item.Img == "") {
				$("imgNews").style.display = "none";
			} else {
				$("imgNews").style.display = "block";
				$("imgNews").src = item.Img;
				$("aNewsImg").href = item.URL
			}
		}
	},
	
	initBanner: function()
	{
		debug("calling initBanner");

		var manager = NewsManager;
		if (manager.banner.length > 0)
		{
			debug("showing divBannerMain div");

			$("divBannerMain").style.display = "block";
			manager.bannerShowItem();
			if (manager.banner.length > 1)
			{
				debug("showing divBannerLinks div");

				// NO LINKS FOR BANNER
				// $("divBannerLinks").style.display = "block";
				manager.banner_timeoutID = window.setTimeout( NewsManager.bannerNext, manager.BANNER_TIMEOUT );
			}			
		}
	},

	bannerNext: function()
	{
		debug("calling bannerNext");

		var manager = NewsManager;
		// reset counter
		window.clearTimeout(manager.banner_timeoutID);

		manager.banner_current = manager.banner_current + 1;
		if (manager.banner_current >= manager.banner.length) {
			manager.banner_current = 0;
		}
		manager.bannerShowItem();
		manager.banner_timeoutID = window.setTimeout( NewsManager.bannerNext, manager.BANNER_TIMEOUT );
	},

	bannerPrev: function()
	{
		debug("calling bannerPrev");

		var manager = NewsManager;
		// reset counter
		window.clearTimeout(manager.banner_timeoutID);

		manager.banner_current = manager.banner_current - 1;
		if (manager.banner_current < 0) {
			manager.banner_current = (manager.banner.length - 1);
		}
		manager.bannerShowItem();	
		manager.banner_timeoutID = window.setTimeout( NewsManager.bannerNext, manager.BANNER_TIMEOUT );
	},

	// NOTE: this can be overridden if needed
	bannerShowItem: function()
	{
		debug("calling bannerShowItem");
		debug("current = " + this.banner_current);
		
		var item;
	
		if (this.banner_current >= 0 && this.banner_current < this.banner.length)
		{
			item = this.banner[this.banner_current];
			if (item.Text == "") {
				$("divBannerText").style.display = "none";
			} else {
				$("divBannerText").style.display = "block";
				$("divBannerTitle").innerHTML = item.Headline;
				$("divBannerContent").innerHTML = item.Text;
				$("aBannerMore").href = item.URL;
			}
			if (item.Img == "") {				
				$("imgBanner").style.display = "none";
			} else {
				$("imgBanner").style.display = "block";
				$("imgBanner").src = item.Img;
				$("aBannerImg").href = item.URL;
			}
		}
	}
};


