
//初期化処理
var rLov = function () {}
rLov.init = function() {
	rLov.IEx = !!(window.attachEvent && !window.opera);
	rLov.IE6 = !!(rLov.IEx && typeof(document.documentElement.style.maxHeight)=='undefined');
	rLov.preloadImageHash = new Array();
	rLov.rolloverArray = new Array();
	
	if (rLov.IE6) {
		try {
			document.execCommand('BackgroundImageCache', false, true);
		} catch(e) {}
		
		(function($) {
			$(function() {
				$(".alpha").fixPng().find('*').css('display', 'none');
			});
		})(jQuery);
	}
	
	rLov.rolloverClass  = 'rollover';
	rLov.textimageClass = 'textimage';
	
	rLov.onloadTemp = window.onload;
	window.onload = rLov.doLoad;
}
$(function() {
	var zIndexNumber = 1;
	$('*').each(function() {
		if (!$(this).css('zIndex')) {
		//$(this).css('zIndex', zIndexNumber);
		} else {
		
		}
		//zIndexNumber -= 10;
	});
});

rLov.doLoad = function() {
	//タグの列挙
	var tag_list = document.getElementsByTagName('*');
	var pattern  = new RegExp('(?:^|\\s)(' + rLov.rolloverClass + '|' + rLov.textimageClass + ')(?:$|\\s)');
	var on_url  = null;
	var off_url = null;
	
	for (i = 0; i < tag_list.length; i++ ) {
		tag = tag_list[i];
		if (tag.className && tag.className.match(pattern)) {
			if (RegExp.$1) {
				rLov.attachRollover(tag);
			}
			tag.title = rLov.tagToText(tag);
		}
	}
	$(function() {
		$(window).resize();
	});
	
	//次の初期化関数を呼び出す
	if (rLov.onloadTemp) {
		rLov.onloadTemp();
	}
};

//画像の先読み
rLov.preloadImage = function(url) {
	if (!this.preloadImageHash[url] ) {
		this.preloadImageHash[url] = new Image();
		this.preloadImageHash[url].src = url;
	}
};

//ロールオーバー用マウスイベント関数
rLov.doMouseOver = function(url) {
	var mode = 0;
	var i, item = rLov.rolloverArray[this.getAttribute('rLovId')];
	
	if (item[mode]) {
		if (this.src){
			this.src = item[mode];
		} else {
			this.style.backgroundImage = 'url("' + item[mode] + '")';
		}
	}
	
	var childs = item[2];
	for (i = 0; i < childs.length; i++) {
		if (childs[i][2].src) {
			childs[i][2].src = childs[i][mode];
		} else {
			childs[i][2].style.backgroundImage = 'url("' + childs[i][mode] + '")';
		}
	}
};
rLov.doMouseOut = function(url) {
	var mode = 1;
	var i, item = rLov.rolloverArray[this.getAttribute('rLovId')];
	
	if (item[mode]) {
		if (this.src){
			this.src = item[mode];
		} else {
			this.style.backgroundImage = 'url("' + item[mode] + '")';
		}
	}
	
	var childs = item[2];
	for (i = 0; i < childs.length; i++) {
		if (childs[i][2].src) {
			childs[i][2].src = childs[i][mode];
		} else {
			childs[i][2].style.backgroundImage = 'url("' + childs[i][mode] + '")';
		}
	}
};

