/*
 * function.js
 * contents.jsで使用する関数群
*/

	// #への置き換え用関数（AJAXで通信時にもこれを呼び出して置き換え）
	$.fn.linkChange = function() {
		var linkEle = $(this);
		linkEle.each(function() {
			$(this)
				.filter(function() {
					return this.href.indexOf(domain) != -1;
				})
				.attr('href', $(this).attr('href').match(/^\./)
					? $(this).attr('href')
						.replace(domain, '')
						.replace(/^\./, '#')
					: '#' + $(this).attr('href').replace(domain, ''))
				.click(function() {
					// アンカーのハッシュとロケーションハッシュが同じなら上部へスクロールする
					if ( this.hash === location.hash ) {
						
					}
					location.hash = this.hash;
					return false;
				});
		});
	}// end $.fn.linkChange()
	
	
	//コンテンツ中央処理、アニメーション関数群
	function contentsCenter(str, f) {
		var left = Math.floor(($(window).width() - _mainContentsWrapper.width()) / 2);
		var top  = Math.floor(($(window).height() - contentsHeight) / 2 - 30);
		//ローディングのID
		var _loading = $('p#loading');

		if (str == 'anime') {
			_mainContentsWrapper
			.css({
				"top": top,
				"left": -_mainContentsWrapper.width(),
				"height": contentsHeight,
				"display": "block"
			})
			.delay(200)
			.animate({
					"left": left
				  }, 1500, function () {
						_mainContentsWrapper.html(_containerContents);
						_loading.remove();
					});
		} else if (str == 'anime2') {
			_mainContentsWrapper.html(_containerContents)
			.css({
				"top": top,
				"left": left
			});
			_loading.remove();
		} else if (str == 'realtive') {
			_mainContentsWrapper
			.css({
				"top": top,
				"left": left
			});			
		}

	};// end contentsCenter()
	
	
	
	// ページ遷移
	function pageMove(url) {
		$.ajax({
			type: 'GET',
			dataType: 'html',
			url: url,
			cache: false,
			beforeSend : function () {
				_mainNav.append('<p id="loading"><img src="/renew_images/common/loading.gif" alt="loading" /></p>');
			},
			error: function(XMLHttpRequest, textStatus, errorThrown) {
				if ( textStatus === 'error' ) {
					alert('リクエストされたページは存在しないためサイトトップページへ移動します');
					$('#mainContentsWrapper').html('').css('height', 0);
					location.href = domain;
				}
			},
			success: function(html, textStatus, xhr) {
				if (xhr.status == 200) {
					/*
					if ( _gaq ) {
					_gaq.push(['_trackPageview', url]);
					}
					*/					
					
					// 受け取ったHTMLの整理, script要素などを削除
					html = html.replace(/<script(?:[ \t\r\n][^>]*)?>[\S\s]*?<\/script[ \t\r\n]*>|<\/?(?:html|script|object)(?:[ \t\r\n][^<>]*)?>/gi, '');

					var _htmlWrap = $('<div>' + html + '</div>');

					//var _div = $(html);

					// titleを置き換えるための取得
					//var title = html.match(/\<title\>([^\<]+)\<\/title\>/) ? RegExp.$1 : '';

					var _title = _htmlWrap.find('title').html();

					// titleの置き換え
					try {
						$('title').html(_title);
					} catch(e) {}

					//コンテンツ内容
					_containerContents = _htmlWrap.find('#mainContents');
					_containerContents.find('a[target != "_blank"]:not([href*=#])').linkChange();

					//背景
					var _containerImage = _htmlWrap.find('#bgmaximage img');
					
					//ページ遷移
					if (_maximage.attr('src') == _containerImage.attr('src')) {
						//背景画像が変わらない時の処理						
						contentsCenter('anime2');
					} else {
						_maximage.attr('src', _containerImage.attr('src'));
						_maximage.css({"opacity": 0});
						if (url == '/' || url == domain) {
							//TOPページへの移動の処理
							_mainContentsWrapper.html('').css('height', 0);
							
							_bodyWrapper
								.append(_htmlWrap.find('#newsBox'))
								.append(_htmlWrap.find('#bnrBox'));	
							
							$('#bnrBoxInner').innerfade({
								speed: bnrSpeed,
								timeout: bnrTimeout,
								type: 'sequence',
								containerheight: '462px'
							});
							
							$('#newsBox')
								.css({"opacity": 0})
								.animate({"opacity": 1}, 2000 );
							
							$('#bnrBoxInner').find('ul')
								.css({"opacity": 0})
								.animate({"opacity": 1}, 3000, function() {
									$('p#loading').remove();}
								);							
							
							
							
	
						} else {
							_mainContentsWrapper.html('');
							$('#newsBox').remove();
							$('#bnrBox').remove();
							contentsCenter('anime');						
						}
					}					
					
				};



			}
		});



	};
	
	$(document).ajaxComplete(function(event, xhr, settings) {
		_maximage
			.animate({"opacity": 1}, 1500 );		
	});
