/*______________
|       ______  |   B U I L T     O N     U I Z E     F R A M E W O R K
|     /      /  |   ---------------------------------------------------
|    /    O /   |   This JavaScript application is developed using the object
|   /    / /    |   oriented UIZE JavaScript framework as its foundation.
|  /    / /  /| |
| /____/ /__/_| |    ONLINE : http://www.uize.com
|          /___ |   LICENSE : UIZE is distributed under the GNU General Public License
|_______________|             http://www.gnu.org/licenses/gpl.txt
*/
Uize.module({name:'Zazzle.ControlImageSelector',superclass:'Uize.Widget',required:['Uize.Node','Uize.Url','Uize.Widget.Button'],builder:function(c_a){var c_b=true,c_c=Uize.Node;var c_d=c_a.subclass(null,function(){var c_e=this;c_e.c_f='';c_e.c_g('selectImage',function(){c_e.c_h()});c_e.c_i=c_e.c_g('clearImage',function(){c_e.set({c_j:''})});}),c_k=c_d.prototype;c_k.c_g=Uize.Widget.Button.addChildButton;c_k.c_h=function(){var c_e=this;c_e.callInherited('useMediaBrowser')(Uize.copyInto({selectionMode:'single',imageType:c_e.c_l,checkZT:c_e.getInherited('isZT')},c_e.c_m),function(c_n){c_e.set({c_j:c_n[0].id,c_o:c_n[0].pendstitch})});};c_k.updateUi=function(){var c_e=this;if(c_e.isWired){var c_j=c_e.c_j,c_p=c_j!=c_e.c_f,c_q=c_e.getNode('imagePreview');if(c_q){var c_r=c_j&&c_p,c_s=c_q.className;c_q.className=c_r?c_s+' selectedImage':c_s;c_e.displayNode('imageHeader',c_r);c_e.displayNode('imageText',!c_r);c_e.displayNode('imageTextSelected',c_r);if(c_p){var c_t=c_e.c_o?{pendstitch:c_b}:{};c_e.c_f=c_j;if(!c_e.c_u){
c_e.c_u=c_c.getStyle(c_q,'backgroundImage');var c_v=c_c.getDimensions(c_q);c_e.c_w=Math.max(c_v.width,c_v.height);}c_c.setStyle(c_q,{backgroundImage:c_j?'url('+Uize.Url.resolve([c_e.getInherited('env').realview,{action:'getimage',max_dim:c_e.c_w,id:c_j,bg_pattern:'checker'},c_t])+')':c_e.c_u});}c_e.c_i.set({enabled:c_j?'inherit':false});}}};c_k.wireUi=function(){var c_e=this;if(!c_e.isWired){var c_q=c_e.getNode('imagePreview');c_e.wireNodeEvent(c_q,'onclick',function(){c_e.c_h()});c_c.showClickable(c_q);c_e.wireNodeEvent('selectImage','onclick',function(){c_e.c_h()});c_e.wireNodeEvent('clearImage','onclick',function(){c_e.set({c_j:''})});c_a.prototype.wireUi.call(c_e);}};c_d.registerProperties({c_l:{name:'imageType',value:'image'},c_x:{name:'isValid',value:c_b},c_m:'mediaBrowserOverrides',c_j:{name:'value',onChange:c_k.updateUi,value:''},c_o:{name:'pending'}});return c_d;}});

