$A = function(collection) {
	var a = [];
	
	for(var i = 0; i < collection.length; i++) {
		a.push(collection[i]);
	}
	
	return a;
};

Function.prototype.bind = function() {
	if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
	
	var __method = this, args = $A(arguments), object = args.shift();
	
	return function() {
		return __method.apply(object, args.concat($A(arguments)));
	};
};

var idsImgThumbs = new Array();
function paginacao(valor) {
	idsImgThumbs = new Array();
	var pageCount = Math.ceil(images.length/perPage);
	
	page = valor;	   
	
	var indexTo;
	var indexFrom;
	
	if (page == 1){
		indexFrom = 0
		if (pageCount > 1) {
			indexTo = perPage -1;
		} else {
			indexTo = images.length -1;
		}
	} else {
		indexFrom = ((page-1)*perPage)
		if(page < pageCount) {
			indexTo = (indexFrom + perPage) - 1
		} else {
			indexTo = images.length - 1
		}
	}
			
	if (images.length > perPage) {
		if (pageCount > 5) {
			if (page < 4 ) {
				pageFrom = 1;
				pageTo = 4;
			} else if (page >= (pageCount - 2)) {
				pageFrom = pageCount - 3;
				pageTo = pageCount;
			} else {
				pageFrom = page - 1;
				pageTo = page + 1;	
			}				
		} else {
			pageFrom = 1;
			pageTo = pageCount;
		}	
	
		var ol = document.getElementById('paginacao');
		ol.innerHTML = '';
		
		var createSpan = function(string) {
			var el = document.createTextNode(string);
			return el;
		};
		
		if (page > 1) {
			var li = document.createElement('li');
			var a = document.createElement('a');
			var img = document.createElement('img');
			
			a.href = 'javascript:;';
			a.onclick = paginacao.bind(this, (page-1));
			a.setAttribute('title','<%=vvPaginaAnterior%>');
		
			img.setAttribute('src','/img/btGaleriaAnterior.jpg');
			img.setAttribute('alt','<%=vvPaginaAnterior%>');
			
			a.appendChild(img);
			li.appendChild(a);
			ol.appendChild(li);
		} 
		
		var li = document.createElement('li');
		var span = document.createElement('span');
		
		if ((pageFrom >= 3) && (pageCount > 5)) {
			var li = document.createElement('li');
			var span = document.createElement('span');
			var a = document.createElement('a');
			
			a.href = 'javascript:;';
			a.onclick = paginacao.bind(this, 1);
			
			a.innerHTML = 1;
			span.appendChild(a);
			span.appendChild(createSpan('...'));
		}
		
		for (var j=pageFrom;j<=pageTo;j++) {			
			
			if (j > 1) {
				span.appendChild(createSpan('.'));
			}				
			
			if (j == page) {
				var strong = document.createElement('strong');
				
				strong.innerHTML = j;
				span.appendChild(strong);
			} else {
				var a = document.createElement('a');
				
				a.href = 'javascript:;';
				$(a).click(paginacao.bind(this, j));
				a.innerHTML = j;
				span.appendChild(a);
			}						
		}
		
		if ((pageCount > 5) && (page <= (pageCount - 3))) {
			var a = document.createElement('a');
			
			a.href = 'javascript:;';
			a.onclick = paginacao.bind(this, pageCount);
			
			a.innerHTML = pageCount;
			span.appendChild(createSpan('...'));
			span.appendChild(a);
		}
		
		li.appendChild(span);
		ol.appendChild(li);	
		
		if (page < pageCount) {
			var li = document.createElement('li');
			var a = document.createElement('a');
			var img = document.createElement('img');
			
			li.className = 'noMargin';
			
			a.href = 'javascript:;';
			a.onclick = paginacao.bind(this, (page+1));
			a.setAttribute('title','<%=vvProximaPagina%>');
			
			img.setAttribute('src','/img/btGaleriaProxima.jpg');
			img.setAttribute('alt','<%=vvProximaPagina%>');
			
			
			a.appendChild(img);	
			
			a.appendChild(img);
			li.appendChild(a);
			ol.appendChild(li);	
		}
	}

	var gallery = document.getElementById('gallery');
	
	gallery.innerHTML = '';
	var cont = 2
	for (var i = indexFrom; i <= indexTo; i++) {
		var li = document.createElement('li');
		var a = document.createElement('a');
		var img = document.createElement('img');
		
		if (cont % 3 == 0) {
			li.className = 'margin thumb';
		} else {
			li.className = 'thumb';
		}
		
		li.setAttribute('id',images[i].id);
		
		a.href = 'javascript:;';
		a.onclick = imageTrade.bind(this, images[i].imageNext, images[i].id);
		
		img.setAttribute('src',images[i].imagePath);
		img.setAttribute('id','imgThumb_'+(cont-2));
		img.setAttribute('style','width:82px;height:79px');
		if ($.browser.msie) {
			if (parseFloat($.browser.version) < 7.0) {
				var itv = setInterval('showFotoThumb('+(cont-2)+')','100');
				idsImgThumbs.push(itv);
			}
		}
		
		a.appendChild(img);
		li.appendChild(a);																								
		gallery.appendChild(li);
		
		cont++;
	}  	

	$('li').removeClass('active');
	$('li[id='+$('#main_image').attr('class')+']').addClass('active');
	$('li[id!='+$('#main_image').attr('class')+']').filter('.thumb').css('opacity',0.3);
	
	var li = $('li').filter('.thumb');
			
	li.hover(
		function() {
			if(!$(this).hasClass('active'))
				$(this).fadeTo('fast',1);
		},
		function() {
			if(!$(this).hasClass('active'))
				$(this).fadeTo('slow',0.3);
		}
	);
}

function showFotoThumb(i) {
	var obj = document.getElementById("imgThumb_"+i);
	if (obj) {
		if (obj.complete) {
			clearInterval(idsImgThumbs[i]);
		} else {
			obj.src = obj.src;
		}
	} else {
		clearInterval(idsImgThumbs[i]);
	}
}