var the_obj = null;
var img_path_prev = 'img/catalog-firme/slide-promo/btn-prev.gif';
var img_path_next = 'img/catalog-firme/slide-promo/btn-next.gif';
var width_item_per_page = 152;

function PromoSlideshow(id){
	this.id = id;
	this.items = new Array();	
	
	this.panel_className = document.getElementById(this.id + '_panel').className;
	this.item_u_className = '';
	
	for(var i = 1; i <= document.getElementById(this.id + '_content').getElementsByTagName('div').length; i++){
		if(document.getElementById(this.id + '_content').getElementsByTagName('div')[i - 1].className.match(/item_u/)){
			this.items.push(document.getElementById(this.id + '_content').getElementsByTagName('div')[i - 1].innerHTML);
			this.item_u_className = document.getElementById(this.id + '_content').getElementsByTagName('div')[i - 1].className;
		}
	}
	
	this.total_items = 0;
	this.items_per_page = 0;
	this.items_per_last_page = 0;
	this.total_pages = 0;
	
	this.structured_content = new Array();
	
	this.load_content = loadContent;
	this.print = printSlideshow;
	this.move_pages = movePages;
	
	this.select_unselect_item = markItem;
	
	this.timer;
}

function loadContent(){
	this.total_items = this.items.length;
	
	if(this.total_items % this.items_per_page == 0){
		this.total_pages = this.total_items / this.items_per_page;
	}else{
		this.total_pages = Math.floor(this.total_items / this.items_per_page) + 1;
	}
	
	var i = 0;
	
	for(var j = 0; j < this.total_pages; j++){
		var page = new Array();
		for(var k = 0; k < this.items_per_page; k++){
			if(i < this.total_items){
				page.push(this.items[i]);
				i++;
			}
		}
		this.structured_content.push(page);
	}
}

function printSlideshow(){
	the_obj = this;
	slideshow_html_content = '<div id="' + this.id + '_panel" class="' + this.panel_className + '" ><div id="my_slideshow_btn_prev" onclick="the_obj.move_pages(\'right\');"><img src="' + img_path_prev + '"></div>';
	
	slideshow_html_content += '<div id="' + this.id + '_content" style="width:' + (this.items_per_page * width_item_per_page) + 'px; top: 0; left: 35px;">';
	
	//prev slide{
	if(this.total_items > this.items_per_page){
		slideshow_html_content += '<div id="' + this.id + '_prev_slide" class="slide" style="left:' + (-this.items_per_page * width_item_per_page) + 'px; width:' + (this.items_per_page * width_item_per_page) + 'px;">'; 
		
		for(var i = 0; i < this.structured_content[this.structured_content.length - 1].length; i++){
			slideshow_html_content += '<div id="' + this.id + '_item_' + (i+1) + '" class="' + this.item_u_className + '">';
			slideshow_html_content += this.structured_content[this.structured_content.length - 1][i];
			slideshow_html_content += '</div>';
		}
		
		slideshow_html_content += '</div>';
	}
	//}	crt slide{
	slideshow_html_content += '<div id="' + this.id + '_crt_slide" class="slide" style="width:' + (this.items_per_page * width_item_per_page) + 'px;">';
	
	for(var i = 0; i < this.structured_content[0].length; i++){
		slideshow_html_content += '<div id="' + this.id + '_item_' + (i+1) + '" class="' + this.item_u_className + '" onmouseover="markItem(this,\'select\',\'' + this.item_u_className + '\');" onmouseout="markItem(this,\'unselect\',\'' + this.item_u_className + '\');">	';
		slideshow_html_content += this.structured_content[0][i];
		slideshow_html_content += '</div>';
	}
	
	slideshow_html_content += '</div>';
	//}	next slide{
	if(this.total_items > this.items_per_page){
		slideshow_html_content += '<div id="' + this.id + '_next_slide" class="slide" style="left:' + (this.items_per_page * width_item_per_page) + 'px; width:' + (this.items_per_page * width_item_per_page) + 'px;">';
		
		for(var i = 0; i < this.structured_content[1].length; i++){
			slideshow_html_content += '<div id="' + this.id + '_item_' + (i+1) + '" class="' + this.item_u_className + '">';
			slideshow_html_content += this.structured_content[1][i];
			slideshow_html_content += '</div>';
		}
		
		slideshow_html_content += '</div>';
	}
	//}	
	slideshow_html_content += '</div>';
	
	slideshow_html_content += '<div id="my_slideshow_btn_next" onclick="the_obj.move_pages(\'left\');"><img src="' + img_path_next + '"></div></div>';
	
	document.getElementById(this.id).innerHTML = slideshow_html_content;
	if(this.total_items > this.items_per_page){
		document.getElementById(this.id + '_prev_slide').style.left = -this.items_per_page * width_item_per_page + 'px';
	}
	document.getElementById(this.id + '_crt_slide').style.left = 0 + 'px';
	if(this.total_items > this.items_per_page){
		document.getElementById(this.id + '_next_slide').style.left = this.items_per_page * width_item_per_page + 'px';
	}
}

function movePages(direction){
	if(this.total_items > this.items_per_page){
		if(direction == 'left'){
			if(parseInt(document.getElementById(this.id + '_next_slide').style.left.split('px')[0]) >= 0){
				document.getElementById(this.id + '_content').style.opacity = 0.25;
				this.timer = setTimeout(function() { }, 5000);
				
				document.getElementById(this.id + '_next_slide').style.left = (parseInt(document.getElementById(this.id + '_next_slide').style.left.split('px')[0]) - 70) +'px';
				document.getElementById(this.id + '_crt_slide').style.left = (parseInt(document.getElementById(this.id + '_crt_slide').style.left.split('px')[0]) - 70) +'px';
				
				var _this = this;
				this.timer = setTimeout(function() { _this.move_pages('left'); }, 3);
				
			}else{
				document.getElementById(this.id + '_content').style.opacity = 1;
				
				var aux = this.structured_content[0];
				for(var i = 0; i < this.structured_content.length - 1; i++){
					this.structured_content[i] = this.structured_content[i + 1];
				}
				this.structured_content[this.structured_content.length - 1] = aux;
				
				this.print();
			}
		}
		
		if(direction == 'right'){ 
			document.getElementById(this.id + '_content').style.opacity = 0.25;
			
			if(parseInt(document.getElementById(this.id + '_prev_slide').style.left.split('px')[0]) <= 0){
				document.getElementById(this.id + '_prev_slide').style.left = (parseInt(document.getElementById(this.id + '_prev_slide').style.left.split('px')[0]) + 50) +'px';
				document.getElementById(this.id + '_crt_slide').style.left = (parseInt(document.getElementById(this.id + '_crt_slide').style.left.split('px')[0]) + 50) + 'px';
				
				var _this = this;
				this.timer = setTimeout(function() { _this.move_pages('right'); }, 3);
				
			}else{
				document.getElementById(this.id + '_content').style.opacity = 1;
				
				var aux = this.structured_content[this.structured_content.length - 1];
				for(var i = this.structured_content.length - 1; i > 0; i--){
					this.structured_content[i] = this.structured_content[i - 1];
				}
				this.structured_content[0] = aux;
				
				this.print();
			}
		}
	}
}

function markItem(el,sel,unselected_class_name){
	if(sel == 'select'){
		var selected_class = unselected_class_name.replace('item_u', 'item_s');
		el.className = selected_class;
		el.className = selected_class;
	}
	if(sel == 'unselect'){
		el.className = unselected_class_name;
		el.className = unselected_class_name;
	}
}