webshims-rails 0.1

Sign up to get free protection for your applications and to get access to all the features.
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