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

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


/**********************************************************
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;
		var dot = this.src.lastIndexOf('.');
		var imgsrc_on = this.src.substr(0, dot) + '_o' + this.src.substr(dot, 4);
		image_cache[this.src] = new Image();
		image_cache[this.src].src = imgsrc_on;
		$(this).hover(
			function() { this.src = imgsrc_on; },
			function() { 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;
			}
		}
	});
}


/**********************************************************
setTarget
--------
ブロック要素全体をリンクエリアに
@param / @return
**********************************************************/
function setTarget() {
    var hoverClass = 'over';
    var clickArea  = '.clickTarget';
    $('div.photo a').each(function() {
        var $self = $(this);
        $self.parents(clickArea)
            .hover(
                function() { $(this).addClass(hoverClass); },
                function() { $(this).removeClass(hoverClass); }
            )
            .click(function() {
                window.location = $self.attr('href');
            })
        ;
    });
}

/**********************************************************
initPlaceholder
--------
プレースホルダ初期化
@param / @return
**********************************************************/
function initPlaceholder() {
  $(function(){
  	var changePlaceHolder;
  	var clearTimer;
  	var count = 30;
    $(':text[title],textarea[title]').each(changePlaceHolder = function(){
      if ($(this).val() == $(this).attr('title')) {
        $(this).val('');
      }
      $(this).placeholder({
        word: $(this).attr('title'),
        styleClass: 'placeholder'
      });
    });
    
    setTimeout(function(){
    	clearTimer = setInterval(function(){
    		if ( count <= 0 ) {
    			clearInterval(clearTimer);
    		} else {
    			$(':text[title],textarea[title]').each(function(){
                  if ( $(this).val().match(/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/) ) {
                    $(this).removeClass('placeholder');
                    clearInterval(clearTimer);
                  }
    			});
    		}
    		count--;
    	}, 500);
    }, 0 );
  });
}

/**********************************************************
実行処理
**********************************************************/
$(document).ready(setClassBtn);
$(document).ready(initRollOverImages);
$(document).ready(pageScroll);
$(document).ready(setTarget);
$(document).ready(initPlaceholder);