//タグにマウスイベントと画像のURLを登録する
rLov.attachRollover = function(tag) {
	var i, childs = tag.childNodes, on_url = null, off_url = null;
	var rollover_id = tag.getAttribute('rLovId');
	
	if (!rollover_id) {
		rollover_id = rLov.rolloverArray.length + 1
		rLov.rolloverArray[rollover_id] = [null, null, []];
		tag.setAttribute('rLovId', rollover_id);
	}
	
	if (tag.src) {
		if (tag.src.match(/(.*?)(?:_on|_off)(\.[a-zA-Z0-9]+)/)) {
			on_url  = RegExp.$1 + '_on' + RegExp.$2;
			off_url = RegExp.$1 + '_off' + RegExp.$2;
		}
	} else {
		var style = tag.currentStyle || document.defaultView.getComputedStyle(tag, '');
		if (style.backgroundImage.match(/url\(["']?([^"']+)(?:_on|_off)(\.[a-zA-Z0-9]+)["']?\)/)) {
			on_url  = RegExp.$1 + '_on' + RegExp.$2;
			off_url = RegExp.$1 + '_off' + RegExp.$2;
		}
	}
	tag.onmouseout  = rLov.doMouseOut;
	tag.onmouseover = rLov.doMouseOver;
	
	if (on_url) {
		rLov.preloadImage(on_url);
		rLov.preloadImage(off_url);
		rLov.rolloverArray[rollover_id][0] = on_url;
		rLov.rolloverArray[rollover_id][1] = off_url;
	}
	
	for (i = 0; i < childs.length; i++) {
		if (childs[i].tagName) {
			rLov.attachRolloverChild(childs[i], rollover_id);
		}
	}
};
rLov.attachRolloverChild = function(tag, rollover_id) {
	var i, childs = tag.childNodes;
	if (tag.src) {
		if (tag.src.match(/(.*?)(?:_on|_off)(\.[a-zA-Z0-9]+)/)) {
			rLov.rolloverArray[rollover_id][2].push([RegExp.$1 + '_on' + RegExp.$2, RegExp.$1 + '_off' + RegExp.$2, tag]);
		}
	} else {
		var style = tag.currentStyle || document.defaultView.getComputedStyle(tag, '');
		if (style.backgroundImage.match(/url\(["']?([^"']+)(?:_on|_off)(\.[a-zA-Z0-9]+)["']?\)/)) {
			rLov.rolloverArray[rollover_id][2].push([RegExp.$1 + '_on' + RegExp.$2, RegExp.$1 + '_off' + RegExp.$2, tag]);
		}
	}
	
	for (i = 0; i < childs.length; i++) {
		if (childs[i].tagName) {
			rLov.attachRolloverChild(childs[i], rollover_id);
		}
	}
};

//タグを文字列に変換する
rLov.tagToText = function(tag) {
	var text = tag.innerHTML, i, s, pre, suf, tagname;
	while (text.match(/^([\s\S]*)<(ol|ul)>([\s\S]*?)<\/\2>([\s\S]*)$/im)) {
		tagname = RegExp.$2.toLowerCase();
		pre = RegExp.$1;
		suf = RegExp.$4;
		text = RegExp.$3;
		if (tagname=='ol') {
			for (i=1; (s=text.replace(/<li>/i, ''+i+'. '))!=text; i++) {
				text = s;
			}
		} else {
			for (i=1; (s=text.replace(/<li>/i, i==1 ? '' : ' / '))!=text; i++) {
				text = s;
			}
		}
		text = pre + ' ' + text + ' ' + suf;
	}
	text = text.replace(/<\/h[1-6]>([\s\S]*?<)/ig, ' ： $1');
	text = text.replace(/<\/?(?:p|pre|div|table|form|fieldset|address|blockquote|h[1-6]|[duo]l|center)(\s?.*?)\/?>/ig, ' ');
	text = text.replace(/[\s\n\r]*<br.*?>[\s\n\r]*|<.*?>/ig, '');
	text = text.replace(/\s+/g, ' ');
	text = text.replace(/^ | $/g, '');
	while (text.match(/&([a-z]+);/im)) {
		s = '';
		switch (RegExp.$1) {
			case 'amp' : s = '&'; break;
			case 'lt'  : s = '<'; break;
			case 'gt'  : s = '>'; break;
			default	: s = '';
		}
		text = RegExp.leftContext + s + RegExp.rightContext;
	}
	return text;
}

rLov.init();

