﻿function MorphineNews() {
	//this.morphinebase = new MorphineBase() ;
	this.idCounter = 0 ;
	this.instances = new Array();
}

MorphineNews.prototype.init = function(settings) {
	morphine_base.addEvent(window, "load", MorphineNews.prototype.onLoad);
}

MorphineNews.prototype.onLoad = function() {
	for (var idInstance in morphine_news.instances) {
		morphine_news.instances[idInstance].start() ;
	}
}

MorphineNews.prototype.addItem = function(idActu, text) {
	this.instances[idActu].addItem(text) ;
}

MorphineNews.prototype.addNewsControl = function(idActu, objAlignement, decalageX, decalageY, tailleW, tailleH) {
		var inst = new MorphineNewsControl(idActu, objAlignement, decalageX, decalageY, tailleW, tailleH);
		this.instances[idActu] = inst ;
}

MorphineNews.prototype.onResize = function() {
	for (var idInstance in morphine_news.instances) {
		morphine_news.instances[idInstance].resize() ;
	}
}

MorphineNews.prototype.removeNewsControl = function(idActu) {
	this.instances[idActu].detruire() ;
}

function MorphineNewsControl(idActu, objAlignement, decalageX, decalageY, tailleW, tailleH) {
	this.idActu = idActu ;
	//this.monInputId = replace_element.id ;
	this.decalageX = decalageX ;
	this.decalageY = decalageY ;
	this.objAlignement = objAlignement ;
	this.tailleW = tailleW ;
	this.tailleH = tailleH ;
	this.items = new Array();
	this.items2 = new Array();
	morphine_base.addEvent(window, "resize", MorphineNews.prototype.onResize);
};

MorphineNewsControl.prototype.addItem = function(text) {
	var i = this.items.length ;
	this.items[i] = new Object() ;
	this.items[i].texte = text ;
}

MorphineNewsControl.prototype.start = function(text) {
	this.divPrincipale = document.createElement("div") ;
	this.divPrincipale.style.position = "absolute" ;
	this.divPrincipale.style.left = (morphine_base.getAbsX(this.objAlignement)+this.decalageX)+"px" ;
	this.divPrincipale.style.top = (morphine_base.getAbsY(this.objAlignement)+this.decalageY)+"px" ;
	this.divPrincipale.style.width = this.tailleW+"px" ;
	this.divPrincipale.style.height = this.tailleH+"px" ;
	this.divPrincipale.style.clip = "rect(0 "+this.tailleW+"px "+this.tailleH+"px 0)" ;
	this.divPrincipale.id = "morphine_actu_"+this.idActu ;
	this.divPrincipale.style.visibility = "visible" ;
	//monDiv.style.zIndex = 100 ;
	this.divPrincipale.innerHTML = "" ;
	document.body.appendChild(this.divPrincipale) ;
	
	this.itemActuel = 0 ;
	this.itemPlus = 1 ;
	for (i=0 ; i<this.items.length ; i++) {
		var monDiv = document.createElement("div") ;
		monDiv.style.position = "absolute" ;
		monDiv.style.left = "0px" ;
		var posTop = -1*this.tailleH ;
		if (i==0) posTop = 0 ;
		if (i==1) posTop = this.tailleH ;
		monDiv.style.top = posTop+"px" ;
		monDiv.style.width = this.tailleW+"px" ;
		monDiv.style.height = this.tailleH+"px" ;
		monDiv.style.clip = "rect(0 "+this.tailleW+"px "+this.tailleH+"px 0)" ;
		monDiv.style.visibility = "visible" ;
		monDiv.style.padding = "0px" ;
		monDiv.style.fontFamily = "Arial" ;
		monDiv.style.fontSize = "11px" ;
		//monDiv.style.zIndex = 100 ;
		monDiv.innerHTML = this.items[i].texte ;
		this.divPrincipale.appendChild(monDiv) ;
		this.items2[i] = new Object() ;
		this.items2[i].lediv = monDiv ;
		this.items2[i].y = posTop ;
	}
	
	if (this.items2.length > 1) this.animate() ;
}

MorphineNewsControl.prototype.animate = function() {
	var vit = 11 - (10.0 * Math.abs((this.items2[this.itemActuel].y) / (this.tailleH))) ;
	//var vit = 4 ;
	this.items2[this.itemActuel].y = (this.items2[this.itemActuel].y - vit) ;
	this.items2[this.itemPlus].y = (this.items2[this.itemPlus].y - vit) ;
	var delai = 70 ;
	if (this.items2[this.itemActuel].lediv.offsetTop <= -1*this.tailleH) {
		this.itemActuel++ ;
		this.itemPlus++ ;
		if (this.itemActuel>this.items2.length-1) this.itemActuel=0 ;
		if (this.itemPlus>this.items2.length-1) this.itemPlus=0 ;
		this.items2[this.itemActuel].y = 0 ;
		this.items2[this.itemPlus].y = this.tailleH ;
		delai = 7000 ;
	}
	this.items2[this.itemActuel].lediv.style.top = Math.floor(this.items2[this.itemActuel].y)+"px" ;
	this.items2[this.itemPlus].lediv.style.top = Math.floor(this.items2[this.itemPlus].y)+"px" ;
	window.setTimeout(this.animate.bind(this),delai);
}

MorphineNewsControl.prototype.resize = function() {
	this.divPrincipale.style.left = (morphine_base.getAbsX(this.objAlignement)+this.decalageX)+"px" ;
	this.divPrincipale.style.top = (morphine_base.getAbsY(this.objAlignement)+this.decalageY)+"px" ;
}

MorphineNewsControl.prototype.detruire = function() {
	 document.body.removeChild(this.divPrincipale);
}


var morphine_news = new MorphineNews();
//morphine_news.init() ;
