(function($){
/****************************************************************

version : 2010-08-16
author : takuya shimizu
copyright : imaging noias

****************************************************************/
/*_________________________________
set
---------------------------------*/
$.xGetNoias=function(key){
	var obj={
		"js_talk":"../wp-content/themes/pu-pi/js_talk.php"
	}
	return obj[key];
}
/*_________________________________
scroll target
---------------------------------*/
$.xScrollTarget=function(){
	var el;
	if($.browser.opera) el=$("html");
	else if($.touchAgent()) el=$(document);
	else el=$("html,body");
	return el
}
/*_________________________________
initial scroll
---------------------------------*/
$.xInitScroll=function(){
	var target=window.location.href.split("#")[1];
	if(target){
		var el=$.xScrollTarget();
		el.scrollTop(0);
		var nTop=$("#"+target).offset().top-20||0;
		el.animate({scrollTop:nTop},1000,'swing');
	}
}
/*_________________________________
mailadd
---------------------------------*/
$.xMailAdd=function(el,title,text){
	var mail_el=$(el);
	mail_el.css("visibility","hidden");
	$.post($.xGetNoias('js_talk'),{"escape_mail":true},function(data){
		mail_el.html(data).attr("href","mailto:"+mail_el.html()).css("visibility","visible");
		if(title) mail_el.attr("title",title);
		if(text) mail_el.text(text);
	});
}
/*_________________________________
trace
---------------------------------*/
$.trace=function(data){
	if(!!window.opera&&!window.console) console={log:opera.postError};
	try{
		window.console.log(data);
	}catch(e){
		
	}
}
/*_________________________________
ウィンドウサイズの取得
---------------------------------*/
$.xGetWindowSize = function(){
	var obj={width:0,height:0};
	if (window.innerHeight) obj={width:window.innerWidth,height:window.innerHeight};
	else if (document.documentElement && document.documentElement.clientHeight != 0) obj={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight};
	else if (document.body) obj={width:document.body.clientWidth,height:document.body.clientHeight};
	return obj;
}
/*_________________________________
touch mobile
---------------------------------*/
$.touchAgent=function(){
	return $("body").hasClass("ipad","iphone","ipod","android");
}
/*_________________________________
ドロップダウンエフェクト
universal.cssのdropdownクラス群必須
---------------------------------*/
$.xDropEffect = function(){
	$("ul","div.dropdown").slideUp(0);
	$("a","div.dropdown").attr("title","");
	$("div","div.dropdown").hover(
		function(){
			var target_el=$("ul",this);
			target_el.addClass("drophover");
			target_el.slideDown(100);
			var title_el=$("h3 a",this);
			if($.browser.msie) title_el.addClass("droptitle");
		},
		function(){
			var target_el=$("ul",this);
			target_el.removeClass("drophover");
			target_el.slideUp(0);
			var title_el=$("h3 a",this);
			if($.browser.msie) title_el.removeClass("droptitle");
		}
	);
	return this;
}

/*_________________________________
最大(最小)深度に設定
-----------------------------------
1.	最大深度
	$(element).xSetHighestDepth(true);

2.	最小深度
	$(element).xSetHighestDepth(false);
___________________________________*/
$.fn.xSetHighestDepth = function(b){
	var b=b==null?true:b;
	var depth = 0;
	var d = 0;	
	$.each($("body > *"),function(){
		d = $(this).css("zIndex");
		if(b){
			if(d!="auto" && depth < Number(d)) depth = d;
		}else{
			if(d!="auto" && depth > Number(d)) depth = d;
		}
	});
	this.css("zIndex",Number(depth)+10);

	return this;
}



/*_________________________________
指定要素のサイズを揃える
-----------------------------------
1.	heightを大きい側に合わせる
	$(element).xSizeEven({target:targetElement})

2.	heightを小さい側に合わせる
	$(element).xSizeEven({target:targetElement,rules:"small"})

3.	widthを大きい方に合わせる
	$(element).xSeizeEbent(target:targetElement,type:"width"})
___________________________________*/

$.fn.xSizeEven = function(args){
	var args = $.extend({target:"",type:"height",rules:"large"},args);
	if(!args.target) return;
	var target = $(args.target);
	if(args.type != "width"){
		var nH1 = this.height();
		var nH2 = target.height();
		if(args.rules == "large") (nH1>nH2) ? target.css("height",nH1) : this.css("height",nH2);
		else (nH1<nH2) ? target.css("height",nH1) : this.css("height",nH2);
	}
	if(args.type != "height"){
		var nW1 = $(this).width();
		var nW2 = target.width();
		if(args.rules == "large") (nW1>nW2) ? target.css("width",nW1) : this.css("width",nW2);
		else (nW1<nW2) ? target.css("width",nW1) : this.css("width",nW2);
	}
	return this;
}


/*_________________________________
ボックスをブラウザサイズに合わせてセンタリング時の値を取得
$.xBrowserFitSize(
	target:表示させたいエレメントをjQuery形式で指定(必須),
	margin:ブラウザ領域に最低与えたいマージン(ブラウザ領域との比率で指定),
	max:表示エレメントの最大表示サイズ(オリジナルサイズとの比率で指定),
	min:表示エレメントの最小表示サイズ(ピクセルサイズで指定。ただし単位はいらない)
)
-----------------------------------*/
$.xBrowserFitSize=function(args){
	var args=$.extend({target:"",margin:0.05,max:1,min:200},args);
	var return_obj={};
	var nH;
	var nW;
	if(!args.target.attr("origin_height")){
		args.target.attr("origin_height",args.target.height());
		args.target.attr("origin_width",args.target.width());
	}
	//オリジナルサイズ
	nH=args.target.attr("origin_height");
	nW=args.target.attr("origin_width");
	var browser_obj=$.xGetWindowSize();
	//アスペクト
	var ratioH=nW/nH;
	var ratioW=nH/nW;
	//マージン
	var marginH=browser_obj.height*args.margin;
	var marginW=browser_obj.width*args.margin;
	//カンバスサイズ
	var canvasH=browser_obj.height-(marginH*2);
	var canvasW=browser_obj.width-(marginW*2);
	//描画最大サイズ
	if(canvasH>canvasW){
		canvasMaxW=canvasH*ratioH;
		canvasMaxH=canvasH;
		if(canvasMaxW>canvasW){
			canvasMaxW=canvasW;
			canvasMaxH=canvasW*ratioW;
		}
	}else{
		canvasMaxW=canvasW;
		canvasMaxH=canvasW*ratioW;
		if(canvasMaxH>canvasH){
			canvasMaxW=canvasH*ratioH;
			canvasMaxH=canvasH;
		}
	}
	//指定最大サイズ
	var maxH=nH*args.max;
	var maxW=nW*args.max;
	//サイズ
	//canvasサイズが高さ幅ともに最大サイズを上回っている場合
	if(maxH<canvasH&&maxW<canvasW){
		return_obj['height']=maxH;
		return_obj['width']=maxW;
	}
	//canvasサイズが最小サイズを下回っている場合
	else if(args.min>canvasMaxH||args.min>canvasMaxW){
		return_obj['height']=0;
		return_obj['width']=0;
	}else{
		return_obj['height']=canvasMaxH;
		return_obj['width']=canvasMaxW;
	}
	//座標
	return_obj['top']=(browser_obj.height-return_obj['height'])/2;
	return_obj['left']=(browser_obj.width-return_obj['width'])/2;
	return_obj['absolute_top']=$(document).scrollTop()+return_obj['top'];
	return_obj['absolute_left']=$(document).scrollLeft()+return_obj['left'];
	return_obj['center_margin_left']=return_obj['height']/2;
	return_obj['center_margin_top']=return_obj['width']/2;
	
	return return_obj;
}





/*_________________________________
最前面にブロックレイヤー作成
-----------------------------------
	$(element).xBlockLayer({target:targetElement,color:color,alpha:alpha,id:id,xClose:function})
___________________________________*/
$.fn.xBlockLayer = function(args){
	var args = $.extend({view:true,id:"blocklayer",xClose:function(){}},args);
	if(args.view){
		$("body").append("<div id='"+args.id+"'></div>");
		$("#"+args.id).
			xSetHighestDepth(true).
			click(function(){
				if(args.xClose) args.xClose();
				else $(this).remove();
			});
		if($.touchAgent()){
			$("#"+args.id).height($('body').attr('scrollHeight'));
			$("#"+args.id).width($('body').attr('scrollWidth'));
		}else if($.browser.msie&&$.browser.version<7){
			$("select:visible").css("visibility","hidden").attr("select_visible","true");
		}
	}else{
		if($("#"+args.id)[0]){
			$("#"+args.id).remove();
			if($.browser.msie&&$.browser.version<7){
				$("select[select_visible]").css("visibility","visible");
			}
		}
	}
	return this;
}




/*_________________________________
スムーススクロール
-----------------------------------
	$(ClickElement).xScroll({target:targetElement,time:ms})
	あらかじめhtml内に変数pageを設定し、bodyにpageと同名のIDを付加
	それにより、body#id内に#targetを発見したとき、もしくは単純なpagetop時にのみ処理を行う。
___________________________________*/
$.fn.xScroll = function(args){
	if(!$.touchAgent()){
		var args = $.extend({stage:$.xScrollTarget(),time:1000},args);
		this.click(function(){
			var target=$(this).attr("href").split("#")[1];
			if($(target=="body"||"#"+target,"body#"+page)[0]){
				var nTop=$("#"+target).offset().top-250||0;
				args.stage.animate({scrollTop:nTop},args.time,'swing');
				return false;
			}else{
				return true;
			}
		});
	}
	return this;
}




/*_________________________________
コンテンツの開閉
-----------------------------------
1.	引数指定なし	クリックした次にある要素を開閉する
	$(ClickElement).xOpenClose();
	
2.　引数に開閉要素を指定　	指定要素を開閉する
	$(ClickElement).xOpenClose({tareget:targetElement});
___________________________________*/
$.fn.xOpenClose = function(args){
	var args = $.extend({target:$(this[0]).next(),time:200},args);
	var target = $(args.target);
	this.click(function(){
		if(target.css("display") == "none") target.slideDown(args.time);
		else target.slideUp("fast");
	});
	return this;
}

/*_________________________________
ツールチップスの表示
-----------------------------------
	・指定タグのタイトルタグを元に、指定要素を表示する。
	・Universal.css(div#tooltips)を使用
	
	$(ロールオーバー要素).xToolTips(
		tips:ツールチップス要素のID名,
		x:ツールチップスのx座標(マウスポインタからの距離),
		y:ツールチップスのy座標(マウスポインタからの距離),
		title:ツールチップスのテキスト内容(title属性よりも優先して表示する)
	)
___________________________________*/
$.fn.xToolTips = function(args){
	//タッチモバイルは実行しない
	if($.touchAgent()) return this;
	//
	var args=$.extend({tips:"tooltips",x:15,y:-40,title:"",time:1000},args);
	$(this).each(function(){
		var me=$(this);
		var title=(args.title||me.attr("title"));
		$("img",me).each(function(){$(this).attr("alt","")});
		me.hover(
			function(e){
				$("#"+args.tips).hide().remove();
				me.attr("title","");
				$("body").prepend("<div id='"+args.tips+"'>"+title+"</div>");
				$("#"+args.tips).
					css({position:"absolute",top:e.pageY+args.y,left:e.pageX+args.x}).
					xSetHighestDepth(true);
			},
			function(){
				me.attr("title",title);
				$("#"+args.tips).hide().remove();
			}
		);
		me.mousemove(function(e){
			var tips_el=$("#"+args.tips);
			//for timer
			if(tips_el.attr("cnt")) tips_el.attr("cnt",Number(tips_el.attr("cnt"))+1);
			else tips_el.attr("cnt",0);
			if(args.time>0) xTimer(tips_el);

			//
			if(tips_el[0]){
				$("#"+args.tips).css({top:e.pageY+args.y,left:e.pageX+args.x});
			}else{
				me.attr("title","");
				$("body").prepend("<div id='"+args.tips+"'>"+title+"</div>");
				$("#"+args.tips).
					css({position:"absolute",top:e.pageY+args.y,left:e.pageX+args.x}).
					xSetHighestDepth(true);
			}
		});
	});
	function xTimer(obj){
		var cnt=obj.attr("cnt");
		$.timer(args.time,function(timer){
			if(cnt==obj.attr("cnt")) obj.remove();
			timer.stop();
		});
	}
	return this;
}
/*_________________________________
画像拡大
-----------------------------------
	aのhrefを取得し、新画像を読み込む
	$(a.class or a#ID).xImgLager({large_img:新画像ID名,block:ブロックレイヤーID名})
	※オプションは、IDがバッティングしそうな場合のみ。
___________________________________*/
$.fn.xImgLarger=function(args){
	var args=$.extend({
		//拡大画像の親エレメント(この要素をfixedにして、その中に拡大画像をrelative配置)
		canvas:"fix_canvas",
		//拡大画像<img>
		large_img:"noias_viewer_stage",
		//overlay<div>
		block:"blocklayer",
		//
		loader:"noias_viewer_loader",
		//画像に加えるボーダー
		border_width:5
	},args);
	
	var this_el=this;
	var img_el=$("img",this);
	
	this.xToolTips({title:"拡大する"});
	
	//Close Action
	var xClose=function(){
		var stage_el=$("#"+args.large_img);
		$("div#"+args.loader).remove();
		if(stage_el.attr("loaded")){
			if($(window).scrollTop()==stage_el.attr("current_top")){
				stage_el.animate(
					{
						width:stage_el.attr("_width"),
						height:stage_el.attr("_height"),
						top:stage_el.attr("_y"),
						left:stage_el.attr("_x")
					},
					{
						complete:function(){
							$("img",this_el).css("visibility","visible");
							$('body').xBlockLayer({view:false});
							stage_el.remove();
							$("#tooltips").hide().remove();
							$("div#fix_canvas").remove();
						}
					},
					400
				);
			}else{
				$("img",this_el).css("visibility","visible");
							$('body').xBlockLayer({view:false});
							stage_el.remove();
							$("#tooltips").hide().remove();
							$("div#fix_canvas").remove();
			}
		}else{
			$('body').xBlockLayer({view:false});
			stage_el.remove();
			$("#tooltips").hide().remove();
			$("div#fix_canvas").remove();
		}
	}
	//Enlarge Action
	function xEnlarge(stage_el,target_el,loader_el,window_obj,offset_obj,nW,nH){
		var img_obj=$.xBrowserFitSize({target:stage_el});
		stage_el.
			attr("loaded",true).
			css({
				"border":args.border_width+"px solid #fff",
				"position":"relative",
				"width":nW,
				"height":nH,
				"top":offset_obj.top,
				"left":offset_obj.left
			});
		if($.touchAgent()){
			stage_el.animate({
				width:img_obj.width,
				height:img_obj.height,
				top:img_obj.absolute_top,
				left:img_obj.absotelu_left
			},300);
		}else{
			stage_el.animate({
				width:img_obj.width,
				height:img_obj.height,
				top:img_obj.top,
				left:img_obj.left
			},300);
		}
		//resize
		$(window).resize(xResize);
		//base image & loader image hide
		target_el.css("visibility","hidden");
		loader_el.remove();
	}
	
	//Resize Event
	function xResize(){
		var target=$("#"+args.large_img);
		var img_obj=$.xBrowserFitSize({target:target});
		target.css({
			"width":img_obj.width,
			"height":img_obj.height,
			"top":img_obj.top,
			"left":img_obj.left
		});
		if(!target[0]) $(window).unbind("resize",xResize);
	}
	
	//Main Action
	this.click(
		function(){
			//Put Block
			$(this).xBlockLayer({xClose:xClose,id:args.block});
			//Set Property
			var target_el=$("img",this);
			var imgpath=$(this).attr("href");
			var offset_obj=target_el.offset();
			var window_obj=$.xGetWindowSize();
			var nW=target_el.width();
			var nH=target_el.height();
			//Put Load Element
			$("body").prepend("<div id='fix_canvas' style='display:none'><img src='"+imgpath+"' id='"+args.large_img+"' /></div><div id='"+args.loader+"'></div>");
			//Set Loader
			var loader_el=$("div#"+args.loader);
			loader_el.xSetHighestDepth(true).
				animate({opacity:0.4},0).
				css({
					"border":args.border_width+"px solid #fff",
					"background":"#fff url(../wp-content/themes/pu-pi/images/share/loader.gif) no-repeat center center",
					"position":"absolute",
					"width":nW,
					"height":nH,
					"top":(offset_obj.top)-args.border_width,
					"left":(offset_obj.left)-args.border_width
				}).
				click(xClose);
			//set canvas
			var canvas_el=$("div#fix_canvas");
			canvas_el.xSetHighestDepth(true).
				css("cursor","pointer").
				xToolTips({title:"閉じる"}).
				click(xClose);
			//Set Stage
			var stage_el=$("#"+args.large_img);
			offset_obj.top=offset_obj.top-$(window).scrollTop();
			offset_obj.left=offset_obj.left-$(window).scrollLeft();
			var current_top=$(window).scrollTop();
			stage_el.
				css("cursor","pointer").
				attr({"_x":(offset_obj.left)-args.border_width,"_y":(offset_obj.top)-args.border_width,"_width":nW,"_height":nH,"current_top":current_top}).
				click(xClose).
				xToolTips({title:"閉じる"});
			//2nd Enlarge
			if(stage_el.attr("loaded")){
				canvas_el.show();
				xEnlarge(stage_el,target_el,loader_el,window_obj,offset_obj,nW,nH);
			}
			//First Enlarge
			else stage_el.load(function(){
				canvas_el.show();
				xEnlarge(stage_el,target_el,loader_el,window_obj,offset_obj,nW,nH)
			});
			//finish
			return false;
		}
	);
	return this;
}

/*_________________________________
Cookieの保存・読み出し
-----------------------------------
読み込み
	$.cookie('クッキー名');
書き込み
	$.cookie('クッキー名','保存したい値',{expires: 保存したい日数,path:'cookieが有効なパス'});
削除
	$.cookie('クッキー名',null);
___________________________________*/
$.cookie = function(name, value, options) {
    if (typeof value != 'undefined'){
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString();
        }
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else {
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};
/*_________________________________
値チェック
xValueCheck(チェックタイプ,チェックしたい要素をjqueryオブジェクト形式で指定)
※
全てを入力必須項目として振る舞うため、入力したときのみチェックしたい場合は、
このチェック以前に文字数などでチェックのタイミングをつくる必要がある。
-----------------------------------*/
$.xValueCheck = function(type,obj){
	//falseが正常値
	var b=false;
	var val=obj.val();
	var bNini=obj.hasClass("check_nini");
	switch(type){
		//メールアドレス
		case "mail":
			if(bNini&&val||!bNini){
				val=$.xValueFormat("eisu_zenhan",val);
				obj.val(val);
				b=(val.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/)==null);
			}
			break;
		//未入力(空白文字のみは未入力)
		case "blank":
			b=(val.match(/\S/) == null);
			break;
		//電話番号
		case "tel":
			if(bNini&&val||!bNini){
				val=$.xValueFormat("tel",val);
				obj.val(val);
				var count=0;
				var b=false;
				for(var i=0;i<val.length;i++){
					var c=val.charAt(i);
					if("0"<=c&&c<="9"){
						count++;
						continue;
					}else{
						if(c=="-")continue;b=true;
					}
				}
				if(count<10)b=true;
			}
			break;
		//郵便番号
		case "zip":
			if(bNini&&val||!bNini){
				val=$.xValueFormat("zip",val);
				obj.val(val);
				if(typeof AjaxZip2!="undefined") AjaxZip2.zip2addr(obj[0],obj.data("target_pref_id"),obj.data("target_add_id"));
				b=!(val.length>6 && val.match(/^\d{3}-\d{4}$|^\d{3}-\d{2}$|^\d{3}$/));
			}
			break;
		//半角英数&一部の記号のみ
		case "hankaku":
			if(bNini&&val||!bNini){
				val=$.xValueFormat("eisu_zenhan",val);
				obj.val(val);
				if((val.match(/\S/)!=null)) b=(val.match(/^[a-zA-Z0-9@\;\:\[\]\{\}\|\^\=\/\!\*\`\"\#\$\+\%\&\'\(\)\,\.\-\_\?\\\s]*$/)==null);
				else b=true;
			}
			break;
		//全角ひらがなのみ(記号は含まない)
		case "hiragana":
			if(bNini&&val||!bNini){
				if(val.match(/\S/)!=null) b=(val.match(/^[ぁ-んー〜ヽヾ゛]+$/)==null);
				else b=true;
			}
			break;
		//全角カタカナのみ(記号は含まない)
		case "katakana":
			if(bNini&&val||!bNini){
				val=$.xValueFormat("kana_zenhan",val);
				obj.val(val);
				if(val.match(/\S/)!=null) b=(val.match(/^[ァ-ヶー〜ヽヾ]+$/)==null);
				else b=true;
			}
			break;
		//数字のみ
		case "number":
			if(bNini&&val||!bNini){
				val=$.xValueFormat("eisu_zenhan",val);
				obj.val(val);
				if(val.match(/\S/)!=null) b=(val.match(/^[\d]+$/)==null);
				else b=true;
			}
			break;
		//url
		case "url":
			if(bNini&&val||!bNini){
				val=$.xValueFormat("eisu_zenhan",val);
				obj.val(val);
				b1=(val.match(/\S/)!=null);
				b2=(val.match(/^[a-zA-Z0-9@\;\:\[\]\{\}\|\^\=\/\!\*\`\"\#\$\+\%\&\'\(\)\,\.\-\_\?\\\s]*$/)!=null);
				b3=(val.match(/^http(s)?\:\/\/[^\/]*/)!=null);
				if(b1&&b2&&b3) b=false;
				else b=true;
			}
			break;
		//文字数制限
		case "cnt_word":
			var max=obj.attr('class').match(/check_max(\d+)/)?RegExp.$1:undefined;
			var min=obj.attr('class').match(/check_min(\d+)/)?RegExp.$1:undefined;
			$.trace(max);
			if(bNini&&val||!bNini){
				var length=val.length;
				//指定文字以上、指定文字以内
				if(max>=1&&min>=0){
					b=!(length<=max&&length>=min);
				}
				//指定文字以内
				else if(max>=1){
					b=!(length<=max);
				}
				//指定文字以上
				else if(min>=0){
					b=!(length>=min);
				}
			}
			break;
		case "cnt_check":
			var length=$("input:checked",obj).length;
			var max=obj.attr('class').match(/check_max(\d+)/)?RegExp.$1:undefined;
			var min=obj.attr('class').match(/check_min(\d+)/)?RegExp.$1:undefined;
			//指定選択以上、指定選択以内
			if(max>=1&&min>=0){
				b=!(length<=max&&length>=min);
			}
			//指定選択以内
			else if(max>=1){
				b=!(length<=max);
			}
			//指定選択以上
			else if(min>=0){
				b=!(length>=min);
			}
			break;
		case "radio":
			b=($("input:checked",obj)[0])?false:true;break;
		case "sel":
			b=(val=="")?true:false;break;
		case "check":
			b=($("input:checked",obj)[0])?false:true;break;
		default:b=false;
	}

	return !b;
}
/*_________________________________
Enter送信無効
-----------------------------------*/
$.xBlockEnter = function(myForms){
	//input要素入力時Enterキー押下動作(送信)を無効化
	$(":text,:password",myForms).keypress(function(evt){
		evt=(evt)?evt:event;
		var charCode=(evt.charCode)?evt.charCode:((evt.which)?evt.which:evt.keyCode);
		if(Number(charCode)== 13||Number(charCode)==3){
			return false;
		}else{
			return true;
		}
	});
}
/*_________________________________
送信表示
-----------------------------------*/
$.xSending = function(b){
	if(b){
		$("body").append("<div id='send_message_noias'>送信中...</div>");
		$.xHighLight($("#send_message_noias","body"));
	}else{
		$.xHighLight();
	}
}
/*_________________________________
フォーム入力エラー時の動作
-----------------------------------*/
$.xFormError=function(b,obj,msg,option){
	if(option==undefined) var option=false;
	var mark=$("a#form_error_"+obj.data("error_no"));
	if(b){
		obj.removeClass("input_error_view");
		if(mark[0]) mark.remove();
	}else{
		obj.addClass("input_error_view");
		if(!mark[0]){
			var offset_obj=obj.offset();
			var error_no=+new Date();
			obj.data("error_no",error_no);
			var filetype=($.browser.msie&&$.browser.version<7)?"gif":"png";
			var delivery=(option)?" "+option:"";
			$('body').prepend(
				"<a id='form_error_"+error_no+"' class='form_error_mark"+delivery+"' title='"+msg+"' >"+
					"<img src='../wp-content/themes/pu-pi/images/share/error."+filetype+"' />"+
				"</a>"
			);
			$("a#form_error_"+error_no).css({
				display:"block",
				position:"absolute",
				top:offset_obj.top-12,
				left:offset_obj.left+obj.attr("offsetWidth")-13
			}).xSetHighestDepth(true).xToolTips({time:0,x:7,y:-30});
			$('div#headmenu').xSetHighestDepth(true);
		}
	}
	return b;
}
/*_________________________________
Mouse Event
---------------------------------*/
$.fn.onRollOver=function(fn,b){
	if(b==undefined) var b=true;
	//rolloverイベント全削除
	if(typeof fn=="boolean"&&fn==false) $(this).unbind('mouseenter');
	//指定rollOverイベント削除
	else if(b==false) $(this).unbind('mouseenter',fn);
	//イベント登録
	else $(this).bind('mouseenter',fn);
	return $(this);
}
$.fn.onRollOut=function(fn,b){
	if(b==undefined) var b=true;
	//rolloutイベント全削除
	if(typeof fn=="boolean"&&fn==false) $(this).unbind('mouseleave');
	//指定rollOutイベント削除
	else if(b==false) $(this).unbind('mouseleave',fn);
	//イベント登録
	else $(this).bind('mouseleave',fn);
	
	return $(this);
}
$.fn.onClick=function(fn,b){
	if(b==undefined) var b=true;
	//rolloutイベント全削除
	if(typeof fn=="boolean"&&fn==false) $(this).unbind('click');
	//指定rollOutイベント削除
	else if(b==false) $(this).unbind('click',fn);
	//イベント登録
	else $(this).bind('click',fn);
	return $(this);
}

/*_________________________________
簡易フォームの設定
$(該当フォーム).xSimpleForm({
	check_obj:チェックオブジェクト、チェックタイプ、エラーメッセージの組み合わせ,
	view_obj:編集領域、確認領域、送信後表示領域の指定
	btn_obj:編集、確認、送信、各種ボタンの設定
})
___________________________________*/
$.fn.xSimpleForm = function(args){
	var myForm=$(this);
	var data_area=$("fieldset#form_data_area",myForm);
	var action;
	//Default
	var args=$.extend({
		check_obj:{
			blank:{
				target:$(".check_blank",data_area),
				type:"blank",
				msg:"この項目は入力必須です。"
			},
			mail:{
				target:$(".check_mail",data_area),
				type:"mail",
				msg:"メールアドレスの形式が正しくありません。"
			},
			tel:{
				target:$(".check_tel",data_area),
				type:"tel",
				msg:"電話番号の形式が正しくありません。"
			},
			zip:{
				target:$(".check_zip",data_area),
				type:"zip",
				msg:"郵便番号の形式が正しくありません。"
			},
			hankaku:{
				target:$(".check_hankaku",data_area),
				type:"hankaku",
				msg:"半角英数のみ入力可能です。"
			},
			hiragana:{
				target:$(".check_hiragana",data_area),
				type:"hiragana",
				msg:"ひらがなのみ入力可能です。"
			},
			katakana:{
				target:$(".check_katakana",data_area),
				type:"katakana",
				msg:"カタカナのみ入力可能です。"
			},
			number:{
				target:$(".check_number",data_area),
				type:"number",
				msg:"数字のみ入力可能です。"
			},
			url:{
				target:$(".check_url",data_area),
				type:"url",
				msg:"URLの形式が正しくありません。"
			},
			cnt_word:{
				target:$(".check_cnt_word",data_area),
				type:"cnt_word",
				msg:"指定文字数で入力してください。"
			},
			radio:{
				target:$(".check_radio",data_area),
				type:"radio",
				msg:"いずれかを選択してください。"
			},
			sel:{
				target:$(".check_sel",data_area),
				type:"sel",
				msg:"選択してください。"
			},
			check:{
				target:$(".check_check",data_area),
				type:"check",
				msg:"いずれかを選択してください。"
			},
			cnt_check:{
				target:$(".check_cnt_check",data_area),
				type:"cnt_check",
				msg:"指定選択数を確認してください。"
			}
		},
		view_obj:{
			edit:$(".form_edit_view"),
			preview:$(".form_pre_view"),
			send:$(".form_send_view")
		},
		btn_obj:{
			group:$("#form_btn_group",myForm),
			edit:$("#form_edit_btn",myForm),
			preview:$("#form_preview_btn",myForm),
			send:$("#form_send_btn",myForm)
		},
		url:"simpleform",
		//送信後に挿入するユーザーメールアドレス枠エレメント
		send_after_mail:$(".form_send_after_mail",myForm),
		//ユーザーメールアドレスエレメント
		user_mail:$("#mail",data_area),
		//1:初期化しない,2:入力確認表示,3:送信後表示
		debug:false
	},args);
	
	/*********************************************
	exe
	*********************************************/
	//住所自動入力(組み合わせID&NAMEはzip,add,prefの必要がある)
	//↓有効にすればそのまま使えるが、フォームデータの編集を繰り返すと機能しなくなるケースがあるため待避
	/*
if(args.check_obj["zip"].target[0]){
		$("head","html").append("<script id='zip_js' type='text/javascript' src='../js/ajaxzip2.js'></script>");
		AjaxZip2.JSONDATA='../js/zipdata';
		$.each(args.check_obj["zip"].target,function(){
			var no=($(this).attr("id").length>3)?$(this).attr("id").substr(3,1):"";
			$(this).data({"target_pref_id":"pref"+no,"target_add_id":"add"+no});
		});
	}
*/
	
	//初期化
	if(!args.debug){
		myForm[0].reset();
		$.each($(":text,:password,textarea",data_area),function(){$(this).val("");});
	}
	$.post($.xGetNoias('js_talk'),{"form_name":args.url},function(data){action=data;});
	//Enter送信無効
	$.xBlockEnter(data_area);
	//表示
	myForm.show();
	//Live Check
	for(var key in args.check_obj){
		if(args.check_obj[key].target[0]){
			args.check_obj[key].target
				.attr("role",key)
				.attr("check_msg",args.check_obj[key].msg)
				.change(function(){
					$.xFormError($.xValueCheck($(this).attr("role"),$(this)),$(this),$(this).attr("check_msg"));
				});
		}
	}
	if(args.custom_check){
		var custom_obj;
		for(var key in args.custom_check){
			custom_obj=args.custom_check[key];
			custom_obj.target.bind(custom_obj.event,custom_obj.func);
		}
	}
	//文字以内
	if(args.check_obj.cnt_word.target[0]){
		$.each(args.check_obj.cnt_word.target,function(){
			var max=$(this).attr('class').match(/check_max(\d+)/)?RegExp.$1:null;
			var min=$(this).attr('class').match(/check_min(\d+)/)?RegExp.$1:null;
			var id=$(this).attr("id")+'_count';
			$(this).data({'max':max,'min':min});
			$(this).parent().prepend('<p id="'+id+'" class="form_count_text" style="width:'+Number($(this).width()-5)+'px;text-indent:-30px;text-align:right;z-index:10;position:absolute;top:0,left:0;color:#ccc;font-size:20px;font-weight:bold;line-height:1">'+Number(max-$(this).val().length)+'</p>');
			$("p#"+id).css({"top":$(this).height()+"px"});
		});
		args.check_obj.cnt_word.target.keyup(function(e){
			var cnt=$(this).val().length;
			var max=$(this).data('max');
			var min=$(this).data('min');
			var val;
			var target=$("p#"+$(this).attr("id")+'_count');
			val=Number(max)-cnt;
			target.html(val);
			if(val<0||cnt<min){
				$.xFormError(false,$(this),$(this).attr("check_msg"));
				target.css("color","#f00");
			}else{
				$.xFormError(true,$(this),$(this).attr("check_msg"));
				target.css("color","#ccc");
			}
		});
	}
	//確認・編集・送信
	xSetBtn();
	//debug
	if(args.debug==2) args.btn_obj.preview.trigger("click");
	if(args.debug==3) xChgView("send");

	
	/*********************************************
	func
	*********************************************/
	function xSetBtn(){
		xBtnNormal(args.btn_obj.preview);
		xBtnDisable(args.btn_obj.send);
		xBtnDisable(args.btn_obj.edit);
		args.btn_obj.preview.click(xCheckData);
		args.btn_obj.edit.click(xChgView);
		args.btn_obj.send.click(xSend);
	}
	function xBtnDisable(obj){
		obj.onRollOver(false).onRollOut(false)
			.addClass("form_btn_disabled")
			.attr("disabled","disabled")
			.data("hover",null);
	}
	function xBtnHover(obj){
		obj.addClass("form_btn_hover");
	}
	function xBtnNormal(obj){
		obj.removeAttr("disabled").removeClass("form_btn_hover form_btn_disabled");
		if(!obj.data("hover")){
			obj.hover(function(){xBtnHover($(this));},function(){xBtnNormal($(this));});
			obj.data("hover",true);
		}
	}
	//最終入力確認
	function xCheckData(){
		var bError=true;
		//check
		for(var key in args.check_obj){
			if(args.check_obj[key].target[0]){
				args.check_obj[key].target
					.attr("role",key)
					.attr("check_msg",args.check_obj[key].msg)
					.each(function(){
						b=$.xFormError($.xValueCheck($(this).attr("role"),$(this)),$(this),$(this).attr("check_msg"));
						if(!b) bError=b;
					});
			}
		}
		
		if(args.custom_check){
			for(var key in args.custom_check){
				args.custom_check[key].target.each(function(){
					b=args.custom_check[key].func($(this));
					if(!b) bError=b;
				});
			}
		}
		//result
		if(bError) xPreview(true);
		else  $.alert("<p style='text-align:center;'><img src='../wp-content/themes/pu-pi/images/share/input_error.jpg' /><br /><br />入力内容に誤りがあるようです。<br />エラー表示の箇所をご確認ください。</p>","入力エラー");

		return false;
	}
	//preview
	function xPreview(b){
		//put data
		var data_array=myForm.serializeArray();
		var result_el;
		var bFirst=true;
		var data="";
		for(var i=0;i<data_array.length;i++){
			result_el=$("#form_"+data_array[i].name+"_result",args.view_obj.preview);
			if($("[name='"+data_array[i].name+"']",data_area).attr("type")=="checkbox"){
				if(bFirst){
					result_el.text("");
					bFirst=false;
				}
				result_el.html(result_el.html()+data_array[i].value+"<br />");
			}else{
				data=(data_array[i].value=="")?"　":data_array[i].value;
				result_el.text(data);
			}
		}
		xChgView("preview");
	}
	//確認&編集の切り替え
	function xChgView(scene){
		//確認表示
		if(scene=="preview"){
			xBtnDisable(args.btn_obj.preview);
			xBtnNormal(args.btn_obj.send);
			xBtnNormal(args.btn_obj.edit);
			args.view_obj.preview.show();
			args.view_obj.edit.hide();
			args.btn_obj.edit.focus();
		}
		//送信後表示
		else if(scene=="send"){
			args.view_obj.preview.hide();
			args.view_obj.edit.hide();
			args.btn_obj.group.hide();
			args.view_obj.send.show();
		}
		//編集表示
		else{
			xBtnNormal(args.btn_obj.preview);
			xBtnDisable(args.btn_obj.send);
			xBtnDisable(args.btn_obj.edit);
			args.view_obj.preview.hide();
			args.view_obj.edit.show();
			args.btn_obj.preview.focus();
		}
		$(window).scrollTop(0);
		return false;
	}
	//send
	function xSend(){
		var bMail=Boolean(args.user_mail[0]);
		var alert_msg="";
		if(bMail){
			alert_msg="<p id='form_confirm_title'>メールアドレスをご確認ください。</p><p id='form_confirm_mail'>"+args.user_mail.val()+"</p>";
		}
		$.confirm(alert_msg,"入力を確定して送信します。",
			function(b){
				if(b){
					$.xSending(true);	
					var stage=($.browser.opera)?"html":"html,body";
					$(stage).animate({scrollTop:0},0,'swing');
					$.post($.xGetNoias('js_talk'),{"onetime":true},function(onetime){
						$.ajax({
							url:action,
							type:myForm.attr("method"),
							data:myForm.serialize()+"&noias="+onetime,
							success:function(m){
								if(m=="1"){
									if(bMail){
										args.send_after_mail.each(function(){$(this).text(args.user_mail.val());});
									}
									xChgView("send");
									$.xHighLight();
								}else{
									$.alert("恐れ入りますが、しばらく経ってからもう一度送信ください。","送信エラー(error:1)");
								}
							},
							error:function(){
								$.alert("恐れ入りますが、しばらく経ってからもう一度送信ください。","送信エラー(error:2)");
							}
						});
					});
				}
			}
		);
		return false;
	}
	return this;
}
/*_________________________________
タイマー
-----------------------------------
var second = false;
$.timer(1000,function(timer){
	if (!second){
		second=true;
		timer.reset(3000);
	}
	else{
		timer.stop();
	}
});
___________________________________*/
$.timer=function(interval,callback){
	var interval = interval || 100;
	if (!callback) return false;
	_timer = function (interval, callback) {
		this.stop = function () {
			clearInterval(self.id);
		};
		this.internalCallback = function () {
			callback(self);
		};
		this.reset = function (val) {
			if (self.id) clearInterval(self.id);
			var val = val || 100;
			this.id = setInterval(this.internalCallback, val);
		};
		this.interval = interval;
		this.id = setInterval(this.internalCallback, this.interval);
		var self = this;
	};
	return new _timer(interval, callback);
};
/*_________________________________
値変換
___________________________________*/
$.xValueFormat=function(type,val,b){
	var new_val;
	switch(type){
		//3桁区切り変換＆解除
		case "comma":
			//3桁区切りを解除
			if(b) new_val=val.replace(/,/g,"");
			//3桁区切りに変換
			else{
				var num=new String(val).replace(/,/g, "");
				while(num!=(num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
				new_val=num;
			}
			break;
		//3桁区切り通貨表示(円)に変換&解除
		case "yen":
			//通貨表示を解除
			if(b){
				val=val.replace(/,/g,"");
				new_val=val.substring(1,val.length);
			}
			//通貨表示に変換
			else{
				var num = new String(val).replace(/,/g, "");
				while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
				new_val="&yen;"+num;
			}
			break;
		//数字以外の文字を削除
		case "number":
			new_val=val.replace(/\D/g,"");
			break;
		//ハイフンありの〒番号形式に変換(全角は半角に変換。7桁の場合のみ)
		case "zip":
			val=xZenHan("eisu_zen_han",val);
			if(!val.match(/[-]/)){
				if(val.length>3) new_val=val.substring(0,3)+"-"+val.substring(3,7);
				else new_val=val;
			}else{
				new_val=val;
			}
			break;
		case "tel":
			new_val=$.xValueFormat("eisu_zenhan",val);
			break;
		//全角英数←→半角英数
		case "eisu_zenhan":
			//半角英数字を全角英数字に置換する
			if(b) new_val=xZenHan("eisu_han_zen",val);
			//全角英数字を半角英数字に置換する 
			else new_val=xZenHan("eisu_zen_han",val);				
			break;
		//半角カナを全角カナに変換
		case "kana_zenhan":
			new_val=xZenHan("kana_han_zen",val);
			break;
		//半角カナを全角カナに&全角英数を半角英数に
		case "zenhan":
			val=xZenHan("eisu_zen_han",val);
			new_val=xZenHan("kana_han_zen",val);
			break;
		default:new_val=val;
	}
	
	
	
	//全角←→半角
	function xZenHan(type,src) {
		var val;
		switch(type){
			//全角英数字を半角英数字に置換する
			case "eisu_zen_han":
				val=src.replace(/([Ａ-Ｚａ-ｚ０-９＿＠])/g,function ($0){return String.fromCharCode($0.charCodeAt(0) - 65248);});
				val=val.replace(/[ー－－−]/g,"-");
				val=val.replace(/[．]/g,".");
				break;
			//半角英数字を全角英数字に置換する
			case "eisu_han_zen":
				val=src.replace(/(\w)/g,function($0){return String.fromCharCode($0.charCodeAt(0) + 65248);});
				break;
			//半角カナを全角カナに置換する
			case "kana_han_zen":
				var han_array=["ｳﾞ","ｶﾞ","ｷﾞ","ｸﾞ","ｹﾞ","ｺﾞ","ｻﾞ","ｼﾞ","ｽﾞ","ｾﾞ","ｿﾞ","ﾀﾞ","ﾁﾞ","ﾂﾞ","ﾃﾞ","ﾄﾞ","ﾊﾞ","ﾋﾞ","ﾌﾞ","ﾍﾞ","ﾎﾞ","ﾊﾟ","ﾋﾟ","ﾌﾟ","ﾍﾟ","ﾎﾟ","ｦ","ｧ","ｨ","ｩ","ｪ","ｫ","ｬ","ｭ","ｮ","ｯ","ｰ","ｱ","ｲ","ｳ","ｴ","ｵ","ｶ","ｷ","ｸ","ｹ","ｺ","ｻ","ｼ","ｽ","ｾ","ｿ","ﾀ","ﾁ","ﾂ","ﾃ","ﾄ","ﾅ","ﾆ","ﾇ","ﾈ","ﾉ","ﾊ","ﾋ","ﾌ","ﾍ","ﾎ","ﾏ","ﾐ","ﾑ","ﾒ","ﾓ","ﾔ","ﾕ","ﾖ","ﾗ","ﾘ","ﾙ","ﾚ","ﾛ","ﾜ","ﾝ"];
				var zen_array=["ヴ","ガ","ギ","グ","ゲ","ゴ","ザ","ジ","ズ","ゼ","ゾ","ダ","ヂ","ヅ","デ","ド","バ","ビ","ブ","ベ","ボ","パ","ピ","プ","ペ","ポ","ヲ","ァ","ィ","ゥ","ェ","ォ","ャ","ュ","ョ","ッ","ー","ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ン"];
				while(src.match(/[ｦ-ﾝ]/)){
					for(var i=0;i<han_array.length;i++) src=src.replace(han_array[i],zen_array[i]);
				}
				val=src;
				break;
			default:val=src;
				
		}
		return val;
	}


	
	return new_val;
}
//highlight
//指定要素をハイライトセンター表示にする
$.xHighLight=function(obj){
	if(obj){
		var nH=obj.height();
		var nW=obj.width();	
		$('body').xBlockLayer();
		$('body').prepend("<div id='fix_canvas'></div>");
		$("div#fix_canvas").xSetHighestDepth().append(obj);
		obj.css({
			position:"absolute",
			top:"50%",
			left:"50%",
			marginLeft:(nW/2)*-1,
			marginTop:(nH/2)*-1,
			display:"block"
		});
	}else{
		$('body').xBlockLayer({view:false});
		$("#fix_canvas").remove();
	}
}
//dialog
$.dialog={
	el_obj:{
		container:"dialog_container",
		title:"dialog_title",
		msg:"dialog_msg",
		btn_group:"dialog_btn",
		ok_btn:"dialog_ok_btn",
		cancel_btn:"dialog_cancel_btn",
		prompt:"dialog_prompt"
	},
	xAlert:function(msg,title,callback){
		$.xHighLight();
		$.dialog.xShow(msg,title,null,"alert",function(result){
			if(callback) callback(result);
		});
	},
	xConfirm:function(msg,title,callback){
		$.xHighLight();
		$.dialog.xShow(msg,title,null,"confirm",function(result){
			if(callback) callback(result);
		});
	},
	xPrompt:function(msg,title,val,callback){
		$.xHighLight();
		$.dialog.xShow(msg,title,val,"prompt",function(result){
			if(callback) callback(result);
		});
	},
	xMessage:function(msg,title,callback){
		$.xHighLight();
		$.dialog.xShow(msg,title,null,"message",null);
	},
	xShow:function(msg,title,val,type,callback){
		$('body').append(
			"<div id='"+$.dialog.el_obj.container+"' style='display:none'>"+
				"<h2 id='"+$.dialog.el_obj.title+"'>"+title+"</h2>"+
				"<div id='"+$.dialog.el_obj.msg+"'>"+msg+"</div>"+
				"<div id='"+$.dialog.el_obj.btn_group+"'></div>"+
			"</div>"
		);
		$.xHighLight($("#"+$.dialog.el_obj.container));
		var btn_area=$("#"+$.dialog.el_obj.btn_group,"div#"+$.dialog.el_obj.container);
		switch(type){
			case "alert":
				btn_area.append("<button type='button' id='"+$.dialog.el_obj.ok_btn+"' name='"+$.dialog.el_obj.ok_btn+"'>OK</button>");
				$("#"+$.dialog.el_obj.ok_btn,"div#"+$.dialog.el_obj.btn_group)
					.click(function(){
						$.xHighLight();
						if(callback) callback(true);
					})
					.keypress( function(e){
						if(e.keyCode==13||e.keyCode==27) $(this).trigger('click');
					})
					.focus();
				break;
			case "confirm":
				btn_area.append(
					"<button type='button' id='"+$.dialog.el_obj.ok_btn+"' name='"+$.dialog.el_obj.ok_btn+"'>OK</button>"+
					"<button type='button' id='"+$.dialog.el_obj.cancel_btn+"' name='"+$.dialog.el_obj.cancel_btn+"'>キャンセル</button>"
				);
				var ok_btn=$("#"+$.dialog.el_obj.ok_btn,"div#"+$.dialog.el_obj.btn_group);
				var cancel_btn=$("#"+$.dialog.el_obj.cancel_btn,"div#"+$.dialog.el_obj.btn_group);
				ok_btn
					.click(function(){
						$.xHighLight();
						if(callback) callback(true);
					})
					.focus().keypress( function(e){
						if(e.keyCode==13) ok_btn.trigger('click');
						if(e.keyCode==27) cancel_btn.trigger('click');
					});
				cancel_btn
					.click(function(){
						$.xHighLight();
						if(callback) callback(false);
					})
					.keypress( function(e){
						if(e.keyCode==13||e.keyCode==27) cancel_btn.trigger('click');
					});
				break;
			case "prompt":
				btn_area.append(
					"<input type='password' size='30' id='"+$.dialog.el_obj.prompt+"' name='"+$.dialog.el_obj.prompt+"' />"+
					"<button type='button' id='"+$.dialog.el_obj.ok_btn+"' name='"+$.dialog.el_obj.ok_btn+"'>OK</button>"+
					"<button type='button' id='"+$.dialog.el_obj.cancel_btn+"' name='"+$.dialog.el_obj.cancel_btn+"'>キャンセル</button>"
				);
				var ok_btn=$("#"+$.dialog.el_obj.ok_btn,"div#"+$.dialog.el_obj.btn_group);
				var cancel_btn=$("#"+$.dialog.el_obj.cancel_btn,"div#"+$.dialog.el_obj.btn_group);
				var prompt_el=$("#"+$.dialog.el_obj.prompt,"div#"+$.dialog.el_obj.btn_group);
				ok_btn
					.click(function(){
						$.xHighLight();
						if(callback) callback(prompt_el.val());
					})
					.keypress(function(e){
						if(e.keyCode==13) ok_btn.trigger('click');
						if(e.keyCode==27) cancel_btn.trigger('click');
					});
				cancel_btn
					.click(function(){
						$.xHighLight();
						if(callback) callback(null);
					})
					.keypress(function(e){
						if(e.keyCode==13||e.keyCode==27) cancel_btn.trigger('click');
					});
				prompt_el
					.keypress(function(e){
						if(e.keyCode==13) ok_btn.trigger('click');
						if(e.keyCode==27) cancel_btn.trigger('click');
					}).focus().select();
					
				if(val) prompt_el.val(val);
				
				break;
			case "message":
				break;
		}
	}
	
}
//shortcut
/****************************************************************/
$.alert=$.dialog.xAlert;
$.confirm=$.dialog.xConfirm;
$.prompt=$.dialog.xPrompt;
$.message=$.dialog.xMessage;

/****************************************************************/
})(jQuery);

