var Dropdownmenu = Class.create();

Dropdownmenu.prototype = {
	initialize: function(menuholder_id) {
	    this.id   = menuholder_id;
	    this.mode = 'horizontal';
	},
	
	/** Suorittaa menumuunnoksen */
	execute: function(mode){
		this.mode = (mode == 'vertical') ? 'vertical' : 'horizontal';
		
		var a_li = $(this.id).getElementsByTagName("LI");
	    for (var i=0; i<a_li.length; i++) {
	        a_li[i].onmouseover=function() {
	            this.className += " hover";
	        }
	        a_li[i].onmouseout=function() {
	            this.className = this.className.replace(new RegExp(" hover\\b"), "");
	        }
	        a_li[i].style.position = (this.mode == 'vertical') ? 'relative' : '';
	    }
	    
	    var a_ul = $(this.id).getElementsByTagName("UL");
	    for (var i=0; i<a_ul.length; i++) {	    	
	    	
	    	// Verticalissa kaikki avataan oikealle
	    	if (this.mode == 'vertical'){
		    	if (a_ul[i].parentNode.tagName == 'LI'){
		    		a_ul[i].style.marginTop  = '-'+(a_ul[i].parentNode.offsetHeight + (a_ul[i].parentNode.offsetHeight - a_ul[i].offsetTop)); // OK
		    		a_ul[i].style.marginLeft = a_ul[i].parentNode.offsetWidth; // OK, jos ei ul:ssa paddingia
		    	//	a_ul[i].style.marginLeft = Math.floor(a_ul[i].parentNode.offsetWidth + ((a_ul[i].parentNode.parentNode.offsetWidth - a_ul[i].parentNode.offsetWidth)/2));
		    	}
	    	}
		    		
    		// Horizontal-tilassa ensimmäinen taso avataan alaspäin ja muut oikealle
    		else{
    			if (a_ul[i].parentNode.tagName == 'LI'){
    				
	    			if (a_ul[i].parentNode.parentNode.parentNode.id == this.id){
	    				a_ul[i].style.marginLeft = 0;
	    				a_ul[i].style.marginTop  = '0px';
	    				a_ul[i].style.position   = 'absolute';
	    				a_ul[i].style.zIndex     = '1000';
	    			}
	    			else{	    				
	    				a_ul[i].style.marginTop  = '-'+(a_ul[i].parentNode.offsetHeight + (a_ul[i].parentNode.offsetHeight - a_ul[i].offsetTop)); // OK
	    				a_ul[i].style.marginLeft = a_ul[i].parentNode.offsetWidth; // OK, jos ei ul:ssa paddingia
	    			}
    			}
    		}
	    }
	}
}
