webshims-rails 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/MIT_LICENSE.txt +20 -0
  4. data/Rakefile +1 -0
  5. data/lib/webshims-rails.rb +13 -0
  6. data/lib/webshims-rails/version.rb +6 -0
  7. data/readme.textile +26 -0
  8. data/vendor/assets/javascripts/webshims/minified/extras/custom-validity.js +9 -0
  9. data/vendor/assets/javascripts/webshims/minified/extras/modernizr-custom.js +19 -0
  10. data/vendor/assets/javascripts/webshims/minified/extras/mousepress.js +2 -0
  11. data/vendor/assets/javascripts/webshims/minified/polyfiller.js +27 -0
  12. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/README +62 -0
  13. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/canvas2png.js +42 -0
  14. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/flashcanvas.js +28 -0
  15. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/flashcanvas.swf +0 -0
  16. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/proxy.php +73 -0
  17. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvas/save.php +49 -0
  18. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/README +82 -0
  19. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/canvas2png.js +42 -0
  20. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flash10canvas.swf +0 -0
  21. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flash9canvas.swf +0 -0
  22. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/flashcanvas.js +31 -0
  23. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/proxy.php +73 -0
  24. data/vendor/assets/javascripts/webshims/minified/shims/FlashCanvasPro/save.php +49 -0
  25. data/vendor/assets/javascripts/webshims/minified/shims/combos/1.js +33 -0
  26. data/vendor/assets/javascripts/webshims/minified/shims/combos/10.js +75 -0
  27. data/vendor/assets/javascripts/webshims/minified/shims/combos/11.js +39 -0
  28. data/vendor/assets/javascripts/webshims/minified/shims/combos/12.js +38 -0
  29. data/vendor/assets/javascripts/webshims/minified/shims/combos/13.js +25 -0
  30. data/vendor/assets/javascripts/webshims/minified/shims/combos/14.js +19 -0
  31. data/vendor/assets/javascripts/webshims/minified/shims/combos/15.js +10 -0
  32. data/vendor/assets/javascripts/webshims/minified/shims/combos/16.js +53 -0
  33. data/vendor/assets/javascripts/webshims/minified/shims/combos/17.js +62 -0
  34. data/vendor/assets/javascripts/webshims/minified/shims/combos/18.js +64 -0
  35. data/vendor/assets/javascripts/webshims/minified/shims/combos/19.js +60 -0
  36. data/vendor/assets/javascripts/webshims/minified/shims/combos/2.js +61 -0
  37. data/vendor/assets/javascripts/webshims/minified/shims/combos/20.js +42 -0
  38. data/vendor/assets/javascripts/webshims/minified/shims/combos/21.js +40 -0
  39. data/vendor/assets/javascripts/webshims/minified/shims/combos/22.js +56 -0
  40. data/vendor/assets/javascripts/webshims/minified/shims/combos/23.js +53 -0
  41. data/vendor/assets/javascripts/webshims/minified/shims/combos/24.js +73 -0
  42. data/vendor/assets/javascripts/webshims/minified/shims/combos/3.js +80 -0
  43. data/vendor/assets/javascripts/webshims/minified/shims/combos/4.js +30 -0
  44. data/vendor/assets/javascripts/webshims/minified/shims/combos/5.js +37 -0
  45. data/vendor/assets/javascripts/webshims/minified/shims/combos/59.js +56 -0
  46. data/vendor/assets/javascripts/webshims/minified/shims/combos/6.js +38 -0
  47. data/vendor/assets/javascripts/webshims/minified/shims/combos/7.js +45 -0
  48. data/vendor/assets/javascripts/webshims/minified/shims/combos/8.js +33 -0
  49. data/vendor/assets/javascripts/webshims/minified/shims/combos/9.js +62 -0
  50. data/vendor/assets/javascripts/webshims/minified/shims/details.js +5 -0
  51. data/vendor/assets/javascripts/webshims/minified/shims/dom-extend.js +20 -0
  52. data/vendor/assets/javascripts/webshims/minified/shims/es5.js +14 -0
  53. data/vendor/assets/javascripts/webshims/minified/shims/excanvas.js +35 -0
  54. data/vendor/assets/javascripts/webshims/minified/shims/form-core.js +21 -0
  55. data/vendor/assets/javascripts/webshims/minified/shims/form-datalist.js +19 -0
  56. data/vendor/assets/javascripts/webshims/minified/shims/form-message.js +9 -0
  57. data/vendor/assets/javascripts/webshims/minified/shims/form-native-extend.js +7 -0
  58. data/vendor/assets/javascripts/webshims/minified/shims/form-native-fix.js +9 -0
  59. data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-api.js +12 -0
  60. data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-ui.js +26 -0
  61. data/vendor/assets/javascripts/webshims/minified/shims/form-output.js +5 -0
  62. data/vendor/assets/javascripts/webshims/minified/shims/form-shim-extend.js +26 -0
  63. data/vendor/assets/javascripts/webshims/minified/shims/geolocation.js +5 -0
  64. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ar.js +7 -0
  65. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ch-ZN.js +3 -0
  66. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-de.txt +33 -0
  67. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-el.js +7 -0
  68. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-en.txt +34 -0
  69. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-es.js +3 -0
  70. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-fr.js +3 -0
  71. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-he.js +6 -0
  72. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-hi.js +6 -0
  73. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-hu.js +3 -0
  74. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-it.js +3 -0
  75. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ja.js +4 -0
  76. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-nl.js +3 -0
  77. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-pt-PT.js +3 -0
  78. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-ru.js +8 -0
  79. data/vendor/assets/javascripts/webshims/minified/shims/json-storage.js +14 -0
  80. data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/license.txt +1 -0
  81. data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/player.swf +0 -0
  82. data/vendor/assets/javascripts/webshims/minified/shims/jwplayer/readme.html +87 -0
  83. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-core.js +13 -0
  84. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-native-fix.js +3 -0
  85. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-swf.js +29 -0
  86. data/vendor/assets/javascripts/webshims/minified/shims/styles/details-arrows.png +0 -0
  87. data/vendor/assets/javascripts/webshims/minified/shims/styles/forms.png +0 -0
  88. data/vendor/assets/javascripts/webshims/minified/shims/styles/polyfill-loader.gif +0 -0
  89. data/vendor/assets/javascripts/webshims/minified/shims/styles/shim.css +610 -0
  90. data/vendor/assets/javascripts/webshims/minified/shims/swf/jwwebshims.swf +0 -0
  91. data/vendor/assets/javascripts/webshims/minified/shims/swf/localStorage.swf +0 -0
  92. data/webshims-rails.gemspec +26 -0
  93. metadata +149 -0
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in webshims-rails.gemspec
4
+ gemspec
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
@@ -0,0 +1,6 @@
1
+ module Webshims
2
+ module Rails
3
+ VERSION = "0.1"
4
+ WEBSHIMS_VERSION = "1.8.9"
5
+ end
6
+ 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,"&amp;").replace(/</g,"&lt;")}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("&#0;")+"</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);
@@ -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