

var colors = ["#e6e3d8", "#ebebe1", "#e8e1e1", "#ebe2dc"];



function onDomLoaded(){
	changeColor();
	globalClick();
	readMore();
}
document.observe("dom:loaded", onDomLoaded);

function onPageLoaded(){
	homeHeight();
	slideShow();
}
Event.observe(window, "load", onPageLoaded);


function homeHeight(){
	var mh = 0;
	var divs = $$("div.home");
	for(var i=0; i<divs.length; i++){
		var h = divs[i].getHeight();
		if(h > mh) mh = h;
	}
	for(var i=0; i<divs.length; i++){
		divs[i].setStyle({height:mh+"px"});
	}
}

function readMore(){
	var b = $$(".next");
	for(var i=0; i<b.length; i++){
		var div = b[i].previous();
		if(div.getHeight() > 76){
			div.setStyle({ overflow:"hidden", height:"76px" });
			b[i].observe("click", function(e, div){
				e.stop();
				div.setStyle({ overflow:"auto", height:"auto" });
				e.element().remove();
			}.bindAsEventListener(this, div));
		}
	}
}


function changeColor(){
	var c = colors[Math.floor(Math.random()*colors.length)];
	$(document.body).morph('', {
		style: 'background-color:' + c + ';',
		duration: 2,
		delay: 2,
		afterFinish: changeColor
	});
}

function globalClick(){
	var b = $$(".gclick");
	for(var i=0; i<b.length; i++){
		b[i].removeClassName("gclick");
		b[i].addClassName("hand");
		b[i].observe("click", function(){
			location.href = this.down('a');
		});
		b[i].observe("mouseover", function(){
			this.down('a').addClassName("over");
		});
		b[i].observe("mouseout", function(){
			this.down('a').removeClassName("over");
		});
	}
}


function slideShow(){
	var updateCtrl = function(ctrl, i){
		if (ctrl) {
			var as = ctrl.childElements();
			as.invoke('removeClassName', 'on');
			ctrl.down(i).addClassName('on');
		}
	}
	
	
	
	var shows = $$(".slideshow");
	for (var i = 0; i < shows.length; i++) {
		var s = shows[i];
		s.ctrl = s.next(".slidectrl");
		s.slidep = 0;
		s.childs = s.childElements();
		if(s.childs.length <= 1) break;
		
		if (s.hasClassName('pan')) {
			s.makePositioned();
			s.setStyle({overflow:"hidden"});
			s.width = s.getWidth();
			s.xoffset = s.getStyle('padding-left');
			s.yoffset = s.getStyle('padding-top');
			s.childs = s.childs.sortBy(Math.random);
			for (var j = 0; j < s.childs.length; j++) {
				s.childs[j].width = s.childs[j].getWidth();
				s.childs[j].setStyle({ width:s.childs[j].width+"px", position:"absolute", top:s.yoffset, left:s.xoffset });
				if(j==0) new Effect.Move(s.childs[j], {x: -s.width, duration:0});
				if(j>1) new Effect.Move(s.childs[j], {x: s.width * (j-1), duration:0});
			}
			s.slidenext = function(){
				new Effect.Move(this.childs[0], {x: this.width * (this.childs.length), duration:0});
				this.childs.push(this.childs.shift());
				for (var j = 0; j < this.childs.length; j++) {
					new Effect.Move(this.childs[j], {x: - this.width, duration: .7});
				}
			}
			s.timer = new PeriodicalExecuter(s.slidenext.bind(s), 6 + Math.random() * 5);
		}
		else {
			s.makePositioned();
			s.childs.invoke('hide');
			s.childs.invoke('setStyle', {position:'absolute'});
			s.childs[0].show();
			updateCtrl(s.ctrl, 0);
			s.slidenext = function(id){
				this.childs[this.slidep].fade();
				if (Object.isUndefined(id)) 
					this.slidep = this.slidep < this.childs.length - 1 ? this.slidep + 1 : 0;
				else {
					this.slidep = id;
					this.timer.stop();
					this.timer.registerCallback();
				}
				this.childs[this.slidep].appear();
				updateCtrl(this.ctrl, this.slidep);
			}
			s.timer = new PeriodicalExecuter(s.slidenext.bind(s, undefined), 6 + Math.random() * 5);
			
			if(s.ctrl){
				var as = s.ctrl.childElements();
				for(var j=0; j<as.length; j++){
					as[j].observe('click', function(e, id){
						e.element().blur();
						e.stop();
						this.slidenext(id);
					}.bindAsEventListener(s, j));
				}
			}
		}
	}
}
