/**
 * Cookie manager
 */
var Cookie = {

    set: function(name, value, days) {
		
		if (days) {
			var date = new Date();
			date.setTime(date.getTime() + (days * 24 * 60  * 60 * 1000));
			var expires = "; expires=" + date.toGMTString();
		} else {
		    var expires = "";		
		}
        
        document.cookie = name + "=" + value + expires +"; path=/";
        
    },

    get: function(name) {
        
        var start = document.cookie.indexOf(name+"=");
        var len = start + name.length + 1;
        
        if ((!start) && (name != document.cookie.substring(0, name.length))) {
            return null;
        }
        
        if (start == -1) return null;
        
        var end = document.cookie.indexOf(";", len);
        
        if (end == -1) end = document.cookie.length;
        
        return unescape(document.cookie.substring(len, end));
    },
	
	remove: function(name) {
		Cookie.set(name, ' ', -1);
	}
}


/**
 * Prototype onDOMReady Implementatie
 */
Object.extend(Event, {
    
    _domReady : function() {  

     if (arguments.callee.done) return;  
     arguments.callee.done = true;  
   
     if (this._timer)  clearInterval(this._timer);  
       
     this._readyCallbacks.each(function(f) { f() });  
     this._readyCallbacks = null;  
 },  
   onDOMReady : function(f) {  
     if (!this._readyCallbacks) {  
       var domReady = this._domReady.bind(this);  
         
       if (document.addEventListener)  
         document.addEventListener("DOMContentLoaded", domReady, false);  
           
        // for Internet Explorer (using conditional comments)
        /*@cc_on @*/
        /*@if (@_win32)
        document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
        var script = document.getElementById("__ie_onload");
        script.onreadystatechange = function() {
            if (this.readyState == "complete") {
                domReady(); // call the onload handler
            }
        };
        /*@end @*/

         if (/WebKit/i.test(navigator.userAgent)) {   
           this._timer = setInterval(function() {  
             if (/loaded|complete/.test(document.readyState)) domReady();   
           }, 10);  
         }  
           
         Event.observe(window, 'load', domReady);  
         Event._readyCallbacks =  [];  
     }  
     Event._readyCallbacks.push(f);  
   }  
});  

Array.prototype.remove=function(s){
  for(i=0;i<this .length;i++){
    if(s==this[i]) this.splice(i, 1);
  }
}

/*******************************************************************************
 * Tresoar tijdbalk
 * ============================================================================
 * 
 * ----------------------------------------------------------------------------
 * UPDATE HISTORY
 * ----------------------------------------------------------------------------
 * 31-03-08 AR  Basis opgezet
 * 21-04-08 AR  Opnieuw gebouwd met balkjes ipv slider
 *
 ******************************************************************************/

