if(!window.Oventi) {
	var Oventi = {};
}

if(!Oventi.Utils) {
	Oventi.Utils = {};
}


var PG_ENTRIES = null;
var PG_LAST_LINK = null;
var PG_LAST_ENTRY = 0;

Oventi.Utils.DomHandler = {
	getElements: function(container, tag) {
		var list = container.getElementsByTagName(tag);
		var elements = [];
		for(var i = 0; i < list.length; i++) {
			if(list[i].parentNode == container) {
				elements[elements.length] = list[i];
			}
		}
		
		return elements;
	},
	
	getElement: function(container, tag) {
		if(typeof container === "object") {
			var list = container.getElementsByTagName(tag);
		
			return list[0];
		}
	}, 
	
	insertBefore: function (element, pointer) {
		pointer.parentNode.insertBefore(element, pointer);
	},
	
	pgPaging: function (len, id) {
		var div = document.createElement("div");
		div.setAttribute("class", "pgPaging");
		
		for(var i = 0; i < len; i++) {
			var a = document.createElement("a");			
			var text = document.createTextNode((i+1) + "");
			
			a.setAttribute("onclick", "pgNextPage(" + i + ", this)");
			a.appendChild(text);
			
			div.appendChild(a);
		}
		
		PG_LAST_LINK = div.childNodes[0];
		PG_LAST_LINK.className = "selected";		
		
		return div;
	}
}

function pgNextPage(index, pointer) {
	PG_ENTRIES[PG_LAST_ENTRY].style.display = "none";
	PG_ENTRIES[index].style.display = "";
	
	PG_LAST_LINK.className = "";
	pointer.className = "selected";
	
	PG_LAST_ENTRY = index;
	PG_LAST_LINK = pointer;
}

Oventi.PortfolioGallery = function (container, entryTag, titleTag, config) {
	if(!config) {
		var config = {
			classes: {
				container: "pgContainer", 
				entry: "pgEntry", 
				title: "pgTitle", 
				img: "pgImg"
			}
		};
	}
	
	var dh = Oventi.Utils.DomHandler;	
	
	container.className += " " + config.classes.container;	
	
	var entries = dh.getElements(container, entryTag);
	PG_ENTRIES = entries;
	
	for(var i in entries) {
		var entry = entries[i];
		entry.className += " " + config.classes.entry;

		if(typeof entry === "object") {
			entry.style.display = "none";
		
			var title = dh.getElement(entry, titleTag);
			title.className += " " + config.classes.title;
		
			var firstImg = dh.getElement(entry, "img");
			if(firstImg) {
				firstImg.className += " " + config.classes.img;
			}
		}
	}
	
	dh.insertBefore(dh.pgPaging(entries.length), container);	
	
	entries[0].style.display = "";
}
