/* ---------------------------------------------------------------

	FUNCTION.JS 

--------------------------------------------------------------- */
/*
	EXTEND LIBRARY
*/

jQuery.extend();
jQuery.fn.extend();

/* import.cssの出現箇所 */
var masterCSS = document.styleSheets[0];

var rootPath = function(){
	return jQuery('script#coreJS')[0].src.split('Scripts')[0];
}

/*
	AUTOMATION
*/


//function currentPage(id){
//	if($("#"+id).attr('src')){
//		var src = $("#"+id).attr('src');
//		var ftype = src.substring(src.lastIndexOf('.'), src.length);
//		var hsrc = src.replace(ftype, '_ov'+ftype);
//		$("#"+id).attr('src', hsrc);
//	}
//	initRollOvers();
//}

//FUNCTION initRollOvers
function initRollOvers(){

	if(!document.getElementById) return;
	
	var preImgArr = new Array();

	$('img.ahover').each(function(){
		
		//alert($('body')[0].id);
		//alert($(this).attr('id'));
		//if ($('body')[0].id == $(this).id)
		//if ($('body')[0].id == $(this).attr('id'))
		//if ($('body')[0].id == $(this).attr('id') && $('body')[0].id != "" && $(this).attr('id') != "")
		if ($('body')[0].id && $(this).attr('id') && $('body')[0].id == $(this).attr('id'))
		{
			if($(this).attr('src')){
				var src = $(this).attr('src');
				var ftype = src.substring(src.lastIndexOf('.'), src.length);
				var hsrc = src.replace(ftype, '_ov'+ftype);
				$(this).attr('src', hsrc);
			}
		}	
		
		var src = $(this).attr('src');
		var isov = src.substring(0,src.lastIndexOf('.'));
		if( isov.substring(isov.length-3, isov.length) != "_ov"
		 && isov.substring(isov.length-3, isov.length) != "_on"
		 && isov.substring(isov.length-4, isov.length) != "_off"
		){
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_ov'+ftype);
			var dsrc = src;
			$(this).attr('hsrc', hsrc);
			$(this).attr('dsrc', dsrc);

			preImgArr.push(new Image());
			preImgArr[preImgArr.length-1].src = hsrc;

			$(this).bind('mouseover', function(e){
				$(this).attr('src', $(this).attr('hsrc'));
				enablePNG (this);
			});

			$(this).bind('mouseout', function(e){
				$(this).attr('src', $(this).attr('dsrc'));
				enablePNG (this);
			});

			if ($.browser.safari) {
				$(this).bind('click', function(e){
					$(this).attr('src', $(this).attr('dsrc'));
					enablePNG (this);
				});
			}
		}
	});
}


////FUNCTION initRollOvers
//function initRollOvers(){
//
//	if(!document.getElementById) return;
//
//	var preImgArr = new Array();
//
//	$('img.ahover').each(function(){
//		var src = $(this).attr('src');
//		var isov = src.substring(0,src.lastIndexOf('.'));
//		if( isov.substring(isov.length-3, isov.length) != "_ov"
//		 && isov.substring(isov.length-3, isov.length) != "_on"
//		 && isov.substring(isov.length-4, isov.length) != "_off"
//		){
//			var ftype = src.substring(src.lastIndexOf('.'), src.length);
//			var hsrc = src.replace(ftype, '_ov'+ftype);
//			var dsrc = src;
//			$(this).attr('hsrc', hsrc);
//			$(this).attr('dsrc', dsrc);
//
//			preImgArr.push(new Image());
//			preImgArr[preImgArr.length-1].src = hsrc;
//
//			$(this).bind('mouseover', function(e){
//				$(this).attr('src', $(this).attr('hsrc'));
//				enablePNG (this);
//			});
//
//			$(this).bind('mouseout', function(e){
//				$(this).attr('src', $(this).attr('dsrc'));
//				enablePNG (this);
//			});
//
//			if ($.browser.safari) {
//				$(this).bind('click', function(e){
//					$(this).attr('src', $(this).attr('dsrc'));
//					enablePNG (this);
//				});
//			}
//		}
//	});
//}

//FUNCTION enableFlash (for IE6.5+ on winXP SP2 KB912945)
function enableFlash(){
	if(jQuery.browser.msie) {
		jQuery('object, applet, embed').each(function () {
			this.removeAttribute('data');
			this.outerHTML += "";
		});
	}
}



//FUNCTION enablePNG
function enablePNG (obj) {
	if(jQuery.browser.msie && jQuery.browser.version == 6.0){
		if(obj && /\.png/.test(obj.src)) {
			var imgSource = obj.src;
			obj.src = rootPath()+'img/common/space.gif';
			obj.style.filter = 
				'progid:' +
				'DXImageTransform.Microsoft.AlphaImageLoader' +
				'(src="' + imgSource + '",' +
				'sizingMethod="scale")';
		}else{
			jQuery('img[@src*=png]').each(function () {
				var imgSource = this.src;
				this.src = rootPath()+'img/common/space.gif';
				this.style.filter = 
					'progid:' +
					'DXImageTransform.Microsoft.AlphaImageLoader' +
					'(src="' + imgSource + '",' +
					'sizingMethod="scale")';
			});
		}
	}
}

