var SearchField = Class.create({
	initialize : function(input){
		this.input = input;
		this.string = "Search the site";
		this.input.observe("focus", this.focusHandler.bind(this));
		this.input.observe("blur", this.blurHandler.bind(this));
		if (this.input.value.length === 0) this.input.value = this.string;
	},
	focusHandler : function(){
		if (this.input.value === this.string)	this.input.value = "";
	},
	blurHandler : function(){
		if (this.input.value.length === 0) this.input.value = this.string;
	}
});

var TextResizer = Class.create({
	initialize : function(element, font_sizes, target){
		this.element = element;
		this.font_sizes = font_sizes;
		this.maincolumn = $(target);
		this.buttons = this.element.select(".TS");
		if (!this.maincolumn || !this.font_sizes.length == 3 || !this.buttons.length == 3) return;
		for (x=0;x<3;x++)
			$(this.buttons[x]).observe('click', this.resizeText.bind(this, this.buttons[x]));
	},
	resizeText : function(button) {
		if (!button.hasClassName('Selected')) {
			this.element.down('.Selected').removeClassName('Selected');
			button.addClassName('Selected');
			var type = button.id.split("_").last();
			switch(type) {
				case 'normal' :
					this.maincolumn.setStyle({ fontSize : this.font_sizes[0] });
					break;
				case 'larger' :
					this.maincolumn.setStyle({ fontSize : this.font_sizes[1] });
					break;
				case 'largest' :
					this.maincolumn.setStyle({ fontSize : this.font_sizes[2] });
					break;
				default :
					this.maincolumn.setStyle({ fontSize : this.font_sizes[0] });
					break;
			}
		}
	}
});

var PrintLink = Class.create({
	initialize : function(link){
		link = link.down(".Link") || link;
		link.observe('click', function(e){ window.print(); return false; });
	}
});

var SendToFriend = Class.create({
	initialize : function(link_wrapper){
		link = link_wrapper.down("a");
		this.send_location = link.getAttribute("href");
		link.addClassName("Link").removeAttribute("href");
		link.observe('click', this.openSendToFriend.bindAsEventListener(this));
	},
	openSendToFriend : function(e){
		e.stop();
		var popup = window.open(encodeURI(this.send_location), "SendToFriend", "width=600,height=600,toolbars=no,scrollbars=yes");
		popup.focus();
	}
});

document.observe("dom:loaded", function(){
	var s = $("s");
	if (s) new SearchField(s);
	var t = $("sb_textsize");
	if (t) new TextResizer(t, ["100%", "115%", "130%"], "MainColumn");
	var p = $("sb_print");
	if (p) new PrintLink(p);
	var f = $("sb_send");
	if (f) new SendToFriend(f);
});