HomeView.prototype = new PastelBaseView();
HomeView.prototype.constructor = HomeView;

/**
 * @constructor
 * @base PastelBaseView
 */
function HomeView() {
 
	this.messageData = new Object;
	
	var messageCount = 3;
	
	// accessors ==================================================================================
	this.galleryMenu = function() {
		return this._getset("div.home_image_thumbs", arguments);
	};
	
	this.galleryCont = function() {
		return this._getset("div.id_gallery", arguments);
	};
	// methods ====================================================================================
	
	// constructor ================================================================================ 
	this.initHook = function() {
		$("a", this.galleryMenu()).each(function(index){
			var $target = $(this);
			$target.addClass("id_idx"+index);
		});
		
		var $lastItem = $("div.id_item:nth-child(1)", this.galleryCont());
		var $lastMenuItem = $("a.menu_dashboard_active", this.galleryMenu());
		this.galleryMenu().click($.proxy(function(event) {
			var $target = $(event.target);
			if (!$target.is("a")) {
				return;
			}
			
			var cssClass = $target.attr("class");
			var menuClass = cssClass.match(/menu_[a-z_]+/)[0];
			if (menuClass.indexOf("_active") != -1) {
				return;
			}
			// set active menu item
			cssClass = cssClass.replace(menuClass, menuClass+"_active");
			$target.attr("class", cssClass);
			var idx = cssClass.match(/id_idx[0-9]+?/)[0];
			idx = parseInt(idx.match(/[0-9]+?/)[0]);
			// set inactive old menu item
			cssClass = $lastMenuItem.attr("class");
			menuClass = cssClass.match(/menu_[a-z]+/)[0];
			cssClass = cssClass.replace(menuClass+"_active", menuClass);
			$lastMenuItem.attr("class", cssClass);
			$lastMenuItem = $target;

			$lastItem.css("display", "none"); 
			$lastItem = $("div.id_item:nth-child("+(idx+1)+")", this.galleryCont());
			$lastItem.css("display", "block");	
		}, this));
	};
	
	this.changeMessageAutomatically = function() {
		var currentMessageNumber = 3;
		for(var i = 1; i < messageCount; i++) {
			if($("a#id_news_button_" + i).hasClass("active")) {
				currentMessageNumber = i;
				break;
			}
		}
		var nextMessageNumber = 1;
		if(currentMessageNumber < messageCount) {
			nextMessageNumber = currentMessageNumber + 1;
		}
		
		this.showMessage(nextMessageNumber);
	};
	
	this.showMessage = function(messageNumber, isAnimatingCallback) {
		var scrollAmount = (messageNumber - 1) * (- 30);
		if(this.messageData["message" + messageNumber] !== undefined) {
			$("a.read_more").attr("href", "#upgrades/anchor/" + this.messageData["message" + messageNumber].messageAnchor);
		}
		$("a[id^=id_news_button]").removeClass("active");
		$("a#id_news_button_" + messageNumber).addClass("active");

		$("div.news_text_items").animate({
			"margin-top": scrollAmount
		}, "slow", function() {
			if($.isFunction(isAnimatingCallback)) {
				isAnimatingCallback();
			}
		});
		
	};
	
	this.setMessageData = function(data) {
		this.messageData = data;
		for(var i = 1; i <= messageCount; i++) {
			if(this.messageData["message" + i] != undefined) {
				messageText = this.messageData["message" + i].messageText;
				messageAnchor = this.messageData["message" + i].messageAnchor;
				$("a#id_news_text_" + i).html(messageText);
				$("a#id_news_text_" + i).attr("href", "#upgrades/anchor/" + messageAnchor);
			}
		}
	};
	
	this.getNewsButtons = function() {
		return $("a[id^=id_news_button_]");
	};
	
	this.getMessageNumber = function(newsButton) {
		return $(newsButton).attr("id");
	};
}
