/*============================================================================ 
jquery.function.js

============================================================================ */

/**********************************************************
setClassBtn
--------
指定の要素のclass属性に"btn"を設定
@param / @return
**********************************************************/
function setClassBtn() {
	$("ul#navGlobal li img, ul#navAssist li img, ul#navFooter li img, .setButton img, .setButton input").each(function() {
		$(this).addClass("btn");
	});
}


/**********************************************************
setExternal
--------
別窓_blankでウィンドウ開く
a要素のclass属性に"external"を指定
@param / @return
**********************************************************/
function setExternal() {
	$("a.external").click(function() {
		window.open(this.href, '_blank');
		return false;
	});	
}


/**********************************************************
initRollOverImages
--------
マウスオーバーで画像を切換
@param / @return
**********************************************************/
function initRollOverImages() {
	var image_cache = new Object();
	$("a img.btn,input[type=image].btn").not("[src*='_o.'],[src*='_d.']").each(function(i) {
		var imgsrc = this.src.replace('_o.', '.');
		var dot = imgsrc.lastIndexOf('.');
		var imgsrc_on = imgsrc.substr(0, dot) + '_o' + imgsrc.substr(dot, 4);
		image_cache[this.src] = new Image();
		image_cache[this.src].src = imgsrc_on;
		$(this).hover(
			function() { this.src = imgsrc_on; },
			function() {
				if (! $(this).parent('a').hasClass('liveTab')) {
					this.src = imgsrc;
					this.src = imgsrc;
				}
			}
		);
	});
}


/**********************************************************
pageScroll
--------
ページをスムーズにスクロール（ href属性値が#で始まるものが対象 ）
@param / @return
**********************************************************/
function pageScroll() {
	$("a[href*=#]").click(function() {
		if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
			var $target = $(this.hash);
			$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
			if ($target.length) {
				var targetOffset = $target.offset().top;
				$('html,body').animate({scrollTop: targetOffset}, 500);
				return false;
			}
		}
	});
}







/**********************************************************
tabInit
--------
タブで表示を切り替え
**********************************************************/
$.fn.tab = function(){
		var unitMain = $(".unitMain");
		var unitItemAry = $(".unitTab .unitItem");
		var unitItemNav = $("ul.tab li");
		
		unitItemNav.each(function(){
			$(this).click(function(){
				var a = $(this).find("a");
				var img = $(this).find("a > img");
				
				if(a.attr('class')!='liveTab'){
					unitItemNav.each(function(){
						var img = $(this).find("a > img");
						var offSrc = img.attr("src").replace("_o.gif",'.gif');
						img.attr('src',offSrc);
					})
					var onSrc = img.attr("src").replace(".gif",'_o.gif');
					img.attr('src',onSrc);
					unitItemNav.find("a").removeClass('liveTab');
					
					a.attr('class','liveTab');
				}
				
				var t = $(this).find("a").attr("title");
				$(".unitMain div[title!='" + t + "']").css({ display : "none" });
				$(".unitMain div[title='" + t + "']").css({display:"block"});
				$(".unitMain div[title='" + t + "'] div").css({display:"block"});
			})
		});
		
		unitItemAry.each(function(){
			$(this).css({ display :"none"});
			$(this).attr({"title":unitItemAry.index(this)+1});
		});
		$(unitItemAry[0]).css({display:"block"})
		//alert(unitItemAry.length);
	
	return this;
}

function initTab() {
	$(".unitMain").tab();
}

/**********************************************************
initPlaceholder
--------
プレースホルダー
**********************************************************/
$.fn.placeholder = function(){
if(!$('.placeholder').length) return;
$('.placeholder').each(function ()
{
    (function ( elm )
    {
        // placeholder時の文字色を設定
        var defaultColor    = 'silver';
        
        // title属性をplaceholder用の文字列として保持
        $.data(elm, 'placeholder-string', $(elm).attr('title'));
        // 元の文字色を保持 => 入力があったら戻します
        $.data(elm, 'placeholder-color', $(elm).css('color'));
        switch ( $(elm).val() ) {
            case '' :
                $(elm).val($.data(elm, 'placeholder-string'));
            case $.data(elm, 'placeholder-string') :
                $(elm).css('color', defaultColor);
            break;
        }
        // フォーカスされたときに、placeholderを消して色を戻す
        $(elm).focus(function ( )
        {
            if ( $(this).val() == $.data(this, 'placeholder-string') ) {
                $(this).val('');
                $(this).css('color', $.data(this, 'placeholder-color'));
            }
        });
        // フォーカスが外れたときに、valueがカラならplaceholderを代入
        $(elm).blur(function ( )
        {
            if ( $(this).val() == '' ) {
                $(this).val($.data(this, 'placeholder-string'));
                $(this).css('color', defaultColor);
            }
        });
        // フォームのsubmit時に、placeholderのままなら消してから送る
        $(elm).parents().filter('form').submit(function ( )
        {
            if ( $(elm).val() == $.data(elm, 'placeholder-string') ) {
                $(elm).val('');
            }
            return true;
        });
    })( this )
});
}

function initPlaceholder() {
	$(document).placeholder();
}


/**********************************************************
stripe
--------
テーブルのストライプ
**********************************************************/

$.fn.stripe = function() {
		var element = $('body');

		_stripe(element.find('table.striped'));
		_stripe(element.find('ul.striped'));

		return this;

		function _stripe(element) {
			if (!element.length) return;
			var tag;
			switch (element[0].tagName.toLowerCase()) {
			case 'table':
				tag = 'tr';
				break;
			case 'ul':
				tag = 'li';
				break;
			}
			
			if (!tag) return;
			element
				.find(tag+':even').removeClass('even').addClass('odd').end()
				.find(tag+':odd').removeClass('odd').addClass('even');
	}
}
	
function stripe() {
	$(document).stripe();
}
/**********************************************************
実行処理
**********************************************************/
$(function(){
	setClassBtn();
	initRollOverImages();
	pageScroll();
	setExternal();
	stripe();
	initTab();
	initPlaceholder();
    $('#navAssist').droppy();
})
