function vitrine(obj) {
	if(!obj.list || !obj.list.length)
		return;
	
	
	obj.elm = $(obj.elm || '#vitrine');
	
	if(!obj.elm.length)
		throw('Vitrine não encontrada');
	
	obj.timer = obj.timer || 0;
	
	
	var list = obj.list;
	for(var i=0,len=list.length;i<len;i++) {//Preload images
		var img = document.createElement('img');
		img.style.display = 'none';
		img.onload = function() {this.parentNode.removeChild(this);};
		document.body.appendChild(img);
		img.src = list[i].img;
	}
	
	$.extend(this,obj,{
		
		changeSlide:function(opt) {
			var next;
			if(typeof opt == 'string') {
				if(opt == 'next')
					next = this.actual + 1;
				else
					next = this.actual - 1;
				if(next >= this.list.length)
					next = 0;
				else if(next < 0)
					next = this.list.length - 1;
			}
			else
				next = parseInt(opt,10);
			var item = this.list[next];
			
			var html = this.html;
			
			if(html.match(/\%lnkTo(?:(?=\W)|$)/g) && item.href && item.lnkTo)
				html = html.replace('%lnkTo','<span class="lnkTo"><a href="' + item.href + '">' + item.lnkTo + '</a></span>');
			
			if(html.match(/\%listTo(?:(?=\W)|$)/g)) {
				var h = '<ul class="listTo">';
				for(var i=0,len=this.list.length;i<len;i++) {
					h += '<li><span class="item-' + i + '" title="' + this.list[i].tooltip + '" onclick="$(\'#' + this.elm.attr('id') + '\').data(\'changeSlide\')(' + i + ');">' + i + '</span></li>';
				}
				h += '</ul>';
				html = html.replace('%listTo',h);
			}
			
			if(html.match(/\%nextTo(?:(?=\W)|$)/g))
				html = html.replace('%nextTo','<span class="nextTo" onclick="$(\'#' + this.elm.attr('id') + '\').data(\'changeSlide\')(\'next\')">' + this.nextTo + '</span>');
			
			if(html.match(/\%prevTo(?:(?=\W)|$)/g))
				html = html.replace('%prevTo','<span class="prevTo" onclick="$(\'#' + this.elm.attr('id') + '\').data(\'changeSlide\')(\'prev\')">' + this.prevTo + '</span>');
			
			
			
			
			var params = html.match(/\%[a-zA-Z]+/g);
			
			if(params)
				for(var i=0,len=params.length;i<len;i++)
					html = html.replace(params[i],item[params[i].substr(1)]);
			
			
			$(document.createElement('div'))
				.addClass('bg')
				.css('background','url(' + item.img + ') left top no-repeat')
				.append(
					$(document.createElement('div'))
						.addClass('cont')
						.html(html)
				)
				.appendTo(this.elm.empty());
			//$('.tipsy').remove();
			//$('ul.listTo span').tipsy({gravity: 'se'});
			
			
			myTooltip($('#destHome').find('.listTo li span'));
			
			this.actual = next;
			
			if(this.timer) {
				if(this.doTimer) {
					try{this.doTimer(next);}catch(e){}
				}
				this.createTimer();
			}
		},
		actual:obj.random?Math.floor(Math.random() * len):0,
		createTimer:function() {
			if(this.timer) {
				var inst = this;
				clearTimeout(this.timeout);
				this.timeout = setTimeout(function() {
					if(inst.random) {
						var i = inst.actual,
							len = inst.list.length;
						while(i == inst.actual)
							i = Math.floor(Math.random() * len);
						inst.changeSlide(i);
					}
					else
						inst.changeSlide('next');
				},this.timer);
			}
		}
	});
	
	var inst = this;
	$(obj.elm).data('changeSlide',function() {inst.changeSlide.apply(inst,arguments);});
	
	
	this.changeSlide(this.actual);
	
	
	
	
	if(obj.timer)
		this.createTimer();
}
function myTooltip(elms) {
	elms.each(function() {
		var $this = $(this);
		$this.mouseover(function() {
			var tt = $(document.createElement('div')).addClass('myTooltip').append($(document.createElement('div')).text($this.attr('title'))).appendTo($this.parent());
			tt.css('left',$this.position().left - tt.width() + $this.width());
		}).mouseout(function() {
			$('.myTooltip').remove();
		});
	});
}
