imaginable 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/.gitignore +3 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +84 -0
  4. data/README.textile +114 -0
  5. data/Rakefile +2 -0
  6. data/imaginable.gemspec +21 -0
  7. data/lib/generators/imaginable/install/install_generator.rb +28 -0
  8. data/lib/generators/templates/fancybox/blank.gif +0 -0
  9. data/lib/generators/templates/fancybox/fancy_close.png +0 -0
  10. data/lib/generators/templates/fancybox/fancy_loading.png +0 -0
  11. data/lib/generators/templates/fancybox/fancy_nav_left.png +0 -0
  12. data/lib/generators/templates/fancybox/fancy_nav_right.png +0 -0
  13. data/lib/generators/templates/fancybox/fancy_shadow_e.png +0 -0
  14. data/lib/generators/templates/fancybox/fancy_shadow_n.png +0 -0
  15. data/lib/generators/templates/fancybox/fancy_shadow_ne.png +0 -0
  16. data/lib/generators/templates/fancybox/fancy_shadow_nw.png +0 -0
  17. data/lib/generators/templates/fancybox/fancy_shadow_s.png +0 -0
  18. data/lib/generators/templates/fancybox/fancy_shadow_se.png +0 -0
  19. data/lib/generators/templates/fancybox/fancy_shadow_sw.png +0 -0
  20. data/lib/generators/templates/fancybox/fancy_shadow_w.png +0 -0
  21. data/lib/generators/templates/fancybox/fancy_title_left.png +0 -0
  22. data/lib/generators/templates/fancybox/fancy_title_main.png +0 -0
  23. data/lib/generators/templates/fancybox/fancy_title_over.png +0 -0
  24. data/lib/generators/templates/fancybox/fancy_title_right.png +0 -0
  25. data/lib/generators/templates/fancybox/fancybox-x.png +0 -0
  26. data/lib/generators/templates/fancybox/fancybox-y.png +0 -0
  27. data/lib/generators/templates/fancybox/fancybox.png +0 -0
  28. data/lib/generators/templates/fancybox/jquery.fancybox-1.3.4.css +359 -0
  29. data/lib/generators/templates/imaginable.js +429 -0
  30. data/lib/generators/templates/imaginable.rb +6 -0
  31. data/lib/generators/templates/imgareaselect/border-anim-h.gif +0 -0
  32. data/lib/generators/templates/imgareaselect/border-anim-v.gif +0 -0
  33. data/lib/generators/templates/imgareaselect/border-h.gif +0 -0
  34. data/lib/generators/templates/imgareaselect/border-v.gif +0 -0
  35. data/lib/generators/templates/imgareaselect/imgareaselect-animated.css +41 -0
  36. data/lib/generators/templates/imgareaselect/imgareaselect-default.css +41 -0
  37. data/lib/generators/templates/imgareaselect/imgareaselect-deprecated.css +36 -0
  38. data/lib/generators/templates/jquery.fancybox-1.3.4.pack.js +46 -0
  39. data/lib/generators/templates/jquery.imgareaselect.pack.js +1 -0
  40. data/lib/generators/templates/plupload.flash.swf +0 -0
  41. data/lib/generators/templates/plupload.full.min.js +2 -0
  42. data/lib/imaginable.rb +22 -0
  43. data/lib/imaginable/form_builder.rb +100 -0
  44. data/lib/imaginable/image.rb +24 -0
  45. data/lib/imaginable/model.rb +67 -0
  46. data/lib/imaginable/railtie.rb +27 -0
  47. data/lib/imaginable/schema.rb +11 -0
  48. data/lib/imaginable/version.rb +3 -0
  49. metadata +52 -5
