/** 1.3.2,1.3.2min
 * jQuery.画像のロールオーバー
 *
 * @version  1.0.2
 * @author   rew <rewish.org@gmail.com>
 * @link     http://rewish.org/javascript/jquery_rollover_plugin
 * @license  http://rewish.org/license/mit The MIT License
 * Inspired by:
 * Telepath Labs (http://dev.telepath.co.jp/labs/article.php?id=15)
 * Usage:
 * jQuery(document).ready(function($) {
 *   // <img>
 *   $('#nav a img').rollover();
 *
 *   // <input type="image">
 *   $('form input:image').rollover();
 *
 *   // set suffix
 *   $('#nav a img').rollover('_over');
 * });
 */

jQuery.fn.rollover = function(suffix) {
	suffix = suffix || '_on';
	return this.not('[src*="'+ suffix +'."]').each(function() {
		var img = jQuery(this);
		var src = img.attr('src');
		var _on = [
			src.substr(0, src.lastIndexOf('.')),
			src.substring(src.lastIndexOf('.'))
		].join(suffix);
		jQuery('<img>').attr('src', _on);
		img.hover(
			function() { img.attr('src', _on); },
			function() { img.attr('src', src); }
		);
	});
};

//config
jQuery(document).ready(function($) {
   // input type="image"
   // $('form input:image').rollover('');
   // set suffix
    $('.rollover a img').rollover('');
 });
//config-end


/**
 * 開閉
 * opening
 * ("slow") ("normal") ("fast") (1500)
 */
jQuery(document).ready(function() {
  jQuery(".opening").hover(function(){
        jQuery(this).css("cursor","pointer");
  });
  jQuery(".opening").click(function(){
    jQuery(this).next().slideToggle("fast");
  });
});


/** 1.3.2,1.3.2min
 * 検索窓
 * 非フォーカス時にヒントの表示されるテキストボックス
 */
jQuery(document).ready(function(){
    jQuery('#s')
        .blur(function(){
          var $$=jQuery(this);
          if($$.val()=='' || $$.val()==$$.attr('title')){
            $$.css('color', '#999')
              .val($$.attr('title'));
          }
        })
        .focus(function(){
          var $$=jQuery(this);
          if($$.val()==$$.attr('title')){
              jQuery(this).css('color', '#000')
                   .val('');
          }
        })
        .parents('form:first').submit(function(){
          var $$=jQuery('#s');
          if($$.val()==$$.attr('title')){
            $$.triggerHandler('focus');
          }
        }).end()
        .blur();
      });


/** 1.3.2,1.3.2min
 * jQuery.divの範囲までリンク
 *
 * BiggerLink v2.0.1
 * http://www.ollicle.com/eg/jquery/biggerlink/
 * Copyright (c) 2009 Oliver Boermans
 * http://creativecommons.org/licenses/MIT/
 */

