var Prart = {};

Prart.util = function(){
	return {
		addEvent: function(elm, type, fn){
			try{
				elm.addEventListener(type, fn, false);
			}catch(e){
				elm.attachEvent('on' + type, function() {
					fn.call(elm, window.event);
				});
			}
		}
	}
}();

Prart.rollOver = function(){
	var over = "_on.", out = "_off.";
	var overImgList = document.images;
	var overIptList = document.getElementsByTagName("input");
	var main = function() {
		if(overImgList.length) {
			for(var i = 0, len = overImgList.length; i < len; i++){
				if(overImgList[i].getAttribute("src") && overImgList[i].getAttribute("src").lastIndexOf(out) != -1) {
					var preload = new Image();
					preload.src = overImgList[i].src.replace(out, over);
					Prart.util.addEvent(overImgList[i], "mouseover", function(event) {
						this.setAttribute("src", this.getAttribute("src").replace(out, over));
					});
					Prart.util.addEvent(overImgList[i], "mouseout", function(event) {
						this.setAttribute("src", this.getAttribute("src").replace(over, out));
					});
				}
			}
		}
		if(overIptList.length) {
			for(var i = 0, len = overIptList.length; i < len; i++){
				if(overIptList[i].getAttribute("src") && overIptList[i].getAttribute("src").lastIndexOf(out) != -1) {
					var preload = new Image();
					preload.src = overIptList[i].src.replace(out, over);
					Prart.util.addEvent(overIptList[i], "mouseover", function() {
						this.setAttribute("src", this.getAttribute("src").replace(out, over));
					});
					Prart.util.addEvent(overIptList[i], "mouseout", function() {
						this.setAttribute("src", this.getAttribute("src").replace(over, out));
					});
				}
			}
		}
	}();
}
Prart.util.addEvent(window, "load", Prart.rollOver);

Prart.pageScroller = function() {
	var targetX, targetY, scrollX, scrollY, timer;
	var delay = 7, ms = 10;
	var html = document.documentElement;
	var body = document.body;
	var scrollBtns = document.links;
	var run = function(){
		var X = window.pageXOffset || html.scrollLeft || body.scrollLeft || 0;
		var Y = window.pageYOffset || html.scrollTop || body.scrollTop || 0;
		scrollX += (targetX - X) / delay;
		scrollY += (targetY - Y) / delay;
		if(! ((targetX == scrollX && targetY == scrollY) || (Math.abs(targetX - X) < 1 && Math.abs(targetY - Y) < 1))) {
			window.scrollTo(scrollX, scrollY);
			timer = setTimeout(run, ms);
		} else {
			clearTimeout(timer);
		}
	}
	var main = function() {
		for(var i = 0, len = scrollBtns.length; i < len; i++){
			var btn = scrollBtns[i];
			if (btn.getAttribute("href",2).indexOf("#") != -1) {
				Prart.util.addEvent(btn, "click", function(event) {
					var targetId = this.getAttribute("href",2).substr(1);
					if (targetId != "" && document.getElementById(targetId)) {
						(event.preventDefault) ? event.preventDefault() : event.returnValue = false;
						var target = document.getElementById(targetId);
						var windowHeight = html.clientHeight || body.clientHeight;
						var windowWidth = html.clientWidth || body.clientWidth;
						var pageHeight = html.scrollHeight || body.scrollHeight;
						var pageWidth = html.scrollWidth || body.scrollWidth;
						if (document.compatMode == "BackCompat") {
							pageHeight = body.scrollHeight, pageWidth = body.scrollWidth;
						}
						try {
							var position = target.getBoundingClientRect();
							targetX = position.left + (body.scrollLeft || html.scrollLeft) - html.clientLeft;
							targetY = position.top + (body.scrollTop || html.scrollTop) - html.clientTop;
						} catch(e) {
							targetX = target.offsetLeft, targetY = target.offsetTop;
						}
						if (windowHeight + targetY > pageHeight) targetY -= (windowHeight + targetY) - pageHeight;
						if (windowWidth + targetX > pageWidth) targetX -= (windowWidth + targetX) - pageWidth;
						scrollX = window.pageXOffset || html.scrollLeft || body.scrollLeft || 0;
						scrollY = window.pageYOffset || html.scrollTop || body.scrollTop || 0;
						run();
					}
				});
			}
		}
	}();
}
/*
Prart.util.addEvent(window, "load", Prart.pageScroller);
*/
/* jQuery function (for v1.4.2) */

