/*
----------------------------------------------------------------------------------
    AJAXContents v.1
    by Radek N.
----------------------------------------------------------------------------------
*/

// kolekcja
function Contents(contents)
{
    addLoadEvent(initContents);
    
    // tworzenie obiektow Gallery zgodnie z obiektem konfiguracyjnym
    var arrContents = contents;   
    function initContents() { 
        for (var i = 0; i < arrContents.length; i++) {
            new Content(arrContents[i]);
        }
    }
}

// content
function Content(options)
{
    this.ajaxHelper = new net.ContentLoader( 
        this, 
        options.url, 
        "POST", 
        [] 
    );
        
    var that = this;
	var loaders = Array(); // warstwy z animowanym loaderem
    this.elements = Array();
	
    var nav = document.getElementById(options.navigation);
    var links = 0;
    if (nav) {
        links = nav.getElementsByTagName('a');
    }
	
	var preview = document.getElementById('preview');
	if (preview) {
		var layer = document.createElement('div');
		layer.className = 'loaderLayer';
		preview.appendChild(layer);
		layer.style.display = 'none';
	}
	var previewContent = document.getElementById('previewContent');
	    
	// wlacza i wylacza warstwy z animowanym loaderem
    function loadersVisibility(option) 
    {
        if (option) {
             layer.style.display = 'block';
			 if (previewContent) {
			 	addClass(previewContent, 'previewOpacity');
			 }
        } else {
             layer.style.display = 'none';
			 if (previewContent) {
			 	remClass(previewContent, 'previewOpacity');
			 }
        }
    }
	
	function setCurrent(main) 
	{
		for (var i = 0; i < links.length; i++) {	
			remClass(links[i].parentNode, 'current');
		}
		addClass(main.parentNode, 'current');
	}
	
    for (var i = 0; i < links.length; i++) {
	
		// utworzenie warstw z loaderami
		if (links[i].getAttribute('id') != 'previewArchive') { // ostatni element to zwyły link do archiwum
			links[i].onclick = function() {
				setCurrent(this);
				var rel = this.getAttribute('rel');
				var loaded = false;
				for (var i = 0; i < that.elements.length; i++) {
					if (that.elements[i].id == rel) {
						loaded = true;                      
					}
				}
				if (loaded) {
					updateView(rel);
				} else {
					loadersVisibility(true);
					that.ajaxHelper.sendRequest('rel=' + rel);  
				}
				return false;
			}
		}
    }
    
    function updateView(id)
    {
        var container = document.getElementById(options.container);
        for (var i = 0; i < that.elements.length; i++) {
            if (that.elements[i].id == id) {
				container.innerHTML = that.elements[i].text;    
            }
        }
        
    }
    
    // ajax
    this.ajaxUpdate = function(request)
    {
        var obj = eval('(' + request.responseText + ')');
        this.elements.push(obj);
        updateView(obj.id);
        loadersVisibility(false);
    }
    
    this.handleError = function(request)
    {
        // do nothing
    }
    
}

/* end */