/* Productator Control object definition

   Index
	==========
	[Productator object] Product ()
	HtmlElement [Productator object].writeTo(string where)
			
   Bugfix
	===========

   */

// Persistance data
var PRODUCTATOR_INDEX 	= 0;
var PRODUCTATOR_TIMEOUT	= null;
// [Productator object] Productator(int index)
function Productator(index) {
	// Fetch Productator
	var m_carml = INVENTORY_XML.getElementsByTagName("site")[0].getElementsByTagName("productator")[0].getElementsByTagName("cml");
	// Random start
	if (index<0) index = (m_carml.length)-1;
	if (index>=m_carml.length) index=0;
	this.start = index!=null ? index:(Math.floor(Math.random()*m_carml.length));
	PRODUCTATOR_INDEX = this.start;
	// Set background image
	var t_bg	 = "images/productator/back_";
	t_bg		+= m_carml[this.start].getAttribute("back");
	t_bg		+= ".png";
	this.background	= t_bg;
	// Set text color
	this.color		= m_carml[this.start].getAttribute("color");
	// Set text position
	this.position	= m_carml[this.start].getAttribute("pos")+"px";
	// Get title
	this.title = m_carml[this.start].getAttribute("name");
	// Get subtitle
	this.subtitle	= m_carml[this.start].getAttribute("sub");
	// Set image location
	var t_img	= m_carml[this.start].getAttribute("link");
	t_img		= t_img.replace(/[ .,']/gi, "_");
	t_img		= t_img.toLowerCase();
	t_img		= "images/productator/"+t_img+".png";
	this.image	= t_img;
//	this.link	= "?product="+m_carml[this.start].getAttribute("link");
	this.link	= m_carml[this.start].getAttribute("link");
}

// HtmlElement [Productator object].writeTo(string where)
Productator.prototype.writeTo = function(where, fadeIn) {
	// Make room
	while (where.hasChildNodes()) { where.removeChild(where.childNodes[0]); }
	// Make Productator element
	var p800	= document.createElement("div");
	p800.id					= "productator";
	p800.style.width		= "842px";
	p800.style.height		= "216px";
	p800.style.opacity		= "0";
	p800.style.filter		= "alpha(opacity=0)";
    p800.FadeState			= -2;
	p800.style.background	= "url(" + this.background + ") no-repeat";
	// Place Quicky Guy
	var q_guy = document.createElement("div");
	q_guy.style.cssFloat	= "right";
//	q_guy.style.marginRight	= "10px";
	q_guy.style.width		= "177px";
	q_guy.style.height		= "233px";
	q_guy.style.background	= "url(images/productator/alien.png) no-repeat";
	// Product content
	var n_prod = document.createElement("div");
	n_prod.style.cssFloat = "right";
	n_prod.style.marginRight = "100px";
//	n_prod.id			= "prod_name";
	// Title and subtitle container
	var n_prodTxt = document.createElement("div");
	n_prodTxt.style.position	= "absolute";
	n_prodTxt.style.top			= this.position;
	// Add title element
	var n_prodTitle = document.createElement("div");
//	n_prodTitle.style.position		= "absolute";
	n_prodTitle.style.fontSize		= "30px";
//	n_prodTitle.style.fontWeight	= "bold";
	n_prodTitle.style.color			= this.color;
	n_prodTitle.innerHTML			= this.title;
	// Add subtitle element
	var n_prodSub = document.createElement("div");
	n_prodSub.style.fontSize	= "15px";
	n_prodSub.style.color		= this.color;
//	n_prodSub.style.position	= "absolute";
	n_prodSub.style.margin		= "10px auto";
	n_prodSub.innerHTML			= this.subtitle;
	// Append title and subtitle
	n_prodTxt.appendChild(n_prodTitle);
	n_prodTxt.appendChild(n_prodSub);
	var n_prodImg = document.createElement("img");
//	n_prodImg.style.width		= "";
//	n_prodImg.style.height		= "";
//	n_prodImg.style.background	= "";
	n_prodImg.src = this.image;
	n_prodImg.style.marginTop = "5px";
	// Add the children
	n_prod.appendChild(n_prodTxt);
	n_prod.appendChild(n_prodImg);
	// Navigation elements
	var c_navs = document.createElement("div");
	c_navs.style.cssFloat	= "right";
	c_navs.style.margin		= "15px";
	var c_arrows = document.createElement("div");
	c_arrows.style.marginLeft = "55px";
//	c_arrows.style.position = "absolute";
	var c_arFor = document.createElement("div");
	c_arFor.id					= "arrow";
	c_arFor.style.cssFloat		= "left";
	c_arFor.style.marginTop		= "0px";
//	c_arFor.style.width			= "36px";
//	c_arFor.style.height		= "33px";
//	c_arFor.style.cursor		= "pointer";
//	c_arFor.style.background	= "url(images/arrows_states.png) no-repeat";
	c_arFor.style.backgroundPosition	= "-38px -66px";
	// Rollover effect
	var strOnover = "this.style.backgroundPosition='-38px -33px'";
	c_arFor.setAttribute("onmouseover", strOnover);
	var strOnout = "this.style.backgroundPosition='";
	strOnout += c_arFor.style.backgroundPosition + "'";
	c_arFor.setAttribute("onmouseout", strOnout);
	// Onclick hook
	c_arFor.setAttribute("onclick", "hastaLaOnClick(1)");
	var c_arBak = document.createElement("div");
	c_arBak.id					= "arrow";
	c_arBak.style.cssFloat		= "left";
//	c_arBak.style.width			= "36px";
//	c_arBak.style.height		= "33px";
	c_arBak.style.marginRight	= "2px";
	c_arBak.style.marginTop		= "0px";
//	c_arBak.style.cursor		= "pointer";
//	c_arBak.style.background	= "url(images/arrows_states.png) no-repeat";
	c_arBak.style.backgroundPosition	= "0px -66px";
	c_arBak.setAttribute("onclick","hastaLaOnClick(-1)");
	// Rollover effect
	strOnover = "this.style.backgroundPosition='0px -33px'";
	c_arBak.setAttribute("onmouseover", strOnover);
	strOnout = "this.style.backgroundPosition='";
	strOnout += c_arBak.style.backgroundPosition + "'";
	c_arBak.setAttribute("onmouseout", strOnout);
	c_arrows.appendChild(c_arBak);
	c_arrows.appendChild(c_arFor);
	var c_button = document.createElement("div");
//	c_button.style.cssFloat		= "left";
//	c_button.style.cssFloat		= "right";
//	c_button.style.position		= "absolute";
	c_button.style.marginTop	= "160px";
//	c_button.style.marginRight	= "15px";
	c_button.style.width		= "143px";
	c_button.style.height		= "24px";
//	c_button.style.marginTop	= "200px";
	c_button.style.background	= "url(images/productator/clickheretolearnmore.png) no-repeat";
	c_button.style.cursor		= "pointer";
	// onclick
	var c_onclick = "new ShopNav(INVENTORY_XML).selectproduct('"+this.link+"')";
	c_button.setAttribute("onclick",c_onclick);
	c_navs.appendChild(c_arrows);
	c_navs.appendChild(c_button);
	// Attach Productator Elements
	p800.appendChild(c_navs);
//	productator.appendChild(c_button);
	p800.appendChild(n_prod);
	p800.appendChild(q_guy);
	// Finally, add productator to page
	where.appendChild(p800);
	// Fade cycle
	Fade(p800.id,null,1);
//	Productator_cycle(p800.id);
	PRODUCTATOR_TIMEOUT = setTimeout("Fade('"+p800.id+"',"+Productator_cycle+")", 20000);
}

// Productator_cycle()
function Productator_cycle() {
//	alert("cycle");
	PRODUCTATOR_INDEX++;
	// Remove elements entirely
	var where = document.getElementById("printProductator");
//	while (where.hasChildNodes()) { where.removeChild(where.childNodes[0]); }
	new Productator(PRODUCTATOR_INDEX).writeTo(where,true);
}

// hastaLaRaton(int dir) note:dir +1 = forward dir -1 = backward
function hastaLaOnClick(dir) {
	// Clear timeout
	clearTimeout(PRODUCTATOR_TIMEOUT);
	// Update index
	PRODUCTATOR_INDEX = parseInt(PRODUCTATOR_INDEX) + parseInt(dir);
//	alert(PRODUCTATOR_INDEX);
	var where = document.getElementById("printProductator");
	new Productator(PRODUCTATOR_INDEX).writeTo(where);
}