Uize.module({name:'Uize.Widget.FormElement',required:'Uize.Node',builder:function(c_a){var c_b=true,c_c=false,c_d=null,c_e,c_f=Uize.Node;var c_g=c_a.subclass(),c_h=c_g.prototype;c_h.c_i=function(c_j){var c_k=this,c_l=c_k.getInputNode();switch(c_k.c_m){case'text':case'password':case'hidden':case'textarea':if(c_l.value!=c_j)c_l.value=c_j;break;case'radio':for(var c_n=0;c_n<c_l.length;++c_n){if(c_l[c_n].value==c_j){c_l[c_n].checked=c_b;return;}}break;case'select-one':c_l.selectedIndex=c_j.index;break;}};c_h.getInputNode=function(){var c_k=this;return c_k.c_m=='radio'?c_f.getById(c_k.c_o):c_k.getNode('input');};c_h.wireUi=function(){var c_k=this;if(!c_k.isWired){var c_l=c_k.getInputNode(),c_n=c_d;function c_p(c_o){c_k.fire(c_o)}switch(c_k.c_m){case'text':case'textarea':case'password':function c_q(){if(c_l)c_k.set({c_r:c_l.value});}c_q();c_k.wireNodeEvents(c_l,{onkeyup:function(c_s){var c_t=c_s.which!==c_e?c_s.which:c_s.keyCode;if(c_t==13&&c_k.c_m=='textarea'){c_k.fire({name:'Ok',domEvent:c_s});}else if(c_t==27){
c_k.fire({name:'Cancel',domEvent:c_s});}c_q();c_p('Key Up');},onblur:function(){c_q();c_p('Blur');},onfocus:function(){c_q();c_p('Focus');}});break;case'hidden':break;case'checkbox':function c_u(){c_k.set({c_r:{checked:c_l.checked,value:c_l.value}});}c_u();c_k.wireNodeEvents(c_l,{onblur:function(){c_p('Blur');},onclick:function(){c_u();c_p('Clicked');},onfocus:function(){c_p('Focus');}});break;case'radio':for(var c_n=0;c_n<c_l.length;c_n++){if(c_l[c_n]&&c_l[c_n].checked)c_k.set({value:c_l[c_n].value});c_k.wireNodeEvents(c_l[c_n],{onblur:function(){c_p('Blur');},onclick:function(c_v){c_k.set({c_r:this.value});c_p('Clicked');},onfocus:function(){c_p('Focus');}});}break;case'select-one':function c_w(){c_k.set({c_r:{text:c_l.options[c_l.selectedIndex].text,index:c_l.selectedIndex,optionValue:c_l.options[c_l.selectedIndex].value}});}c_w();c_k.wireNodeEvents(c_l,{onblur:function(){c_p('Blur');},onclick:function(){c_w();c_p('Clicked');},onkeyup:function(){c_w();c_p('Key Up');},onfocus:function(){c_p('Focus');}});
break;case'select-multiple':function c_x(){var c_y=c_l.options,c_z=[];for(var c_A in c_y)if(c_y[c_A].selected)c_z.push({text:c_y[c_A].text,index:c_A,optionValue:c_y[c_A].value});c_k.set({c_r:c_z});}c_x();c_k.set({c_r:c_z});c_k.wireNodeEvents(c_l,{onblur:function(){c_p('Blur');},onclick:function(){c_x();c_p('Clicked');},onkeyup:function(){c_x();c_p('Key Up');},onfocus:function(){c_p('Focus');}});}c_a.prototype.wireUi.call(c_k);}};c_g.registerProperties({c_o:'name',c_m:'type',c_r:{name:'value',onChange:function(){var c_k=this,c_r=c_k.c_r,c_B=c_k.c_m=='checkbox',c_C=c_B?c_r.checked:c_r,c_l=c_k.getInputNode();if(c_f.getValue(c_l)!=c_C)c_f.setValue(c_k.getInputNode(),c_C);}}});return c_g;}});
Uize.module({name:'Zazzle.FormWarnings',superclass:'Uize.Widget',builder:function(c_a){var c_b=true,c_c=false,c_d=null,c_e;var c_f=c_a.subclass(),c_g=c_f.prototype;c_g.c_h=function(){var c_i=this;if(c_i.c_j){var c_k,c_l=0,c_m,c_n,c_o,c_p=c_i.c_p,c_q=c_p.length;function c_r(c_s){c_i.setNodeInnerHtml('errorList',c_s);}c_r('');for(;c_l<c_q;++c_l){c_k=c_p[c_l];c_n=c_k.get('isValid');c_o=c_k.selectWarningMessage();if(!c_n&&c_o&&(c_m=c_i.getNode('errorList')))c_r(c_m.innerHTML+'<li><a href="#'+c_k.get('idPrefix')+'-label">'+c_o+'</a></li>');c_k.set({showWarning:c_b});}}c_i.displayNode('',c_i.c_j);};c_g.wireUi=function(){var c_i=this;if(!c_i.isWired){c_a.prototype.wireUi.call(c_i);}};c_f.registerProperties({c_j:{name:'shown',onChange:function(){this.c_h();},value:c_c},c_p:{name:'watchedElements',value:[]}});return c_f;}});
Uize.module({name:'Zazzle.FormInputWarningMessage',superclass:'Uize.Widget',builder:function(c_a){var c_b=true,c_c=false,c_d=null,c_e;var c_f=c_a.subclass(),c_g=c_f.prototype;c_g.c_h=function(){var c_i=this;if(c_i.isWired){var c_j=c_i.c_j;c_i.setNodeStyle('',{display:c_j?'inline':'none'});if(c_j){c_i.setNodeInnerHtml('text',c_i.c_k?c_i.c_l:c_i.c_m);c_i.setNodeProperties('',{className:c_i.c_k?c_i.c_n:c_i.c_o});}}};c_g.wireUi=function(){var c_i=this;if(!c_i.isWired){c_a.prototype.wireUi.call(c_i);}c_i.c_h();};c_f.registerProperties({c_k:{name:'collapsed',onChange:function(){this.c_h()},value:c_b},c_n:'collapsedClass',c_l:{name:'collapsedMessage',onChange:function(){this.c_h()},value:''},c_o:'expandedClass',c_m:{name:'expandedMessage',onChange:function(){this.c_h()}},c_j:{name:'shown',onChange:function(){this.c_h()},value:c_c}});return c_f;}});
Uize.module({name:'Zazzle.FormElement',superclass:'Uize.Widget.FormElement',required:'Zazzle.FormInputWarningMessage',builder:function(d_a){var d_b=true,d_c=false,d_d=null,d_e;var d_f=d_a.subclass(function(){var d_g=this;d_g.wire('Changed.value',function(){if(!d_g.d_h)d_g.validate()});},function(){var d_g=this;d_g.d_i=d_g.addChild('warning',Zazzle.FormInputWarningMessage,d_g.d_j);}),d_k=d_f.prototype;d_k.validate=d_k.d_l=function(){var d_g=this,d_m=d_g.d_m,d_n=d_g.get('value');d_g.set({d_o:d_m==d_d||(d_m instanceof RegExp?d_m.test(d_n):(typeof d_m=='function'?d_m(d_n):d_n==d_m))});};d_k.d_p=function(){if(this.isWired){var d_g=this,d_q= !d_g.d_r||d_g.d_o,d_s=d_g.get('type');function d_t(d_u){if(d_u)d_g.setNodeProperties(d_u,{className:d_q?d_u.className.replace('error',''):(d_u.className+' error')});}if(d_s=='text'||d_s=='textarea'||d_s=='password')d_t(d_g.getInputNode());d_t(d_g.getNode('label'));d_g.d_i.set({shown:!d_q});}};d_k.selectWarningMessage=function(){return this.d_v();};d_k.updateUi=function(){var
 d_w=0,d_g=this,d_x=d_g.getInputNode(),d_y= !d_g.get('enabled');if(d_g.isWired&&d_x){if(d_g.get('type')=='radio'){for(;d_w<d_x.length;++d_w)d_x[d_w].disabled=d_y;}else d_x.disabled=d_y;}};d_k.wireUi=function(){var d_g=this;if(!d_g.isWired){var d_w=0,d_x=d_g.getInputNode(),d_s=d_g.get('type');function d_z(d_A,d_B){var d_C=d_g.d_C,d_D=d_g.d_D;d_g.setNodeProperties(d_A,{className:d_A.className.replace(d_B?d_C:d_D,d_B?d_D:d_C)});}d_g.wire({Blur:function(){if(d_g.d_C){if(d_s=='radio'){for(;d_w<d_x.length;++d_w)d_z(d_x[d_w],d_c);}else d_z(d_x,d_c);}if(d_g.d_h)d_g.validate();d_g.d_i.set({collapsed:d_b});},Focus:function(){if(d_g.d_D){if(d_s=='radio'){for(;d_w<d_x.length;++d_w)d_z(d_x[d_w],d_b);}else d_z(d_x,d_b);}d_g.d_i.set({expandedMessage:d_g.d_v(),collapsed:d_c});},'Key Up':function(){if(d_g.d_E)d_g.set({showWarning:d_b});}});switch(d_g.get('type')){case'checkbox':d_g.wire('Changed.enabled',function(){d_g.updateUi();});case'radio':case'select-one':case'select-multiple':d_g.wire('Clicked',function(){
if(d_g.d_E)d_g.set({showWarning:d_b});});break;}d_g.d_i.wireNodeEvents('',{onmouseover:function(){d_g.d_i.set({expandedMessage:d_g.d_v(),collapsed:d_c});},onmouseout:function(){if(!d_g.d_F)d_g.d_i.set({collapsed:d_b});}});d_a.prototype.wireUi.call(d_g);}};d_f.registerProperties({d_j:'warningMessageProperties',d_E:{name:'deferUiWarning',value:d_c},d_o:{name:'isValid',onChange:function(){this.d_p();},value:d_c},d_v:{name:'selectWarningMessage',value:function(){}},d_r:{name:'showWarning',onChange:function(){this.d_p();},value:d_c},d_h:{name:'validateOnExit',value:d_c},d_m:{name:'validator',value:d_d},d_G:{name:'warningMessages',value:d_d}});return d_f;}});
Uize.module({name:'Zazzle.FormElement.TextInput',builder:function(e_a){var e_b=true,e_c=false,e_d=null,e_e;var e_f=e_a.subclass(),e_g=e_f.prototype;e_g.validate=function(){var e_h=this,e_i=e_h+'';e_i.length<e_h.e_j||e_i.length>e_h.e_k?e_h.set({isValid:e_c}):e_a.prototype.validate.call(e_h);};e_g.wireUi=function(){var e_h=this;if(!e_h.isWired){if(e_h.get('validateOnExit')){e_h.set({value:e_h.getInputNode().value});if(e_h+'')e_h.validate();}e_a.prototype.wireUi.call(e_h);}};e_f.registerProperties({e_j:{name:'minLength',value:0},e_k:{name:'maxLength',value:32767}});e_f.set({value:''});return e_f;}});

