/*** NOTICES ***/
function Notices() {}

Notices.default_msg = "";
Notices.timeout = null;
Notices.curr_notice_id = -1;
Notices.notice = null;
Notices.is_default = true;

Notices.init_intval = 5000; //5 seconds
Notices.between_intval = 1000; //1 second
Notices.reset_intval = 15000; //15 seconds

Notices.fps = 60;
Notices.speed = 1; //pixels per move

Notices.initialize = function() {
	Notices.clearTimeout();
	Notices.getNextActiveNotice();
}

Notices.clearTimeout = function() {
	Notices.timeout = null;
}

Notices.showDefault = function() {
	if (!Notices.is_default) {
		var params = {obj_id: "notice_container_div", opacity: {start: 0.0, end: 1.0}, anim_secs: 1.0, fps: 30};
		Transform.animateTransform(params);
		Notices.is_default = true;
	}
}

Notices.hideDefault = function() {
	if (Notices.is_default) {
		Notices.is_default = false;
		var params = {obj_id: "notice_container_div", opacity: {start: 1.0, end: 0.0}, anim_secs: 1.0, fps: 30};
		Transform.animateTransform(params);
	}
}

Notices.getNextActiveNotice = function() {
	Notices.clearTimeout();
	
	var url = "http://"+Utils.getUrlDomain()+"/ssa/notice_actions.php";
	var query_string = "&curr_notice_id="+Notices.curr_notice_id;
//window.alert(url+"?"+query_string);
	new AjaxRequest(url, query_string, function(response){Notices.processGetActiveNotice(response)});
}

Notices.processGetActiveNotice = function(response) {
//window.alert(response);
	var result = JSON.parseJSON(response);
	if (result && result.success && result.active_notice) {
		Notices.notice = new Notice(result.notice_info);
		var anim_start_timer = (Notices.is_default)? 2000: 1000;
		if (Notices.is_default) Notices.hideDefault();
		Notices.timeout = setTimeout("Notices.startNoticeAnim();", anim_start_timer);
	} else {
		Notices.curr_notice_id = -1;
		Notices.resetNotices();
	}
}

Notices.setupGetNextNotice = function() {
	Notices.timeout = setTimeout("Notices.getNextActiveNotice();", Notices.between_intval);
}

Notices.resetNotices = function() {
	if (!Notices.is_default) Notices.showDefault();
	Notices.timeout = setTimeout("Notices.getNextActiveNotice();", Notices.reset_intval);
}

Notices.startNoticeAnim = function() {
	Notices.notice.startAnim();
}

Notices.NoticeAnimEnded = function() {
	Notices.setupGetNextNotice();
}

Notices.pauseCrawl = function() {
	if (!Notices.is_default) Notices.notice.pauseAnim();
}

Notices.resumeCrawl = function() {
	if (!Notices.is_default) Notices.notice.resumeAnim();
}

if (!Browser.is_mobile) Notices.timeout = setTimeout("Notices.initialize();", Notices.init_intval);



/*** NOTICE ***/
function Notice(params) {
	this.id = params.notice_id;
	Notices.curr_notice_id = this.id;
	
	this.title = params.title;
	this.message = params.message;
	this.url = (!Utils.isEmptyString(params.url))? params.url: false;
	
	this.container_element = (this.url)? "notice_container_crawl_a": "notice_container_crawl_div";
	this.crawl_element = (this.url)? "notice_crawl_a": "";
	this.msg_element = (this.url)? "notice_msg_crawl_a": "notice_msg_crawl_div";
	
	this.min_left = null;
	this.max_left = null;
	this.curr_left = null;
	
	this.timeout = null;
	this.timer_intval = Math.round(1000 / Notices.fps);
	
	this.initialize();
}

Notice.prototype.initialize = function() {
	var notice_msg = "";
	notice_msg += "<table>";
		notice_msg += "<tr>";
			notice_msg += "<td class='vCenter'><span class='noticeMsgCrawl'>"+this.message+"</span></td>";
			notice_msg += "<td class='mediumSpacer'></td>";
			if (this.url) {
				notice_msg += "<td class='vCenter'><span class='noticeLinkCrawl'>Click for More</span></td>";
				notice_msg += "<td class='smallSpacer'></td>";
			}
			notice_msg += "<td class='vCenter'>";
				notice_msg += (this.url)? PageItems.moreInfoImage(): PageItems.moreInfoImageInvis();
			notice_msg += "</td>";
		notice_msg += "</tr>";
	notice_msg += "</table>";
	
	Utils.setInnerHtml(this.msg_element, notice_msg);
	if (this.url) Utils.setHref(this.crawl_element, this.url);
}

Notice.prototype.clearTimeout = function() {
	clearTimeout(this.timeout);
	this.timeout = null;
}

Notice.prototype.startAnim = function() {
	this.min_left = -1 * Utils.getObjWidth(this.msg_element) - 5;
	this.max_left = Utils.getWindowSize().width + 5;
	this.curr_left = this.max_left;
	Utils.setStyleLeft(this.msg_element, this.max_left);
	Utils.setStyleTop(this.container_element, 0);
	this.timeout = setTimeout("Notices.notice.nextAnimStep();", this.timer_intval);
}

Notice.prototype.endAnim = function() {
	Utils.setStyleTop(this.container_element, 200);
	Utils.setInnerHtml(this.msg_element, "");
	if (this.url) Utils.setHref(this.crawl_element, "");
	//this.timeout = setTimeout("Notices.NoticeAnimEnded();", 3000);
	Notices.NoticeAnimEnded();
}

Notice.prototype.nextAnimStep = function() {
	if (this.curr_left <= this.min_left) {
		this.endAnim();
	} else {
		this.curr_left = this.curr_left - Notices.speed;
		Utils.setStyleLeft(this.msg_element, this.curr_left);
		this.timeout = setTimeout("Notices.notice.nextAnimStep();", this.timer_intval);
	}
}

Notice.prototype.pauseAnim = function() {
	this.clearTimeout();
}

Notice.prototype.resumeAnim = function() {
	this.nextAnimStep();
}

