var Site = {
	init: function() {
		this.once();
		this.pngImgFix();
		this.hoverOpacity();
		GlobalNav.init();
		this.addLightbox();
		new SmoothScroll({duration:850, transition:'quad:out'});
	},
	
	once: function() {
		this.ctnHeight = $('content_body').getSize().y;
		$('addCtn').setStyle('height', this.ctnHeight);
		if($('home')) {
			$('ttl_img').setStyle('height', $('ttl_img').getElement('img').height);
		}
	},
	
	addLightbox: function() {
		if(!$$('#content_body .entry a img')[0]) return;
		var entry = $$('#content_body .entry');
		entry.each(function(el, i) {
			var key = 'img'+i;
			var triggers = el.getElements('a');
			triggers.each(function(a) {
				if(a.href.test(location.host)) {
					if(a.getElement('img')) var title = a.getElement('img').alt;
					var src = a.getProperty('href');
					var img = src.substr(src.length-3,3);
					if(img == 'jpg' || img == 'png' || img == 'gif' || img == 'bmp') {
						a.setProperties({'title': title, 'rel':'lightbox['+key+']'});
					};
				};
			});
		});
		var triggers = $$('#content_body .entry a img');
	},
	
	hoverOpacity: function() {
		if(!$$('.hoverOpacity')[0]) return;
		$each($$('.hoverOpacity'), function(el) {
			var fx = new Fx.Tween(el, {duration:320, transition:'quad:out'});
			el.addEvents({
				'mouseenter': function() {
					fx.cancel();
					fx.start('opacity', 0.5);
					//this.setStyle('opacity', 0.5);
				},
				'mouseleave': function() {
					fx.cancel();
					fx.start('opacity', 0.999);
					//this.setStyle('opacity', 0.999);
				}
			});
		});
		
	},
	
	// PNG bugfix for IE6:
	//   h1の子要素にサイトトップへリンクしているaタグが必要
	//   サイトルートにblank.gif(1px透過GIF)が必要
	// Example:
	//   <img src="XX.png" alt="" class="pngfix" />
	pngImgFix: function(){
		if(!$$('.pngfix')[0] || !Browser.Engine.trident4) return;
		var target=$$('.pngfix');
		var path = $$('h1 a')[0].href.replace('/index.php', '/') + 'blank.gif';
		target.each(function(el,i) {
			if(el.get('tag') == 'img') {
				var src = el.src;
				el.src = path;
				el.setStyle('filter','progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+src+')');
			} else {
				var src = el.getStyle('background-image');
				src = src.replace('url(','');
				src = src.replace(')','');
				var size = el.hasClass('sizeScale') ? 'scale' : 'crop';
				el.setStyles({
					'background-image': 'url('+path+')',
					'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+src+',sizingMethod='+size+')'
				});
			};
		});
	}
};


var GlobalNav = {
	init: function() {
		this.target = $('global_nav');
		this.trigger = $('gNavImg').getChildren();
		this.trigger.each(function(el,i) {
			this.set(el,i);
			el.addEvents({
				//'focus': this.enter.pass(i, this),
				'mouseenter': this.enter.pass(i, this),
				//'blur': this.leave.pass(el, this),
				'mouseleave': this.leave.pass(el, this)
			});
		}, this);
	},
	
	set: function(el,i) {
		if(location.href == $$('h1 a')[0].href) return;
		var url = location.href.replace('index.php', '');
		url = url.replace(location.hash, '');
		if(location.search) url = url.replace(location.search, '');
		if(url.test(el.href)) {
			this.active = i;
			el.addClass('active');
			this.target.setStyle('background-position', [0, -206*(this.active+1)]);
		} else if(el.hasClass('active')) {
			el.removeClass('active');
		};
	},
	
	enter: function(i) {
		this.target.setStyle('background-position', [0, -206*(i+1)]);
	},
	
	leave: function(el) {
		if($chk(this.active)) {
			this.target.setStyle('background-position', [0, -206*(this.active+1)]);
		} else {
			this.target.setStyle('background-position', [0, 0]);
		};
	}
}


window.addEvents({
	'domready': Site.init.bind(Site)
});