PhotoNavigator = function(photoImg, navigationDiv, photos, descriptionDiv, titleDiv, selectLast)
{
    this.photoImg = $(photoImg);
    this.navigationDiv = $(navigationDiv);
    this.photos = photos;
    this.descriptionDiv = $(descriptionDiv);
    this.titleDiv = $(titleDiv);
    this.selectLast = selectLast;
    this.init();
};

PhotoNavigator.prototype = 
{
    navigationDiv: null,
    titleDiv: null,
    descriptionDiv: null,
    photoImg: null,
    photos: null,
    lastActivePageDiv: null,
    activeClassName: "div_aktiv",
    normalClassName: "div_normal",
    selectLast: false,
    
    init: function()
    {
        var navigationHtml = "";
        
        for(var i = 0; i < this.photos.length; i++)
        {
            var className = this.normalClassName;
            navigationHtml += '<div class="' + className + '">' + (i + 1) +'</div>\r\n';
        }
        
        this.navigationDiv.innerHTML = navigationHtml;
        var page = 0;
        var selectPhotoNumber = (this.selectLast) ? this.photos.length : 1;
              
        for(var i = 0; i < this.navigationDiv.childNodes.length; i++)
        {
            var node = this.navigationDiv.childNodes[i];
            if(node.nodeType == node.TEXT_NODE)continue;
            
            node.page = ++page;
            $(node).addEvent("click", this.onPageClick.handler(this)); 
            
            if(selectPhotoNumber == page)
            {
                this.setActivePageDiv(node);
            }
        }
        
        if(this.photos.length > 1)
        {
            this.navigationDiv.style.display = "";
        }
    },
    
    fileNameToPath: function(fileName)
    {
        var path = "";
        
        for(var i = 0; i < 1; i++)
        {
            path += fileName.substring(i * 2, (i + 1) * 2) + "/";
        }
        
        return path;
    },
    
    setActivePageDiv: function(pageDiv)
    {
        if(pageDiv == this.lastActivePageDiv)return;
        
        pageDiv.className = this.activeClassName;
        
        var photo = this.photos[pageDiv.page - 1];
        this.descriptionDiv.innerHTML = photo.description;
        this.titleDiv.innerHTML = photo.title;
        var addPath = this.fileNameToPath(photo.src);
        this.photoImg.src = "/uploads/photos/" + addPath + "m" + photo.src;
        
        var link = $("largePhotoLink");
        link.href = "/uploads/photos/" + addPath + photo.src;
        link.currentPhotoIndex = pageDiv.page - 1;
        
        if(this.lastActivePageDiv)
        {
            this.lastActivePageDiv.className = this.normalClassName;
        }
        
        this.lastActivePageDiv = pageDiv;
    },
    
    onPageClick: function(event)
    {
        this.setActivePageDiv(event.obj);
    },
    
    getSelectedPhoto: function()
    {
        return this.photos[this.lastActivePageDiv.page - 1];
    }
}
