webshims-rails 0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/MIT_LICENSE.txt +20 -0
- data/Rakefile +1 -0
- data/lib/webshims-rails.rb +13 -0
- data/lib/webshims-rails/version.rb +6 -0
- data/readme.textile +26 -0
- data/vendor/assets/javascripts/webshims/minified/extras/custom-validity.js +9 -0
- data/vendor/assets/javascripts/webshims/minified/extras/modernizr-custom.js +19 -0
- data/vendor/assets/javascripts/webshims/minified/extras/mousepress.js +2 -0
- data/vendor/assets/javascripts/webshims/minified/polyfiller.js +27 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/README +62 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/canvas2png.js +42 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/flashcanvas.js +28 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/flashcanvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/proxy.php +73 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/save.php +49 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/README +82 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/canvas2png.js +42 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flash10canvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flash9canvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flashcanvas.js +31 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/proxy.php +73 -0
- data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/save.php +49 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/1.js +33 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/10.js +75 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/11.js +39 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/12.js +38 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/13.js +25 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/14.js +19 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/15.js +10 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/16.js +53 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/17.js +62 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/18.js +64 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/19.js +60 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/2.js +61 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/20.js +42 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/21.js +40 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/22.js +56 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/23.js +53 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/24.js +73 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/3.js +80 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/4.js +30 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/5.js +37 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/59.js +56 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/6.js +38 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/7.js +45 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/8.js +33 -0
- data/vendor/assets/javascripts/webshims/minified/shims/combos/9.js +62 -0
- data/vendor/assets/javascripts/webshims/minified/shims/details.js +5 -0
- data/vendor/assets/javascripts/webshims/minified/shims/dom-extend.js +20 -0
- data/vendor/assets/javascripts/webshims/minified/shims/es5.js +14 -0
- data/vendor/assets/javascripts/webshims/minified/shims/excanvas.js +35 -0
- data/vendor/assets/javascripts/webshims/minified/shims/form-core.js +21 -0
- data/vendor/assets/javascripts/webshims/minified/shims/form-datalist.js +19 -0
- data/vendor/assets/javascripts/webshims/minified/shims/form-message.js +9 -0
- data/vendor/assets/javascripts/webshims/minified/shims/form-native-extend.js +7 -0
- data/vendor/assets/javascripts/webshims/minified/shims/form-native-fix.js +9 -0
- data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-api.js +12 -0
- data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-ui.js +26 -0
- data/vendor/assets/javascripts/webshims/minified/shims/form-output.js +5 -0
- data/vendor/assets/javascripts/webshims/minified/shims/form-shim-extend.js +26 -0
- data/vendor/assets/javascripts/webshims/minified/shims/geolocation.js +5 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ar.js +7 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ch-ZN.js +3 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-de.txt +33 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-el.js +7 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-en.txt +34 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-es.js +3 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-fr.js +3 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-he.js +6 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-hi.js +6 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-hu.js +3 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-it.js +3 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ja.js +4 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-nl.js +3 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-pt-PT.js +3 -0
- data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ru.js +8 -0
- data/vendor/assets/javascripts/webshims/minified/shims/json-storage.js +14 -0
- data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/license.txt +1 -0
- data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/player.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/readme.html +87 -0
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-core.js +13 -0
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-native-fix.js +3 -0
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-swf.js +29 -0
- data/vendor/assets/javascripts/webshims/minified/shims/styles/details-arrows.png +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/styles/forms.png +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/styles/polyfill-loader.gif +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/styles/shim.css +610 -0
- data/vendor/assets/javascripts/webshims/minified/shims/swf/jwwebshims.swf +0 -0
- data/vendor/assets/javascripts/webshims/minified/shims/swf/localStorage.swf +0 -0
- data/webshims-rails.gemspec +26 -0
- metadata +149 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/MIT_LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Webshims library, copyright (c) 2010 Alexander Farkas, http://protofunc.com/
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require "webshims-rails/version"
|
2
|
+
|
3
|
+
module Webshims
|
4
|
+
module Rails
|
5
|
+
class Engine < ::Rails::Engine
|
6
|
+
# Everything in the webshims directory should be precompiled, since
|
7
|
+
# it all needs to be accessed dynamically depending on the browser
|
8
|
+
initializer :append_webshims_assets_path, :group => :all do |app|
|
9
|
+
app.config.assets.precompile << /webshims\/minified/
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/readme.textile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
h1. Webshims-rails
|
2
|
+
|
3
|
+
Easily include the "webshims library":http://aFarkas.github.com/webshim/demos/index.html (by Alexander Farkas) in your Rails 3.1+ project with the asset pipeline.
|
4
|
+
|
5
|
+
h2. Usage
|
6
|
+
|
7
|
+
1. Add webshims-rails to your Gemfile for bundler: @gem 'webshims-rails'@
|
8
|
+
2. Require modernizr and the webshims polyfiller, eg, in your application.js:
|
9
|
+
|
10
|
+
<pre>
|
11
|
+
//= require webshims/minified/extras/modernizr-custom
|
12
|
+
//= require webshims/minified/polyfiller
|
13
|
+
</pre>
|
14
|
+
|
15
|
+
3. In your javascript, after the polyfiller has been required, set the basePath for webshims as shown below, and then call $.webshims.polyfill(); see webshims docs for more options.
|
16
|
+
(Note that this should be run directly, not in a dom-ready block.)
|
17
|
+
|
18
|
+
<pre>
|
19
|
+
$.webshims.setOptions('basePath', '/assets/webshims/minified/shims/')
|
20
|
+
$.webshims.polyfill()
|
21
|
+
</pre>
|
22
|
+
|
23
|
+
|
24
|
+
h2. License
|
25
|
+
|
26
|
+
MIT licensed, like the Webshims library.
|
@@ -0,0 +1,9 @@
|
|
1
|
+
(function(b,h,i){if(!b.webshims){var j=navigator.browserLanguage||navigator.language||b("html").attr("lang")||"";b.webshims={addReady:function(a){b(function(){a(i,b([]))})},ready:function(a,b){b()},activeLang:function(){return j}}}var g=b.webshims,k={},c=!1,d,a,e=function(a){g.refreshCustomValidityRules(a.target)};g.customErrorMessages={};g.addCustomValidityRule=function(a,d,e){k[a]=d;g.customErrorMessages[a]||(g.customErrorMessages[a]=[],g.customErrorMessages[a][""]=e||a);b.isReady&&c&&b("input, select, textarea").each(function(){f(this)})};
|
2
|
+
g.refreshCustomValidityRules=function(c){if(c.form&&(a||b.prop(c,"willValidate"))){d=!0;var e=b.data(c,"customMismatchedRule"),i=b.prop(c,"validity")||{},f="";if(e||!i.customError){var h=b(c).val();b.each(k,function(a,b){f=b(c,h)||"";e=a;if(f)return"string"!=typeof f&&(f=c.getAttribute("x-moz-errormessage")||c.getAttribute("data-errormessage")||g.customErrorMessages[a][g.activeLang()]||g.customErrorMessages[a][""]),!1});f&&b.data(c,"customMismatchedRule",e);b(c).setCustomValidity(f)}d=!1}};var f=
|
3
|
+
g.refreshCustomValidityRules;g.ready("forms",function(){c=!0;var h=b.fn.setCustomValidity||function(a){return this.each(function(){this.setCustomValidity&&this.setCustomValidity(a)})};b.fn.setCustomValidity=function(a){d||this.data("customMismatchedRule","");return h.apply(this,arguments)};i.addEventListener&&i.createElement("form").checkValidity&&i.addEventListener("change",e,!0);g.addReady(function(c,d){a=!0;b("input, select, textarea",c).add(d.filter("input, select, textarea")).each(function(){f(this)});
|
4
|
+
a=!1});b(i).bind("refreshCustomValidityRules",e)})})(jQuery,window,document);
|
5
|
+
(function(b,h,i){h=b.webshims.addCustomValidityRule;h("partialPattern",function(c,d){if(d&&c.getAttribute("data-partial-pattern")){var a=b(c).data("partial-pattern");return!a?void 0:!RegExp("("+a+")","i").test(d)}},"This format is not allowed here.");h("tooShort",function(c,d){return!d||!c.getAttribute("data-minlength")?void 0:b(c).data("minlength")>d.length},"Entered value is too short.");var j={};h("group-required",function(c){var d=c.name;if(d&&"checkbox"===c.type&&b(c).hasClass("group-required")){var a=
|
6
|
+
b(c.form&&c.form[d]||i.getElementsByName(d)),c=a.filter(":checked");j[d]&&clearTimeout(j[d]);j[d]=setTimeout(function(){a.unbind("click.groupRequired").bind("click.groupRequired",function(){a.filter(".group-required").each(function(){b.webshims.refreshCustomValidityRules(this)})})},9);return!c[0]}},"Please check one of these checkboxes.");var g=/[^0-9-]+/;h("creditcard",function(c,d){if(d&&b(c).hasClass("creditcard-input")){if(!g.test(d))return!0;var a=0,e=0,f=!1,d=d.replace(/\D/g,"");for(n=d.length-
|
7
|
+
1;0<=n;n--){e=d.charAt(n);e=parseInt(e,10);if(f&&9<(e*=2))e-=9;a+=e;f=!f}return 0!==a%10}},"Please enter a valid credit card number");var k={prop:"value","from-prop":"value",toggle:!1};h("dependent",function(c,d){if(c.getAttribute("data-dependent-validation")){var a=b(c).data("dependentValidation"),e;if(a){var f=function(){var d=b.prop(a.masterElement,a["from-prop"]);e&&(d=-1!==b.inArray(d,e));a.toggle&&(d=!d);b.prop(c,a.prop,d)};if(!a._init||!a.masterElement){"string"==typeof a&&(a={from:a});a.masterElement=
|
8
|
+
i.getElementById(a.from)||i.getElementsByName(a.from||[])[0];if(!a.masterElement||!a.masterElement.form)return;if(/radio|checkbox/i.test(a.masterElement.type)){if(a["from-prop"]||(a["from-prop"]="checked"),!a.prop&&"checked"==a["from-prop"])a.prop="disabled"}else a["from-prop"]||(a["from-prop"]="value");0===a["from-prop"].indexOf("value:")&&(e=a["from-prop"].replace("value:","").split("||"),a["from-prop"]="value");a=b.data(c,"dependentValidation",b.extend({_init:!0},k,a));"value"!==a.prop||e?b(a.masterElement).bind("change",
|
9
|
+
f):b(a.masterElement).bind("change",function(){b.webshims.refreshCustomValidityRules(c)})}if("value"==a.prop&&!e)return b.prop(a.masterElement,"value")!=d;f();return""}}},"The value of this field does not repeat the value of the other field")})(jQuery,window,document);
|
@@ -0,0 +1,19 @@
|
|
1
|
+
window.Modernizr=function(p,c,y){function u(b,a){for(var d in b)if(H[b[d]]!==y)return"pfx"==a?b[d]:!0;return!1}function s(b,a,d){var c=b.charAt(0).toUpperCase()+b.substr(1),e=(b+" "+t.join(c+" ")+c).split(" ");if("string"===typeof a||"undefined"===typeof a)a=u(e,a);else{e=(b+" "+q.join(c+" ")+c).split(" ");a:{var b=e,f;for(f in b)if(c=a[b[f]],c!==y){a=!1===d?b[f]:"function"===typeof c?c.bind(d||a):c;break a}a=!1}}return a}function A(){e.input=function(b){for(var a=0,d=b.length;a<d;a++)r[b[a]]=b[a]in
|
2
|
+
i;return r.list&&(r.list=!!c.createElement("datalist")&&!!p.HTMLDataListElement),r}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" "));e.inputtypes=function(b){for(var a=0,d,e,z,f=b.length;a<f;a++)i.setAttribute("type",e=b[a]),d="text"!==i.type,d&&(i.value=m,i.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(e)&&i.style.WebkitAppearance!==y?(n.appendChild(i),z=c.defaultView,d=z.getComputedStyle&&"textfield"!==z.getComputedStyle(i,null).WebkitAppearance&&
|
3
|
+
0!==i.offsetHeight,n.removeChild(i)):/^(search|tel)$/.test(e)||(/^(url|email)$/.test(e)?d=i.checkValidity&&!1===i.checkValidity():/^color$/.test(e)?(n.appendChild(i),d=i.value!=m,n.removeChild(i)):d=i.value!=m)),B[b[a]]=!!d;return B}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var e={},n=c.documentElement,k=c.createElement("modernizr"),H=k.style,i=c.createElement("input"),m=":)",t="Webkit Moz O ms".split(" "),q="webkit moz o ms".split(" "),k=
|
4
|
+
{},B={},r={},v=[],C=v.slice,w,D={}.hasOwnProperty,x;"undefined"!==typeof D&&"undefined"!==typeof D.call?x=function(b,a){return D.call(b,a)}:x=function(b,a){return a in b&&"undefined"===typeof b.constructor.prototype[a]};Function.prototype.bind||(Function.prototype.bind=function(b){var a=this;if("function"!=typeof a)throw new TypeError;var d=C.call(arguments,1),c=function(){if(this instanceof c){var e=function(){};e.prototype=a.prototype;var e=new e,f=a.apply(e,d.concat(C.call(arguments)));return Object(f)===
|
5
|
+
f?f:e}return a.apply(b,d.concat(C.call(arguments)))};return c});k.canvas=function(){var b=c.createElement("canvas");return!!b.getContext&&!!b.getContext("2d")};k.geolocation=function(){return!!navigator.geolocation};k.video=function(){var b=c.createElement("video"),a=!1;try{if(a=!!b.canPlayType)a=new Boolean(a),a.ogg=b.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),a.h264=b.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),a.webm=b.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,
|
6
|
+
"")}catch(d){}return a};k.audio=function(){var b=c.createElement("audio"),a=!1;try{if(a=!!b.canPlayType)a=new Boolean(a),a.ogg=b.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),a.mp3=b.canPlayType("audio/mpeg;").replace(/^no$/,""),a.wav=b.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),a.m4a=(b.canPlayType("audio/x-m4a;")||b.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return a};k.localstorage=function(){try{return localStorage.setItem("modernizr","modernizr"),localStorage.removeItem("modernizr"),
|
7
|
+
!0}catch(b){return!1}};k.sessionstorage=function(){try{return sessionStorage.setItem("modernizr","modernizr"),sessionStorage.removeItem("modernizr"),!0}catch(b){return!1}};for(var E in k)x(k,E)&&(w=E.toLowerCase(),e[w]=k[E](),v.push((e[w]?"":"no-")+w));e.input||A();e.addTest=function(b,a){if("object"==typeof b)for(var d in b)x(b,d)&&e.addTest(d,b[d]);else{b=b.toLowerCase();if(e[b]!==y)return e;a="function"==typeof a?a():a;n.className+=" "+(a?"":"no-")+b;e[b]=a}return e};H.cssText="";return k=i=null,
|
8
|
+
function(b,a){function d(){var a=j.elements;return"string"==typeof a?a.split(" "):a}function e(a){var b={},c=a.createElement,I=a.createDocumentFragment,l=I();a.createElement=function(a){var d=(b[a]||(b[a]=c(a))).cloneNode();return j.shivMethods&&d.canHaveChildren&&!G.test(a)?l.appendChild(d):d};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/\w+/g,function(a){return b[a]=c(a),l.createElement(a),'c("'+a+'")'})+");return n}")(j,
|
9
|
+
l)}function c(a){var b;if(!a.documentShived){if(j.shivCSS&&!I){b=a.createElement("p");var G=a.getElementsByTagName("head")[0]||a.documentElement;b=!!(b.innerHTML="x<style>article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}</style>",G.insertBefore(b.lastChild,G.firstChild))}a=
|
10
|
+
(i||(b=!e(a)),b&&(a.documentShived=b),a)}return a}var f=b.html5||{},G=/^<|^(?:button|form|map|select|textarea)$/i,I,i;(function(){var b=a.createElement("a");b.innerHTML="<xyz></xyz>";I="hidden"in b;if(!(b=1==b.childNodes.length))a:{try{a.createElement("a")}catch(G){b=!0;break a}b=a.createDocumentFragment();b="undefined"==typeof b.cloneNode||"undefined"==typeof b.createDocumentFragment||"undefined"==typeof b.createElement}i=b})();var j={elements:f.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",
|
11
|
+
shivCSS:!1!==f.shivCSS,shivMethods:!1!==f.shivMethods,type:"default",shivDocument:c};b.html5=j;c(a)}(this,c),e._version="2.5.3",e._domPrefixes=q,e._cssomPrefixes=t,e.testProp=function(b){return u([b])},e.testAllProps=s,e.prefixed=function(b,a,d){return a?s(b,a,d):s(b,"pfx")},e}(this,this.document);
|
12
|
+
(function(p,c,y){function u(a){return"[object Function]"==B.call(a)}function s(a){return"string"==typeof a}function A(){}function e(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function n(){var a=r.shift();v=1;a?a.t?t(function(){("c"==a.t?f.injectCss:f.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),n()):v=0}function k(a,b,i,j,k,o,g){function F(c){if(!L&&e(l.readyState)&&(M.r=L=1,!v&&n(),l.onload=l.onreadystatechange=null,c)){"img"!=a&&t(function(){D.removeChild(l)},50);for(var F in d[b])d[b].hasOwnProperty(F)&&
|
13
|
+
d[b][F].onload()}}var g=g||f.errorTimeout,l={},L=0,J=0,M={t:i,s:b,e:k,a:o,x:g};1===d[b]&&(J=1,d[b]=[],l=c.createElement(a));"object"==a?l.data=b:(l.src=b,l.type=a);l.width=l.height="0";l.onerror=l.onload=l.onreadystatechange=function(){F.call(this,J)};r.splice(j,0,M);"img"!=a&&(J||2===d[b]?(D.insertBefore(l,w?null:q),t(F,g)):d[b].push(l))}function H(a,b,c,d,e){return v=0,b=b||"j",s(a)?k("c"==b?E:x,a,b,this.i++,c,d,e):(r.splice(this.i++,0,a),1==r.length&&n()),this}function i(){var a=f;return a.loader=
|
14
|
+
{load:H,i:0},a}var m=c.documentElement,t=p.setTimeout,q=c.getElementsByTagName("script")[0],B={}.toString,r=[],v=0,C="MozAppearance"in m.style,w=C&&!!c.createRange().compareNode,D=w?m:q.parentNode,m=p.opera&&"[object Opera]"==B.call(p.opera),m=!!c.attachEvent&&!m,x=C?"object":m?"script":"img",E=m?"script":x,b=Array.isArray||function(a){return"[object Array]"==B.call(a)},a=[],d={},K={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},z,f;f=function(c){function e(b){var b=b.split("!"),c=a.length,
|
15
|
+
d=b.pop(),i=b.length,d={url:d,origUrl:d,prefixes:b},f,h,g;for(h=0;h<i;h++)g=b[h].split("="),(f=K[g.shift()])&&(d=f(d,g));for(h=0;h<c;h++)d=a[h](d);return d}function k(a,b,c,f,g){var h=e(a),j=h.autoCallback;h.url.split(".").pop().split("?").shift();h.bypass||(b&&(b=u(b)?b:b[a]||b[f]||b[a.split("/").pop().split("?")[0]]||n),h.instead?h.instead(a,b,c,f,g):(d[h.url]?h.noexec=!0:d[h.url]=1,c.load(h.url,h.forceCSS||!h.forceJS&&"css"==h.url.split(".").pop().split("?").shift()?"c":y,h.noexec,h.attrs,h.timeout),
|
16
|
+
(u(b)||u(j))&&c.load(function(){i();b&&b(h.origUrl,g,f);j&&j(h.origUrl,g,f);d[h.url]=2})))}function j(a,b){function c(a,e){if(a)if(s(a))e||(h=function(){var a=[].slice.call(arguments);f.apply(this,a);g()}),k(a,h,b,0,d);else{if(Object(a)===a)for(j in i=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(j)&&(!e&&!--i&&(u(h)?h=function(){var a=[].slice.call(arguments);f.apply(this,a);g()}:h[j]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,
|
17
|
+
b);g()}}(f[j])),k(a[j],h,b,j,d))}else!e&&g()}var d=!!a.test,e=a.load||a.both,h=a.callback||A,f=h,g=a.complete||A,i,j;c(d?a.yep:a.nope,!!e);e&&c(e)}var m,o,g=this.yepnope.loader;if(s(c))k(c,0,g,0);else if(b(c))for(m=0;m<c.length;m++)o=c[m],s(o)?k(o,0,g,0):b(o)?f(o):Object(o)===o&&j(o,g);else Object(c)===c&&j(c,g)};f.addPrefix=function(a,b){K[a]=b};f.addFilter=function(b){a.push(b)};f.errorTimeout=1E4;null==c.readyState&&c.addEventListener&&(c.readyState="loading",c.addEventListener("DOMContentLoaded",
|
18
|
+
z=function(){c.removeEventListener("DOMContentLoaded",z,0);c.readyState="complete"},0));p.yepnope=i();p.yepnope.executeStack=n;p.yepnope.injectJs=function(a,b,d,j,i,k){var g=c.createElement("script"),m,l,j=j||f.errorTimeout;g.src=a;for(l in d)g.setAttribute(l,d[l]);b=k?n:b||A;g.onreadystatechange=g.onload=function(){!m&&e(g.readyState)&&(m=1,b(),g.onload=g.onreadystatechange=null)};t(function(){m||(m=1,b(1))},j);i?g.onload():q.parentNode.insertBefore(g,q)};p.yepnope.injectCss=function(a,b,d,e,f,i){var e=
|
19
|
+
c.createElement("link"),g,b=i?n:b||A;e.href=a;e.rel="stylesheet";e.type="text/css";for(g in d)e.setAttribute(g,d[g]);f||(q.parentNode.insertBefore(e,q),t(b,0))}})(this,document);Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
|
@@ -0,0 +1,2 @@
|
|
1
|
+
(function(b){var e=function(c,a){var b=c.data("mousepresstimer");b&&clearTimeout(b);a&&c.unbind("mouseup.mousepressext mouseleave.mousepressext")};b.event.special.mousepress={setup:function(){b(this).bind("mousedown.mousepressext",function(c){var a=b(this),g=function(f){var d=0;e(a);a.data("mousepresstimer",setInterval(function(){b.event.special.mousepress.handler(a[0],c);d++;3<d&&45<f&&g(f-40)},f))},d=b(c.target).trigger("mousepressstart",[c]);e(a);a.data("mousepresstimer",setTimeout(function(){g(180)},
|
2
|
+
200));a.bind("mouseup.mousepressext mouseleave.mousepressext",function(b){e(a,!0);d.trigger("mousepressend",[b]);d=a=null})})},teardown:function(){e(b(this).unbind(".mousepressext"),!0)},handler:function(c,a){return b.event.handle.call(c,{type:"mousepress",target:a.target,pageX:a.pageX,pageY:a.pageY})}}})(jQuery);
|
@@ -0,0 +1,27 @@
|
|
1
|
+
(function(c){if(window.jQuery)c(jQuery),c=jQuery.noop;"function"===typeof define&&define.amd&&define.amd.jQuery&&define("polyfiller",["jquery"],c)})(function(c){var z=c(document.scripts||"script"),o=c.event.special,A=c([]),g=window.Modernizr,r=window.asyncWebshims,B=g.addTest,w=parseFloat(c.browser.version,10),p=window.Object;g.genericDOM=!!c("<video><div></div></video>")[0].innerHTML;g.advancedObjectProperties=g.objectAccessor=g.ES5=!!("create"in p&&"seal"in p);var d={version:"1.8.9",cfg:{useImportantStyles:!0,
|
2
|
+
waitReady:!0,extendNative:!0,loadStyles:!0,basePath:function(){var a=z.filter('[src*="polyfiller.js"]'),a=a[0]||a.end()[a.end().length-1],a=(c.support.hrefNormalized?a.src:a.getAttribute("src",4)).split("?")[0];return a=a.slice(0,a.lastIndexOf("/")+1)+"shims/"}()},bugs:{},browserVersion:w,modules:{},features:{},featureList:[],setOptions:function(a,b){"string"==typeof a&&void 0!==b?n[a]=!c.isPlainObject(b)?b:c.extend(!0,n[a]||{},b):"object"==typeof a&&c.extend(!0,n,a)},addPolyfill:function(a,b){var b=
|
3
|
+
b||{},e=b.f||a;if(!k[e])k[e]=[],k[e].delayReady=0,d.featureList.push(e),n[e]={};k[e].push(a);b.options=c.extend(n[e],b.options);x(a,b);b.methodNames&&c.each(b.methodNames,function(a,b){d.addMethodName(b)})},polyfill:function(){var a=function(b){var f=[],h,i=function(){c("html").removeClass("loading-polyfills long-loading-polyfills");c(window).unbind(".lP");clearTimeout(h)};f.push("loading-polyfills");c(window).bind("load.lP error.lP",i);h=setTimeout(function(){c("html").addClass("long-loading-polyfills")},
|
4
|
+
600);n.waitReady&&c.isReady&&d.warn("Call webshims.polyfill before DOM-Ready or set waitReady to false.");q(b,i);n.useImportantStyles&&f.push("polyfill-important");f[0]&&c("html").addClass(f.join(" "));n.loadStyles&&s.loadCSS("styles/shim.css");a=c.noop},b;return function(e){var f=[],e=e||d.featureList;"string"==typeof e&&(e=e.split(" "));b||(b=-1!==c.inArray("forms",e),!b&&-1!==c.inArray("forms-ext",e)&&(e.push("forms"),b=!0));n.waitReady&&(c.readyWait++,q(e,function(){c.ready(!0)}));c.each(e,function(a,
|
5
|
+
b){k[b]?(b!==k[b][0]&&q(k[b],function(){l(b,!0)}),f=f.concat(k[b])):(d.warn("could not find webshims-feature (aborted): "+b),l(b,!0))});a(e);t(f)}}(),reTest:function(){var a,b,e=function(e,h){var i=m[h],d=h+"Ready",g;if(i&&!i.loaded&&!(i.test&&c.isFunction(i.test)?i.test([]):i.test)){o[d]&&delete o[d];if((g=k[i.f])&&!b)g.delayReady++,q(h,function(){g.delayReady--;l(i.f,g.callReady)});a.push(h)}};return function(d,h){b=h;"string"==typeof d&&(d=d.split(" "));a=[];c.each(d,e);t(a)}}(),isReady:function(a,
|
6
|
+
b){if(k[a]&&0<k[a].delayReady){if(b)k[a].callReady=!0;return!1}a+="Ready";if(b){if(o[a]&&o[a].add)return!0;o[a]=c.extend(o[a]||{},{add:function(b){b.handler.call(this,a)}});c.event.trigger(a)}return!(!o[a]||!o[a].add)||!1},ready:function(a,b,e){"string"==typeof a&&(a=a.split(" "));e||(a=c.map(c.grep(a,function(a){return!l(a)}),function(a){return a+"Ready"}));a.length?(e=a.shift(),c(document).one(e,function(){q(a,b,!0)})):b(c,d,window,document)},fixHTML5:function(a){return a},capturingEvents:function(a,
|
7
|
+
b){document.addEventListener&&("string"==typeof a&&(a=[a]),c.each(a,function(a,f){var h=function(a){a=c.event.fix(a);b&&d.capturingEventPrevented&&d.capturingEventPrevented(a);return c.event.handle.call(this,a)};o[f]=o[f]||{};!o[f].setup&&!o[f].teardown&&c.extend(o[f],{setup:function(){this.addEventListener(f,h,!0)},teardown:function(){this.removeEventListener(f,h,!0)}})}))},register:function(a,b){var e=m[a];if(e){if(e.noAutoCallback){var f=function(){b(c,d,window,document,void 0,e.options);l(a,!0)};
|
8
|
+
e.d?q(e.d,f):f()}}else d.warn("can't find module: "+a)},c:{},loader:{addModule:function(a,b){m[a]=b;b.name=b.name||a;if(!b.c)b.c=[];c.each(b.c,function(b,c){d.c[c]||(d.c[c]=[]);d.c[c].push(a)})},loadList:function(){var a=[],b=function(b,e){"string"==typeof e&&(e=[e]);c.merge(a,e);s.loadScript(b,!1,e)},e=function(b,e){if(l(b)||-1!=c.inArray(b,a))return!0;var d=m[b];if(d)if(d=d.test&&c.isFunction(d.test)?d.test(e):d.test)l(b,!0);else return!1;return!0},f=function(a,b){if(a.d&&a.d.length){var d=function(a,
|
9
|
+
d){!e(d,b)&&-1==c.inArray(d,b)&&b.push(d)};c.each(a.d,function(a,b){m[b]?d(a,b):k[b]&&(c.each(k[b],d),q(k[b],function(){l(b,!0)}))});if(!a.noAutoCallback)a.noAutoCallback=!0}};return function(h){var i,g=[],j,k,l=function(e,h){k=h;c.each(d.c[h],function(b,d){if(-1==c.inArray(d,g)||-1!=c.inArray(d,a))return k=!1});if(k)return b("combos/"+k,d.c[k]),!1};for(j=0;j<h.length;j++)i=m[h[j]],!i||e(i.name,h)?i||d.warn("could not find: "+h[j]):(i.css&&s.loadCSS(i.css),i.loadInit&&i.loadInit(),i.loaded=!0,f(i,
|
10
|
+
h),g.push(i.name));for(j=0,h=g.length;j<h;j++)k=!1,i=g[j],-1==c.inArray(i,a)&&("noCombo"!=d.debug&&c.each(m[i].c,l),k||b(m[i].src||i,i))}}(),makePath:function(a){if(-1!=a.indexOf("//")||0===a.indexOf("/"))return a;-1==a.indexOf(".")&&(a+=".js");n.addCacheBuster&&(a+=n.addCacheBuster);return n.basePath+a},loadCSS:function(){var a,b=[];return function(d){d=this.makePath(d);-1==c.inArray(d,b)&&(a=a||c("link, style")[0]||c("script")[0],b.push(d),c('<link rel="stylesheet" />').insertBefore(a).attr({href:d}))}}(),
|
11
|
+
loadScript:function(){var a=[];return function(b,d,f){b=s.makePath(b);if(-1==c.inArray(b,a)){var h=function(){h=null;d&&d();f&&("string"==typeof f&&(f=f.split(" ")),c.each(f,function(a,b){m[b]&&(m[b].afterLoad&&m[b].afterLoad(),l(!m[b].noAutoCallback?b:b+"FileLoaded",!0))}))};a.push(b);window.require?require([b],h):window.sssl?sssl(b,h):window.yepnope?yepnope.injectJs(b,h):window.steal&&steal(b).then(h)}}}()}};c.webshims=d;var w=("https:"==location.protocol?"https://":"http://")+"ajax.googleapis.com/ajax/libs/",
|
12
|
+
C=w+"jqueryui/1.8.17/",n=d.cfg,k=d.features,l=d.isReady,q=d.ready,j=d.addPolyfill,m=d.modules,s=d.loader,t=s.loadList,x=s.addModule,u=[],D={warn:1,error:1};d.addMethodName=function(a){var a=a.split(":"),b=a[1];1==a.length&&(b=a[0]);a=a[0];c.fn[a]=function(){return this.callProp(b,arguments)}};c.fn.callProp=function(a,b){var e;b||(b=[]);this.each(function(){var f=c.prop(this,a);if(f&&f.apply){if(e=f.apply(this,b),void 0!==e)return!1}else d.warn(a+" is not a method of "+this)});return void 0!==e?e:
|
13
|
+
this};d.activeLang=function(){var a=navigator.browserLanguage||navigator.language||"";q("webshimLocalization",function(){d.activeLang(a)});return function(b){if(b)if("string"==typeof b)a=b;else if("object"==typeof b){var c=arguments,f=this;q("webshimLocalization",function(){d.activeLang.apply(f,c)})}return a}}();c.each(["log","error","warn","info"],function(a,b){d[b]=function(a){if((D[b]&&!1!==d.debug||d.debug)&&window.console&&console.log)return console[console[b]?b:"log"](a)}});(function(){c.isDOMReady=
|
14
|
+
c.isReady;if(c.isDOMReady)l("DOM",!0);else{var a=c.ready;c.ready=function(b){if(!0!==b&&!c.isDOMReady)document.body?(c.isDOMReady=!0,l("DOM",!0),c.ready=a):setTimeout(function(){c.ready(b)},13);return a.apply(this,arguments)}}c(function(){c.isDOMReady=!0;l("DOM",!0);setTimeout(function(){l("WINDOWLOAD",!0)},9999)});c(window).load(function(){l("WINDOWLOAD",!0)})})();(function(){var a=[];c.extend(d,{addReady:function(b){var c=function(a,c){d.ready("DOM",function(){b(a,c)})};a.push(c);c(document,A)},
|
15
|
+
triggerDomUpdate:function(b){if(!b||!b.nodeType)b&&b.jquery&&b.each(function(){d.triggerDomUpdate(this)});else{var e=b.nodeType;if(!(1!=e&&9!=e)){var f=b!==document?c(b):A;c.each(a,function(a,c){c(b,f)})}}}});c.fn.htmlPolyfill=function(a){a=c.fn.html.call(this,a?d.fixHTML5(a):a);a===this&&c.isDOMReady&&this.each(function(){1==this.nodeType&&d.triggerDomUpdate(this)});return a};c.each(["after","before","append","prepend","replaceWith"],function(a,e){c.fn[e+"Polyfill"]=function(a){a=c(d.fixHTML5(a));
|
16
|
+
c.fn[e].call(this,a);c.isDOMReady&&a.each(function(){1==this.nodeType&&d.triggerDomUpdate(this)});return this}});c.each(["insertAfter","insertBefore","appendTo","prependTo","replaceAll"],function(a,e){c.fn[e.replace(/[A-Z]/,function(a){return"Polyfill"+a})]=function(){c.fn[e].apply(this,arguments);d.triggerDomUpdate(this);return this}});c.fn.updatePolyfill=function(){d.triggerDomUpdate(this);return this};c.each(["getNativeElement","getShadowElement","getShadowFocusElement"],function(a,d){c.fn[d]=
|
17
|
+
function(){return this}})})();(function(){var a=p.prototype.hasOwnProperty,b=["configurable","enumerable","writable"],e=function(a){for(var c=0;3>c;c++)if(void 0===a[b[c]]&&("writable"!==b[c]||void 0!==a.value))a[b[c]]=!0},f=function(b){if(b)for(var c in b)a.call(b,c)&&e(b[c])};if(p.create)d.objectCreate=function(a,b,d){f(b);a=p.create(a,b);if(d)a.options=c.extend(!0,{},a.options||{},d),d=a.options;a._create&&c.isFunction(a._create)&&a._create(d);return a};p.defineProperty&&(d.defineProperty=function(a,
|
18
|
+
b,c){e(c);return p.defineProperty(a,b,c)});if(p.defineProperties)d.defineProperties=function(a,b){f(b);return p.defineProperties(a,b)};d.getOwnPropertyDescriptor=p.getOwnPropertyDescriptor;d.getPrototypeOf=p.getPrototypeOf})();x("jquery-ui",{src:C+"jquery-ui.min.js",test:function(){return!(!c.widget||!c.Widget)}});x("input-widgets",{src:"",test:function(){return!this.src||!(c.widget&&(!c.fn.datepicker||!c.fn.slider))}});x("swfobject",{src:w+"swfobject/2.2/swfobject.js",test:function(){return"swfobject"in
|
19
|
+
window}});j("es5",{test:!(!g.ES5||!Function.prototype.bind),c:[10,1,22]});j("dom-extend",{f:"dom-support",noAutoCallback:!0,d:["es5"],c:[10,9,12,17,16,8,1,24,19,11,13]});"localstorage"in g&&j("json-storage",{test:g.localstorage&&"sessionStorage"in window&&"JSON"in window,loadInit:function(){t(["swfobject"])},noAutoCallback:!0,c:[14]});"geolocation"in g&&j("geolocation",{test:g.geolocation,options:{destroyWrite:!0},d:["json-storage"],c:[14,15]});(function(){if("canvas"in g){var a;j("canvas",{src:"excanvas",
|
20
|
+
test:g.canvas,options:{type:"excanvas"},noAutoCallback:!0,loadInit:function(){var b=this.options.type;if(b&&-1!==b.indexOf("flash")&&(!window.swfobject||swfobject.hasFlashPlayerVersion("9.0.0")))window.FlashCanvasOptions=window.FlashCanvasOptions||{},a=FlashCanvasOptions,"flash"==b?(c.extend(a,{swfPath:n.basePath+"FlashCanvas/"}),this.src="FlashCanvas/flashcanvas"):(c.extend(a,{swfPath:n.basePath+"FlashCanvasPro/"}),this.src="FlashCanvasPro/flashcanvas")},afterLoad:function(){d.addReady(function(a,
|
21
|
+
d){c("canvas",a).add(d.filter("canvas")).each(function(){!this.getContext&&window.G_vmlCanvasManager&&G_vmlCanvasManager.initElement(this)});a==document&&l("canvas",!0)})},methodNames:["getContext"],d:["dom-support"]})}})();var y=g.input,v=g.inputtypes;if(y&&v)B("formvalidation",function(){return!(!y.required||!y.pattern)}),d.validationMessages=d.validityMessages=[],d.inputTypes={},j("form-core",{f:"forms",d:["es5"],test:function(){if(this.options.lightweightDatalist&&!this.datalistLoaded)this.datalistLoaded=
|
22
|
+
!0,m["form-datalist"].f="forms",d.reTest(["form-datalist"]);return!1},options:{placeholderType:"value",langSrc:"i18n/errormessages-",availabeLangs:"ar,ch-ZN,el,es,fr,he,hi,hu,it,ja,nl,pt-PT,ru".split(",")},methodNames:["setCustomValidity","checkValidity"],c:[3,2,59,17,16,5,4,24,19]}),g.formvalidation?(j("form-extend",{f:"forms",src:"form-native-extend",test:function(a){return(m["form-number-date-api"].test()||-1==c.inArray("form-number-date-api",a||[]))&&!this.options.overrideMessages},d:["form-core",
|
23
|
+
"dom-support","form-message"],c:[18,7,59,5]}),u=u.concat([2,3,23,21])):(u=u.concat([18,7,4,59,5]),j("form-extend",{f:"forms",src:"form-shim-extend",d:["form-core","dom-support"],c:[3,2,23,21]})),j("form-message",{f:"forms",test:function(a){return!(this.options.customMessages||!g.formvalidation||!m["form-extend"].test(a)||d.bugs.validationMessage)},d:["dom-support"],c:[3,2,23,21,59,17,5,4]}),d.addPolyfill("form-output",{f:"forms",test:"value"in document.createElement("output"),d:["dom-support"],c:[3,
|
24
|
+
2,23,21]}),j("form-number-date-api",{f:"forms-ext",uiTest:function(){return v.range&&v.date&&v.time&&v.number},test:function(){return this.uiTest()&&!d.bugs.valueAsNumberSet},d:["forms","dom-support"],c:[18,7,6]}),j("form-number-date-ui",{f:"forms-ext",test:function(){return m["form-number-date-api"].test()&&!this.options.replaceUI},d:["forms","dom-support","form-number-date-api"],loadInit:function(){t(["jquery-ui"]);m["input-widgets"].src&&t(["input-widgets"])},options:{stepArrows:{number:1,time:1},
|
25
|
+
calculateWidth:!0,slider:{},datepicker:{},langSrc:C+"i18n/jquery.ui.datepicker-",recalcWidth:!0},c:[18,7,6]}),j("form-datalist",{f:"forms-ext",test:y.list,d:["form-core","dom-support"],c:[3,59,18,24,19,11]});"details"in g||B("details",function(){return"open"in document.createElement("details")});j("details",{test:g.details,d:["dom-support"],options:{text:"Details"},c:[12,13,15]});if("audio"in g&&"video"in g)d.mediaelement={},j("mediaelement-core",{f:"mediaelement",noAutoCallback:!0,d:["swfobject",
|
26
|
+
"dom-support"],c:[10,9,12,17,16,8,22,23,24,20]}),j("mediaelement-swf",{f:"mediaelement",options:{hasToPlay:"any",preferFlash:!1,jwVars:{},jwParams:{},jwAttrs:{},changeJW:c.noop},methodNames:["play","pause","canPlayType","mediaLoad:load"],d:["swfobject","dom-support"],test:function(){if(!g.audio||!g.video)return!1;var a=this.options,b=a.hasToPlay;return!((!window.swfobject||window.swfobject.hasFlashPlayerVersion("9.0.115"))&&(a.preferFlash||"any"!=b&&!g.video[b]&&!g.audio[b]))},c:[10,9,22,20]});j("feature-dummy",
|
27
|
+
{test:!0,loaded:!0,c:u});z.filter("[data-polyfill-cfg]").each(function(){try{d.setOptions(c(this).data("polyfillCfg"))}catch(a){d.warn("error parsing polyfill cfg: "+a)}}).end().filter("[data-polyfill]").each(function(){d.polyfill(c.trim(c(this).data("polyfill")||""))});r&&(r.cfg&&d.setOptions(r.cfg),r.lang&&d.activeLang(r.lang),"polyfill"in r&&d.polyfill(r.polyfill))});
|
@@ -0,0 +1,62 @@
|
|
1
|
+
FlashCanvas
|
2
|
+
===========
|
3
|
+
|
4
|
+
An implementation of the HTML5 Canvas API for Internet Explorer.
|
5
|
+
|
6
|
+
|
7
|
+
Description
|
8
|
+
-----------
|
9
|
+
|
10
|
+
FlashCanvas is a JavaScript library which adds the HTML5 Canvas support
|
11
|
+
to Internet Explorer. It renders shapes and images via Flash drawing
|
12
|
+
API, and in many cases, runs faster than other similar libraries which
|
13
|
+
use VML or Silverlight.
|
14
|
+
|
15
|
+
|
16
|
+
Requirements
|
17
|
+
------------
|
18
|
+
|
19
|
+
* Microsoft Internet Explorer
|
20
|
+
* Adobe Flash Player 9 or later
|
21
|
+
|
22
|
+
|
23
|
+
Usage
|
24
|
+
-----
|
25
|
+
|
26
|
+
FlashCanvas consists of JavaScript, Flash and PHP files:
|
27
|
+
|
28
|
+
* flashcanvas.js
|
29
|
+
* flashcanvas.swf
|
30
|
+
* canvas2png.js (helps you to save a canvas image)
|
31
|
+
* proxy.php (used to load a file from other domain)
|
32
|
+
* save.php (used to save a canvas image)
|
33
|
+
|
34
|
+
These files can be found in the bin directory in this distribution
|
35
|
+
package. To install FlashCanvas, copy these files into some directory on
|
36
|
+
a Web server, and then add the following HTML code between <head> and
|
37
|
+
</head> tags on your web page.
|
38
|
+
|
39
|
+
<!--[if lt IE 9]>
|
40
|
+
<script type="text/javascript" src="path/to/flashcanvas.js"></script>
|
41
|
+
<![endif]-->
|
42
|
+
|
43
|
+
That's all you have to do in most cases. For more details, please read
|
44
|
+
the online manual at the project page.
|
45
|
+
|
46
|
+
|
47
|
+
License
|
48
|
+
-------
|
49
|
+
|
50
|
+
FlashCanvas is developed by FlashCanvas Project and released under the
|
51
|
+
MIT License.
|
52
|
+
|
53
|
+
|
54
|
+
Contact
|
55
|
+
-------
|
56
|
+
|
57
|
+
If you have a question about FlashCanvas, please utilize the discussion
|
58
|
+
group and issue tracker found at the project page. If you need to
|
59
|
+
contact us directly, you can reach us at the e-mail address.
|
60
|
+
|
61
|
+
Project page: http://code.google.com/p/flashcanvas/
|
62
|
+
E-mail: flashcanvas@gmail.com
|
@@ -0,0 +1,42 @@
|
|
1
|
+
/*
|
2
|
+
* canvas2png.js
|
3
|
+
*
|
4
|
+
* Copyright (c) 2010-2011 Shinya Muramatsu
|
5
|
+
* Released under the MIT License
|
6
|
+
* http://flashcanvas.net/
|
7
|
+
*/
|
8
|
+
|
9
|
+
(function(doc) {
|
10
|
+
|
11
|
+
var scripts = doc.getElementsByTagName("script");
|
12
|
+
var script = scripts[scripts.length - 1];
|
13
|
+
var url = script.getAttribute("src").replace(/[^\/]+$/, "save.php");
|
14
|
+
|
15
|
+
window.canvas2png = function(canvas) {
|
16
|
+
var tagName = canvas.tagName.toLowerCase();
|
17
|
+
if (tagName !== "canvas") {
|
18
|
+
return;
|
19
|
+
}
|
20
|
+
|
21
|
+
if (typeof FlashCanvas !== "undefined") {
|
22
|
+
FlashCanvas.saveImage(canvas);
|
23
|
+
} else {
|
24
|
+
var form = doc.createElement("form");
|
25
|
+
var input = doc.createElement("input");
|
26
|
+
|
27
|
+
form.setAttribute("action", url);
|
28
|
+
form.setAttribute("method", "post");
|
29
|
+
|
30
|
+
input.setAttribute("type", "hidden");
|
31
|
+
input.setAttribute("name", "dataurl");
|
32
|
+
input.setAttribute("value", canvas.toDataURL());
|
33
|
+
|
34
|
+
doc.body.appendChild(form);
|
35
|
+
form.appendChild(input);
|
36
|
+
form.submit();
|
37
|
+
form.removeChild(input);
|
38
|
+
doc.body.removeChild(form);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
})(document);
|
@@ -0,0 +1,28 @@
|
|
1
|
+
/*
|
2
|
+
* FlashCanvas
|
3
|
+
*
|
4
|
+
* Copyright (c) 2009 Tim Cameron Ryan
|
5
|
+
* Copyright (c) 2009-2011 FlashCanvas Project
|
6
|
+
* Released under the MIT/X License
|
7
|
+
*/
|
8
|
+
window.ActiveXObject&&!window.CanvasRenderingContext2D&&function(h,j){function D(a){this.code=a;this.message=T[a]}function U(a){this.width=a}function E(a){this.id=a.C++}function t(a){this.G=a;this.id=a.C++}function u(a,b){this.canvas=a;this.B=b;this.d=a.uniqueID;this.D();this.C=0;this.t="";var c=this;setInterval(function(){n[c.d]===0&&c.e()},30)}function A(){if(j.readyState==="complete"){j.detachEvent(F,A);for(var a=j.getElementsByTagName(r),b=0,c=a.length;b<c;++b)B.initElement(a[b])}}function G(){var a=
|
9
|
+
event.srcElement,b=a.parentNode;a.blur();b.focus()}function H(){var a=event.propertyName;if(a==="width"||a==="height"){var b=event.srcElement,c=b[a],d=parseInt(c,10);if(isNaN(d)||d<0)d=a==="width"?300:150;if(c===d){b.style[a]=d+"px";b.getContext("2d").I(b.width,b.height)}else b[a]=d}}function I(){h.detachEvent(J,I);for(var a in s){var b=s[a],c=b.firstChild,d;for(d in c)if(typeof c[d]==="function")c[d]=k;for(d in b)if(typeof b[d]==="function")b[d]=k;c.detachEvent(K,G);b.detachEvent(L,H)}h[M]=k;h[N]=
|
10
|
+
k;h[O]=k;h[C]=k;h[P]=k}function V(){var a=j.getElementsByTagName("script");a=a[a.length-1];return j.documentMode>=8?a.src:a.getAttribute("src",4)}function v(a){return(""+a).replace(/&/g,"&").replace(/</g,"<")}function W(a){return a.toLowerCase()}function i(a){throw new D(a);}function Q(a){var b=parseInt(a.width,10),c=parseInt(a.height,10);if(isNaN(b)||b<0)b=300;if(isNaN(c)||c<0)c=150;a.width=b;a.height=c}var k=null,r="canvas",M="CanvasRenderingContext2D",N="CanvasGradient",O="CanvasPattern",
|
11
|
+
C="FlashCanvas",P="G_vmlCanvasManager",K="onfocus",L="onpropertychange",F="onreadystatechange",J="onunload",w=((h[C+"Options"]||{}).swfPath||V().replace(/[^\/]+$/,""))+"flashcanvas.swf",e=new function(a){for(var b=0,c=a.length;b<c;b++)this[a[b]]=b}(["toDataURL","save","restore","scale","rotate","translate","transform","setTransform","globalAlpha","globalCompositeOperation","strokeStyle","fillStyle","createLinearGradient","createRadialGradient","createPattern","lineWidth","lineCap","lineJoin","miterLimit",
|
12
|
+
"shadowOffsetX","shadowOffsetY","shadowBlur","shadowColor","clearRect","fillRect","strokeRect","beginPath","closePath","moveTo","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","rect","arc","fill","stroke","clip","isPointInPath","font","textAlign","textBaseline","fillText","strokeText","measureText","drawImage","createImageData","getImageData","putImageData","addColorStop","direction","resize"]),x={},n={},s={},y={};u.prototype={save:function(){this.b();this.c();this.m();this.l();this.z();this.w();
|
13
|
+
this.F.push([this.f,this.g,this.A,this.u,this.j,this.h,this.i,this.k,this.p,this.q,this.n,this.o,this.v,this.r,this.s]);this.a.push(e.save)},restore:function(){var a=this.F;if(a.length){a=a.pop();this.globalAlpha=a[0];this.globalCompositeOperation=a[1];this.strokeStyle=a[2];this.fillStyle=a[3];this.lineWidth=a[4];this.lineCap=a[5];this.lineJoin=a[6];this.miterLimit=a[7];this.shadowOffsetX=a[8];this.shadowOffsetY=a[9];this.shadowBlur=a[10];this.shadowColor=a[11];this.font=a[12];this.textAlign=a[13];
|
14
|
+
this.textBaseline=a[14]}this.a.push(e.restore)},scale:function(a,b){this.a.push(e.scale,a,b)},rotate:function(a){this.a.push(e.rotate,a)},translate:function(a,b){this.a.push(e.translate,a,b)},transform:function(a,b,c,d,f,g){this.a.push(e.transform,a,b,c,d,f,g)},setTransform:function(a,b,c,d,f,g){this.a.push(e.setTransform,a,b,c,d,f,g)},b:function(){var a=this.a;if(this.f!==this.globalAlpha){this.f=this.globalAlpha;a.push(e.globalAlpha,this.f)}if(this.g!==this.globalCompositeOperation){this.g=this.globalCompositeOperation;
|
15
|
+
a.push(e.globalCompositeOperation,this.g)}},m:function(){if(this.A!==this.strokeStyle){var a=this.A=this.strokeStyle;this.a.push(e.strokeStyle,typeof a==="object"?a.id:a)}},l:function(){if(this.u!==this.fillStyle){var a=this.u=this.fillStyle;this.a.push(e.fillStyle,typeof a==="object"?a.id:a)}},createLinearGradient:function(a,b,c,d){isFinite(a)&&isFinite(b)&&isFinite(c)&&isFinite(d)||i(9);this.a.push(e.createLinearGradient,a,b,c,d);return new t(this)},createRadialGradient:function(a,b,c,d,f,g){isFinite(a)&&
|
16
|
+
isFinite(b)&&isFinite(c)&&isFinite(d)&&isFinite(f)&&isFinite(g)||i(9);if(c<0||g<0)i(1);this.a.push(e.createRadialGradient,a,b,c,d,f,g);return new t(this)},createPattern:function(a,b){a||i(17);var c=a.tagName,d,f=this.d;if(c){c=c.toLowerCase();if(c==="img")d=a.getAttribute("src",2);else if(c===r||c==="video")return;else i(17)}else if(a.src)d=a.src;else i(17);b==="repeat"||b==="no-repeat"||b==="repeat-x"||b==="repeat-y"||b===""||b===k||i(12);this.a.push(e.createPattern,v(d),b);if(x[f]){this.e();++n[f]}return new E(this)},
|
17
|
+
z:function(){var a=this.a;if(this.j!==this.lineWidth){this.j=this.lineWidth;a.push(e.lineWidth,this.j)}if(this.h!==this.lineCap){this.h=this.lineCap;a.push(e.lineCap,this.h)}if(this.i!==this.lineJoin){this.i=this.lineJoin;a.push(e.lineJoin,this.i)}if(this.k!==this.miterLimit){this.k=this.miterLimit;a.push(e.miterLimit,this.k)}},c:function(){var a=this.a;if(this.p!==this.shadowOffsetX){this.p=this.shadowOffsetX;a.push(e.shadowOffsetX,this.p)}if(this.q!==this.shadowOffsetY){this.q=this.shadowOffsetY;
|
18
|
+
a.push(e.shadowOffsetY,this.q)}if(this.n!==this.shadowBlur){this.n=this.shadowBlur;a.push(e.shadowBlur,this.n)}if(this.o!==this.shadowColor){this.o=this.shadowColor;a.push(e.shadowColor,this.o)}},clearRect:function(a,b,c,d){this.a.push(e.clearRect,a,b,c,d)},fillRect:function(a,b,c,d){this.b();this.c();this.l();this.a.push(e.fillRect,a,b,c,d)},strokeRect:function(a,b,c,d){this.b();this.c();this.m();this.z();this.a.push(e.strokeRect,a,b,c,d)},beginPath:function(){this.a.push(e.beginPath)},closePath:function(){this.a.push(e.closePath)},
|
19
|
+
moveTo:function(a,b){this.a.push(e.moveTo,a,b)},lineTo:function(a,b){this.a.push(e.lineTo,a,b)},quadraticCurveTo:function(a,b,c,d){this.a.push(e.quadraticCurveTo,a,b,c,d)},bezierCurveTo:function(a,b,c,d,f,g){this.a.push(e.bezierCurveTo,a,b,c,d,f,g)},arcTo:function(a,b,c,d,f){f<0&&isFinite(f)&&i(1);this.a.push(e.arcTo,a,b,c,d,f)},rect:function(a,b,c,d){this.a.push(e.rect,a,b,c,d)},arc:function(a,b,c,d,f,g){c<0&&isFinite(c)&&i(1);this.a.push(e.arc,a,b,c,d,f,g?1:0)},fill:function(){this.b();this.c();
|
20
|
+
this.l();this.a.push(e.fill)},stroke:function(){this.b();this.c();this.m();this.z();this.a.push(e.stroke)},clip:function(){this.a.push(e.clip)},w:function(){var a=this.a;if(this.v!==this.font)try{var b=y[this.d];b.style.font=this.v=this.font;var c=b.currentStyle;a.push(e.font,[c.fontStyle,c.fontWeight,b.offsetHeight,c.fontFamily].join(" "))}catch(d){}if(this.r!==this.textAlign){this.r=this.textAlign;a.push(e.textAlign,this.r)}if(this.s!==this.textBaseline){this.s=this.textBaseline;a.push(e.textBaseline,
|
21
|
+
this.s)}if(this.t!==this.canvas.currentStyle.direction){this.t=this.canvas.currentStyle.direction;a.push(e.direction,this.t)}},fillText:function(a,b,c,d){this.b();this.l();this.c();this.w();this.a.push(e.fillText,v(a),b,c,d===void 0?Infinity:d)},strokeText:function(a,b,c,d){this.b();this.m();this.c();this.w();this.a.push(e.strokeText,v(a),b,c,d===void 0?Infinity:d)},measureText:function(a){var b=y[this.d];try{b.style.font=this.font}catch(c){}b.innerText=a.replace(/[ \n\f\r]/g,"\t");return new U(b.offsetWidth)},
|
22
|
+
drawImage:function(a,b,c,d,f,g,o,l,z){a||i(17);var p=a.tagName,m,q=arguments.length,R=this.d;if(p){p=p.toLowerCase();if(p==="img")m=a.getAttribute("src",2);else if(p===r||p==="video")return;else i(17)}else if(a.src)m=a.src;else i(17);this.b();this.c();m=v(m);if(q===3)this.a.push(e.drawImage,q,m,b,c);else if(q===5)this.a.push(e.drawImage,q,m,b,c,d,f);else if(q===9){if(d===0||f===0)i(1);this.a.push(e.drawImage,q,m,b,c,d,f,g,o,l,z)}else return;if(x[R]){this.e();++n[R]}},D:function(){this.globalAlpha=
|
23
|
+
this.f=1;this.globalCompositeOperation=this.g="source-over";this.fillStyle=this.u=this.strokeStyle=this.A="#000000";this.lineWidth=this.j=1;this.lineCap=this.h="butt";this.lineJoin=this.i="miter";this.miterLimit=this.k=10;this.shadowBlur=this.n=this.shadowOffsetY=this.q=this.shadowOffsetX=this.p=0;this.shadowColor=this.o="rgba(0, 0, 0, 0.0)";this.font=this.v="10px sans-serif";this.textAlign=this.r="start";this.textBaseline=this.s="alphabetic";this.a=[];this.F=[]},H:function(){var a=this.a;this.a=
|
24
|
+
[];return a},e:function(){var a=this.H();if(a.length>0)return eval(this.B.CallFunction('<invoke name="executeCommand" returntype="javascript"><arguments><string>'+a.join("�")+"</string></arguments></invoke>"))},I:function(a,b){this.e();this.D();if(a>0)this.B.width=a;if(b>0)this.B.height=b;this.a.push(e.resize,a,b)}};t.prototype={addColorStop:function(a,b){if(isNaN(a)||a<0||a>1)i(1);this.G.a.push(e.addColorStop,this.id,a,b)}};D.prototype=Error();var T={1:"INDEX_SIZE_ERR",9:"NOT_SUPPORTED_ERR",11:"INVALID_STATE_ERR",
|
25
|
+
12:"SYNTAX_ERR",17:"TYPE_MISMATCH_ERR",18:"SECURITY_ERR"},B={initElement:function(a){if(a.getContext)return a;var b=a.uniqueID,c="external"+b;x[b]=false;n[b]=1;Q(a);a.innerHTML='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="'+location.protocol+'//fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="100%" height="100%" id="'+c+'"><param name="allowScriptAccess" value="always"><param name="flashvars" value="id='+c+'"><param name="wmode" value="transparent"></object><span style="margin:0;padding:0;border:0;display:inline-block;position:static;height:1em;overflow:visible;white-space:nowrap"></span>';
|
26
|
+
s[b]=a;var d=a.firstChild;y[b]=a.lastChild;var f=j.body.contains;if(f(a))d.movie=w;else var g=setInterval(function(){if(f(a)){clearInterval(g);d.movie=w}},0);if(j.compatMode==="BackCompat"||!h.XMLHttpRequest)y[b].style.overflow="hidden";var o=new u(a,d);a.getContext=function(l){return l==="2d"?o:k};a.toDataURL=function(l,z){(""+l).replace(/[A-Z]+/g,W)==="image/jpeg"?o.a.push(e.toDataURL,l,typeof z==="number"?z:""):o.a.push(e.toDataURL,l);return o.e()};d.attachEvent(K,G);return a},saveImage:function(a){a.firstChild.saveImage()},
|
27
|
+
setOptions:function(){},trigger:function(a,b){s[a].fireEvent("on"+b)},unlock:function(a,b){n[a]&&--n[a];if(b){var c=s[a],d=c.firstChild,f,g;Q(c);f=c.width;g=c.height;c.style.width=f+"px";c.style.height=g+"px";if(f>0)d.width=f;if(g>0)d.height=g;d.resize(f,g);c.attachEvent(L,H);x[a]=true}}};j.createElement(r);j.createStyleSheet().cssText=r+"{display:inline-block;overflow:hidden;width:300px;height:150px}";j.readyState==="complete"?A():j.attachEvent(F,A);h.attachEvent(J,I);if(w.indexOf(location.protocol+
|
28
|
+
"//"+location.host+"/")===0){var S=new ActiveXObject("Microsoft.XMLHTTP");S.open("GET",w,false);S.send(k)}h[M]=u;h[N]=t;h[O]=E;h[C]=B;h[P]={init:function(){},init_:function(){},initElement:B.initElement};keep=u.measureText}(window,document);
|
Binary file
|
@@ -0,0 +1,73 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Proxy script to load a file from other domain
|
5
|
+
*
|
6
|
+
* PHP versions 4 and 5
|
7
|
+
*
|
8
|
+
* Copyright (c) 2010-2011 Shinya Muramatsu
|
9
|
+
*
|
10
|
+
* Permission is hereby granted, free of charge, to any person obtaining a
|
11
|
+
* copy of this software and associated documentation files (the "Software"),
|
12
|
+
* to deal in the Software without restriction, including without limitation
|
13
|
+
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
14
|
+
* and/or sell copies of the Software, and to permit persons to whom the
|
15
|
+
* Software is furnished to do so, subject to the following conditions:
|
16
|
+
*
|
17
|
+
* The above copyright notice and this permission notice shall be included in
|
18
|
+
* all copies or substantial portions of the Software.
|
19
|
+
*
|
20
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
21
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
22
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
23
|
+
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
24
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
25
|
+
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
26
|
+
* DEALINGS IN THE SOFTWARE.
|
27
|
+
*
|
28
|
+
* @author Shinya Muramatsu <revulon@gmail.com>
|
29
|
+
* @copyright 2010-2011 Shinya Muramatsu
|
30
|
+
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
31
|
+
* @link http://flashcanvas.net/
|
32
|
+
* @link http://code.google.com/p/flashcanvas/
|
33
|
+
*/
|
34
|
+
|
35
|
+
// Whether we check referrer or not
|
36
|
+
define('CHECK_REFERRER', true);
|
37
|
+
|
38
|
+
// Check that the request is from FlashCanvas
|
39
|
+
if (CHECK_REFERRER) {
|
40
|
+
if (empty($_SERVER['HTTP_REFERER'])) {
|
41
|
+
exit;
|
42
|
+
}
|
43
|
+
if (!preg_match('#/flash\d*canvas\.swf$#', $_SERVER['HTTP_REFERER'])) {
|
44
|
+
exit;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
// Check that the request has a valid URL parameter
|
49
|
+
if (empty($_GET['url'])) {
|
50
|
+
exit;
|
51
|
+
}
|
52
|
+
if (!preg_match('#^https?://#', $_GET['url'])) {
|
53
|
+
exit;
|
54
|
+
}
|
55
|
+
|
56
|
+
// Percent-encode special characters in the URL
|
57
|
+
$search = array( '%', '#', ' ');
|
58
|
+
$replace = array('%25', '%23', '%20');
|
59
|
+
$url = str_replace($search, $replace, $_GET['url']);
|
60
|
+
|
61
|
+
// Disable compression
|
62
|
+
header('Content-Encoding: none');
|
63
|
+
|
64
|
+
// Load and output the file
|
65
|
+
if (extension_loaded('curl')) {
|
66
|
+
// Use cURL extension
|
67
|
+
$ch = curl_init($url);
|
68
|
+
curl_exec($ch);
|
69
|
+
curl_close($ch);
|
70
|
+
} else {
|
71
|
+
// Use the http:// wrapper
|
72
|
+
readfile($url);
|
73
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<?php
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Save the input as a PNG file
|
5
|
+
*
|
6
|
+
* PHP versions 4 and 5
|
7
|
+
*
|
8
|
+
* Copyright (c) 2010-2011 Shinya Muramatsu
|
9
|
+
*
|
10
|
+
* Permission is hereby granted, free of charge, to any person obtaining a
|
11
|
+
* copy of this software and associated documentation files (the "Software"),
|
12
|
+
* to deal in the Software without restriction, including without limitation
|
13
|
+
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
14
|
+
* and/or sell copies of the Software, and to permit persons to whom the
|
15
|
+
* Software is furnished to do so, subject to the following conditions:
|
16
|
+
*
|
17
|
+
* The above copyright notice and this permission notice shall be included in
|
18
|
+
* all copies or substantial portions of the Software.
|
19
|
+
*
|
20
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
21
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
22
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
23
|
+
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
24
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
25
|
+
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
26
|
+
* DEALINGS IN THE SOFTWARE.
|
27
|
+
*
|
28
|
+
* @author Shinya Muramatsu <revulon@gmail.com>
|
29
|
+
* @copyright 2010-2011 Shinya Muramatsu
|
30
|
+
* @license http://www.opensource.org/licenses/mit-license.php MIT License
|
31
|
+
* @link http://flashcanvas.net/
|
32
|
+
* @link http://code.google.com/p/flashcanvas/
|
33
|
+
*/
|
34
|
+
|
35
|
+
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
36
|
+
// Force download
|
37
|
+
header('Content-Type: application/octet-stream');
|
38
|
+
header('Content-Disposition: attachment; filename="canvas.png"');
|
39
|
+
|
40
|
+
if (isset($_POST['dataurl'])) {
|
41
|
+
// Decode the base64-encoded data
|
42
|
+
$data = $_POST['dataurl'];
|
43
|
+
$data = substr($data, strpos($data, ',') + 1);
|
44
|
+
echo base64_decode($data);
|
45
|
+
} else {
|
46
|
+
// Output the raw data
|
47
|
+
readfile('php://input');
|
48
|
+
}
|
49
|
+
}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
FlashCanvas Pro
|
2
|
+
===============
|
3
|
+
|
4
|
+
An implementation of the HTML5 Canvas API for Internet Explorer.
|
5
|
+
|
6
|
+
|
7
|
+
Description
|
8
|
+
-----------
|
9
|
+
|
10
|
+
FlashCanvas is a JavaScript library which adds the HTML5 Canvas support
|
11
|
+
to Internet Explorer. It renders shapes and images via Flash drawing
|
12
|
+
API, and in many cases, runs faster than other similar libraries which
|
13
|
+
use VML or Silverlight.
|
14
|
+
|
15
|
+
FlashCanvas Pro is a professional edition of FlashCanvas. It supports
|
16
|
+
almost all Canvas APIs including text, shadow and pixel manipulation.
|
17
|
+
Moreover, it utilizes Flash Player 10 features if available, that
|
18
|
+
provides better performance and compatibility.
|
19
|
+
|
20
|
+
|
21
|
+
Requirements
|
22
|
+
------------
|
23
|
+
|
24
|
+
* Microsoft Internet Explorer
|
25
|
+
* Adobe Flash Player 9 or later
|
26
|
+
|
27
|
+
|
28
|
+
Usage
|
29
|
+
-----
|
30
|
+
|
31
|
+
FlashCanvas Pro consists of JavaScript, Flash and PHP files:
|
32
|
+
|
33
|
+
* flashcanvas.js
|
34
|
+
* flash9canvas.swf
|
35
|
+
* flash10canvas.swf
|
36
|
+
* canvas2png.js (helps you to save a canvas image)
|
37
|
+
* proxy.php (used to load a file from other domain)
|
38
|
+
* save.php (used to save a canvas image)
|
39
|
+
|
40
|
+
These files can be found in the bin directory in this distribution
|
41
|
+
package. To install FlashCanvas Pro, copy these files into some
|
42
|
+
directory on a Web server, and then add the following HTML code between
|
43
|
+
<head> and </head> tags on your web page.
|
44
|
+
|
45
|
+
<!--[if lt IE 9]>
|
46
|
+
<script type="text/javascript" src="path/to/flashcanvas.js"></script>
|
47
|
+
<![endif]-->
|
48
|
+
|
49
|
+
That's all you have to do in most cases. For more details, please read
|
50
|
+
the online manual at the project page.
|
51
|
+
|
52
|
+
|
53
|
+
License
|
54
|
+
-------
|
55
|
+
|
56
|
+
FlashCanvas Pro is released under the FlashCanvas Pro License. This
|
57
|
+
license is based on the MIT License, but includes the following
|
58
|
+
modifications:
|
59
|
+
|
60
|
+
* Remove the rights to "sublicense, and/or sell copies of the Software".
|
61
|
+
* Permit to use "free of charge" only for non-profit use.
|
62
|
+
* Add conditions for commercial use.
|
63
|
+
|
64
|
+
As a result, FlashCanvas Pro is available free of charge for non-profit
|
65
|
+
use. If you use FlashCanvas Pro for commercial purposes, however, you
|
66
|
+
are required to purchase a commercial license. This commercial license
|
67
|
+
includes the following rights:
|
68
|
+
|
69
|
+
* The licensee can use FlashCanvas Pro as many times as needed.
|
70
|
+
* The licensee can download the latest version of FlashCanvas Pro as
|
71
|
+
many times as needed.
|
72
|
+
|
73
|
+
|
74
|
+
Contact
|
75
|
+
-------
|
76
|
+
|
77
|
+
If you have a question about FlashCanvas Pro, please utilize the
|
78
|
+
discussion group and issue tracker found at the project page. If you
|
79
|
+
need to contact us directly, you can reach us at the e-mail address.
|
80
|
+
|
81
|
+
Project page: http://flashcanvas.net/
|
82
|
+
E-mail: info@flashcanvas.net
|