Uize.module({name:'Uize.Widget.Committer',required:'Uize.Widget.Button',builder:function(c_a){var c_b=null,c_c=true,c_d=false;var c_e=c_a.subclass(function(){var c_f=this;c_f.c_g;c_f.c_h=c_f.c_i('commit',function(){c_f.commit()});function c_j(c_k){var c_l=c_f.c_l,c_m=c_f.c_m,c_n=c_f.get(c_k+'Values');for(var c_o in c_m){var c_p=c_l[c_o],c_q={};c_q[c_p.name]=c_n?c_n[c_o]:'';c_p.instance.set(c_q);}}c_f.c_r=c_f.c_i('clearAll',function(){c_j('clear')});c_f.c_s=c_f.c_i('restoreInitial',function(){c_j('initial')});c_f.c_t=c_f.c_i('restorePrevious',function(){c_j('committed')});}),c_u=c_e.prototype;c_u.c_i=Uize.Widget.Button.addChildButton;c_u.c_v=function(){if(this.c_g)clearTimeout(this.c_g);};c_u.c_w=function(){var c_f=this,c_x=c_c,c_y=c_c,c_z=c_d,c_A=c_d,c_m=c_f.c_m,c_B=c_f.c_B,c_C=c_f.c_C,c_l=c_f.c_l;for(var c_o in c_m){var c_D=c_B[c_o];if(!c_z&&c_D!==c_m[c_o])c_z=c_c;if(!c_A&&c_D!==c_C[c_o])c_A=c_c;if(c_y&&c_D!='')c_y=c_d;if(c_x&& !c_l[c_o].instance.get('isValid'))c_x=c_d;}c_f.set({c_y:c_y,c_x:c_x,c_z:c_z,
c_A:c_A,c_E:c_z&&c_x});};c_u.commit=function(){var c_f=this;c_f.c_v();if(c_f.c_E){c_f.set({c_m:c_e.copyInto({},c_f.c_B)});c_f.fire('Commit');c_f.c_w();}};c_e.registerProperties({c_y:{name:'allClear',onChange:function(){this.c_r.set({enabled:this.c_y?c_d:'inherit'});},value:c_d},c_x:{name:'allValid',value:c_d},c_A:{name:'anyNotInitial',onChange:function(){this.c_s.set({enabled:this.c_A?'inherit':c_d});},value:c_d},c_z:{name:'anyNotCommitted',onChange:function(){this.c_t.set({enabled:this.c_z?'inherit':c_d});},value:c_d},c_F:'autoCommitDelay',c_m:{name:'committedValues',value:{}},c_C:{name:'initialValues',value:{}},c_E:{name:'readyToCommit',onChange:function(){this.c_h.set({enabled:this.c_E?'inherit':c_d});},value:c_d},c_B:{name:'uncommittedValues',value:{}},c_l:{name:'watchedProperties',onChange:function(){var c_f=this,c_l=c_f.c_l,c_m={},c_B={},c_C={};if(c_l){function c_G(c_o,c_p){var c_H=c_p.instance,c_I=c_p.name;c_m[c_o]=c_B[c_o]=c_C[c_o]=c_H.get(c_I);c_H.wire('Changed.'+c_I,function(){c_f.c_B[c_o]=
c_H.get(c_I);c_f.c_w();if(c_f.c_E&&c_f.c_F){c_f.c_v();c_f.c_g=setTimeout(function(){c_f.commit()},c_f.c_F)}});}for(var c_o in c_l)c_G(c_o,c_l[c_o]);}c_f.set({c_m:c_m,c_C:c_C,c_B:c_B});c_f.c_w();}}});return c_e;}});
Uize.module({name:'Zazzle.TemplateFields',superclass:'Uize.Widget',required:['Zazzle.ControlImageSelector','Zazzle.FormElement.TextInput','Uize.Widget.Committer','Zazzle.FormWarnings'],builder:function(c_a){var c_b=true,c_c=false,c_d=null;var c_e=c_a.subclass(c_d,function(){var c_f=this;c_f.addChild('committer',Uize.Widget.Committer);c_f.addChild('formWarnings',Zazzle.FormWarnings);c_f.c_g=[];c_f.c_h();c_f.c_i=c_b;}),c_j=c_e.prototype;c_j.c_h=function(){var c_f=this,c_k=c_f.children,c_g=c_f.c_g;for(var c_l=0,c_m=c_g.length;c_l<c_m;c_l++)c_f.removeChild(c_g[c_l]);c_g=c_f.c_g=[];var c_n={},c_o=c_f.c_o,c_p=c_o.length;for(var c_q=0;c_q<c_p;c_q++){var c_r=c_o[c_q],c_s=c_r.name,c_t=c_r.type=='image'||c_r.type=='ztimage'||c_r.type=='spimage',c_u=c_f.c_u;c_g.push(c_s);c_n[c_s]={instance:c_f.addChild(c_s,c_t&& !c_u?Zazzle.ControlImageSelector:Zazzle.FormElement.TextInput,c_e.copyInto({isValid:c_b,value:c_u&&c_t?'':c_r.value},c_t&& !c_u?{imageType:c_r.type}:{maxLength:512,
selectWarningMessage:function(){return c_f.localize('warningMessage'+((this+'').length>this.get('maxLength')?'Length':'Charset'))},tooltip:'tooltip',type:'text',validator:/^[\x0a\x0d\x20-\xff\u2018\u2019\u201c\u201d]*$/,warningMessageProperties:{collapsed:c_b,collapsedClass:'templateInputWarning collapsedWarning',expandedClass:'templateInputWarning expandedWarning box highlight'}})),name:'value'};var c_v=c_n[c_s].instance;if(!c_t||c_u)c_k.formWarnings.get('watchedElements').push(c_v);if(c_f.c_w){var c_x=c_v.getNode('title');if(c_x)c_f.setNodeInnerHtml(c_x,c_x.innerHTML+' '+c_f.localize(c_r.type+'Type'));}}c_k.committer.set({watchedProperties:c_n});};c_j.getValues=function(c_y,c_z){var c_f=this,c_A={},c_o=c_f.c_o,c_p=c_o.length;for(var c_q=0;c_q<c_p;c_q++){var c_r=c_o[c_q],c_s=c_r.name,c_B=c_r.type=='image'||c_r.type=='ztimage'||c_r.type=='spimage';if(!c_z||c_s!=c_r.initialValue)c_A[c_y?('t_'+c_s+(c_B?'_iid':'')):c_s]=c_r.value;}return c_A;};c_j.hasDeviantParams=function(){var c_f=this,c_C=c_c,c_o=c_f.c_o,
c_p=c_o.length;for(var c_q=0;c_q<c_p&& !c_C;c_q++){var c_r=c_o[c_q];c_C=c_r.value!=c_r.initialValue;}return c_C;};c_j.setValues=function(c_A){var c_n=this.children.committer.get('watchedProperties');for(var c_s in c_A){if(c_A[c_s]!=c_d){var c_D=c_n[c_s];if(c_D){var c_E={};c_E[c_D.name]=c_A[c_s];c_D.instance.set(c_E);}}}};c_j.wireUi=function(){var c_f=this;if(!c_f.isWired){var c_F=c_f.children.committer;c_F.set({autoCommitDelay:c_f.c_G});c_F.wire('Commit',function(){var c_H=c_F.get('committedValues');for(var c_q=0;c_q<c_f.c_o.length;c_q++){var c_r=c_f.c_o[c_q];c_r.value=c_H[c_r.name]}c_f.fire({name:'Values Set',values:c_f.getValues()});});c_f.wireNodeEvent('quickFill','onclick',function(){c_f.callInherited('useDialog')({component:{name:'create/quickFillDialog',params:{sources:'MySpace,Zazzle,Facebook,LinkedIn'}},widgetClassName:'Zazzle.DialogQuickFill',widgetProperties:{name:'quickFillDialog',imageOwner:c_f.c_I,apiUser:c_f.c_J},submitHandler:function(c_K){if(c_K.error)c_f.inform({state:'error',
message:c_K.error});else c_f.set({c_K:c_K})}});});c_a.prototype.wireUi.call(c_f);}};c_e.registerProperties({c_J:'apiUser',c_G:{name:'autoCommitDelay',value:1500},c_I:'imageOwner',c_K:{name:'profileInfo',onChange:function(){var c_f=this,c_L=c_f.getInherited('commObject'),c_K=c_f.c_K;if(c_K)Uize.module({required:'Uize.Json',builder:function(){c_L.request({url:[c_f.getInherited('env').service+'create/templatemapping',{src:c_K.source,type:c_f.c_M,profileInfo:Uize.Json.to(c_K,'mini')}],returnType:'json',requestMethod:'POST',callback:function(c_N){c_f.setValues(c_N);}});}});},value:c_d},c_w:{name:'showFieldType',value:c_c},c_o:{name:'templateFields',onChange:function(){if(this.c_i)this.c_h()},value:[]},c_M:'templateType',c_u:{name:'useImageUrl',value:c_c}});return c_e;}});