var Tijdbalk = {
    
    RESET_URL: 'http://boekenoudheid.nl.server35.firstfind.nl/ajax/reset.php',
    activelink: undefined,
    
    /**
     * Initiate slider
     */ 
    init: function() {
        if (Cookie.get('jaartal')) {
            this._update(Cookie.get('jaartal'));
        }
        this._setFilterOptions();
    },
    
    /**
     * Sends a request to REQUEST_URL with the current slider value
     */
     _sendRequest: function(value, url) {

        if (typeof(value) == 'undefined') value = 0;
         
    	var menuWrapper = $('middleVerLeft');
    	var imageWrapper = $('foto_block_2_onder');
    	
    	Cookie.set('jaartal', value || 0);

    	new Ajax.Request(url, {
        	
            method: 'get',
        	
            onLoading: function() { 
                $('loader').show();
            },
            
            onComplete: function(t) {
                
                $('loader').hide();
                
				var Lemmas = t.responseXML.getElementsByTagName('Lemmas');
				var Images = t.responseXML.getElementsByTagName('imgData');
				
				this._updateMenu(Lemmas);
				this._updateImages(Images);
				
				this._update(value);
				
			}.bind(this)
            
        });
    },
    
    _update: function(jaartal) {
        if (typeof(this.activelink) != 'undefined') {
            this._setLinkInactive(this.activelink, true);
            this.activelink.removeClassName('active');
        }
        var balk = $('jaar_'+jaartal);
        if (balk) {
            balk.addClassName('active');
            this._setLinkActive(balk);
            this.activelink = balk;
        }
        // + AR 250808
        var cp = $('currentperiod');
        if (cp) cp.innerHTML = 'periode ' + ((jaartal < 0) ? Math.abs(jaartal) + ' v.C' : jaartal);
    },
    
    _setFilterOptions: function() {
        if ($('reset')) {
            $('reset').show();
	        Event.observe('reset', 'click', function() { 
	            this._sendRequest('', this.RESET_URL);
	            Cookie.remove('jaartal');
	            window.location.reload();
	        }.bind(this) );
	    }
        $$('a.link-jaartal').each(function(element) { 
            Event.observe(element, 'mouseover', function() { this._setLinkActive(element) }.bind(this));
            Event.observe(element, 'mouseout', function() { this._setLinkInactive(element) }.bind(this));
            Event.observe(element, 'click', function(event) {
                var jaartal = element.id.split('_')[1];
                this._sendRequest(jaartal, element.href);
                event.stop();
            }.bind(this));
        }.bind(this) );        
    },
    
    _setLinkActive: function(element) {
        element.style.backgroundPosition = '-10px ' + element.style.backgroundPosition.split(' ')[1] + ' !important';
    },
    
    _setLinkInactive: function(element, force) {
        if (element.hasClassName('active') && !force) return;
        element.style.backgroundPosition = '0 ' + element.style.backgroundPosition.split(' ')[1] + ' !important';
    },
    
    /**
     * Menustructuur bijwerken
     */
    
    _updateMenu: function(Lemmas) {
        
		var menuWrapper = $('middleVerLeft');
		
		menuWrapper.innerHTML = '';
		
    	if(Lemmas['0'].childNodes.length == '0')
    	{
    		menuWrapper.innerHTML = '<p class="msg">Geen items gevonden</p>';
    	}
    	
		for( var a = 0; a < Lemmas['0'].childNodes.length; a++ ) {
			
			//Lettermenu
			var LemmaLetter = Lemmas['0'].childNodes[a].nodeName;
			LemmaLetter = LemmaLetter.substring(1)
			
			menuWrapper.insert('<li id="' + LemmaLetter + '"><a href="">' + LemmaLetter.capitalize() + '</a></li>');
			
			if (Lemmas['0'].childNodes[a].childNodes.length > 0)
			{
				var subMenu = $(LemmaLetter).insert('<ul id="nodes' + LemmaLetter + '"></ul>');
				var subMenuWrapper = $('nodes' + LemmaLetter);
				
				//Submenu items
				for( var b = 0; b < Lemmas['0'].childNodes[a].childNodes.length; b++ ) {
					
					//variable van lemmas mappen, 
					//let op: kan niet op naam mappen (ie6 komt niet verder dan 1 node en FF niet verder dan 2).. 
					
					var ProjectID =   Lemmas['0'].childNodes[a].childNodes[b].childNodes['0'].childNodes['0'].nodeValue;
					var Projectnaam = Lemmas['0'].childNodes[a].childNodes[b].childNodes['1'].childNodes['0'].nodeValue;
				  	
					//SubMenu opbouwen
					var subItem = new Element('li');
					subItem.innerHTML = '<a href="/'+ProjectID+'">' + Projectnaam.capitalize() + '</a>';
					subMenuWrapper.insert(subItem);
				}
			}
		}
		
		new Menu('middleVerLeft');
        
    },
    
    /**
     * Afbeeldingen toevoegen aan de lijst met afbeeldingen uit een periode
     */
    _updateImages: function(Images) {
    	
        var imgWrapper = $('foto_block_2_onder');
    	var images = $A(imgWrapper.getElementsByTagName('a'));

        // Huidige afbeeldingen verbergen
        images.each(function(element) { 
            new Effect.Fade(element, { 
                duration: 0.1,
                queue: 'front'
            } );
        } );
    	
    	for( var a = 0; a < Images['0'].childNodes.length; a++ ) {
    		
			var LemmaID = Images['0'].childNodes[a].childNodes['0'].childNodes['0'].nodeValue;
			var ImgSrc = Images['0'].childNodes[a].childNodes['1'].childNodes['1'].childNodes['0'].nodeValue;
			var ImgId = Images['0'].childNodes[a].childNodes['1'].childNodes['0'].childNodes['0'].nodeValue;
			
			var link = document.createElement('a');
			link.href = '?lemmaid=' + LemmaID;
			var image = document.createElement('img');
			image.id = ImgId;
			image.width = '93';
			image.src = 'http://boekenoudheid.nl.server35.firstfind.nl/cms/domainfiles/1/project/' + LemmaID + '/thumb_' + ImgSrc;
			link.appendChild(image);
			link.style.display = 'none';
			
			imgWrapper.appendChild(link);
			
			new Effect.Appear(link, { 
                duration: 0.5,
                queue: 'end'
			} );
    			
    	}        
    }
    
};


///////////////////////////////////////////////////////////////////////////////////////
// EVENTS
///////////////////////////////////////////////////////////////////////////////////////

Event.onDOMReady(function() { 
    Tijdbalk.init();
} );

