var enableDebug = true;
var dbg = function(t) {
    if(enableDebug && $chk(console) && $chk(console.log))
	console.log(t);
}


// add clickable area to .infobox boxes
// click reduces underlying container and only keeps headline
// using mootools
var vpsHeightCookieDuration = 30; // 30 days
window.addEvent('domready', function(){
	n = $$('.infobox > dt, .infobox > h1, #login-right h1');
	//nn = n.getElement('dd');	
	//m = n.getElement('dt');
	
	// wrap multiple div children of .infobox elem into a single one
	$$('div.infobox').each(function(it) {
		var divs = it.getChildren("div");
		var wrap = new Element("div").set('class','nopad');
		divs.each(function(it) {
			it.inject(wrap);
		    });
		wrap.inject(it);
	    });

	// special treatment for login box
	var login = $('login-right');
	if($chk(login)) {
	    var loginWrap = new Element("div");
	    login.getChildren('form').each(function(it) {
		    it.inject(loginWrap);
		});
	    loginWrap.inject(login);
	}
	
	// restore height settings from cookies
	n.each(function(it) {
		var p   = it.getParent();
		var id  = p.getAttribute('id');
		var eid = "vpsHeight-"+id;
		var cook = Cookie.read(eid);
		if(cook) { 
		    var trg = p.getElement('div');
		    trg.vpsMini = true;
		    trg.vpsHeight = cook;
		    vpsHeight(trg,0,0); // set elem size to 0 if cookie exits for this elem
		}
	    });

	// register event listeners
	n.each(function(it) {
		it.addEvent('click',function(evt) {
			this.highlight('#F8B214');
			var root = this.getParent();
			var trg = root.getElement('div');

			// trg found?
			if(!$chk(trg)) { return false; }
			
			// remember original size and padding
			if(!$chk(trg.vpsHeight)) {
			    trg.vpsHeight = trg.getSize().y;
			    trg.vpsPadding = trg.getStyle('padding');
			}

			// minimize or maximize?
			if(!$chk(trg.vpsMini) || trg.vpsMini == false) { // minimize
			    vpsHeight(trg,0,1);
			    trg.vpsMini = true;
			    // set cookie
			    Cookie.write('vpsHeight-'+root.getAttribute('id'),trg.vpsHeight, {'duration' : vpsHeightCookieDuration});
			}
			else { // maximize
			    vpsHeight(trg,trg.vpsHeight,1);
			    trg.vpsMini = false;
			    // dispose cookie
			    Cookie.dispose('vpsHeight-'+root.getAttribute('id'));
			}
		    });
	    });
    });


// resize hight of elem
// elem:moo , height:number , animate:bool
var vpsHeight = function(elem, height, animate) {
    if(animate) {
	elem.morph({"height":height});
    }
    else {
	elem.setStyle("height",height);
    }
}