(function(jQuery) {
    jQuery.fn.biggerlink = function(options) {

        // Default settings
        var settings = {
            biggerclass:'bigger', 	// class added to the first contained link and others that trigger it
            hoverclass:'hover', 		// class added to parent element on hover/focus
            hoverclass2:'hover2', 	// class added to parent element on hover/focus of other links
            clickableclass:'hot', 	// class added to parent element with behaviour
            otherstriggermaster: true,	// will all links in containing biggerlink element trigger the first link
            follow: 'auto'				// follow master link on click? : 'auto',true,false
        };
        if(options) {
            jQuery.extend(settings, options);
        }
        jQuery(this).filter(function(){
             return jQuery('a',this).length > 0;

        }).addClass(settings.clickableclass).css('cursor', 'pointer').each(function(i){

            // store element references
            var big = jQuery(this).data('biggerlink',{hovered:false,focused:false,hovered2:false,focused2:false});
            var links = {
                all: jQuery('a',this),
                big: jQuery(this),
                master: jQuery('a:first',this).data('biggerlink',{status:'master'}).addClass(settings.biggerclass),
                other: jQuery('a',this).not(jQuery('a:first',this)).data('biggerlink',{status:'other'})
            };


            jQuery('a',this).andSelf().each(function(){
                var newdata = jQuery.extend(jQuery(this).data('biggerlink'),links);
                jQuery(this).data('biggerlink',newdata);
            });



            // Add title of first link with title to parent if not already set
            var thistitle = big.attr('title');
            var newtitle = big.data('biggerlink').master.attr('title');
            if(newtitle && !thistitle)
            {
                big.attr('title', newtitle);
            }



        // events on biggerlink element

        big
            .mouseover(function(event){
                window.status = jQuery(this).data('biggerlink').master.get(0).href;
                jQuery(this).addClass(settings.hoverclass);
                jQuery(this).data('biggerlink').hovered = true;
            })
            .mouseout(function(event){
                window.status = '';
                if(!jQuery(this).data('biggerlink').focused)
                {
                    jQuery(this).removeClass(settings.hoverclass);
                }
                jQuery(this).data('biggerlink').hovered = false;
            })
            .bind('click',function(event){

                // if clicked direct or non-link
                if(!jQuery(event.target).closest('a').length)
                {
                    jQuery(this).data('biggerlink').master.trigger({type:'click',source:'biggerlink'});
                    event.stopPropagation();
                }
            });



            // focus/blur

            links.all
            .bind('focus',function(){
                jQuery(this).data('biggerlink').big.addClass(settings.hoverclass);
                jQuery(this).data('biggerlink').big.data('biggerlink').focused = true;
            }).bind('blur',function(){
                if(!jQuery(this).data('biggerlink').big.data('biggerlink').hovered)
                {
                    jQuery(this).data('biggerlink').big.removeClass(settings.hoverclass);
                }
                jQuery(this).data('biggerlink').big.data('biggerlink').focused = false;
            });



            // click/focus/blur event on master (first) link within biggerlink

            links.master
            .bind('click',function(event){
                if(event.source == 'biggerlink')
                {
                    if(settings.follow === true || settings.follow == 'auto' && event.result !== false)
                    {
                        window.location = jQuery(this).attr('href');
                    }
                    else
                    {
                        event.stopPropagation();
                    }
                }
            });


            // links other than the first (master) link also within biggerlink

            // other links are independent
            if(settings.otherstriggermaster)
            {
                links.other.addClass(settings.biggerclass)
                .bind('click',function(event){
                    // trigger click events on master link instead
                    jQuery(this).data('biggerlink').master.trigger({type:'click',source:'biggerlink'});

                    // stop this link being followed
                    event.preventDefault();

                    // prevent events on parent elements being triggered
                    event.stopPropagation();
                });
            }

            // other links are slaves of master link
            else
            {
                links.other
                .bind('focus',function(){
                    jQuery(this).data('biggerlink').big.addClass(settings.hoverclass2);
                    jQuery(this).data('biggerlink').big.data('biggerlink').focused2 = true;
                })
                .bind('blur',function(){
                    if(!jQuery(this).data('biggerlink').big.data('biggerlink').hovered2)
                    {
                        jQuery(this).data('biggerlink').big.removeClass(settings.hoverclass2);
                    }
                    jQuery(this).data('biggerlink').big.data('biggerlink').focused2 = false;

                })
                .bind('mouseover',function(event){
                    jQuery(this).data('biggerlink').big.addClass(settings.hoverclass2);
                    jQuery(this).data('biggerlink').big.data('biggerlink').hovered2 = true;
                    event.stopPropagation();
                })
                .bind('mouseout',function(event){
                    if(!jQuery(this).data('biggerlink').big.data('biggerlink').focused2)
                    {
                        jQuery(this).data('biggerlink').big.removeClass(settings.hoverclass2);
                    }
                    jQuery(this).data('biggerlink').big.data('biggerlink').hovered2 = false;
                    event.stopPropagation();
                });

                if(!links.other.attr('title'))
                {
                    links.other.attr('title','');
                }
            }
        });
        return this;
    };
})(jQuery);

