Galerij = function() {
    this.init();
};

Galerij.prototype = {

    init: function() {
        this.settings = {};
		this.settings.sUrl = '';
		this.settings.args = '';
		
		this.setNav = 0; // If navigation controls are set, change to 1
		this.setContent = 0; // If content of portfolio-wrap is set, change to 1
		
		// init callback for ajaxCall
		this.callback = {};
        this.callback.success = this.ajaxHandleSuccess;
        this.callback.failure = this.ajaxHandleFailure;
        this.callback.scope = this;
    },
	
    ajaxCall: function() {    
        YAHOO.util.Connect.asyncRequest('POST', this.settings.sUrl, this.callback, this.settings.args);
    },
    
    ajaxHandleSuccess: function(o){
        if(o.responseText !== undefined){ 
			var items = eval('(' + o.responseText + ')');
			this.processItems(items);
		}
    },
    
    ajaxHandleFailure: function(o){
        //console.log('mislukt');
    },

    processItems: function(oItems){
        this.aItems = oItems.items;
    	this.total = this.aItems.length;
    	this.initPortfolio();
    },
    
    getItem: function(item_id){
        
        var item = {};
        
        // get information
        item.pfUid = this.aItems[item_id].uid;
        item.pfTitel = this.aItems[item_id].title;
        item.pfSource = this.aItems[item_id].source;
        item.pfDescriptionShort = this.aItems[item_id].descriptionShort;
        item.pfDescription = this.aItems[item_id].description;
        
        return item;
    },
    
    setItem: function(oItem){
        YAHOO.util.Dom.get('portfolio-title').innerHTML = oItem.pfTitel;
        YAHOO.util.Dom.get('portfolio-image').src = oItem.pfSource;
        YAHOO.util.Dom.get('portfolio-image').alt = oItem.pfTitel;
        YAHOO.util.Dom.get('portfolio-item-meta').innerHTML = oItem.pfDescriptionShort;
        YAHOO.util.Dom.get('portfolio-item-description').innerHTML = oItem.pfDescription;
    },
    
    showItem: function(itemId){
        var item = this.getItem(itemId);
        this.setItem(item);
    },
    
    setPagInfo: function(){
        YAHOO.util.Dom.get('portfolio-item-controls-info-number').innerHTML = this.pointer;
        YAHOO.util.Dom.get('portfolio-item-controls-info-total').innerHTML = this.total;
    },
    
    navForward: function(){
        if(this.pointer < this.total){
            this.pointer++;
            this.item_id++;
            
            this.setPagInfo();
            this.showItem(this.item_id);
        }
    },
    
    navBack: function(){
        if(this.pointer > 1){
            this.pointer--;
            this.item_id--;
            
            this.setPagInfo();
            this.showItem(this.item_id);
        }
    },
    
    setNavigation: function(){
        YAHOO.util.Event.on("portfolio-items-controls-forward", 'click', function(e){
            YAHOO.util.Event.preventDefault(e);
            YAHOO.util.Dom.get("portfolio-items-controls-forward").blur();
            this.navForward();
        
        }, this, true);
    
        YAHOO.util.Event.on("portfolio-items-controls-back", 'click', function(e){
            YAHOO.util.Event.preventDefault(e);
            YAHOO.util.Dom.get("portfolio-items-controls-back").blur();
            this.navBack();
        
        }, this, true);
    },
    
    initPortfolio: function(){
        if(this.total >= 1){
            
            if(this.setContent == 0){
                YAHOO.util.Dom.get("portfolio-wrap").innerHTML = '<h4><span id="portfolio-title"></span></h4><div id="portfolio-image-wrap"><div id="centerholder1"><div id="centerholder2"><img src="" alt="" id="portfolio-image" /></div></div></div><div><div id="portfolio-item-controls"><p id="portfolio-item-controls-info"><span id="portfolio-item-controls-info-number"></span><span class="shownocss"> van </span><span id="portfolio-item-controls-info-total"></span></p><p id="portfolio-item-controls-navigate"><a href="/back" id="portfolio-items-controls-back"><span>vorige</span></a><a href="/forward" id="portfolio-items-controls-forward"><span>volgende</span></a></p></div><div id="portfolio-item-meta"></div></div><div id="portfolio-item-description"></div>';
                this.setContent = 1;
            }
            
            YAHOO.util.Dom.get("portfolio-wrap").style.display = "block";
            this.item_id = 0;
            this.pointer = 1;
            
            this.setPagInfo();
            if(this.setNav == 0){
                this.setNavigation();
                this.setNav = 1;
            }
            
            this.showItem(this.item_id);
            
        }
    }
    
};
