if (typeof Array.prototype.push == 'undefined') {
  Array.prototype.push = function(element) { this[this.length] = element; }
}
if(typeof Array.prototype.pop == 'undefined') {
  Array.prototype.pop = function() {
    var last = this[ this.length - 1 ]; this.length--; return last;
  }
}
Object.extend(Array.prototype, {
  maxHeight: function() {
    var h_max=0;
    this.each(function(node){
			h = parseInt(node.getStyle('height') || node.clientHeight);
      if (h > h_max) h_max=h;
    });
    this.invoke('setStyle',{height:h_max+'px'});
    return this;
  }
});
Event.observe(window,'load',function(){
	$$('#nav li').each(function(nav){
		if(nav.down('ul')){
			var children = $A(nav.getElementsByTagName('LI'));
			Event.observe(nav, 'mouseover', function(event){ 
				children.each(function(c){
					if(c.className != 'hidden'){
						c.setStyle({ 'display': 'block' });
					}
				});
			});
			Event.observe(nav, 'mouseout', function(event){ 
			  el = Event.element(event).up('li.top');
  			if(!el || el.clicked != true){
				  children.each(function(c){
  					if(c.className != 'hidden'){
  						c.setStyle({ 'display': 'none' });
  					}
  				});
				}
			});
			Event.observe(nav, 'click', function(event){ 
			  el = Event.element(event).up('li');
        if(el && el.hasClassName("top")){
          $$('#nav li.top').each(function(t){
            if(t != el){
              t.clicked = false;
            }
            $$('#nav li ul li').each(function(c){
  					  if(c.className != 'hidden'){
  						  c.setStyle({ 'display': 'none' });
  					  }
  					});
  				});
  				if(el.clicked && el.clicked == true){
            el.clicked = false;
            children.each(function(c){
    					if(c.className != 'hidden'){
    						c.setStyle({ 'display': 'none' });
    					}
    				});
      		}else{
      		  el.clicked = true;          
      			children.each(function(c){
      				if(c.className != 'hidden'){
      					c.setStyle({ 'display': 'block' });
      				}
      			});
      		}
      		Event.stop(event);
    		}
			});
		}
	});

	if($$('#ca ul.image-slideshow li').size() > 0){
    $$('#ca ul.image-slideshow').each(function(ul){
      var children = $A(ul.getElementsByTagName('LI'));

  		if(children.size() < 2){
  			Element.show(children.first());
  			return 0;
  		}
		
      var i = 0;
  		children.each(function(c){
        if(i == 0)
  				Element.show(c);
				
  			nextLink = Builder.node('a', { className:'next-link', title:'Nästa bild' }, '>');
  			c.appendChild(nextLink);
			
  			Event.observe(nextLink, 'click', function(event){ 
  				if(!c.next('li',0)){
  					c.hide();
  					children.first().show();
  				}else{
  					c.hide().next('li',0).show();
  			}	});
  			number_label = Builder.node('span', { className:'image-number' }, (i+1)+"/"+children.size());
  			c.appendChild(number_label);
  			prevLink = Builder.node('a', { className:'prev-link', title:'Tidigare bild' }, '<');
  			c.appendChild(prevLink);
  			Event.observe(prevLink, 'click', function(event){ 
  				if(!c.previous('li',0)){
  					c.hide();
  					children.last().show();
  				}else{
  					c.hide().previous('li',0).show();
  			}	});
			
  			i++;
      });
    });
  }
});
