diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b9d6bd9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/README.md b/README.md index 40023b9..a3f01f5 100644 --- a/README.md +++ b/README.md @@ -1,90 +1,197 @@ -jQuery MsgBox -============= - -0.2.6 BETA - -What is it? ------------ - -Firefox style simplist dialog form. - - -How to use this? ----------------- - -It's quiet simple. - -```html - - -``` - -alert("i'm alert"); --> $.alert("i'm alert"); - -confirm("Are you sure?"); --> $.confirm("Are you sure?"); - -prompt("please text me."); --> $.prompt("please text me."); - -Wait! YOU MUST SEE BEFORE USE THIS PLUGIN, ------------------------------------------- -this plugin is can't replace as javascript standard function (alert, etc.) -because, this plugin cannot wait user action while showing dialog. -If you want get user's action, put a callback function in next of message param. -when user clicked in a dialog button, such as OK or cancel, msgbox will call your defined function. - -OK. so, How to use with callback function? ------------------------------------------- - -jQuery.MsgBox can add your callback function for provide next action after user clicked. -It's Very simple. - -```js -$.alert("click me.",function(){ - $.alert('you clicked'); -}); -``` -```js -$.confirm("press OK or Cancel.",function(bool){ - $.alert('you clicked'+(bool?'OK':'cancel')); -}); -``` -```js -$.prompt("what's your name?",function(string){ - $.alert('your name is '+string); -}); -``` - -I want view live example. -------------------------- - -OK. [here an example](http://jsfiddle.net/preFy/ "live example"). - -What browser can run with this plugin? --------------------------------------- -first, jQuery 1.4 or later needed. -and, You can run with most popular major browser, -Internet Explorer 8 or above, Firefox 3 or above, Safari 4 or above, Chrome 10 or above, Opera 9 or above. -NOTE : Old school browser, such as IE 7 or lower is have a problem with CSS issue. -that's all. this plugin have NO images or other resources. - -Wow! It's simple and cool! can I join with you for make better this plugin? ---------------------------------------------------------------------------- - -Sure. contributes are welcome! just fork this plugin and get involved to make a better place for you and for me. - - -License -------- - -(The MIT License) - -Copyright (c) 2011-2012 Ukjin 'composite' Yang - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +# jQuery MsgBox + +0.8.1 BETA + +## What is it? + +Firefox style simplist dialog form. + + +## How to install? + +before install, you must have [jQuery](http://jquery.com/download/) >= 1.5.0, I strongly recommand you have a lastest version. + +That's very simple. just download below lastest version, + + - [Minified (for production)](https://raw.github.com/composite/jQuery.MsgBox/master/jquery.msgbox.min.js) + - [Unminified (for development)](https://raw.github.com/composite/jQuery.MsgBox/master/jquery.msgbox.js) + +If you have bower? just type in your console. + +``` +bower install msgbox +``` + +Still not easy? OH PLZ... + +## How to use this? + +It's quiet simple. + +```html + + +``` + + alert("i'm alert"); + -> $.alert("i'm alert"); + + confirm("Are you sure?"); + -> $.confirm("Are you sure?"); + + prompt("please text me."); + -> $.prompt("please text me."); + +## Wait! YOU MUST SEE BEFORE USE THIS PLUGIN, +this plugin is can't replace as javascript standard function (alert, etc.) +because, this plugin cannot wait user action while showing dialog. +If you want get user's action, put a callback function in next of message param. +when user clicked in a dialog button, such as OK or cancel, msgbox will call your defined function. + +Please don't.. +```js +form.submit=function(){ + //All MsgBox function returns MsgBox Container Object. so it'll return always true. + if($.confirm('Are you sure to save it?')){ + return true;//Page will changed without your confirm. + } + return false; +} +``` +**So, what can I do?** + +```js +form.submit=function(){ + if(!form.confirm){//Use variables or DOM objects or whatever you want. + $.confirm('Are you sure to save it?',function(answer){ + form.confirm=answer; + if(answer) form.submit();//submit again to verify confirm value. + }); + return false;//You should use this line to prevent page changes. + }else return true; +} +``` +* You can use another solution to solve this. + +## OK. so, How to use with callback function? + +jQuery.MsgBox can add your callback function for provide next action after user clicked. +It's Very simple. + +```js +$.alert("click me.",function(){ + $.alert('you are clicked!'); +}); +``` +```js +$.confirm("press OK or Cancel.",function(bool){ + $.alert('you are clicked '+(bool?'OK':'cancel')); +}); +``` +```js +$.prompt("what's your name?",function(string){ + $.alert('your name is '+string); +}); +``` + +## I want view live example. + +Sure. [here's an example](http://jsfiddle.net/preFy/ "live example"). + +## What browser can run with this plugin? + +first, jQuery 1.5 or later needed. +and, You can run with most popular major browser, +Internet Explorer 8 or above, Firefox 3 or above, Safari 4 or above, Chrome 10 or above, Opera 9 or above. +NOTE : Old school browser, such as IE 7 or lower is have a problem with CSS issue. +that's all. this plugin have NO images or other resources. + +## I want use as own style, is it possible? + +Yes. check out [Wiki](https://github.com/composite/jQuery.MsgBox/wiki) for detailed usage. + +## Wow! It's simple and cool! can I join with you for make better this plugin? + +Sure. contributes are welcome! just fork this plugin and get involved to make a better place for you and for me. + +## Hey, I'm using IE version under 9, Msgbox flicking when showing MsgBox. What's happening? + +Sorry. that is prevent changing width dynamically after center align on IE. I don't know it is bug, but I'll figure out it. + +## Goals + + - More Simplify and Optimization. + - Less Size and Unresolved Issues. + - **All Methods will returns Deferred Object instead of DOM Container** ??? Well, I'll think about it. + +## What's new? + +### 0.8.1 + + - Some code optimization. + - Use UglifyJS for minification, instead of YUI compressor. + +### 0.8.0 + + - Major UI changes: more compatibility to view, Wrapped more a div to centering layer using only CSS (but still vertical centering using JS). + - NEW property: onopen event property and $.msgbox.onopen static property; Fires after msgbox opened. + - NEW property: onclose event property and $.msgbox.onclose static property; Fires before msgbox closing. + - 2 new property for your own CSS or JS animation effect. onclose event also support jQuery Deferred Object. See [Wiki](https://github.com/composite/jQuery.MsgBox/wiki) for details. + +### 0.7.5 + + - console.log() for test will not fired in production mode. + +### 0.7.4 + + - Container add for prompt bug fixed. + - fixed prompt UI. + +### 0.7.3 (internal) + + - onresize event callback changed; this keyword will point to msgbox container. plain DOM, not jQuery. + +### 0.7.2 (internal) + + - remove static property **customStyle**. just add style `````` or `````` instead. + - Fixed minor UI bugs. + +### 0.7.1 (Internal) + + - Fixed some bug. + - console.log() for test is will not fired in production mode. + +### 0.7.0 (Internal) + + - Replaced inline style to inline CSS for more performance. + - Removed css property in $.msgbox() use $.msgbox.css or own standard CSS instead. + - input property of $.msgbox changed. You can set any human-view type (string, number, etc). if not want prompt, just set false or undefined or null. + - Fixed ENTER or ESC press event bug in input box + - new property: onresize; available on $.msgbox() or $.msgbox.onresize static property. You can prepare when window size changes. see wiki for details. + - new static property: customStyle; You want set own style instead of default style, just add your code : ```$.msgbox.customStyle = true;``` + +### 0.6.1 + + - Fixed forced true callback after press ENTER key. focused button will fired event if you press ENTER key. + +### 0.6.0 + + - Auto resizing added. Msgbox will show full size when window size less than alert size, If not, revert to original size. + +### 0.5.0 + + - Use <div> with white-space: pre; instead of <pre> for more better view of MsgBox with CSS Framework such as Bootstrap. + - Remove Browser compatibility for position:fixed is buggy under IE 7, so this will support jQuery over 1.8! I'll never test freaking old browsers. + - Remove jQuery in my repository, Use any available jQuery CDN in demo instead. + +## License + +(The MIT License) + +Copyright (c) 2011-2012 Ukjin 'composite' Yang + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..a2797da --- /dev/null +++ b/bower.json @@ -0,0 +1,13 @@ +{ + "name": "msgbox", + "version": "0.8.1", + "description": "The Message box for web, Firefox style, User notification made simple.", + "keywords": ["alert","confirm","prompt","msgbox","dialog","notification","ui","simple"], + "authors": ["Composite"], + "license": "MIT", + "homepage": "https://github.com/composite/jQuery.MsgBox", + "main": ["jquery.msgbox.min.js"], + "ignore": ["*.json"], + "dependencies": {"jquery": ">= 1.5.0"}, + "devDependencies": {} +} diff --git a/demo.html b/demo.html index 7e842f8..5d004bc 100644 --- a/demo.html +++ b/demo.html @@ -7,13 +7,13 @@ - + - - + + + + + + \ No newline at end of file diff --git a/jquery-1.7.2.min.js b/jquery-1.7.2.min.js deleted file mode 100644 index 16ad06c..0000000 --- a/jquery-1.7.2.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7.2 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="
"+""+"
",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
t
",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( -a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<(?:"+V+")[\\s/>]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f -.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/jquery.msgbox.js b/jquery.msgbox.js index fc9a9b5..607a007 100644 --- a/jquery.msgbox.js +++ b/jquery.msgbox.js @@ -1,183 +1,355 @@ -/************************************************************************************** - * jQuery MsgBox 0.2.6 - * by composite (ukjinplant@msn.com) - * http://blog.hazard.kr - * This project licensed under a MIT License. - **************************************************************************************/; -(function ($) { - var nofix = $.browser.msie && ~~$.browser.version < 8, - fixed = nofix ? 'absolute' : 'fixed'; - $.msgbox = function (msg, options) { - //옵션 가공 - options = $.extend({}, $.msgbox.options, options); - //변수 및 요소 정의 - var io = {}, - mb = 'msgbox-', - cok = mb + '-ok', - cno = mb + '-no', - pw = 'password', - styles = options.css || {}, - t = !0, - f = !1, - p = ('input' in options), - q = !! options.confirm, - $C = $("
").addClass(mb + 'ui').css(styles.ui || {}), - //경고창 - $M = $("
­
").addClass(mb + 'modal').css(styles.modal || {}), - //경고창 배경 - $T = $("
").addClass(mb + 'msg').css(styles.msg || {}).html(msg).appendTo($C),
-            //경고 내용
-            $I = p ? $("
").addClass(mb + 'inbox').css(styles.indiv || {}).children().addClass(mb + 'input').css(styles.input || {}).end().appendTo($C) : null, - //입력 모드시 입력창 - $B = $("
").addClass(mb + 'buttons').css(styles.buttons || {}).appendTo($C), - //경고 버튼 나열 - $BT = $("").addClass(mb + 'button').css(styles.button || {}), - //버튼 원형 - $BS = [ - $BT.clone(t).addClass(cok).text(q ? options.yes : options.ok).appendTo($B), p || q ? $BT.clone(t).addClass(cno).text(options.no).appendTo($B) : null]; //경고 버튼들 - //입력 모드시 조치사항 - if (p) { - options.confirm = t; //확인 모드 맞음. - if (typeof (options.input) == 'string') $I.children().val(options.input); - } - //경고창 비활성화 전 - io.before = function (e) { - var code = window.event ? window.event.keyCode : e.which; - switch (code) { - case 13: - $C.find('button.' + cok).trigger('click'); - return f; - case 0: - case 27: - $C.find('button.' + (p || q ? cno : cok)).trigger('click'); - return f; - } - }; - //body에 삽입 후 레이아웃 잡기 - var kp = 'keypress', - kt = '.' + mb + 'ui,.' + mb + 'modal', - $D = $(document.documentElement ? document.documentElement : document.body).append($M).append($C).bind(kp, io.before); - //$C.add($M).keypress(io.before); - //경고창 비활성화 후 - io.after = function (b, v) { - for (var i = 0, cn = b.className.split(' '); i < cn.length; i++) - switch (cn[i]) { - case cok: - switch (t) { - case p: - options.submit.call($C[0], v); - break; - case q: - options.submit.call($C[0], !! t); - break; - default: - options.submit.call($C[0]); - break; - } - break; - case cno: - if (p || !(p && q)) { - options.submit.call($C[0]); - } else { - options.submit.call($C[0], f); - } - break; - } - $D.unbind(kp, io.before); - }; - //공통 경고 클릭 시 조치 - $C.delegate('button', 'click', function (e) { - $C.add($M).remove(); - io.after(this, p ? $I.children().val() : null); - }).delegate('input', 'keypress', io.before); - //레이아웃 자동정렬 - if (styles.ui) $C.css({ - 'margin-left': ~~ (-$C.outerWidth() * 0.5) + 'px', - 'margin-top': ~~ (-$C.outerHeight() * 0.75) + 'px' - }); - //경고창 포커스 - if (p) $C.find('input:text').select(); - else $C.find('button:eq(0)').focus(); - return $C; - }; - $.extend($.msgbox, { - strings: { - ok: 'OK', - yes: 'OK', - no: 'Cancel' - }, - css: { - ui: { - 'border': '1px solid black', - 'font': '9pt verdana,gulim,sans-serif', - 'background-color': 'white', - 'position': fixed, - 'left': '50%', - 'top': '50%', - 'overflow': 'hidden' - }, - modal: { - 'position': fixed, - 'left': '0', - 'top': '0', - 'right': '0', - 'bottom': '0', - 'background-color': 'black', - 'opacity': '.5' - }, - msg: { - 'padding': '2em 4em', - 'overflow': 'hidden', - 'font-family': 'verdana,gulim,sans-serif' //,'max-width':(screen.availWidth*0.9)+'px' - }, - buttons: { - 'padding': '1em', - 'background-color': '#eee', - 'text-align': 'right', - 'overflow': 'hidden' - }, - button: { - 'width': '72px', - 'margin': 'auto .25em' - }, - indiv: { - 'width': '90%', - 'margin': '-2em auto 2em', - 'border': '1px inset #3D7BAD' - }, - input: { - 'width': '100%', - 'display': 'block', - 'border': '0' - } - } - }); - $.msgbox.options = { - submit: function () {}, - confirm: false, - //input:false, - css: $.msgbox.css, - ok: $.msgbox.strings.ok, - yes: $.msgbox.strings.yes, - no: $.msgbox.strings.no - }; - $.alert = function (msg, callback) { - return $.msgbox(msg, { - submit: callback - }); - }; - $.confirm = function (msg, callback) { - return $.msgbox(msg, { - confirm: true, - submit: callback - }); - }; - $.prompt = function (msg, val, callback, pw) { - var shift = $.isFunction(val); - return $.msgbox(msg, { - input: shift ? true : val, - submit: shift ? val : callback, - password: shift ? callback : pw - }); - }; +/************************************************************************************** + * jQuery MsgBox 0.8.1 + * by composite (ukjinplant@msn.com) + * http://blog.hazard.kr + * This project licensed under a MIT License. + **************************************************************************************/; +(function ($) { + if(!window.console){ + window.console = {}; + window.console.log = $.noop; + } + var fixed = 'fixed', div = 'div', kp = 'keypress', rs = 'resize', mb = 'msgbox-', dmb = '.' + mb, cst = mb + '-style', btn = 'button', clk = 'click', legacy = 'v' == '\v' //IE 8 대응. + ,isCssDef = function(css){ + return !css || css == 'auto'; + },$$ = function(tag){return $(document.createElement(tag));}; + + //첫 메시지박스 실행시 스타일시트 삽입 + var styleGen = function(style, repl){ + if(styleGen.once && !repl) return; + style = style || {}; + var css = styleGen.style ? styleGen.style : (styleGen.style = $$('style').addClass(cst).attr('type','text/css')), builder = []; + + for(var part in style){ + if(!style[part]){continue;} + var cs = style[part]; + + builder.push(dmb + part); + builder.push('{'); + + for(var name in cs){ + if(legacy){ + switch(name){ + case 'opacity':builder.push('filter:alpha(opacity=' + (+(cs[name].substring(0,1) == '.' ? ('0'+cs[name]) : cs[name]) * 100 || 100) + ');');break; + default:builder.push(name + ':' + cs[name] + ';');break; + } + }else{ + builder.push(name + ':' + cs[name] + ';'); + } + } + + builder.push('}'); + } + + css.each(function(){ // IE 8 때문에 별도의 방법 사용 + var cont = builder.join(''); + if(legacy){ // IE 문제 해결 + this.styleSheet.cssText = cont; + }else{ // 나머지는 표준대로 + this.innerHTML = cont; + } + }).appendTo('head'); + styleGen.once = true; + } + + //함수 실행부 + $.msgbox = function (msg, options) { + //옵션 가공 + options = $.extend({}, $.msgbox.options, options); + + //스타일 생성 + if(!$(cst).length){styleGen($.msgbox.css);} + + //변수 및 요소 정의 + var io = {}, + cok = mb + 'ok', + cno = mb + 'no', + pw = 'password', + styles = options.css || {}, + t = !0, + f = !1, + p = options.input !== false && options.input != undefined && options.input != null, + q = !!options.confirm, + iae = function(e) { //포커스된 요소가 메시지박스 아니면 메시지박스로 강제 포커스 이동 + setTimeout(function(){ + var act=$(document.activeElement),ms=[dmb+'input',dmb+btn]; + if(act.length&&(act.is(ms[0])||act.is(ms[1]))){ + //console.log('good.'); + } + else $C.find(ms+'').eq(0).focus(); + },0); + }, + $W = $(window), + //경고창 + $C = $$(div).addClass(mb + 'container').append($$(div).addClass(mb + 'ui').addClass(mb + (p ? 'prompt' : (q ? 'confirm' : 'alert')))).children(), + //경고창 배경 + $M = $$(div).addClass(mb + 'modal'), + //경고 내용 + $T = $$(div).addClass(mb + 'msg').html(msg).appendTo($C), + //입력 모드시 입력창 + $I = p ? + $("
").addClass(mb + 'inbox').children() + .addClass(mb + 'input').bind('keydown',function(e){//탭의 역순 시 마지막 버튼 포커스 + var code = e.which; + if(code == 9 && e.shiftKey){ + e.preventDefault(); + $C.find(dmb+btn).filter(':last').focus(); + }else{ + switch(code){ + case 13://엔터는 확인 + e.preventDefault(); + $C.find(btn + '.' + cok).trigger(clk); + return false; + case 27://ESC는 취소 + e.preventDefault(); + $C.find(btn + '.' + (p || q ? cno : cok)).trigger(clk); + break; + } + } + }).bind('blur',iae).end().appendTo($C) + : null, + //경고 버튼 나열 + $B = $$(div).addClass(mb + 'buttons').appendTo($C), + //기본 버튼 + $BT = $$(btn).addClass(mb + btn).bind('keydown',function(e){ + if(this!=document.activeElement) return; + + e.stopPropagation(); + var code = e.which,that=$(this),target,shift=e.shiftKey; + switch (code) { + case 9://탭키 누르면 다음 버튼 및 입력창 포커스 + case 39://오른쪽키 누르면 다음 버튼으로만 포커스 + e.preventDefault(); + if(target=that[code==9&&shift?'prev':'next'](btn),target.length) target.focus(); + else if(code==9){ + if(target=$C.find(dmb+'input'),target.length) target.select(); + else if(target=that[shift?'next':'prev'](btn),target.length) target.focus(); + } + break; + case 37://왼쪽키는 이전 버튼으로만 포커스 + e.preventDefault(); + if(target=that.prev(btn),target.length) target.focus(); + break; + case 27://ESC는 무조건 취소처리 + e.preventDefault(); + $C.find(btn + '.' + (p || q ? cno : cok)).trigger(clk); + break; + } + }).bind('blur',iae), + //버튼 원형 + $BS = [ + $BT.clone(t).addClass(cok).text(q ? options.yes : options.ok).appendTo($B), p || q ? $BT.clone(t).addClass(cno).text(options.no).appendTo($B) : null]; //경고 버튼들 + $C.add($M).bind('keydown',function(){}); + $.extend($C[0], {container: $C.parent()[0],modal: $M[0], msg: $T[0], inbox: $I ? $I[0] : null, buttons: $B[0]}); + //입력 모드시 조치사항 + if (p) { + options.confirm = t; //확인 모드 맞음. + if (options.input !== true) $I.children().val(options.input); + } + //윈도우 리사이징에 대한 메시지박스 반응 + $W.bind(rs,io[rs] = function() { + if(!io.firstWidth){ + io.firstUnder = true; + io.firstWidth = $C.outerWidth(); + //console.log(io.firstWidth); + } + var isOver = $W.width() - 20 <= io.firstWidth; + if (!$.isFunction(options.onresize)){ + if($.isFunction($.msgbox.onresize)){ + $.msgbox.onresize.call($C[0], io); + } + }else{ + options.onresize.call($C[0], io); + } + }); + //경고창 비활성화 전 + io.before = function (e) { + e.stopPropagation(); + var code = window.event ? window.event.keyCode : e.which; + //전역 메시지박스에도 before가 붙으므로 격리. + if(e.target.type=='text'&&!code){ + $C.find(btn + '.' + (p || q ? cno : cok)).trigger(clk); + return f; + } + switch (code) { + case 13: + $C.find(btn + ':focus').trigger('click'); + return f; + case 27: + $C.find(btn + '.' + (p || q ? cno : cok)).trigger(clk); + return f; + } + }; + //body에 삽입 후 레이아웃 잡기 + var kt = dmb + 'ui,' + dmb + 'modal', + $D = $(document.documentElement || document.body).append($M).append($C.parent()).bind(kp, io.before); + //경고창 비활성화 후 + io.after = function (b, v) { + var isok = $(b).hasClass(cok); + switch (t) { + case p: + options.submit.call($C[0], isok ? v : null); + break; + case q: + options.submit.call($C[0], isok); + break; + default: + options.submit.call($C[0]); + break; + } + $D.unbind(kp, io.before); + $W.unbind(rs, io[rs]); + }; + //공통 경고 클릭 시 조치 + $C.delegate(btn, clk, function (e) { + var cleanup = function(){ + $C.parent().add($M).remove(); + },onclose = options.onclose || $.msgbox.onclose; + + io.after(this, p ? $I.children().val() : null); + + if($.isFunction(onclose)) $.when(onclose.call($C[0], p ? I.children().val() : $(this).hasClass(cok))).always(cleanup); + else cleanup(); + }); + + var prepare = function(){ + //레이아웃 자동정렬 + $W.trigger(rs); + //경고창 포커스 + if (p) $C.find('input:text').select(); + else $C.find(btn + ':eq(0)').focus(); + //onopen 이벤트 발생 + var onopen = options.onopen || $.msgbox.onopen; + if($.isFunction(onopen)) onopen.call($C[0], options); + }; + + if(legacy){setTimeout(prepare,0);} + else{prepare();} + + return $C; + }; + $.extend($.msgbox, { + strings: { + ok: 'OK', + yes: 'OK', + no: 'Cancel' + }, + css: { + container: { + 'position': fixed, + 'left': '50%', + 'top': '32%', + 'z-index': '9001' + }, + ui: { + 'border': '1px solid black', + 'font': '9pt verdana,gulim,sans-serif', + 'background-color': 'white', + 'position': 'relative', + 'left': '-50%', + 'top': '32%', + 'overflow': 'hidden', + 'float': 'right' + }, + modal: { + 'position': fixed, + 'left': '0', + 'top': '0', + 'right': '0', + 'bottom': '0', + 'background-color': 'black', + 'opacity': '.4', + 'z-index': '9000' + }, + msg: { + 'padding': '2em 4em', + 'overflow': 'hidden', + 'font-family': 'verdana,gulim,sans-serif', + //'max-width':(screen.availWidth*0.9)+'px', + 'white-space': 'pre-wrap', + 'word-wrap': 'break-word' + }, + buttons: { + 'padding': '1em', + 'background-color': '#eee', + 'text-align': 'right', + 'overflow': 'hidden' + }, + button: { + 'width': '72px', + 'margin': 'auto .25em' + }, + inbox: { + 'width': '90%', + 'margin': '-1em auto 1em', + 'border': '1px inset #3D7BAD' + }, + input: { + 'width': '99%', + 'display': 'block', + 'border': '0' + } + }, + onresize: function(io){ + var $C = $(this), $P = $C.parent(); + if(!io.firstWidth){ + io.firstUnder = true; + io.firstWidth = $C.outerWidth(); + //console.log(io.firstWidth); + } + var isOver = $(window).width() - 20 <= io.firstWidth; + if(isOver && !io.isOver){ + //console.log('OVER'); + io.isOver = true; + $P.css({ + 'left': '10px', + 'right': '10px', + 'margin-top': ~~ (-$C.outerHeight() * 0.32) + 'px', + 'min-width': '' + }); + $C.css({position:'static'}); + }else if((!isOver && io.isOver) || io.firstUnder){ + //console.log('UNDER'); + io.firstUnder = false; + io.isOver = false; + $P.css({ + 'left': '', + 'right': '', + 'margin-top': ~~ (-$C.outerHeight() * 0.32) + 'px', + 'min-width': io.firstWidth + 'px' + }); + $C.css({position:''}); + } + } + }); + $.msgbox.options = { + submit: function () {}, + confirm: false, + //input:false, + //onresize: function(){}, + //onopen: function(){}, + //onclose: function(){}, + ok: $.msgbox.strings.ok, + yes: $.msgbox.strings.yes, + no: $.msgbox.strings.no + }; + $.alert = function (msg, callback) { + return $.msgbox(msg, { + submit: callback + }); + }; + $.confirm = function (msg, callback) { + return $.msgbox(msg, { + confirm: true, + submit: callback + }); + }; + $.prompt = function (msg, val, callback, pw) { + var shift = $.isFunction(val); + return $.msgbox(msg, { + input: shift ? true : val, + submit: shift ? val : callback, + password: shift ? callback : pw + }); + }; })(jQuery); \ No newline at end of file diff --git a/jquery.msgbox.min.js b/jquery.msgbox.min.js index 54869fa..0ac1a94 100644 --- a/jquery.msgbox.min.js +++ b/jquery.msgbox.min.js @@ -1,7 +1,7 @@ -/*************************************************************** - * jQuery MsgBox 0.2.6 - * by composite (ukjinplant@msn.com) - * http://blog.hazard.kr - * Licensed under MIT License. - ***************************************************************/ - (function(b){var c=b.browser.msie&&~~b.browser.version<8,a=c?"absolute":"fixed";b.msgbox=function(h,g){g=b.extend({},b.msgbox.options,g);var j={},d="msgbox-",i=d+"-ok",B=d+"-no",o="password",k=g.css||{},m=!0,y=!1,u=("input" in g),r=!!g.confirm,z=b("
").addClass(d+"ui").css(k.ui||{}),v=b("
­
").addClass(d+"modal").css(k.modal||{}),l=b("
").addClass(d+"msg").css(k.msg||{}).html(h).appendTo(z),w=u?b("
").addClass(d+"inbox").css(k.indiv||{}).children().addClass(d+"input").css(k.input||{}).end().appendTo(z):null,A=b("
").addClass(d+"buttons").css(k.buttons||{}).appendTo(z),n=b("").addClass(d+"button").css(k.button||{}),s=[n.clone(m).addClass(i).text(r?g.yes:g.ok).appendTo(A),u||r?n.clone(m).addClass(B).text(g.no).appendTo(A):null];if(u){g.confirm=m;if(typeof(g.input)=="string"){w.children().val(g.input)}}j.before=function(p){var f=window.event?window.event.keyCode:p.which;switch(f){case 13:z.find("button."+i).trigger("click");return y;case 0:case 27:z.find("button."+(u||r?B:i)).trigger("click");return y}};var e="keypress",C="."+d+"ui,."+d+"modal",x=b(document.documentElement?document.documentElement:document.body).append(v).append(z).bind(e,j.before);j.after=function(f,p){for(var q=0,t=f.className.split(" ");q
").addClass(f+"inbox").children().addClass(f+"input").bind("keydown",function(a){var b=a.which;if(9==b&&a.shiftKey)a.preventDefault(),z.find(g+i).filter(":last").focus();else switch(b){case 13:return a.preventDefault(),z.find(i+"."+p).trigger(j),!1;case 27:a.preventDefault(),z.find(i+"."+(v||w?q:p)).trigger(j)}}).bind("blur",x).end().appendTo(z):null,D=m(c).addClass(f+"buttons").appendTo(z),E=m(i).addClass(f+i).bind("keydown",function(b){if(this==document.activeElement){b.stopPropagation();var e,c=b.which,d=a(this),f=b.shiftKey;switch(c){case 9:case 39:b.preventDefault(),e=d[9==c&&f?"prev":"next"](i),e.length?e.focus():9==c&&(e=z.find(g+"input"),e.length?e.select():(e=d[f?"next":"prev"](i),e.length&&e.focus()));break;case 37:b.preventDefault(),e=d.prev(i),e.length&&e.focus();break;case 27:b.preventDefault(),z.find(i+"."+(v||w?q:p)).trigger(j)}}}).bind("blur",x);[E.clone(t).addClass(p).text(w?l.yes:l.ok).appendTo(D),v||w?E.clone(t).addClass(q).text(l.no).appendTo(D):null],z.add(A).bind("keydown",function(){}),a.extend(z[0],{container:z.parent()[0],modal:A[0],msg:B[0],inbox:C?C[0]:null,buttons:D[0]}),v&&(l.confirm=t,l.input!==!0&&C.children().val(l.input)),y.bind(e,o[e]=function(){o.firstWidth||(o.firstUnder=!0,o.firstWidth=z.outerWidth()),y.width()-20<=o.firstWidth,a.isFunction(l.onresize)?l.onresize.call(z[0],o):a.isFunction(a.msgbox.onresize)&&a.msgbox.onresize.call(z[0],o)}),o.before=function(a){a.stopPropagation();var b=window.event?window.event.keyCode:a.which;if("text"==a.target.type&&!b)return z.find(i+"."+(v||w?q:p)).trigger(j),u;switch(b){case 13:return z.find(i+":focus").trigger("click"),u;case 27:return z.find(i+"."+(v||w?q:p)).trigger(j),u}};var H=a(document.documentElement||document.body).append(A).append(z.parent()).bind(d,o.before);o.after=function(b,c){var f=a(b).hasClass(p);switch(t){case v:l.submit.call(z[0],f?c:null);break;case w:l.submit.call(z[0],f);break;default:l.submit.call(z[0])}H.unbind(d,o.before),y.unbind(e,o[e])},z.delegate(i,j,function(){var c=function(){z.parent().add(A).remove()},d=l.onclose||a.msgbox.onclose;o.after(this,v?C.children().val():null),a.isFunction(d)?a.when(d.call(z[0],v?I.children().val():a(this).hasClass(p))).always(c):c()});var J=function(){y.trigger(e),v?z.find("input:text").select():z.find(i+":eq(0)").focus();var b=l.onopen||a.msgbox.onopen;a.isFunction(b)&&b.call(z[0],l)};return k?setTimeout(J,0):J(),z},a.extend(a.msgbox,{strings:{ok:"OK",yes:"OK",no:"Cancel"},css:{container:{position:b,left:"50%",top:"32%","z-index":"9001"},ui:{border:"1px solid black",font:"9pt verdana,gulim,sans-serif","background-color":"white",position:"relative",left:"-50%",top:"32%",overflow:"hidden","float":"right"},modal:{position:b,left:"0",top:"0",right:"0",bottom:"0","background-color":"black",opacity:".4","z-index":"9000"},msg:{padding:"2em 4em",overflow:"hidden","font-family":"verdana,gulim,sans-serif","white-space":"pre-wrap","word-wrap":"break-word"},buttons:{padding:"1em","background-color":"#eee","text-align":"right",overflow:"hidden"},button:{width:"72px",margin:"auto .25em"},inbox:{width:"90%",margin:"-1em auto 1em",border:"1px inset #3D7BAD"},input:{width:"99%",display:"block",border:"0"}},onresize:function(b){var c=a(this),d=c.parent();b.firstWidth||(b.firstUnder=!0,b.firstWidth=c.outerWidth());var e=a(window).width()-20<=b.firstWidth;e&&!b.isOver?(b.isOver=!0,d.css({left:"10px",right:"10px","margin-top":~~(.32*-c.outerHeight())+"px","min-width":""}),c.css({position:"static"})):(!e&&b.isOver||b.firstUnder)&&(b.firstUnder=!1,b.isOver=!1,d.css({left:"",right:"","margin-top":~~(.32*-c.outerHeight())+"px","min-width":b.firstWidth+"px"}),c.css({position:""}))}}),a.msgbox.options={submit:function(){},confirm:!1,ok:a.msgbox.strings.ok,yes:a.msgbox.strings.yes,no:a.msgbox.strings.no},a.alert=function(b,c){return a.msgbox(b,{submit:c})},a.confirm=function(b,c){return a.msgbox(b,{confirm:!0,submit:c})},a.prompt=function(b,c,d,e){var f=a.isFunction(c);return a.msgbox(b,{input:f?!0:c,submit:f?c:d,password:f?d:e})}}(jQuery); \ No newline at end of file diff --git a/msgbox.jquery.json b/msgbox.jquery.json new file mode 100644 index 0000000..3c50cb4 --- /dev/null +++ b/msgbox.jquery.json @@ -0,0 +1,31 @@ +{ + "name": "msgbox", + "title": "jQuery MsgBox", + "description": "The Message box for web, Firefox style, User notification made simple.", + "keywords": ["alert","confirm","prompt","msgbox","dialog","notification","ui","simple"], + "version": "0.8.1", + "author": { + "name": "Composite", + "url": "http://hazard.kr/" + }, + "maintainers": [ + { + "name": "Composite", + "email": "ukjinplant@msn.com", + "url": "http://hazard.kr/" + } + ], + "licenses": [ + { + "type": "MIT", + "url": "http://opensource.org/licenses/MIT" + } + ], + "bugs": "https://github.com/composite/jQuery.MsgBox/issues", + "homepage": "https://github.com/composite/jQuery.MsgBox", + "docs": "https://github.com/composite/jQuery.MsgBox/wiki", + "download": "https://raw.github.com/composite/jQuery.MsgBox/master/jquery.msgbox.min.js", + "dependencies": { + "jquery": ">=1.5" + } +} \ No newline at end of file diff --git a/readme.txt b/readme.txt deleted file mode 100644 index 9c27fe8..0000000 --- a/readme.txt +++ /dev/null @@ -1,60 +0,0 @@ -jQuery MsgBox 0.2.6 Beta - -MIT License - -Basic Usage : - -$.alert(message,callback) : normal alert - message : alert message - callback : a function that call after user clicked ok button. - function(){ - //'this' keyword scopes alert container. - } - -$.confirm(message,callback) : normal confirm - message : confirm message - callback : a function that call after user click ok or cancel button - function(bool){ - //bool is a boolean value that true if user click ok, false if user click cancel. - //'this' keyword scopes alert container. - } - -$.prompt(message,value,callback,ispassword) : normal prompt alert - message : prompt message - value : a string value that default prompt value. - callback : a function that call after user click ok or cacel button - function(value){ - //value will provide user prompt value to your callback function. - //when user clicked ok, value arg will provide user defined value. - //but when user clicked cacel, value arg will provide 'undefined' value. NOT NULL. UNDEFINED. - //when user input no word in prompt value and clicked ok, value arg will provide empty string. - //'this' keyword scopes alert container. - } - -Advenced Usage : - -$.msgbox(message,options) : A prototype of jQuery msgbox function. - message : A message of msgbox. - options : A options. - submit : callback function. default is null. - confirm : the msgbox will user confirm box, true. otherwise, false. default is false. - input : the msgbox will prompt, give true or value string. otherwise you shouldn't define this option. - css : a jQuery style css json value. default is firefox style defined css. - ui : msgbox container style - modal : modal background style - msg : message area style - buttons : common button style - indiv : text input container style - input : test input style - ok : a string defined alert ok button. default is 'OK'. - yes : a string defined confirm or prompt ok button. default is 'OK'. - no : a string defined confirm or prompt cancel button. default is 'Cancel'. - -Tested Browser : -Internet Explorer 8 or above, Firefox 3 or above, Chrome 9 or above, Safari 3 or above. - NOT Supported Browser : Internet Explorer 7 or lower due to CSS issue. but you can define alternative css to prevent not support browser issue. -jQuery 1.4 or above. (delegate method used.) - -Known Issues : - -jQuery MsgBox is NOT awaiting user confirmation while script running. you should give callback function to provide next process.