@@ -0,0 +1,41 @@
1
+ /*
2
+ * imgAreaSelect default style
3
+ */
4
+
5
+ .imgareaselect-border1 {
6
+ background: url(border-v.gif) repeat-y left top;
7
+ }
8
+
9
+ .imgareaselect-border2 {
10
+ background: url(border-h.gif) repeat-x left top;
11
+ }
12
+
13
+ .imgareaselect-border3 {
14
+ background: url(border-v.gif) repeat-y right top;
15
+ }
16
+
17
+ .imgareaselect-border4 {
18
+ background: url(border-h.gif) repeat-x left bottom;
19
+ }
20
+
21
+ .imgareaselect-border1, .imgareaselect-border2,
22
+ .imgareaselect-border3, .imgareaselect-border4 {
23
+ filter: alpha(opacity=50);
24
+ opacity: 0.5;
25
+ }
26
+
27
+ .imgareaselect-handle {
28
+ background-color: #fff;
29
+ border: solid 1px #000;
30
+ filter: alpha(opacity=50);
31
+ opacity: 0.5;
32
+ }
33
+
34
+ .imgareaselect-outer {
35
+ background-color: #000;
36
+ filter: alpha(opacity=50);
37
+ opacity: 0.5;
38
+ }
39
+
40
+ .imgareaselect-selection {
41
+ }
@@ -0,0 +1,36 @@
1
+ /*
2
+ * imgAreaSelect style to be used with deprecated options
3
+ */
4
+
5
+ .imgareaselect-border1, .imgareaselect-border2,
6
+ .imgareaselect-border3, .imgareaselect-border4 {
7
+ filter: alpha(opacity=50);
8
+ opacity: 0.5;
9
+ }
10
+
11
+ .imgareaselect-border1 {
12
+ border: solid 1px #000;
13
+ }
14
+
15
+ .imgareaselect-border2 {
16
+ border: dashed 1px #fff;
17
+ }
18
+
19
+ .imgareaselect-handle {
20
+ background-color: #fff;
21
+ border: solid 1px #000;
22
+ filter: alpha(opacity=50);
23
+ opacity: 0.5;
24
+ }
25
+
26
+ .imgareaselect-outer {
27
+ background-color: #000;
28
+ filter: alpha(opacity=40);
29
+ opacity: 0.4;
30
+ }
31
+
32
+ .imgareaselect-selection {
33
+ background-color: #fff;
34
+ filter: alpha(opacity=0);
35
+ opacity: 0;
36
+ }
@@ -0,0 +1,46 @@
1
+ /*
2
+ * FancyBox - jQuery Plugin
3
+ * Simple and fancy lightbox alternative
4
+ *
5
+ * Examples and documentation at: http://fancybox.net
6
+ *
7
+ * Copyright (c) 2008 - 2010 Janis Skarnelis
8
+ * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated.
9
+ *
10
+ * Version: 1.3.4 (11/11/2010)
11
+ * Requires: jQuery v1.3+
12
+ *
13
+ * Dual licensed under the MIT and GPL licenses:
14
+ * http://www.opensource.org/licenses/mit-license.php
15
+ * http://www.gnu.org/licenses/gpl.html
16
+ */
17
+
18
+ ;(function(b){var m,t,u,f,D,j,E,n,z,A,q=0,e={},o=[],p=0,d={},l=[],G=null,v=new Image,J=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,W=/[^\.]\.(swf)\s*$/i,K,L=1,y=0,s="",r,i,h=false,B=b.extend(b("<div/>")[0],{prop:0}),M=b.browser.msie&&b.browser.version<7&&!window.XMLHttpRequest,N=function(){t.hide();v.onerror=v.onload=null;G&&G.abort();m.empty()},O=function(){if(false===e.onError(o,q,e)){t.hide();h=false}else{e.titleShow=false;e.width="auto";e.height="auto";m.html('<p id="fancybox-error">The requested content cannot be loaded.<br />Please try again later.</p>');
19
+ F()}},I=function(){var a=o[q],c,g,k,C,P,w;N();e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));w=e.onStart(o,q,e);if(w===false)h=false;else{if(typeof w=="object")e=b.extend(e,w);k=e.title||(a.nodeName?b(a).attr("title"):a.title)||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(k===""&&e.orig&&e.titleFromAlt)k=e.orig.attr("alt");c=e.href||(a.nodeName?b(a).attr("href"):a.href)||null;if(/^(?:javascript)/i.test(c)||
20
+ c=="#")c=null;if(e.type){g=e.type;if(!c)c=e.content}else if(e.content)g="html";else if(c)g=c.match(J)?"image":c.match(W)?"swf":b(a).hasClass("iframe")?"iframe":c.indexOf("#")===0?"inline":"ajax";if(g){if(g=="inline"){a=c.substr(c.indexOf("#"));g=b(a).length>0?"inline":"ajax"}e.type=g;e.href=c;e.title=k;if(e.autoDimensions)if(e.type=="html"||e.type=="inline"||e.type=="ajax"){e.width="auto";e.height="auto"}else e.autoDimensions=false;if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick=
21
+ false;e.enableEscapeButton=false;e.showCloseButton=false}e.padding=parseInt(e.padding,10);e.margin=parseInt(e.margin,10);m.css("padding",e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(j.children())});switch(g){case "html":m.html(e.content);F();break;case "inline":if(b(a).parent().is("#fancybox-content")===true){h=false;break}b('<div class="fancybox-inline-tmp" />').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(j.children())}).bind("fancybox-cancel",
22
+ function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity();v=new Image;v.onerror=function(){O()};v.onload=function(){h=true;v.onerror=v.onload=null;e.width=v.width;e.height=v.height;b("<img />").attr({id:"fancybox-img",src:v.src,alt:e.title}).appendTo(m);Q()};v.src=c;break;case "swf":e.scrolling="no";C='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+e.width+'" height="'+e.height+'"><param name="movie" value="'+c+
23
+ '"></param>';P="";b.each(e.swf,function(x,H){C+='<param name="'+x+'" value="'+H+'"></param>';P+=" "+x+'="'+H+'"'});C+='<embed src="'+c+'" type="application/x-shockwave-flash" width="'+e.width+'" height="'+e.height+'"'+P+"></embed></object>";m.html(C);F();break;case "ajax":h=false;b.fancybox.showActivity();e.ajax.win=e.ajax.success;G=b.ajax(b.extend({},e.ajax,{url:c,data:e.ajax.data||{},error:function(x){x.status>0&&O()},success:function(x,H,R){if((typeof R=="object"?R:G).status==200){if(typeof e.ajax.win==
24
+ "function"){w=e.ajax.win(c,x,H,R);if(w===false){t.hide();return}else if(typeof w=="string"||typeof w=="object")x=w}m.html(x);F()}}}));break;case "iframe":Q()}}else O()}},F=function(){var a=e.width,c=e.height;a=a.toString().indexOf("%")>-1?parseInt((b(window).width()-e.margin*2)*parseFloat(a)/100,10)+"px":a=="auto"?"auto":a+"px";c=c.toString().indexOf("%")>-1?parseInt((b(window).height()-e.margin*2)*parseFloat(c)/100,10)+"px":c=="auto"?"auto":c+"px";m.wrapInner('<div style="width:'+a+";height:"+c+
25
+ ";overflow: "+(e.scrolling=="auto"?"auto":e.scrolling=="yes"?"scroll":"hidden")+';position:relative;"></div>');e.width=m.width();e.height=m.height();Q()},Q=function(){var a,c;t.hide();if(f.is(":visible")&&false===d.onCleanup(l,p,d)){b.event.trigger("fancybox-cancel");h=false}else{h=true;b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");f.is(":visible")&&d.titlePosition!=="outside"&&f.css("height",f.height());l=o;p=q;d=e;if(d.overlayShow){u.css({"background-color":d.overlayColor,
26
+ opacity:d.overlayOpacity,cursor:d.hideOnOverlayClick?"pointer":"auto",height:b(document).height()});if(!u.is(":visible")){M&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"});u.show()}}else u.hide();i=X();s=d.title||"";y=0;n.empty().removeAttr("style").removeClass();if(d.titleShow!==false){if(b.isFunction(d.titleFormat))a=d.titleFormat(s,l,p,d);else a=s&&s.length?
27
+ d.titlePosition=="float"?'<table id="fancybox-title-float-wrap" cellpadding="0" cellspacing="0"><tr><td id="fancybox-title-float-left"></td><td id="fancybox-title-float-main">'+s+'</td><td id="fancybox-title-float-right"></td></tr></table>':'<div id="fancybox-title-'+d.titlePosition+'">'+s+"</div>":false;s=a;if(!(!s||s==="")){n.addClass("fancybox-title-"+d.titlePosition).html(s).appendTo("body").show();switch(d.titlePosition){case "inside":n.css({width:i.width-d.padding*2,marginLeft:d.padding,marginRight:d.padding});
28
+ y=n.outerHeight(true);n.appendTo(D);i.height+=y;break;case "over":n.css({marginLeft:d.padding,width:i.width-d.padding*2,bottom:d.padding}).appendTo(D);break;case "float":n.css("left",parseInt((n.width()-i.width-40)/2,10)*-1).appendTo(f);break;default:n.css({width:i.width-d.padding*2,paddingLeft:d.padding,paddingRight:d.padding}).appendTo(f)}}}n.hide();if(f.is(":visible")){b(E.add(z).add(A)).hide();a=f.position();r={top:a.top,left:a.left,width:f.width(),height:f.height()};c=r.width==i.width&&r.height==
29
+ i.height;j.fadeTo(d.changeFade,0.3,function(){var g=function(){j.html(m.contents()).fadeTo(d.changeFade,1,S)};b.event.trigger("fancybox-change");j.empty().removeAttr("filter").css({"border-width":d.padding,width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2});if(c)g();else{B.prop=0;b(B).animate({prop:1},{duration:d.changeSpeed,easing:d.easingChange,step:T,complete:g})}})}else{f.removeAttr("style");j.css("border-width",d.padding);if(d.transitionIn=="elastic"){r=V();j.html(m.contents());
30
+ f.show();if(d.opacity)i.opacity=0;B.prop=0;b(B).animate({prop:1},{duration:d.speedIn,easing:d.easingIn,step:T,complete:S})}else{d.titlePosition=="inside"&&y>0&&n.show();j.css({width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2}).html(m.contents());f.css(i).fadeIn(d.transitionIn=="none"?0:d.speedIn,S)}}}},Y=function(){if(d.enableEscapeButton||d.enableKeyboardNav)b(document).bind("keydown.fb",function(a){if(a.keyCode==27&&d.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if((a.keyCode==
31
+ 37||a.keyCode==39)&&d.enableKeyboardNav&&a.target.tagName!=="INPUT"&&a.target.tagName!=="TEXTAREA"&&a.target.tagName!=="SELECT"){a.preventDefault();b.fancybox[a.keyCode==37?"prev":"next"]()}});if(d.showNavArrows){if(d.cyclic&&l.length>1||p!==0)z.show();if(d.cyclic&&l.length>1||p!=l.length-1)A.show()}else{z.hide();A.hide()}},S=function(){if(!b.support.opacity){j.get(0).style.removeAttribute("filter");f.get(0).style.removeAttribute("filter")}e.autoDimensions&&j.css("height","auto");f.css("height","auto");
32
+ s&&s.length&&n.show();d.showCloseButton&&E.show();Y();d.hideOnContentClick&&j.bind("click",b.fancybox.close);d.hideOnOverlayClick&&u.bind("click",b.fancybox.close);b(window).bind("resize.fb",b.fancybox.resize);d.centerOnScroll&&b(window).bind("scroll.fb",b.fancybox.center);if(d.type=="iframe")b('<iframe id="fancybox-frame" name="fancybox-frame'+(new Date).getTime()+'" frameborder="0" hspace="0" '+(b.browser.msie?'allowtransparency="true""':"")+' scrolling="'+e.scrolling+'" src="'+d.href+'"></iframe>').appendTo(j);
33
+ f.show();h=false;b.fancybox.center();d.onComplete(l,p,d);var a,c;if(l.length-1>p){a=l[p+1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}if(p>0){a=l[p-1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}},T=function(a){var c={width:parseInt(r.width+(i.width-r.width)*a,10),height:parseInt(r.height+(i.height-r.height)*a,10),top:parseInt(r.top+(i.top-r.top)*a,10),left:parseInt(r.left+(i.left-r.left)*a,10)};if(typeof i.opacity!=="undefined")c.opacity=a<0.5?0.5:a;f.css(c);
34
+ j.css({width:c.width-d.padding*2,height:c.height-y*a-d.padding*2})},U=function(){return[b(window).width()-d.margin*2,b(window).height()-d.margin*2,b(document).scrollLeft()+d.margin,b(document).scrollTop()+d.margin]},X=function(){var a=U(),c={},g=d.autoScale,k=d.padding*2;c.width=d.width.toString().indexOf("%")>-1?parseInt(a[0]*parseFloat(d.width)/100,10):d.width+k;c.height=d.height.toString().indexOf("%")>-1?parseInt(a[1]*parseFloat(d.height)/100,10):d.height+k;if(g&&(c.width>a[0]||c.height>a[1]))if(e.type==
35
+ "image"||e.type=="swf"){g=d.width/d.height;if(c.width>a[0]){c.width=a[0];c.height=parseInt((c.width-k)/g+k,10)}if(c.height>a[1]){c.height=a[1];c.width=parseInt((c.height-k)*g+k,10)}}else{c.width=Math.min(c.width,a[0]);c.height=Math.min(c.height,a[1])}c.top=parseInt(Math.max(a[3]-20,a[3]+(a[1]-c.height-40)*0.5),10);c.left=parseInt(Math.max(a[2]-20,a[2]+(a[0]-c.width-40)*0.5),10);return c},V=function(){var a=e.orig?b(e.orig):false,c={};if(a&&a.length){c=a.offset();c.top+=parseInt(a.css("paddingTop"),
36
+ 10)||0;c.left+=parseInt(a.css("paddingLeft"),10)||0;c.top+=parseInt(a.css("border-top-width"),10)||0;c.left+=parseInt(a.css("border-left-width"),10)||0;c.width=a.width();c.height=a.height();c={width:c.width+d.padding*2,height:c.height+d.padding*2,top:c.top-d.padding-20,left:c.left-d.padding-20}}else{a=U();c={width:d.padding*2,height:d.padding*2,top:parseInt(a[3]+a[1]*0.5,10),left:parseInt(a[2]+a[0]*0.5,10)}}return c},Z=function(){if(t.is(":visible")){b("div",t).css("top",L*-40+"px");L=(L+1)%12}else clearInterval(K)};
37
+ b.fn.fancybox=function(a){if(!b(this).length)return this;b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(c){c.preventDefault();if(!h){h=true;b(this).blur();o=[];q=0;c=b(this).attr("rel")||"";if(!c||c==""||c==="nofollow")o.push(this);else{o=b("a[rel="+c+"], area[rel="+c+"]");q=o.index(this)}I()}});return this};b.fancybox=function(a,c){var g;if(!h){h=true;g=typeof c!=="undefined"?c:{};o=[];q=parseInt(g.index,10)||0;if(b.isArray(a)){for(var k=
38
+ 0,C=a.length;k<C;k++)if(typeof a[k]=="object")b(a[k]).data("fancybox",b.extend({},g,a[k]));else a[k]=b({}).data("fancybox",b.extend({content:a[k]},g));o=jQuery.merge(o,a)}else{if(typeof a=="object")b(a).data("fancybox",b.extend({},g,a));else a=b({}).data("fancybox",b.extend({content:a},g));o.push(a)}if(q>o.length||q<0)q=0;I()}};b.fancybox.showActivity=function(){clearInterval(K);t.show();K=setInterval(Z,66)};b.fancybox.hideActivity=function(){t.hide()};b.fancybox.next=function(){return b.fancybox.pos(p+
39
+ 1)};b.fancybox.prev=function(){return b.fancybox.pos(p-1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a);o=l;if(a>-1&&a<l.length){q=a;I()}else if(d.cyclic&&l.length>1){q=a>=l.length?0:l.length-1;I()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");N();e.onCancel(o,q,e);h=false}};b.fancybox.close=function(){function a(){u.fadeOut("fast");n.empty().hide();f.hide();b.event.trigger("fancybox-cleanup");j.empty();d.onClosed(l,p,d);l=e=[];p=q=0;d=e={};h=false}if(!(h||f.is(":hidden"))){h=
40
+ true;if(d&&false===d.onCleanup(l,p,d))h=false;else{N();b(E.add(z).add(A)).hide();b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");j.find("iframe").attr("src",M&&/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank");d.titlePosition!=="inside"&&n.empty();f.stop();if(d.transitionOut=="elastic"){r=V();var c=f.position();i={top:c.top,left:c.left,width:f.width(),height:f.height()};if(d.opacity)i.opacity=1;n.empty().hide();B.prop=1;
41
+ b(B).animate({prop:0},{duration:d.speedOut,easing:d.easingOut,step:T,complete:a})}else f.fadeOut(d.transitionOut=="none"?0:d.speedOut,a)}}};b.fancybox.resize=function(){u.is(":visible")&&u.css("height",b(document).height());b.fancybox.center(true)};b.fancybox.center=function(a){var c,g;if(!h){g=a===true?1:0;c=U();!g&&(f.width()>c[0]||f.height()>c[1])||f.stop().animate({top:parseInt(Math.max(c[3]-20,c[3]+(c[1]-j.height()-40)*0.5-d.padding)),left:parseInt(Math.max(c[2]-20,c[2]+(c[0]-j.width()-40)*0.5-
42
+ d.padding))},typeof a=="number"?a:200)}};b.fancybox.init=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('<div id="fancybox-tmp"></div>'),t=b('<div id="fancybox-loading"><div></div></div>'),u=b('<div id="fancybox-overlay"></div>'),f=b('<div id="fancybox-wrap"></div>'));D=b('<div id="fancybox-outer"></div>').append('<div class="fancybox-bg" id="fancybox-bg-n"></div><div class="fancybox-bg" id="fancybox-bg-ne"></div><div class="fancybox-bg" id="fancybox-bg-e"></div><div class="fancybox-bg" id="fancybox-bg-se"></div><div class="fancybox-bg" id="fancybox-bg-s"></div><div class="fancybox-bg" id="fancybox-bg-sw"></div><div class="fancybox-bg" id="fancybox-bg-w"></div><div class="fancybox-bg" id="fancybox-bg-nw"></div>').appendTo(f);
43
+ D.append(j=b('<div id="fancybox-content"></div>'),E=b('<a id="fancybox-close"></a>'),n=b('<div id="fancybox-title"></div>'),z=b('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),A=b('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>'));E.click(b.fancybox.close);t.click(b.fancybox.cancel);z.click(function(a){a.preventDefault();b.fancybox.prev()});A.click(function(a){a.preventDefault();b.fancybox.next()});
44
+ b.fn.mousewheel&&f.bind("mousewheel.fb",function(a,c){if(h)a.preventDefault();else if(b(a.target).get(0).clientHeight==0||b(a.target).get(0).scrollHeight===b(a.target).get(0).clientHeight){a.preventDefault();b.fancybox[c>0?"prev":"next"]()}});b.support.opacity||f.addClass("fancybox-ie");if(M){t.addClass("fancybox-ie6");f.addClass("fancybox-ie6");b('<iframe id="fancybox-hide-sel-frame" src="'+(/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank")+'" scrolling="no" border="0" frameborder="0" tabindex="-1"></iframe>').prependTo(D)}}};
45
+ b.fn.fancybox.defaults={padding:10,margin:40,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.7,overlayColor:"#777",titleShow:true,titlePosition:"float",titleFormat:null,titleFromAlt:false,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing",
46
+ easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,enableKeyboardNav:true,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}};b(document).ready(function(){b.fancybox.init()})})(jQuery);
@@ -0,0 +1 @@
1
+ eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(m($){1l W=2u.4M,D=2u.4L,F=2u.4K,H=2u.4J;m U(){C $("<4I/>")};$.Q=m(Y,f){1l P=$(Y),2D,v=U(),1j=U(),J=U().u(U()).u(U()).u(U()),A=U().u(U()).u(U()).u(U()),E=$([]),1G,G,q,18,R,M,1k,1f,13=0,1F="1D",2i,2h,2b,2a,4H=10,N,1A,1z,2n,2m,15,1J,a,c,l,j,g={a:0,c:0,l:0,j:0,I:0,L:0},2t=T.4G,$p,d,i,o,w,h,2o;m 1n(x){C x+18.B-1f.B};m 1m(y){C y+18.q-1f.q};m 1b(x){C x-18.B+1f.B};m 1a(y){C y-18.q+1f.q};m 1y(3I){C 3I.4F-1f.B};m 1x(3H){C 3H.4E-1f.q};m 14(31){1l 1h=31||2b,1g=31||2a;C{a:H(g.a*1h),c:H(g.c*1g),l:H(g.l*1h),j:H(g.j*1g),I:H(g.l*1h)-H(g.a*1h),L:H(g.j*1g)-H(g.c*1g)}};m 20(a,c,l,j,30){1l 1h=30||2b,1g=30||2a;g={a:H(a/1h||0),c:H(c/1g||0),l:H(l/1h||0),j:H(j/1g||0)};g.I=g.l-g.a;g.L=g.j-g.c};m 1e(){b(!P.I()){C}18={B:H(P.2s().B),q:H(P.2s().q)};R=P.2Y();M=P.3G();18.q+=(P.2Z()-M)>>1;18.B+=(P.2p()-R)>>1;1A=f.4D||0;1z=f.4C||0;2n=F(f.4B||1<<24,R);2m=F(f.4A||1<<24,M);b($().4z=="1.3.2"&&1F=="1Y"&&!2t["4y"]){18.q+=D(T.1r.2q,2t.2q);18.B+=D(T.1r.2r,2t.2r)}1f=$.4x(1k.r("1p"),["1D","4w"])+1?{B:H(1k.2s().B)-1k.2r(),q:H(1k.2s().q)-1k.2q()}:1F=="1Y"?{B:$(T).2r(),q:$(T).2q()}:{B:0,q:0};G=1n(0);q=1m(0);b(g.l>R||g.j>M){1N()}};m 1O(3E){b(!1J){C}v.r({B:1n(g.a),q:1m(g.c)}).u(1j).I(w=g.I).L(h=g.L);1j.u(J).u(E).r({B:0,q:0});J.I(D(w-J.2p()+J.2Y(),0)).L(D(h-J.2Z()+J.3G(),0));$(A[0]).r({B:G,q:q,I:g.a,L:M});$(A[1]).r({B:G+g.a,q:q,I:w,L:g.c});$(A[2]).r({B:G+g.l,q:q,I:R-g.l,L:M});$(A[3]).r({B:G+g.a,q:q+g.j,I:w,L:M-g.j});w-=E.2p();h-=E.2Z();2M(E.3c){16 8:$(E[4]).r({B:w>>1});$(E[5]).r({B:w,q:h>>1});$(E[6]).r({B:w>>1,q:h});$(E[7]).r({q:h>>1});16 4:E.3F(1,3).r({B:w});E.3F(2,4).r({q:h})}b(3E!==Z){b($.Q.1W!=2P){$(T).V($.Q.1W,$.Q.3D)}b(f.1M){$(T)[$.Q.1W]($.Q.3D=2P)}}b($.1q.1V&&J.2p()-J.2Y()==2){J.r("3C",0);3v(m(){J.r("3C","4v")},0)}};m 1Z(3B){1e();1O(3B);a=1n(g.a);c=1m(g.c);l=1n(g.l);j=1m(g.j)};m 23(2X,2v){f.1I?2X.4u(f.1I,2v):2X.1t()};m 1c(2W){1l x=1b(1y(2W))-g.a,y=1a(1x(2W))-g.c;b(!2o){1e();2o=12;v.1i("4t",m(){2o=Z})}N="";b(f.2B){b(y<=f.1P){N="n"}X{b(y>=g.L-f.1P){N="s"}}b(x<=f.1P){N+="w"}X{b(x>=g.I-f.1P){N+="e"}}}v.r("2V",N?N+"-19":f.22?"4s":"");b(1G){1G.4r()}};m 2S(4q){$("1r").r("2V","");b(f.4p||g.I*g.L==0){23(v.u(A),m(){$(O).1t()})}$(T).V("S",2j);v.S(1c);f.2e(Y,14())};m 2A(1R){b(1R.3x!=1){C Z}1e();b(N){$("1r").r("2V",N+"-19");a=1n(g[/w/.2l(N)?"l":"a"]);c=1m(g[/n/.2l(N)?"j":"c"]);$(T).S(2j).1i("1Q",2S);v.V("S",1c)}X{b(f.22){2i=G+g.a-1y(1R);2h=q+g.c-1x(1R);v.V("S",1c);$(T).S(2T).1i("1Q",m(){f.2e(Y,14());$(T).V("S",2T);v.S(1c)})}X{P.1s(1R)}}C Z};m 1w(3A){b(15){b(3A){l=D(G,F(G+R,a+W(j-c)*15*(l>a||-1)));j=H(D(q,F(q+M,c+W(l-a)/15*(j>c||-1))));l=H(l)}X{j=D(q,F(q+M,c+W(l-a)/15*(j>c||-1)));l=H(D(G,F(G+R,a+W(j-c)*15*(l>a||-1))));j=H(j)}}};m 1N(){a=F(a,G+R);c=F(c,q+M);b(W(l-a)<1A){l=a-1A*(l<a||-1);b(l<G){a=G+1A}X{b(l>G+R){a=G+R-1A}}}b(W(j-c)<1z){j=c-1z*(j<c||-1);b(j<q){c=q+1z}X{b(j>q+M){c=q+M-1z}}}l=D(G,F(l,G+R));j=D(q,F(j,q+M));1w(W(l-a)<W(j-c)*15);b(W(l-a)>2n){l=a-2n*(l<a||-1);1w()}b(W(j-c)>2m){j=c-2m*(j<c||-1);1w(12)}g={a:1b(F(a,l)),l:1b(D(a,l)),c:1a(F(c,j)),j:1a(D(c,j)),I:W(l-a),L:W(j-c)};1O();f.2f(Y,14())};m 2j(2U){l=N==""||/w|e/.2l(N)||15?1y(2U):1n(g.l);j=N==""||/n|s/.2l(N)||15?1x(2U):1m(g.j);1N();C Z};m 1v(3z,3y){l=(a=3z)+g.I;j=(c=3y)+g.L;$.29(g,{a:1b(a),c:1a(c),l:1b(l),j:1a(j)});1O();f.2f(Y,14())};m 2T(2k){a=D(G,F(2i+1y(2k),G+R-g.I));c=D(q,F(2h+1x(2k),q+M-g.L));1v(a,c);2k.4o();C Z};m 2R(){1e();l=a;j=c;1N();N="";b(A.2x(":3a(:4n)")){v.u(A).1t().2C(f.1I||0)}1J=12;$(T).V("1Q",2Q).S(2j).1i("1Q",2S);v.V("S",1c);f.3w(Y,14())};m 2Q(){$(T).V("S",2R);23(v.u(A));20(1b(a),1a(c),1b(a),1a(c));f.2f(Y,14());f.2e(Y,14())};m 21(2g){b(2g.3x!=1||A.2x(":4m")){C Z}1e();2i=a=1y(2g);2h=c=1x(2g);$(T).1i("S",2R).1i("1Q",2Q);C Z};m 2z(){1Z(Z)};m 2w(){2D=12;2y(f=$.29({1L:"4l",22:12,1X:"1r",2B:12,1P:10,3u:m(){},3w:m(){},2f:m(){},2e:m(){}},f));v.u(A).r({36:""});b(f.2E){1J=12;1e();1O();v.u(A).1t().2C(f.1I||0)}3v(m(){f.3u(Y,14())},0)};1l 2P=m(17){1l k=f.1M,d,t,2L=17.4k;d=!1H(k.2N)&&(17.2d||17.3r.2d)?k.2N:!1H(k.27)&&17.3s?k.27:!1H(k.28)&&17.3t?k.28:!1H(k.2O)?k.2O:10;b(k.2O=="19"||(k.28=="19"&&17.3t)||(k.27=="19"&&17.3s)||(k.2N=="19"&&(17.2d||17.3r.2d))){2M(2L){16 37:d=-d;16 39:t=D(a,l);a=F(a,l);l=D(t+d,a);1w();1u;16 38:d=-d;16 40:t=D(c,j);c=F(c,j);j=D(t+d,c);1w(12);1u;3q:C}1N()}X{a=F(a,l);c=F(c,j);2M(2L){16 37:1v(D(a-d,G),c);1u;16 38:1v(a,D(c-d,q));1u;16 39:1v(a+F(d,R-1b(l)),c);1u;16 40:1v(a,c+F(d,M-1a(j)));1u;3q:C}}C Z};m 1K(3p,2K){3n(2c 4j 2K){b(f[2c]!==1S){3p.r(2K[2c],f[2c])}}};m 2y(K){b(K.1X){(1k=$(K.1X)).3h(v.u(A))}$.29(f,K);1e();b(K.2J!=3o){E.1o();E=$([]);i=K.2J?K.2J=="4i"?4:8:0;3d(i--){E=E.u(U())}E.26(f.1L+"-4h").r({1p:"1D",34:0,1E:13+1||1});b(!4g(E.r("I"))>=0){E.I(5).L(5)}b(o=f.2I){E.r({2I:o,2F:"3k"})}1K(E,{3l:"2H-25",3j:"2G-25",3m:"1d"})}2b=f.4f/R||1;2a=f.4e/M||1;b(K.a!=3o){20(K.a,K.c,K.l,K.j);K.2E=!K.1t}b(K.1M){f.1M=$.29({28:1,27:"19"},K.1M)}A.26(f.1L+"-4d");1j.26(f.1L+"-4c");3n(i=0;i++<4;){$(J[i-1]).26(f.1L+"-2H"+i)}1K(1j,{4b:"2G-25",4a:"1d"});1K(J,{3m:"1d",2I:"2H-I"});1K(A,{49:"2G-25",48:"1d"});b(o=f.3l){$(J[0]).r({2F:"3k",3i:o})}b(o=f.3j){$(J[1]).r({2F:"47",3i:o})}v.3h(1j.u(J).u(1G).u(E));b($.1q.1V){b(o=A.r("3g").3f(/1d=([0-9]+)/)){A.r("1d",o[1]/1U)}b(o=J.r("3g").3f(/1d=([0-9]+)/)){J.r("1d",o[1]/1U)}}b(K.1t){23(v.u(A))}X{b(K.2E&&2D){1J=12;v.u(A).2C(f.1I||0);1Z()}}15=(d=(f.46||"").45(/:/))[0]/d[1];P.u(A).V("1s",21);b(f.1T||f.1C===Z){v.V("S",1c).V("1s",2A);$(3e).V("19",2z)}X{b(f.1C||f.1T===Z){b(f.2B||f.22){v.S(1c).1s(2A)}$(3e).19(2z)}b(!f.44){P.u(A).1s(21)}}f.1C=f.1T=1S};O.1o=m(){P.V("1s",21);v.u(A).1o()};O.43=m(){C f};O.32=2y;O.42=14;O.41=20;O.3Z=1Z;$p=P;3d($p.3c){13=D(13,!1H($p.r("z-3b"))?$p.r("z-3b"):13);b($p.r("1p")=="1Y"){1F="1Y"}$p=$p.1X(":3a(1r)")}13=f.1E||13;b($.1q.1V){P.3Y("3X","3W")}$.Q.1W=$.1q.1V||$.1q.3V?"3U":"3T";b($.1q.3S){1G=U().r({I:"1U%",L:"1U%",1p:"1D",1E:13+2||2})}v.u(A).r({36:"35",1p:1F,3R:"35",1E:13||"0"});v.r({1E:13+2||2});1j.u(J).r({1p:"1D",34:0});Y.33||Y.3Q=="33"||!P.2x("3P")?2w():P.1i("3O",2w)};$.2v.Q=m(11){11=11||{};O.3N(m(){b($(O).1B("Q")){b(11.1o){$(O).1B("Q").1o();$(O).3M("Q")}X{$(O).1B("Q").32(11)}}X{b(!11.1o){b(11.1C===1S&&11.1T===1S){11.1C=12}$(O).1B("Q",3L $.Q(O,11))}}});b(11.3K){C $(O).1B("Q")}C O}})(3J);',62,297,'||||||||||x1|if|y1|||_7|_24|||y2||x2|function||||top|css|||add|_a|||||_d|left|return|_2|_e|_3|_10|_4|width|_c|_54|height|_13|_1d|this|_8|imgAreaSelect|_12|mousemove|document|_5|unbind|_1|else|_6|false||_55|true|_16|_2d|_22|case|_50|_11|resize|_2a|_29|_3a|opacity|_31|_15|sy|sx|one|_b|_14|var|_28|_27|remove|position|browser|body|mousedown|hide|break|_45|_42|evY|evX|_1f|_1e|data|enable|absolute|zIndex|_17|_f|isNaN|fadeSpeed|_23|_51|classPrefix|keys|_32|_33|resizeMargin|mouseup|_40|undefined|disable|100|msie|keyPress|parent|fixed|_36|_2f|_4b|movable|_38||color|addClass|ctrl|shift|extend|_1b|_1a|option|altKey|onSelectEnd|onSelectChange|_4c|_19|_18|_3e|_48|test|_21|_20|_26|outerWidth|scrollTop|scrollLeft|offset|_25|Math|fn|_4e|is|_4f|_4d|_3f|resizable|fadeIn|_9|show|borderStyle|background|border|borderWidth|handles|_53|key|switch|alt|arrows|_35|_4a|_49|_3c|_41|_44|cursor|_3b|_39|innerWidth|outerHeight|_30|_2e|setOptions|complete|fontSize|hidden|visibility||||not|index|length|while|window|match|filter|append|borderColor|borderColor2|solid|borderColor1|borderOpacity|for|null|_52|default|originalEvent|ctrlKey|shiftKey|onInit|setTimeout|onSelectStart|which|_47|_46|_43|_37|margin|onKeyPress|_34|slice|innerHeight|_2c|_2b|jQuery|instance|new|removeData|each|load|img|readyState|overflow|opera|keypress|keydown|safari|on|unselectable|attr|update||setSelection|getSelection|getOptions|persistent|split|aspectRatio|dashed|outerOpacity|outerColor|selectionOpacity|selectionColor|selection|outer|imageHeight|imageWidth|parseInt|handle|corners|in|keyCode|imgareaselect|animated|visible|preventDefault|autoHide|_3d|toggle|move|mouseout|fadeOut|auto|relative|inArray|getBoundingClientRect|jquery|maxHeight|maxWidth|minHeight|minWidth|pageY|pageX|documentElement|_1c|div|round|min|max|abs'.split('|')))
@@ -0,0 +1,2 @@
1
+ /*1.4.2*/
2
+ (function(){var f=0,k=[],m={},i={},a={"<":"lt",">":"gt","&":"amp",'"':"quot","'":"#39"},l=/[<>&\"\']/g,b,c=window.setTimeout,d={},e;function h(){this.returnValue=false}function j(){this.cancelBubble=true}(function(n){var o=n.split(/,/),p,r,q;for(p=0;p<o.length;p+=2){q=o[p+1].split(/ /);for(r=0;r<q.length;r++){i[q[r]]=o[p]}}})("application/msword,doc dot,application/pdf,pdf,application/pgp-signature,pgp,application/postscript,ps ai eps,application/rtf,rtf,application/vnd.ms-excel,xls xlb,application/vnd.ms-powerpoint,ppt pps pot,application/zip,zip,application/x-shockwave-flash,swf swfl,application/vnd.openxmlformats,docx pptx xlsx,audio/mpeg,mpga mpega mp2 mp3,audio/x-wav,wav,audio/mp4,m4a,image/bmp,bmp,image/gif,gif,image/jpeg,jpeg jpg jpe,image/png,png,image/svg+xml,svg svgz,image/tiff,tiff tif,text/html,htm html xhtml,text/rtf,rtf,video/mpeg,mpeg mpg mpe,video/quicktime,qt mov,video/mp4,mp4,video/x-m4v,m4v,video/x-flv,flv,video/vnd.rn-realvideo,rv,text/plain,asc txt text diff log,application/octet-stream,exe");var g={VERSION:"1.4.2",STOPPED:1,STARTED:2,QUEUED:1,UPLOADING:2,FAILED:4,DONE:5,GENERIC_ERROR:-100,HTTP_ERROR:-200,IO_ERROR:-300,SECURITY_ERROR:-400,INIT_ERROR:-500,FILE_SIZE_ERROR:-600,FILE_EXTENSION_ERROR:-601,IMAGE_FORMAT_ERROR:-700,IMAGE_MEMORY_ERROR:-701,IMAGE_DIMENSIONS_ERROR:-702,mimeTypes:i,extend:function(n){g.each(arguments,function(o,p){if(p>0){g.each(o,function(r,q){n[q]=r})}});return n},cleanName:function(n){var o,p;p=[/[\300-\306]/g,"A",/[\340-\346]/g,"a",/\307/g,"C",/\347/g,"c",/[\310-\313]/g,"E",/[\350-\353]/g,"e",/[\314-\317]/g,"I",/[\354-\357]/g,"i",/\321/g,"N",/\361/g,"n",/[\322-\330]/g,"O",/[\362-\370]/g,"o",/[\331-\334]/g,"U",/[\371-\374]/g,"u"];for(o=0;o<p.length;o+=2){n=n.replace(p[o],p[o+1])}n=n.replace(/\s+/g,"_");n=n.replace(/[^a-z0-9_\-\.]+/gi,"");return n},addRuntime:function(n,o){o.name=n;k[n]=o;k.push(o);return o},guid:function(){var n=new Date().getTime().toString(32),o;for(o=0;o<5;o++){n+=Math.floor(Math.random()*65535).toString(32)}return(g.guidPrefix||"p")+n+(f++).toString(32)},buildUrl:function(o,n){var p="";g.each(n,function(r,q){p+=(p?"&":"")+encodeURIComponent(q)+"="+encodeURIComponent(r)});if(p){o+=(o.indexOf("?")>0?"&":"?")+p}return o},each:function(q,r){var p,o,n;if(q){p=q.length;if(p===b){for(o in q){if(q.hasOwnProperty(o)){if(r(q[o],o)===false){return}}}}else{for(n=0;n<p;n++){if(r(q[n],n)===false){return}}}}},formatSize:function(n){if(n===b||/\D/.test(n)){return g.translate("N/A")}if(n>1073741824){return Math.round(n/1073741824,1)+" GB"}if(n>1048576){return Math.round(n/1048576,1)+" MB"}if(n>1024){return Math.round(n/1024,1)+" KB"}return n+" b"},getPos:function(o,s){var t=0,r=0,v,u=document,p,q;o=o;s=s||u.body;function n(B){var z,A,w=0,C=0;if(B){A=B.getBoundingClientRect();z=u.compatMode==="CSS1Compat"?u.documentElement:u.body;w=A.left+z.scrollLeft;C=A.top+z.scrollTop}return{x:w,y:C}}if(o&&o.getBoundingClientRect&&(navigator.userAgent.indexOf("MSIE")>0&&u.documentMode!==8)){p=n(o);q=n(s);return{x:p.x-q.x,y:p.y-q.y}}v=o;while(v&&v!=s&&v.nodeType){t+=v.offsetLeft||0;r+=v.offsetTop||0;v=v.offsetParent}v=o.parentNode;while(v&&v!=s&&v.nodeType){t-=v.scrollLeft||0;r-=v.scrollTop||0;v=v.parentNode}return{x:t,y:r}},getSize:function(n){return{w:n.offsetWidth||n.clientWidth,h:n.offsetHeight||n.clientHeight}},parseSize:function(n){var o;if(typeof(n)=="string"){n=/^([0-9]+)([mgk]+)$/.exec(n.toLowerCase().replace(/[^0-9mkg]/g,""));o=n[2];n=+n[1];if(o=="g"){n*=1073741824}if(o=="m"){n*=1048576}if(o=="k"){n*=1024}}return n},xmlEncode:function(n){return n?(""+n).replace(l,function(o){return a[o]?"&"+a[o]+";":o}):n},toArray:function(p){var o,n=[];for(o=0;o<p.length;o++){n[o]=p[o]}return n},addI18n:function(n){return g.extend(m,n)},translate:function(n){return m[n]||n},hasClass:function(p,o){var n;if(p.className==""){return false}n=new RegExp("(^|\\s+)"+o+"(\\s+|$)");return n.test(p.className)},addClass:function(o,n){if(!g.hasClass(o,n)){o.className=o.className==""?n:o.className.replace(/\s+$/,"")+" "+n}},removeClass:function(p,o){var n=new RegExp("(^|\\s+)"+o+"(\\s+|$)");p.className=p.className.replace(n,function(r,q,s){return q===" "&&s===" "?" ":""})},addEvent:function(s,n,t){var r,q,p,o;o=arguments[3];n=n.toLowerCase();if(e===b){e="Plupload_"+g.guid()}if(s.attachEvent){r=function(){var u=window.event;if(!u.target){u.target=u.srcElement}u.preventDefault=h;u.stopPropagation=j;t(u)};s.attachEvent("on"+n,r)}else{if(s.addEventListener){r=t;s.addEventListener(n,r,false)}}if(s[e]===b){s[e]=g.guid()}if(!d.hasOwnProperty(s[e])){d[s[e]]={}}q=d[s[e]];if(!q.hasOwnProperty(n)){q[n]=[]}q[n].push({func:r,orig:t,key:o})},removeEvent:function(t,o){var r,u,q,n=function(v){for(var w in v){return false}return true};if(typeof(arguments[2])=="function"){u=arguments[2]}else{q=arguments[2]}o=o.toLowerCase();if(t[e]&&d[t[e]]&&d[t[e]][o]){r=d[t[e]][o]}else{return}for(var p=r.length-1;p>=0;p--){if(r[p].key===q||r[p].orig===u){if(t.detachEvent){t.detachEvent("on"+o,r[p].func)}else{if(t.removeEventListener){t.removeEventListener(o,r[p].func,false)}}r[p].orig=null;r[p].func=null;r.splice(p,1);if(u!==b){break}}}if(!r.length){delete d[t[e]][o]}if(n(d[t[e]])){delete d[t[e]];try{delete t[e]}catch(s){t[e]=b}}},removeAllEvents:function(o){var n=arguments[1];if(o[e]===b||!o[e]){return}g.each(d[o[e]],function(q,p){g.removeEvent(o,p,n)})}};g.Uploader=function(q){var o={},t,s=[],p;t=new g.QueueProgress();q=g.extend({chunk_size:0,multipart:true,multi_selection:true,file_data_name:"file",filters:[]},q);function r(){var v,w=0,u;if(this.state==g.STARTED){for(u=0;u<s.length;u++){if(!v&&s[u].status==g.QUEUED){v=s[u];v.status=g.UPLOADING;this.trigger("BeforeUpload",v);this.trigger("UploadFile",v)}else{w++}}if(w==s.length){this.trigger("UploadComplete",s);this.stop()}}}function n(){var v,u;t.reset();for(v=0;v<s.length;v++){u=s[v];if(u.size!==b){t.size+=u.size;t.loaded+=u.loaded}else{t.size=b}if(u.status==g.DONE){t.uploaded++}else{if(u.status==g.FAILED){t.failed++}else{t.queued++}}}if(t.size===b){t.percent=s.length>0?Math.ceil(t.uploaded/s.length*100):0}else{t.bytesPerSec=Math.ceil(t.loaded/((+new Date()-p||1)/1000));t.percent=t.size>0?Math.ceil(t.loaded/t.size*100):0}}g.extend(this,{state:g.STOPPED,runtime:"",features:{},files:s,settings:q,total:t,id:g.guid(),init:function(){var z=this,A,w,v,y=0,x;if(typeof(q.preinit)=="function"){q.preinit(z)}else{g.each(q.preinit,function(C,B){z.bind(B,C)})}q.page_url=q.page_url||document.location.pathname.replace(/\/[^\/]+$/g,"/");if(!/^(\w+:\/\/|\/)/.test(q.url)){q.url=q.page_url+q.url}q.chunk_size=g.parseSize(q.chunk_size);q.max_file_size=g.parseSize(q.max_file_size);z.bind("FilesAdded",function(B,E){var D,C,G=0,H,F=q.filters;if(F&&F.length){H=[];g.each(F,function(I){g.each(I.extensions.split(/,/),function(J){H.push("\\."+J.replace(new RegExp("["+("/^$.*+?|()[]{}\\".replace(/./g,"\\$&"))+"]","g"),"\\$&"))})});H=new RegExp(H.join("|")+"$","i")}for(D=0;D<E.length;D++){C=E[D];C.loaded=0;C.percent=0;C.status=g.QUEUED;if(H&&!H.test(C.name)){B.trigger("Error",{code:g.FILE_EXTENSION_ERROR,message:g.translate("File extension error."),file:C});continue}if(C.size!==b&&C.size>q.max_file_size){B.trigger("Error",{code:g.FILE_SIZE_ERROR,message:g.translate("File size error."),file:C});continue}s.push(C);G++}if(G){c(function(){z.trigger("QueueChanged");z.refresh()},1)}else{return false}});if(q.unique_names){z.bind("UploadFile",function(B,C){var E=C.name.match(/\.([^.]+)$/),D="tmp";if(E){D=E[1]}C.target_name=C.id+"."+D})}z.bind("UploadProgress",function(B,C){C.percent=C.size>0?Math.ceil(C.loaded/C.size*100):100;n()});z.bind("StateChanged",function(B){if(B.state==g.STARTED){p=(+new Date())}});z.bind("QueueChanged",n);z.bind("Error",function(B,C){if(C.file){C.file.status=g.FAILED;n();if(B.state==g.STARTED){c(function(){r.call(z)},1)}}});z.bind("FileUploaded",function(B,C){C.status=g.DONE;C.loaded=C.size;B.trigger("UploadProgress",C);c(function(){r.call(z)},1)});if(q.runtimes){w=[];x=q.runtimes.split(/\s?,\s?/);for(A=0;A<x.length;A++){if(k[x[A]]){w.push(k[x[A]])}}}else{w=k}function u(){var E=w[y++],D,B,C;if(E){D=E.getFeatures();B=z.settings.required_features;if(B){B=B.split(",");for(C=0;C<B.length;C++){if(!D[B[C]]){u();return}}}E.init(z,function(F){if(F&&F.success){z.features=D;z.runtime=E.name;z.trigger("Init",{runtime:E.name});z.trigger("PostInit");z.refresh()}else{u()}})}else{z.trigger("Error",{code:g.INIT_ERROR,message:g.translate("Init error.")})}}u();if(typeof(q.init)=="function"){q.init(z)}else{g.each(q.init,function(C,B){z.bind(B,C)})}},refresh:function(){this.trigger("Refresh")},start:function(){if(this.state!=g.STARTED){this.state=g.STARTED;this.trigger("StateChanged");r.call(this)}},stop:function(){if(this.state!=g.STOPPED){this.state=g.STOPPED;this.trigger("StateChanged")}},getFile:function(v){var u;for(u=s.length-1;u>=0;u--){if(s[u].id===v){return s[u]}}},removeFile:function(v){var u;for(u=s.length-1;u>=0;u--){if(s[u].id===v.id){return this.splice(u,1)[0]}}},splice:function(w,u){var v;v=s.splice(w===b?0:w,u===b?s.length:u);this.trigger("FilesRemoved",v);this.trigger("QueueChanged");return v},trigger:function(v){var x=o[v.toLowerCase()],w,u;if(x){u=Array.prototype.slice.call(arguments);u[0]=this;for(w=0;w<x.length;w++){if(x[w].func.apply(x[w].scope,u)===false){return false}}}return true},bind:function(u,w,v){var x;u=u.toLowerCase();x=o[u]||[];x.push({func:w,scope:v||this});o[u]=x},unbind:function(u){u=u.toLowerCase();var x=o[u],v,w=arguments[1];if(x){if(w!==b){for(v=x.length-1;v>=0;v--){if(x[v].func===w){x.splice(v,1);break}}}else{x=[]}if(!x.length){delete o[u]}}},unbindAll:function(){var u=this;g.each(o,function(w,v){u.unbind(v)})},destroy:function(){this.trigger("Destroy");this.unbindAll()}})};g.File=function(q,o,p){var n=this;n.id=q;n.name=o;n.size=p;n.loaded=0;n.percent=0;n.status=0};g.Runtime=function(){this.getFeatures=function(){};this.init=function(n,o){}};g.QueueProgress=function(){var n=this;n.size=0;n.loaded=0;n.uploaded=0;n.failed=0;n.queued=0;n.percent=0;n.bytesPerSec=0;n.reset=function(){n.size=n.loaded=n.uploaded=n.failed=n.queued=n.percent=n.bytesPerSec=0}};g.runtimes={};window.plupload=g})();(function(e,b,c,d){var f={};function a(l,h,o,n,g){var p,j,i,k;j=google.gears.factory.create("beta.canvas");try{j.decode(l);k=Math.min(h/j.width,o/j.height);if(k<1){j.resize(Math.round(j.width*k),Math.round(j.height*k));return j.encode(g,{quality:n/100})}}catch(m){}return l}c.runtimes.Gears=c.addRuntime("gears",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true}},init:function(i,k){var j;if(!e.google||!google.gears){return k({success:false})}try{j=google.gears.factory.create("beta.desktop")}catch(h){return k({success:false})}function g(n){var m,l,o=[],p;for(l=0;l<n.length;l++){m=n[l];p=c.guid();f[p]=m.blob;o.push(new c.File(p,m.name,m.blob.length))}i.trigger("FilesAdded",o)}i.bind("PostInit",function(){var m=i.settings,l=b.getElementById(m.drop_element);if(l){c.addEvent(l,"dragover",function(n){j.setDropEffect(n,"copy");n.preventDefault()},i.id);c.addEvent(l,"drop",function(o){var n=j.getDragData(o,"application/x-gears-files");if(n){g(n.files)}o.preventDefault()},i.id);l=0}c.addEvent(b.getElementById(m.browse_button),"click",function(r){var q=[],o,n,p;r.preventDefault();for(o=0;o<m.filters.length;o++){p=m.filters[o].extensions.split(",");for(n=0;n<p.length;n++){q.push("."+p[n])}}j.openFiles(g,{singleFile:!m.multi_selection,filter:q})},i.id)});i.bind("UploadFile",function(r,o){var t=0,s,p,q=0,n=r.settings.resize,l;if(n&&/\.(png|jpg|jpeg)$/i.test(o.name)){f[o.id]=a(f[o.id],n.width,n.height,n.quality||90,/\.png$/i.test(o.name)?"image/png":"image/jpeg")}o.size=f[o.id].length;p=r.settings.chunk_size;l=p>0;s=Math.ceil(o.size/p);if(!l){p=o.size;s=1}function m(){var y,A,v=r.settings.multipart,u=0,z={name:o.target_name||o.name},w=r.settings.url;function x(C){var B,H="----pluploadboundary"+c.guid(),E="--",G="\r\n",D,F;if(v){y.setRequestHeader("Content-Type","multipart/form-data; boundary="+H);B=google.gears.factory.create("beta.blobbuilder");c.each(c.extend(z,r.settings.multipart_params),function(J,I){B.append(E+H+G+'Content-Disposition: form-data; name="'+I+'"'+G+G);B.append(J+G)});F=c.mimeTypes[o.name.replace(/^.+\.([^.]+)/,"$1")]||"application/octet-stream";B.append(E+H+G+'Content-Disposition: form-data; name="'+r.settings.file_data_name+'"; filename="'+o.name+'"'+G+"Content-Type: "+F+G+G);B.append(C);B.append(G+E+H+E+G);D=B.getAsBlob();u=D.length-C.length;C=D}y.send(C)}if(o.status==c.DONE||o.status==c.FAILED||r.state==c.STOPPED){return}if(l){z.chunk=t;z.chunks=s}A=Math.min(p,o.size-(t*p));if(!v){w=c.buildUrl(r.settings.url,z)}y=google.gears.factory.create("beta.httprequest");y.open("POST",w);if(!v){y.setRequestHeader("Content-Disposition",'attachment; filename="'+o.name+'"');y.setRequestHeader("Content-Type","application/octet-stream")}c.each(r.settings.headers,function(C,B){y.setRequestHeader(B,C)});y.upload.onprogress=function(B){o.loaded=q+B.loaded-u;r.trigger("UploadProgress",o)};y.onreadystatechange=function(){var B;if(y.readyState==4){if(y.status==200){B={chunk:t,chunks:s,response:y.responseText,status:y.status};r.trigger("ChunkUploaded",o,B);if(B.cancelled){o.status=c.FAILED;return}q+=A;if(++t>=s){o.status=c.DONE;r.trigger("FileUploaded",o,{response:y.responseText,status:y.status})}else{m()}}else{r.trigger("Error",{code:c.HTTP_ERROR,message:c.translate("HTTP Error."),file:o,chunk:t,chunks:s,status:y.status})}}};if(t<s){x(f[o.id].slice(t*p,A))}}m()});i.bind("Destroy",function(l){var m,n,o={browseButton:l.settings.browse_button,dropElm:l.settings.drop_element};for(m in o){n=b.getElementById(o[m]);if(n){c.removeAllEvents(n,l.id)}}});k({success:true})}})})(window,document,plupload);(function(g,b,d,e){var a={},h={};function c(o){var n,m=typeof o,j,l,k;if(m==="string"){n="\bb\tt\nn\ff\rr\"\"''\\\\";return'"'+o.replace(/([\u0080-\uFFFF\x00-\x1f\"])/g,function(q,p){var i=n.indexOf(p);if(i+1){return"\\"+n.charAt(i+1)}q=p.charCodeAt().toString(16);return"\\u"+"0000".substring(q.length)+q})+'"'}if(m=="object"){j=o.length!==e;n="";if(j){for(l=0;l<o.length;l++){if(n){n+=","}n+=c(o[l])}n="["+n+"]"}else{for(k in o){if(o.hasOwnProperty(k)){if(n){n+=","}n+=c(k)+":"+c(o[k])}}n="{"+n+"}"}return n}if(o===e){return"null"}return""+o}function f(r){var u=false,i=null,n=null,j,k,l,t,m,p=0;try{try{n=new ActiveXObject("AgControl.AgControl");if(n.IsVersionSupported(r)){u=true}n=null}catch(q){var o=navigator.plugins["Silverlight Plug-In"];if(o){j=o.description;if(j==="1.0.30226.2"){j="2.0.30226.2"}k=j.split(".");while(k.length>3){k.pop()}while(k.length<4){k.push(0)}l=r.split(".");while(l.length>4){l.pop()}do{t=parseInt(l[p],10);m=parseInt(k[p],10);p++}while(p<l.length&&t===m);if(t<=m&&!isNaN(t)){u=true}}}}catch(s){u=false}return u}d.silverlight={trigger:function(n,k){var m=a[n],l,j;if(m){j=d.toArray(arguments).slice(1);j[0]="Silverlight:"+k;setTimeout(function(){m.trigger.apply(m,j)},0)}}};d.runtimes.Silverlight=d.addRuntime("silverlight",{getFeatures:function(){return{jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true}},init:function(p,q){var o,m="",n=p.settings.filters,l,k=b.body;if(!f("2.0.31005.0")||(g.opera&&g.opera.buildNumber)){q({success:false});return}h[p.id]=false;a[p.id]=p;o=b.createElement("div");o.id=p.id+"_silverlight_container";d.extend(o.style,{position:"absolute",top:"0px",background:p.settings.shim_bgcolor||"transparent",zIndex:99999,width:"100px",height:"100px",overflow:"hidden",opacity:p.settings.shim_bgcolor||b.documentMode>8?"":0.01});o.className="plupload silverlight";if(p.settings.container){k=b.getElementById(p.settings.container);k.style.position="relative"}k.appendChild(o);for(l=0;l<n.length;l++){m+=(m!=""?"|":"")+n[l].title+" | *."+n[l].extensions.replace(/,/g,";*.")}o.innerHTML='<object id="'+p.id+'_silverlight" data="data:application/x-silverlight," type="application/x-silverlight-2" style="outline:none;" width="1024" height="1024"><param name="source" value="'+p.settings.silverlight_xap_url+'"/><param name="background" value="Transparent"/><param name="windowless" value="true"/><param name="enablehtmlaccess" value="true"/><param name="initParams" value="id='+p.id+",filter="+m+",multiselect="+p.settings.multi_selection+'"/></object>';function j(){return b.getElementById(p.id+"_silverlight").content.Upload}p.bind("Silverlight:Init",function(){var i,r={};if(h[p.id]){return}h[p.id]=true;p.bind("Silverlight:StartSelectFiles",function(s){i=[]});p.bind("Silverlight:SelectFile",function(s,v,t,u){var w;w=d.guid();r[w]=v;r[v]=w;i.push(new d.File(w,t,u))});p.bind("Silverlight:SelectSuccessful",function(){if(i.length){p.trigger("FilesAdded",i)}});p.bind("Silverlight:UploadChunkError",function(s,v,t,w,u){p.trigger("Error",{code:d.IO_ERROR,message:"IO Error.",details:u,file:s.getFile(r[v])})});p.bind("Silverlight:UploadFileProgress",function(s,w,t,v){var u=s.getFile(r[w]);if(u.status!=d.FAILED){u.size=v;u.loaded=t;s.trigger("UploadProgress",u)}});p.bind("Refresh",function(s){var t,u,v;t=b.getElementById(s.settings.browse_button);if(t){u=d.getPos(t,b.getElementById(s.settings.container));v=d.getSize(t);d.extend(b.getElementById(s.id+"_silverlight_container").style,{top:u.y+"px",left:u.x+"px",width:v.w+"px",height:v.h+"px"})}});p.bind("Silverlight:UploadChunkSuccessful",function(s,v,t,y,x){var w,u=s.getFile(r[v]);w={chunk:t,chunks:y,response:x};s.trigger("ChunkUploaded",u,w);if(u.status!=d.FAILED){j().UploadNextChunk()}if(t==y-1){u.status=d.DONE;s.trigger("FileUploaded",u,{response:x})}});p.bind("Silverlight:UploadSuccessful",function(s,v,t){var u=s.getFile(r[v]);u.status=d.DONE;s.trigger("FileUploaded",u,{response:t})});p.bind("FilesRemoved",function(s,u){var t;for(t=0;t<u.length;t++){j().RemoveFile(r[u[t].id])}});p.bind("UploadFile",function(s,u){var v=s.settings,t=v.resize||{};j().UploadFile(r[u.id],s.settings.url,c({name:u.target_name||u.name,mime:d.mimeTypes[u.name.replace(/^.+\.([^.]+)/,"$1")]||"application/octet-stream",chunk_size:v.chunk_size,image_width:t.width,image_height:t.height,image_quality:t.quality||90,multipart:!!v.multipart,multipart_params:v.multipart_params||{},file_data_name:v.file_data_name,headers:v.headers}))});p.bind("Silverlight:MouseEnter",function(s){var t,u;t=b.getElementById(p.settings.browse_button);u=s.settings.browse_button_hover;if(t&&u){d.addClass(t,u)}});p.bind("Silverlight:MouseLeave",function(s){var t,u;t=b.getElementById(p.settings.browse_button);u=s.settings.browse_button_hover;if(t&&u){d.removeClass(t,u)}});p.bind("Silverlight:MouseLeftButtonDown",function(s){var t,u;t=b.getElementById(p.settings.browse_button);u=s.settings.browse_button_active;if(t&&u){d.addClass(t,u);d.addEvent(b.body,"mouseup",function(){d.removeClass(t,u)})}});p.bind("Sliverlight:StartSelectFiles",function(s){var t,u;t=b.getElementById(p.settings.browse_button);u=s.settings.browse_button_active;if(t&&u){d.removeClass(t,u)}});p.bind("Destroy",function(s){var t;d.removeAllEvents(b.body,s.id);delete h[s.id];delete a[s.id];t=b.getElementById(s.id+"_silverlight_container");if(t){k.removeChild(t)}});q({success:true})})}})})(window,document,plupload);(function(f,b,d,e){var a={},g={};function c(){var h;try{h=navigator.plugins["Shockwave Flash"];h=h.description}catch(j){try{h=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(i){h="0.0"}}h=h.match(/\d+/g);return parseFloat(h[0]+"."+h[1])}d.flash={trigger:function(j,h,i){setTimeout(function(){var m=a[j],l,k;if(m){m.trigger("Flash:"+h,i)}},0)}};d.runtimes.Flash=d.addRuntime("flash",{getFeatures:function(){return{jpgresize:true,pngresize:true,maxWidth:8091,maxHeight:8091,chunks:true,progress:true,multipart:true}},init:function(j,o){var n,i,k,p=0,h=b.body;if(c()<10){o({success:false});return}g[j.id]=false;a[j.id]=j;n=b.getElementById(j.settings.browse_button);i=b.createElement("div");i.id=j.id+"_flash_container";d.extend(i.style,{position:"absolute",top:"0px",background:j.settings.shim_bgcolor||"transparent",zIndex:99999,width:"100%",height:"100%"});i.className="plupload flash";if(j.settings.container){h=b.getElementById(j.settings.container);h.style.position="relative"}h.appendChild(i);k="id="+escape(j.id);i.innerHTML='<object id="'+j.id+'_flash" width="100%" height="100%" style="outline:0" type="application/x-shockwave-flash" data="'+j.settings.flash_swf_url+'"><param name="movie" value="'+j.settings.flash_swf_url+'" /><param name="flashvars" value="'+k+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>';function m(){return b.getElementById(j.id+"_flash")}function l(){if(p++>5000){o({success:false});return}if(!g[j.id]){setTimeout(l,1)}}l();n=i=null;j.bind("Flash:Init",function(){var s={},r,q=j.settings.resize||{};m().setFileFilters(j.settings.filters,j.settings.multi_selection);if(g[j.id]){return}g[j.id]=true;j.bind("UploadFile",function(t,u){var v=t.settings;m().uploadFile(s[u.id],v.url,{name:u.target_name||u.name,mime:d.mimeTypes[u.name.replace(/^.+\.([^.]+)/,"$1")]||"application/octet-stream",chunk_size:v.chunk_size,width:q.width,height:q.height,quality:q.quality||90,multipart:v.multipart,multipart_params:v.multipart_params||{},file_data_name:v.file_data_name,format:/\.(jpg|jpeg)$/i.test(u.name)?"jpg":"png",headers:v.headers,urlstream_upload:v.urlstream_upload})});j.bind("Flash:UploadProcess",function(u,t){var v=u.getFile(s[t.id]);if(v.status!=d.FAILED){v.loaded=t.loaded;v.size=t.size;u.trigger("UploadProgress",v)}});j.bind("Flash:UploadChunkComplete",function(t,v){var w,u=t.getFile(s[v.id]);w={chunk:v.chunk,chunks:v.chunks,response:v.text};t.trigger("ChunkUploaded",u,w);if(u.status!=d.FAILED){m().uploadNextChunk()}if(v.chunk==v.chunks-1){u.status=d.DONE;t.trigger("FileUploaded",u,{response:v.text})}});j.bind("Flash:SelectFiles",function(t,w){var v,u,x=[],y;for(u=0;u<w.length;u++){v=w[u];y=d.guid();s[y]=v.id;s[v.id]=y;x.push(new d.File(y,v.name,v.size))}if(x.length){j.trigger("FilesAdded",x)}});j.bind("Flash:SecurityError",function(t,u){j.trigger("Error",{code:d.SECURITY_ERROR,message:d.translate("Security error."),details:u.message,file:j.getFile(s[u.id])})});j.bind("Flash:GenericError",function(t,u){j.trigger("Error",{code:d.GENERIC_ERROR,message:d.translate("Generic error."),details:u.message,file:j.getFile(s[u.id])})});j.bind("Flash:IOError",function(t,u){j.trigger("Error",{code:d.IO_ERROR,message:d.translate("IO error."),details:u.message,file:j.getFile(s[u.id])})});j.bind("Flash:ImageError",function(t,u){j.trigger("Error",{code:parseInt(u.code),message:d.translate("Image error."),file:j.getFile(s[u.id])})});j.bind("Flash:StageEvent:rollOver",function(t){var u,v;u=b.getElementById(j.settings.browse_button);v=t.settings.browse_button_hover;if(u&&v){d.addClass(u,v)}});j.bind("Flash:StageEvent:rollOut",function(t){var u,v;u=b.getElementById(j.settings.browse_button);v=t.settings.browse_button_hover;if(u&&v){d.removeClass(u,v)}});j.bind("Flash:StageEvent:mouseDown",function(t){var u,v;u=b.getElementById(j.settings.browse_button);v=t.settings.browse_button_active;if(u&&v){d.addClass(u,v);d.addEvent(b.body,"mouseup",function(){d.removeClass(u,v)},t.id)}});j.bind("Flash:StageEvent:mouseUp",function(t){var u,v;u=b.getElementById(j.settings.browse_button);v=t.settings.browse_button_active;if(u&&v){d.removeClass(u,v)}});j.bind("QueueChanged",function(t){j.refresh()});j.bind("FilesRemoved",function(t,v){var u;for(u=0;u<v.length;u++){m().removeFile(s[v[u].id])}});j.bind("StateChanged",function(t){j.refresh()});j.bind("Refresh",function(t){var u,v,w;m().setFileFilters(j.settings.filters,j.settings.multi_selection);u=b.getElementById(t.settings.browse_button);if(u){v=d.getPos(u,b.getElementById(t.settings.container));w=d.getSize(u);d.extend(b.getElementById(t.id+"_flash_container").style,{top:v.y+"px",left:v.x+"px",width:w.w+"px",height:w.h+"px"})}});j.bind("Destroy",function(t){var u;d.removeAllEvents(b.body,t.id);delete g[t.id];delete a[t.id];u=b.getElementById(t.id+"_flash_container");if(u){h.removeChild(u)}});o({success:true})})}})})(window,document,plupload);(function(a){a.runtimes.BrowserPlus=a.addRuntime("browserplus",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true}},init:function(g,i){var e=window.BrowserPlus,h={},d=g.settings,c=d.resize;function f(n){var m,l,j=[],k,o;for(l=0;l<n.length;l++){k=n[l];o=a.guid();h[o]=k;j.push(new a.File(o,k.name,k.size))}if(l){g.trigger("FilesAdded",j)}}function b(){g.bind("PostInit",function(){var m,k=d.drop_element,o=g.id+"_droptarget",j=document.getElementById(k),l;function p(r,q){e.DragAndDrop.AddDropTarget({id:r},function(s){e.DragAndDrop.AttachCallbacks({id:r,hover:function(t){if(!t&&q){q()}},drop:function(t){if(q){q()}f(t)}},function(){})})}function n(){document.getElementById(o).style.top="-1000px"}if(j){if(document.attachEvent&&(/MSIE/gi).test(navigator.userAgent)){m=document.createElement("div");m.setAttribute("id",o);a.extend(m.style,{position:"absolute",top:"-1000px",background:"red",filter:"alpha(opacity=0)",opacity:0});document.body.appendChild(m);a.addEvent(j,"dragenter",function(r){var q,s;q=document.getElementById(k);s=a.getPos(q);a.extend(document.getElementById(o).style,{top:s.y+"px",left:s.x+"px",width:q.offsetWidth+"px",height:q.offsetHeight+"px"})});p(o,n)}else{p(k)}}a.addEvent(document.getElementById(d.browse_button),"click",function(v){var t=[],r,q,u=d.filters,s;v.preventDefault();for(r=0;r<u.length;r++){s=u[r].extensions.split(",");for(q=0;q<s.length;q++){t.push(a.mimeTypes[s[q]])}}e.FileBrowse.OpenBrowseDialog({mimeTypes:t},function(w){if(w.success){f(w.value)}})});j=m=null});g.bind("UploadFile",function(m,j){var l=h[j.id],r={},k=m.settings.chunk_size,n,o=[];function q(s,u){var t;if(j.status==a.FAILED){return}r.name=j.target_name||j.name;if(k){r.chunk=""+s;r.chunks=""+u}t=o.shift();e.Uploader.upload({url:m.settings.url,files:{file:t},cookies:document.cookies,postvars:a.extend(r,m.settings.multipart_params),progressCallback:function(x){var w,v=0;n[s]=parseInt(x.filePercent*t.size/100,10);for(w=0;w<n.length;w++){v+=n[w]}j.loaded=v;m.trigger("UploadProgress",j)}},function(w){var v,x;if(w.success){v=w.value.statusCode;if(k){m.trigger("ChunkUploaded",j,{chunk:s,chunks:u,response:w.value.body,status:v})}if(o.length>0){q(++s,u)}else{j.status=a.DONE;m.trigger("FileUploaded",j,{response:w.value.body,status:v});if(v>=400){m.trigger("Error",{code:a.HTTP_ERROR,message:a.translate("HTTP Error."),file:j,status:v})}}}else{m.trigger("Error",{code:a.GENERIC_ERROR,message:a.translate("Generic Error."),file:j,details:w.error})}})}function p(s){j.size=s.size;if(k){e.FileAccess.chunk({file:s,chunkSize:k},function(v){if(v.success){var w=v.value,t=w.length;n=Array(t);for(var u=0;u<t;u++){n[u]=0;o.push(w[u])}q(0,t)}})}else{n=Array(1);o.push(s);q(0,1)}}if(c&&/\.(png|jpg|jpeg)$/i.test(j.name)){BrowserPlus.ImageAlter.transform({file:l,quality:c.quality||90,actions:[{scale:{maxwidth:c.width,maxheight:c.height}}]},function(s){if(s.success){p(s.value.file)}})}else{p(l)}});i({success:true})}if(e){e.init(function(k){var j=[{service:"Uploader",version:"3"},{service:"DragAndDrop",version:"1"},{service:"FileBrowse",version:"1"},{service:"FileAccess",version:"2"}];if(c){j.push({service:"ImageAlter",version:"4"})}if(k.success){e.require({services:j},function(l){if(l.success){b()}else{i()}})}else{i()}})}else{i()}}})})(plupload);(function(e,g,f,c){var d,a;function i(k,l){var j;if("FileReader" in e){j=new FileReader();j.readAsDataURL(k);j.onload=function(){l(j.result)}}else{return l(k.getAsDataURL())}}function h(k,l){var j;if("FileReader" in e){j=new FileReader();j.readAsBinaryString(k);j.onload=function(){l(j.result)}}else{return l(k.getAsBinary())}}function b(p,r,o,j,q){var l,k,n,m;i(p,function(s){l=g.createElement("canvas");l.style.display="none";g.body.appendChild(l);k=l.getContext("2d");n=new Image();n.onload=function(){var w,t,u,v,x;m=Math.min(r/n.width,o/n.height);if(m<1){w=Math.round(n.width*m);t=Math.round(n.height*m);l.width=w;l.height=t;k.drawImage(n,0,0,w,t);x=new a();x.init(atob(s.substring(s.indexOf("base64,")+7)));v=x.APP1({width:w,height:t});s=l.toDataURL(j);s=s.substring(s.indexOf("base64,")+7);s=atob(s);if(v){x.init(s);x.setAPP1(v);s=x.getBinary()}l.parentNode.removeChild(l);q({success:true,data:s})}else{q({success:false})}};n.src=s})}f.runtimes.Html5=f.addRuntime("html5",{getFeatures:function(){var o,k,n,l,j,m=e;k=n=l=j=false;if(m.Uint8Array&&m.ArrayBuffer&&!XMLHttpRequest.prototype.sendAsBinary){XMLHttpRequest.prototype.sendAsBinary=function(t){var s,q,u,p;s=new ArrayBuffer(t.length);q=new Uint8Array(s,0);for(var r=0;r<t.length;r++){q[r]=(t.charCodeAt(r)&255)}u=new BlobBuilder();u.append(s);p=u.getBlob();this.send(p)}}if(m.XMLHttpRequest){o=new XMLHttpRequest();n=!!o.upload;k=!!(o.sendAsBinary||o.upload)}if(k){l=!!(File&&(File.prototype.getAsDataURL||m.FileReader)&&o.sendAsBinary);j=!!(File&&File.prototype.slice)}d=navigator.userAgent.indexOf("Safari")>0&&navigator.vendor.indexOf("Apple")!==-1;return{html5:k,dragdrop:m.mozInnerScreenX!==c||j||d,jpgresize:l,pngresize:l,multipart:l||!!m.FileReader||!!m.FormData,progress:n,chunking:j||l,canOpenDialog:navigator.userAgent.indexOf("WebKit")!==-1}},init:function(m,n){var j={},k;function l(s){var q,p,r=[],t,o={};for(p=0;p<s.length;p++){q=s[p];if(o[q.name]){continue}o[q.name]=true;t=f.guid();j[t]=q;r.push(new f.File(t,q.fileName,q.fileSize||q.size))}if(r.length){m.trigger("FilesAdded",r)}}k=this.getFeatures();if(!k.html5){n({success:false});return}m.bind("Init",function(s){var C,B,x=[],r,z,p=s.settings.filters,q,w,o=g.body,A;C=g.createElement("div");C.id=s.id+"_html5_container";for(r=0;r<p.length;r++){q=p[r].extensions.split(/,/);for(z=0;z<q.length;z++){w=f.mimeTypes[q[z]];if(w){x.push(w)}}}f.extend(C.style,{position:"absolute",background:m.settings.shim_bgcolor||"transparent",width:"100px",height:"100px",overflow:"hidden",zIndex:99999,opacity:m.settings.shim_bgcolor?"":0});C.className="plupload html5";if(m.settings.container){o=g.getElementById(m.settings.container);o.style.position="relative"}o.appendChild(C);C.innerHTML='<input id="'+m.id+'_html5" style="width:100%;height:100%;" type="file" accept="'+x.join(",")+'" '+(m.settings.multi_selection?'multiple="multiple"':"")+" />";A=g.getElementById(m.id+"_html5");A.onchange=function(){l(this.files);this.value=""};B=g.getElementById(s.settings.browse_button);if(B){var u=s.settings.browse_button_hover,v=s.settings.browse_button_active,t=s.features.canOpenDialog?B:C;if(u){f.addEvent(t,"mouseover",function(){f.addClass(B,u)},s.id);f.addEvent(t,"mouseout",function(){f.removeClass(B,u)},s.id)}if(v){f.addEvent(t,"mousedown",function(){f.addClass(B,v)},s.id);f.addEvent(g.body,"mouseup",function(){f.removeClass(B,v)},s.id)}if(s.features.canOpenDialog){f.addEvent(B,"click",function(y){g.getElementById(s.id+"_html5").click();y.preventDefault()},s.id)}}});m.bind("PostInit",function(){var o=g.getElementById(m.settings.drop_element);if(o){if(d){f.addEvent(o,"dragenter",function(s){var r,p,q;r=g.getElementById(m.id+"_drop");if(!r){r=g.createElement("input");r.setAttribute("type","file");r.setAttribute("id",m.id+"_drop");r.setAttribute("multiple","multiple");f.addEvent(r,"change",function(){l(this.files);f.removeEvent(r,"change",m.id);r.parentNode.removeChild(r)},m.id);o.appendChild(r)}p=f.getPos(o,g.getElementById(m.settings.container));q=f.getSize(o);f.extend(o.style,{position:"relative"});f.extend(r.style,{position:"absolute",display:"block",top:0,left:0,width:q.w+"px",height:q.h+"px",opacity:0})},m.id);return}f.addEvent(o,"dragover",function(p){p.preventDefault()},m.id);f.addEvent(o,"drop",function(q){var p=q.dataTransfer;if(p&&p.files){l(p.files)}q.preventDefault()},m.id)}});m.bind("Refresh",function(o){var p,r,s,t,q;p=g.getElementById(m.settings.browse_button);if(p){r=f.getPos(p,g.getElementById(o.settings.container));s=f.getSize(p);t=g.getElementById(m.id+"_html5_container");f.extend(t.style,{top:r.y+"px",left:r.x+"px",width:s.w+"px",height:s.h+"px"});if(m.features.canOpenDialog){q=parseInt(p.parentNode.style.zIndex,10);if(isNaN(q)){q=0}f.extend(p.style,{position:"relative",zIndex:q});f.extend(t.style,{zIndex:q-1})}}});m.bind("UploadFile",function(o,q){var r=o.settings,t,p;function s(u){var x=0,w=0;function v(){var E=u,L,M,H,I,J=0,A="----pluploadboundary"+f.guid(),D,F,B,C="--",K="\r\n",G="",z,y=o.settings.url;if(q.status==f.DONE||q.status==f.FAILED||o.state==f.STOPPED){return}I={name:q.target_name||q.name};if(r.chunk_size&&k.chunking){D=r.chunk_size;H=Math.ceil(q.size/D);F=Math.min(D,q.size-(x*D));if(typeof(u)=="string"){E=u.substring(x*D,x*D+F)}else{E=u.slice(x*D,F)}I.chunk=x;I.chunks=H}else{F=q.size}L=new XMLHttpRequest();M=L.upload;if(M){M.onprogress=function(N){q.loaded=Math.min(q.size,w+N.loaded-J);o.trigger("UploadProgress",q)}}if(!o.settings.multipart||!k.multipart){y=f.buildUrl(o.settings.url,I)}else{I.name=q.target_name||q.name}L.open("post",y,true);L.onreadystatechange=function(){var N,P;if(L.readyState==4){try{N=L.status}catch(O){N=0}if(N>=400){o.trigger("Error",{code:f.HTTP_ERROR,message:f.translate("HTTP Error."),file:q,status:N})}else{if(H){P={chunk:x,chunks:H,response:L.responseText,status:N};o.trigger("ChunkUploaded",q,P);w+=F;if(P.cancelled){q.status=f.FAILED;return}q.loaded=Math.min(q.size,(x+1)*D)}else{q.loaded=q.size}o.trigger("UploadProgress",q);if(!H||++x>=H){q.status=f.DONE;o.trigger("FileUploaded",q,{response:L.responseText,status:N});t=u=j[q.id]=null}else{v()}}L=E=B=G=null}};f.each(o.settings.headers,function(O,N){L.setRequestHeader(N,O)});if(o.settings.multipart&&k.multipart){if(!L.sendAsBinary){B=new FormData();f.each(f.extend(I,o.settings.multipart_params),function(O,N){B.append(N,O)});B.append(o.settings.file_data_name,E);L.send(B);return}L.setRequestHeader("Content-Type","multipart/form-data; boundary="+A);f.each(f.extend(I,o.settings.multipart_params),function(O,N){G+=C+A+K+'Content-Disposition: form-data; name="'+N+'"'+K+K;G+=unescape(encodeURIComponent(O))+K});z=f.mimeTypes[q.name.replace(/^.+\.([^.]+)/,"$1")]||"application/octet-stream";G+=C+A+K+'Content-Disposition: form-data; name="'+o.settings.file_data_name+'"; filename="'+unescape(encodeURIComponent(q.name))+'"'+K+"Content-Type: "+z+K+K+E+K+C+A+C+K;J=G.length-E.length;E=G}else{L.setRequestHeader("Content-Type","application/octet-stream")}if(L.sendAsBinary){L.sendAsBinary(E)}else{L.send(E)}}v()}t=j[q.id];p=o.settings.resize;if(k.jpgresize){if(p&&/\.(png|jpg|jpeg)$/i.test(q.name)){b(t,p.width,p.height,/\.png$/i.test(q.name)?"image/png":"image/jpeg",function(u){if(u.success){q.size=u.data.length;s(u.data)}else{h(t,s)}})}else{h(t,s)}}else{s(t)}});m.bind("Destroy",function(o){var q,r,p=g.body,s={inputContainer:o.id+"_html5_container",inputFile:o.id+"_html5",browseButton:o.settings.browse_button,dropElm:o.settings.drop_element};for(q in s){r=g.getElementById(s[q]);if(r){f.removeAllEvents(r,o.id)}}f.removeAllEvents(g.body,o.id);if(o.settings.container){p=g.getElementById(o.settings.container)}p.removeChild(g.getElementById(s.inputContainer))});n({success:true})}});a=function(){var l,m,B,v,w,q,u,x,G,s,D,z,n,F,j,E,C,o,k;function r(){var K=false,I;function L(N,P){var M=K?0:-8*(P-1),Q=0,O;for(O=0;O<P;O++){Q|=(I.charCodeAt(N+O)<<Math.abs(M+O*8))}return Q}function H(M,O,N){I=I.substr(0,M)+O+I.substr((N===true?O.length:0)+M)}function J(N,O,Q){var R="",M=K?0:-8*(Q-1),P;for(P=0;P<Q;P++){R+=String.fromCharCode((O>>Math.abs(M+P*8))&255)}H(N,R,true)}return{II:function(M){if(M===j){return K}else{K=M}},init:function(M){I=M},SEGMENT:function(M,O,N){if(!arguments.length){return I}if(typeof O=="number"){return I.substr(parseInt(M,10),O)}H(M,O,N)},BYTE:function(M){return L(M,1)},SHORT:function(M){return L(M,2)},LONG:function(M,N){if(N===j){return L(M,4)}else{J(M,N,4)}},SLONG:function(M){var N=L(M,4);return(N>2147483647?N-4294967296:N)},STRING:function(M,N){var O="";for(N+=M;M<N;M++){O+=String.fromCharCode(L(M,1))}return O}}}G=new r();E={274:"Orientation",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer"};C={36864:"ExifVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",36867:"DateTimeOriginal",33434:"ExposureTime",33437:"FNumber",34855:"ISOSpeedRatings",37377:"ShutterSpeedValue",37378:"ApertureValue",37383:"MeteringMode",37384:"LightSource",37385:"Flash",41986:"ExposureMode",41987:"WhiteBalance",41990:"SceneCaptureType",41988:"DigitalZoomRatio",41992:"Contrast",41993:"Saturation",41994:"Sharpness"};o={0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude"};k={ColorSpace:{1:"sRGB",0:"Uncalibrated"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{1:"Daylight",2:"Fliorescent",3:"Tungsten",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 -5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire.",1:"Flash fired.",5:"Strobe return light not detected.",7:"Strobe return light detected.",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},ExposureMode:{0:"Auto exposure",1:"Manual exposure",2:"Auto bracket"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},GPSLatitudeRef:{N:"North latitude",S:"South latitude"},GPSLongitudeRef:{E:"East longitude",W:"West longitude"}};function t(H,O){var J=G.SHORT(H),L,R,T,N,M,I,K,P,Q=[],S={};for(L=0;L<J;L++){K=I=H+12*L+2;T=O[G.SHORT(K)];if(T===j){continue}N=G.SHORT(K+=2);M=G.LONG(K+=2);K+=4;Q=[];switch(N){case 1:case 7:if(M>4){K=G.LONG(K)+F}for(R=0;R<M;R++){Q[R]=G.BYTE(K+R)}break;case 2:if(M>4){K=G.LONG(K)+F}S[T]=G.STRING(K,M-1);continue;case 3:if(M>2){K=G.LONG(K)+F}for(R=0;R<M;R++){Q[R]=G.SHORT(K+R*2)}break;case 4:if(M>1){K=G.LONG(K)+F}for(R=0;R<M;R++){Q[R]=G.LONG(K+R*4)}break;case 5:K=G.LONG(K)+F;for(R=0;R<M;R++){Q[R]=G.LONG(K+R*4)/G.LONG(K+R*4+4)}break;case 9:K=G.LONG(K)+F;for(R=0;R<M;R++){Q[R]=G.SLONG(K+R*4)}break;case 10:K=G.LONG(K)+F;for(R=0;R<M;R++){Q[R]=G.SLONG(K+R*4)/G.SLONG(K+R*4+4)}break;default:continue}P=(M==1?Q[0]:Q);if(k.hasOwnProperty(T)&&typeof P!="object"){S[T]=k[T][P]}else{S[T]=P}}return S}function A(){var H=x+4;F+=x;if(G.STRING(H,4).toUpperCase()!=="EXIF"||G.SHORT(H+=4)!==0){return}G.II(G.SHORT(H+=2)==18761);if(G.SHORT(H+=2)!==42){return}n=F+G.LONG(H+=2);l=t(n,E);D=("ExifIFDPointer" in l?F+l.ExifIFDPointer:j);z=("GPSInfoIFDPointer" in l?F+l.GPSInfoIFDPointer:j);return true}function p(H,M,L){var K=H.SHORT(L),J,I;for(I=0;I<K;I++){J=L+12*I+2;if(H.SHORT(J)==M){return J+8}}}function y(K,I){var J,L,M=D!=j?D-x:j,H=new r();H.init(u);H.II(G.II());if(M===j){return}J=p(H,40962,M);if(J!==j){H.LONG(J,K)}L=p(H,40963,M);if(L!==j){H.LONG(L,I)}u=H.SEGMENT()}return{init:function(H){F=10;l=m=B=v=w=q=u=x=s=j;G.init(H);if(G.SHORT(0)!==65496){return false}switch(G.SHORT(2)){case 65504:w=2;q=G.SHORT(4)+2;if(G.SHORT(q)==65505){x=q;s=G.SHORT(q+2)+2}break;case 65505:x=2;s=G.SHORT(4)+2;break;default:return false}if(s!==j){A()}},APP1:function(H){if(x===j&&s===j){return}u=u||(u=G.SEGMENT(x,s));if(H!==j&&"width" in H&&"height" in H){y(H.width,H.height)}return u},EXIF:function(){m=t(D,C);m.ExifVersion=String.fromCharCode(m.ExifVersion[0],m.ExifVersion[1],m.ExifVersion[2],m.ExifVersion[3]);return m},GPS:function(){B=t(z,o);B.GPSVersionID=B.GPSVersionID.join(".");return B},setAPP1:function(H){if(x!==j){return false}G.SEGMENT((w?w+q:2),H)},getBinary:function(){return G.SEGMENT()}}}})(window,document,plupload);(function(d,a,b,c){function e(f){return a.getElementById(f)}b.runtimes.Html4=b.addRuntime("html4",{getFeatures:function(){return{multipart:true,canOpenDialog:navigator.userAgent.indexOf("WebKit")!==-1}},init:function(f,g){f.bind("Init",function(p){var j=a.body,n,h="javascript",k,x,q,z=[],r=/MSIE/.test(navigator.userAgent),t=[],m=p.settings.filters,o,l,s,w;for(o=0;o<m.length;o++){l=m[o].extensions.split(/,/);for(w=0;w<l.length;w++){s=b.mimeTypes[l[w]];if(s){t.push(s)}}}t=t.join(",");function v(){var B,y,i,A;q=b.guid();z.push(q);B=a.createElement("form");B.setAttribute("id","form_"+q);B.setAttribute("method","post");B.setAttribute("enctype","multipart/form-data");B.setAttribute("encoding","multipart/form-data");B.setAttribute("target",p.id+"_iframe");B.style.position="absolute";y=a.createElement("input");y.setAttribute("id","input_"+q);y.setAttribute("type","file");y.setAttribute("accept",t);y.setAttribute("size",1);A=e(p.settings.browse_button);if(p.features.canOpenDialog&&A){b.addEvent(e(p.settings.browse_button),"click",function(C){y.click();C.preventDefault()},p.id)}b.extend(y.style,{width:"100%",height:"100%",opacity:0,fontSize:"2em"});b.extend(B.style,{overflow:"hidden"});i=p.settings.shim_bgcolor;if(i){B.style.background=i}if(r){b.extend(y.style,{filter:"alpha(opacity=0)"})}b.addEvent(y,"change",function(F){var D=F.target,C,E=[],G;if(D.value){e("form_"+q).style.top=-1048575+"px";C=D.value.replace(/\\/g,"/");C=C.substring(C.length,C.lastIndexOf("/")+1);E.push(new b.File(q,C));if(!p.features.canOpenDialog){b.removeAllEvents(B,p.id)}else{b.removeEvent(A,"click",p.id)}b.removeEvent(y,"change",p.id);v();if(E.length){f.trigger("FilesAdded",E)}}},p.id);B.appendChild(y);j.appendChild(B);p.refresh()}function u(){var i=a.createElement("div");i.innerHTML='<iframe id="'+p.id+'_iframe" name="'+p.id+'_iframe" src="'+h+':&quot;&quot;" style="display:none"></iframe>';n=i.firstChild;j.appendChild(n);b.addEvent(n,"load",function(C){var D=C.target,B,y;if(!k){return}try{B=D.contentWindow.document||D.contentDocument||d.frames[D.id].document}catch(A){p.trigger("Error",{code:b.SECURITY_ERROR,message:b.translate("Security error."),file:k});return}y=B.documentElement.innerText||B.documentElement.textContent;if(y){k.status=b.DONE;k.loaded=1025;k.percent=100;p.trigger("UploadProgress",k);p.trigger("FileUploaded",k,{response:y})}},p.id)}if(p.settings.container){j=e(p.settings.container);j.style.position="relative"}p.bind("UploadFile",function(i,A){var B,y;if(A.status==b.DONE||A.status==b.FAILED||i.state==b.STOPPED){return}B=e("form_"+A.id);y=e("input_"+A.id);y.setAttribute("name",i.settings.file_data_name);B.setAttribute("action",i.settings.url);b.each(b.extend({name:A.target_name||A.name},i.settings.multipart_params),function(E,C){var D=a.createElement("input");b.extend(D,{type:"hidden",name:C,value:E});B.insertBefore(D,B.firstChild)});k=A;e("form_"+q).style.top=-1048575+"px";B.submit();B.parentNode.removeChild(B)});p.bind("FileUploaded",function(i){i.refresh()});p.bind("StateChanged",function(i){if(i.state==b.STARTED){u()}if(i.state==b.STOPPED){d.setTimeout(function(){b.removeEvent(n,"load",i.id);n.parentNode.removeChild(n)},0)}});p.bind("Refresh",function(A){var F,B,C,D,i,G,H,E,y;F=e(A.settings.browse_button);if(F){i=b.getPos(F,e(A.settings.container));G=b.getSize(F);H=e("form_"+q);E=e("input_"+q);b.extend(H.style,{top:i.y+"px",left:i.x+"px",width:G.w+"px",height:G.h+"px"});if(A.features.canOpenDialog){y=parseInt(F.parentNode.style.zIndex,10);if(isNaN(y)){y=0}b.extend(F.style,{position:"relative",zIndex:y});b.extend(H.style,{zIndex:y-1})}C=A.settings.browse_button_hover;D=A.settings.browse_button_active;B=A.features.canOpenDialog?F:H;if(C){b.addEvent(B,"mouseover",function(){b.addClass(F,C)},A.id);b.addEvent(B,"mouseout",function(){b.removeClass(F,C)},A.id)}if(D){b.addEvent(B,"mousedown",function(){b.addClass(F,D)},A.id);b.addEvent(a.body,"mouseup",function(){b.removeClass(F,D)},A.id)}}});f.bind("FilesRemoved",function(y,B){var A,C;for(A=0;A<B.length;A++){C=e("form_"+B[A].id);if(C){C.parentNode.removeChild(C)}}});f.bind("Destroy",function(i){var y,A,B,C={inputContainer:"form_"+q,inputFile:"input_"+q,browseButton:i.settings.browse_button};for(y in C){A=e(C[y]);if(A){b.removeAllEvents(A,i.id)}}b.removeAllEvents(a.body,i.id);b.each(z,function(E,D){B=e("form_"+E);if(B){j.removeChild(B)}})});v()});g({success:true})}})})(window,document,plupload);
data/lib/imaginable.rb ADDED
@@ -0,0 +1,22 @@
1
+ require 'rails'
2
+ require 'active_support/core_ext/class/attribute'
3
+
4
+ module Imaginable
5
+
6
+ require 'imaginable/railtie'
7
+
8
+ # The upload-server hostname
9
+ mattr_accessor :upload_server
10
+ #@@upload_server = 'http://127.0.0.1:3001'
11
+
12
+ # The scale-server hostname
13
+ mattr_accessor :scale_server
14
+ #@@scale_server = 'http://127.0.0.1:3333'
15
+
16
+ # Default way to setup Imaginable. Run rails generate imaginable:install to create
17
+ # a fresh initializer with all configuration values.
18
+ def self.setup
19
+ yield self
20
+ end
21
+
22
+ end
@@ -0,0 +1,100 @@
1
+ module Imaginable
2
+ module FormBuilder
3
+
4
+ def self.included(base)
5
+ base.extend(ClassMethods)
6
+ end
7
+
8
+ def image_field(method, options = {})
9
+ tag_text = hidden_field("#{method}_uuid")
10
+ tag_text << hidden_field("#{method}_token")
11
+ tag_text << hidden_field("#{method}_version")
12
+ tag_text << ActionView::Helpers::InstanceTag.new(@object_name, method, self, @object).to_image_field_tag(options)
13
+ end
14
+
15
+ module ClassMethods
16
+
17
+ end
18
+
19
+ end
20
+
21
+ module InstanceTag
22
+
23
+ def self.included(base)
24
+ base.extend(ClassMethods)
25
+ end
26
+
27
+ def to_image_field_tag(options = {})
28
+ has_existing_image = @object.method("has_#{method_name}?").call
29
+ if has_existing_image
30
+ image = @object.method("#{method_name}").call
31
+ end
32
+
33
+ options[:preview_width] ||= 50
34
+ dom_prefix = "#{@object_name}_#{@method_name}"
35
+ tag_text = content_tag('div', :id => "#{dom_prefix}_container", :class => "imaginable",
36
+ :'data-imaginable-prefix' => dom_prefix,
37
+ :'data-imaginable-upload-server' => Imaginable.upload_server,
38
+ :'data-imaginable-scale-server' => Imaginable.scale_server,
39
+ :'data-imaginable-preview-width' => options[:preview_width],
40
+ :'data-imaginable-force-crop' => options[:force_crop],
41
+ :'data-imaginable-format' => options[:format],
42
+ :'data-imaginable-new-version' => "'#{UUIDTools::UUID.timestamp_create.to_i.to_s}'") {
43
+ sub_tag_text = build_imaginable_crop_content(options)
44
+
45
+ if has_existing_image
46
+ sub_tag_text << tag('img', :id => "#{dom_prefix}_preview_image", :src => image.url(:format => options[:format], :width => options[:preview_width]), :class => "imaginable_preview_image")
47
+ else
48
+ sub_tag_text << tag('img', :id => "#{dom_prefix}_preview_image", :src => '/images/blank.gif', :style => 'display:none;', :class => "imaginable_preview_image")
49
+ end
50
+
51
+ sub_tag_text << content_tag('div', :id => "#{dom_prefix}_file_list", :class => "imaginable_file_list") { "" }
52
+ sub_tag_text << content_tag('a', :id => "#{dom_prefix}_browse_button", :class => 'imaginable_browse_files_button', :href => '#') { "Select file" }
53
+ sub_tag_text << content_tag('a', :id => "#{dom_prefix}_crop_button", :class => 'imaginable_crop_button',
54
+ :href => "##{dom_prefix}_imaginable_crop_content", :style => "display:none;") { "Crop Image" }
55
+ }
56
+ end
57
+
58
+ def build_imaginable_crop_content(options = {})
59
+ has_existing_image = @object.method("has_#{method_name}?").call
60
+ if has_existing_image
61
+ image = @object.method("#{method_name}").call
62
+ end
63
+
64
+ dom_prefix = "#{@object_name}_#{@method_name}"
65
+
66
+ container_div = content_tag('div', :style => 'display:none', :class => 'imaginable_crop_container') {
67
+ content_div = content_tag('div', :id => "#{dom_prefix}_imaginable_crop_content", :class => 'imaginable_crop_content') {
68
+ content_div_content = content_tag('div', :id => "#{dom_prefix}_imaginable_crop_header", :class => 'imaginable_crop_header') {"Crop Image"}
69
+ content_div_content << content_tag('div', :id => "#{dom_prefix}_imaginable_crop_description", :class => 'imaginable_crop_description') {"Please crop your image by dragging the corners of the crop-selection."}
70
+ if has_existing_image
71
+ content_div_content << tag('img', :id => "#{dom_prefix}_imaginable_crop_image", :class => 'imaginable_crop_image', :src => image.url(:width => 500, :height => 500))
72
+ else
73
+ content_div_content << tag('img', :id => "#{dom_prefix}_imaginable_crop_image", :class => 'imaginable_crop_image', :src => '/images/blank.gif')
74
+ end
75
+ content_div_content << content_tag('div', :id => "#{dom_prefix}_imageinable_crop_buttons", :class => 'imaginable_crop_buttons') {
76
+ buttons_div_tag = content_tag('a', :id => "#{dom_prefix}_imaginable_cancel_crop_button", :class => 'imaginable_cancel_crop_button', :href => '#') {"Cancel"}
77
+ buttons_div_tag << content_tag('a', :id => "#{dom_prefix}_imaginable_save_crop_button", :class => 'imaginable_save_crop_button', :href => '#') {"Save"}
78
+ }
79
+ }
80
+ }
81
+ end
82
+
83
+ module ClassMethods
84
+
85
+ end
86
+
87
+ end
88
+
89
+ module FormtasticFormBuilder
90
+
91
+ def self.included(base)
92
+ base.extend(ClassMethods)
93
+ end
94
+
95
+ module ClassMethods
96
+
97
+ end
98
+
99
+ end
100
+ end
@@ -0,0 +1,24 @@
1
+ module Imaginable
2
+
3
+ class Image
4
+
5
+ attr_accessor :uuid, :token
6
+
7
+ def initialize(uuid, token, version)
8
+ @uuid = uuid
9
+ @token = token
10
+ @version = version
11
+ end
12
+
13
+ def url(options = {})
14
+ options[:width] ||= 100
15
+
16
+ height = options.has_key?(:height) ? "-#{options[:height]}" : ""
17
+ format = options.has_key?(:format) ? options[:format] : "original"
18
+
19
+ "#{Imaginable.scale_server}/image/#{@uuid}-#{@version}-#{format}-#{options[:width]}#{height}.jpg"
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,67 @@
1
+ require 'imaginable/image'
2
+
3
+ module Imaginable
4
+
5
+ module Model
6
+
7
+ def has_imagination(column, options = {})
8
+ extend ClassMethods
9
+ include InstanceMethods
10
+
11
+ class_attribute :_imaginable_settings
12
+
13
+ self._imaginable_settings = { :column => column }
14
+ self._imaginable_settings.update(options) if options.is_a?(Hash)
15
+
16
+ define_method "has_#{column}?" do
17
+ uuid = self.method("#{column}_uuid").call
18
+ token = self.method("#{column}_token").call
19
+
20
+ return false unless uuid && token
21
+
22
+ !uuid.empty? && !token.empty?
23
+ end
24
+
25
+ define_method column do
26
+ uuid = self.method("#{column}_uuid").call
27
+ token = self.method("#{column}_token").call
28
+ version = self.method("#{column}_version").call
29
+ Image.new(uuid, token, version)
30
+ end
31
+
32
+ after_initialize :update_imaginable_version
33
+ end
34
+
35
+ module ClassMethods
36
+
37
+ def validates_imagination
38
+ validate :validate_imagination
39
+ end
40
+
41
+ end
42
+
43
+ module InstanceMethods
44
+
45
+ private
46
+
47
+ def update_imaginable_version
48
+ #if new_record?
49
+ # settings = self.class._imaginable_settings
50
+ # column = settings[:column]
51
+ # self.send(:attributes=,{"#{column}_version" => "#{UUIDTools::UUID.timestamp_create.to_i.to_s}"},false)
52
+ #end
53
+ end
54
+
55
+ def validate_imagination
56
+ settings = self.class._imaginable_settings
57
+ column = settings[:column]
58
+
59
+ errors.add(column, I18n.translate('imaginable.errors.must_be_set')) unless
60
+ attribute_present?("#{column}_uuid") && attribute_present?("#{column}_token")
61
+ end
62
+
63
+ end
64
+
65
+ end
66
+
67
+ end
@@ -0,0 +1,27 @@
1
+ require 'rails'
2
+
3
+ module Imaginable
4
+
5
+ class Railtie < Rails::Railtie
6
+
7
+ initializer 'imaginable' do |app|
8
+
9
+ ActiveSupport.on_load(:active_record) do
10
+ require 'imaginable/model'
11
+ require 'imaginable/schema'
12
+ ::ActiveRecord::Base.send(:extend, Imaginable::Model)
13
+ ::ActiveRecord::ConnectionAdapters::Table.send(:include, Imaginable::Schema)
14
+ ::ActiveRecord::ConnectionAdapters::TableDefinition.send(:include, Imaginable::Schema)
15
+ end
16
+
17
+ ActiveSupport.on_load(:action_view) do
18
+ require 'imaginable/form_builder'
19
+ ::ActionView::Helpers::FormBuilder.send(:include, Imaginable::FormBuilder)
20
+ ::ActionView::Helpers::InstanceTag.send(:include, Imaginable::InstanceTag)
21
+ end
22
+
23
+ end
24
+
25
+ end
26
+
27
+ end
@@ -0,0 +1,11 @@
1
+ module Imaginable
2
+ module Schema
3
+
4
+ def imaginable(column, options = {})
5
+ column "#{column}_uuid", :string, options
6
+ column "#{column}_token", :string, options
7
+ column "#{column}_version", :string, options
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module Imaginable
2
+ VERSION = "0.0.3"
3
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imaginable
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Thomas Dippel
@@ -56,8 +56,55 @@ extensions: []
56
56
 
57
57
  extra_rdoc_files: []
58
58
 
59
- files: []
60
-
59
+ files:
60
+ - .gitignore
61
+ - Gemfile
62
+ - Gemfile.lock
63
+ - README.textile
64
+ - Rakefile
65
+ - imaginable.gemspec
66
+ - lib/generators/imaginable/install/install_generator.rb
67
+ - lib/generators/templates/fancybox/blank.gif
68
+ - lib/generators/templates/fancybox/fancy_close.png
69
+ - lib/generators/templates/fancybox/fancy_loading.png
70
+ - lib/generators/templates/fancybox/fancy_nav_left.png
71
+ - lib/generators/templates/fancybox/fancy_nav_right.png
72
+ - lib/generators/templates/fancybox/fancy_shadow_e.png
73
+ - lib/generators/templates/fancybox/fancy_shadow_n.png
74
+ - lib/generators/templates/fancybox/fancy_shadow_ne.png
75
+ - lib/generators/templates/fancybox/fancy_shadow_nw.png
76
+ - lib/generators/templates/fancybox/fancy_shadow_s.png
77
+ - lib/generators/templates/fancybox/fancy_shadow_se.png
78
+ - lib/generators/templates/fancybox/fancy_shadow_sw.png
79
+ - lib/generators/templates/fancybox/fancy_shadow_w.png
80
+ - lib/generators/templates/fancybox/fancy_title_left.png
81
+ - lib/generators/templates/fancybox/fancy_title_main.png
82
+ - lib/generators/templates/fancybox/fancy_title_over.png
83
+ - lib/generators/templates/fancybox/fancy_title_right.png
84
+ - lib/generators/templates/fancybox/fancybox-x.png
85
+ - lib/generators/templates/fancybox/fancybox-y.png
86
+ - lib/generators/templates/fancybox/fancybox.png
87
+ - lib/generators/templates/fancybox/jquery.fancybox-1.3.4.css
88
+ - lib/generators/templates/imaginable.js
89
+ - lib/generators/templates/imaginable.rb
90
+ - lib/generators/templates/imgareaselect/border-anim-h.gif
91
+ - lib/generators/templates/imgareaselect/border-anim-v.gif
92
+ - lib/generators/templates/imgareaselect/border-h.gif
93
+ - lib/generators/templates/imgareaselect/border-v.gif
94
+ - lib/generators/templates/imgareaselect/imgareaselect-animated.css
95
+ - lib/generators/templates/imgareaselect/imgareaselect-default.css
96
+ - lib/generators/templates/imgareaselect/imgareaselect-deprecated.css
97
+ - lib/generators/templates/jquery.fancybox-1.3.4.pack.js
98
+ - lib/generators/templates/jquery.imgareaselect.pack.js
99
+ - lib/generators/templates/plupload.flash.swf
100
+ - lib/generators/templates/plupload.full.min.js
101
+ - lib/imaginable.rb
102
+ - lib/imaginable/form_builder.rb
103
+ - lib/imaginable/image.rb
104
+ - lib/imaginable/model.rb
105
+ - lib/imaginable/railtie.rb
106
+ - lib/imaginable/schema.rb
107
+ - lib/imaginable/version.rb
61
108
  homepage: http://rubygems.org/gems/imaginable
62
109
  licenses: []
63
110