net_lemats_gallery_ThumbsView = Class.create();

net_lemats_gallery_ThumbsView.THUMBS_DIV_CLASS   = "thumbs";
net_lemats_gallery_ThumbsView.NAVLEFT_DIV_CLASS  = "navLeft";
net_lemats_gallery_ThumbsView.NAVRIGHT_DIV_CLASS = "navRight";
net_lemats_gallery_ThumbsView.THUMBS_CT_CLASS    = "thumbsCt";
net_lemats_gallery_ThumbsView.THUMBS_CT_PREFIX   = "thct";

net_lemats_gallery_ThumbsView.prototype = {

    initialize : function(/*Element*/ parent, albumVarName) {
    	this.parent = parent;
    	this.albumVarName = albumVarName;
    	
    	this.list = new net_lemats_gallery_ThumbsViewList();
    	
    	// thumbs div
		this.thumbsDiv = document.createElement("div");
		this.thumbsDiv.className = net_lemats_gallery_ThumbsView.THUMBS_DIV_CLASS;
		this.parent.appendChild(this.thumbsDiv);    	
		
		// nav left
		this.navLeftDiv = document.createElement("div");
		this.navLeftDiv.className = net_lemats_gallery_ThumbsView.NAVLEFT_DIV_CLASS;
		this.thumbsDiv.appendChild(this.navLeftDiv);
		
		this.navLeftA = document.createElement("a");
		this.navLeftA.href = "javascript:" + this.albumVarName + ".prevThumb();";
		this.navLeftA.title = "Zurück";
		this.navLeftDiv.appendChild(this.navLeftA);
		
		this.navLeftImg = new net_lemats_gallery_Image();
		this.navLeftImg.url = "navLeft.png";
		this.navLeftA.appendChild(this.navLeftImg.getDom());
		
		// thumb ct
		this.thumbCt = document.createElement("div");
		this.thumbCt.className = net_lemats_gallery_ThumbsView.THUMBS_CT_CLASS
		this.thumbsDiv.appendChild(this.thumbCt);
		
		// nav right
		this.navRightDiv = document.createElement("div");
		this.navRightDiv.className = net_lemats_gallery_ThumbsView.NAVRIGHT_DIV_CLASS;
		this.thumbsDiv.appendChild(this.navRightDiv);
		
		this.navRightA = document.createElement("a");
		this.navRightA.href = "javascript:" + this.albumVarName + ".nextThumb();";
		this.navRightA.title = "Weiter";
		this.navRightDiv.appendChild(this.navRightA);
		
		this.navRightImg = new net_lemats_gallery_Image();
		this.navRightImg.url = "navRight.png";
		this.navRightA.appendChild(this.navRightImg.getDom());		
    },
    
    draw : function() {
    	
    },
    
    addNextThumb : function(/*Thumb*/ thumb) {
  		this._addThumb(thumb, "last");
    },
    
    addPrevThumb : function(/*Thumb*/ thumb) {
    	this._addThumb(thumb, "first");
    },
    
    getLastThumb : function() {
    	var id = this.list.getLast();
    	return id;
    },
    
    getFirstThumb : function() {
    	var id = this.list.getFirst();
    	return id;
    },    
    
    _addThumb : function(thumb, position) {
    	// thumb ct
    	var thumbDiv = document.createElement("div");
    	thumbDiv.id = net_lemats_gallery_ThumbsView.THUMBS_CT_PREFIX + thumb.id;
    	
    	// anchor
		var a = document.createElement("a");
		a.href = "javascript:" + this.albumVarName + ".showImage('" + thumb.imageID + "');";
		a.title = "Bild zeigen";
		thumbDiv.appendChild(a);	
    	
		// thumb
    	a.appendChild(thumb.getDom());
    	
    	// add to thumb view
    	var thumbToRemove = null;
    	if (position == "first") {
    		thumbToRemove = this.list.addFirst(thumb.id);
    		if (thumbToRemove != null) {
    			this._removeThumb(thumbToRemove);
    		}
    		this.thumbCt.insertBefore(thumbDiv, this.thumbCt.firstChild);
    	}
    	else {
    		thumbToRemove = this.list.addLast(thumb.id);
    		if (thumbToRemove != null) {
    			this._removeThumb(thumbToRemove);
    		}
    		this.thumbCt.appendChild(thumbDiv);	
    	}
    },
    
    _removeThumb : function(oldThumbID) {
    	var oldThumbDiv = document.getElementById(net_lemats_gallery_ThumbsView.THUMBS_CT_PREFIX + oldThumbID);
    	if (oldThumbDiv != null) {
    		this.thumbCt.removeChild(oldThumbDiv);
    	}
    }

}
