kQuery(document).ready(function() {
	textChanger.init();
	clearInputs();
	initAutoScalingNav({
		menuId: "nav",
		tag: "span",
		spacing: 11
	});
	kQuery("div.gallery ul").slideShow({switchTime:4000});
	ieHover(".search .submit");
});
function initAutoScalingNav(o)
{
	if (!o.menuId) o.menuId = "main-nav";
	if (!o.tag) o.tag = "a";
	if (!o.spacing) o.spacing = 0;
	if (!o.constant) o.constant = 0;
	if (!o.minPaddings) o.minPaddings = 0;
	if (!o.liHovering) o.liHovering = false;
	if (!o.sideClasses) o.sideClasses = false;
	var nav = document.getElementById(o.menuId);
	if(nav) {
		nav.className += "scaling-active";
		var lis = nav.getElementsByTagName("li");
		var asFl = [];
		var lisFl = [];
		for (var i=0, j=0; i<lis.length; i++) {
			if(lis[i].parentNode == nav) {
				var t = lis[i].getElementsByTagName(o.tag).item(0);
				asFl.push(t);
				asFl[j++].width = t.offsetWidth;
				lisFl.push(lis[i]);
			}
			if(o.liHovering) {
				lis[i].onmouseover = function() {
					this.className += " hover";
				}
				lis[i].onmouseout = function() {
					this.className = this.className.replace("hover", "");
				}
			}
		}
		var menuWidth = nav.clientWidth - asFl.length*o.spacing - o.constant;
		if(getItemsWidth(asFl) < menuWidth) {
			for (var i=0; getItemsWidth(asFl) < menuWidth; i++) {
				asFl[i].width++;
				if(i >= asFl.length-1) i=-1;
			}
			for (var i=0; i<asFl.length; i++) {
				asFl[i].style.width = asFl[i].width + "px";
			}
		}
		else if(o.minPaddings > 0) {
			for (var i=0; i<asFl.length; i++) {
				asFl[i].style.width = asFl[i].width + o.minPaddings*2 + "px";
			}
		}
		if(o.sideClasses)	{
			lisFl[0].className += " first-child";
			lisFl[lisFl.length-1].className += " last-child";
		}
	}
	function getItemsWidth(a) {
		var w = 0;
		for(var q=0; q<a.length; q++) {
			w += a[q].width;
		}
		return w;
	}
}
function ieHover(h_list) {
	if (kQuery.browser.msie && kQuery.browser.version < 7) {
		kQuery(h_list).live('mouseover', function() {
			kQuery(this).addClass('hover');
		}).live('mouseout', function(){
			kQuery(this).removeClass('hover');
		});
	}
}
function clearInputs() {
	kQuery("input:text, input:password, textarea").each(function() {
		if(!this.val) this.val = this.value;
		this.onfocus = function() {
			if(this.value == this.val) this.value = "";
		}
		this.onblur = function() {
			if(this.value == "") this.value = this.val;
		}
	});
}
var textChanger = {
	defaultFS : 1.2,
	init: function() {
		var el = document.getElementById('wrapper');
		if(el) {
			var sz = textChanger.getCookie();
			el.style.fontSize = sz ? sz + 'em' : textChanger.defaultFS + 'em';
			var incr = document.getElementById('increase');
			if(incr)
				incr.onclick = function(){textChanger.changeSize(1); return false;};
			var decr = document.getElementById('decrease');
			if(decr)
				decr.onclick = function(){textChanger.changeSize(-1); return false;};
			var reset = document.getElementById('reset');
			if(reset)
				reset.onclick = function(){textChanger.changeSize(0); return false;};
		}
	},
	changeSize: function(val) {
		var el = document.getElementById('wrapper');
		if(el) {
			var size = el.style.fontSize.substring(0, 4);
			var fSize = parseFloat(size, 10);
			if (val == 1)	{
				fSize += 0.1;
				if (fSize > 1.7) fSize = 1.7;
			} 
			if (val == -1) {
				fSize -= 0.1;
				if (fSize < 0.5) fSize = 0.5;
			}       
			if (val == 0) fSize = 1.2;
			el.style.fontSize = fSize.toFixed(2) + 'em';
			textChanger.updateCookie(fSize);
		}
	},
	updateCookie: function(vl)	{
		var today = new Date();
		var exp = new Date(today.getTime() + (365*24*60*60*1000));
		document.cookie = 'royalchildren=size=' + vl + ';' +'expires=' + exp.toGMTString() + ';' +'path=/';
	},
	getCookie: function() { 
		var cname = 'royalchildren=size=';   
		var start = document.cookie.indexOf(cname);
		var len = start + cname.length;
		if ((!start) && (cname != document.cookie.substring(0,cname.length))) {return null;}
		if (start == -1) return null;
		var end = document.cookie.indexOf(";",len);
		if (end == -1) end = document.cookie.length;
		return unescape(document.cookie.substring(len, end));
	}
}
kQuery.fn.slideShow = function(_options){    
	// defaults options	    
	var _options = kQuery.extend({		
		slideEl:'li',		
		linkNext:false,		
		linkPrev:false,		
		linkPause:true,		
		numElementLink:'',		
		duration:500,		
		autoSlideShow:true,		
		switchTime:4000,		
		event:'click',		
		currentEl:'',		
		allEl:''    
	},_options);
//console.log(kQuery(_options.linkPause));
    return this.each(function(){
	    var _THIS = kQuery(this);
		var _linkNext = false, _linkPrev = false, _linkPause = true, _numElementLink = false, _numElement = false;
		var _slideEl = kQuery(_options.slideEl, _THIS);
		var _elTagName = _options.slideEl;
		if (_options.linkNext)
			var _linkNext = kQuery(_options.linkNext, _THIS).length ? kQuery(_options.linkNext, _THIS) : false;
		if (_options.linkPrev)
			var _linkPrev = kQuery(_options.linkPrev, _THIS).length ? kQuery(_options.linkPrev, _THIS) : false;
		if (_options.linkPause)
			var _linkPause = kQuery(_options.linkPause, _THIS).length ? kQuery(_options.linkPause, _THIS) : false;
		if (_options.numElementLink) {
			var _numElementLink = kQuery(_options.numElementLink, _THIS).length ? kQuery(_options.numElementLink, _THIS) : false;
			var _numElement = kQuery(_options.numElementLink, _THIS).length ? _numElementLink.parent() : false;
		}

		var _duration = _options.duration;
		var _switchTime = _options.switchTime;
		var _numElActive, _n, _timer = false, _hover = false;
		
		if (!_slideEl.filter('.active').length)
				_slideEl.eq(0).addClass('active');
				
		kQuery(_slideEl).not(".active").css('display','none');
		
		if (kQuery(_numElement).length) {activeNumEl()}
		
		if (_options.autoSlideShow) {
				_timer = setTimeout(function(){nextEl()},_switchTime);
				contentHover();
		}
		if (_linkNext) {
				kQuery(_linkNext).click(function(){
						if (_timer) {
								clearTimeout(_timer);
								_timer = setTimeout(function(){nextEl()},_switchTime);
						}
						if (kQuery(_slideEl).filter(".active").next().is(_elTagName)) {
							kQuery(_slideEl).filter(".active").next().addClass("next");
						} else {
							kQuery(_slideEl).eq(0).addClass("next");
						}
						fadeElement();
						activeNumEl();
						return false;
				});
		}
		if (_linkPrev) {	
				kQuery(_linkPrev).click(function(){
						if (_timer) {
								clearTimeout(_timer);
								_timer = setTimeout(function(){nextEl()},_switchTime);
						}
						if (kQuery(_slideEl).filter(".active").prev().is(_elTagName)) {
							kQuery(_slideEl).filter(".active").prev().addClass("next");
						} else {
							kQuery(_slideEl).filter(":last-child").addClass("next");
						}
						fadeElement();
						activeNumEl();
						return false;
				});
		}

		if (_linkPause) {	
				if (!_options.autoSlideShow) {
					kQuery("#slideStop").addClass('play');
					_options.autoSlideShow = true;
					if (!_hover) contentHover();
				}

				kQuery("#slideStop").click(function(){
						if (!kQuery("#slideStop").is('.play')) {
							clearTimeout(_timer);
							kQuery("#slideStop").addClass('play').html('play');
						} else {
							kQuery("#slideStop").removeClass('play').html('pause');
							_timer = setTimeout(function(){nextEl()},_switchTime);
						}
						return false;
				});
		}
		if (_numElementLink) {
				kQuery(_numElementLink).bind(_options.event, function(){
					if (_timer) {
						clearTimeout(_timer);
						//_timer = setTimeout(function(){nextEl()},_switchTime);
					}
					_n = _numElementLink.index(kQuery(this));
					if (!kQuery(_slideEl).eq(_n).hasClass("active")){
						kQuery(_slideEl).eq(_n).addClass("next");
						fadeElement();
						activeNumEl();
						// refresh cufon
						Cufon.refresh('#visual-box .tabs strong');
					}
					return false;
				});
		}
		if (_options.currentEl || _options.allEl) {
				_THIS.all = _slideEl.length;
				kQuery(_options.allEl, _THIS).html(_THIS.all);
				function currentNum() {
					var _index = _slideEl.index(_slideEl.filter('.active')) + 1;
					kQuery(_options.currentEl, _THIS).html(_index);
				}
				currentNum();
		}
		function contentHover() {
			_hover = true;
		}
		function nextEl(){
				if (kQuery(_slideEl).filter(".active").next().is(_elTagName)){
					kQuery(_slideEl).filter(".active").next().addClass("next");
				} else {
					kQuery(_slideEl).eq(0).addClass("next");
				}
				fadeElement();
				activeNumEl();
				_timer = setTimeout(function(){nextEl()},_switchTime);
		};		
		function activeNumEl() {
				kQuery(_numElementLink).removeClass("active");
				_numElActive = kQuery(_slideEl).index(kQuery(_slideEl).filter(".active")[0]);
				kQuery(_numElementLink).eq(_numElActive).addClass("active");
		};
		function fadeElement(){
				kQuery(_slideEl).filter(".active").fadeOut(_duration).removeClass("active");
				kQuery(_slideEl).filter(".next").fadeIn(_duration).addClass("active").removeClass("next");
				if (_options.currentEl || _options.allEl) currentNum();
		};
    });
}