//config
jQuery(function(){
        jQuery('table.links td').biggerlink();
        jQuery('div.links tr').biggerlink();
        jQuery('div.links div').biggerlink();
    });
//config-end




//main_image//

jQuery(document).ready(function() {

	jQuery("#visual_menu li").click(function(){
		//Set Variables
		var imgSrc = jQuery(this).find('a').attr("rel");
		var imgLink = jQuery(this).find('a').attr("href");
		jQuery(".main_image img").attr({ src: imgSrc });
		jQuery(".main_image a").attr({ href: imgLink });

		return false;

	});

});


//ある要素の子のdiv要素を3個ずつ高さを揃える
/*
jquery.flatheights.js
Version: 2007-08-01
*/

/*
======================================================================
$.changeLetterSize.addHandler(func)
文字の大きさが変化した時に実行する処理を追加
======================================================================
*/

jQuery.changeLetterSize = {
handlers : [],
interval : 1000,
currentSize: 0
};

(function(jQuery) {

var self = jQuery.changeLetterSize;

/* 文字の大きさを確認するためのins要素 */
var ins = $('<ins>M</ins>').css({
	display: 'block',
	visibility: 'hidden',
	position: 'absolute',
	padding: '0',
	top: '0'
});

/* 文字の大きさが変わったか */
var isChanged = function() {
	ins.appendTo('body');
	var size = ins[0].offsetHeight;
	ins.remove();
	if (self.currentSize == size) return false;
	self.currentSize = size;
	return true;
};

/* 文書を読み込んだ時点で
   文字の大きさを確認しておく */
$(isChanged);

/* 文字の大きさが変わっていたら、
   handlers中の関数を順に実行 */
var observer = function() {
	if (!isChanged()) return;
	jQuery.each(self.handlers, function(i, handler) {
		handler();
	});
};

/* ハンドラを登録し、
   最初の登録であれば、定期処理を開始 */
self.addHandler = function(func) {
	self.handlers.push(func);
	if (self.handlers.length == 1) {
		setInterval(observer, self.interval);
	}
};

})(jQuery);

/*
======================================================================
$(expr).flatHeights()
$(expr)で選択した複数の要素について、それぞれ高さを
一番高いものに揃える
======================================================================
*/

(function(jQuery) {

/* 対象となる要素群の集合 */
var sets = [];

/* 高さ揃えの処理本体 */
var flatHeights = function(set) {
	var maxHeight = 0;
	set.each(function(){
		var height = this.offsetHeight;
		if (height > maxHeight) maxHeight = height;
	});
	set.css('height', maxHeight + 'px');
};

/* 要素群の高さを揃え、setsに追加 */
jQuery.fn.flatHeights = function() {
	if (this.length > 1) {
		flatHeights(this);
		sets.push(this);
	}
	return this;
};

/* 文字の大きさが変わった時に、
   setsに含まれる各要素群に対して高さ揃えを実行 */
jQuery.changeLetterSize.addHandler(function() {
	jQuery.each(sets, function() {
		this.height('auto');
		flatHeights(this);
	});
});

})(jQuery);

//config
jQuery(function(){
    /* div要素を3つずつの組に分ける */
    var sets = [], temp = [];

    jQuery('.recomendblock > div').each(function(i) {
        temp.push(this);
        if (i % 4 == 3) {
            sets.push(temp);
            temp = [];
        }
    });
    if (temp.length) sets.push(temp);

    /* 各組ごとに高さ揃え */
    jQuery.each(sets, function() {
    	jQuery(this).flatHeights();
    });
});

//config
jQuery(function(){
    /* div要素を3つずつの組に分ける */
    var sets = [], temp = [];
    jQuery('.whoboughtblock > div').each(function(i) {
        temp.push(this);
        if (i % 3 == 2) {
            sets.push(temp);
            temp = [];
        }
    });
    if (temp.length) sets.push(temp);

    /* 各組ごとに高さ揃え */
    jQuery.each(sets, function() {
    	jQuery(this).flatHeights();
    });
});



