// ロールオーバー
var suffix = {
	normal: "_off.",
	over: "_on."
};


var RolloverManager = function(){
	this.pool = [];
};
RolloverManager.prototype = {
	register: function(container){
		var set = new RolloverContainer(container);
		this.pool.push(set);
    }
};


var RolloverContainer = function(container){
	this.container = container;

	if(this.container.is("a"))
	{
		var target = this.container.find("img").eq(0);
		if(!target.size()) return;

	}else if(this.container.is("input"))
	{
		target = this.container
	};

	this.target = new RolloverImg(target);
	this.setEvents();
};
RolloverContainer.prototype = {
	setEvents: function(){
		var self = this;
		// bind("mouseover focus") というように、focus や blur を一緒に指定できる。


		this.container.bind("mouseover", function(){
			if(!self.target.flag) self.target.chgToOver();
		}).bind("mouseout", function(){
			// 元々 _on のやつには効かないようにするため。


			if(self.target.flag) self.target.chgToNormal();
		});
	}
};


var RolloverImg = function(target){
	this.target = target;
	this.flag = false;
	this.preload();
};
RolloverImg.prototype = {
	hasNormalSuffix: function(){
		return this.target.attr("src").indexOf(suffix.normal)!=-1 ? true : false;
	},
	hasOverSuffix: function(){
		return this.target.attr("src").indexOf(suffix.over)!=-1 ? true : false;
	},
	chgToOver: function(){
		if(!this.hasNormalSuffix()) return;
		this.target.attr("src", this.target.attr("src").replace(suffix.normal, suffix.over));
		this.flag = true;
	},
	chgToNormal: function(){
		if(!this.hasOverSuffix()) return;
		this.target.attr("src", this.target.attr("src").replace(suffix.over, suffix.normal));
		this.flag = false;
	},
	preload: function(){
		if(!this.hasNormalSuffix()) return;
		(new Image).src = this.target.attr("src").replace(suffix.normal, suffix.over);
	}
};



// 実行



$(function(){
	var rManager = new RolloverManager();
	var rollover = "#wUtil a, #wGM a, #menuCategory a, #wrapBody a, input:image, .hover";

	$(rollover).each(function(){
		rManager.register($(this));
	});

	// リンク
	$("a.blank").attr("target","_blank");

	$(".popup").click(function(){
		openWin(this.href ,'popup', 'width=700,height=700,toolbar=no,location=yes,status=no,menubar=no,scrollbars=yes,resizable=no');
		return false;
	})

//テキストフォーカス時のみ非表示
    jQuery.fn.extend({
        defaultText: function(text) {
            var jElem = $(this);
            //初期設定（値が空、textと同値の場合、textを代入）
            jElem.filter("[value=''],[value="+text+"]").css("color","#969696").val(text);
            jElem.focus(function(){  //フォーカス時
                jElem.filter("[value="+text+"]").val("").css("color","#000");
            });
            jElem.blur(function(){  //ブラー時
                jElem.filter("[value=''],[value="+text+"]").css("color","#969696").val(text);
            });
        }
    });
    $("input#search").defaultText('サイト内検索');
    $("input#goodsKeyword").defaultText('商品名を入力ください');
/*
		$("input#Search").val("サイト内検索")
		   .css("color","#969696");
		$("input#Search").focus(function(){
			if(this.value == "サイト内検索"){
				$(this).val("").css("color","#000");
			}
		});
		$("input#Search").blur(function(){
			if(this.value == ""){
				$(this).val("サイト内検索")
					 .css("color","#969696");
			}
			if(this.value != "サイト内検索"){
				$(this).css("color","#000");
			}
		});
		$("input#goodsKeyword").val("商品名を入力ください")
		   .css("color","#969696");
		$("input#goodsKeyword").focus(function(){
			if(this.value == "商品名を入力ください"){
				$(this).val("").css("color","#000");
			}
		});
		$("input#goodsKeyword").blur(function(){
			if(this.value == ""){
				$(this).val("商品名を入力ください")
					 .css("color","#969696");
			}
			if(this.value != "商品名を入力ください"){
				$(this).css("color","#000");
			}
		});
*/
});



// ポップアップ
function openWin(url,wname){
	var agent = navigator.userAgent.toLowerCase();
	var win = (agent.indexOf("windows") != -1);
	var opera = agent.indexOf("opera",0) != -1;
	var safari = agent.indexOf("safari") != -1;
	var ie = agent.indexOf("msie") != -1 && !opera;

	var w = 700;
	var h = 700;
	if(safari){h += 45;}
	if(win && ie){w += (scroll)? 16:0;h -= 19;}
	var str = 'width=' + w+ ',height=' + h;
		str += ',location=1,toolbar=1,menubar=0,scrollbars=1,resizable=1';
	swin = window.open(url,wname,'width=' + w + ',height=' + h + str);
	swin.focus();
}
 function openUniqueWin(url,wname,status){
	swin = window.open(url,wname,status);
	swin.focus();
}