//FUNCTION enableCSSPNG
function enableCSSPNG (){
	if(jQuery.browser.msie){
		var styleSheets = masterCSS.imports;
//var styleSheets = document.styleSheets.length;
//alert(styleSheets.length);
		//for (var i = 0; i < styleSheets.length; i++) {
		for (var i in styleSheets) {
			var styleSheet = styleSheets[i];
			var rules = styleSheet.rules || styleSheet.cssRules;
			//for (var j = 0; j < rules.length; j++) {
			for (var j in rules) {
				var rule = rules[j];
				var styles = rule.style;
				for (var property in styles) {
					var val = styles[property];
					if( !/png/.test(val) || !/backgroundImage/.test(property) ) continue;
					var regEx = new RegExp("[\.\.\/\]+(([^\"\'\'\"\)]*)\)","");
					var reg = val.match(regEx);
					var imgSrc = RegExp.$1;
					var filter = '' +
							'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' +
							rootPath() + imgSrc +
							'", sizingMethod="crop");';
					styleSheet.addRule(rule.selectorText, "background-image:none");
					styleSheet.addRule(rule.selectorText, filter);
				}
			}
		}
	}
}

//FUNCTION cssBrowserSelector
var cssBrowserSelector = function() {
	var
	ua = navigator.userAgent.toLowerCase(),
	is = function(t){ return ua.indexOf(t) != -1; },
	h = jQuery('body')[0],
	b =	(!(/opera|webtv/i.test(ua)) && /msie (\d)/.test(ua)) ? ('ie ie'+RegExp.$1)
			: is('gecko/') ? 'gecko'
			: is('opera/9') ? 'opera opera9'
			: /opera (\d)/.test(ua) ? 'opera opera'+RegExp.$1
			: is('konqueror') ? 'konqueror'
			: is('applewebkit/') ? 'webkit safari'
			: is('mozilla/') ? 'gecko'
			: '',
	o= (is('x11')||is('linux')) ?' linux'
			:is('mac') ? ' mac'
			:is('win') ? ' win'
			:'';
	var c = b+o+' js';
	h.className += h.className? ' '+c : c;
};

//FUNCTION smoothScroll
var actX;
var actY;
var tarY = 0;
var tarX = 0;
var scrollInt;
var smoothScroll = function () {
	
	//var s = "http://axel-server.com/search/branch.php?type";
	//thisUrl = location.href.replace("\?.*", "");
	//thisUrl = s.replace(/.+/, "");
	// 下記のmatch処理でクエスチョンマークがあるとmatchしなくなるためクエリ文字列を消去しておく
	thisUrl = location.href.replace(/\?.*/, "");
	//alert(thisUrl);
	
	// match演算の際にクエスチョンマークがあると正しく動作しないためここで削除しておく
	//alert(location.search);
	//alert('http://axel-server.com/search/branch.php?type=1&keyword=%97%A7%8B%B3&x=29&y=11#pageTop'.match('http://axel-server.com/search/branch.php?type'));
	jQuery('a').each(function(){
//		var anc = this.href.split('#')[1];
//		alert("in smoothScroll 0 this.href = " + this.href + " anc = " + anc + "/#/.test(this.href) = " + /#/.test(this.href));
//		if( /#/.test(this.href)  && this.href.match(location.href) && jQuery('#'+anc)[0] ){
//			this.href="javascript:void(0);";
//			jQuery(this).bind('click', function  (){
//				tarX = (jQuery(document).width() > jQuery('#'+anc).position().left + jQuery(window).width())
//					? jQuery('#'+anc).position().left
//					: jQuery(document).width() - jQuery(window).width();
//				tarY = (jQuery(document).height() > jQuery('#'+anc).position().top + jQuery(window).height())
//					? jQuery('#'+anc).position().top
//					: jQuery(document).height() - jQuery(window).height();
//			  actX = jQuery(document).scrollLeft();
//			  actY = jQuery(document).scrollTop();
//				clearInterval(scrollInt);
//				scrollInt = setInterval('setScroll()', 20);
//			});
//		}
		var anc = this.href.split('#')[1] ? '#' + this.href.split('#')[1] : '#pageTop';
//		alert("in smoothScroll 0\n" + 
//				"this.href = " + this.href + "\n" +
//				"location.href = " + location.href + "\n" +
//				"this.href.match(location.href) = " + this.href.match(location.href));
		//if( /#/.test(this.href)  && this.href.match(location.href) && jQuery(anc)[0] ){
		if( /#/.test(this.href)  && this.href.match(thisUrl) && jQuery(anc)[0] ){
			//alert("match !");
			this.href="javascript:void(0);";
			jQuery(this).bind('click', function  (){
				tarX = (jQuery(document).width() > jQuery(anc).position().left + jQuery(window).width())
					? jQuery(anc).position().left
					: jQuery(document).width() - jQuery(window).width();
				tarY = (jQuery(document).height() > jQuery(anc).position().top + jQuery(window).height())
					? jQuery(anc).position().top
					: jQuery(document).height() - jQuery(window).height();
			  actX = jQuery(document).scrollLeft();
			  actY = jQuery(document).scrollTop();
				clearInterval(scrollInt);
				scrollInt = setInterval('setScroll()', 20);
			});
		}
	});
	jQuery('area').each(function(){
		var anc = this.href.split('#')[1];
		//if( /#/.test(this.href)  && this.href.match(location.href) && jQuery('#'+anc)[0] ){
		if( /#/.test(this.href)  && this.href.match(thisUrl) && jQuery('#'+anc)[0] ){
			this.href="javascript:void(0);";
			jQuery(this).bind('click', function  (){
				tarX = (jQuery(document).width() > jQuery('#'+anc).position().left + jQuery(window).width())
					? jQuery('#'+anc).position().left
					: jQuery(document).width() - jQuery(window).width();
				tarY = (jQuery(document).height() > jQuery('#'+anc).position().top + jQuery(window).height())
					? jQuery('#'+anc).position().top
					: jQuery(document).height() - jQuery(window).height();
			  actX = jQuery(document).scrollLeft();
			  actY = jQuery(document).scrollTop();
				clearInterval(scrollInt);
				scrollInt = setInterval('setScroll()', 20);
			});
		}
	});
}

