
var left={};var right={};var mask_id=1234;var pp=-1;var loaded_pp_name=null;var img_to_load=-1;var action_enabled=false;var upload_a=null;var init_images_available=false;var min_zoom=0.1;var max_zoom=5;var drag=false;var zoom_border_dpi=112.5;var mask_width_inches=5.707;var qualy_level1=150;var qualy_level2=75;left.div="#left";right.div="#right";right.mask_url="/images/framemasks/semi_1234_500x125_r.png";left.mask_url="/images/framemasks/semi_1234_500x125_l.png";right.userImage=null;left.userImage=null;var maskImage=new Image();maskImage.src=left.mask_url;function collapse_ctls(side){$(side.div+" .mask_plain, "+side.div+" .move_box, "+side.div+" .zoom_controls, "+side.div+" .rotate_controls, "+side.div+" .flip_control, "+side.div+" .quality_text").stop(false,true);if(!drag){$(side.div+" .mask_plain").fadeIn('slow');$(side.div+" .move_box").fadeOut('slow');$(side.div+" .zoom_controls").fadeOut('slow');$(side.div+" .rotate_controls").fadeOut('slow');$(side.div+" .flip_control").fadeOut('slow');$(side.div+" .quality_text").fadeIn('slow');}}
function collapse_ctls_l(){collapse_ctls(left);}
function collapse_ctls_r(){collapse_ctls(right);}
function expand_ctls(side){if(side.frame){$(side.div+" .mask_plain, "+side.div+" .move_box, "+side.div+" .zoom_controls, "+side.div+" .rotate_controls, "+side.div+" .flip_control, "+side.div+" .quality_text").stop(false,true);if(!drag){$(side.div+" .mask_plain").fadeOut('fast');$(side.div+" .move_box").fadeIn('fast');$(side.div+" .zoom_controls").fadeIn('fast');$(side.div+" .rotate_controls").fadeIn('fast');$(side.div+" .flip_control").fadeIn('fast');$(side.div+" .quality_text").fadeOut(0);}}}
function expand_ctls_l(){expand_ctls(left);}
function expand_ctls_r(){expand_ctls(right);}
function enable_action(enable){if(action_enabled&&!enable){action_enabled=false;if(upload_a){upload_a.disable();}}
if(!action_enabled&&enable){action_enabled=true;if(upload_a){upload_a.enable();}}
$("#save_button")[0].disabled=(!action_enabled||pp!=-1||!init_images_available);$("#upload_button")[0].disabled=!action_enabled;$("#save_order_button").toggleClass("disabled",!action_enabled||!init_images_available);$("body").toggleClass("action_wait",!action_enabled);}
function set_pp(new_pp){if(new_pp==-1){$("#save_order_button").text(text_order_save_button);}
if(new_pp!=-1&&pp==-1){$("#save_order_button").text(text_order_button);if(!init_images_available){init_images_available=true;}}
pp=new_pp;$("#save_button")[0].disabled=(!action_enabled||pp!=-1);}
function unset_pp(){set_pp(-1);}
function get_quality_level(side){if(side.userImage){qualy=side.originalw/(side.current_zoom*mask_width_inches);if(qualy>=qualy_level1){return 0;}
if(qualy<qualy_level1&&qualy>=qualy_level2){return 1;}
if(qualy<qualy_level2){return 2;}}
return-1;}
function set_qualy(side){switch(get_quality_level(side)){case 0:$(side.div+" .quality_text").html("<i>"+img_quality_ok+"</i>");break;case 1:$(side.div+" .quality_text").html("<i>"+img_quality_not_sharp+"</i>");break;case 2:$(side.div+" .quality_text").html("<i>"+img_quality_bad+"</i>");break;}}
function reset_sliders(side){$(side.div+" .zoom_slider").slider({min:min_zoom,max:max_zoom,step:0.1,value:1,slide:function(event,ui){if(side.frame){side.frame.zoom(ui.value,true,side);}}});$(side.div+" .rotate_slider").slider({orientation:"vertical",min:-180,max:180,step:1,value:0,slide:function(event,ui){rotate(ui.value,true,side);}});$(side.div+" .rotate_slider .ui-slider-handle").html("0 &deg;");$(side.div+" .zoom_slider .ui-slider-handle").html(zoom_slider_text);$(side.div+" .rotate_slider").slider("option","value",0);$(side.div+" .zoom_slider").slider("option","value",1);}
function load_image(new_image_url,side){load_image(new_image_url,side,function(s){});}
function load_image_raphael(new_image_url,side){if(side.frame){side.frame.remove();}
$(side.div+" .first_text").hide();side.image_rotation=0;side.current_zoom=1;side.mirror=false;side.image_url=new_image_url;if(!side.paper){side.paper=Raphael($(side.div+" .notepad")[0],maskImage.width-2,maskImage.height-2);}
side.preZoom=maskImage.width/side.userImage.width;side.position_x=0;side.position_y=0;side.image_x=0;side.image_y=0;side.frame=side.paper.image(side.image_url,0,(maskImage.height-2-side.userImage.height*side.preZoom)/2,side.userImage.width*side.preZoom,side.userImage.height*side.preZoom);reset_sliders(side);expand_ctls(side);$("#uploaded_images").load("image_list");$("#saved_designs").load("design_list");}
function load_image(new_image_url,side,done_call){unset_pp();$(side.div+" .load_image").show();side.userImage=new Image();side.userImage.onload=function(){load_image_raphael(new_image_url,side);$(side.div+" .load_image").hide();var id={};id.image_id=new_image_url.substring(10,46);$.get('originalw',id,function(t,s){side.originalw=parseInt(t,10);var z_warn=Math.round(((side.originalw/(zoom_border_dpi*mask_width_inches)-min_zoom)/(max_zoom-min_zoom))*100);if(z_warn>100){z_warn=99;}
if(z_warn<0){z_warn=0;}
$(side.div+" .zoom_slider").css("background-image","url(/static/zoom_slide/"+z_warn+".png)");set_qualy(side);},"text");if(done_call){done_call(side);}};side.userImage.src=new_image_url;}
function rotate(new_rotation,isAbsolute,side){if(side.frame){unset_pp();var new_rotation=(new_rotation+360)%360;side.frame.rotate(new_rotation,isAbsolute);if(isAbsolute){side.image_rotation=new_rotation;}
else{side.image_rotation=(new_rotation+side.image_rotation)%360;}
if(side.image_rotation<=180){slider_rotation=side.image_rotation;}
else{slider_rotation=side.image_rotation-360;}
$(side.div+" .rotate_slider").slider("option","value",(slider_rotation));$(side.div+" .rotate_slider .ui-slider-handle").html(slider_rotation+"&deg;");}}
Raphael.el.zoom=function(new_zoom,isAbsolute,side)
{unset_pp();var new_scale=new_zoom;if(!isAbsolute){new_scale=Math.round((side.current_zoom+new_zoom)*100)/100;}
if(new_scale<min_zoom){new_scale=min_zoom;}
if(new_scale>max_zoom){new_scale=max_zoom;}
this.scale(new_scale,new_scale);side.current_zoom=new_scale;$(side.div+" .zoom_slider").slider("option","value",new_scale);set_qualy(side);};function move_side(side,x,y){unset_pp();side.image_x=side.image_x+x;side.image_y=side.image_y+y;side.frame.translate(x,y);side.position_x=side.image_x/maskImage.width;side.position_y=-side.image_y/maskImage.height;}
function mousedown_left(event){if(drag){return false;}
drag=true;drag_side=left;left.mouse_x=event.pageX;left.mouse_y=event.pageY;}
function mousedown_right(event){if(drag){return false;}
drag=true;drag_side=right;right.mouse_x=event.pageX;right.mouse_y=event.pageY;}
function load_design_values(side,image_id,rotation,zoom,deltax,deltay,mirror,pp_id,do_collapse){var m='';if(mirror){m='_m';}
load_image("/imagespu/"+image_id+m+".jpeg",side,function(s){s.mirror=mirror;s.frame.zoom(zoom,true,s);rotate(-rotation,true,s);move_side(s,deltax*maskImage.width,-deltay*maskImage.height);img_to_load--;if(img_to_load==0){if(!init_images_available&&left.userImage&&right.userImage){init_images_available=true;}
set_pp(pp_id);enable_action(true);}
if(do_collapse){collapse_ctls(side);}});}
function flip(side){if(action_enabled&&side.frame){side.mirror=!side.mirror;enable_action(false);img_to_load=1;load_design_values(side,side.image_url.substring(10,46),-360+side.image_rotation,side.current_zoom,side.position_x,side.position_y,side.mirror,-1,false);}}
function mirror_copy(src,dest){if(action_enabled&&src.frame){enable_action(false);img_to_load=1;load_design_values(dest,src.image_url.substring(10,46),-360+src.image_rotation,src.current_zoom,-src.position_x,src.position_y,!src.mirror,-1,true);}}
function save_design(on_success){if(left.image_url&&right.image_url&&action_enabled&&pp==-1){enable_action(false);var save_object={};save_object.l_image_id=left.image_url.substring(10,46);save_object.l_rotation=360-left.image_rotation;save_object.l_zoom=left.current_zoom;save_object.l_deltax=left.position_x;save_object.l_deltay=left.position_y;save_object.l_mirror=left.mirror?1:0;save_object.r_image_id=right.image_url.substring(10,46);save_object.r_rotation=360-right.image_rotation;save_object.r_zoom=right.current_zoom;save_object.r_deltax=right.position_x;save_object.r_deltay=right.position_y;save_object.r_mirror=right.mirror?1:0;save_object.name=$('#designname').val();save_object.mask_id=mask_id;$.facebox(function(){$.get("restricted/save",save_object,function(body,status){$("#saved_designs").load("design_list");if(isNaN(body)){if(design_save_error[body]){$.facebox('<div class="errormessage">'+design_save_error[body]+'</div>');}
else{$(document).trigger("close.facebox");}}
else{set_pp(parseInt(body));$.facebox(design_saved_confirmation_msg);if(on_success){$(document).bind("close.facebox",function(e){on_success();return true;});}}
enable_action(true);});});}
else{if(!left.image_url||!right.image_url){$.facebox('<div class="errormessage">'+warn_missing_image+'</div>');}}
return true;}
function save_design_n(){return save_design(null);}
function check_loaded_name_change(val){if(pp!=-1){if(loaded_pp_name!=val){unset_pp();}}}
function load_design(id){if(action_enabled){var req={};req.personal_print_id=id;$.get("load",req,function(body,status){var val_list=body.split(" ");if(val_list.length>=16){enable_action(false);img_to_load=2;for(i=1;i<5;i++){val_list[i]=parseFloat(val_list[i]);}
for(i=7;i<11;i++){val_list[i]=parseFloat(val_list[i]);}
load_design_values(right,val_list[6],val_list[7],val_list[8],val_list[9],val_list[10],val_list[11]=="1",parseInt(val_list[12],10),true);load_design_values(left,val_list[0],val_list[1],val_list[2],val_list[3],val_list[4],val_list[5]=="1",parseInt(val_list[12],10),true);var name=val_list[15];var i=16;while(val_list.length>i){name+=" "+val_list[i];i++;}
loaded_pp_name=name;$("#designname").val(name);mask_id=parseInt(val_list[13]);}});}}
function remove_design(id){if(action_enabled){enable_action(false);var o={};o.personal_print_id=id
$.get('restricted/delete',o,function(body,status){$("#saved_designs").load('design_list');enable_action(true);if(body=='error'){$.facebox('<div class="errormessage">'+design_delete_error+'</div>');}});}}
function remove_image(id){if(action_enabled){enable_action(false);var o={};o.image_id=id
$.get('/userimage/delete',o,function(body,status){$("#uploaded_images").load("image_list");enable_action(true);if(body=='error'){$.facebox('<div class="errormessage">'+img_delete_error+'</div>');}});}}
function show_preview(side){data={};if(side.div=="#left"){data.side="l";}
else{data.side="r";}
data.image_id=side.image_url.substring(10,46);data.rotation=360-side.image_rotation;data.zoom=side.current_zoom;data.deltax=side.position_x;data.deltay=side.position_y;data.mirror=side.mirror?1:0;data.mask_id=mask_id;jQuery.facebox({image:"/design/restricted/preview?"+$.param(data)})}
function keepalive(){$.get("restricted/ping");window.setTimeout("keepalive()",keepalivetime);}
function next_step(){if(pp!=-1){enable_action(false);var next=$("#order_form")[0];next.personal_print_id.value=pp;next.submit();}}
window.onload=function(){$("#left .maskimage").attr("src",left.mask_url);$("#right .maskimage").attr("src",right.mask_url);reset_sliders(left);reset_sliders(right);$("#uploaded_images").load("image_list");$("#saved_designs").load("design_list");$("a[rel*=facebox]").facebox();$(".load_image").hide();$(".mask_plain").hide();$("#left").droppable({accept:".user_image",drop:function(event,ui){if(action_enabled){enable_action(false);load_image("/imagespu/"+ui.draggable.attr("id")+".jpeg",left,function(){if(!init_images_available&&right.userImage){init_images_available=true;}
enable_action(true);});}}});$("#right").droppable({accept:".user_image",drop:function(event,ui){if(action_enabled){enable_action(false);load_image("/imagespu/"+ui.draggable.attr("id")+".jpeg",right,function(){if(!init_images_available&&left.userImage){init_images_available=true;}
enable_action(true);});}}});upload_a=new AjaxUpload(jQuery("#upload_button"),{action:"/userimage/upload",name:"file",onSubmit:function(file,ext){this.disable();$('#upload_wait_img').css('display','block');},onComplete:function(file,response){this.enable();$("#uploaded_images").load("image_list");$("#saved_designs").load("design_list");if(response!==''){msg=img_load_error.error;if(img_load_error[response]){msg=img_load_error[response];}
$.facebox('<div class="errormessage">'+msg+'</div>');}}});$(".maskimage").mousedown(function(event){if(event.preventDefault)
{event.preventDefault();}});$(".move_b_left").mousedown(function(event){if(event.preventDefault){event.preventDefault();}});$(".move_b_right").mousedown(function(event){if(event.preventDefault){event.preventDefault();}});$(".move_b_up").mousedown(function(event){if(event.preventDefault){event.preventDefault();}});$(".move_b_down").mousedown(function(event){if(event.preventDefault){event.preventDefault();}});$(".mask_plain").mousedown(function(event){if(event.preventDefault){event.preventDefault();}});$("#left .mask").mousedown(mousedown_left);$("#left .mask_plain").mousedown(mousedown_left);$("#right .mask").mousedown(mousedown_right);$("#right .mask_plain").mousedown(mousedown_right);$(document).mouseup(function(){drag=null;});$(document).mousemove(function(event){if(drag){unset_pp();var mouse_move_x=event.pageX-drag_side.mouse_x;var mouse_move_y=event.pageY-drag_side.mouse_y;drag_side.mouse_x=event.pageX;drag_side.mouse_y=event.pageY;move_side(drag_side,mouse_move_x,mouse_move_y);return false;}});$("#left .mask").mousewheel(function(event,delta){if(delta<0){left.frame.zoom(-0.1,false,left);}
else{left.frame.zoom(0.1,false,left);}
event.preventDefault();});$("#right .mask").mousewheel(function(event,delta){if(delta<0){right.frame.zoom(-0.1,false,right);}
else{right.frame.zoom(0.1,false,right);}
event.preventDefault();});$("#right").mouseleave(collapse_ctls_r);$("#right").mouseenter(expand_ctls_r);$("#left").mouseleave(collapse_ctls_l);$("#left").mouseenter(expand_ctls_l);$('#save_button').click(save_design_n);$("#save_order_button").click(function(){if(pp==-1){save_design(next_step);}
else{next_step();}
return true;});enable_action(true);collapse_ctls_l();collapse_ctls_r();if(init_design!=-1){load_design(init_design);}
keepalive();}