$(function(){

	if($('#image').length) {
		var container = $('#image');
		var nav = $("#thumb li");
	
		container.cycle({
			fx: 'fade',
			speed: 1500,
			timeout: 6000,
			before: function(){
				nav.removeClass("current");
				nav.eq($(this).index()).addClass("current");
			}
		});
		container.cycle('pause');
	
		nav.click(function(){
			nav.not($(this)).removeClass("current");
			$(this).addClass("current");
			container.cycle($(this).index());
			container.cycle('resume');
		});
	
		$("#start").click(function(){
			container.cycle('resume');
		});
	}

	if($("#sub span").length) {
		$("#sub span").each(function(){
			if($(this).find("a").length) {
				$(this).find("a").click(function(e){
					$.data($(this).parent().get(0), 'href', $(this).attr('href'));
					e.preventDefault();
				});
				
			}
		}).click(function(){
			var self = $(this);
			var nav = self.next();
			var img = self.find("img");
			var src = img.attr("src");
	
			if (nav.css("display") == "none"){
				if($.data(this, "href")){
					var data = $.data(this, "href");
				}
				$(this).addClass("open");
				img.attr("src",src.replace(".gif","_cr.gif"));
				nav.slideDown("slow",function() {
					if(data){
						location.href = data;
					}
				});
				$("#sub span").each(function(){
					var src = $(this).find("img").attr("src");
					$(this).next().not(nav).slideUp();
					$(this).not(self).removeClass("open");
					$(this).not(self).find("img").attr("src",src.replace("_cr.gif",".gif"));
				});



			} else {
				$(this).removeClass("open");
				nav.slideUp("slow",function(){
					img.attr("src",src.replace("_cr.gif",".gif"));
				});			
			}
		});
	}

	if($('#scroll').length) {
		$('#scroll').jScrollPane({showArrows: true, scrollbarWidth: 13});
	}

	if($('.scroll').length) {
		$('.scroll').jScrollPane({showArrows: true, scrollbarWidth: 13});
	}

	if($('#slideshow').length) {

		var pagerFactory = function(idx, slide) {
			var s = idx > 2 ? ' style="display:none"' : '';
			return '<li'+s+'><a href="#">'+(idx+1)+'</a></li>';
		};

		$('#slideshow').cycle({
			fx: 'fade',
			timeout: 0,
			prev: '#prev',
			next: '#next',
			pager:  '#nav',
			slideExpr: 'img'
		});
	}

	if($("select[name='type']").length) {

		var prefecture = $(['<option value="1" >北海道</option>',
		'<option value="2" >青森県</option>',
		'<option value="3" >岩手県</option>',
		'<option value="4" >宮城県</option>',
		'<option value="5" >秋田県</option>',
		'<option value="6" >山形県</option>',
		'<option value="7" >福島県</option>',
		'<option value="8" >茨城県</option>',
		'<option value="9" >栃木県</option>',
		'<option value="10" >群馬県</option>',
		'<option value="11" >埼玉県</option>',
		'<option value="12" >千葉県</option>',
		'<option value="13" >東京都</option>',
		'<option value="14" >神奈川県</option>',
		'<option value="15" >新潟県</option>',
		'<option value="16" >富山県</option>',
		'<option value="17" >石川県</option>',
		'<option value="18" >福井県</option>',
		'<option value="19" >山梨県</option>',
		'<option value="20" >長野県</option>',
		'<option value="21" >岐阜県</option>',
		'<option value="22" >静岡県</option>',
		'<option value="23" >愛知県</option>',
		'<option value="24" >三重県</option>',
		'<option value="25" >滋賀県</option>',
		'<option value="26" >京都府</option>',
		'<option value="27" >大阪府</option>',
		'<option value="28" >兵庫県</option>',
		'<option value="29" >奈良県</option>',
		'<option value="30" >和歌山県</option>',
		'<option value="31" >鳥取県</option>',
		'<option value="32" >島根県</option>',
		'<option value="33" >岡山県</option>',
		'<option value="34" >広島県</option>',
		'<option value="35" >山口県</option>',
		'<option value="36" >徳島県</option>',
		'<option value="37" >香川県</option>',
		'<option value="38" >愛媛県</option>',
		'<option value="39" >高知県</option>',
		'<option value="40" >福岡県</option>',
		'<option value="41" >佐賀県</option>',
		'<option value="42" >長崎県</option>',
		'<option value="43" >熊本県</option>',
		'<option value="44" >大分県</option>',
		'<option value="45" >宮崎県</option>',
		'<option value="46" >鹿児島県</option>',
		'<option value="47" >沖縄県</option>']),
		area1 = $([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,18,19,21]),
		area2 = $([15,16,17,20,21,22,23]),
		area3 = $([24,25,26,27,28,29,30,31,32,33,35,36,37,38,]),
		area4 = $([34,39,40,41,42,43,44,45,46]);

		var node = $("select[name='type']");
		node.change(function(){

			$("#prefecture option").remove();
			var createOption = function(array){
				$(prefecture).each(function(i,elem){
					if($.inArray(i, array) != -1) {
						$("#prefecture").append(elem);
					}
				});
			}

			switch (node.find("option:selected").attr("value")){
				case "1":
					createOption(area1);
					break;
				case "2":
					createOption(area2);
					break;
				case "3":
					createOption(area3);
					break;
				case "4":
					createOption(area4);
					break;
				default:
					$(prefecture).each(function(i,elem){$("#prefecture").append(elem)});
					break;
			}
		});
	}
//		jQuery("#nav a:nth-child(10)").after("<br/>");

});