function setScroll(){
	actY += (tarY - actY) / 6;
	actX += (tarX - actX) / 6;
	if(Math.abs(tarX - actX) < 2 && Math.abs(tarY - actY) < 2){
		clearInterval(scrollInt);
	}
	scrollTo( Math.round(actX), Math.round(actY));
}

function blankToPop () {
	jQuery('a.commonPop').each(function(){
		$(this).removeAttr("target");
		$(this).attr('popURL', this.href);
		( $(this).attr("rel") ? "" : $(this).attr("rel","") );
		this.href = "javascript:;";
		$(this).click(function () {
			eval("commonPop('"+$(this).attr("popURL")+"',"+$(this).attr("rel")+")");
		});
	});
}


/*
	USER FUNCTION
*/

//FUNCTION commonPop
//pFile = popup File
//pWidth = popup Width [optional]
//pHeight = popup Height [optional]
//pStatus = popup Features[optional]

function commonPop(pFile, pWidth, pHeight,pStatus){
	//var fName = pFile.substring(pFile.lastIndexOf('/')+1, pFile.length);
	var wName = "";
	if(pWidth == null){ pWidth = 700}
	if(pHeight == null){ pHeight = 600}
	if(pStatus == null){ pStatus = 'yes';}
	if(pWidth > screen.availWidth){
		pWidth = screen.availWidth;
		pStatus = 'yes';
	}
	if(pHeight > screen.availHeight-50){
		pHeight = screen.availHeight-50;
		pStatus = 'yes';
	}
	var wFeatures= 'menubar=no,scrollbars='+pStatus+',resizable='+pStatus+',width='+pWidth+',height='+pHeight;
	void(window.open(pFile, wName, wFeatures));
}

//FUNCTION moveOpener
//pFile = file
function moveOpener(pFile){
	if(opener){
		void(opener.location.href = pFile);
	}else{
		void(document.location.href = pFile);
	}
}

//FUNCTION AS externalInterface
function AS (str) {
	if(jQuery.browser.msie){
		return window[str];
	}else{
		return document[str];
	}
}


//FUNCTION blankLogToGoogle
function blankLogToGoogle (str) {
	jQuery("a[target='_blank']").each(function(){
		var expr = new RegExp("(.*)://(/?)(.*?)/");
		var h = this.href;
		var hArr = h.match(expr);
		var l = location.href;
		var lArr = l.match(expr);
		if(hArr[0] != lArr[0]) {
			var str = h.replace(/\?/g, "%3F");
			$(this).click(
				function(){ pageTracker._trackPageview('/blank/?'+str) }
			);
		}
	})
}


// トレース
function trace(obj){
	var str = '';
	$.each(obj, function(key,val){
		str += key+':'+val+'\n';
	});
	alert(str);
}
/*
function trace(obj){
	var str = '';
	for(var key in obj){
		str += key+':'+obj[key]+'\n';
	}
	alert(str);
}
*/



// プリント
$(document).ready(function(){
	$('#doPrint').click(function(e) {
//	e.preventDefault();
	window.print();
	});
});



