/* Rollover */

jQuery.fn.rollover = function(overSuffix){
		
	var setEvent = function(eventSrcElem){
		var changeState = function(state){
			var targets = $(eventSrcElem).data("targetElem.rollover");
			if(targets[0].src){
				$.each(targets,function(i,v){
					v.src = $(v).data("altSrc.rollover")[state];
				});
			}
			else{
				targets[0].style.backgroundImage = targets[0].data("altSrc.rollover")[state];
			}
		}
		
		var rollOver = function(){changeState("over")};
		var rollUp = function(){changeState("org")};
		
		$(eventSrcElem).bind("mouseout.rollover,blur.rollover",rollUp);
		
		if(overSuffix){
			$(eventSrcElem).bind("mouseover.rollover,focus.rollover",rollOver);
		}
	};
	
	return this.each(function(){
		var self = $(this);
		var orgSrc = "";
		var EVT_SETTING_FLG = false;
		
		if(self.is("img,:image")){
			orgSrc = this.src;
		}
		else if(self.css("background-image")!="none"){
			orgSrc = this.style.backgroundImage;
		}
		
		self.data("altSrc.rollover",{"org":orgSrc});
		if(overSuffix){
			new Image().src = self.data("altSrc.rollover").over = orgSrc.replace(/\.[^\.]+?$/,function($0){ return(overSuffix + $0)});
		}
		
		if(self.is("img")){
			var eventSrcElem = self.parents("a");
			if(eventSrcElem.data("targetElem.rollover")){
				eventSrcElem.data("targetElem.rollover").push(this);
			}
			else{
				eventSrcElem.data("targetElem.rollover",[this]);
			}
			setEvent(eventSrcElem[0]);
			EVT_SETTING_FLG = true;
		}
		
		if((self.is("img")&&!EVT_SETTING_FLG)||self.is(":image")||self.css("background-image")!="none"){
			$(this).data("targetElem.rollover",[this]);
			setEvent(this);
		}
	});
}

/* SNS Buttons */

jQuery.fn.socialPost = function(param){

	//var snsList = ["twitter","mixi","facebook","hatebu"];
	var snsList = ["twitter","facebook","hatebu"];
	
	var postFunc = {
		twitter: function (posturl,txt, hashTag){
			//return 'http://twitter.com/home?status=' + encodeURIComponent(txt) + ' ' +  encodeURIComponent(posturl) + ' '+ '%23TTTF';
			return 'http://twitter.com/share?url='+encodeURIComponent(posturl)+'&text='+encodeURIComponent(txt)+' '+'%23TTTF';
		},
		facebook: function (posturl,txt){
			return  'http://www.facebook.com/sharer.php?u=' + encodeURIComponent(posturl)+'&t=' + encodeURIComponent(txt);
		},
		hatebu: function postHb(posturl){
			return  'http://b.hatena.ne.jp/add?url=' + encodeURIComponent(posturl);
		},
		/*
		mixi: function (posturl){
			if(typeof param == 'object'){
				return 'http://mixi.jp/share.pl?u=' + encodeURIComponent(posturl) + '&k=' + param.mixiKey;
			}else{
				return false;
			}
		},
		*/
		fbLike: function(posturl) {
			return 'http://www.facebook.com/plugins/like.php?href=' + encodeURIComponent(posturl) + "&layout=button_count&amp;show_faces=true&amp;width=120&amp;action=like&amp;font&amp;colorscheme=light&amp;height=22";
		}
	}
	
	this.each(function(){
		
		var elem = $(this);
		var postMessage;
		var postURL;
		if(elem.find("input").length){
			postMessage = elem.find('.postMessage').val();
			postURL = elem.find('.postURL').val();
		}
		else{
			postMessage = document.title;
			postURL = document.URL;
		}
		
		elem.append("<ul class='clearfix'></ul>");
		
		for(var i=0; i<snsList.length; i++){
			elem.find("ul").append("<li><a href='' class='"+snsList[i]+"'>"+snsList[i]+"</a></li>");
		}

		var links = elem.find('a');
		$(links).each(function(i,obj){
			var obj = $(obj);
			var classNameValue = obj.attr('class');
			if(postFunc[classNameValue] && postFunc[classNameValue](postURL,postMessage)){
				obj
					.attr('href',postFunc[classNameValue](postURL,postMessage))
					.attr('target','_blank')
					.unbind('click.socialPost')
					.bind('click.socialPost',function(){
						window.open(postFunc[classNameValue](postURL,postMessage),"_blank");
						return false;
					})
			}
		});
		
		elem.find("ul").append("<li class='fbLike'></li>");
		//elem.append("<div class='fbLike'></div>");
		elem.find(".fbLike").append("<iframe src='' scrolling='no' frameborder='0' style='border:none; overflow:hidden; width:120px; height:21px;' allowTransparency='true'></iframe>");
		elem.find('iframe').attr('src',postFunc["fbLike"](postURL));
		
	});
	
	return this;
};


/* Blur Function */

jQuery.fn.blurFunc = function(str,col1,col2) {
	$(this)
		.val(str)
		.css("color",col1)
		.one("focus",function(){
			$(this)
				.val("")
				.css("color",col2);
		})
		.blur(function(){
			if($(this).val()==""){
				$(this)
					.val(str)
					.css("color",col1)
					.one("focus",function(){
						$(this)
							.val("")
							.css("color",col2);
					})
			}
		})
}


/* Current Navigation */


jQuery.fn.currentNav = function() {
	var path = window.location.href;
	this.each(function(){
		var self = $(this);
		var href = self.attr("href");
		if(RegExp(href).test(path)){
			self.wrap("<strong></strong>");
		}
	});
};

















