(function($){function Swatch(img){this.mresUrl=img.mresUrl;this.thumbUrl=img.thumbUrl;this.prodUrl=img.prodUrl;this.id=img.id;this.name=img.name;}
Swatch.prototype.getMresUrl=function(){return this.mresUrl;};Swatch.prototype.setMresUrl=function(url){this.mresUrl=url;};Swatch.prototype.getThumbUrl=function(){return this.thumbUrl;};Swatch.prototype.getProdUrl=function(){return this.prodUrl;};Swatch.prototype.setProdUrl=function(url){this.prodUrl=url;};Swatch.prototype.getImageUrl=function(){return this.thumbUrl;};Swatch.prototype.setImageUrl=function(url){this.thumbUrl=url;};Swatch.prototype.getName=function(){return this.name;};function Logoizer(){this.serverUrl=undefined;this.flashUrl="User.swf";this.product=null;this.images=[];this.activeSW=null;this.initialized=false;this.success=null;this.swatch='<a href="%name%" onclick="$.logoizer.click(\'%name%\');return false;"><img border="0" src="%url%"></a>';this.flashSwitcher='<div id="logoizer-add-your-logo">'+(this.addYourLogo||"Add your logo")+'</div>';this.flashActive=false;this.el=null;this.w=300;this.h=510;this.key=null;this.mailer=null;this.ajaxErrorHandler=null;this.ajaxErrorCode=null;this.ajaxErrorMessage=null;this.onSwFlash=null;this.onTurnOff=null;this.turnOffLevel=2;this.prod=this.flash=null;this.params={quality:"high",scale:"noscale",wmode:"transparent",allowScriptAccess:"always",bgcolor:"#FFFFFF"};this.flashvars={};};Logoizer.prototype.initialize=function(name,wsid,element,onSuccess)
{this.setElementId(element);this.el.after(this.prod=$("<div/>").attr('id',element+'_logoizer_prod').hide().width(300));this.serverUrl=window.logoizer_serverUrl||"http://logoizer.peaksystems.com/";this.initialized=false;this.success=onSuccess;this.obtain(name,wsid);};Logoizer.prototype.setMode=function(mode){this.flashvars.mode=mode;};Logoizer.prototype.setProduct=function(data,textStatus){this.product=data;this.images=[];this.swatches=[];this.initialized=true;this.activeSW=data.imagesCol[0].name;for(var i=0;i<data.imagesCol.length;i++)
{this.swatches["i"+data.imagesCol[i].name]=new Swatch(data.imagesCol[i]);this.images[i]=this.swatches["i"+data.imagesCol[i].name];};if(typeof this.success=="function"){this.success(this);}
if((this.turnOffLevel==2)&&(this.readCookie("logoizer_flash")=="yes"))
this.switchToFlash();};Logoizer.prototype.switchToFlash=function()
{this.el.hide();this.prod.hide();this.el.after(this.flash=$("<div/>").attr('id',this.el.attr('id')+'_logoizer_flash').hide());if(typeof this.onSwFlash=="function")this.onSwFlash();this.flashvars={product:this.getActiveSwatch().id,mode:this.flashvars.mode};swfobject.embedSWF(this.serverUrl+this.flashUrl,this.flash.attr('id'),this.w,this.h,"10.0.32.18",this.serverUrl+"/expressInstall.swf",this.flashvars,this.params);this.flash.remove();this.flash=$("#"+this.flash.attr('id'));this.flashActive=true;this.setCookie("logoizer_flash","yes");};Logoizer.prototype.turnOff=function(level)
{level=level||this.turnOffLevel;this.flashActive=false;this.deactivate();if(typeof this.onTurnOff=="function")var lv2=this.onTurnOff();if(lv2){level=lv2};this.flash.remove();if(level==2)this.el.show();else{this.prod.html()?this.prod.show():this.pasteProduct()};};Logoizer.prototype.deactivate=function()
{this.setCookie("logoizer_flash","no");};Logoizer.prototype.setSwatchTemplate=function(text){this.swatch=text;};Logoizer.prototype.getSwatchTemplate=function(){return this.swatch;};Logoizer.prototype.getSwatches=function(){return this.swatches;};Logoizer.prototype.getActiveSwatch=function(){return this.swatches["i"+this.activeSW];};Logoizer.prototype.setActiveSwatch=function(name){if(this.swatches["i"+name]!=undefined){this.activeSW=name;return true;}
return false;};Logoizer.prototype.click=function(name){var r=this.setActiveSwatch(name);if(r){this.pasteProduct();}
return r;};Logoizer.prototype.pasteSwatches=function(id){var el=$(id);el.empty();for(var i in this.swatches){if(typeof this.swatches[i]=="function")break;str=this.swatch.replace(/%name%/g,this.swatches[i].name);str=str.replace("%url%",this.swatches[i].getImageUrl());el.append(str);}};Logoizer.prototype.setElementId=function(id){if($('#'+id)){this.el=$('#'+id);}};Logoizer.prototype.pasteProduct=function(id){this.turnOffLevel=1;if(this.flashActive){try{this.flash[0].activateProduct(this.getActiveSwatch().id);}catch(e){alert("ups "+e)};return false;}
if(!id&&!this.el)return false;if(id)this.setElementId(id);if(this.readCookie("logoizer_flash")=="yes")
{this.switchToFlash();return;}
this.prod.empty().append('<img src="'+this.swatches["i"+this.activeSW].getMresUrl()+'">');var cl=$(this.flashSwitcher);this.prod.append(cl);cl.click(function(){$.logoizer.switchToFlash();return false});this.prod.show();this.el.hide();};Logoizer.prototype.obtain=function(name,wsid){var f="m"+(+new Date());window[f]=function(data,textStatus){$.logoizer.setProduct(data,textStatus)};jQuery.ajax({type:'GET',dataType:'script',success:function(data,textStatus){try{delete window[f];}catch(e){};},url:this.serverUrl+"product/"+name+"/"+wsid+"/"+f});};Logoizer.prototype.email=function(){if(!this.flashActive){alert("Activate flash first please!");return;};this.emailDialog();};Logoizer.prototype.save=function(){if(!this.flashActive){alert("Activate flash first please!");return;};try{this.el[0].save();}catch(e)
{alert("Error while saving your customization, please notify site owner about this error.")}};Logoizer.prototype.ajaxError=function(code,message){if(typeof this.ajaxErrorHandler=="function"){this.ajaxErrorHandler(code,message)}else{switch(code){case"100":this.displayError("Not enough parameters");break;case"200":this.displayError("The product is not customizable at this time");break;default:this.displayError(message);}}};Logoizer.prototype.displayError=function(message){this.el.append('<div id="logoizer_error_message">'+message+'</div>');}
Logoizer.prototype.saveDone=function(key){this.key=key;this.emailDialog();};Logoizer.prototype.emailDialog=function(){if(!this.mailer){this.mailer=new Mailer();}
this.mailer.initialize();};Logoizer.prototype.emailDone=function(){this.mailer.done();};Logoizer.prototype.readCookie=function(name){if(!name){name="symfony";}
var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)
{return c.substring(nameEQ.length,c.length);}}
return null;};Logoizer.prototype.setCookie=function(name,value){var newCookie=name+"="+value+"; path=/;";window.document.cookie=newCookie;};function Mailer(){this.layout='<div id="logoizer-mailer" title="E-mail dialog"><div id="logoizer-mailer-content"></div></div>';this.initialized=false;this.reload=true;this.buttons={Send:function(){$.logoizer.mailer.submit()},Cancel:function(){$(this).dialog('close');}};this.fields={from:'#email_from_email',to:'#email_to_email',subject:'#email_subject',message:'#email_message',copy:"#email_send_copy",key:"#email_key",csrf:"#email__csrf_token"};return this;}
Mailer.prototype.initialize=function(){if(!this.initialized){$('body').append(this.layout);$("#logoizer-mailer").dialog({bgiframe:true,modal:true,height:500,width:680,buttons:this.buttons});this.initialized=true;}else{$("#logoizer-mailer").dialog('open');$("#logoizer-mailer").dialog('option','buttons',this.buttons);}
var f="m"+(+new Date());window[f]=function(data,textStatus){jQuery('#logoizer-mailer-content').html(data.data);};jQuery.ajax({type:'GET',dataType:'script',success:function(data,textStatus){try{delete window[f];}catch(e){};},url:$.logoizer.serverUrl+"mail/"+f});}
Mailer.prototype.done=function(){$("#logoizer-mailer").dialog('option','buttons',{"Close":function(){$(this).dialog('close');}});}
Mailer.prototype.submit=function(){var hasError=false;var emailReg=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;var emailFromVal=$(this.fields.from).val();$(this.fields.from).removeClass('ui-state-error');if(emailFromVal==''){$(this.fields.from).addClass('ui-state-error');hasError=true;}else if(!emailReg.test(emailFromVal)){$(this.fields.from).addClass('ui-state-error');hasError=true;}
$(this.fields.to).removeClass('ui-state-error');var emailToVal=$(this.fields.to).val();if(emailToVal==''){$(this.fields.to).addClass('ui-state-error');hasError=true;}else{var emails=emailToVal.split(",");for(var i=0;i<emails.length;i++){var addr=$.trim(emails[i]);if(!emailReg.test(addr)){$(this.fields.to).addClass('ui-state-error');hasError=true;}}}
var subjectVal=$(this.fields.subject).val();$(this.fields.subject).removeClass('ui-state-error');if(subjectVal==''){$(this.fields.subject).addClass('ui-state-error');hasError=true;}
var messageVal=$(this.fields.message).val();$(this.fields.message).removeClass('ui-state-error');if(messageVal==''){$(this.fields.message).addClass('ui-state-error');hasError=true;}
if(hasError)return false;var d={};d[$(this.fields.from).attr("name")]=emailFromVal;d[$(this.fields.to).attr("name")]=emailToVal;d[$(this.fields.subject).attr("name")]=subjectVal;d[$(this.fields.message).attr("name")]=messageVal;d[$(this.fields.copy).attr("name")]=$(this.fields.copy).attr("checked")?"on":"off";d[$(this.fields.key).attr("name")]=$.logoizer.key;d[$(this.fields.csrf).attr("name")]=$(this.fields.csrf).val();var f="m"+(+new Date());window[f]=function(data,textStatus){jQuery('#logoizer-mailer-content').html(data.data);$.logoizer.emailDone();};var url=$("#logoizer-mailer-form").attr("action")+f;jQuery.ajax({type:'GET',dataType:'script',success:function(data,textStatus){try{delete window[f];}catch(e){};},url:url,data:d});}
$.logoizer=new Logoizer();})(jQuery);function readLogoizerCookie(){var v=$.logoizer.readCookie("logoizer_session");if(!v){var v="c"+(+new Date());$.logoizer.setCookie("logoizer_session",v);}
return v;}
function logoizer_saveDone(key)
{$.logoizer.saveDone(key);}
function logoizer_email(key)
{$.logoizer.saveDone(key);}
function logoizer_close()
{$.logoizer.turnOff();}