//jQuery-UI ダイアログ
function jquery_dialog(title, body, buttons)
{
	$(function() {
		//ダイアログの作成
		var $window = $('<p></p>');
		$window.attr('title', title);
		$window.html(body);
		
		//ダイアログの表示
		$window.dialog({
			width: 600,
			modal: true,
			buttons: buttons
		});
		return $window;
	});
}

//jQuery-UI 画面切り替え時ダイアログ
function jquery_waiting_dialog()
{
	var s = '<p title="画面の切り替え">画面の切り替え中です。<br />次の画面が表示されるまでしばらくお待ちください。</p>';
	$(s).dialog({width: 600, modal: true});
}

//リサイズイベント
$(function(){
	var old_width = 0;
	var $main = $('#main');
	
	$(window)
	.resize(function(){
		var win_width = $(window).width();
		if (old_width != win_width) {
			
			if (win_width >= 950) {
				$main.removeClass('size_520');
				$main.removeClass('size_660');
				$main.removeClass('size_700');
				$main.removeClass('size_840');
				$main.removeClass('size_950');
			} else if (win_width >= 840) {
				$main.removeClass('size_520');
				$main.removeClass('size_660');
				$main.removeClass('size_700');
				$main.removeClass('size_840');
				$main.addClass('size_950');
			} else if (win_width >= 700) {
				$main.removeClass('size_520');
				$main.removeClass('size_660');
				$main.removeClass('size_700');
				$main.addClass('size_840');
				$main.addClass('size_950');
			} else if (win_width >= 660) {
				$main.removeClass('size_520');
				$main.removeClass('size_660');
				$main.addClass('size_700');
				$main.addClass('size_840');
				$main.addClass('size_950');
			} else if (win_width >= 520) {
				$main.removeClass('size_520');
				$main.addClass('size_660');
				$main.addClass('size_700');
				$main.addClass('size_840');
				$main.addClass('size_950');
			} else {
				$main.addClass('size_520');
				$main.addClass('size_660');
				$main.addClass('size_700');
				$main.addClass('size_840');
				$main.addClass('size_950');
			}
			
			if (!rLov.IE6) {
				if (win_width >= 700) {
					$('#nuka_image').attr('src', 'img/nuka_main.png');
				} else if (win_width >= 660) {
					$('#nuka_image').attr('src', 'img/nuka_main_660px.png');
				} else {
					$('#nuka_image').attr('src', 'img/nuka_main_480px.png');
				}
			} else {
				var $img = $('#nuka_image');
				if (win_width >= 700) {
					if ($img.attr('src') != 'img/nuka_main.png') {
						$('#main_photo')
							.html('<img id="nuka_image" src="img/nuka_main.png" />')
							.find('img').load(function(){
								$(this).fixPng();
							});
					}
				} else {
					if ($img.attr('src') != 'img/nuka_main_480px.png') {
						$('#main_photo')
							.html('<img id="nuka_image" src="img/nuka_main_480px.png" />')
							.find('img').load(function(){
								$(this).fixPng();
							});
					}
				}
			}
			
			$('#topmovie object').height($('#topmovie object').width() / 3);
			
			var $obj = $('#header_menu'), obj_width = $obj.width();
			
			$obj.find('a').each(function(){
				var style = this.currentStyle || document.defaultView.getComputedStyle(this, '');
				var rollover_id = this.getAttribute('rLovId');
				
				if (style.backgroundImage.match(/url\(["']?([^"']+)(?:_\d+px)([a-zA-Z_\-]+)(_on|_off)(\.[a-zA-Z0-9]+)["']?\)/)) {
					var px = (obj_width < 700) ? '_90px' : '_160px';
					rLov.rolloverArray[rollover_id][0] = RegExp.$1 + px + RegExp.$2 + '_on'  + RegExp.$4;
					rLov.rolloverArray[rollover_id][1] = RegExp.$1 + px + RegExp.$2 + '_off' + RegExp.$4;
					this.style.backgroundImage = 'url(' + RegExp.$1 + px + RegExp.$2 + RegExp.$3 + RegExp.$4 + ')';
				}
			});
			
			old_width = win_width;
		}
	});
});



