if(!Control){var Control={}}Control.Slider=Class.create({initialize:function(a,c,d){var b=this;if(Object.isArray(a)){this.handles=a.collect(function(f){return $(f)})}else{this.handles=[$(a)]}this.track=$(c);this.options=d||{};this.axis=this.options.axis||"horizontal";this.increment=this.options.increment||1;this.step=parseInt(this.options.step||"1");this.range=this.options.range||$R(0,1);this.value=0;this.values=this.handles.map(function(){return 0});this.spans=this.options.spans?this.options.spans.map(function(e){return $(e)}):false;this.options.startSpan=$(this.options.startSpan||null);this.options.endSpan=$(this.options.endSpan||null);this.restricted=this.options.restricted||false;this.maximum=this.options.maximum||this.range.end;this.minimum=this.options.minimum||this.range.start;this.alignX=parseInt(this.options.alignX||"0");this.alignY=parseInt(this.options.alignY||"0");this.trackLength=this.maximumOffset()-this.minimumOffset();this.handleLength=this.isVertical()?(this.handles[0].offsetHeight!=0?this.handles[0].offsetHeight:this.handles[0].style.height.replace(/px$/,"")):(this.handles[0].offsetWidth!=0?this.handles[0].offsetWidth:this.handles[0].style.width.replace(/px$/,""));this.active=false;this.dragging=false;this.disabled=false;if(this.options.disabled){this.setDisabled()}this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):false;if(this.allowedValues){this.minimum=this.allowedValues.min();this.maximum=this.allowedValues.max()}this.eventMouseDown=this.startDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.update.bindAsEventListener(this);this.handles.each(function(f,e){e=b.handles.length-1-e;b.setValue(parseFloat((Object.isArray(b.options.sliderValue)?b.options.sliderValue[e]:b.options.sliderValue)||b.range.start),e);f.makePositioned().observe("mousedown",b.eventMouseDown)});this.track.observe("mousedown",this.eventMouseDown);document.observe("mouseup",this.eventMouseUp);document.observe("mousemove",this.eventMouseMove);this.initialized=true},dispose:function(){var a=this;Event.stopObserving(this.track,"mousedown",this.eventMouseDown);Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);this.handles.each(function(b){Event.stopObserving(b,"mousedown",a.eventMouseDown)})},setDisabled:function(){this.disabled=true},setEnabled:function(){this.disabled=false},getNearestValue:function(a){if(this.allowedValues){if(a>=this.allowedValues.max()){return(this.allowedValues.max())}if(a<=this.allowedValues.min()){return(this.allowedValues.min())}var c=Math.abs(this.allowedValues[0]-a);var b=this.allowedValues[0];this.allowedValues.each(function(d){var e=Math.abs(d-a);if(e<=c){b=d;c=e}});return b}if(a>this.range.end){return this.range.end}if(a<this.range.start){return this.range.start}return a},setValue:function(b,a){if(!this.active){this.activeHandleIdx=a||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles()}a=a||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((a>0)&&(b<this.values[a-1])){b=this.values[a-1]}if((a<(this.handles.length-1))&&(b>this.values[a+1])){b=this.values[a+1]}}b=this.getNearestValue(b);this.values[a]=b;this.value=this.values[0];this.handles[a].style[this.isVertical()?"top":"left"]=this.translateToPx(b);this.drawSpans();if(!this.dragging||!this.event){this.updateFinished()}},setValueBy:function(b,a){this.setValue(this.values[a||this.activeHandleIdx||0]+b,a||this.activeHandleIdx||0)},translateToPx:function(a){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(a-this.range.start))+"px"},translateToValue:function(a){return((a/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start)},getRange:function(b){var a=this.values.sortBy(Prototype.K);b=b||0;return $R(a[b],a[b+1])},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX)},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0?this.track.offsetWidth:this.track.style.width.replace(/px$/,""))-this.alignX)},isVertical:function(){return(this.axis=="vertical")},drawSpans:function(){var a=this;if(this.spans){$R(0,this.spans.length-1).each(function(b){a.setSpan(a.spans[b],a.getRange(b))})}if(this.options.startSpan){this.setSpan(this.options.startSpan,$R(0,this.values.length>1?this.getRange(0).min():this.value))}if(this.options.endSpan){this.setSpan(this.options.endSpan,$R(this.values.length>1?this.getRange(this.spans.length-1).max():this.value,this.maximum))}},setSpan:function(b,a){if(this.isVertical()){b.style.top=this.translateToPx(a.start);b.style.height=this.translateToPx(a.end-a.start+this.range.start)}else{b.style.left=this.translateToPx(a.start);b.style.width=this.translateToPx(a.end-a.start+this.range.start)}},updateStyles:function(){this.handles.each(function(a){Element.removeClassName(a,"selected")});Element.addClassName(this.activeHandle,"selected")},startDrag:function(d){if(Event.isLeftClick(d)){if(!this.disabled){this.active=true;var a=Event.element(d);var e=[Event.pointerX(d),Event.pointerY(d)];var c=a;if(c==this.track){var b=Position.cumulativeOffset(this.track);this.event=d;this.setValue(this.translateToValue((this.isVertical()?e[1]-b[1]:e[0]-b[0])-(this.handleLength/2)));var b=Position.cumulativeOffset(this.activeHandle);this.offsetX=(e[0]-b[0]);this.offsetY=(e[1]-b[1])}else{while((this.handles.indexOf(a)==-1)&&a.parentNode){a=a.parentNode}if(this.handles.indexOf(a)!=-1){this.activeHandle=a;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var b=Position.cumulativeOffset(this.activeHandle);this.offsetX=(e[0]-b[0]);this.offsetY=(e[1]-b[1])}}}Event.stop(d)}},update:function(a){if(this.active){if(!this.dragging){this.dragging=true}this.draw(a);if(Prototype.Browser.WebKit){window.scrollBy(0,0)}Event.stop(a)}},draw:function(b){var c=[Event.pointerX(b),Event.pointerY(b)];var a=Position.cumulativeOffset(this.track);c[0]-=this.offsetX+a[0];c[1]-=this.offsetY+a[1];this.event=b;this.setValue(this.translateToValue(this.isVertical()?c[1]:c[0]));if(this.initialized&&this.options.onSlide){this.options.onSlide(this.values.length>1?this.values:this.value,this)}},endDrag:function(a){if(this.active&&this.dragging){this.finishDrag(a,true);Event.stop(a)}this.active=false;this.dragging=false},finishDrag:function(a,b){this.active=false;this.dragging=false;this.updateFinished()},updateFinished:function(){if(this.initialized&&this.options.onChange){this.options.onChange(this.values.length>1?this.values:this.value,this)}this.event=null}});

var overlay_queue_id=0;function newOverlayQueueId(){return String(overlay_queue_id++)}var Overlay=Class.create({overlay_element:null,start_load:null,stop_load:null,showing:0,fade_time:0,initialize:function(b,a){this.fade_time=a;this.overlay_element=$(b);this.overlay_element.hide();this.queue_id=newOverlayQueueId();this.show_observers=$A([]);this.hide_observers=$A([])},remove:function(){},startShow:function(){this.appear()},show:function(b,a){if(a){this.showing+=b;this.startShow()}else{if(this.fade_time){this.stopShow.bind(this).delay(this.fade_time,b)}else{this.stopShow(b)}}},stopShow:function(a){this.showing-=a;if(this.showing<=0){this.fade()}},fade:function(){this.clearEffectQueue();new Effect.Opacity(this.overlay_element,{duration:0.2,to:0,afterFinish:this.hide.bind(this),queue:{position:"end",scope:this.queue_id}})},hide:function(){this.overlay_element.hide();this.notifyHideObservers()},appear:function(){this.clearEffectQueue();this.overlay_element.show();new Effect.Opacity(this.overlay_element,{duration:0.2,to:1,queue:{position:"end",scope:this.queue_id}});this.notifyShowObservers()},clearEffectQueue:function(){var a=Effect.Queues.get(this.queue_id);a.each(function(b){b.cancel()})},isVisible:function(){return this.overlay_element.hasClassName("loading")},observeShow:function(a){this.show_observers.push(a)},stopObservingShow:function(a){this.show_observers=this.show_observers.without(a)},notifyShowObservers:function(){this.show_observers.each(function(a){a(this)}.bind(this))},observeHide:function(a){this.hide_observers.push(a)},stopObservingHide:function(a){this.hide_observers=this.hide_observers.without(a)},notifyHideObservers:function(){this.hide_observers.each(function(a){a(this)}.bind(this))}});

if (!window.I18n) { I18n = {}; }

I18n.defaultLocale = "en";

I18n.translations = {"en-GB": {"about": {"intro_text": "Click Business Cards is an Australian business based in Sydney's north dedicated to the manufacturing of business cards marketed through our easy to use website interface. We provide the highest quality business cards available today using the most modern offset printing equipment.", "gavin_email": "gavin@clickbusinesscards.com.au", "history_item_4": "Lowest prices for quality cards", "history_title": "History", "manager": "Manager", "history_text": "Our history has been in the software development and printing industry since 1981. In 1996 we were the first in the world to launch a website for the ordering of business cards over the internet. Today our business is the largest supplier of business cards in Australia handling hundreds of orders a day throughout the world.", "history_intro": "We serve both national and international markets with the...", "manager_name": "Paul Sommer", "management_title": "Management", "history_item_1": "Fasted turnaround times possible", "manager_email": "paul@clickbusinesscards.com", "manage_dir": "Managing Director", "history_item_2": "Highest quality business cards in the marketplace", "more_info": "More Information", "gavin": "Gavin Tooley", "history_item_3": "Most friendly and efficient service", "more_info_text": "If you would like more information about us and our printing process, you may review our list of Frequently Asked Questions. Or for more contact details, visit our Contact Us page."}, "uploads": {"dimension_error": "The image you uploaded is too big. Image width and height must be less than {{max_width}} pixels.", "tip_3": "A Squiz Card is 55mm x 30mm, 1mm is then trimmed off each edge leaving 53mm x 28mm.", "uploads": "Your images", "upload_file": "Choose a file to upload", "title": "Image Manager", "process_attribute": " ", "tip_4": "Please flatten PDF files and convert fonts to outlines or curves.", "uploading": "Uploading your image...", "size_error": "The image you uploaded is too big. Files can be a maximum of 2 megabytes in size.", "process_error": "We're having a bit of trouble with your image. Does it comply with our upload tips? If you're having trouble you can send the image to <a href='/squiz_cards_home/support' target='_blank'>support</a> and we can take a look for you.</a>", "tip_5": "If this is all too much, you can send your image to <a href='/squiz_cards_home/support' target='_blank'>support</a> and we'll help you out.", "uploads_empty": "Just upload an image and we'll keep it here for you to use on your card.", "content_type_attribute": " ", "template_uploads": "Template images", "content_type_error": "The file you uploaded is not a JPG, PDF, PNG, GIF or TIFF file.", "tip_1": "You can upload JPG, PDF, PNG, GIF & TIFF formats, max file size of 2MB, max width/height of 2000 pixels.", "dimension_attribute": " ", "tip_2": "If your images look pixelated once uploaded we recommend uploading images at a resolution of 400DPI.", "size_attribute": " "}, "squiz_templates": {"favourite_removed": "Removed the favourite from your collection", "favourites_see_all": "See all favourites...", "colour_heading": "Narrow by colour", "favourite_added": "Added the favourite to your collection", "favourite_exits": "That template is already in your favourites", "favourite_not_added": "Sorry something went wrong.", "favourites_heading": "Recent favourites", "favourite_not_found": "Can't find the favourite in your collection", "favourites_empty": "You haven't added any favourites yet! Click on the heart symbol on a card and they'll be stored here for easy access."}, "activerecord": {"errors": {"messages": {"exclusion": "is already taken", "not_a_number": "isn't a number", "greater_than_or_equal_to": "must be greater than or equal to {{count}}", "less_than": "must be less than {{count}}", "inclusion": "isn't included in the list", "odd": "must be odd", "equal_to": "must be equal to {{count}}", "less_than_or_equal_to": "must be less than or equal to {{count}}", "even": "must be even", "confirmation": "doesn't match its confirmation", "greater_than": "must be greater than {{count}}", "wrong_length": "isn't the right length (gotta be {{count}} characters)", "blank": "must be given", "taken": "isn't available", "accepted": "must be accepted", "too_short": "is too short (no less than {{count}} characters)", "invalid": "isn't valid", "too_long": "is too long (no more than {{count}} characters)", "empty": "must be given"}, "template": {"body": "Please check the following fields:", "header": {"one": "Couldn't save this {{model}}: 1 error", "other": "Couldn't save this {{model}}: {{count}} errors."}}}}, "date": {"month_names": [null, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], "abbr_day_names": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], "order": ["year", "month", "day"], "formats": {"long_ordinal": {}, "only_day": "%e", "short": "%e %b", "default": "%d/%m/%Y", "long": "%e %B, %Y"}, "day_names": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], "abbr_month_names": [null, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]}, "order": {"start_from_scratch": "or, create a new card from scratch", "or": "or, {{link}}.", "copy_card": "Choose a card to copy...", "card_already_in_cart": "Hey! That card is already in your shopping cart.", "create_another_card_description": "You can copy one of your existing cards", "card_in_cart": "Your card is now ready and waiting in your shopping cart.", "create_another_card_title": "Add another card to your cart  "}, "squiz_home": {"details_title": "details", "shipping_title": "shipping", "details": "53mm x 28mm waterproof<br/>round corners", "hero": "Squiz Cards are the small, fun, waterproof way to give out your contact info to people you meet. <b>It's who you are!</b>", "shipping": "shipped world wide<br/>within 2 weeks!", "price_title": "how much?", "price": "{{quantity}} full colour Squiz Cards<br/>for just {{price}}"}, "datetime": {"distance_in_words": {"x_days": {"one": "1 day", "other": "{{count}} days"}, "less_than_x_minutes": {"zero": "less than a minute", "one": "less than a minute", "other": "less than {{count}} minutes"}, "about_x_months": {"one": "about 1 month", "other": "about {{count}} months"}, "x_minutes": {"one": "1 minute", "other": "{{count}} minutes"}, "x_months": {"one": "1 month", "other": "{{count}} months"}, "less_than_x_seconds": {"zero": "less than a second", "one": "less than a second", "other": "less than {{count}} seconds"}, "about_x_years": {"one": "about 1 year", "other": "about {{count}} years"}, "half_a_minute": "half a minute", "x_seconds": {"one": "1 second", "other": "{{count}} seconds"}, "over_x_years": {"one": "over 1 year", "other": "over {{count}} years"}, "about_x_hours": {"one": "about 1 hour", "other": "about {{count}} hours"}}}, "wysiwyg": {"font": "font", "customise_layout": "Customise this back design for only {{price}} per {{quantity}} cards!", "remove_customise_confirm": "Are you sure you want to remove your back design customisations?  You will lose any unsaved changes to the back design by clicking OK.", "style": "style", "colour": "colour", "alignment": "alignment", "size": "size", "empty_text": "Nothing on this side yet!", "text_shadow_effect": "shadow colour, size and position"}, "home": {"fast_delivery": "Fast Delivery", "testimonial_1": "'I was utterly gob smacked at the quality and speed at which this whole process occured.'", "learn_more": "Learn more", "upload_artwork": "Upload your artwork", "start_free_account": "Start your own Click account free", "title": "Business cards made online.", "fast_delivery_txt": "We ships cards in 24hrs worldwide. ", "testimonial_1_name": "&ndash; Michael, Sylvania NSW", "description": "Make business cards online, well print and ship them to you worldwide. Only {{price}} for {{quantity}} cards!", "take_tour": "Take the Tour", "upload_artwork_txt": "Upload your logo, photos or full designs.", "explore_cards": "Explore Cards", "bang_for_buck": "Bang for your buck", "testimonial_2": "'WOW! To say I'm impressed by your service is an understatement!'", "start_now": "Start now, it only takes a minute!", "amazing_templates": "Amazing Templates", "bang_for_buck_txt": "From just {{price}} for {{quantity}} cards. ", "testimonial_2_name": "&ndash; Jason, Perth WA", "easy_to_use": "Easy to Use", "amazing_templates_txt": "Thousands of stunning free templates.", "simple_reorder": "Simple to reorder", "testimonial_3": "'This was my first internet purchase and I just phoned to say how pleased I am with my cards.'", "easy_to_use_txt": "Your grandma could do it with her eyes closed.", "more": "More", "simple_reorder_txt": "Effortless reordering of cards for your whole team.", "testimonial_3_name": "&ndash; Sally, Melbourne"}, "number": {"format": {"separator": ".", "precision": 2, "delimiter": ","}, "currency": {"format": {"precision": 2, "format": "%u%n", "unit": "\u00a3"}}}, "time": {"time_with_zone": {"formats": {"default": {}}}, "datetime": {"formats": {"default": "%Y-%m-%dT%H:%M:%S%Z"}}, "am": "am", "formats": {"long_ordinal": {}, "short": "%d %b %H:%M", "only_second": "%S", "time": "%H:%M", "default": "%a %b %d %H:%M:%S %Z %Y", "long": "%d %B, %Y %H:%M"}, "pm": "pm"}, "faq": {"contact_click": "Contact our Support Team", "more_help": "Need more help?", "top_faq": "TOP CLICK FAQS", "search": "Search Click Help", "search_faqs": "Search the Click FAQs", "faqs_matching": "Showing all FAQs matching: "}, "template": {"Address 3": "Address 3", "Fax": "Fax", "Tag": "Tag", "Mobile": "Mobile", "Note": "Note", "Contact 2": "Contact 2", "Web": "Web", "Back Text": "Back Text", "Address": "Address", "Email": "Email", "Nickname": "Nickname", "Back Heading": "Back Heading", "Address 2": "Address 2", "Company": "Company", "Custom": "Custom", "Title": "Title", "Tag Line": "Tag Line", "Address2": "Address 2", "Phone": "Phone", "Name": "Name", "Contact": "Contact"}, "tour": {"getstarted": "get started", "amazingtemplates": "Templates to make your business dance.", "bangforbuck_txt": "Our print quality is 3000 dots per inch & every card we print is printed on a nice thick 325gm board for only $49.95 for 250 cards. We have multiple finishing options to choose from.", "start_free_account": "Start your own Click account free", "title": "How it works:", "easytouse": "Easy to Use.", "amazingtemplates_txt": "Our designers have been working overtime to bring you thousands of professional business card templates for free! We have tagged and categorised our collection of templates to help you in selecting . You can explore our collection of templates here.", "howitworks_1": "Create business cards on our website.", "simplereorder": "Simple to reorder.", "easytouse_txt": "Create your own business card in minutes with our online card editor. Designed to be simple while giving you complete control over the look of your card - it's so easy your grandma could create her own business card with her eyes closed. But don't take our word for it take a look for yourself.", "explore_templates": "Explore Templates", "howitworks_2": "We send them to your door.", "simplereorder_txt": "Want to order more cards? We provide you with a safe, simple and secure method to help you reorder your cards or view the details of previous orders.", "fastdelivery": "Fast delivery, worldwide.", "howitworks_3": "Do business, look good.", "uploadartwork": "Upload your own artwork.", "fastdelivery_txt": "We do our best to get your cards to you in the shortest time possible. Order before 12pm EST and we'll ship your cards on the same day. If not, don't worry, your cards will be shipped on next business day.", "upload_design": "Upload a design", "get_started": "Read more below or ", "uploadartwork_txt": "Click provides its users with templates to use but there is also the option of uploading your own artwork. If you already have a business card designed, you can upload it for free and we'll print it off.", "bangforbuck": "Bang for your buck."}, "dialog": {"close": "Go back"}, "address": {"suburb": "Town", "postcode": "Postcode", "country": "Country", "address_1": "Address 1", "state": "County", "address_2": "Address 2"}}, "en-AU": {"about": {"intro_text": "Click Business Cards is an Australian business based in Sydney's north dedicated to the manufacturing of business cards marketed through our easy to use website interface. We provide the highest quality business cards available today using the most modern offset printing equipment.", "gavin_email": "gavin@clickbusinesscards.com.au", "history_item_4": "Lowest prices for quality cards", "history_title": "History", "manager": "Manager", "history_text": "Our history has been in the software development and printing industry since 1981. In 1996 we were the first in the world to launch a website for the ordering of business cards over the internet. Today our business is the largest supplier of business cards in Australia handling hundreds of orders a day throughout the world.", "history_intro": "We serve both national and international markets with the...", "manager_name": "Paul Sommer", "management_title": "Management", "history_item_1": "Fasted turnaround times possible", "manager_email": "paul@clickbusinesscards.com", "manage_dir": "Managing Director", "history_item_2": "Highest quality business cards in the marketplace", "more_info": "More Information", "gavin": "Gavin Tooley", "history_item_3": "Most friendly and efficient service", "more_info_text": "If you would like more information about us and our printing process, you may review our list of Frequently Asked Questions. Or for more contact details, visit our Contact Us page."}, "uploads": {"dimension_error": "The image you uploaded is too big. Image width and height must be less than {{max_width}} pixels.", "tip_3": "A Squiz Card is 55mm x 30mm, 1mm is then trimmed off each edge leaving 53mm x 28mm.", "uploads": "Your images", "upload_file": "Choose a file to upload", "title": "Image Manager", "process_attribute": " ", "tip_4": "Please flatten PDF files and convert fonts to outlines or curves.", "uploading": "Uploading your image...", "size_error": "The image you uploaded is too big. Files can be a maximum of 2 megabytes in size.", "process_error": "We're having a bit of trouble with your image. Does it comply with our upload tips? If you're having trouble you can send the image to <a href='/squiz_cards_home/support' target='_blank'>support</a> and we can take a look for you.</a>", "tip_5": "If this is all too much, you can send your image to <a href='/squiz_cards_home/support' target='_blank'>support</a> and we'll help you out.", "uploads_empty": "Just upload an image and we'll keep it here for you to use on your card.", "content_type_attribute": " ", "template_uploads": "Template images", "content_type_error": "The file you uploaded is not a JPG, PDF, PNG, GIF or TIFF file.", "tip_1": "You can upload JPG, PDF, PNG, GIF & TIFF formats, max file size of 2MB, max width/height of 2000 pixels.", "dimension_attribute": " ", "tip_2": "If your images look pixelated once uploaded we recommend uploading images at a resolution of 400DPI.", "size_attribute": " "}, "squiz_templates": {"favourite_removed": "Removed the favourite from your collection", "favourites_see_all": "See all favourites...", "colour_heading": "Narrow by colour", "favourite_added": "Added the favourite to your collection", "favourite_exits": "That template is already in your favourites", "favourite_not_added": "Sorry something went wrong.", "favourites_heading": "Recent favourites", "favourite_not_found": "Can't find the favourite in your collection", "favourites_empty": "You haven't added any favourites yet! Click on the heart symbol on a card and they'll be stored here for easy access."}, "activerecord": {"errors": {"messages": {"exclusion": "is already taken", "not_a_number": "isn't a number", "greater_than_or_equal_to": "must be greater than or equal to {{count}}", "less_than": "must be less than {{count}}", "inclusion": "isn't included in the list", "odd": "must be odd", "equal_to": "must be equal to {{count}}", "less_than_or_equal_to": "must be less than or equal to {{count}}", "even": "must be even", "confirmation": "doesn't match its confirmation", "greater_than": "must be greater than {{count}}", "wrong_length": "isn't the right length (gotta be {{count}} characters)", "blank": "must be given", "taken": "isn't available", "accepted": "must be accepted", "too_short": "is too short (no less than {{count}} characters)", "invalid": "isn't valid", "too_long": "is too long (no more than {{count}} characters)", "empty": "must be given"}, "template": {"body": "Please check the following fields:", "header": {"one": "Couldn't save this {{model}}: 1 error", "other": "Couldn't save this {{model}}: {{count}} errors."}}}}, "date": {"month_names": [null, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], "abbr_day_names": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], "order": ["year", "month", "day"], "formats": {"long_ordinal": {}, "only_day": "%e", "short": "%e %b", "default": "%d/%m/%Y", "long": "%e %B, %Y"}, "day_names": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], "abbr_month_names": [null, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]}, "squiz_home": {"details_title": "details", "shipping_title": "shipping", "details": "53mm x 28mm waterproof<br/>round corners", "hero": "Squiz Cards are the small, fun, waterproof way to give out your contact info to people you meet. <b>It's who you are!</b>", "shipping": "shipped world wide<br/>within 2 weeks!", "price_title": "how much?", "price": "{{quantity}} full colour Squiz Cards<br/>for just {{price}}"}, "datetime": {"distance_in_words": {"x_days": {"one": "1 day", "other": "{{count}} days"}, "less_than_x_minutes": {"zero": "less than a minute", "one": "less than a minute", "other": "less than {{count}} minutes"}, "about_x_months": {"one": "about 1 month", "other": "about {{count}} months"}, "x_minutes": {"one": "1 minute", "other": "{{count}} minutes"}, "x_months": {"one": "1 month", "other": "{{count}} months"}, "less_than_x_seconds": {"zero": "less than a second", "one": "less than a second", "other": "less than {{count}} seconds"}, "about_x_years": {"one": "about 1 year", "other": "about {{count}} years"}, "half_a_minute": "half a minute", "x_seconds": {"one": "1 second", "other": "{{count}} seconds"}, "over_x_years": {"one": "over 1 year", "other": "over {{count}} years"}, "about_x_hours": {"one": "about 1 hour", "other": "about {{count}} hours"}}}, "wysiwyg": {"font": "font", "customise_layout": "Customise this back design for only {{price}} per {{quantity}} cards!", "remove_customise_confirm": "Are you sure you want to remove your back design customisations?  You will lose any unsaved changes to the back design by clicking OK.", "style": "style", "colour": "colour", "alignment": "alignment", "size": "size", "empty_text": "Nothing on this side yet!", "text_shadow_effect": "shadow colour, size and position"}, "home": {"fast_delivery": "Fast Delivery", "testimonial_1": "'I was utterly gob smacked at the quality and speed at which this whole process occured.'", "learn_more": "Learn more", "upload_artwork": "Upload your artwork", "start_free_account": "Start your own Click account free", "title": "Business cards made online.", "fast_delivery_txt": "We ships cards in 24hrs worldwide. ", "testimonial_1_name": "&ndash; Michael, Sylvania NSW", "description": "Make business cards online, we'll print and ship them to you worldwide. Only {{price}} for {{quantity}} cards!", "take_tour": "Take the Tour", "upload_artwork_txt": "Upload your logo, photos or full designs.", "explore_cards": "Explore Cards", "bang_for_buck": "Bang for your buck", "testimonial_2": "'WOW! To say I'm impressed by your service is an understatement!'", "start_now": "Start now, it only takes a minute!", "amazing_templates": "Amazing Templates", "bang_for_buck_txt": "From just {{price}} for {{quantity}} cards. ", "testimonial_2_name": "&ndash; Jason, Perth WA", "easy_to_use": "Easy to Use", "amazing_templates_txt": "Thousands of stunning free templates.", "simple_reorder": "Simple to reorder", "testimonial_3": "'This was my first internet purchase and I just phoned to say how pleased I am with my cards.'", "easy_to_use_txt": "Your grandma could do it with her eyes closed.", "more": "More", "simple_reorder_txt": "Effortless reordering of cards for your whole team.", "testimonial_3_name": "&ndash; Sally, Melbourne"}, "number": {"format": {"separator": ".", "precision": 2, "delimiter": ","}, "currency": {"format": {"precision": 2, "format": "%u%n", "unit": "$"}}}, "time": {"time_with_zone": {"formats": {"default": {}}}, "datetime": {"formats": {"default": "%Y-%m-%dT%H:%M:%S%Z"}}, "am": "am", "formats": {"long_ordinal": {}, "short": "%d %b %H:%M", "only_second": "%S", "time": "%H:%M", "default": "%a %b %d %H:%M:%S %Z %Y", "long": "%d %B, %Y %H:%M"}, "pm": "pm"}, "faq": {"contact_click": "Contact our Support Team", "more_help": "Need more help?", "top_faq": "TOP CLICK FAQS", "search": "Search Click Help", "search_faqs": "Search the Click FAQs", "faqs_matching": "Showing all FAQs matching: "}, "template": {"Address 3": "Address 3", "Fax": "Fax", "Tag": "Tag", "Mobile": "Mobile", "Note": "Note", "Contact 2": "Contact 2", "Web": "Web", "Back Text": "Back Text", "Address": "Address", "Email": "Email", "Nickname": "Nickname", "Back Heading": "Back Heading", "Address 2": "Address 2", "Company": "Company", "Custom": "Custom", "Title": "Title", "Tag Line": "Tag Line", "Address2": "Address 2", "Phone": "Phone", "Name": "Name", "Contact": "Contact"}, "tour": {"getstarted": "get started", "amazingtemplates": "Templates to make your business dance.", "bangforbuck_txt": "Our print quality is 3000 dots per inch & every card we print is printed on a nice thick 325gm board for only $49.95 for 250 cards. We have multiple finishing options to choose from.", "start_free_account": "Start your own Click account free", "title": "How it works:", "easytouse": "Easy to Use.", "amazingtemplates_txt": "Our designers have been working overtime to bring you thousands of professional business card templates for free! We have tagged and categorised our collection of templates to help you in selecting . You can explore our collection of templates here.", "howitworks_1": "Create business cards on our website.", "simplereorder": "Simple to reorder.", "easytouse_txt": "Create your own business card in minutes with our online card editor. Designed to be simple while giving you complete control over the look of your card - it's so easy your grandma could create her own business card with her eyes closed. But don't take our word for it take a look for yourself.", "explore_templates": "Explore Templates", "howitworks_2": "We send them to your door.", "simplereorder_txt": "Want to order more cards? We provide you with a safe, simple and secure method to help you reorder your cards or view the details of previous orders.", "fastdelivery": "Fast delivery, worldwide.", "howitworks_3": "Do business, look good.", "uploadartwork": "Upload your own artwork.", "fastdelivery_txt": "We do our best to get your cards to you in the shortest time possible. Order before 12pm EST and we'll ship your cards on the same day. If not, don't worry, your cards will be shipped on next business day.", "upload_design": "Upload a design", "get_started": "Read more below or ", "uploadartwork_txt": "Click provides its users with templates to use but there is also the option of uploading your own artwork. If you already have a business card designed, you can upload it for free and we'll print it off.", "bangforbuck": "Bang for your buck."}, "dialog": {"close": "Go back"}, "address": {"suburb": "Suburb/Town", "postcode": "Postcode", "country": "Country", "address_1": "Address 1", "state": "State", "address_2": "Address 2"}}, "en-NZ": {"about": {"intro_text": "Click Business Cards is an Australian business based in Sydney's north dedicated to the manufacturing of business cards marketed through our easy to use website interface. We provide the highest quality business cards available today using the most modern offset printing equipment.", "gavin_email": "gavin@clickbusinesscards.com.au", "history_item_4": "Lowest prices for quality cards", "history_title": "History", "manager": "Manager", "history_text": "Our history has been in the software development and printing industry since 1981. In 1996 we were the first in the world to launch a website for the ordering of business cards over the internet. Today our business is the largest supplier of business cards in Australia handling hundreds of orders a day throughout the world.", "history_intro": "We serve both national and international markets with the...", "manager_name": "Paul Sommer", "management_title": "Management", "history_item_1": "Fasted turnaround times possible", "manager_email": "paul@clickbusinesscards.com", "manage_dir": "Managing Director", "history_item_2": "Highest quality business cards in the marketplace", "more_info": "More Information", "gavin": "Gavin Tooley", "history_item_3": "Most friendly and efficient service", "more_info_text": "If you would like more information about us and our printing process, you may review our list of Frequently Asked Questions. Or for more contact details, visit our Contact Us page."}, "uploads": {"dimension_error": "The image you uploaded is too big. Image width and height must be less than {{max_width}} pixels.", "tip_3": "A Squiz Card is 55mm x 30mm, 1mm is then trimmed off each edge leaving 53mm x 28mm.", "uploads": "Your images", "upload_file": "Choose a file to upload", "title": "Image Manager", "process_attribute": " ", "tip_4": "Please flatten PDF files and convert fonts to outlines or curves.", "uploading": "Uploading your image...", "size_error": "The image you uploaded is too big. Files can be a maximum of 2 megabytes in size.", "process_error": "We're having a bit of trouble with your image. Does it comply with our upload tips? If you're having trouble you can send the image to <a href='/squiz_cards_home/support' target='_blank'>support</a> and we can take a look for you.</a>", "tip_5": "If this is all too much, you can send your image to <a href='/squiz_cards_home/support' target='_blank'>support</a> and we'll help you out.", "uploads_empty": "Just upload an image and we'll keep it here for you to use on your card.", "content_type_attribute": " ", "template_uploads": "Template images", "content_type_error": "The file you uploaded is not a JPG, PDF, PNG, GIF or TIFF file.", "tip_1": "You can upload JPG, PDF, PNG, GIF & TIFF formats, max file size of 2MB, max width/height of 2000 pixels.", "dimension_attribute": " ", "tip_2": "If your images look pixelated once uploaded we recommend uploading images at a resolution of 400DPI.", "size_attribute": " "}, "squiz_templates": {"colour_heading": "Narrow by colour"}, "activerecord": {"errors": {"messages": {"exclusion": "is already taken", "not_a_number": "isn't a number", "greater_than_or_equal_to": "must be greater than or equal to {{count}}", "less_than": "must be less than {{count}}", "inclusion": "isn't included in the list", "odd": "must be odd", "equal_to": "must be equal to {{count}}", "less_than_or_equal_to": "must be less than or equal to {{count}}", "even": "must be even", "confirmation": "doesn't match its confirmation", "greater_than": "must be greater than {{count}}", "wrong_length": "isn't the right length (gotta be {{count}} characters)", "blank": "must be given", "taken": "isn't available", "accepted": "must be accepted", "too_short": "is too short (no less than {{count}} characters)", "invalid": "isn't valid", "too_long": "is too long (no more than {{count}} characters)", "empty": "must be given"}, "template": {"body": "Please check the following fields:", "header": {"one": "Couldn't save this {{model}}: 1 error", "other": "Couldn't save this {{model}}: {{count}} errors."}}}}, "date": {"month_names": [null, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], "abbr_day_names": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], "order": ["year", "month", "day"], "formats": {"long_ordinal": {}, "only_day": "%e", "short": "%e %b", "default": "%d/%m/%Y", "long": "%e %B, %Y"}, "day_names": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], "abbr_month_names": [null, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]}, "squiz_home": {"details_title": "details", "shipping_title": "shipping", "details": "53mm x 28mm waterproof<br/>round corners", "hero": "Squiz Cards are the small, fun, waterproof way to give out your contact info to people you meet. <b>It's who you are!</b>", "shipping": "shipped world wide<br/>within 2 weeks!", "price_title": "how much?", "price": "{{quantity}} full colour Squiz Cards<br/>for just {{price}}"}, "datetime": {"distance_in_words": {"x_days": {"one": "1 day", "other": "{{count}} days"}, "less_than_x_minutes": {"zero": "less than a minute", "one": "less than a minute", "other": "less than {{count}} minutes"}, "about_x_months": {"one": "about 1 month", "other": "about {{count}} months"}, "x_minutes": {"one": "1 minute", "other": "{{count}} minutes"}, "x_months": {"one": "1 month", "other": "{{count}} months"}, "less_than_x_seconds": {"zero": "less than a second", "one": "less than a second", "other": "less than {{count}} seconds"}, "about_x_years": {"one": "about 1 year", "other": "about {{count}} years"}, "half_a_minute": "half a minute", "x_seconds": {"one": "1 second", "other": "{{count}} seconds"}, "over_x_years": {"one": "over 1 year", "other": "over {{count}} years"}, "about_x_hours": {"one": "about 1 hour", "other": "about {{count}} hours"}}}, "wysiwyg": {"font": "font", "customise_layout": "Customise this back design for only {{price}} per {{quantity}} cards!", "remove_customise_confirm": "Are you sure you want to remove your back design customisations?  You will lose any unsaved changes to the back design by clicking OK.", "style": "style", "colour": "colour", "alignment": "alignment", "size": "size", "empty_text": "Nothing on this side yet!", "text_shadow_effect": "shadow colour, size and position"}, "home": {"fast_delivery": "Fast Delivery", "testimonial_1": "'I was utterly gob smacked at the quality and speed at which this whole process occured.'", "learn_more": "Learn more", "upload_artwork": "Upload your artwork", "start_free_account": "Start your own Click account free", "title": "Business cards made online.", "fast_delivery_txt": "We ships cards in 24hrs worldwide. ", "testimonial_1_name": "&ndash; Michael, Sylvania NSW", "description": "Make business cards online, well print and ship them to you worldwide. Only {{price}} for {{quantity}} cards!", "take_tour": "Take the Tour", "upload_artwork_txt": "Upload your logo, photos or full designs.", "explore_cards": "Explore Cards", "bang_for_buck": "Bang for your buck", "testimonial_2": "'WOW! To say I'm impressed by your service is an understatement!'", "start_now": "Start now, it only takes a minute!", "amazing_templates": "Amazing Templates", "bang_for_buck_txt": "From just {{price}} for {{quantity}} cards. ", "testimonial_2_name": "&ndash; Jason, Perth WA", "easy_to_use": "Easy to Use", "amazing_templates_txt": "Thousands of stunning free templates.", "simple_reorder": "Simple to reorder", "testimonial_3": "'This was my first internet purchase and I just phoned to say how pleased I am with my cards.'", "easy_to_use_txt": "Your grandma could do it with her eyes closed.", "more": "More", "simple_reorder_txt": "Effortless reordering of cards for your whole team.", "testimonial_3_name": "&ndash; Sally, Melbourne"}, "number": {"format": {"separator": ".", "precision": 2, "delimiter": ","}, "currency": {"format": {"precision": 2, "format": "%u%n", "unit": "$"}}}, "time": {"time_with_zone": {"formats": {"default": {}}}, "datetime": {"formats": {"default": "%Y-%m-%dT%H:%M:%S%Z"}}, "am": "am", "formats": {"long_ordinal": {}, "short": "%d %b %H:%M", "only_second": "%S", "time": "%H:%M", "default": "%a %b %d %H:%M:%S %Z %Y", "long": "%d %B, %Y %H:%M"}, "pm": "pm"}, "faq": {"contact_click": "Contact our Support Team", "more_help": "Need more help?", "top_faq": "TOP CLICK FAQS", "search": "Search Click Help", "search_faqs": "Search the Click FAQs", "faqs_matching": "Showing all FAQs matching: "}, "template": {"Address 3": "Address 3", "Fax": "Fax", "Tag": "Tag", "Mobile": "Mobile", "Note": "Note", "Contact 2": "Contact 2", "Web": "Web", "Back Text": "Back Text", "Address": "Address", "Email": "Email", "Nickname": "Nickname", "Back Heading": "Back Heading", "Address 2": "Address 2", "Company": "Company", "Custom": "Custom", "Title": "Title", "Tag Line": "Tag Line", "Address2": "Address 2", "Phone": "Phone", "Name": "Name", "Contact": "Contact"}, "tour": {"getstarted": "get started", "amazingtemplates": "Templates to make your business dance.", "bangforbuck_txt": "Our print quality is 3000 dots per inch & every card we print is printed on a nice thick 325gm board for only $49.95 for 250 cards. We have multiple finishing options to choose from.", "start_free_account": "Start your own Click account free", "title": "How it works:", "easytouse": "Easy to Use.", "amazingtemplates_txt": "Our designers have been working overtime to bring you thousands of professional business card templates for free! We have tagged and categorised our collection of templates to help you in selecting . You can explore our collection of templates here.", "howitworks_1": "Create business cards on our website.", "simplereorder": "Simple to reorder.", "easytouse_txt": "Create your own business card in minutes with our online card editor. Designed to be simple while giving you complete control over the look of your card - it's so easy your grandma could create her own business card with her eyes closed. But don't take our word for it take a look for yourself.", "explore_templates": "Explore Templates", "howitworks_2": "We send them to your door.", "simplereorder_txt": "Want to order more cards? We provide you with a safe, simple and secure method to help you reorder your cards or view the details of previous orders.", "fastdelivery": "Fast delivery, worldwide.", "howitworks_3": "Do business, look good.", "uploadartwork": "Upload your own artwork.", "fastdelivery_txt": "We do our best to get your cards to you in the shortest time possible. Order before 12pm EST and we'll ship your cards on the same day. If not, don't worry, your cards will be shipped on next business day.", "upload_design": "Upload a design", "get_started": "Read more below or ", "uploadartwork_txt": "Click provides its users with templates to use but there is also the option of uploading your own artwork. If you already have a business card designed, you can upload it for free and we'll print it off.", "bangforbuck": "Bang for your buck."}, "dialog": {"close": "Go back"}, "address": {"suburb": "City/Town", "postcode": "Postcode", "country": "Country", "address_1": "Address 1", "state": "Region", "address_2": "Address 2"}}, "root": {"bidi": {"direction": "left-to-right"}}, "en-US": {"about": {"intro_text": "Click Business Cards is an Australian business based in Sydney's north dedicated to the manufacturing of business cards marketed through our easy to use website interface. We provide the highest quality business cards available today using the most modern offset printing equipment.", "gavin_email": "gavin@clickbusinesscards.com.au", "history_item_4": "Lowest prices for quality cards", "history_title": "History", "manager": "Manager", "history_text": "Our history has been in the software development and printing industry since 1981. In 1996 we were the first in the world to launch a website for the ordering of business cards over the internet. Today our business is the largest supplier of business cards in Australia handling hundreds of orders a day throughout the world.", "history_intro": "We serve both national and international markets with the...", "manager_name": "Paul Sommer", "management_title": "Management", "history_item_1": "Fasted turnaround times possible", "manager_email": "paul@clickbusinesscards.com", "manage_dir": "Managing Director", "history_item_2": "Highest quality business cards in the marketplace", "more_info": "More Information", "gavin": "Gavin Tooley", "history_item_3": "Most friendly and efficient service", "more_info_text": "If you would like more information about us and our printing process, you may review our list of Frequently Asked Questions. Or for more contact details, visit our Contact Us page."}, "uploads": {"dimension_error": "The image you uploaded is too big. Image width and height must be less than {{max_width}} pixels.", "tip_3": "A Squiz Card is 2-3/16\" x 1-3/16\", 1/16\" is then trimmed off each edge leaving 2-2/8\" x 1-1/8\".", "uploads": "Your images", "upload_file": "Choose a file to upload", "title": "Image Manager", "process_attribute": " ", "tip_4": "Please flatten PDF files and convert fonts to outlines or curves.", "uploading": "Uploading your image...", "size_error": "The image you uploaded is too big. Files can be a maximum of 2 megabytes in size.", "process_error": "We're having a bit of trouble with your image. Does it comply with our upload tips? If you're having trouble you can send the image to <a href='/squiz_cards_home/support' target='_blank'>support</a> and we can take a look for you.</a>", "tip_5": "If this is all too much, you can send your image to <a href='/squiz_cards_home/support' target='_blank'>support</a> and we'll help you out.", "uploads_empty": "Just upload an image and we'll keep it here for you to use on your card.", "content_type_attribute": " ", "template_uploads": "Template images", "content_type_error": "The file you uploaded is not a JPG, PDF, PNG, GIF or TIFF file.", "tip_1": "You can upload JPG, PDF, PNG, GIF & TIFF formats, max file size of 2MB, max width/height of 2000 pixels.", "dimension_attribute": " ", "tip_2": "If your images look pixelated once uploaded we recommend uploading images at a resolution of 400DPI.", "size_attribute": " "}, "squiz_templates": {"favourite_removed": "Removed the favorite from your collection", "favourites_see_all": "See all favorites...", "colour_heading": "Narrow by color", "favourite_added": "Added the favorite to your collection", "favourite_exits": "That template is already in your favorites", "favourite_not_added": "Sorry something went wrong.", "favourites_heading": "Recent favorites", "favourite_not_found": "Can't find the favorite in your collection", "favourites_empty": "You haven't added any favorites yet! Click on the heart symbol on a card and they'll be stored here for easy access."}, "activerecord": {"errors": {"messages": {"exclusion": "is already taken", "not_a_number": "isn't a number", "greater_than_or_equal_to": "must be greater than or equal to {{count}}", "less_than": "must be less than {{count}}", "inclusion": "isn't included in the list", "odd": "must be odd", "equal_to": "must be equal to {{count}}", "less_than_or_equal_to": "must be less than or equal to {{count}}", "even": "must be even", "confirmation": "doesn't match its confirmation", "greater_than": "must be greater than {{count}}", "wrong_length": "isn't the right length (gotta be {{count}} characters)", "blank": "must be given", "taken": "isn't available", "accepted": "must be accepted", "too_short": "is too short (no less than {{count}} characters)", "invalid": "isn't valid", "too_long": "is too long (no more than {{count}} characters)", "empty": "must be given"}, "template": {"body": "Please check the following fields:", "header": {"one": "Couldn't save this {{model}}: 1 error", "other": "Couldn't save this {{model}}: {{count}} errors."}}}}, "date": {"month_names": [null, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], "abbr_day_names": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], "order": ["year", "month", "day"], "formats": {"long_ordinal": {}, "only_day": "%e", "short": "%e %b", "default": "%d/%m/%Y", "long": "%e %B, %Y"}, "day_names": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], "abbr_month_names": [null, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]}, "user_acct_link": "My Account", "order": {"start_from_scratch": "or, choose a new template", "or": "or, {{link}}.", "copy_card": "Choose a card to copy...", "card_already_in_cart": "Hey! That Squiz Card is already in your shopping cart.", "card_in_cart": "Your Squiz Card is now ready and waiting in your shopping cart.", "create_another_card_title": "Make a new Squiz Card by copying an existing one "}, "squiz_home": {"details_title": "details", "shipping_title": "shipping", "details": "2-2/8\" x 1-2/8\" waterproof<br/>round corners", "hero": "Squiz Cards are the small, fun, waterproof way to give out your contact info to people you meet. <b>It's who you are!</b>", "shipping": "shipped world wide<br/>within 2 weeks!", "price_title": "how much?", "price": "{{quantity}} full color Squiz Cards<br/>for just {{price}}"}, "datetime": {"distance_in_words": {"x_days": {"one": "1 day", "other": "{{count}} days"}, "less_than_x_minutes": {"zero": "less than a minute", "one": "less than a minute", "other": "less than {{count}} minutes"}, "about_x_months": {"one": "about 1 month", "other": "about {{count}} months"}, "x_minutes": {"one": "1 minute", "other": "{{count}} minutes"}, "x_months": {"one": "1 month", "other": "{{count}} months"}, "less_than_x_seconds": {"zero": "less than a second", "one": "less than a second", "other": "less than {{count}} seconds"}, "about_x_years": {"one": "about 1 year", "other": "about {{count}} years"}, "half_a_minute": "half a minute", "x_seconds": {"one": "1 second", "other": "{{count}} seconds"}, "over_x_years": {"one": "over 1 year", "other": "over {{count}} years"}, "about_x_hours": {"one": "about 1 hour", "other": "about {{count}} hours"}}}, "wysiwyg": {"font": "font", "customise_layout": "Customize this back design for only {{price}} per {{quantity}} cards!", "remove_customise_confirm": "Are you sure you want to remove your back design customizations?  You will lose any unsaved changes to the back design by clicking OK.", "style": "style", "colour": "color", "alignment": "alignment", "size": "size", "empty_text": "Nothing on this side yet!", "text_shadow_effect": "shadow color, size and position"}, "home": {"fast_delivery": "Fast Delivery", "testimonial_1": "'I was utterly gob smacked at the quality and speed at which this whole process occured.'", "learn_more": "Learn more", "upload_artwork": "Upload your artwork", "start_free_account": "Start your own Click account free", "title": "Business cards made online.", "fast_delivery_txt": "We ships cards in 24hrs worldwide. ", "testimonial_1_name": "&ndash; Michael, Sylvania NSW", "description": "Make business cards online, well print and ship them to you worldwide. Only {{price}} for {{quantity}} cards!", "take_tour": "Take the Tour", "upload_artwork_txt": "Upload your logo, photos or full designs.", "explore_cards": "Explore Cards", "bang_for_buck": "Bang for your buck", "testimonial_2": "'WOW! To say I'm impressed by your service is an understatement!'", "start_now": "Start now, it only takes a minute!", "amazing_templates": "Amazing Templates", "bang_for_buck_txt": "From just {{price}} for {{quantity}} cards. ", "testimonial_2_name": "&ndash; Jason, Perth WA", "easy_to_use": "Easy to Use", "amazing_templates_txt": "Thousands of stunning free templates.", "simple_reorder": "Simple to reorder", "testimonial_3": "'This was my first internet purchase and I just phoned to say how pleased I am with my cards.'", "easy_to_use_txt": "Your grandma could do it with her eyes closed.", "more": "More", "simple_reorder_txt": "Effortless reordering of cards for your whole team.", "testimonial_3_name": "&ndash; Sally, Melbourne"}, "user_dash_link": "My Squiz Cards", "number": {"format": {"separator": ".", "precision": 2, "delimiter": ","}, "currency": {"format": {"precision": 2, "format": "%u%n", "unit": "$"}}}, "time": {"time_with_zone": {"formats": {"default": {}}}, "datetime": {"formats": {"default": "%Y-%m-%dT%H:%M:%S%Z"}}, "am": "am", "formats": {"long_ordinal": {}, "short": "%d %b %H:%M", "only_second": "%S", "time": "%H:%M", "default": "%a %b %d %H:%M:%S %Z %Y", "long": "%d %B, %Y %H:%M"}, "pm": "pm"}, "faq": {"contact_click": "Contact our Support Team", "more_help": "Need more help?", "top_faq": "TOP CLICK FAQS", "search": "Search Click Help", "search_faqs": "Search the Click FAQs", "faqs_matching": "Showing all FAQs matching: "}, "template": {"Address 3": "Address 3", "Fax": "Fax", "Tag": "Tag", "Mobile": "Cell", "Note": "Note", "Contact 2": "Contact 2", "Web": "Web", "Back Text": "Back Text", "Address": "Address", "Email": "Email", "Nickname": "Nickname", "Back Heading": "Back Heading", "Address 2": "Address 2", "Company": "Company", "Custom": "Custom", "Title": "Title", "Tag Line": "Tag Line", "Address2": "Address 2", "Phone": "Phone", "Name": "Name", "Contact": "Contact"}, "card": {"new_card": "My Squiz Card", "card_saved": "Your Squiz Card is now ready and waiting for you."}, "tour": {"getstarted": "get started", "amazingtemplates": "Templates to make your business dance.", "bangforbuck_txt": "Our print quality is 3000 dots per inch & every card we print is printed on a nice thick 325gm board for only $49.95 for 250 cards. We have multiple finishing options to choose from.", "start_free_account": "Start your own Click account free", "title": "How it works:", "easytouse": "Easy to Use.", "amazingtemplates_txt": "Our designers have been working overtime to bring you thousands of professional business card templates for free! We have tagged and categorised our collection of templates to help you in selecting . You can explore our collection of templates here.", "howitworks_1": "Create business cards on our website.", "simplereorder": "Simple to reorder.", "easytouse_txt": "Create your own business card in minutes with our online card editor. Designed to be simple while giving you complete control over the look of your card - it's so easy your grandma could create her own business card with her eyes closed. But don't take our word for it take a look for yourself.", "explore_templates": "Explore Templates", "howitworks_2": "We send them to your door.", "simplereorder_txt": "Want to order more cards? We provide you with a safe, simple and secure method to help you reorder your cards or view the details of previous orders.", "fastdelivery": "Fast delivery, worldwide.", "howitworks_3": "Do business, look good.", "uploadartwork": "Upload your own artwork.", "fastdelivery_txt": "We do our best to get your cards to you in the shortest time possible. Order before 12pm EST and we'll ship your cards on the same day. If not, don't worry, your cards will be shipped on next business day.", "upload_design": "Upload a design", "get_started": "Read more below or ", "uploadartwork_txt": "Click provides its users with templates to use but there is also the option of uploading your own artwork. If you already have a business card designed, you can upload it for free and we'll print it off.", "bangforbuck": "Bang for your buck."}, "dialog": {"close": "Go back"}, "address": {"suburb": "City/Town", "postcode": "Zipcode", "delivery_name": "Name/Company", "country": "Country", "address_1": "Address 1", "state": "State", "address_2": "Address 2"}}, "en": {"support": {"array": {"last_word_connector": ", and ", "words_connector": ", ", "two_words_connector": " and "}}, "activerecord": {"errors": {"messages": {"not_a_number": "is not a number", "exclusion": "is reserved", "less_than": "must be less than {{count}}", "greater_than_or_equal_to": "must be greater than or equal to {{count}}", "inclusion": "is not included in the list", "odd": "must be odd", "equal_to": "must be equal to {{count}}", "less_than_or_equal_to": "must be less than or equal to {{count}}", "even": "must be even", "greater_than": "must be greater than {{count}}", "confirmation": "doesn't match confirmation", "wrong_length": "is the wrong length (should be {{count}} characters)", "taken": "has already been taken", "blank": "can't be blank", "accepted": "must be accepted", "too_short": "is too short (minimum is {{count}} characters)", "too_long": "is too long (maximum is {{count}} characters)", "invalid": "is invalid", "empty": "can't be empty"}, "template": {"body": "There were problems with the following fields:", "header": {"one": "1 error prohibited this {{model}} from being saved", "other": "{{count}} errors prohibited this {{model}} from being saved"}}}}, "date": {"month_names": [null, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], "abbr_day_names": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], "order": ["year", "month", "day"], "day_names": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], "formats": {"short": "%b %d", "default": "%Y-%m-%d", "long": "%B %d, %Y"}, "abbr_month_names": [null, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]}, "datetime": {"prompts": {"month": "Month", "year": "Year", "hour": "Hour", "minute": "Minute", "day": "Day", "second": "Seconds"}, "distance_in_words": {"x_days": {"one": "1 day", "other": "{{count}} days"}, "less_than_x_minutes": {"one": "less than a minute", "other": "less than {{count}} minutes"}, "about_x_months": {"one": "about 1 month", "other": "about {{count}} months"}, "x_minutes": {"one": "1 minute", "other": "{{count}} minutes"}, "x_months": {"one": "1 month", "other": "{{count}} months"}, "less_than_x_seconds": {"one": "less than 1 second", "other": "less than {{count}} seconds"}, "about_x_years": {"one": "about 1 year", "other": "about {{count}} years"}, "half_a_minute": "half a minute", "over_x_years": {"one": "over 1 year", "other": "over {{count}} years"}, "x_seconds": {"one": "1 second", "other": "{{count}} seconds"}, "about_x_hours": {"one": "about 1 hour", "other": "about {{count}} hours"}}}, "number": {"precision": {"format": {"delimiter": ""}}, "percentage": {"format": {"delimiter": ""}}, "currency": {"format": {"separator": ".", "precision": 2, "format": "%u%n", "delimiter": ",", "unit": "$"}}, "format": {"separator": ".", "precision": 3, "delimiter": ","}, "human": {"storage_units": {"units": {"gb": "GB", "byte": {"one": "Byte", "other": "Bytes"}, "kb": "KB", "mb": "MB", "tb": "TB"}, "format": "%n %u"}, "format": {"precision": 1, "delimiter": ""}}}, "time": {"am": "am", "formats": {"short": "%d %b %H:%M", "default": "%a, %d %b %Y %H:%M:%S %z", "long": "%B %d, %Y %H:%M"}, "pm": "pm"}}};

(function(){

  var interpolatePattern = /\{\{([^}]+)\}\}/g;

  //Replace {{foo} with obj.foo
  function interpolate(str, obj){
    return str.replace(interpolatePattern, function(){
      return obj[arguments[1]] || arguments[0];
    });
  };

  //Split "foo.bar" to ["foo", "bar"] if key is a string
  function keyToArray(key){
    if (!key) return [];
    if (typeof key != "string") return key;
    return key.split('.');
  };

  function locale(){
    return I18n.locale || I18n.defaultLocale;
  };

  function getLocaleFromCookie(){
    var cookies = document.cookie.split(/\s*;\s*/),
        i, pair, locale;
    for (i = 0; i < cookies.length; i++) {
      pair = cookies[i].split('=');
      if (pair[0] === 'locale') { locale = pair[1]; break; }
    }
    return locale;
  };


  I18n.init = function(){
    this.locale = getLocaleFromCookie();
  };

  //Works mostly the same as the Ruby equivalent, except there are
  //no symbols in JavaScript, so keys are always strings. The only time
  //this makes a difference is when differentiating between keys and values
  //in the defaultValue option. Strings starting with ":" will be considered
  //to be keys and used for lookup, while other strings are returned as-is.
  I18n.translate = function(key, opts){
    if (typeof key != "string") { //Bulk lookup
      var a = [], i;
      for (i=0; i<key.length; i++) {
        a.push(this.translate(key[i], opts));
      }
      return a;
    } else {
      opts = opts || {};
      opts.defaultValue = opts.defaultValue || null;
      key = keyToArray(opts.scope).concat(keyToArray(key));
      var value = this.lookup(key, opts.defaultValue);
      if (typeof value != "string" && value) value = this.pluralize(value, opts.count);
      if (typeof value == "string") value = interpolate(value, opts);
      return value;
    }
  };

  I18n.t = I18n.translate;

  //Looks up a translation using an array of strings where the last
  //is the key and any string before that define the scope. The current
  //locale is always prepended and does not need to be provided. The second
  //parameter is an array of strings used as defaults if the key can not be
  //found. If a key starts with ":" it is used as a key for lookup.
  //This method does not perform pluralization or interpolation.
  I18n.lookup = function(keys, defaults){
    var i = 0, value = this.translations[locale()];
    defaults = typeof defaults == "string" ? [defaults] : (defaults || []);
    while (keys[i]) {
      value = value && value[keys[i]];
      i++;
    }
    if (value){
      return value;
    } else {
      if (defaults.length == 0) {
        return null;
      } else if (defaults[0].substr(0,1) == ':') {
        return this.lookup(keys.slice(0,keys.length-1).concat(keyToArray(defaults[0].substr(1))), defaults.slice(1));
      } else {
        return defaults[0];
      }
    }
  };

  I18n.pluralize = function(value, count){
    if (!count) return value;
    return count == 1 ? value.one : value.other;
  };

})();

I18n.init();


var Combo=Class.create({combo_template:new Template(" 				<table class='dropdown' cellspacing='0' cellpadding='0' border='0'> 					<tr> 						<td class='end'> 						</td> 						<td class='middle'> 							<div class='input #{editable}'> 								<input class='combo_input'></input> 								<div class='combo_input'></div> 							</div> 						</td> 						<td class='arrow'> 						</td> 					</tr> 				</div>"),slide_template:new Template("					<tr><td class='slide_top_left'> </td><td class='slide_top'> </td><td class='slide_top_right'> </td></tr> 					<tr> 						<td class='slide_left'></td> 						<td class='slide_middle'> 							<div class='scroll'> 								<ul class='list'> 								</ul> 								<div class='clear'></div> 							</div> 						</td> 						<td class='slide_right'></td> 					</tr> 					<tr><td class='slide_bottom_left'> </td><td class='slide_bottom'> </td><td class='slide_bottom_right'> </td></tr>"),list_template:new Template("<li title='#{item_value}' class='item'>#{item}</li>"),slide_up:false,editable:false,initialize:function(a){this.combo_original=a;this.buildDropdown();this.combo_original.insert({after:this.combo});this.combo_original.hide();this.loadListItems();this.updateSelection();this.addObservers();this.setEnabled(this.isEnabled())},buildDropdown:function(){this.editable=this.combo_original.hasClassName("editable");this.combo=Builder.node("div",{"class":"replaced_custom_combo"});if(this.editable){this.combo.update(this.combo_template.evaluate({editable:"editable"}))}else{this.combo.update(this.combo_template.evaluate({editable:"not_editable"}))}this.dropdown=this.combo.select(".dropdown").first();this.arrow=this.combo.select(".arrow").first();this.input=this.combo.select("input.combo_input").first();this.input_div=this.combo.select("div.combo_input").first();this.end=this.combo.select(".end").first();this.combo_input=this.combo.select(".input").first();this.slide=Builder.node("table",{"class":"slide",cellpadding:"0",cellspacing:"0",border:"0",style:"display: none;"});this.slide.update(this.slide_template.evaluate({}));$(document.body).insert({bottom:this.slide});this.scroll=this.slide.select(".scroll").first();this.list=this.slide.select(".list").first();var a=Number(this.combo_original.getStyle("width").replace("px",""));a=Math.max(a,this.combo_original.getWidth());this.combo.setStyle({width:a+"px"});if(this.combo_original.hasClassName("no_shadow")){this.combo.addClassName("no_shadow")}},loadListItems:function(){items=this.combo_original.select("option");items.each(this.addItem.bind(this))},isNumber:function(e){var f="-0123456789.";var a=true;var d=0;for(d=0;d<e.length&&a==true;d++){var h=e.charAt(d);if(f.indexOf(h)==-1){a=false}}return a},addItem:function(d){content=d.innerHTML;var c=d.readAttribute("value");if(this.isNumber(c)){c=Number(c)}var a=null;var e=false;this.list.select("li").each(function(h){var i=h.readAttribute("title");if(this.isNumber(i)){i=Number(i)}if(i==c){e=true;throw $break}else{if(i>c){a=h;throw $break}}}.bind(this));if(!e){var f=this.list_template.evaluate({item_value:c,item:content});if(a){a.insert({before:f})}else{this.list.insert({bottom:f})}}},updateSelection:function(){if(this.getInputValue()!=this.combo_original.value){var a=this.findSelection();this.setSelection(a)}},getInputValue:function(){return this.input.value},setInputValue:function(a,c){this.input.value=a;if(!this.editable){this.input.writeAttribute("value",a);this.input_div.update(c)}},matchSelection:function(c){var a=null;this.slide.select("li").each(function(d){if(d.readAttribute("title")==c){a=d;throw $break}});return a},findSelection:function(){var a=this.combo_original.value;return this.matchSelection(a)},setSelection:function(a){this.selection=a;if(this.selection){selected=this.slide.select("li.selected");selected.each(function(c){c.removeClassName("selected")});this.selection.addClassName("selected");this.setInputValue(this.selection.readAttribute("title"),this.selection.innerHTML)}else{this.setInputValue(this.combo_original.value,this.combo_original.value)}},addObservers:function(){this.mouseOverListener=this.onMouseOver.bindAsEventListener(this);this.mouseOutListener=this.onMouseOut.bindAsEventListener(this);this.clickListener=this.onClick.bindAsEventListener(this);this.clickArrowListener=this.onClickArrow.bindAsEventListener(this);this.keypressInputListener=this.onKeyPressInput.bindAsEventListener(this);this.keydownInputListener=this.onKeyDownInput.bindAsEventListener(this);this.comboChangeListener=this.onComboChange.bindAsEventListener(this);this.comboDisabledListener=this.onComboDisabled.bindAsEventListener(this);this.addItemListener=this.onAddItem.bindAsEventListener(this);this.documentClickObserver=this.onDocumentClick.bindAsEventListener(this);this.slide.observe("mouseout",this.mouseOutListener);this.slide.observe("click",this.clickListener);this.combo.observe("mouseover",this.mouseOverListener);this.slide.observe("mouseover",this.mouseOverListener);this.dropdown.observe("click",this.clickArrowListener);this.input.observe("keyup",this.keypressInputListener);this.input.observe("keydown",this.keydownInputListener);this.combo_original.observe("select:changed",this.comboChangeListener);this.combo_original.observe("select:disabled",this.comboDisabledListener);this.combo_original.observe("select:add_item",this.addItemListener);document.observe("click",this.documentClickObserver);document.observe("mousedown",this.documentClickObserver);document.observe("mouseup",this.documentClickObserver)},onMouseOver:function(a){this.setHover(a.element())},onMouseOut:function(a){this.resetHover()},onClick:function(c){var a=c.element();this.onSlideClicked(a);c.stop()},onSlideClicked:function(a){if(!a.hasClassName("hovered")){a=a.up(".item")}if(a!=null){this.focusInput();this.setSelection(a);this.hideSlide()}else{this.hideSlide()}},focusInput:function(){if(this.input&&this.input.visible()){this.input.focus()}},onClickArrow:function(a){this.showSlide();a.stop()},showSlide:function(a){if(!this.slide_up&&this.isEnabled()){this.focusInput();this.input.addClassName("focus");this.setSlideWidth();this.setSlidePos();this.slide.show();this.slide_up=true}},setSlidePos:function(){var d=this.combo.cumulativeOffset();var c=d[1]+this.combo.getHeight();var a=d[0];this.slide.setStyle({top:c+"px",left:a+"px"})},setSlideWidth:function(){this.slide.setStyle({width:this.dropdown.getWidth()+2+"px"})},hideSlide:function(){if(this.slide_up){this.input.removeClassName("focus");this.slide.hide();this.slide_up=false;this.storeValue()}},storeValue:function(){var c=this.getInputValue();if(c!=this.combo_original.value){this.combo_original.value=c;if(this.combo_original.value!=c){var a=Builder.node("option",{value:c},c);this.combo_original.insert(a);this.combo_original.value=c}this.combo_original.fire("select:changed")}},onKeyPressInput:function(c){if(c.keyCode==Event.KEY_ESC){this.input.value=this.combo_original.value;this.hideSlide()}if(c.keyCode==Event.KEY_DOWN||c.keyCode==Event.KEY_UP){this.showSlide();var a=null;if(this.selection){if(c.keyCode==Event.KEY_DOWN){a=this.selection.next(".item")}else{a=this.selection.previous(".item")}}else{a=this.list.down(".item")}if(a!=null){this.setSelection(a)}c.stop()}c.stop()},onKeyDownInput:function(d){if(d.keyCode==Event.KEY_RETURN){this.hideSlide()}else{if(d.keyCode==Event.KEY_TAB){this.hideSlide()}else{if(d.keyCode==110||d.keyCode==190){this.showSlide();var c=this.input.getCaretPos();var a=this.input.value.indexOf(".");if(a>=0&&c>=a){c-=1}this.input.value=this.input.value.gsub("\\.","");this.input.setCaretPos(c)}else{if((d.keyCode<48||d.keyCode>57)&&(d.keyCode<96||d.keyCode>105)&&(d.keyCode!=Event.KEY_BACKSPACE&&d.keyCode!=Event.KEY_DELETE)&&(d.keyCode!=Event.KEY_LEFT&&d.keyCode!=Event.KEY_RIGHT)){d.stop()}}}}},onComboChange:function(){this.updateSelection()},onComboDisabled:function(a){enabled=!a.memo.disabled;this.setEnabled(enabled)},onAddItem:function(c){var a=c.memo.item;this.addItem(a)},isEnabled:function(){return !this.combo_original.disabled},setEnabled:function(a){this.combo.removeClassName("disabled");if(!a){this.combo.addClassName("disabled")}if(this.editable){this.input.disabled=!a}},setHover:function(a){this.resetHover();if(!a.hasClassName("item")){a=a.up(".item")}if(a&&a.hasClassName("item")){a.addClassName("hovered")}},resetHover:function(){var a=this.slide.select(".hovered");a.each(function(c){c.removeClassName("hovered")})},destroy:function(){this.combo.stopObserving("mouseover",this.mouseOverListener);this.slide.stopObserving("mouseout",this.mouseOutListener);this.dropdown.stopObserving("click",this.ClickArrowListener);this.slide.stopObserving("click",this.clickListener);this.input.stopObserving("keyup",this.keyPressInputListener);this.input.observe("keydown",this.keydownInputListener);this.combo_original.stopObserving("select:changed",this.comboChangeListener);this.combo_original.stopObserving("select:disabled",this.comboDisabledListener);this.combo_original.stopObserving("select:add_item",this.addItemListener);document.stopObserve("click",this.documentClickObserver);document.stopObserve("mouseup",this.documentClickObserver);document.stopObserve("mousedown",this.documentClickObserver)},onDocumentClick:function(a){if(this.slide_up&&!a.element().up(".slide")&&!(a.element()==this.input)){this.hideSlide();a.stop()}}});var ColourCombo=Class.create(Combo,{custom_colour_template:new Template("				<div class='clear'></div> 				<div class='colour_form'> 					<label>c</label> 					<input class='cyan'></input> 					<label>m</label> 					<input class='magenta'></input> 					<label>y</label> 					<input class='yellow'></input> 					<label>k</label> 					<input class='key'></input> 					<div class='item'> 						<div class='colour_item'></div> 					</div> 				</div>"),colour_item_template:new Template("			<li class='item' title='#{colour}'> 				<a class='colour_item' style='background-color: #{rgb};' title='cmyk(#{c}%, #{m}%, #{y}%, #{k}%)'> </a> 			</li> 		"),TYPE_TEMPLATE:0,TYPE_DEFAULT:1,TYPE_CUSTOM:2,initialize:function($super,a){$super(a);this.addCustomObservers();this.addDefaultColours()},buildDropdown:function($super){$super();this.combo.addClassName("colour");this.slide.addClassName("colour");this.colours_in_separator=Builder.node("li",{"class":"separator",style:"display: none;"});this.list.insert(this.colours_in_separator);this.custom_colour=Builder.node("div",{"class":"custom_colour"});this.custom_colour.update(this.custom_colour_template.evaluate({}));this.scroll.insert({bottom:this.custom_colour});this.custom_colours_separator=Builder.node("li",{"class":"separator"});this.list.insert(this.custom_colours_separator);this.cyan=this.custom_colour.select(".cyan").first();this.magenta=this.custom_colour.select(".magenta").first();this.yellow=this.custom_colour.select(".yellow").first();this.key=this.custom_colour.select(".key").first();this.colour_item=this.custom_colour.select(".colour_item").first();this.item=this.custom_colour.select(".item").first()},destroy:function($super){$super();this.removeCustomObservers()},addItem:function($super,c){var a=[];c.value.scan(/\d+(?:\.\d*)?/,function(e){a.push(e)});if(a.length==4){this.addNewColour(this.TYPE_TEMPLATE,a[0],a[1],a[2],a[3])}},addCustomObservers:function(){this.colour_changed_bind=this.onColourChanged.bindAsEventListener(this);this.cyan.observe("keyup",this.colour_changed_bind);this.magenta.observe("keyup",this.colour_changed_bind);this.yellow.observe("keyup",this.colour_changed_bind);this.key.observe("keyup",this.colour_changed_bind)},removeCustomObservers:function(){this.cyan.stopObserving("click",this.colour_changed_bind);this.magenta.stopObserving("click",this.colour_changed_bind);this.yellow.stopObserving("click",this.colour_changed_bind);this.key.stopObserving("click",this.colour_changed_bind)},numberize:function(a){var c=Number(a);if(isNaN(c)){c=0}c=Math.round(c);return c},getCyan:function(){var a=this.cyan.value;a=this.numberize(a);return a},getMagenta:function(){var a=this.magenta.value;a=this.numberize(a);return a},getYellow:function(){var a=this.yellow.value;a=this.numberize(a);return a},getKey:function(){var a=this.key.value;a=this.numberize(a);return a},onColourChanged:function(){this.c=this.getCyan();this.m=this.getMagenta();this.y=this.getYellow();this.k=this.getKey();colour=this.toRGB(this.c,this.m,this.y,this.k);var a="cmyk("+this.c+"%, "+this.m+"%, "+this.y+"%, "+this.k+"%)";this.colour_item.setStyle({backgroundColor:colour});this.item.writeAttribute("title",a)},toRGB:function(h,a,f,d){h=Number(h);h=h/100;a=Number(a);a=a/100;f=Number(f);f=f/100;d=Number(d);d=d/100;var e=1-d;r=Math.round((1-(h*e+d))*255);g=Math.round((1-(a*e+d))*255);b=Math.round((1-(f*e+d))*255);return("rgb("+r+", "+g+", "+b+")")},setSlideWidth:function($super){},onSlideClicked:function(a){if(a==this.colour_item){this.addNewColour(this.TYPE_CUSTOM,this.c,this.m,this.y,this.k)}if(a==this.cyan||a==this.magenta||a==this.yellow||a==this.key){}else{if(!a.hasClassName("hovered")){a=a.up(".item")}if(a!=null){this.focusInput();this.setSelection(a);this.hideSlide()}this.hideSlide()}},addNewColour:function(h,l,d,j,e){var i="cmyk("+l+"%, "+d+"%, "+j+"%, "+e+"%)";var a=this.colour_item_template.evaluate({colour:i,c:l,m:d,y:j,k:e,rgb:this.toRGB(l,d,j,e)});switch(h){case this.TYPE_TEMPLATE:this.colours_in_separator.show();var f=false;this.list.select(".item").each(function(c){if(c.hasClassName("separator")){throw $break}if(c.readAttribute("title")==i){f=true;throw $break}});if(!f){this.colours_in_separator.insert({before:a})}break;case this.TYPE_DEFAULT:this.colours_in_separator.insert({after:a});break;case this.TYPE_CUSTOM:this.custom_colours_separator.insert({after:a});break}},addDefaultColours:function(){this.addNewColour(this.TYPE_DEFAULT,0,0,0,100);this.addNewColour(this.TYPE_DEFAULT,0,0,0,0);this.addNewColour(this.TYPE_DEFAULT,50,0,0,0);this.addNewColour(this.TYPE_DEFAULT,100,0,0,0);this.addNewColour(this.TYPE_DEFAULT,100,60,0,6);this.addNewColour(this.TYPE_DEFAULT,100,47,0,20);this.addNewColour(this.TYPE_DEFAULT,100,60,0,25);this.addNewColour(this.TYPE_DEFAULT,0,100,100,0);this.addNewColour(this.TYPE_DEFAULT,0,79,94,0);this.addNewColour(this.TYPE_DEFAULT,0,100,100,10);this.addNewColour(this.TYPE_DEFAULT,27,76,0,6);this.addNewColour(this.TYPE_DEFAULT,91,0,83,0);this.addNewColour(this.TYPE_DEFAULT,100,0,65,0);this.addNewColour(this.TYPE_DEFAULT,100,0,65,0);this.addNewColour(this.TYPE_DEFAULT,100,0,47,60);this.addNewColour(this.TYPE_DEFAULT,15,0,100,30);this.addNewColour(this.TYPE_DEFAULT,94,94,0,0);this.addNewColour(this.TYPE_DEFAULT,34,31,0,6);this.addNewColour(this.TYPE_DEFAULT,0,30,0,0);this.addNewColour(this.TYPE_DEFAULT,0,100,0,0);this.addNewColour(this.TYPE_DEFAULT,0,91,34,38);this.addNewColour(this.TYPE_DEFAULT,0,56,94,34);this.addNewColour(this.TYPE_DEFAULT,0,51,94,60);this.addNewColour(this.TYPE_DEFAULT,0,56,100,83);this.addNewColour(this.TYPE_DEFAULT,0,0,50,0);this.addNewColour(this.TYPE_DEFAULT,0,0,100,0);this.addNewColour(this.TYPE_DEFAULT,0,30,94,0);this.addNewColour(this.TYPE_DEFAULT,0,8,43,0);this.addNewColour(this.TYPE_DEFAULT,0,56,87,0);this.addNewColour(this.TYPE_DEFAULT,25,0,0,80);this.addNewColour(this.TYPE_DEFAULT,6,0,0,34);this.addNewColour(this.TYPE_DEFAULT,0,0,0,12);this.addNewColour(this.TYPE_DEFAULT,8,0,6,34);this.addNewColour(this.TYPE_DEFAULT,0,0,0,8);this.addNewColour(this.TYPE_DEFAULT,0,6,6,27)}});var FontCombo=Class.create(Combo,{font_item_template:new Template("			<li class='item' title='#{value}'> 				<a class='font_item' style='background-position: 0 #{position}px'></a> 			</li> 		"),total_template_items:0,initialize:function($super,a){$super(a)},buildDropdown:function($super){$super();this.combo.addClassName("font");this.slide.addClassName("font");this.separator=Builder.node("li",{"class":"separator",style:"display: none;"});this.list.insert(this.separator)},addItem:function($super,c){this.total_template_items++;var a=c.title;var d=false;if(c.title&&c.title.startsWith("*")){d=true;a=c.title.gsub("*","")}this.addNewFont(c.value,a,d)},addNewFont:function(e,c,f){if(e&&c!=null){var d=this.font_item_template.evaluate({value:e,position:c*-25});if(f){var a=null;this.list.select("li").each(function(h){var i=h.readAttribute("title");if(i==e){throw $break}else{if(i>e||h.hasClassName("separator")){a=h;throw $break}}});if(a){this.separator.show();a.insert({before:d})}}else{this.list.insert({bottom:d})}}}});var DirectionCombo=Class.create(Combo,{direction_item_template:new Template("			<li class='item' title='#{value}'> 				<a title='#{title}' class='direction_item' style='background-position: 0 #{position}px'> </a> 			</li> 		"),total_template_items:0,initialize:function($super,f,a,e,d,c){this.class_name=a;this.defaults=e;this.enabled_offset_x=d;this.disabled_offset_x=c;$super(f)},loadListItems:function($super){$super();this.addDefaultDirections()},buildDropdown:function($super){$super();this.combo.addClassName(this.class_name);this.slide.addClassName(this.class_name)},setSlideWidth:function($super){},addItem:function($super,a){},addNewDirection:function(a){if(a!=null&&a>=0&&a<this.defaults.length){var d=this.defaults[a].get("text");var c=this.defaults[a].get("value");var e=this.direction_item_template.evaluate({title:d,value:c,position:a*-34-312});this.list.insert({bottom:e})}},addDefaultDirections:function(){var a=0;this.defaults.each(function(c){this.addNewDirection(a);a++}.bind(this))},setEnabled:function($super,a){$super(a);this.slide.select(".direction_item").each(this.setBackgroundPos.bind(this,a));this.combo.select(".direction_item").each(this.setBackgroundPos.bind(this,a))},setBackgroundPos:function(a,c){if(a){pos=c.getStyle("backgroundPosition");var d=this.enabled_offset_x+"px ";pos=pos.gsub(/.* /,d);c.setStyle({backgroundPosition:pos})}else{pos=c.getStyle("backgroundPosition");var d=this.disabled_offset_x+"px ";pos=pos.gsub(/.* /,d);c.setStyle({backgroundPosition:pos})}}});var ALIGNMENTS=$A([$H({value:"topleft",text:"top left"}),$H({value:"topcenter",text:"top center"}),$H({value:"topright",text:"top right"}),$H({value:"middleleft",text:"middle left"}),$H({value:"middlecenter",text:"middle center"}),$H({value:"middleright",text:"middle right"}),$H({value:"bottomleft",text:"bottom left"}),$H({value:"bottomcenter",text:"bottom center"}),$H({value:"bottomright",text:"bottom right"})]);var AlignmentCombo=Class.create(DirectionCombo,{initialize:function($super,a){$super(a,"alignment",ALIGNMENTS,0,-32)}});var SHADOW_DIRECTIONS=$A([$H({value:"225",text:"top left"}),$H({value:"270",text:"top center"}),$H({value:"315",text:"top right"}),$H({value:"180",text:"middle left"}),$H({value:"0",text:"middle center"}),$H({value:"360",text:"middle right"}),$H({value:"135",text:"bottom left"}),$H({value:"90",text:"bottom center"}),$H({value:"45",text:"bottom right"})]);var ShadowDirectionCombo=Class.create(DirectionCombo,{initialize:function($super,a){$super(a,"shadow_direction",SHADOW_DIRECTIONS,-64,-96)}});var FontSizeCombo=Class.create(Combo,{buildDropdown:function($super){$super();this.combo.addClassName("size");this.slide.addClassName("size")}});Element.addMethods({scrollTo:function(a,d,c){var a=$(a);if(arguments.length==1){var e=a.cumulativeOffset();window.scrollTo(e[0],e[1])}else{a.scrollLeft=d;a.scrollTop=c}return a},getCaretPos:function(c){var d=0;if(Prototype.Browser.IE){var a=document.selection.createRange();a.moveStart("character",-c.value.length);d=a.text.length}else{d=c.selectionEnd}return d},setCaretPos:function(c,d){if(Prototype.Browser.IE){var a=document.selection.createRange();a.moveStart("character",-c.value.length);a.moveStart("character",d);a.moveEnd("character",0);a.select()}else{c.selectionStart=d;c.selectionEnd=d;c.focus()}}});var custom_combos=null;function loadCombos(){if(custom_combos!=null){custom_combos.each(function(a){a.destroy()})}combos=$$("select.custom_combo");custom_combos=[];combos.each(function(a){if(a.hasClassName("colour")){custom_combos.push(new ColourCombo(a))}else{if(a.hasClassName("font")){custom_combos.push(new FontCombo(a))}else{if(a.hasClassName("alignment")){custom_combos.push(new AlignmentCombo(a))}else{if(a.hasClassName("shadow_direction")){custom_combos.push(new ShadowDirectionCombo(a))}else{if(a.hasClassName("size")){custom_combos.push(new FontSizeCombo(a))}else{custom_combos.push(new Combo(a))}}}}}})}document.observe("dom:loaded",function(){loadCombos()});var FONTS=$A([$H({name:"Aachen BT",bold:true,italic:false,bolditalic:false}),$H({name:"AdLibBT",bold:false,italic:false,bolditalic:false}),$H({name:"Alexei Copperplate",bold:false,italic:false,bolditalic:false}),$H({name:"Aldine401BT-RomanA",bold:true,italic:true,bolditalic:true}),$H({name:"Aldine721BT",bold:true,italic:true,bolditalic:true}),$H({name:"Aldine721BT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"Alefbet",bold:false,italic:false,bolditalic:false}),$H({name:"AlgerianD",bold:false,italic:false,bolditalic:false}),$H({name:"AlgerianBasD",bold:false,italic:false,bolditalic:false}),$H({name:"AllegroBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"AlternateGothicNo2BT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"AmazoneBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"AmeliaBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"AmericanUncD",bold:false,italic:false,bolditalic:false}),$H({name:"AmericanaBT",bold:true,italic:true,bolditalic:false}),$H({name:"AmericanaBT-ExtraBold",bold:false,italic:false,bolditalic:false}),$H({name:"AmericanaBT-ExtraBoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"AmericanGaramondBT",bold:true,italic:true,bolditalic:true}),$H({name:"AmerigoBT-RomanA",bold:true,italic:true,bolditalic:true}),$H({name:"AmerigoBT-MediumA",bold:false,italic:true,bolditalic:false}),$H({name:"AmericanTextBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"AmerTypewriterITCbyBT-Medium",bold:true,italic:false,bolditalic:false}),$H({name:"Architecture-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"ArialMT",bold:true,italic:true,bolditalic:true}),$H({name:"ArnoldBoeD",bold:false,italic:false,bolditalic:false}),$H({name:"ArribaArribaPlain",bold:false,italic:false,bolditalic:false}),$H({name:"ArrusBT",bold:true,italic:true,bolditalic:true}),$H({name:"ArrusBT-Black",bold:false,italic:true,bolditalic:false}),$H({name:"ArsisD-Regu",bold:false,italic:true,bolditalic:false}),$H({name:"AtlanticInline",bold:false,italic:false,bolditalic:false}),$H({name:"AuroraBT-RomanCondensed",bold:true,italic:false,bolditalic:false}),$H({name:"AvantGardeITCbyBT-Medium",bold:true,italic:true,bolditalic:true}),$H({name:"BakerSignetBT-Roman",bold:false,italic:false,bolditalic:false}),$H({name:"BalloonBT-Light",bold:true,italic:false,bolditalic:false}),$H({name:"BalloonBT-ExtraBold",bold:false,italic:false,bolditalic:false}),$H({name:"BangleNormal",bold:true,italic:true,bolditalic:false}),$H({name:"BangPlain",bold:false,italic:false,bolditalic:false}),$H({name:"BankGothicBT-Light",bold:true,italic:false,bolditalic:false}),$H({name:"Bard-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"BauerBodoniBT-Roman",bold:true,italic:true,bolditalic:true}),$H({name:"BauerBodoniBT-Black",bold:false,italic:true,bolditalic:false}),$H({name:"BauerBodoniBT-BlackCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"BauerBodoniBT-Titling",bold:false,italic:false,bolditalic:false}),$H({name:"BauhausITCbyBT-Light",bold:true,italic:false,bolditalic:false}),$H({name:"BauhausITCbyBT-Bold",bold:true,italic:false,bolditalic:false}),$H({name:"Bedrock-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"Beehive-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"BellCentennialBT-Address",bold:false,italic:false,bolditalic:false}),$H({name:"BellCentennialBT-BoldListing",bold:false,italic:false,bolditalic:false}),$H({name:"BellCentennialBT-NameAndNumber",bold:false,italic:false,bolditalic:false}),$H({name:"BellCentennialBT-SubCaption",bold:false,italic:false,bolditalic:false}),$H({name:"BellGothicBT-Roman",bold:true,italic:false,bolditalic:false}),$H({name:"BellGothicBT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"BelweBT-Light",bold:true,italic:false,bolditalic:false}),$H({name:"BelweBT-Medium",bold:false,italic:false,bolditalic:false}),$H({name:"BelweBT-RomanCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"BenguiatGothicITCbyBT-Book",bold:true,italic:true,bolditalic:true}),$H({name:"BenguiatITCbyBT-Book",bold:true,italic:true,bolditalic:true}),$H({name:"BergellPlain",bold:false,italic:false,bolditalic:false}),$H({name:"BernhardFashionBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"BernhardModernBT-Roman",bold:true,italic:true,bolditalic:true}),$H({name:"BernhardTangoBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"BertramPlain",bold:false,italic:false,bolditalic:false}),$H({name:"BibleScrT",bold:false,italic:false,bolditalic:false}),$H({name:"BickleyScriptPlain",bold:false,italic:false,bolditalic:false}),$H({name:"BinnerD",bold:false,italic:false,bolditalic:false}),$H({name:"BlacklightD",bold:false,italic:false,bolditalic:false}),$H({name:"Blackletter686BT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"BlippoBT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"BodegaSans-Light",bold:false,italic:false,bolditalic:false}),$H({name:"BodegaSans-LightOldstyle",bold:false,italic:false,bolditalic:false}),$H({name:"BodoniBT-Roman",bold:true,italic:true,bolditalic:true}),$H({name:"BodoniBT-Book",bold:false,italic:true,bolditalic:false}),$H({name:"BodoniBT-BoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"PosterBodoniBT",bold:false,italic:true,bolditalic:false}),$H({name:"BoinkPlain",bold:false,italic:false,bolditalic:false}),$H({name:"BoltBoldITCbyBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"BookmanITCbyBT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"BookmanITCbyBT-Demi",bold:false,italic:true,bolditalic:false}),$H({name:"BroadwayBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"BroadwayEngravedBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"BremenBT-Bold",bold:true,italic:false,bolditalic:false}),$H({name:"BernhardBoldCondensedBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"Brisk-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"Brochure-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"BrodyD",bold:false,italic:false,bolditalic:false}),$H({name:"BronxPlain",bold:false,italic:false,bolditalic:false}),$H({name:"BruceOldStyleBT-Roman",bold:false,italic:true,bolditalic:false}),$H({name:"Brush445BT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"Brush738BT-RegularA",bold:false,italic:false,bolditalic:false}),$H({name:"BrushScriptBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"BulmerBT-Roman",bold:false,italic:true,bolditalic:false}),$H({name:"BusoramaITCbyBT-Medium",bold:false,italic:false,bolditalic:false}),$H({name:"BusterD",bold:false,italic:false,bolditalic:false}),$H({name:"BuxomD",bold:false,italic:false,bolditalic:false}),$H({name:"Calligraphic421BT-RomanB",bold:false,italic:false,bolditalic:false}),$H({name:"Calligraphic810BT-Roman",bold:false,italic:true,bolditalic:false}),$H({name:"CamelliaD",bold:false,italic:false,bolditalic:false}),$H({name:"Cancun-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"Candida-Roman",bold:true,italic:true,bolditalic:false}),$H({name:"Carleton-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"CarminaBT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"CarminaBT-Medium",bold:true,italic:true,bolditalic:true}),$H({name:"CarminaBT-Black",bold:false,italic:true,bolditalic:false}),$H({name:"CasablancaAntique-Normal",bold:false,italic:true,bolditalic:false}),$H({name:"Caslon224ITCbyBT-Book",bold:false,italic:true,bolditalic:false}),$H({name:"Caslon224ITCbyBT-Bold",bold:false,italic:false,bolditalic:true}),$H({name:"Caslon540BT-Roman",bold:false,italic:true,bolditalic:false}),$H({name:"CaslonBT-Bold",bold:false,italic:false,bolditalic:true}),$H({name:"CaslonOldFaceBT-Roman",bold:true,italic:true,bolditalic:false}),$H({name:"CaslonOpenfaceBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"CastleT-Ligh",bold:true,italic:false,bolditalic:false}),$H({name:"CastleT-Book",bold:false,italic:false,bolditalic:false}),$H({name:"CastleT-Ultr",bold:false,italic:false,bolditalic:false}),$H({name:"CataneoBT-Light",bold:false,italic:false,bolditalic:false}),$H({name:"CataneoBT-Regular",bold:true,italic:false,bolditalic:false}),$H({name:"CataneoBT-RegularSwash",bold:false,italic:false,bolditalic:false}),$H({name:"CaxtonBT-Book",bold:true,italic:true,bolditalic:true}),$H({name:"CaxtonBT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"Century725BT-Roman",bold:true,italic:true,bolditalic:false}),$H({name:"Century725BT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"Century725BT-Roman-Condensed",bold:true,italic:false,bolditalic:false}),$H({name:"Century731BT-RomanA",bold:true,italic:true,bolditalic:true}),$H({name:"Century751BT-RomanB",bold:false,italic:true,bolditalic:false}),$H({name:"CenturyExpandedBT-Roman",bold:true,italic:true,bolditalic:true}),$H({name:"CenturyOldstyleBT",bold:true,italic:true,bolditalic:false}),$H({name:"CenturySchoolbookBT",bold:true,italic:true,bolditalic:true}),$H({name:"CenturySchoolbookBT-BoldCond",bold:false,italic:false,bolditalic:false}),$H({name:"CenturySchoolbookBT-Monospace",bold:false,italic:false,bolditalic:false}),$H({name:"Charlesworth-Normal",bold:true,italic:false,bolditalic:false}),$H({name:"CharterBT",bold:true,italic:true,bolditalic:true}),$H({name:"CharterBT-Black",bold:false,italic:true,bolditalic:false}),$H({name:"CheltenhamBT",bold:true,italic:true,bolditalic:true}),$H({name:"CheltenhamBT-BoldCondensed",bold:false,italic:true,bolditalic:false}),$H({name:"CheltenhamBT-BoldExtraCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"CheltenhamBT-BoldHeadline",bold:false,italic:true,bolditalic:false}),$H({name:"CheltenhamITCbyBT-Book",bold:true,italic:false,bolditalic:true}),$H({name:"ChillerPlain",bold:false,italic:false,bolditalic:false}),$H({name:"ChiselD",bold:false,italic:false,bolditalic:false}),$H({name:"CircleD",bold:false,italic:false,bolditalic:false}),$H({name:"CityD-Ligh",bold:true,italic:false,bolditalic:false}),$H({name:"CityD-Bold",bold:false,italic:false,bolditalic:false}),$H({name:"ClarendonBT-Light",bold:false,italic:false,bolditalic:false}),$H({name:"ClarendonBT-Roman",bold:true,italic:false,bolditalic:false}),$H({name:"ClarendonBT-RomanCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"ClarendonBT-BoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"ClarendonBT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"ClarendonBT-Heavy",bold:false,italic:false,bolditalic:false}),$H({name:"ClassicalGaramondBT-Roman",bold:true,italic:true,bolditalic:true}),$H({name:"CloisterBlackBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"CloisterOpenFaceBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"CommercialScriptBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"CommonBullets",bold:false,italic:false,bolditalic:false}),$H({name:"CompactaBT",bold:true,italic:true,bolditalic:true}),$H({name:"CompactaBT-Light",bold:false,italic:false,bolditalic:false}),$H({name:"CompactaBT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"CooperBT",bold:true,italic:true,bolditalic:true}),$H({name:"CooperBT-Medium",bold:false,italic:true,bolditalic:false}),$H({name:"CooperBT-Black",bold:false,italic:true,bolditalic:false}),$H({name:"CooperBT-BlackHeadline",bold:false,italic:true,bolditalic:false}),$H({name:"CooperBT-BlackOutline",bold:false,italic:false,bolditalic:false}),$H({name:"CopperplateGothicBT",bold:true,italic:false,bolditalic:false}),$H({name:"CopperplateGothicBT-Heavy",bold:false,italic:false,bolditalic:false}),$H({name:"CopperplateGothicBT-RomanCond",bold:true,italic:false,bolditalic:false}),$H({name:"Cosmic-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"CosmicTwo-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"Cottage-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"CountdownD",bold:false,italic:false,bolditalic:false}),$H({name:"Courier10PitchBT",bold:true,italic:true,bolditalic:true}),$H({name:"CrazyCreaturesNormal",bold:true,italic:true,bolditalic:true}),$H({name:"CrilleeBT-Italic",bold:false,italic:false,bolditalic:false}),$H({name:"CroissantD",bold:false,italic:false,bolditalic:false}),$H({name:"CushingITCbyBT-Heavy",bold:false,italic:true,bolditalic:false}),$H({name:"Czar",bold:true,italic:true,bolditalic:true}),$H({name:"DancinPlain",bold:false,italic:false,bolditalic:false}),$H({name:"Dauphin-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"DavidaBoldBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"Decorated035BT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"DellaRobbiaBT",bold:true,italic:false,bolditalic:false}),$H({name:"DeVinneBT",bold:true,italic:true,bolditalic:true}),$H({name:"DexGothicD",bold:false,italic:false,bolditalic:false}),$H({name:"DextorD",bold:false,italic:false,bolditalic:false}),$H({name:"DextorOutD",bold:false,italic:false,bolditalic:false}),$H({name:"DFCalligraphicOrnaments",bold:false,italic:false,bolditalic:false}),$H({name:"DFDiversions",bold:false,italic:false,bolditalic:false}),$H({name:"DFDiversities",bold:false,italic:false,bolditalic:false}),$H({name:"DiskusD-Medi",bold:false,italic:false,bolditalic:false}),$H({name:"DomCasualBT-Regular",bold:true,italic:true,bolditalic:true}),$H({name:"Dutch766BT-RomanA",bold:true,italic:true,bolditalic:false}),$H({name:"Dutch801BT",bold:true,italic:true,bolditalic:true}),$H({name:"Dutch801BT-RomanHeadline",bold:false,italic:true,bolditalic:false}),$H({name:"Dutch801BT-SemiBold",bold:false,italic:false,bolditalic:true}),$H({name:"Dutch801BT-ExtraBold",bold:false,italic:false,bolditalic:true}),$H({name:"Dutch809BT-RomanC",bold:true,italic:true,bolditalic:false}),$H({name:"Dutch811BT-RomanD",bold:true,italic:true,bolditalic:true}),$H({name:"Dutch823BT-RomanB",bold:true,italic:true,bolditalic:true}),$H({name:"EckmannD",bold:false,italic:false,bolditalic:false}),$H({name:"Egyptian505BT-Light",bold:true,italic:false,bolditalic:false}),$H({name:"Egyptian505BT-Medium",bold:true,italic:false,bolditalic:false}),$H({name:"Egyptian710BT-RegularA",bold:false,italic:false,bolditalic:false}),$H({name:"Eklektic-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"ElegantGaramondBT",bold:true,italic:true,bolditalic:false}),$H({name:"EmbassyBT",bold:false,italic:false,bolditalic:false}),$H({name:"Emboss",bold:false,italic:false,bolditalic:false}),$H({name:"EmpireBT",bold:false,italic:false,bolditalic:false}),$H({name:"Engine",bold:true,italic:true,bolditalic:false}),$H({name:"Engine-RegularLF",bold:true,italic:true,bolditalic:false}),$H({name:"Engine-Caps",bold:false,italic:false,bolditalic:false}),$H({name:"EnglischeSchT-Regu",bold:true,italic:false,bolditalic:false}),$H({name:"EnglischeSchT-DemiBold",bold:false,italic:false,bolditalic:false}),$H({name:"English111AdagioBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"English111PrestoBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"English111VivaceBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"English157BT",bold:false,italic:false,bolditalic:false}),$H({name:"EngraversGothicBT",bold:false,italic:false,bolditalic:false}),$H({name:"EngraversOldEnglishBT",bold:true,italic:false,bolditalic:false}),$H({name:"EngraversRomanBT",bold:true,italic:false,bolditalic:false}),$H({name:"EnviroD",bold:false,italic:false,bolditalic:false}),$H({name:"ErasITCbyBT-Light",bold:true,italic:false,bolditalic:false}),$H({name:"ErasITCbyBT-Book",bold:true,italic:false,bolditalic:false}),$H({name:"ErasITCbyBT-Medium",bold:false,italic:false,bolditalic:false}),$H({name:"ErasITCbyBT-Ultra",bold:true,italic:false,bolditalic:false}),$H({name:"ErasContour",bold:false,italic:false,bolditalic:false}),$H({name:"EwieD",bold:false,italic:false,bolditalic:false}),$H({name:"Exotic350BT-Light",bold:true,italic:false,bolditalic:false}),$H({name:"Exotic350BT-DemiBold",bold:false,italic:false,bolditalic:false}),$H({name:"Expo",bold:false,italic:false,bolditalic:false}),$H({name:"Fences",bold:false,italic:false,bolditalic:false}),$H({name:"FeniceITCbyBT",bold:true,italic:true,bolditalic:true}),$H({name:"FetteFraD",bold:false,italic:false,bolditalic:false}),$H({name:"FineHandPlain",bold:false,italic:false,bolditalic:false}),$H({name:"Firenze",bold:false,italic:false,bolditalic:false}),$H({name:"FlamencoD",bold:false,italic:false,bolditalic:false}),$H({name:"FlamencoInlD",bold:false,italic:false,bolditalic:false}),$H({name:"Flareserif821BT",bold:true,italic:false,bolditalic:true}),$H({name:"Flareserif821BT-Light",bold:false,italic:false,bolditalic:false}),$H({name:"FlashD",bold:true,italic:false,bolditalic:false}),$H({name:"FlemishScriptBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"FolioBT-Light",bold:true,italic:true,bolditalic:false}),$H({name:"FolioBT-Book",bold:true,italic:false,bolditalic:false}),$H({name:"FolioBT-BoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"FolioBT-ExtraBold",bold:false,italic:false,bolditalic:false}),$H({name:"FolliesPlain",bold:false,italic:false,bolditalic:false}),$H({name:"Formal436BT",bold:false,italic:false,bolditalic:false}),$H({name:"FormalScript421BT",bold:false,italic:false,bolditalic:false}),$H({name:"FrakturBT",bold:false,italic:false,bolditalic:false}),$H({name:"FrankfurterHigD",bold:false,italic:false,bolditalic:false}),$H({name:"FranklinGothicITCbyBT-Book",bold:false,italic:true,bolditalic:false}),$H({name:"FranklinGothicITCbyBT-Demi",bold:false,italic:true,bolditalic:false}),$H({name:"FranklinGothicITCbyBT-Heavy",bold:false,italic:true,bolditalic:false}),$H({name:"Freeform710BT",bold:false,italic:false,bolditalic:false}),$H({name:"Freeform721BT",bold:true,italic:true,bolditalic:true}),$H({name:"Freeform721BT-Black",bold:false,italic:true,bolditalic:false}),$H({name:"Freehand471BT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"Freehand521BT-RegularC",bold:false,italic:false,bolditalic:false}),$H({name:"Freehand575BT-RegularB",bold:false,italic:false,bolditalic:false}),$H({name:"Freehand591BT-RegularA",bold:false,italic:false,bolditalic:false}),$H({name:"FreestyleScrD",bold:true,italic:false,bolditalic:false}),$H({name:"FrizQuadrataITCbyBT",bold:true,italic:false,bolditalic:false}),$H({name:"FrysBaskervilleBT",bold:false,italic:false,bolditalic:false}),$H({name:"FuturaBT-Book",bold:true,italic:true,bolditalic:true}),$H({name:"FuturaBT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"FuturaBT-LightCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"FuturaBT-Medium",bold:false,italic:true,bolditalic:false}),$H({name:"FuturaBT-MediumCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"FuturaBT-Heavy",bold:false,italic:true,bolditalic:false}),$H({name:"FuturaBlackBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"FuturaBT-BoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"FuturaBT-BoldCondensedItalic",bold:false,italic:false,bolditalic:false}),$H({name:"FuturaBT-ExtraBlack",bold:false,italic:true,bolditalic:false}),$H({name:"FuturaBT-ExtraBlackCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"FuturaBT-ExtraBlackCondItalic",bold:false,italic:false,bolditalic:false}),$H({name:"FuturaLtCnBTItalic",bold:false,italic:false,bolditalic:false}),$H({name:"FuturaMdCnBTItalic",bold:false,italic:false,bolditalic:false}),$H({name:"GalaxyBT",bold:false,italic:false,bolditalic:false}),$H({name:"Galleria",bold:false,italic:false,bolditalic:false}),$H({name:"GalliardITCbyBT",bold:true,italic:true,bolditalic:true}),$H({name:"GandoBT",bold:false,italic:false,bolditalic:false}),$H({name:"GaramondITCbyBT-Book",bold:true,italic:true,bolditalic:true}),$H({name:"GaramondITCbyBT-BookCondensed",bold:false,italic:true,bolditalic:false}),$H({name:"GaramondITCbyBT-BoldCondensed",bold:false,italic:true,bolditalic:false}),$H({name:"GaramondNo4CyrTCY-Ligh",bold:false,italic:true,bolditalic:false}),$H({name:"GaramondNo4CyrTCY-Medi",bold:false,italic:false,bolditalic:false}),$H({name:"OriginalGaramondBT",bold:true,italic:true,bolditalic:true}),$H({name:"GeographicSymbols",bold:false,italic:false,bolditalic:false}),$H({name:"Geometric212BT",bold:true,italic:false,bolditalic:false}),$H({name:"Geometric212BT-BookCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"Geometric212BT-HeavyCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"Geometric231BT-RomanC",bold:true,italic:false,bolditalic:false}),$H({name:"Geometric231BT-LightC",bold:false,italic:false,bolditalic:false}),$H({name:"Geometric231BT-HeavyC",bold:false,italic:false,bolditalic:false}),$H({name:"Geometric415BT-LiteA",bold:false,italic:true,bolditalic:false}),$H({name:"Geometric415BT-MediumA",bold:false,italic:true,bolditalic:false}),$H({name:"Geometric415BT-BlackA",bold:false,italic:true,bolditalic:false}),$H({name:"Geometric706BT-MediumB",bold:false,italic:false,bolditalic:false}),$H({name:"Geometric706BT-BoldCondensedB",bold:false,italic:false,bolditalic:false}),$H({name:"Geometric706BT-BlackB",bold:false,italic:false,bolditalic:false}),$H({name:"Geometric706BT-BlackCondensedB",bold:false,italic:false,bolditalic:false}),$H({name:"Geometric885BT-RegularD",bold:false,italic:false,bolditalic:false}),$H({name:"GeometricSlab703BT-Light",bold:true,italic:true,bolditalic:true}),$H({name:"GeometricSlab703BT-Medium",bold:false,italic:true,bolditalic:false}),$H({name:"GeometricSlab703BT-XtraBold",bold:false,italic:true,bolditalic:false}),$H({name:"GeometricSlab703BT-BoldCond",bold:false,italic:false,bolditalic:false}),$H({name:"GeometricSlab703BT-MediumCond",bold:false,italic:false,bolditalic:false}),$H({name:"GeometricSlab703BT-XtraBoldCond",bold:false,italic:false,bolditalic:false}),$H({name:"GeometricSlab712BT-LightA",bold:true,italic:true,bolditalic:false}),$H({name:"GeometricSlab712BT-MediumA",bold:false,italic:true,bolditalic:false}),$H({name:"GeometricSlab712BT-ExtraBoldA",bold:false,italic:false,bolditalic:false}),$H({name:"Glacier",bold:false,italic:true,bolditalic:false}),$H({name:"GlaserSteD",bold:false,italic:false,bolditalic:false}),$H({name:"GoldMine",bold:false,italic:false,bolditalic:false}),$H({name:"GorillaITCbyBT",bold:false,italic:false,bolditalic:false}),$H({name:"Gothic720BT",bold:true,italic:true,bolditalic:true}),$H({name:"Gothic720BT-LightB",bold:false,italic:true,bolditalic:false}),$H({name:"Gothic725BT-BoldA",bold:false,italic:false,bolditalic:false}),$H({name:"Gothic725BT-BlackA",bold:false,italic:false,bolditalic:false}),$H({name:"Gothic821CondensedBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"GothicNo13BT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"GoudyCatalogueBT",bold:false,italic:false,bolditalic:false}),$H({name:"GoudyHandtooledBT",bold:false,italic:false,bolditalic:false}),$H({name:"GoudyHeavyfaceBT",bold:false,italic:false,bolditalic:false}),$H({name:"GoudyHeavyfaceBT-RegularCond",bold:false,italic:false,bolditalic:false}),$H({name:"GoudyOldStyleBT",bold:true,italic:true,bolditalic:true}),$H({name:"GoudyOldStyleBT-ExtraBold",bold:false,italic:false,bolditalic:false}),$H({name:"GoudySansITCbyBT-Light",bold:true,italic:true,bolditalic:false}),$H({name:"GoudySansITCbyBT-Medium",bold:false,italic:true,bolditalic:false}),$H({name:"GoudySansITCbyBT-Black",bold:false,italic:true,bolditalic:false}),$H({name:"Griffon",bold:false,italic:false,bolditalic:false}),$H({name:"GriffonShadow",bold:false,italic:false,bolditalic:false}),$H({name:"GrizzlyITCbyBT",bold:false,italic:false,bolditalic:false}),$H({name:"GrouchITCbyBT",bold:false,italic:false,bolditalic:false}),$H({name:"HandelGothicBT",bold:true,italic:false,bolditalic:false}),$H({name:"HandelGotD-Ligh",bold:false,italic:false,bolditalic:false}),$H({name:"HarlowD",bold:false,italic:false,bolditalic:false}),$H({name:"Harpoon",bold:false,italic:false,bolditalic:false}),$H({name:"HazelPlain",bold:false,italic:false,bolditalic:false}),$H({name:"HehenHebT-Bold",bold:false,italic:false,bolditalic:false}),$H({name:"HoboBT",bold:false,italic:false,bolditalic:false}),$H({name:"HollyweirdPlain",bold:false,italic:false,bolditalic:false}),$H({name:"Honda",bold:false,italic:false,bolditalic:false}),$H({name:"Horatio-Ligh",bold:true,italic:false,bolditalic:false}),$H({name:"Horatio-Med",bold:false,italic:false,bolditalic:false}),$H({name:"HorizonBT",bold:false,italic:false,bolditalic:false}),$H({name:"HorndonD",bold:false,italic:false,bolditalic:false}),$H({name:"Humanist521BT",bold:true,italic:true,bolditalic:true}),$H({name:"Humanist521BT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"Humanist521BT-ExtraBold",bold:false,italic:false,bolditalic:false}),$H({name:"Humanist521BT-UltraBold",bold:false,italic:false,bolditalic:false}),$H({name:"Humanist521BT-RomanCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"Humanist521BT-BoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"Humanist521BT-XtraBoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"Humanist531BT-RomanA",bold:true,italic:false,bolditalic:false}),$H({name:"Humanist531BT-BlackA",bold:false,italic:false,bolditalic:false}),$H({name:"Humanist531BT-UltraBlackA",bold:false,italic:false,bolditalic:false}),$H({name:"Humanist777BT-RomanB",bold:true,italic:true,bolditalic:true}),$H({name:"Humanist777BT-LightB",bold:false,italic:true,bolditalic:false}),$H({name:"Humanist777BT-BlackB",bold:false,italic:true,bolditalic:false}),$H({name:"Humanist970BT-RomanC",bold:true,italic:false,bolditalic:false}),$H({name:"HumanistSlabserif712BT",bold:true,italic:true,bolditalic:false}),$H({name:"HumanistSlabserif712BT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"HuxleyVerticalBT",bold:false,italic:false,bolditalic:false}),$H({name:"IceAgeD",bold:false,italic:false,bolditalic:false}),$H({name:"Impact",bold:false,italic:false,bolditalic:false}),$H({name:"ImperialBT",bold:true,italic:true,bolditalic:false}),$H({name:"ImpressBT",bold:false,italic:false,bolditalic:false}),$H({name:"ImpulsBT",bold:false,italic:false,bolditalic:false}),$H({name:"Incised901BT",bold:true,italic:true,bolditalic:false}),$H({name:"Incised901BT-Light",bold:false,italic:false,bolditalic:false}),$H({name:"Incised901BT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"Incised901BT-Compact",bold:false,italic:false,bolditalic:false}),$H({name:"Incised901BT-BoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"Incised901BT-Nord",bold:false,italic:true,bolditalic:false}),$H({name:"Industrial736BT",bold:false,italic:true,bolditalic:false}),$H({name:"Informal011BT",bold:false,italic:false,bolditalic:false}),$H({name:"Informal011BT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"IowanOldStyleBT",bold:true,italic:true,bolditalic:true}),$H({name:"IowanOldStyleBT-Black",bold:false,italic:true,bolditalic:false}),$H({name:"Ireland",bold:false,italic:false,bolditalic:false}),$H({name:"JazzPlain",bold:false,italic:false,bolditalic:false}),$H({name:"JohnHandyPlain",bold:false,italic:false,bolditalic:false}),$H({name:"Jupiter-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"KabarettD",bold:false,italic:false,bolditalic:false}),$H({name:"KabelITCbyBT-Book",bold:true,italic:false,bolditalic:false}),$H({name:"KabelITCbyBT-Medium",bold:false,italic:false,bolditalic:false}),$H({name:"KabelITCbyBT-Demi",bold:false,italic:false,bolditalic:false}),$H({name:"KabelITCbyBT-Ultra",bold:false,italic:false,bolditalic:false}),$H({name:"KaufmannBT",bold:true,italic:false,bolditalic:false}),$H({name:"Keypunch",bold:false,italic:false,bolditalic:false}),$H({name:"Keystroke",bold:false,italic:false,bolditalic:false}),$H({name:"Kids",bold:false,italic:false,bolditalic:false}),$H({name:"KisBT",bold:false,italic:true,bolditalic:false}),$H({name:"KorinnaITCbyBT-Regular",bold:true,italic:false,bolditalic:false}),$H({name:"KorinnaITCbyBT-KursivRegular",bold:true,italic:false,bolditalic:false}),$H({name:"Kuenstler480BT",bold:true,italic:true,bolditalic:true}),$H({name:"Kuenstler480BT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"KunstlerschreibschD-Medi",bold:true,italic:false,bolditalic:false}),$H({name:"LaBambaPlain",bold:false,italic:false,bolditalic:false}),$H({name:"Lapidary333BT",bold:true,italic:true,bolditalic:true}),$H({name:"Lapidary333BT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"LasVegasD",bold:false,italic:false,bolditalic:false}),$H({name:"Latin725BT",bold:true,italic:true,bolditalic:true}),$H({name:"Latin725BT-Medium",bold:false,italic:true,bolditalic:false}),$H({name:"LatinExtraCondensedBT",bold:false,italic:false,bolditalic:false}),$H({name:"LatinWidD",bold:false,italic:false,bolditalic:false}),$H({name:"LcdD",bold:false,italic:false,bolditalic:false}),$H({name:"LeawoodITCbyBT-Book",bold:false,italic:true,bolditalic:false}),$H({name:"LetterGothic12PitchBT",bold:true,italic:true,bolditalic:true}),$H({name:"LibertyBT",bold:false,italic:false,bolditalic:false}),$H({name:"LibertyD",bold:false,italic:false,bolditalic:false}),$H({name:"LibraBT",bold:false,italic:false,bolditalic:false}),$H({name:"LifeBT",bold:true,italic:true,bolditalic:true}),$H({name:"Lithograph",bold:true,italic:false,bolditalic:false}),$H({name:"LithographLight",bold:false,italic:false,bolditalic:false}),$H({name:"LubalinGraphITCbyBT-Book",bold:true,italic:false,bolditalic:false}),$H({name:"LubalinGraphITCbyBT-Medium",bold:false,italic:false,bolditalic:false}),$H({name:"LubalinGraphITCbyBT-XtraLight",bold:false,italic:false,bolditalic:false}),$H({name:"LuciaBT",bold:false,italic:false,bolditalic:false}),$H({name:"LucianBT",bold:true,italic:false,bolditalic:false}),$H({name:"LucidaSans",bold:false,italic:false,bolditalic:false}),$H({name:"LydianBT",bold:true,italic:true,bolditalic:true}),$H({name:"LydianCursiveBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"MachineITCbyBT",bold:false,italic:false,bolditalic:false}),$H({name:"MandarinD",bold:false,italic:false,bolditalic:false}),$H({name:"MariageD",bold:false,italic:false,bolditalic:false}),$H({name:"MattAntiqueBT",bold:true,italic:true,bolditalic:false}),$H({name:"MetropolitainesD",bold:false,italic:false,bolditalic:false}),$H({name:"MICR10byBT",bold:false,italic:false,bolditalic:false}),$H({name:"MICR12byBT",bold:false,italic:false,bolditalic:false}),$H({name:"MICR13byBT",bold:false,italic:false,bolditalic:false}),$H({name:"MicrogrammaD-MediExte",bold:false,italic:false,bolditalic:false}),$H({name:"MicrogrammaD-BoldExte",bold:false,italic:false,bolditalic:false}),$H({name:"MilanoPlain",bold:false,italic:false,bolditalic:false}),$H({name:"MilleniumBT-BoldExtended",bold:false,italic:false,bolditalic:false}),$H({name:"MiraraeBT",bold:true,italic:false,bolditalic:false}),$H({name:"MisterEarlBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"MixageITCbyBT-Bold",bold:false,italic:false,bolditalic:true}),$H({name:"Modern735BT-RomanA",bold:false,italic:false,bolditalic:false}),$H({name:"Modern880BT",bold:true,italic:true,bolditalic:false}),$H({name:"Modern20BT-RomanB",bold:false,italic:true,bolditalic:false}),$H({name:"MonaLisaRecut",bold:false,italic:false,bolditalic:false}),$H({name:"MonaLisaSolid",bold:false,italic:false,bolditalic:false}),$H({name:"Monospace821BT",bold:true,italic:true,bolditalic:true}),$H({name:"MontereyBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"MotterFemD",bold:false,italic:false,bolditalic:false}),$H({name:"MT-Extra",bold:false,italic:false,bolditalic:false}),$H({name:"MurrayHillBT-Bold",bold:false,italic:false,bolditalic:false}),$H({name:"MusicalSymbols-Normal",bold:false,italic:false,bolditalic:false}),$H({name:"NevisonCasD",bold:false,italic:false,bolditalic:false}),$H({name:"NewBaskervilleITCbyBT",bold:true,italic:true,bolditalic:true}),$H({name:"News701BT-RomanA",bold:true,italic:true,bolditalic:false}),$H({name:"News702BT",bold:true,italic:true,bolditalic:true}),$H({name:"News705BT-RomanB",bold:true,italic:true,bolditalic:true}),$H({name:"News706BT-RomanC",bold:true,italic:true,bolditalic:false}),$H({name:"NewsGothicBT",bold:true,italic:true,bolditalic:true}),$H({name:"NewsGothicBT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"NewsGothicBT-Demi",bold:false,italic:true,bolditalic:false}),$H({name:"NewsGothicBT-RomanCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"NewsGothicBT-ItalicCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"NewsGothicBT-BoldCondensed",bold:false,italic:true,bolditalic:false}),$H({name:"NewsGothicBT-ExtraCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"NewsGothicBT-BoldExtraCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"NewtextITCbyBT-Regular",bold:false,italic:true,bolditalic:false}),$H({name:"NicolasCocT-Regu",bold:false,italic:true,bolditalic:false}),$H({name:"NicolasCocT-Blac",bold:false,italic:false,bolditalic:false}),$H({name:"NimbusRomDGR-Bold",bold:false,italic:true,bolditalic:true}),$H({name:"NormandeBT",bold:false,italic:true,bolditalic:false}),$H({name:"NovareseITCbyBT-Book",bold:true,italic:true,bolditalic:true}),$H({name:"NuptialBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"OCRAbyBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"OCRB10PitchBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"OkayD",bold:false,italic:false,bolditalic:false}),$H({name:"OldTowneNo536D",bold:false,italic:false,bolditalic:false}),$H({name:"OnyxBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"OrandaBT",bold:true,italic:true,bolditalic:true}),$H({name:"OrandaBT-RomanCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"OrandaBT-BoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"OratorBT-TenPitch",bold:false,italic:false,bolditalic:false}),$H({name:"OratorBT-FifteenPitch",bold:false,italic:false,bolditalic:false}),$H({name:"OrbitBbyBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"OzHandicraftBT-Roman",bold:false,italic:false,bolditalic:false}),$H({name:"PTBarnumBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"PabloPlain",bold:false,italic:false,bolditalic:false}),$H({name:"Palette",bold:false,italic:false,bolditalic:false}),$H({name:"PapyrusPlain",bold:false,italic:false,bolditalic:false}),$H({name:"ParisianBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"ParkAvenueBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"Pepper",bold:false,italic:false,bolditalic:false}),$H({name:"PhyllisD",bold:false,italic:false,bolditalic:false}),$H({name:"Pica10PitchBT",bold:false,italic:false,bolditalic:false}),$H({name:"PioneerITCbyBT",bold:false,italic:false,bolditalic:false}),$H({name:"Pipeline",bold:false,italic:false,bolditalic:false}),$H({name:"PiranesiItalicBT",bold:false,italic:false,bolditalic:false}),$H({name:"PlaybillBT",bold:false,italic:false,bolditalic:false}),$H({name:"PlazaD-Regu",bold:false,italic:false,bolditalic:false}),$H({name:"Posse",bold:false,italic:false,bolditalic:false}),$H({name:"President",bold:false,italic:false,bolditalic:false}),$H({name:"Prestige12PitchBT",bold:true,italic:true,bolditalic:true}),$H({name:"PrincetownD",bold:false,italic:false,bolditalic:false}),$H({name:"ProseAntique",bold:true,italic:false,bolditalic:false}),$H({name:"PumpTriD",bold:false,italic:false,bolditalic:false}),$H({name:"Quicksilver",bold:false,italic:false,bolditalic:false}),$H({name:"QuillScript",bold:false,italic:false,bolditalic:false}),$H({name:"QuorumITCbyBT-Medium",bold:false,italic:false,bolditalic:false}),$H({name:"QuorumITCbyBT-Light",bold:false,italic:false,bolditalic:false}),$H({name:"QuorumITCbyBT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"RageItalicPlain",bold:false,italic:false,bolditalic:false}),$H({name:"RaleighBT",bold:true,italic:false,bolditalic:false}),$H({name:"RaleighBT-Light",bold:false,italic:false,bolditalic:false}),$H({name:"RaleighBT-Medium",bold:false,italic:false,bolditalic:false}),$H({name:"RaleighBT-DemiBold",bold:false,italic:false,bolditalic:false}),$H({name:"RaleighBT-ExtraBold",bold:false,italic:false,bolditalic:false}),$H({name:"Revival565BT",bold:true,italic:true,bolditalic:true}),$H({name:"RevueBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"Ribbon131BT",bold:true,italic:false,bolditalic:false}),$H({name:"RomanaBT",bold:true,italic:false,bolditalic:false}),$H({name:"RotisSansSerif",bold:true,italic:true,bolditalic:false}),$H({name:"RotisSansSerif-Light",bold:false,italic:true,bolditalic:false}),$H({name:"RotisSansSerif-ExtraBold",bold:false,italic:false,bolditalic:false}),$H({name:"RotisSemiSans",bold:false,italic:false,bolditalic:false}),$H({name:"RotisSemiSans-LightItalic",bold:false,italic:false,bolditalic:false}),$H({name:"RotisSemiSerif",bold:true,italic:false,bolditalic:false}),$H({name:"RotisSerif",bold:true,italic:true,bolditalic:false}),$H({name:"RuachPlain",bold:false,italic:false,bolditalic:false}),$H({name:"RubberStampPlain",bold:false,italic:false,bolditalic:false}),$H({name:"SchadowBT",bold:true,italic:false,bolditalic:false}),$H({name:"SchadowBT-Light",bold:false,italic:false,bolditalic:false}),$H({name:"SchadowBT-LightCursive",bold:false,italic:false,bolditalic:false}),$H({name:"SchadowBT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"SchadowBT-BlackCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"SchneidlerBT",bold:true,italic:true,bolditalic:true}),$H({name:"SchneidlerBT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"SchneidlerBT-Medium",bold:false,italic:true,bolditalic:false}),$H({name:"SchneidlerBT-Black",bold:false,italic:true,bolditalic:false}),$H({name:"ScribaPlain",bold:false,italic:false,bolditalic:false}),$H({name:"Script12PitchBT",bold:false,italic:false,bolditalic:false}),$H({name:"ScruffPlain",bold:false,italic:false,bolditalic:false}),$H({name:"SeagullBT-Light",bold:false,italic:false,bolditalic:false}),$H({name:"SeagullBT-Medium",bold:false,italic:false,bolditalic:false}),$H({name:"SeagullBT-Bold",bold:false,italic:false,bolditalic:false}),$H({name:"SeagullBT-Heavy",bold:false,italic:false,bolditalic:false}),$H({name:"SerifaBT",bold:true,italic:true,bolditalic:false}),$H({name:"SerifaBT-Thin",bold:false,italic:true,bolditalic:false}),$H({name:"SerifaBT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"SerifaBT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"SerifaBT-BoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"SerpentineD-Bold",bold:false,italic:false,bolditalic:false}),$H({name:"SerpentineD-BoldItal",bold:false,italic:false,bolditalic:false}),$H({name:"ShotgunBT",bold:false,italic:false,bolditalic:false}),$H({name:"ShotgunBlanksBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"SkidoosD",bold:false,italic:false,bolditalic:false}),$H({name:"SlipstreamPlain",bold:false,italic:false,bolditalic:false}),$H({name:"SloganD",bold:false,italic:false,bolditalic:false}),$H({name:"SnellBT",bold:true,italic:false,bolditalic:false}),$H({name:"SnellBT-Black",bold:false,italic:false,bolditalic:false}),$H({name:"SnowCapBT",bold:false,italic:false,bolditalic:false}),$H({name:"SonicBT-ExtraBold",bold:false,italic:false,bolditalic:false}),$H({name:"SonicCutThruBT-Heavy",bold:false,italic:false,bolditalic:false}),$H({name:"SouvenirITCbyBT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"SouvenirITCbyBT-Demi",bold:false,italic:true,bolditalic:false}),$H({name:"SprocketBT",bold:false,italic:false,bolditalic:false}),$H({name:"SprocketDeluxeBT",bold:false,italic:false,bolditalic:false}),$H({name:"Square721BT",bold:true,italic:true,bolditalic:false}),$H({name:"Square721DmNormal",bold:false,italic:true,bolditalic:false}),$H({name:"Square721",bold:false,italic:false,bolditalic:false}),$H({name:"Square721Blk",bold:false,italic:false,bolditalic:false}),$H({name:"Square721BT-RomanCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"Square721BT-BoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"Square721BT-RomanExtended",bold:false,italic:false,bolditalic:false}),$H({name:"Square721BT-BoldExtended",bold:false,italic:false,bolditalic:false}),$H({name:"SquareSlabserif711BT-Light",bold:false,italic:false,bolditalic:false}),$H({name:"SquareSlabserif711BT-Medium",bold:false,italic:false,bolditalic:false}),$H({name:"SquareSlabserif711BT-Bold",bold:false,italic:false,bolditalic:false}),$H({name:"SquireD-Regu",bold:true,italic:false,bolditalic:false}),$H({name:"Staccato222BT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"Staccato555BT-RegularA",bold:false,italic:false,bolditalic:false}),$H({name:"StencilBT",bold:false,italic:false,bolditalic:false}),$H({name:"StoneAgeBT",bold:false,italic:false,bolditalic:false}),$H({name:"StoneSansITC-Bold",bold:true,italic:true,bolditalic:true}),$H({name:"StoneSansITC-Semi",bold:false,italic:true,bolditalic:false}),$H({name:"StopD",bold:false,italic:false,bolditalic:false}),$H({name:"StuyvesantBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"StymieBT-Medium",bold:true,italic:true,bolditalic:true}),$H({name:"StymieBT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"StymieBT-ExtraBold",bold:false,italic:false,bolditalic:false}),$H({name:"StymieBT-ExtraBoldCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"StymieBT-BoldCondensedItalic",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss721BT",bold:true,italic:true,bolditalic:true}),$H({name:"Swiss721BT-Thin",bold:false,italic:true,bolditalic:false}),$H({name:"Swiss721BT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"Swiss721BT-Medium",bold:false,italic:true,bolditalic:false}),$H({name:"Swiss721BT-Black",bold:false,italic:true,bolditalic:false}),$H({name:"Swiss721BT-Heavy",bold:false,italic:true,bolditalic:false}),$H({name:"Swiss721BT-BlackOutline",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss721BT-BlackRounded",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss721BT-LightCondensed",bold:false,italic:true,bolditalic:false}),$H({name:"Swiss721BT-RomanCondensed",bold:true,italic:true,bolditalic:true}),$H({name:"Swiss721BT-BoldCondensed",bold:false,italic:true,bolditalic:false}),$H({name:"Swiss721BT-BlackCondensed",bold:false,italic:true,bolditalic:false}),$H({name:"Swiss721BT-BoldCondensedOutline",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss721BT-LightExtended",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss721BT-RomanExtended",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss721BT-BoldExtended",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss721BT-BlackExtended",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss721BT-UltraCompressed",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss911BT-ExtraCompressed",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss911BT-UltraCompressed",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss921BT-RegularA",bold:false,italic:false,bolditalic:false}),$H({name:"Swiss924BT-RegularB",bold:false,italic:false,bolditalic:false}),$H({name:"SwitzerlandNarrow",bold:true,italic:true,bolditalic:true}),$H({name:"SymbolITCbyBT",bold:true,italic:false,bolditalic:true}),$H({name:"SymbolProportionalBT",bold:false,italic:false,bolditalic:false}),$H({name:"Syntax",bold:true,italic:true,bolditalic:false}),$H({name:"Syntax-Black",bold:false,italic:false,bolditalic:false}),$H({name:"Syntax-UltraBlack",bold:false,italic:false,bolditalic:false}),$H({name:"TagPlain",bold:false,italic:false,bolditalic:false}),$H({name:"TangoBT",bold:false,italic:false,bolditalic:false}),$H({name:"Technical",bold:false,italic:true,bolditalic:false}),$H({name:"TelegramPlain",bold:false,italic:false,bolditalic:false}),$H({name:"TiffanyITCbyBT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"TiffanyITCbyBT-Demi",bold:false,italic:true,bolditalic:false}),$H({name:"TiffanyITCbyBT-Heavy",bold:false,italic:true,bolditalic:false}),$H({name:"TigerRagPlain",bold:false,italic:false,bolditalic:false}),$H({name:"TimeScrD-Ligh",bold:false,italic:false,bolditalic:false}),$H({name:"TimeScrD-Medi",bold:false,italic:false,bolditalic:false}),$H({name:"TimeScrD-Bold",bold:false,italic:false,bolditalic:false}),$H({name:"TimesNewRomanPSMT",bold:true,italic:true,bolditalic:true}),$H({name:"Traffic",bold:false,italic:false,bolditalic:false}),$H({name:"Transitional511BT",bold:true,italic:true,bolditalic:true}),$H({name:"Transitional521BT-RomanA",bold:true,italic:false,bolditalic:false}),$H({name:"Transitional521BT-CursiveA",bold:false,italic:false,bolditalic:false}),$H({name:"Transitional551BT-MediumB",bold:false,italic:true,bolditalic:false}),$H({name:"TrumpetLite",bold:false,italic:false,bolditalic:false}),$H({name:"TypoUprightBT",bold:false,italic:false,bolditalic:false}),$H({name:"UmbraBT",bold:false,italic:false,bolditalic:false}),$H({name:"Univers-CondensedLight",bold:false,italic:false,bolditalic:false}),$H({name:"UniversCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"UniversLightOblique",bold:false,italic:false,bolditalic:false}),$H({name:"UniversOblique",bold:false,italic:false,bolditalic:false}),$H({name:"UniversityRomanBT",bold:true,italic:false,bolditalic:false}),$H({name:"UptightNeon",bold:false,italic:false,bolditalic:false}),$H({name:"URWWoodTypD",bold:false,italic:false,bolditalic:false}),$H({name:"VAGRoundedLt",bold:false,italic:false,bolditalic:false}),$H({name:"VAGRoundedBT-Regular",bold:false,italic:false,bolditalic:false}),$H({name:"VanDijk",bold:false,italic:false,bolditalic:false}),$H({name:"Venetian301BT",bold:false,italic:true,bolditalic:false}),$H({name:"Venetian301BT-Demi",bold:false,italic:true,bolditalic:false}),$H({name:"Verdana",bold:true,italic:true,bolditalic:true}),$H({name:"VictorianD",bold:false,italic:false,bolditalic:false}),$H({name:"Viking",bold:false,italic:false,bolditalic:false}),$H({name:"VinetaBT",bold:false,italic:false,bolditalic:false}),$H({name:"VivaldiD",bold:false,italic:false,bolditalic:false}),$H({name:"VladimirScrD",bold:false,italic:false,bolditalic:false}),$H({name:"WeddingTextBT",bold:false,italic:false,bolditalic:false}),$H({name:"WeidemannITCbyBT-Bold",bold:false,italic:false,bolditalic:true}),$H({name:"WeissBT",bold:true,italic:true,bolditalic:false}),$H({name:"WeissBT-ExtraBold",bold:false,italic:false,bolditalic:false}),$H({name:"WindsorBT",bold:false,italic:false,bolditalic:false}),$H({name:"WindsorBT-Light",bold:false,italic:false,bolditalic:false}),$H({name:"WindsorBT-LightCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"WindsorBT-Elongated",bold:false,italic:false,bolditalic:false}),$H({name:"WindsorBT-Outline",bold:false,italic:false,bolditalic:false}),$H({name:"ZapfCalligraphy801BT",bold:true,italic:true,bolditalic:true}),$H({name:"ZapfChanceryITCbyBT-Medium",bold:false,italic:true,bolditalic:false}),$H({name:"ZapfChanceryITCbyBT-Demi",bold:false,italic:false,bolditalic:false}),$H({name:"ZapfChanceryITCbyBT-Bold",bold:false,italic:false,bolditalic:false}),$H({name:"ZapfDingbatsITCbyBT",bold:false,italic:false,bolditalic:false}),$H({name:"ZapfElliptical",bold:true,italic:true,bolditalic:true}),$H({name:"ZapfHumanist601BT",bold:true,italic:true,bolditalic:true}),$H({name:"ZapfHumanist601BT-Demi",bold:false,italic:true,bolditalic:false}),$H({name:"ZapfHumanist601BT-Ultra",bold:false,italic:true,bolditalic:false}),$H({name:"ZinjaroPlain",bold:false,italic:false,bolditalic:false}),$H({name:"ZurichBT",bold:true,italic:true,bolditalic:true}),$H({name:"ZurichBT-Light",bold:false,italic:true,bolditalic:false}),$H({name:"ZurichBT-Black",bold:false,italic:true,bolditalic:false}),$H({name:"ZurichBT-RomanCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"ZurichBT-RomanExtended",bold:false,italic:false,bolditalic:false}),$H({name:"ZurichBT-LightCondensed",bold:false,italic:true,bolditalic:false}),$H({name:"ZurichBT-LightExtraCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"ZurichBT-ItalicCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"ZurichBT-ExtraBlack",bold:false,italic:false,bolditalic:false}),$H({name:"ZurichBT-BlackExtended",bold:false,italic:false,bolditalic:false}),$H({name:"ZurichBT-ExtraCondensed",bold:false,italic:false,bolditalic:false}),$H({name:"ZurichBT-UltraBlackExtended",bold:false,italic:false,bolditalic:false}),$H({name:"ZurichBT-BoldCondensed",bold:false,italic:true,bolditalic:false}),$H({name:"ZurichBT-BoldExtended",bold:false,italic:false,bolditalic:false}),$H({name:"ZurichBT-BoldExtraCondensed",bold:false,italic:false,bolditalic:false})]);

var CropDraggable=Class.create();Object.extend(Object.extend(CropDraggable.prototype,Draggable.prototype),{initialize:function(a){this.options=Object.extend({drawMethod:function(){}},arguments[1]||{});this.element=$(a);this.handle=this.element;this.delta=this.currentDelta();this.dragging=false;this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.handle,"mousedown",this.eventMouseDown);Draggables.register(this)},draw:function(a){var e=Position.cumulativeOffset(this.element);var c=this.currentDelta();e[0]-=c[0];e[1]-=c[1];var b=[0,1].map(function(d){return(a[d]-e[d]-this.offset[d])}.bind(this));this.options.drawMethod(b)}});var Cropper={};Cropper.Img=Class.create();Cropper.Img.prototype={initialize:function(a,c){this.options=Object.extend({ratioDim:{x:0,y:0},minWidth:0,minHeight:0,displayOnInit:false,onEndCrop:Prototype.emptyFunction,captureKeys:true,onloadCoords:null,maxWidth:0,maxHeight:0},c||{});this.img=$(a);this.clickCoords={x:0,y:0};this.dragging=false;this.resizing=false;this.isWebKit=/Konqueror|Safari|KHTML/.test(navigator.userAgent);this.isIE=/MSIE/.test(navigator.userAgent);this.isOpera8=/Opera\s[1-8]/.test(navigator.userAgent);this.ratioX=0;this.ratioY=0;this.attached=false;this.fixedWidth=(this.options.maxWidth>0&&(this.options.minWidth>=this.options.maxWidth));this.fixedHeight=(this.options.maxHeight>0&&(this.options.minHeight>=this.options.maxHeight));if(typeof this.img=="undefined"){return}if(this.options.ratioDim.x>0&&this.options.ratioDim.y>0){var b=this.getGCD(this.options.ratioDim.x,this.options.ratioDim.y);this.ratioX=this.options.ratioDim.x/b;this.ratioY=this.options.ratioDim.y/b}this.subInitialize();if(this.img.complete||this.isWebKit){this.onLoad()}else{Event.observe(this.img,"load",this.onLoad.bindAsEventListener(this))}},setOnLoadCoords:function(b,d,a,c){this.options.onloadCoords={x1:b,y1:d,x2:a,y2:c};this.options.displayOnInit=true;this.setParams()},getGCD:function(d,c){if(c==0){return d}return this.getGCD(c,d%c)},onLoad:function(){var b="imgCrop_";var d=this.img.parentNode;var a="";if(this.isOpera8){a=" opera8"}this.imgWrap=Builder.node("div",{"class":b+"wrap"+a});this.north=Builder.node("div",{"class":b+"overlay "+b+"north"},[Builder.node("span")]);this.east=Builder.node("div",{"class":b+"overlay "+b+"east"},[Builder.node("span")]);this.south=Builder.node("div",{"class":b+"overlay "+b+"south"},[Builder.node("span")]);this.west=Builder.node("div",{"class":b+"overlay "+b+"west"},[Builder.node("span")]);var c=[this.north,this.east,this.south,this.west];this.dragArea=Builder.node("div",{"class":b+"dragArea"},c);this.handleN=Builder.node("div",{"class":b+"handle "+b+"handleN"});this.handleNE=Builder.node("div",{"class":b+"handle "+b+"handleNE"});this.handleE=Builder.node("div",{"class":b+"handle "+b+"handleE"});this.handleSE=Builder.node("div",{"class":b+"handle "+b+"handleSE"});this.handleS=Builder.node("div",{"class":b+"handle "+b+"handleS"});this.handleSW=Builder.node("div",{"class":b+"handle "+b+"handleSW"});this.handleW=Builder.node("div",{"class":b+"handle "+b+"handleW"});this.handleNW=Builder.node("div",{"class":b+"handle "+b+"handleNW"});this.selArea=Builder.node("div",{"class":b+"selArea"},[this.handleN,this.handleNE,this.handleE,this.handleSE,this.handleS,this.handleSW,this.handleW,this.handleNW,Builder.node("div",{"class":b+"clickArea"})]);this.imgWrap.appendChild(this.img);this.imgWrap.appendChild(this.dragArea);this.dragArea.appendChild(this.selArea);this.dragArea.appendChild(Builder.node("div",{"class":b+"clickArea"}));d.appendChild(this.imgWrap);this.startDragBind=this.startDrag.bindAsEventListener(this);Event.observe(this.dragArea,"mousedown",this.startDragBind);this.onDragBind=this.onDrag.bindAsEventListener(this);Event.observe(document,"mousemove",this.onDragBind);this.endCropBind=this.endCrop.bindAsEventListener(this);Event.observe(document,"mouseup",this.endCropBind);this.resizeBind=this.startResize.bindAsEventListener(this);this.handles=[this.handleN,this.handleNE,this.handleE,this.handleSE,this.handleS,this.handleSW,this.handleW,this.handleNW];this.registerHandles(true);if(this.options.captureKeys){this.keysBind=this.handleKeys.bindAsEventListener(this)}new CropDraggable(this.selArea,{drawMethod:this.moveArea.bindAsEventListener(this),onStart:this.startDraggable.bind(this),onEnd:this.endCropBind});this.setParams()},startDraggable:function(){this.moving=true},registerHandles:function(e){for(var d=0;d<this.handles.length;d++){var a=$(this.handles[d]);if(e){var c=false;if(this.fixedWidth&&this.fixedHeight){c=true}else{if(this.fixedWidth||this.fixedHeight){var b=a.className.match(/([S|N][E|W])$/);var g=a.className.match(/(E|W)$/);var f=a.className.match(/(N|S)$/);if(b){c=true}else{if(this.fixedWidth&&g){c=true}else{if(this.fixedHeight&&f){c=true}}}}}if(c){a.hide()}else{Event.observe(a,"mousedown",this.resizeBind)}}else{a.show();Event.stopObserving(a,"mousedown",this.resizeBind)}}},setParams:function(){this.imgW=this.img.width;this.imgH=this.img.height;$(this.north).setStyle({height:0});$(this.east).setStyle({width:0,height:0});$(this.south).setStyle({height:0});$(this.west).setStyle({width:0,height:0});$(this.imgWrap).setStyle({width:this.imgW+"px",height:this.imgH+"px"});$(this.selArea).hide();var b={x1:0,y1:0,x2:0,y2:0};var a=false;if(this.options.onloadCoords!=null){b=this.cloneCoords(this.options.onloadCoords);a=true}else{if(this.options.ratioDim.x>0&&this.options.ratioDim.y>0){b.x1=Math.ceil((this.imgW-this.options.ratioDim.x)/2);b.y1=Math.ceil((this.imgH-this.options.ratioDim.y)/2);b.x2=b.x1+this.options.ratioDim.x;b.y2=b.y1+this.options.ratioDim.y;a=true}}this.setAreaCoords(b,false,false,1);if(this.options.displayOnInit&&a){this.selArea.show();this.drawArea();this.endCrop()}this.attached=true},remove:function(){if(this.attached){this.attached=false;this.imgWrap.parentNode.insertBefore(this.img,this.imgWrap);this.imgWrap.parentNode.removeChild(this.imgWrap);Event.stopObserving(this.dragArea,"mousedown",this.startDragBind);Event.stopObserving(document,"mousemove",this.onDragBind);Event.stopObserving(document,"mouseup",this.endCropBind);this.registerHandles(false)}},reset:function(){if(!this.attached){this.onLoad()}else{this.setParams()}this.endCrop()},handleKeys:function(b){var a={x:0,y:0};if(!this.dragging){switch(b.keyCode){case (37):a.x=-1;break;case (38):a.y=-1;break;case (39):a.x=1;break;case (40):a.y=1;break}if(a.x!=0||a.y!=0){if(b.shiftKey){a.x*=10;a.y*=10}this.moveArea([this.areaCoords.x1+a.x,this.areaCoords.y1+a.y]);Event.stop(b)}}},calcW:function(){return(this.areaCoords.x2-this.areaCoords.x1)},calcH:function(){return(this.areaCoords.y2-this.areaCoords.y1)},moveArea:function(a){this.setAreaCoords({x1:a[0],y1:a[1],x2:a[0]+this.calcW(),y2:a[1]+this.calcH()},true,false);this.drawArea()},cloneCoords:function(a){return{x1:a.x1,y1:a.y1,x2:a.x2,y2:a.y2}},setAreaCoords:function(l,g,h,m,k){if(g){var i=l.x2-l.x1;var e=l.y2-l.y1;if(l.x1<0){l.x1=0;l.x2=i}if(l.y1<0){l.y1=0;l.y2=e}if(l.x2>this.imgW){l.x2=this.imgW;l.x1=this.imgW-i}if(l.y2>this.imgH){l.y2=this.imgH;l.y1=this.imgH-e}}else{if(l.x1<0){l.x1=0}if(l.y1<0){l.y1=0}if(l.x2>this.imgW){l.x2=this.imgW}if(l.y2>this.imgH){l.y2=this.imgH}if(m!=null){if(this.ratioX>0){this.applyRatio(l,{x:this.ratioX,y:this.ratioY},m,k)}else{if(h){this.applyRatio(l,{x:1,y:1},m,k)}}var a=[this.options.minWidth,this.options.minHeight];var j=[this.options.maxWidth,this.options.maxHeight];if(a[0]>0||a[1]>0||j[0]>0||j[1]>0){var f={a1:l.x1,a2:l.x2};var d={a1:l.y1,a2:l.y2};var c={min:0,max:this.imgW};var b={min:0,max:this.imgH};if((a[0]!=0||a[1]!=0)&&h){if(a[0]>0){a[1]=a[0]}else{if(a[1]>0){a[0]=a[1]}}}if((j[0]!=0||j[0]!=0)&&h){if(j[0]>0&&j[0]<=j[1]){j[1]=j[0]}else{if(j[1]>0&&j[1]<=j[0]){j[0]=j[1]}}}if(a[0]>0){this.applyDimRestriction(f,a[0],m.x,c,"min")}if(a[1]>1){this.applyDimRestriction(d,a[1],m.y,b,"min")}if(j[0]>0){this.applyDimRestriction(f,j[0],m.x,c,"max")}if(j[1]>1){this.applyDimRestriction(d,j[1],m.y,b,"max")}l={x1:f.a1,y1:d.a1,x2:f.a2,y2:d.a2}}}}this.areaCoords=l},applyDimRestriction:function(a,e,f,c,d){var b;if(d=="min"){b=((a.a2-a.a1)<e)}else{b=((a.a2-a.a1)>e)}if(b){if(f==1){a.a2=a.a1+e}else{a.a1=a.a2-e}if(a.a1<c.min){a.a1=c.min;a.a2=e}else{if(a.a2>c.max){a.a1=c.max-e;a.a2=c.max}}}},applyRatio:function(a,c,e,b){var d;if(b=="N"||b=="S"){d=this.applyRatioToAxis({a1:a.y1,b1:a.x1,a2:a.y2,b2:a.x2},{a:c.y,b:c.x},{a:e.y,b:e.x},{min:0,max:this.imgW});a.x1=d.b1;a.y1=d.a1;a.x2=d.b2;a.y2=d.a2}else{d=this.applyRatioToAxis({a1:a.x1,b1:a.y1,a2:a.x2,b2:a.y2},{a:c.x,b:c.y},{a:e.x,b:e.y},{min:0,max:this.imgH});a.x1=d.a1;a.y1=d.b1;a.x2=d.a2;a.y2=d.b2}},applyRatioToAxis:function(i,d,j,f){var h=Object.extend(i,{});var a=h.a2-h.a1;var g=Math.floor(a*d.b/d.a);var e;var c;var b=null;if(j.b==1){e=h.b1+g;if(e>f.max){e=f.max;b=e-h.b1}h.b2=e}else{e=h.b2-g;if(e<f.min){e=f.min;b=e+h.b2}h.b1=e}if(b!=null){c=Math.floor(b*d.a/d.b);if(j.a==1){h.a2=h.a1+c}else{h.a1=h.a1=h.a2-c}}return h},drawArea:function(){var h=this.calcW();var e=this.calcH();var g="px";var c=[this.areaCoords.x1+g,this.areaCoords.y1+g,h+g,e+g,this.areaCoords.x2+g,this.areaCoords.y2+g,(this.img.width-this.areaCoords.x2)+g,(this.img.height-this.areaCoords.y2)+g];var i=this.selArea.style;i.left=c[0];i.top=c[1];i.width=c[2];i.height=c[3];var f=Math.ceil((h-6)/2)+g;var d=Math.ceil((e-6)/2)+g;this.handleN.style.left=f;this.handleE.style.top=d;this.handleS.style.left=f;this.handleW.style.top=d;this.north.style.height=c[1];var a=this.east.style;a.top=c[1];a.height=c[3];a.left=c[4];a.width=c[6];var j=this.south.style;j.top=c[5];j.height=c[7];var b=this.west.style;b.top=c[1];b.height=c[3];b.width=c[0];this.subDrawArea();this.forceReRender()},forceReRender:function(){if(this.isIE||this.isWebKit){var g=document.createTextNode(" ");var e,b,f,a;if(this.isIE){fixEl=this.selArea}else{if(this.isWebKit){fixEl=document.getElementsByClassName("imgCrop_marqueeSouth",this.imgWrap)[0];e=Builder.node("div","");e.style.visibility="hidden";var c=["SE","S","SW"];for(a=0;a<c.length;a++){b=document.getElementsByClassName("imgCrop_handle"+c[a],this.selArea)[0];if(b.childNodes.length){b.removeChild(b.childNodes[0])}b.appendChild(e)}}}fixEl.appendChild(g);fixEl.removeChild(g)}},startResize:function(a){this.startCoords=this.cloneCoords(this.areaCoords);this.resizing=true;this.resizeHandle=Event.element(a).classNames().toString().replace(/([^N|NE|E|SE|S|SW|W|NW])+/,"");Event.stop(a)},startDrag:function(a){this.selArea.show();this.clickCoords=this.getCurPos(a);this.setAreaCoords({x1:this.clickCoords.x,y1:this.clickCoords.y,x2:this.clickCoords.x,y2:this.clickCoords.y},false,false,null);this.dragging=true;this.onDrag(a);Event.stop(a)},getCurPos:function(c){var a=this.imgWrap,b=Position.cumulativeOffset(a);while(a.nodeName!="BODY"){b[1]-=a.scrollTop||0;b[0]-=a.scrollLeft||0;a=a.parentNode}return curPos={x:Event.pointerX(c)-b[0],y:Event.pointerY(c)-b[1]}},onDrag:function(c){if(this.dragging||this.resizing){var a=null;var b=this.getCurPos(c);var f=this.cloneCoords(this.areaCoords);var d={x:1,y:1};if(this.dragging){if(b.x<this.clickCoords.x){d.x=-1}if(b.y<this.clickCoords.y){d.y=-1}this.transformCoords(b.x,this.clickCoords.x,f,"x");this.transformCoords(b.y,this.clickCoords.y,f,"y")}else{if(this.resizing){a=this.resizeHandle;if(a.match(/E/)){this.transformCoords(b.x,this.startCoords.x1,f,"x");if(b.x<this.startCoords.x1){d.x=-1}}else{if(a.match(/W/)){this.transformCoords(b.x,this.startCoords.x2,f,"x");if(b.x<this.startCoords.x2){d.x=-1}}}if(a.match(/N/)){this.transformCoords(b.y,this.startCoords.y2,f,"y");if(b.y<this.startCoords.y2){d.y=-1}}else{if(a.match(/S/)){this.transformCoords(b.y,this.startCoords.y1,f,"y");if(b.y<this.startCoords.y1){d.y=-1}}}}}this.setAreaCoords(f,false,c.shiftKey,d,a);this.drawArea();Event.stop(c)}},transformCoords:function(b,e,a,d){var c=[b,e];if(b>e){c.reverse()}a[d+"1"]=c[0];a[d+"2"]=c[1]},endCrop:function(){if(this.dragging||this.resizing||this.moving){this.dragging=false;this.resizing=false;this.moving=false;this.options.onEndCrop(this.areaCoords,{width:this.calcW(),height:this.calcH()})}},subInitialize:function(){},subDrawArea:function(){}};Cropper.ImgWithPreview=Class.create();Object.extend(Object.extend(Cropper.ImgWithPreview.prototype,Cropper.Img.prototype),{subInitialize:function(){this.hasPreviewImg=false;if(typeof(this.options.previewWrap)!="undefined"&&this.options.minWidth>0&&this.options.minHeight>0){this.previewWrap=$(this.options.previewWrap);this.previewImg=this.img.cloneNode(false);this.previewImg.id="imgCrop_"+this.previewImg.id;this.options.displayOnInit=true;this.hasPreviewImg=true;this.previewWrap.addClassName("imgCrop_previewWrap");this.previewWrap.setStyle({width:this.options.minWidth+"px",height:this.options.minHeight+"px"});this.previewWrap.appendChild(this.previewImg)}},subDrawArea:function(){if(this.hasPreviewImg){var a=this.calcW();var e=this.calcH();var f={x:this.imgW/a,y:this.imgH/e};var d={x:a/this.options.minWidth,y:e/this.options.minHeight};var c={w:Math.ceil(this.options.minWidth*f.x)+"px",h:Math.ceil(this.options.minHeight*f.y)+"px",x:"-"+Math.ceil(this.areaCoords.x1/d.x)+"px",y:"-"+Math.ceil(this.areaCoords.y1/d.y)+"px"};var b=this.previewImg.style;b.width=c.w;b.height=c.h;b.left=c.x;b.top=c.y}}});

var Dialog=Class.create({overlay:null,class_name:null,is_visible:false,shadow:false,shadow_width:0,shadow_template:new Template("<tr> 										<td class='top_left'></td> 										<td class='top_middle'></td> 										<td class='top_right'></td> 									</tr> 									<tr> 										<td class='middle_left'></td> 										<td class='middle'> 										</td> 										<td class='middle_right'></td> 									</tr> 									<tr> 										<td class='bottom_left'></td> 										<td class='bottom_middle'></td> 										<td class='bottom_right'></td> 									</tr>"),initialize:function(b,a,c){this.shadow=c;this.shadow_width=0;this.is_visible=false;this.content=b;this.class_name=a;this.overlay_clicked_bind=this.onOverlayClicked.bindAsEventListener(this);this.makeOverlay();this.makeDialog();this.setupEventListeners()},removeDialog:function(){if(this.dialog){this.dialog.remove()}this.tearDownEventListeners()},setupEventListeners:function(){},tearDownEventListeners:function(){},makeOverlay:function(){if(!$("overlay")){this.overlay=Builder.node("div",{id:"overlay"});$(document.body).insert({top:this.overlay})}else{this.overlay=$("overlay")}},makeDialog:function(){if(this.shadow){this.makeDialogShadow()}else{this.makeDialogNoShadow()}},makeDialogNoShadow:function(){this.dialog=Builder.node("div",{"class":"dialog",style:"display: none;"});this.inner_dialog=this.dialog;this.dialog.update(this.content);if(this.class_name){this.dialog.addClassName(this.class_name)}this.overlay.insert({before:this.dialog})},makeDialogShadow:function(){this.dialog=Builder.node("table",{"class":"dialog dialog_shadow",cellpadding:"0",cellspacing:"0",border:"0",style:"display: none;"});this.dialog.update(this.shadow_template.evaluate({}));this.inner_dialog=Builder.node("div",{"class":"inner_dialog"});this.inner_dialog.update(this.content);if(this.class_name){this.inner_dialog.addClassName(this.class_name)}middle=this.dialog.select(".middle")[0];top_left=this.dialog.select(".top_left")[0];this.shadow_width=Number(top_left.getStyle("width").gsub("px",""));middle.insert(this.inner_dialog);this.overlay.insert({before:this.dialog})},showOverlay:function(){if(this.class_name){this.overlay.addClassName(this.class_name)}if(!this.custom_dimensions){var b=getPageSize();var a=Number(this.overlay.getStyle("border-left-width").gsub("px",""));a+=Number(this.overlay.getStyle("border-right-width").gsub("px",""));var c=Number(this.overlay.getStyle("border-top-width").gsub("px",""));c+=Number(this.overlay.getStyle("border-bottom-width").gsub("px",""));this.overlay.setStyle({width:b[0]-a+"px"});this.overlay.setStyle({height:b[1]-c+"px"});this.overlay.setStyle({top:"0px",left:"0px"});this.overlay.observe("click",this.overlay_clicked_bind)}this.overlay.show()},hideOverlay:function(){this.overlay.stopObserving("click",this.overlay_clicked_bind);if(this.class_name){this.overlay.removeClassName(this.class_name)}new Effect.Fade(this.overlay,{duration:0.1})},centerDialogInViewPort:function(){this.dialog.show();var b=document.viewport.getScrollOffsets();var d=this.inner_dialog.getWidth();var c=d/2*-1;c-=this.shadow_width;var e=this.dialog.getHeight();var a=e/2*-1;var f=b[1]+document.viewport.getHeight()/2+a;if(f<b[1]){f=b[1]+30}this.dialog.setStyle({top:f+"px"});this.inner_dialog.setStyle({width:d+"px"});this.dialog.setStyle({marginLeft:c+"px"});this.dialog.hide()},centerDialogInViewPortVert:function(){var b=document.viewport.getScrollOffsets();var c=this.dialog.getHeight();var a=c/2*-1;var d=b[1]+document.viewport.getHeight()/2+a;if(d<b[1]){d=b[1]+10}this.dialog.setStyle({top:d+"px"})},centerDialogInOverlay:function(){var b=this.overlay.cumulativeOffset();var d=this.dialog.getWidth();var c=d/2*-1;var e=this.dialog.getHeight();var a=e/2*-1;var g=b[1]+this.overlay.getHeight()/2+a;var f=b[0]+this.overlay.getWidth()/2+c;this.dialog.setStyle({top:g+"px"});this.dialog.setStyle({left:f+"px"})},showDialog:function(){if(!this.custom_dimensions){this.centerDialogInViewPort()}else{this.centerDialogInOverlay()}this.dialog.show()},hideDialog:function(){this.dialog.hide()},onOverlayClicked:function(){this.hide()},show:function(){this.is_visible=true;this.showOverlay();this.showDialog()},hide:function(){this.is_visible=false;this.hideOverlay();this.hideDialog();this.custom_dimensions=false},setOverlayTop:function(a){this.overlay.setStyle({top:a+"px"});this.custom_dimensions=true},setOverlayLeft:function(a){this.overlay.setStyle({left:a+"px"});this.custom_dimensions=true},setOverlayWidth:function(a){this.overlay.setStyle({width:a+"px"});this.custom_dimensions=true},setOverlayHeight:function(a){this.overlay.setStyle({height:a+"px"});this.custom_dimensions=true},setDialogTop:function(a){this.dialog.setStyle({top:a+"px"});this.custom_dimensions=true},setDialogLeft:function(a){this.dialog.setStyle({left:a+"px"});this.custom_dimensions=true},setDialogWidth:function(a){this.inner_dialog.setStyle({width:a+"px"});this.custom_dimensions=true},setDialogHeight:function(a){this.inner_dialog.setStyle({height:a+"px"});this.custom_dimensions=true}});var ImageDialog=Class.create(Dialog,{dialog_template:new Template("					<div class='inside'> 						<div class='title'> 							<div class='icon'></div> 							<h1>"+I18n.t("title",{scope:["uploads"]})+"</h1> 							<a href='#' class='close'></a> 						</div> 						<div class='content'> 							<div id='upload_errors_#{layout_id}' class='errors'> 							</div> 							<div class='loader hide_on_response' style='display: none;'>"+I18n.t("uploading",{scope:["uploads"]})+"</div> 							<div class='upload_form'> 								<div class='inside'> 									<div class='upload_inputs'> 										<form target='upload_frame_#{layout_id}' method='post' id='upload_file_form_#{layout_id}' enctype='multipart/form-data' action='/uploads.js?card_id=#{card_id}&layout_id=#{layout_id}&template_id=#{template_id}&is_editing_layout=#{is_editing_layout}'''> 											<div style='margin: 0pt; padding: 0pt;'> 												<input type='hidden' value='#{auth_token}' name='authenticity_token'/> 											</div> 											<h2>"+I18n.t("upload_file",{scope:["uploads"]})+"</h2> 											<input type='file' size='0' name='upload[uploaded_data]' id='upload_uploaded_data_#{layout_id}' class='show_on_response'/> 											<input type='hidden' name='is_editing_layout' value='#{is_editing_layout}' /> 											<div class='loading hide_on_response' style='display: none;'>"+I18n.t("uploading",{scope:["uploads"]})+"</div> 										</form> 										<iframe id='upload_frame_#{layout_id}' name='upload_frame_#{layout_id}' style='width:1px; height:1px; visibility: hidden; border:0px' src='about:blank'></iframe> 									</div> 									<div class='upload_tips'> 										<h2>Tips for uploading images</h2> 										<ul> 											<li>"+I18n.t("tip_1",{scope:["uploads"]})+"</li> 											<li>"+I18n.t("tip_2",{scope:["uploads"]})+"</li> 											<li>"+I18n.t("tip_3",{scope:["uploads"]})+"</li> 											<li>"+I18n.t("tip_4",{scope:["uploads"]})+"</li> 										</ul> 										<p class='support'> 											"+I18n.t("tip_5",{scope:["uploads"]})+" 										</p> 									</div> 									<div class='clear'></div> 								</div> 							</div> 							<div class='upload_type'> 								<div class='inside'> 									<h2> "+I18n.t("uploads",{scope:["uploads"]})+"</h2> 									<div class='uploads'> 									</div> 								</div> 							</div> 						</div> 					</div>"),dialog:null,image_click_observer:null,selected_image:null,selected_thumb:null,selected_copyright:null,layout_id:null,card_id:null,upload_finished_trigger:null,initialize:function($super,c,a){this.layout_id=c;this.card_id=a;var b=this.makeContent();$super(b,"upload",true);this.getUploads()},makeContent:function(){var a=this.dialog_template.evaluate({auth_token:AUTH_TOKEN,layout_id:this.layout_id,template_id:"",card_id:this.card_id,is_editing_layout:"false",page:1,page_size:6});return a},makeDialog:function($super){$super();if(this.dialog){this.uploads=this.dialog.select(".uploads").first();this.close_button=this.dialog.select(".close").first();this.upload_button=this.dialog.select("#upload_uploaded_data_"+this.layout_id).first();this.upload_form=this.dialog.select("#upload_file_form_"+this.layout_id).first();this.loader=this.dialog.select(".loader").first();this.errors=this.dialog.select(".errors").first();this.loading=this.dialog.select(".loading").first();this.uploads_text=this.uploads.select(".empty_text").first()}},getUploads:function(){var a={authenticity_token:AUTH_TOKEN,layout_id:this.layout_id,card_id:this.card_id,is_editing_layout:false};new Ajax.Request("/uploads",{parameters:a,method:"get",onSuccess:this.onUploadsSuccess.bind(this)})},onUploadsSuccess:function(a){this.uploads.childElements().each(function(b){b.remove()});this.uploads.insert({top:a.responseText});this.observeUploadFinishedTrigger();this.checkShowHideEmpty()},observeUploadFinishedTrigger:function(){this.upload_finished_trigger=this.uploads.select("#upload_finished_trigger_"+this.layout_id).first();if(this.upload_finished_trigger){this.upload_finished_trigger.observe("upload:finished",this.upload_finished_observer)}},onUploadFinished:function(){if(this.upload_finished_trigger){upload_id=this.upload_finished_trigger.value;if(upload_id!=null&&upload_id.length>0){insert=$("upload_"+this.layout_id+"_"+upload_id).select(".insert").first();this.imageClicked(insert)}}},checkShowHideEmpty:function(){var a=this.uploads.down(".thumbnail");if(a==null){this.uploads_text.show()}else{this.uploads_text.hide()}},remove:function($super){this.tearDownEventHandlers();$super()},setupEventListeners:function($super){$super();this.click_observer=this.onClick.bind(this);this.close_observer=this.onClose.bind(this);this.upload_observer=this.onUpload.bind(this);this.upload_finished_observer=this.onUploadFinished.bind(this);this.uploads.observe("click",this.click_observer);this.close_button.observe("click",this.close_observer);this.upload_button.observe("change",this.upload_observer)},tearDownEventListeners:function($super){$super();this.uploads.stopObserving("click",this.click_observer);this.close_button.stopObserving("click",this.close_observer);this.upload_button.stopObserving("click",this.upload_observer);if(this.upload_finished_trigger){this.upload_finished_trigger.stopObserving(this.upload_finished_observer)}},onClick:function(b){var a=b.element();if(a.hasClassName("insert")){this.imageClicked(a)}b.stop()},onClose:function(a){this.hide();a.stop()},onUpload:function(a){this.upload_form.submit();this.upload_button.hide();this.loader.show();this.errors.update("");this.loading.show()},imageClicked:function(a){this.selected_image=a.readAttribute("href");this.selected_thumb=a.getStyle("backgroundImage");this.selected_thumb=this.selected_thumb.gsub(/(.*url\(|\)$.*)/,"");this.selected_id=this.getUploadId(a);this.selected_copyright=a.readAttribute("rel");if(this.selected_image&&this.selected_image!="#"){this.hide();this.notifyObserver()}},getUploadId:function(b){upload_id="";if(b){var a=b.up(".thumbnail");if(a&&a.id!=null&&a.id.length>0){upload_id=a.id.gsub(/.*_/,"")}}return upload_id},notifyObserver:function(){if(this.image_click_observer){this.image_click_observer()}},show:function($super,a){this.image_click_observer=a;this.selected_image=null;$super()},getSelectedImage:function(){return this.selected_image},getSelectedThumb:function(){return this.selected_thumb},getSelectedCopyright:function(){return this.selected_copyright},getSelectedId:function(){return this.selected_id},changeLayout:function(a){if(a!=this.layout_id){this.layout_id=a;this.removeDialog();this.content=this.makeContent();this.makeDialog();this.setupEventListeners();this.getUploads()}}});var LayoutImageDialog=Class.create(ImageDialog,{initialize:function($super,c,b,a){this.template_id=b;$super(c,a)},getUploads:function(){var a={authenticity_token:AUTH_TOKEN,template_id:this.template_id,layout_id:this.layout_id,card_id:this.card_id,upload_id:this.upload_id,is_editing_layout:true};new Ajax.Request("/uploads",{parameters:a,method:"get",onSuccess:this.onUploadsSuccess.bind(this)})},makeContent:function($super){var a=this.dialog_template.evaluate({auth_token:AUTH_TOKEN,layout_id:this.layout_id,template_id:this.template_id,card_id:this.card_id,is_editing_layout:"true"});return a},onClick:function($super,b){$super(b);var a=b.element();if(a.hasClassName("change_copyright")){var c=this.getUploadId(a);this.changeCopyright(c)}},changeCopyright:function(b){var a=prompt("Enter the copyright information:");var c={authenticity_token:AUTH_TOKEN,layout_id:this.layout_id,template_id:this.template_id,card_id:this.card_id,is_editing_layout:"true",copyright:a};new Ajax.Request("/uploads/"+b,{parameters:c,method:"put"})}});var CropDialog=Class.create(Dialog,{dialog_template:new Template("<div class='inside'> 								   		<div class='title'> 											<span class='croptitle_icon'></span> <h1>Crop image</h1> 											<a class='close'></a> 								 		</div> 										<div class='content'> 											<img class='crop_image'></img> 										</div> 										<div class='action'> 											<input type='submit' value='Apply' class='apply' /><a href='#' class='cancel'><span class='close_icon crop'></span> Cancel and go back</a> 										</div> 										<div class='clear'></div> 									</div>"),dialog:null,original_height:0,original_width:0,crop_coordinates:null,scale_x:1,scale_y:1,initialize:function($super,b){this.coordinates={x1:0,y1:0,x2:0,y2:0};var a=this.makeContent();$super(a,"crop",true)},makeContent:function(){return this.dialog_template.evaluate({})},makeDialog:function($super){$super();if(this.dialog){this.crop_image=this.dialog.select(".crop_image").first();this.apply=this.dialog.select(".apply").first();this.cancel=this.dialog.select(".cancel").first();this.close=this.dialog.select(".close").first();this.crop_control=new Cropper.Img(this.crop_image,{onEndCrop:this.onEndCrop.bind(this)})}},setupEventListeners:function($super){$super();this.load_bind=this.onImageLoad.bindAsEventListener(this);this.crop_image.observe("load",this.load_bind);this.apply_bind=this.onApply.bindAsEventListener(this);this.apply.observe("click",this.apply_bind);this.cancel_bind=this.onCancel.bindAsEventListener(this);this.cancel.observe("click",this.cancel_bind);this.close_bind=this.onClose.bindAsEventListener(this);this.close.observe("click",this.close_bind)},tearDownEventListeners:function(){$super();this.crop_image.stopObserving("load",this.load_bind);this.apply.stopObserving("click",this.apply_bind);this.cancel.stopObserving("click",this.cancel_bind);this.close.stopObserving("click",this.close_bind)},onApply:function(a){this.notifyObserver("apply");this.hide();a.stop()},onCancel:function(a){this.notifyObserver("cancel");this.hide();a.stop()},onClose:function(a){this.hide();a.stop()},onImageLoad:function(){this.setImageSize();if(!this.isCropCoordinatesSet){this.setCropCoordinates()}},onEndCrop:function(b,a){this.coordinates=b},show:function($super,d,a,c,e,b){this.end_crop_observer=d;$super();this.setImageSize();this.setCropCoordinates(a,c,e,b)},setImageSize:function(){if(this.is_visible){this.crop_image.setStyle({width:"auto",height:"auto"});var h=this.crop_image.getWidth();var d=this.crop_image.getHeight();var a=800;var c=this.crop_image.getWidth();if(c>a){this.crop_image.setStyle({width:a+"px",height:"auto"})}var b=600;var g=this.crop_image.getHeight();if(g>b){this.crop_image.setStyle({width:"auto",height:b+"px"})}var f=this.crop_image.getWidth();var e=this.crop_image.getHeight();this.scale_x=h/f;this.scale_y=d/e;this.crop_control.reset();this.centerDialogInViewPortVert()}},hide:function($super){this.end_crop_observer=null;$super()},notifyObserver:function(a){if(this.end_crop_observer){this.end_crop_observer(a)}},setImage:function(a){this.crop_image.src=a;this.setImageSize()},setCropCoordinates:function(b,d,a,c){if(b==null||d==null||a==null||c==null||a-b<=0||c-d<=0){b=0;d=0;a=this.crop_image.width*this.scale_x;c=this.crop_image.height*this.scale_y}else{if(b!=null){b/=this.scale_x}if(d!=null){d/=this.scale_y}if(a!=null){a/=this.scale_x}if(c!=null){c/=this.scale_y}}this.crop_control.setOnLoadCoords(b,d,a,c);this.coordinates={x1:b,y1:d,x2:a,y2:c}},isCropCoordinatesSet:function(){if(this.coordinates==null||this.coordinates.x2-this.coordinates.x1<=0||this.coordinates.y2-this.coordinates.y1<=0){return false}else{return true}},getCropCoordinates:function(){if(!this.coordinates){this.resetCropCoordinates()}return this.coordinates},getScaledCropCoordinates:function(){if(!this.coordinates){this.resetCropCoordinates()}scaled_coordinates={x1:this.coordinates.x1,y1:this.coordinates.y1,x2:this.coordinates.x2,y2:this.coordinates.y2};scaled_coordinates.x1*=this.scale_x;scaled_coordinates.x2*=this.scale_x;scaled_coordinates.y1*=this.scale_y;scaled_coordinates.y2*=this.scale_y;scaled_coordinates.x1=Math.round(scaled_coordinates.x1);scaled_coordinates.x2=Math.round(scaled_coordinates.x2);scaled_coordinates.y1=Math.round(scaled_coordinates.y1);scaled_coordinates.y2=Math.round(scaled_coordinates.y2);return scaled_coordinates}});

var ToolBarControl=Class.create({element:null,effect:null,selected_widget:null,observers:null,initialize:function(a){this.observers=$A([]);this.effects=$A(a);this.element=this.buildElement()},buildElement:function(){},addTo:function(a){if(a){a.insert(this.element)}},enable:function(a){if(this.element){if(a){this.element.removeClassName("disabled")}else{this.element.addClassName("disabled")}}},hasEffectChanged:function(a,b){if(this.getEffectValue(a)!=b){return true}return false},hasEffect:function(a){return this.effects.include(a)},getEffects:function(){return this.effects},getEffectValue:function(a){var b=null;if(this.selected_widget){b=this.selected_widget.getEffect(a)}return b},setEffectValue:function(a,b){if(!a&&this.effects&&this.effects.length>0){a=this.effects[0]}if(this.selected_widget&&this.hasEffectChanged(a,b)){this.selected_widget.setEffect(a,b);this.setControlState()}this.notifyObservers(a,b)},setControlState:function(){if(this.selected_widget){this.effects.each(function(a){var c=this.selected_widget.getEffect(a);var b=c!=null;this.enable(b);this.onEffectSelected(a,c)}.bind(this))}},onWidgetSelected:function(a){this.selected_widget=a;this.setControlState()},onWidgetAdded:function(a){},onEffectSelected:function(a,b){},observe:function(a){this.observers.push(a)},stopObserving:function(a){this.observers=this.observers.without(a)},notifyObservers:function(a,b){this.observers.each(function(c){c(a,b)})}});var ToolBarButton=Class.create(ToolBarControl,{effect:"",class_name:"",initialize:function($super,b,a){this.class_name=a;$super([b])},buildElement:function($super){$super();var a="button";if(this.class_name){a=a+" "+this.class_name}return Builder.node("a",{"class":a,href:"#"})},addTo:function($super,a){$super(a);this.setupObservers()},remove:function(){this.tearDownObservers();this.element.remove()},setupObservers:function(){this.click_observer=this.onClick.bind(this);this.element.observe("click",this.click_observer)},tearDownObservers:function(){this.element.stopObserving("click",this.click_observer)},onClick:function(a){this.setEffectValue();a.stop()}});var ToolBarText=Class.create(ToolBarButton,{effect:"",class_name:"",text:"",initialize:function($super,b,a,c){this.text=c;$super([b],a)},buildElement:function($super){var a="text_button";if(this.class_name){a=a+" "+this.class_name}var b=Builder.node("a",{"class":a,href:"#"});b.update(this.text);return b}});var ToolBarToggleButton=Class.create(ToolBarButton,{initialize:function($super,c,b,d,a){this.value_on=d;this.value_off=a;$super([c],b)},onClick:function($super,a){this.toggleEffect();a.stop()},toggleEffect:function(){var a=this.isPressed();if(a){this.setEffectValue(null,this.value_off)}else{this.setEffectValue(null,this.value_on)}},isPressed:function(){if(this.element&&this.element.hasClassName("pressed")){return true}return false},pressButton:function(a){if(this.element){if(a){this.element.addClassName("pressed")}else{this.element.removeClassName("pressed")}}},onEffectSelected:function(a,c){var b=(c==this.value_on);this.pressButton(b)}});var ToolBarStyleButton=Class.create(ToolBarToggleButton,{initialize:function($super,b,a,c,d){$super(b,a,c,d)},setState:function($super){},onClick:function($super,a){this.effects.each(function(b){this.notifyObservers(b,null)}.bind(this));a.stop()}});var ToolBarDropDown=Class.create(ToolBarControl,{initialize:function($super,c,b,a){this.class_name=a;$super(b);this.setupObservers();this.addValues(c)},buildElement:function(){var a="custom_combo";if(this.class_name){a=a+" "+this.class_name}return Builder.node("select",{"class":a})},setupObservers:function(){this.on_change_observer=this.onChange.bind(this);this.element.observe("select:changed",this.on_change_observer)},tearDownObservers:function(){this.element.stopObserving("select:changed",this.on_change_observer)},onChange:function(){this.setEffectValue(null,this.element.value)},onEffectSelected:function(b,c){if(c!=null){this.element.value=c;if(this.element.value!=c){var a=Builder.node("option",{value:c},c);this.element.insert(a);this.element.value=c}this.element.fire("select:changed")}},enable:function($super,b){this.element.disabled=false;var a={disabled:!b};this.element.fire("select:disabled",a);this.element.disabled=!b},onWidgetAdded:function($super,a){if(a&&this.effects&&this.effects.length>0){this.addListValue(a.getEffect(this.effects[0]))}},addValues:function(a){if(a){a.each(function(b){this.addListValue(b)}.bind(this))}},addListValue:function(f,e){if(f!=null){var c=$H({value:f});if(e){c=c.merge(e)}var b=Builder.node("option",c.toObject(),f);this.element.insert(b);var a={item:b};var d=this.element.disabled;this.element.disabled=false;this.element.fire("select:add_item",a);this.element.disabled=d}}});var ToolBarFontDropDown=Class.create(ToolBarDropDown,{bold:null,italic:null,cached_current_font:null,FONT_EFFECT:"font",initialize:function($super,c,a,b){this.bold=a;this.italic=b;this.on_bold_italic_click=this.onBoldItalicClick.bind(this);this.bold.observe(this.on_bold_italic_click);this.italic.observe(this.on_bold_italic_click);$super(c,[this.FONT_EFFECT],"font")},remove:function(){this.bold.stopObserving(this.on_bold_italic_click);this.italic.stopObserving(this.on_bold_italic_click)},onEffectSelected:function($super,b,c){this.cached_current_font=null;var a=this.findFont(c);if(a){$super(b,a.get("name"))}},updateButtonStates:function(){this.bold.enable(this.getCurrentBold());this.italic.enable(this.getCurrentItalic());this.bold.pressButton(this.isBoldSelected());this.italic.pressButton(this.isItalicSelected())},onChange:function($super){var b=this.isBoldSelected();var a=this.isItalicSelected();this.cached_current_font=null;if(b&&a){this.setBoldItalic()}else{if(b){this.setBold()}else{if(a){this.setItalic()}else{this.setNormal()}}}this.updateButtonStates()},addValues:function($super,b){this.fonts=b;var a=0;this.fonts.each(function(c){more_options=$H({title:String(a)});this.addListValue(c.get("name"),more_options);a++}.bind(this))},findFont:function(b){var a=null;this.fonts.each(function(c){if(c.get("name")==b||c.get("normal")==b||c.get("bold")==b||c.get("italic")==b||c.get("bolditalic")==b){a=c;throw $break}});return a},findFontPosition:function(b){var a=0;this.fonts.each(function(c){if(c.get("normal")==b||c.get("bold")==b||c.get("italic")==b||c.get("bolditalic")==b){throw $break}a++});return a},onWidgetAdded:function($super,b){if(b){var d=b.getEffect(this.FONT_EFFECT);var c=this.findFont(d);var a=this.findFontPosition(d);more_options=$H({title:"*"+String(a)});if(c){this.addListValue(c.get("name"),more_options)}}},onBoldItalicClick:function(a,d){var b=this.bold.getEffects();if(b.include(a)){this.toggleBold()}var c=this.italic.getEffects();if(c.include(a)){this.toggleItalic()}this.updateButtonStates()},toggleBold:function(){if(this.isBoldSelected()){if(this.isItalicSelected()){this.setItalic()}else{this.setNormal()}}else{if(this.isItalicSelected()){this.setBoldItalic()}else{this.setBold()}}},toggleItalic:function(){if(this.isItalicSelected()){if(this.isBoldSelected()){this.setBold()}else{this.setNormal()}}else{if(this.isBoldSelected()){this.setBoldItalic()}else{this.setItalic()}}},isBoldSelected:function(){if(this.getFontStyle()==this.getCurrentBold()||this.getFontStyle()==this.getCurrentBoldItalic()){return true}else{return false}},isItalicSelected:function(){if(this.getFontStyle()==this.getCurrentItalic()||this.getFontStyle()==this.getCurrentBoldItalic()){return true}else{return false}},getCurrentFont:function(){if(!this.cached_current_font||this.cached_current_font.get("name")!=this.element.value){this.cached_current_font=this.findFont(this.element.value)}return this.cached_current_font},getCurrentNormal:function(){var b=null;var a=this.getCurrentFont();if(a){b=a.get("normal")}return b},getCurrentBold:function(){var b=null;var a=this.getCurrentFont();if(a){b=a.get("bold")}return b},getCurrentItalic:function(){var b=null;var a=this.getCurrentFont();if(a){b=a.get("italic")}return b},getCurrentBoldItalic:function(){var b=null;var a=this.getCurrentFont();if(a){b=a.get("bolditalic")}return b},getFontStyle:function(){return this.getEffectValue(this.FONT_EFFECT)},setNormal:function(){var a=this.getCurrentNormal();if(a){this.setEffectValue(this.FONT_EFFECT,a)}},setBold:function(){var a=this.getCurrentBold();if(a){this.setEffectValue(this.FONT_EFFECT,a)}else{this.setNormal()}},setItalic:function(){var a=this.getCurrentItalic();if(a){this.setEffectValue(this.FONT_EFFECT,a)}else{this.setNormal()}},setBoldItalic:function(){var a=this.getCurrentBoldItalic();var c=this.getCurrentItalic();var b=this.getCurrentBold();if(a){this.setEffectValue(this.FONT_EFFECT,a)}else{if(c){this.setEffectValue(this.FONT_EFFECT,c)}else{if(b){this.setEffectValue(this.FONT_EFFECT,b)}else{this.setNormal()}}}}});var ToolBarResizeSlider=Class.create(ToolBarControl,{slider:null,effect:null,range:null,effect_finished:null,activated:false,initialize:function($super,c,b,a){this.class_name=a;this.effect=c;this.effect_finished=b;$super([c])},buildElement:function($super){$super();var a="slider";if(this.class_name){a=a+" "+this.class_name}this.resizer=Builder.node("div",{"class":"resizer"});this.track=Builder.node("div",{"class":a});this.handle=Builder.node("div",{"class":"handle"});this.resizer.insert(this.track);this.track.insert(this.handle);return this.resizer},addTo:function($super,a){$super(a);this.setupObservers();this.setupSlider()},remove:function(){this.tearDownObservers();this.element.remove()},setupSlider:function(){if(this.selected_widget!=null){if(this.slider!=null){this.slider.dispose();this.slider=null}this.range=this.selected_widget.getScaleRange();if(this.range!=null){this.slider=new Control.Slider(this.handle,this.track,{axis:"vertical",alignX:0,alignY:0,minimum:0,maximum:1,onSlide:this.on_slide_bind,onChange:this.on_slide_finished_bind})}}},onWidgetSelected:function($super,a){$super(a);var b=this.getEffectValue(this.effect);if(b!=null&&!this.slidding){this.setupSlider();this.setSliderValue(b)}},enable:function($super,a){this.show(a)},show:function(a){if(a){this.element.setStyle({visibility:"visible"})}else{this.element.setStyle({visibility:"hidden"})}},setSliderValue:function(d){this.activated=false;var c=Math.log(d/100)/Math.log(2);var b=this.range[1]-this.range[0];c+=Math.abs(this.range[0]);var a=c/b;a=1-a;if(!isNaN(a)&&!this.slidding){this.slider.setValue(a)}this.activated=true},onEffectSelected:function(a,b){if(this.slider!=null){this.setSliderValue(b)}},setupObservers:function(){this.on_slide_bind=this.onSlide.bind(this);this.on_slide_finished_bind=this.onSlideFinished.bind(this);this.on_handle_up_bind=this.onHandleUp.bindAsEventListener(this);this.on_handle_down_bind=this.onHandleDown.bindAsEventListener(this);this.on_handle_click_bind=this.onHandleClick.bindAsEventListener(this);this.handle.observe("mousedown",this.on_handle_down_bind);this.handle.observe("mouseup",this.on_handle_up_bind);this.handle.observe("click",this.on_handle_click_bind)},tearDownObservers:function(){this.handle.stopObserving("mousedown",this.on_handle_down_bind);this.handle.stopObserving("mouseup",this.on_handle_up_bind);this.handle.stopObserving("click",this.on_handle_click_bind)},onSlide:function(a){this.slidding=true;if(this.activated){var b=this.valueToScale(a);this.setEffectValue(this.effect,b)}},valueToScale:function(a){a=1-a;var b=this.range[1]-this.range[0];var d=b*a;d+=this.range[0];var c=100*Math.pow(2,d);return c},onSlideFinished:function(a){this.slidding=false;if(this.activated){var b=this.valueToScale(a);this.setEffectValue(this.effect_finished,b)}},onHandleDown:function(a){this.slider.eventMouseDown(a);a.stop()},onHandleUp:function(a){this.slider.eventMouseUp(a);a.stop()},onHandleClick:function(a){a.stop()}});var ToolBarHelp=Class.create(ToolBarControl,{effect:null,show_count:0,on_click_observer:null,initialize:function($super,b,a){this.class_name=a;this.effect=b;$super([b])},remove:function(){if(this.help&&this.on_click){this.help.stopObserving("click",this.on_click)}},buildElement:function($super){$super();var a="help";if(this.class_name){a=a+" "+this.class_name}this.help=Builder.node("div",{"class":a});this.on_click=this.onClick.bindAsEventListener(this);this.help.observe("click",this.on_click);return this.help},addClass:function(a){this.help.addClassName(a)},removeClass:function(a){this.help.removeClassName(a)},setOnClickObserver:function(a){this.on_click_observer=a},onClick:function(){if(this.on_click_observer){this.on_click_observer()}},addTo:function($super,a){$super(a)},remove:function(){this.element.remove()},enable:function($super,a){},show:function(a){if(a){this.element.setStyle({visibility:"visible"})}else{this.element.setStyle({visibility:"hidden"})}},onEffectSelected:function(a,b){},setValue:function(a){this.help.update(a)}});var ToolBarLabel=Class.create(ToolBarControl,{show_count:0,initialize:function($super,b,a){this.label=b;this.class_name=a;$super([])},buildElement:function($super){$super();label=Builder.node("div",{"class":this.class_name},this.label);return label},addTo:function($super,a){$super(a)},remove:function(){this.element.remove()},enable:function($super,a){},show:function(a){if(a){this.element.setStyle({visibility:"visible"})}else{this.element.setStyle({visibility:"hidden"})}},onEffectSelected:function(a,b){},setValue:function(a){}});var ToolBar=Class.create({toolbar:null,controls:null,widgets:null,initialize:function(a){this.controls=$A([]);this.widgets=$A([]);this.toolbar=this.buildToolbar(a);this.setupObservers()},remove:function(){this.teardownObservers()},setupObservers:function(){this.select_observer=this.onSelect.bind(this);this.change_observer=this.onChange.bind(this)},teardownObservers:function(){this.select_observer=null;this.change_observer=null},addTo:function(a,b){if(a&&this.toolbar){if(b){a.insert({top:this.toolbar})}else{a.insert({bottom:this.toolbar})}}},addSection:function(b,a){if(this.toolbar){section=this.buildSection(a);argv=this.addSection.arguments;args=this.addSection.arguments.length;if(args>2){var c=2;for(c;c<args;c++){argv[c].addTo(section);argv[c].enable(false);this.controls.push(argv[c])}}label_element=this.buildLabel(b);section.insert(label_element);this.toolbar.insert({top:section})}},buildSection:function(a){var b="section";if(a){b=b+" "+a}return Builder.node("div",{"class":b})},buildLabel:function(a){label_element=Builder.node("p");label_element.update(a);return label_element},buildToolbar:function(a){var b="toolbar";if(a){b=b+" "+a}return Builder.node("div",{"class":b},[Builder.node("div",{"class":"clear"})])},addToolBarWidget:function(a){this.widgets.push(a);a.observeSelect(this.select_observer);a.observeChange(this.change_observer);this.setAdded(a)},removeToolBarWidget:function(a){a.stopObservingSelect(this.select_observer);a.stopObservingChange(this.change_observer);this.widgets=this.widgets.without(a)},onSelect:function(a){if(a.isSelected()){this.setSelected(a)}else{if(this.selected_widget==a){this.setSelected(null)}}},onChange:function(a){if(a.isSelected()){this.setChanged(a)}},setAdded:function(a){if(this.controls){this.controls.each(function(b){b.onWidgetAdded(a)})}},setSelected:function(a){this.selected_widget=a;this.enable(false);if(this.controls){this.controls.each(function(b){b.onWidgetSelected(a)})}},setChanged:function(a){this.selected_widget=a;this.enable(false);if(this.controls){this.controls.each(function(b){b.onWidgetSelected(a)})}},enable:function(a){if(this.controls){this.controls.each(function(b){b.enable(a)})}},show:function(a){if(a){this.toolbar.show()}else{this.toolbar.hide()}},isVisible:function(){return this.toolbar.visible()},setReadOnly:function(a){if(a){this.toolbar.setStyle({visibility:"hidden"})}else{this.toolbar.setStyle({visibility:"visible"})}}});

function toRGB(d){var j,a,i,f;var e=$A([]);d.scan(/\d+(?:\.\d*)?/,function(c){e.push(c)});if(e.length==4){j=e[0];a=e[1];i=e[2];f=e[3]}j=Number(j);j=j/100;a=Number(a);a=a/100;i=Number(i);i=i/100;f=Number(f);f=f/100;var h=1-f;r=Math.round((1-(j*h+f))*255);g=Math.round((1-(a*h+f))*255);b=Math.round((1-(i*h+f))*255);return("rgb("+r+", "+g+", "+b+")")};

var Resizer=Class.create({image_element:null,handle_ne:null,handle_se:null,handle_sw:null,handle_nw:null,sizer:null,name_prefix:"resizer_",cursor_start_x:0,cursor_start_y:0,on_resize:null,parent:null,initialize:function(c,a,b){this.image_element=c;this.image_element.setStyle({position:"absolute"});this.on_resize=a;this.parent=b;this.create()},create:function(){this.createSizer();this.observeEvents()},remove:function(){this.stopObservingEvents();this.destroySizer()},createSizer:function(a){this.handle_ne=Builder.node("div",{"class":this.name_prefix+"handle "+this.name_prefix+"handle_ne"});this.handle_se=Builder.node("div",{"class":this.name_prefix+"handle "+this.name_prefix+"handle_se"});this.handle_sw=Builder.node("div",{"class":this.name_prefix+"handle "+this.name_prefix+"handle_sw"});this.handle_nw=Builder.node("div",{"class":this.name_prefix+"handle "+this.name_prefix+"handle_nw"});this.sizer=Builder.node("div",{"class":this.name_prefix+"sizer",style:"display: none;"},[this.handle_ne,this.handle_se,this.handle_sw,this.handle_nw,]);this.parent.appendChild(this.sizer)},observeEvents:function(){this.begin_drag_bind=this.onBeginDrag.bindAsEventListener(this);document.observe("mousedown",this.begin_drag_bind);this.onDragBind=this.onDrag.bindAsEventListener(this);this.endDragBind=this.onEndDrag.bindAsEventListener(this);this.imageLoadBind=this.onImageLoad.bindAsEventListener(this);this.image_element.observe("load",this.imageLoadBind);this.mouse_over_bind=this.onMouseOver.bindAsEventListener(this);this.sizer.observe("mouseover",this.mouse_over_bind);this.mouse_exit_bind=this.onMouseExit.bindAsEventListener(this);this.sizer.observe("mouseout",this.mouse_exit_bind)},destroySizer:function(){if(this.sizer){this.sizer.remove()}},stopObservingEvents:function(){document.stopObserving("mousedown",this.begin_drag_bind);if(this.onDragBind){Event.stopObserving(document,"mousemove",this.onDragBind)}if(this.endDragBind){Event.stopObserving(document,"mouseup",this.endDragBind)}if(this.imageLoadBind){this.image_element.stopObserving("load",this.imageLoadBind)}},setSize:function(){if(this.sizer&&this.image_element){this.clonePosition(this.image_element,this.sizer)}},show:function(){this.setSize();this.sizer.show()},hide:function(){this.sizer.hide()},getResizeElement:function(){return this.sizer},hitElement:function(d,a,h){var c=0,f=0,b=0,e=0;if(d&&d!=document){var g=d.cumulativeOffset();c=g[0];f=g[1];b=c+d.getWidth();e=f+d.getHeight();if(a>=c&&a<=b&&h>=f&&h<=e){return true}}return false},getDirection:function(a){var c=a.pointerX();var b=a.pointerY();if(this.hitElement(this.handle_ne,c,b)){return"ne"}else{if(this.hitElement(this.handle_se,c,b)){return"se"}else{if(this.hitElement(this.handle_sw,c,b)){return"sw"}else{if(this.hitElement(this.handle_nw,c,b)){return"nw"}}}}return null},onBeginDrag:function(a){var b=this.getDirection(a);if(b){this.direction=b;this.dragging=true;this.setStartPositions(a);Event.observe(document,"mousemove",this.onDragBind);Event.observe(document,"mouseup",this.endDragBind);a.stop()}},onDrag:function(f){if(this.dragging){var d=f.pointerX()-this.cursor_start_x;var e=f.pointerY()-this.cursor_start_y;d=Math.ceil(d);e=Math.ceil(e);if(this.direction=="se"){var c=this.width_start+d;var b=this.height_start+e;c=(c>0)?c:1;b=(b>0)?b:1;this.sizer.setStyle({width:c+"px",height:b+"px"})}else{if(this.direction=="ne"){var c=this.width_start+d;var b=this.height_start-e;var g=this.top_start+e;c=(c>0)?c:1;b=(b>0)?b:1;g=(g>=this.bottom_start)?this.bottom_start-1:g;this.sizer.setStyle({top:g+"px",width:c+"px",height:b+"px"})}else{if(this.direction=="sw"){var c=this.width_start-d;var b=this.height_start+e;var a=this.left_start+d;c=(c>0)?c:1;b=(b>0)?b:1;a=(a>=this.right_start)?this.right_start-1:a;this.sizer.setStyle({left:a+"px",width:c+"px",height:b+"px"})}else{if(this.direction=="nw"){var c=this.width_start-d;var b=this.height_start-e;var g=this.top_start+e;var a=this.left_start+d;c=(c>0)?c:1;b=(b>0)?b:1;g=(g>=this.bottom_start)?this.bottom_start-1:g;a=(a>=this.right_start)?this.right_start-1:a;this.sizer.setStyle({top:g+"px",left:a+"px",width:c+"px",height:b+"px"})}}}}this.clonePosition(this.sizer,this.image_element);if(this.on_resize){this.on_resize()}}},onEndDrag:function(a){if(this.dragging){Event.stopObserving(document,"mousemove",this.onDragBind);Event.stopObserving(document,"mouseup",this.endDragBind);this.dragging=false;if(this.on_resize){this.on_resize()}}},onImageLoad:function(a){this.setSize()},onMouseOver:function(){this.hovered=true;this.showHover.bind(this).delay(0.3)},onMouseExit:function(){this.hideHover()},showHover:function(){if(this.hovered){this.sizer.addClassName("hovered")}},hideHover:function(){this.hovered=false;this.sizer.removeClassName("hovered")},setStartPositions:function(a){this.cursor_start_x=a.pointerX();this.cursor_start_y=a.pointerY();this.width_start=this.sizer.getWidth();this.height_start=this.sizer.getHeight();this.top_start=Number(this.sizer.getStyle("top").gsub("px",""));this.left_start=Number(this.sizer.getStyle("left").gsub("px",""));this.bottom_start=this.top_start+this.height_start;this.right_start=this.left_start+this.width_start},clonePosition:function(c,g){var e=Number(c.getStyle("top").gsub("px",""));var h=Number(c.getStyle("left").gsub("px",""));var f=c.getWidth();var a=c.getHeight();var b=Number(c.getStyle("border-left-width").gsub("px",""));b+=Number(c.getStyle("border-right-width").gsub("px",""));var d=Number(c.getStyle("border-top-width").gsub("px",""));d+=Number(c.getStyle("border-bottom-width").gsub("px",""));if(!isNaN(b)){f-=b}if(!isNaN(d)){a-=d}g.setStyle({top:e+"px",left:h+"px",width:f+"px",height:a+"px"})},cloneZIndex:function(a){this.sizer.setStyle({zIndex:a.getStyle("zIndex")})}});

var TYPE_IMAGE=1;var TYPE_TEXT=2;var TYPE_BOX=3;var MAX_TEXT_LENGTH=128;var BaseModel=Class.create({selected:false,changed_observers:null,select_change_observers:null,hover_change_observers:null,z_order_change_observers:null,position_change_observers:null,remove_observers:null,drag_observers:null,object_id:null,selected:false,hovered:false,dragging:false,z_order:0,x_anchor:0,y_anchor:0,width:0,height:0,type:0,rotation:0,top_offset:0,bottom_offset:0,left_offset:0,right_offset:0,placeholder:false,database_id:null,limit:0,px_per_mm_ratio:6,card_size:null,loaded:false,free:true,visible:true,initialize:function(b,a){this.object_id=b;this.type=a;this.changed_observers=$A([]);this.select_change_observers=$A([]);this.hover_change_observers=$A([]);this.z_order_change_observers=$A([]);this.position_change_observers=$A([]);this.remove_observers=$A([]);this.drag_observers=$A([])},remove:function(){this.notifyRemoveObservers()},getId:function(){return this.object_id},setLoaded:function(a){this.loaded=a},getLoaded:function(){return this.loaded},setSelected:function(a){this.selected=a;this.notifySelectChangeObservers()},getSelected:function(){return this.selected},setHovered:function(a){this.hovered=a;this.notifyHoverChangeObservers()},getHovered:function(){return this.hovered},setCopyright:function(a){this.copyright=a},getCopyright:function(){return this.copyright},setZOrder:function(a){if(this.z_order!=a){this.z_order=a;this.notifyZOrderChangeObservers()}},getZOrder:function(){return this.z_order},setAlignment:function(a){this.setHorizontalAlignment(a.gsub(/(top|middle|bottom)/,""));this.setVerticalAlignment(a.gsub(/(left|center|centre|right)/,""))},getAlignment:function(){var b="";var d=this.getHorizontalAlignment();var c=this.getVerticalAlignment();if(c){b+=c}if(d){b+=d}return b},setHorizontalAlignment:function(b){if(this.getHorizontalAlignment()!=b){var a=this.getLeft();if(b=="center"||b=="centre"){this.setXAnchor(a+this.getWidth()/2)}else{if(b=="right"){this.setXAnchor(a+this.getWidth())}else{this.setXAnchor(a)}}this.horizontal_alignment=b;this.appearance_changed=true;this.notifyChangedObservers()}},getHorizontalAlignment:function(){return this.horizontal_alignment},setVerticalAlignment:function(a){if(this.getVerticalAlignment()!=a){var b=this.getTop();if(a=="middle"){this.setYAnchor(b+this.getHeight()/2)}else{if(a=="bottom"){this.setYAnchor(b+this.getHeight())}else{this.setYAnchor(b)}}this.vertical_alignment=a;this.appearance_changed=true;this.notifyChangedObservers()}},getVerticalAlignment:function(){return this.vertical_alignment},pxToMm:function(a){return a/this.px_per_mm_ratio},mmToPx:function(a){return a*this.px_per_mm_ratio},setPxPerMmRatio:function(a){this.px_per_mm_ratio=a},getPxPerPtRatio:function(){return this.px_per_mm_ratio/72*25.4},getXAnchorMm:function(){return this.pxToMm(this.getXAnchor())},setXAnchorMm:function(a){this.setXAnchor(this.mmToPx(a))},getYAnchorMm:function(){return this.pxToMm(this.getYAnchor())},setYAnchorMm:function(a){this.setYAnchor(this.mmToPx(a))},getWidthMm:function(){return this.pxToMm(this.getWidth())},setWidthMm:function(a){this.setWidth(this.mmToPx(a))},getHeightMm:function(){return this.pxToMm(this.getHeight())},setHeightMm:function(a){this.setHeight(this.mmToPx(a))},setXAnchor:function(a){this.x_anchor=a},getXAnchor:function(){return this.x_anchor},setYAnchor:function(a){this.y_anchor=a},getYAnchor:function(){return this.y_anchor},moveUp:function(a){this.y_anchor-=a;this.roundPosition();this.ensureVisible();this.notifyPositionChangeObservers()},getTop:function(d){var b=0;var a=this.getVerticalAlignment();if(a=="middle"){b=this.getHeight()/2*-1}else{if(a=="bottom"){b=this.getHeight()*-1}}var c=this.y_anchor+b;if(d){return c+this.getTopOffset()}else{return c}},getMiddle:function(b){var a=this.getTop()+this.getHeight()/2;if(b){a+=(this.getMiddleOffset())}return a},moveLeft:function(a){this.x_anchor-=a;this.roundPosition();this.ensureVisible();this.notifyPositionChangeObservers()},getLeft:function(d){var a=0;var c=this.getHorizontalAlignment();if(c=="center"||c=="centre"){a=this.getWidth()/2*-1}else{if(c=="right"){a=this.getWidth()*-1}}var b=this.x_anchor+a;if(d){return b+this.getLeftOffset()}else{return b}},getCenter:function(b){var a=this.getLeft()+this.getWidth()/2;if(b){a+=(this.getCenterOffset())}return a},moveDown:function(a){this.y_anchor+=a;this.roundPosition();this.ensureVisible();this.notifyPositionChangeObservers()},getBottom:function(b){var a=this.getTop()+this.getHeight();if(b){return a+this.bottom_offset}else{return a}},getRight:function(b){var a=this.getLeft()+this.getWidth();if(b){return a+this.right_offset}else{return a}},moveRight:function(a){this.x_anchor+=a;this.roundPosition();this.ensureVisible();this.notifyPositionChangeObservers()},setTopOffset:function(a){this.top_offset=a;this.roundPosition()},getTopOffset:function(){return this.top_offset},getMiddleOffset:function(){return(this.top_offset+this.bottom_offset)/2},setBottomOffset:function(a){this.bottom_offset;this.roundPosition()},getBottomOffset:function(){return this.bottom_offset},setLeftOffset:function(a){this.left_offset=a;this.roundPosition()},getLeftOffset:function(){return this.left_offset},getCenterOffset:function(){return(this.getLeftOffset()+this.getRightOffset())/2},setRightOffset:function(a){this.right_offset=a;this.roundPosition()},getRightOffset:function(){return this.right_offset},isAbove:function(a){if(!a){return true}else{var c=this.getZOrder();var b=a.getZOrder();return(c>b)}},setLimit:function(a){this.limit=a;this.setLimitBoundingBox();this.ensureVisible()},getLimit:function(){return this.limit},setBoundingBox:function(b,d,a,c){this.bounding_box=$H({x1:b,y1:d,x2:a,y2:c});this.setLimitBoundingBox();this.ensureVisible()},getBoundingBox:function(){return this.bounding_box},setLimitBoundingBox:function(){var a=this.getBoundingBox();if(a&&this.limit){this.limit_bounding_box=$H({x1:a.get("x1")+this.limit,x2:a.get("x2")-this.limit,y1:a.get("y1")+this.limit,y2:a.get("y2")-this.limit})}},getLimitBoundingBox:function(){return this.limit_bounding_box},getCenterOfBoundsY:function(){if(this.bounding_box){return(this.bounding_box.get("y2")-this.bounding_box.get("y1"))/2}else{return 0}},getCenterOfBoundsX:function(){if(this.bounding_box){return(this.bounding_box.get("x2")-this.bounding_box.get("x1"))/2}else{return 0}},ensureVisible:function(){var c=this.getRight();var f=this.getLeft();var e=this.getTop();var d=this.getBottom();var a=this.getLimitBoundingBox();if(a&&f&&e&&c&&d){x1=a.get("x1");x2=a.get("x2");y1=a.get("y1");y2=a.get("y2");if(c<x1&&f<x1){var b=Math.ceil(x1-c);this.moveRight(b)}else{if(f>x2&&c>x2){var b=Math.ceil(f-x2);this.moveLeft(b)}}if(d<y1&&e<y1){var b=Math.ceil(y1-d);this.moveDown(b)}else{if(e>y2&&d>y2){var b=Math.ceil(e-y2);this.moveUp(b)}}}},roundPosition:function(){this.x_anchor=this.roundToDP(this.x_anchor,2);this.y_anchor=this.roundToDP(this.y_anchor,2);this.width=this.roundToDP(this.width,2);this.height=this.roundToDP(this.height,2);this.top_offset=this.roundToDP(this.top_offset,2);this.bottom_offset=this.roundToDP(this.bottom_offset,2);this.left_offset=this.roundToDP(this.left_offset,2);this.right_offset=this.roundToDP(this.right_offset,2)},roundToDP:function(b,a){if(!a){a=2}inc_number=b*(Math.pow(10,a));inc_number=Math.round(inc_number);return inc_number/(Math.pow(10,a))},setPosition:function(f,e,a,b){horizontal_alignment=this.getHorizontalAlignment();var d=0;this.width=(a-f);if(horizontal_alignment=="right"){d=this.getWidth()}else{if(horizontal_alignment=="center"||horizontal_alignment=="centre"){d=this.getWidth()/2}}this.x_anchor=(f+d);this.height=(b-e);vertical_alignment=this.getVerticalAlignment();var c=0;if(vertical_alignment=="bottom"){c=this.getHeight()}else{if(vertical_alignment=="middle"){c=this.getHeight()/2}}this.y_anchor=(e+c)},resize:function(d,c,a,b){this.setPosition(d,c,a,b);this.notifyPositionChangeObservers()},getHeight:function(){return this.height},setHeight:function(b,a){if(b<0){b=0}b=this.roundToDP(b,2);if(b!=this.height){this.height=b;this.roundPosition();this.ensureVisible();if(!a){this.notifyPositionChangeObservers()}}},getWidth:function(){return this.width},setWidth:function(b,a){if(b<0){b=0}b=this.roundToDP(b,2);if(b!=this.width){this.width=b;this.roundPosition();this.ensureVisible();if(!a){this.notifyPositionChangeObservers()}}},setType:function(a){this.type=a},getType:function(){return this.type},setRotation:function(a){this.rotation=a;this.appearance_changed=true;this.notifyChangedObservers()},getRotation:function(){return this.rotation},setVisible:function(a){if(this.visible!=a){this.visible=a;this.notifyChangedObservers()}},getVisible:function(){return this.visible},rotate:function(){var a=this.rotation+45;a%=360;this.setRotation(a)},rotateBy:function(b){var a=(this.rotation+b)%360;this.setRotation(a)},setPlaceholder:function(a){this.placeholder=a},getPlaceholder:function(a){return this.placeholder},setDatabaseId:function(a){this.database_id=a},getDatabaseId:function(a){return this.database_id},observeChanged:function(a){this.changed_observers.push(a)},stopObservingChanged:function(a){this.changed_observers=this.changed_observers.without(a)},notifyChangedObservers:function(){this.changed_observers.each(function(a){a(this)}.bind(this))},observeSelectChange:function(a){this.select_change_observers.push(a)},stopObservingSelectChange:function(a){this.select_change_observers=this.select_change_observers.without(a)},notifySelectChangeObservers:function(){this.select_change_observers.each(function(a){a(this)}.bind(this))},observeHoverChange:function(a){this.hover_change_observers.push(a)},stopObservingHoverChange:function(a){this.hover_change_observers=this.hover_change_observers.without(a)},notifyHoverChangeObservers:function(){this.hover_change_observers.each(function(a){a(this)}.bind(this))},observeZOrderChange:function(a){this.z_order_change_observers.push(a)},stopObservingZOrderChange:function(a){this.z_order_change_observers=this.z_order_change_observers.without(a)},notifyZOrderChangeObservers:function(){this.z_order_change_observers.each(function(a){a(this)}.bind(this))},observePositionChange:function(a){this.position_change_observers.push(a)},stopObservingPositionChange:function(a){this.position_change_observers=this.position_change_observers.without(a)},notifyPositionChangeObservers:function(){this.position_change_observers.each(function(a){a(this)}.bind(this))},observeRemove:function(a){this.remove_observers.push(a)},stopObservingRemove:function(a){this.remove_observers=this.remove_observers.without(a)},notifyRemoveObservers:function(){this.remove_observers.each(function(a){a(this)}.bind(this))},observeDrag:function(a){this.drag_observers.push(a)},stopObservingDrag:function(a){this.drag_observers=this.drag_observers.without(a)},notifyDragObservers:function(){this.drag_observers.each(function(a){a(this)}.bind(this))},setFree:function(a){this.free=a;this.notifyChangedObservers()},getFree:function(){return this.free},toHash:function(){return $H({zindex:this.getZOrder(),vertical_alignment:this.getVerticalAlignment(),horizontal_alignment:this.getHorizontalAlignment(),copyright:this.getCopyright(),x_anchor:this.getXAnchorMm(),y_anchor:this.getYAnchorMm(),width:this.getWidthMm(),height:this.getHeightMm(),rotation:this.getRotation(),free:this.getFree(),id:this.getDatabaseId()})},toJSON:function(){return this.toHash().toJSON()},setCardSize:function(a){this.card_size=a},getCardSize:function(){return this.card_size},setDragging:function(a){this.dragging=a;this.notifyDragObservers()},getDragging:function(){return this.dragging}});var ImageModel=Class.create(BaseModel,{crop_coordinates:null,base_width:0,base_height:0,copyright:"",upload_id:0,first_load:true,scale:null,thumbnail:"",notified_scale:null,initialize:function($super,a){this.crop_coordinates=$H({crop_x1:0,crop_y1:0,crop_x2:0,crop_y2:0});$super(a,TYPE_IMAGE)},remove:function($super){$super()},resize:function(e){var a=this.getWidth();var g=this.getHeight();var f=e;var b=e;var h=f*Math.abs((this.getRotation()-90)%91/90)+b*Math.abs((this.getRotation())%91/90);var i=f*Math.abs((this.getRotation())%91/90)+b*Math.abs((this.getRotation()-90)%91/90);this.base_width*=h;this.base_height*=i;this.width=right-left;this.height=bottom-top;horizontal_alignment=this.getHorizontalAlignment();var d=0;if(horizontal_alignment=="right"){d=this.getWidth()}else{if(horizontal_alignment=="center"||horizontal_alignment=="centre"){d=this.getWidth()/2}}this.x_anchor=left+d;vertical_alignment=this.getVerticalAlignment();var c=0;if(vertical_alignment=="bottom"){c=this.getHeight()}else{if(vertical_alignment=="middle"){c=this.getHeight()/2}}this.y_anchor=top+c;this.notifyChangedObservers()},setRotation:function($super,a){this.rotation=a;this.appearance_changed=true;this.setActualDimensions();this.notifyChangedObservers()},setBaseDimensions:function(a,b){this.scale=100;this.base_width=this.roundToDP(a,2);this.base_height=this.roundToDP(b,2);this.setActualDimensions();this.notifyChangedObservers()},setActualDimensions:function(){var b=this.base_width*Math.abs(Math.cos(this.getRotation()*Math.PI/180))+this.base_height*Math.abs(Math.sin(this.getRotation()*Math.PI/180));var a=this.base_height*Math.abs(Math.cos(this.getRotation()*Math.PI/180))+this.base_width*Math.abs(Math.sin(this.getRotation()*Math.PI/180));this.setWidth(b);this.setHeight(a)},setImage:function(b,c,a){this.upload_id=b;this.thumbnail=c;this.copyright=a;this.notifyChangedObservers()},getUploadId:function(){return this.upload_id},getThumbnail:function(){return this.thumbnail},getCopyright:function(){copyright="";if(this.copyright){copyright=this.copyright}return copyright},setCropCoordinates:function(b,d,a,c){if(!this.crop_coordinates){this.crop_coordinates=$H({})}this.crop_coordinates.set("crop_x1",b);this.crop_coordinates.set("crop_y1",d);this.crop_coordinates.set("crop_x2",a);this.crop_coordinates.set("crop_y2",c);if(b>0||d>0||a>0||c>0){this.setBaseDimensions(a-b,c-d)}this.notifyChangedObservers()},isCropCoordinatesSet:function(){x1=this.crop_coordinates.get("crop_x1");y1=this.crop_coordinates.get("crop_y1");x2=this.crop_coordinates.get("crop_x2");y2=this.crop_coordinates.get("crop_y2");if(x1>0||y1>0||x2>0||y2>0){return true}else{return false}},getCropCoordinates:function(){return this.crop_coordinates},resetCropCoordinates:function(){this.setCropCoordinates(0,0,0,0);this.notifyChangedObservers()},setBaseWidth:function(a){this.base_width=a},getBaseWidth:function(){return this.base_width},getBaseHeight:function(){return this.base_height},setBaseHeight:function(a){this.base_height=a},areBaseDimensionsSet:function(){return(this.getBaseHeight()>0&&this.getBaseWidth()>0)},getHorizontalAlignment:function(){return"center"},getVerticalAlignment:function(){return"middle"},setFirstLoad:function(a){this.first_load=a},getScaleRange:function(){if(this.getOriginalWidth()>10||this.getOriginalHeight()>10){var f=10/this.getOriginalHeight();var d=10/this.getOriginalWidth();var e=Math.max(d,f);var h=1500/this.getOriginalHeight();var g=1500/this.getOriginalWidth();var a=Math.min(h,g);var c=Math.log(e)/Math.log(2);var b=Math.log(a)/Math.log(2);range=$A([c,b]);return range}else{return $A([0,0])}},getOriginalHeight:function(){var c=this.scale;if(c==null){c==100}var a=0;var b=this.getHeight();if(b!=null){a=b/(c/100)}return a},getOriginalWidth:function(){var c=this.scale;if(c==null){c==100}var b=0;var a=this.getWidth();if(a!=null){b=a/(c/100)}return b},getOriginalBaseHeight:function(){var c=this.scale;if(c==null){c==100}var a=0;var b=this.getBaseHeight();if(b!=null){a=b/(c/100)}return a},getOriginalBaseWidth:function(){var c=this.scale;if(c==null){c==100}var b=0;var a=this.getBaseWidth();if(a!=null){b=a/(c/100)}return b},setScale:function(b,i){if(b==null){b=100}if(this.scale!=null){var e=this.getOriginalWidth();var d=this.getOriginalHeight();var c=e*(b/100);var a=d*(b/100);this.setWidth(c);this.setHeight(a);var f=this.getOriginalBaseWidth();var j=this.getOriginalBaseHeight();var g=f*(b/100);var h=j*(b/100);this.setBaseWidth(g);this.setBaseHeight(h)}if(i&&this.notified_scale!=b){this.notified_scale=b;this.notifyChangedObservers()}this.scale=b},getScale:function(){if(this.scale==null){return 100}else{return this.scale}},toHash:function($super){var a=$H({crop_x1:this.crop_coordinates.get("crop_x1"),crop_y1:this.crop_coordinates.get("crop_y1"),crop_x2:this.crop_coordinates.get("crop_x2"),crop_y2:this.crop_coordinates.get("crop_y2"),base_width:this.getBaseWidth(),base_height:this.getBaseHeight(),scale:this.getScale(),upload_id:this.getUploadId(),thumbnail:this.getThumbnail()});var b=$super();b=b.merge(a);var c=$H({image_layout_item:b});return c},toJSON:function(){return this.toHash().toJSON()}});var TextModel=Class.create(BaseModel,{text:"",label:"",name:"",font:"Swiss721BT-Roman",font_size:24,font_colour:"cmyk(0%, 0%, 0%, 100%)",horizontal_alignment:"left",vertical_alignment:"top",shadow_direction:0,shadow_size:0,shadow_colour:"cmyk(0%, 0%, 0%, 100%)",line_spacing:0,letter_spacing:0,initialize:function($super,a){$super(a,TYPE_TEXT)},remove:function($super){$super()},setText:function(a){if(this.text!=a){this.text=a;this.setPlaceholder(false);this.text_changed=true;this.notifyChangedObservers()}},getText:function(){return this.text},getNonPlaceholderText:function(){if(this.getPlaceholder()){return""}else{return this.text}},setLabel:function(a){if(this.label!=a){this.label=a;this.notifyChangedObservers()}},getLabel:function(){return this.label},setName:function(a){this.name=a},getName:function(){return name},setFont:function(a){if(this.font!=a){this.font=a;this.appearance_changed=true;this.notifyChangedObservers()}},getFont:function(){if(this.font){return this.font}else{return""}},setFontSize:function(a){if(this.font_size!=a){this.font_size=a;this.appearance_changed=true;this.notifyChangedObservers()}},getFontSize:function(){return this.font_size},getAdjustedFontSize:function(){if(this.font_size==null){return 0}else{return this.font_size*this.getPxPerPtRatio()}},setFontColour:function(a){if(this.font_colour!=a){this.font_colour=a;this.appearance_changed=true;this.notifyChangedObservers()}},getFontColour:function(){return this.font_colour},setShadowDirection:function(a){if(this.shadow_direction!=a){this.shadow_direction=a;this.appearance_changed=true;this.notifyChangedObservers()}},getShadowDirection:function(){return this.shadow_direction},setShadowSize:function(a){if(this.shadow_size!=a){this.shadow_size=a;this.appearance_changed=true;this.notifyChangedObservers()}},getShadowSize:function(){return this.shadow_size},getAdjustedShadowSize:function(){if(this.shadow_size==null){return 0}else{return this.shadow_size*this.getPxPerPtRatio()}},setShadowColour:function(a){if(this.shadow_colour!=a){this.shadow_colour=a;this.appearance_changed=true;this.notifyChangedObservers()}},getShadowColour:function(){return this.shadow_colour},setLineSpacing:function(a){if(this.line_spacing!=a){this.line_spacing=a;this.appearance_changed=true;this.notifyChangedObservers()}},getLineSpacing:function(){return this.line_spacing},setLetterSpacing:function(a){if(this.letter_spacing!=a){this.letter_spacing=a;this.appearance_changed=true;this.notifyChangedObservers()}},getLetterSpacing:function(){return this.letter_spacing},notifyChangedObservers:function($super){$super();this.text_changed=false;this.appearance_changed=false},isAppearanceChanged:function(){return this.appearance_changed},isTextChanged:function(){return this.text_changed},toHash:function($super){var b=$H({content:(this.getNonPlaceholderText()),name:this.name,font_colour:this.font_colour,font:this.font,font_size:this.font_size,shadow_colour:this.shadow_colour,shadow_direction:this.shadow_direction,shadow_size:this.shadow_size,line_spacing:this.line_spacing,letter_spacing:this.letter_spacing});var c=$super();c=c.merge(b);var a=$H({text_layout_item:c});return a},toJSON:function(){return this.toHash().toJSON()}});var BoxModel=Class.create(BaseModel,{font_colour:"cmyk(0%, 0%, 0%, 100%)",appearance_changed:false,initialize:function($super,a){$super(a,TYPE_BOX)},remove:function($super){$super()},setFontColour:function(a){if(this.font_colour!=a){this.font_colour=a;this.appearance_changed=true;this.notifyChangedObservers()}},getFontColour:function(){return this.font_colour},getFontColourRGB:function(){return toRGB(this.font_colour)},getHorizontalAlignment:function(){return"top"},getVerticalAlignment:function(){return"left"},notifyChangedObservers:function($super){$super();this.appearance_changed=false},isAppearanceChanged:function(){return this.appearance_changed},toHash:function($super){var b=$H({font_colour:this.font_colour});var c=$super();c=c.merge(b);var a=$H({box_layout_item:c});return a},toJSON:function(){return this.toHash().toJSON()}});var BaseToolBarWidget=Class.create({model:null,model_select_observer:null,select_observers:null,initialize:function(a){this.model=a;this.select_observers=$A([]);this.change_observers=$A([]);this.model_select_observer=this.onModelSelect.bind(this);this.model_change_observer=this.onModelChange.bind(this);this.model.observeSelectChange(this.model_select_observer);this.model.observeChanged(this.model_change_observer)},setEffect:function(a,b){},getEffect:function(a){},onModelSelect:function(){this.notifySelectObservers()},observeSelect:function(a){this.select_observers.push(a)},stopObservingSelect:function(a){this.select_observers=this.select_observers.without(a)},notifySelectObservers:function(){this.select_observers.each(function(a){a(this)}.bind(this))},onModelChange:function(){this.notifyChangeObservers()},observeChange:function(a){this.change_observers.push(a)},stopObservingChange:function(a){this.change_observers=this.change_observers.without(a)},notifyChangeObservers:function(){this.change_observers.each(function(a){a(this)}.bind(this))},isSelected:function(){return this.model.getSelected()}});var ImageToolBarWidget=Class.create(BaseToolBarWidget,{initialize:function($super,a){$super(a)},setEffect:function(a,b){switch(a){case"rotate":this.model.rotate();break;case"scale":this.model.setScale(b);break;case"scale_finished":this.model.setScale(b,true);break}},getEffect:function(a){var b=null;switch(a){case"rotate":b=this.model.getRotation();break;case"scale":b=this.model.getScale();break}return b},getScaleRange:function(){var a=null;if(this.model){a=this.model.getScaleRange()}return a}});var TextToolBarWidget=Class.create(BaseToolBarWidget,{initialize:function($super,a){$super(a)},setEffect:function(a,b){switch(a){case"font-size":this.model.setFontSize(b);break;case"font-colour":this.model.setFontColour(b);break;case"font":this.model.setFont(b);break;case"text-align":this.model.setAlignment(b);break;case"rotate":this.model.rotate();break;case"shadow-direction":this.model.setShadowDirection(b);break;case"shadow-size":this.model.setShadowSize(b);break;case"shadow-colour":this.model.setShadowColour(b);break;case"line-spacing":this.model.setLineSpacing(b);break;case"letter-spacing":this.model.setLetterSpacing(b);break}},getEffect:function(a){var b=null;switch(a){case"font-size":b=this.model.getFontSize();break;case"font-colour":b=this.model.getFontColour();break;case"font":b=this.model.getFont();break;case"text-align":b=this.model.getAlignment();break;case"rotate":b=this.model.getRotation();break;case"shadow-direction":b=this.model.getShadowDirection(b);break;case"shadow-size":b=this.model.getShadowSize(b);break;case"shadow-colour":b=this.model.getShadowColour(b);break;case"line-spacing":b=this.model.getLineSpacing(b);break;case"letter-spacing":b=this.model.getLetterSpacing(b);break}return b}});var BoxToolBarWidget=Class.create(BaseToolBarWidget,{initialize:function($super,a){$super(a)},setEffect:function(a,b){switch(a){case"font-colour":this.model.setFontColour(b);break}},getEffect:function(a){var b=null;switch(a){case"font-colour":b=this.model.getFontColour();break}return b}});var BaseIndexWidget=Class.create({parent:null,model:null,index_id:null,index_element:null,hovered_button_template:new Template("<a href='#' class='trash'></a><a href='#' class='move'></a><div class='clear></div>"),load_observers:null,initialize:function(a){this.load_observers=[];this.model=a;this.select_observers=[];this.index_id="index_"+this.model.getId();this.makeIndexElement();this.setupEventObservers()},remove:function(){this.tearDownEventObservers();this.removeIndexElement()},setupEventObservers:function(){this.model_changed_observer=this.onModelChanged.bind(this);this.model.observeChanged(this.model_changed_observer);this.model_select_observer=this.onModelSelect.bind(this);this.model.observeSelectChange(this.model_select_observer);this.model_hover_observer=this.onModelHover.bind(this);this.model.observeHoverChange(this.model_hover_observer);this.select_observer=this.onSelect.bind(this);this.index_element.observe("click",this.select_observer);this.mouse_over_observer=this.onMouseOver.bind(this);this.index_element.observe("mouseover",this.mouse_over_observer);this.mouse_out_observer=this.onMouseOut.bind(this);this.index_element.observe("mouseout",this.mouse_out_observer)},tearDownEventObservers:function(){this.model.stopObservingChanged(this.model_changed_observer);this.model.stopObservingSelectChange(this.model_select_observer);this.model.stopObservingHoverChange(this.model_hover_observer);this.model.stopObservingRemove(this.model_remove_observer)},makeIndexElement:function(){this.index_element=Builder.node("li",{id:this.index_id,"class":"index_widget"});var a=this.makeHoveredButton();this.index_element.insert(a);this.index_element.insert(this.getIndexContent())},makeHoveredButton:function(){var a=Builder.node("span",{"class":"hovered_button"});a.update(this.getHoveredButtonContent());return a},getHoveredButtonContent:function(){return hovered_button_template.evaluate({})},addIndexElementTo:function(b,a){if(b){this.parent=b;if(a){a.insert({before:this.index_element})}else{b.insert(this.index_element)}}},removeIndexElement:function(){if(this.index_element!=null&&this.isVisible()){this.index_element.remove()}},setState:function(){if(this.index_element){this.index_element.removeClassName("selected");this.index_element.removeClassName("hovered");this.index_element.removeClassName("contracted");if(this.model.getSelected()){this.index_element.addClassName("selected")}if(!this.model.getSelected()&&!this.model.getHovered()){this.index_element.addClassName("contracted")}this.showHover.bind(this).delay(0.3)}},showHover:function(){if(this.model.getHovered()){this.index_element.addClassName("hovered")}},onModelChanged:function(){},onModelSelect:function(){this.setState()},onModelHover:function(){this.setState()},onSelect:function(a){this.model.setSelected(true);a.stop()},onMouseOver:function(a){if(!this.model.getHovered()){this.model.setHovered(true)}},onMouseOut:function(a){if(a.element()==this.mouseover_element&&this.model.getHovered()){this.model.setHovered(false)}},setZOrder:function(a){this.model.setZOrder(a)},idEquals:function(a){if(this.model&&this.model.getId()==a){return true}else{return false}},getModel:function(){return this.model},getIndexElement:function(){return this.index_element},isVisible:function(){if(this.index_element!=null&&this.index_element.up()!=null){return true}else{return false}},notifyLoadObservers:function(b,a){this.load_observers.each(function(c){c(this,b,a)}.bind(this))},observeLoad:function(a){this.load_observers.push(a)},stopObservingLoad:function(a){this.load_observers=this.load_observers.without(a)}});var ImageIndexWidget=Class.create(BaseIndexWidget,{hovered_button_template:new Template("<a href='#' class='trash'></a><a href='#' class='move'></a><div class='clear'></div>"),index_template:new Template("<div class='change_image'> 									<div class='thumbnail' style='background-image: url(#{thumbnail_image})'></div> 									<div class='change_image_links'> 										<p class='thumbnail_info #{info_class}'> 											<a href='#' class='choose_file'>change</a> 											<span class='copyright'>#{copyright}</span> 										</p> 									</div> 									<div class='clear'></div> 								  </div>"),image_file:null,choose_file_element:null,copyright_element:null,crop_element:null,choose_file_click_observer:null,crop_click_observer:null,image_dialog:null,crop_dialog:null,image_selected_observer:null,image_expanded:null,MORE_INFO_CLASS:"more_info",initialize:function($super,c,b,a){$super(c);this.image_dialog=b;this.crop_dialog=a;this.thumbnail_info_element=this.index_element.select(".thumbnail_info").first();this.choose_file_element=this.index_element.select(".choose_file").first();this.copyright_element=this.index_element.select(".copyright").first();this.trash_element=this.index_element.select(".trash").first();this.move_element=this.index_element.select(".move").first();this.thumbnail_element=this.index_element.select(".thumbnail").first();this.label_element=this.index_element.select("label").first();this.change_links=this.index_element.select(".change_image_links").first();this.setupCustomEventObservers()},remove:function($super){this.tearDownCustomEventObservers();$super()},setupCustomEventObservers:function(){this.image_selected_observer=this.onImageSelected.bind(this);this.crop_selected_observer=this.onCropSelected.bind(this);this.crop_click_observer=this.onCropClick.bind(this);this.choose_file_click_observer=this.onChooseFileClick.bind(this);this.trash_click_observer=this.onTrashClick.bind(this);this.move_click_observer=this.onMoveClick.bind(this);this.choose_file_element.observe("click",this.choose_file_click_observer);this.trash_element.observe("click",this.trash_click_observer);this.move_element.observe("click",this.move_click_observer)},tearDownCustomEventObservers:function(){this.choose_file_element.stopObserving("click",this.choose_file_click_observer);this.trash_element.stopObserving("click",this.trash_click_observer);this.move_element.stopObserving("click",this.move_click_observer)},getIndexContent:function(){var a=this.index_template.evaluate({thumbnail_image:this.model.getThumbnail(),copyright:this.getCopyright(),info_class:this.getCopyrightClass()});return a},getCopyright:function(){var a="";var b=this.model.getCopyright();if(b&&b.length>0){a="<br/>Image thanks to:<br/>";a+=b}return a},getCopyrightClass:function(){var a="";var b=this.model.getCopyright();if(b&&b.length>0){a=this.MORE_INFO_CLASS}return a},getHoveredButtonContent:function($super){return this.hovered_button_template.evaluate({})},onChooseFileClick:function(a){this.chooseFile();a.stop()},chooseFile:function(){this.image_dialog.show(this.image_selected_observer)},onCropClick:function(b){var a=this.model.getCropCoordinates();x1=a.get("crop_x1");y1=a.get("crop_y1");x2=a.get("crop_x2");y2=a.get("crop_y2");this.crop_dialog.show(this.crop_selected_observer,x1,y1,x2,y2);b.stop()},onTrashClick:function(a){this.model.remove();a.stop()},onMoveClick:function(a){},onImageSelected:function(){this.model.setImage(this.image_dialog.getSelectedId(),this.image_dialog.getSelectedThumb(),this.image_dialog.getSelectedCopyright())},onCropSelected:function(a){if(a=="apply"){var b=this.crop_dialog.getScaledCropCoordinates();this.model.setCropCoordinates(b.x1,b.y1,b.x2,b.y2)}},onModelChanged:function(){this.thumbnail_element.setStyle({backgroundImage:"url("+this.model.getThumbnail()+")"});this.copyright_element.update(this.getCopyright());this.thumbnail_info_element.removeClassName(this.MORE_INFO_CLASS);this.thumbnail_info_element.addClassName(this.getCopyrightClass())}});var TextIndexWidget=Class.create(BaseIndexWidget,{hovered_button_template:new Template("<a href='#' class='trash'></a><a href='#' class='move'></a>"),index_template:new Template("<table class='outline' border=0 cellpadding=0 cellspacing=0><tr><td><a class='watermark'>#{label}</a><textarea>#{text}</textarea></td></tr></table>"),textarea:null,textarea_size:null,keyup_observer:null,text_updates:0,has_focus:false,initialize:function($super,a){$super(a);this.text_updates=0;this.textarea=this.index_element.select("textarea").first();this.move_element=this.index_element.select(".move").first();this.trash_element=this.index_element.select(".trash").first();this.label_element=this.index_element.select(".watermark").first();this.setTextAreaSize();this.recalcHeight();this.setupCustomEventObservers()},remove:function($super){this.tearDownCustomEventObservers();$super()},getIndexContent:function(){return this.index_template.evaluate({label:this.model.getLabel(),text:this.model.getNonPlaceholderText()})},getHoveredButtonContent:function($super){return this.hovered_button_template.evaluate({})},setTextAreaSize:function(){if($("textarea")){this.textarea_size=$("textarea")}else{this.textarea_size=Builder.node("p",{id:"textarea",style:"display: none;"});$(document.body).insert({top:this.textarea_size})}},setupCustomEventObservers:function(){this.keyup_observer=this.onKeyUp.bindAsEventListener(this);this.move_click_observer=this.onMoveClick.bindAsEventListener(this);this.trash_click_observer=this.onTrashClick.bind(this);this.label_click_observer=this.onLabelClick.bind(this);this.focus_observer=this.onFocus.bindAsEventListener(this);this.blur_observer=this.onBlur.bindAsEventListener(this);this.textarea.observe("keyup",this.keyup_observer);this.textarea.observe("focus",this.focus_observer);this.textarea.observe("blur",this.blur_observer);this.move_element.observe("click",this.move_click_observer);this.trash_element.observe("click",this.trash_click_observer);this.label_element.observe("click",this.label_click_observer)},tearDownCustomEventObservers:function($super){this.textarea.stopObserving("keyup",this.keyup_observer);this.textarea.stopObserving("focus",this.focus_observer);this.textarea.stopObserving("blur",this.blur_observer);this.move_element.stopObserving("click",this.move_click_observer);this.trash_element.stopObserving("click",this.trash_click_observer);this.label_element.stopObserving("click",this.label_click_observer)},onKeyUp:function(a){if(this.textarea.value&&this.textarea.value.length>MAX_TEXT_LENGTH){this.textarea.value=this.textarea.value.truncate(MAX_TEXT_LENGTH,"")}if(this.model.getText()!=this.textarea.value){this.notifyLoadObservers(0,true);this.recalcHeight();this.text_updates++;this.delayTextUpdate.bind(this).delay(0.5)}},delayTextUpdate:function(){this.text_updates--;if(this.text_updates<=0){if(this.model.getText()!=this.textarea.value){this.model.setText(this.textarea.value)}else{this.notifyLoadObservers(0,false)}}},onFocus:function(a){this.has_focus=true;this.model.setSelected(true);this.model.setHovered(true);this.recalcHeight();if(this.model.getPlaceholder()){this.model.setText("")}},onModelSelect:function($super){$super();this.recalcHeight()},onBlur:function(a){this.has_focus=false;this.recalcHeight()},onTextClick:function(a){a.stop()},recalcHeight:function(){htmlText="";htmlText=this.textarea.value;htmlText=htmlText.gsub(/^ *$/,".");htmlText=htmlText.gsub(/(\r\n *$|\n *$)/,"<br>.");htmlText=htmlText.gsub(/(\r\n|\n)/,"<br>");if(htmlText.length<=0){htmlText="."}this.textarea_size.show();this.textarea_size.update(htmlText);var g=this.textarea_size.getHeight();var c=this.textarea.getWidth();var f=Number(this.textarea.getStyle("line-height").gsub("px",""));var h=Number(this.textarea.getStyle("border-left-width").gsub("px",""));var a=Number(this.textarea.getStyle("border-right-width").gsub("px",""));var e=Number(this.textarea.getStyle("padding-left").gsub("px",""));var d=Number(this.textarea.getStyle("padding-right").gsub("px",""));c-=(h+a+(e*2)+(d*2));if(c>0){this.textarea_size.setStyle({width:c+"px"})}var b=Math.round(Number(g)-3);if(this.model.getSelected()){b+=(f*1.5)}this.textarea_size.hide();this.textarea.setStyle({height:b+"px"})},onModelChanged:function(){this.textarea.value=this.model.getNonPlaceholderText();this.recalcHeight.bind(this).defer();this.label_element.update(this.model.getLabel())},onMoveClick:function(a){},onTrashClick:function(a){this.model.remove();a.stop()},onLabelClick:function(a){this.textarea.focus();a.stop()}});var BoxIndexWidget=Class.create(BaseIndexWidget,{hovered_button_template:new Template("<a href='#' class='trash'></a><a href='#' class='move'></a><div class='clear'></div>"),index_template:new Template("<div class='change_image'> 									<div class='thumbnail' style='background-color: #{colour}'></div> 									<div class='clear'></div> 								  </div>"),initialize:function($super,a){$super(a);this.trash_element=this.index_element.select(".trash").first();this.move_element=this.index_element.select(".move").first();this.thumbnail_element=this.index_element.select(".thumbnail").first();this.setupCustomEventObservers()},remove:function($super){this.tearDownCustomEventObservers();$super()},setupCustomEventObservers:function(){this.trash_click_observer=this.onTrashClick.bind(this);this.trash_element.observe("click",this.trash_click_observer)},tearDownCustomEventObservers:function(){this.trash_element.stopObserving("click",this.trash_click_observer)},getIndexContent:function(){var a=this.index_template.evaluate({colour:this.model.getFontColourRGB()});return a},getHoveredButtonContent:function($super){return this.hovered_button_template.evaluate({})},onTrashClick:function(a){this.model.remove();a.stop()},onModelChanged:function(){this.thumbnail_element.setStyle({backgroundColor:this.model.getFontColourRGB()})}});var BaseWidget=Class.create({canvas_id:null,canvas_element:null,draggable:null,model_changed_observer:null,model_z_order_observer:null,model_select_observer:null,model_hover_observer:null,model_position_observer:null,click_observer:null,hover_observer:null,mouse_out_observer:null,model:null,alignment_indicators:null,load_observers:null,loaded:false,initialize:function(a,b){this.models=b;this.load_observers=[];this.model=a;this.makeCanvasElement();this.setupEventObservers();this.setWidgetPosition();this.show()},remove:function(){this.tearDownEventObservers();this.hideAlignmentIndicators();if(this.canvas_element!=null){this.canvas_element.remove()}if(this.focus_hack!=null){this.focus_hack.remove()}},setupEventObservers:function(){this.model_changed_observer=this.onModelChanged.bind(this);this.model.observeChanged(this.model_changed_observer);this.model_z_order_changed_observer=this.onModelZOrder.bind(this);this.model.observeZOrderChange(this.model_z_order_changed_observer);this.model_select_observer=this.onModelSelect.bind(this);this.model.observeSelectChange(this.model_select_observer);this.model_hover_observer=this.onModelHover.bind(this);this.model.observeHoverChange(this.model_hover_observer);this.model_position_observer=this.onModelPosition.bind(this);this.model.observePositionChange(this.model_position_observer)},tearDownEventObservers:function(){this.model.stopObservingChanged(this.model_changed_observer);this.model.stopObservingZOrderChange(this.model_changed_observer);this.model.stopObservingSelectChange(this.model_select_observer);this.model.stopObservingHoverChange(this.model_hover_observer);this.model.stopObservingPositionChange(this.model_position_observer);this.model.stopObservingRemove(this.model_remove_observer)},setAlignmentIndicators:function(a){this.alignment_indicators=a},hideAlignmentIndicators:function(){if(this.alignment_indicators){this.alignment_indicators.hideIndicators()}},fadeAlignmentIndicators:function(){if(this.alignment_indicators){this.alignment_indicators.fadeIndicators()}},activateAlignmentIndicators:function(){if(this.alignment_indicators){this.alignment_indicators.activate()}},onModelChanged:function(){this.notifyLoadObservers(0,true);this.show()},onModelZOrder:function(){this.setZOrder()},setZOrder:function(){if(this.canvas_element){this.canvas_element.setStyle({zIndex:this.model.getZOrder()})}},onModelSelect:function(){this.fadeAlignmentIndicators();this.showSelect()},onModelHover:function(){this.showHover.bind(this).delay(0.3)},showHover:function(){if(this.canvas_element){this.canvas_element.removeClassName("hovered");if(this.model.getHovered()){this.canvas_element.addClassName("hovered")}}},showSelect:function(){if(this.canvas_element){this.canvas_element.removeClassName("selected");if(this.model.getSelected()){this.canvas_element.addClassName("selected")}}},onModelPosition:function(){this.setWidgetPosition();var a=this.model.getLeft();var c=this.model.getTop();var b=this.findClosestModelX(a,c);this.showHorizontalIndicators(a,c,this.model,b);var b=this.findClosestModelY(a,c);this.showVerticalIndicators(a,c,this.model,b)},onWidgetChanged:function(a){this.canvas_element.setStyle({width:"auto",height:"auto"});this.setModelSize();this.notifyLoadObservers(1,false);this.setLoaded()},removeCanvasElement:function(){this.remove()},makeCanvasElement:function(){this.canvas_element=this.makeCanvasContent();this.focus_hack=Builder.node("a")},makeCanvasContent:function(){},addCanvasElementTo:function(a){this.parent=a;a.insert(this.canvas_element);a.insert(this.focus_hack);this.setZOrder()},onDragEnd:function(){this.fadeAlignmentIndicators();this.setModelPosition();this.model.setSelected(true);this.model.setDragging(false);if(this.draggable){this.draggable.destroy();this.draggable=null}},setModelPosition:function(){var a=this.getPosition();this.model.setPosition(a[0],a[1],a[0]+this.getWidth(),a[1]+this.getHeight())},setModelSize:function(){width=this.getWidth();height=this.getHeight();this.model.setWidth(width);this.model.setHeight(height)},setLoaded:function(){this.model.setLoaded(true)},setWidgetPosition:function(){this.canvas_element.setStyle({left:this.model.getLeft()+"px",top:this.model.getTop()+"px",width:this.model.getWidth()+"px",height:this.model.getHeight()+"px"})},getPosition:function(){var b=0;var a=0;b=this.canvas_element.getStyle("left").gsub("px","");a=this.canvas_element.getStyle("top").gsub("px","");b=Number(b);a=Number(a);return[b,a]},getWidth:function(){return this.canvas_element.width},getHeight:function(){return this.canvas_element.height},isAt:function(a,g){var f=this.getPosition();var e=f[0];var d=f[1];var b=e+this.getWidth();var c=d+this.getHeight();return(g>d&&g<c&&a>e&&a<b)},getCanvasElement:function(){return this.canvas_element},drag:function(a){if(this.draggable){this.draggable.destroy();this.draggable=null}if(this.canvas_element){this.draggable=new Draggable(this.canvas_element,{onStart:this.onDragBegin.bind(this),snap:this.onSnap.bind(this),change:this.onDragChange.bind(this),onEnd:this.onDragEnd.bind(this)});this.draggable.initDrag(a)}},onDragBegin:function(){this.model.setDragging(true);this.model.setSelected(true)},isDragging:function(){return(this.draggable)},onSnap:function(h,g,e){this.activateAlignmentIndicators();var c=this.findClosestModelX(h,g);h=this.snapX(h,g,c);this.showHorizontalIndicators(h,g,this.model,c);c=this.findClosestModelY(h,g);g=this.snapY(h,g,c);this.showVerticalIndicators(h,g,this.model,c);var k=this.model.getLimitBoundingBox();x1=k.get("x1");x2=k.get("x2");y1=k.get("y1");y2=k.get("y2");var b=h;var f=g;var a=this.model.getWidth();var j=h+a;var i=this.model.getHeight();var d=g+i;if(b<x1&&j<x1){h=x1-a}else{if(b>x2&&j>x2){h=x2}}if(f<y1&&d<y1){g=y1-i}else{if(f>y2&&d>y2){g=y2}}return[Math.round(h),Math.round(g)]},onDragChange:function(){},getDistanceLeft:function(a,d,c){var f=c.getLeft(true);var b=a+d.getLeftOffset();var e=f-b;return Math.abs(e)},getDistanceRight:function(a,d,c){var b=c.getRight(true);var e=(a+d.getWidth()+d.getRightOffset());var f=b-e;return Math.abs(f)},getDistanceCenter:function(a,c,b){var e=b.getCenter(true);var d=a+c.getWidth()/2+c.getCenterOffset();var f=e-d;return Math.abs(f)},getDistanceTop:function(f,b,a){var c=a.getTop(true);var e=f+b.getTopOffset();var d=c-e;return Math.abs(d)},getDistanceBottom:function(f,b,a){var d=a.getBottom(true);var c=(f+b.getHeight()+b.getBottomOffset());var e=d-c;return Math.abs(e)},getDistanceMiddle:function(f,b,a){var e=a.getMiddle(true);var c=f+b.getHeight()/2+b.getMiddleOffset();var d=e-c;return Math.abs(d)},elementsOverlapY:function(e,b,a){var c=e+b.getHeight();var d=e;if(d>a.getTop()&&d<a.getBottom()||c>a.getTop()&&c<a.getBottom()||d<=a.getTop()&&c>=a.getBottom()){return true}else{return false}},elementsOverlapX:function(a,d,c){var e=a+d.getWidth();var b=a;if(b>c.getLeft()&&b<c.getRight()||e>c.getLeft()&&e<c.getRight()||b<=c.getLeft()&&e>=c.getRight()){return true}else{return false}},isNewCloserThanOldY:function(g,e,d,b){if(e&&d&&b){var c=g+e.getHeight()/2;var a=d.getMiddle();var i=b.getMiddle();var h=Math.abs(a-c);var f=Math.abs(i-c);if(h==f&&a<i){return true}else{if(h<f){return true}else{return false}}}},isNewCloserThanOldX:function(g,d,c,b){if(d&&c&&b){var f=g+d.getWidth()/2;var a=c.getCenter();var i=b.getCenter();var h=Math.abs(a-f);var e=Math.abs(i-f);if(h==e&&a<i){return true}else{if(h<e){return true}else{return false}}}},showHorizontalIndicators:function(j,h,b,c){if(!this.alignment_indicators){return}this.alignment_indicators.hideHorizontalIndicators();if(c!=null){var k=h;var e=c.getTop();if(k<e){e+=c.getHeight()}else{k+=b.getHeight()}var g=j+b.getLeftOffset();if(g==c.getLeft(true)){this.alignment_indicators.setIndicatorLeftPos(g,k,e);this.alignment_indicators.showIndicatorLeft(true)}var f=j+b.getWidth()/2+b.getCenterOffset();if(this.withinDelta(f,c.getCenter(true))){this.alignment_indicators.setIndicatorCenterPos(f,k,e);this.alignment_indicators.showIndicatorCenter(true)}var i=j+b.getWidth()+b.getRightOffset();if(i==c.getRight(true)){this.alignment_indicators.setIndicatorRightPos(i,k,e);this.alignment_indicators.showIndicatorRight(true)}}var a=b.getCenterOfBoundsX();var d=b.getBoundingBox();if(d){var k=d.get("y1");var e=d.get("y2");if(j+b.getLeftOffset()==a){this.alignment_indicators.setIndicatorLeftPos(a,k,e);this.alignment_indicators.showIndicatorLeft(true,true)}if(j+b.getWidth()+b.getRightOffset()==a){this.alignment_indicators.setIndicatorRightPos(a,k,e);this.alignment_indicators.showIndicatorRight(true,true)}if(this.withinDelta(j+b.getWidth()/2,a)){this.alignment_indicators.setIndicatorCenterPos(a,k,e);this.alignment_indicators.showIndicatorCenter(true,true)}}},withinDelta:function(c,a){var e=0.5;var b=c-e;var d=c+e;if(b<=a&&d>a){return true}else{return false}},showVerticalIndicators:function(k,j,e,f){if(!this.alignment_indicators){return}this.alignment_indicators.hideVerticalIndicators();if(f!=null){var c=k;var b=f.getLeft();if(c<b){b+=f.getWidth()}else{c+=e.getWidth()}var g=j+e.getTopOffset();if(g==f.getTop(true)){this.alignment_indicators.setIndicatorTopPos(g,c,b);this.alignment_indicators.showIndicatorTop(true)}var d=j+e.getHeight()/2+e.getMiddleOffset();if(this.withinDelta(d,f.getMiddle(true))){this.alignment_indicators.setIndicatorMiddlePos(d,c,b);this.alignment_indicators.showIndicatorMiddle(true)}var i=j+e.getHeight()+e.getBottomOffset();if(i==f.getBottom(true)){this.alignment_indicators.setIndicatorBottomPos(i,c,b);this.alignment_indicators.showIndicatorBottom(true)}}var a=e.getCenterOfBoundsY();var h=e.getBoundingBox();if(h){var c=h.get("x1");var b=h.get("x2");if(j+e.getTopOffset()==a){this.alignment_indicators.setIndicatorTopPos(a,c,b);this.alignment_indicators.showIndicatorTop(true,true)}if(j+e.getHeight()+e.getBottomOffset()==a){this.alignment_indicators.setIndicatorBottomPos(a,c,b);this.alignment_indicators.showIndicatorBottom(true,true)}if(this.withinDelta(j+e.getHeight()/2,a)){this.alignment_indicators.setIndicatorMiddlePos(a,c,b);this.alignment_indicators.showIndicatorMiddle(true,true)}}},findClosestModelX:function(a,d){var b=null;var c=100;this.models.each(function(e){if(e!=this.model){var f=this.getDistanceLeft(a,this.model,e);if((f==c&&this.isNewCloserThanOldY(d,this.model,e,b))||f<c){c=f;b=e}f=this.getDistanceRight(a,this.model,e);if((f==c&&this.isNewCloserThanOldY(d,this.model,e,b))||f<c){c=f;b=e}f=this.getDistanceCenter(a,this.model,e);if((f==c&&this.isNewCloserThanOldY(d,this.model,e,b))||f<c){c=f;b=e}}}.bind(this));return b},snapX:function(b,g,c){var e=100;var f=100;var d=b;if(c){var f=this.getDistanceLeft(b,this.model,c);if(f<e){e=f;d=c.getLeft(true)-this.model.getLeftOffset()}f=this.getDistanceRight(b,this.model,c);if(f<e){e=f;d=c.getRight(true)-(this.model.getWidth()+this.model.getRightOffset())}f=this.getDistanceCenter(b,this.model,c);if(f<e){e=f;d=c.getCenter(true)-(this.model.getWidth()/2+this.model.getCenterOffset())}}var a=this.model.getCenterOfBoundsX();f=Math.abs(a-(b+this.model.getLeftOffset()));if(f<e){e=f;d=a-this.model.getLeftOffset()}f=Math.abs(a-(b+this.model.getWidth()+this.model.getRightOffset()));if(f<e){e=f;d=a-(this.model.getWidth()+this.model.getRightOffset())}f=Math.abs(a-(b+this.model.getWidth()/2));if(f<e){e=f;d=a-this.model.getWidth()/2}if(e<=5){b=d}return b},findClosestModelY:function(a,d){var c=100;var b=null;this.models.each(function(e){if(e!=this.model){var f=this.getDistanceTop(d,this.model,e);if((f==c&&this.isNewCloserThanOldX(a,this.model,e,b))||f<c){c=f;b=e}f=this.getDistanceBottom(d,this.model,e);if((f==c&&this.isNewCloserThanOldX(a,this.model,e,b))||f<c){c=f;b=e}f=this.getDistanceMiddle(d,this.model,e);if((f==c&&this.isNewCloserThanOldX(a,this.model,e,b))||f<c){c=f;b=e}}}.bind(this));return b},snapY:function(a,g,c){var e=100;var d=g;if(c){var f=this.getDistanceTop(g,this.model,c);if(f<e){e=f;d=c.getTop(true)-this.model.getTopOffset()}f=this.getDistanceBottom(g,this.model,c);if(f<e){e=f;d=c.getBottom(true)-(this.model.getHeight()+this.model.getBottomOffset())}f=this.getDistanceMiddle(g,this.model,c);if(f<e){e=f;d=c.getMiddle(true)-(this.model.getHeight()/2+this.model.getMiddleOffset())}}var b=this.model.getCenterOfBoundsY();f=Math.abs(b-(g+this.model.getTopOffset()));if(f<e){e=f;d=b-this.model.getTopOffset()}f=Math.abs(b-(g+this.model.getHeight()+this.model.getBottomOffset()));if(f<e){e=f;d=b-(this.model.getHeight()+this.model.getBottomOffset())}f=Math.abs(b-(g+this.model.getHeight()/2));if(f<e){e=f;d=b-this.model.getHeight()/2}if(e<=5){g=d}return g},getModel:function(){return this.model},notifyLoadObservers:function(b,a){this.load_observers.each(function(c){c(this,b,a)}.bind(this))},observeLoad:function(a){this.load_observers.push(a)},stopObservingLoad:function(a){this.load_observers=this.load_observers.without(a)},canRotate:function(){return true},show:function(){if(this.canvas_element!=null&&this.model!=null){if(this.model.getVisible()){this.canvas_element.setStyle({visibility:"visible"})}else{this.canvas_element.setStyle({visibility:"hidden"})}}}});var ImageWidget=Class.create(BaseWidget,{canvas_template:new Template("<img src='#{image_source}'/>"),last_rotation:0,last_upload_id:null,image_element:null,image_load_observer:null,last_crop:null,crop_changed:false,raw_coordinates:null,dimensions:null,image_dialog:null,crop_dialog:null,loading:false,initialize:function($super,a,d,c,b){$super(a,d);this.image_dialog=c;this.crop_dialog=b;if(a.getCropCoordinates()){this.last_crop=a.getCropCoordinates().clone()}this.transformImage(true)},remove:function($super){$super()},makeCanvasContent:function(){this.image_element=Builder.node("img",{"class":"element"});return this.image_element},setupEventObservers:function($super){this.image_selected_observer=this.onImageSelected.bind(this);this.crop_selected_observer=this.onCropSelected.bind(this);this.image_load_observer=this.onWidgetChanged.bind(this);this.image_element.observe("load",this.image_load_observer);$super()},tearDownEventObservers:function($super){this.image_element.stopObserving("load",this.image_load_observer);$super()},onImageSelected:function(){this.crop_dialog.show(this.crop_selected_observer)},onCropSelected:function(a){if(a=="apply"){this.model.setImage(this.image_dialog.getSelectedId(),this.image_dialog.getSelectedThumb(),this.image_dialog.getSelectedCopyright());var b=this.crop_dialog.getScaledCropCoordinates();this.model.setCropCoordinates(b.x1,b.y1,b.x2,b.y2)}},transformImage:function(b){if(!(this.last_upload_id==null&&this.model.areBaseDimensionsSet())&&this.last_upload_id!=this.model.getUploadId()){this.notifyLoadObservers(1,true);var c=new Date();params=$H({image:this.model.getUploadId(),px_per_pt_ratio:this.model.getPxPerPtRatio(),timestamp:c.getTime()});new Ajax.Request("/draw/image_info",{parameters:params,method:"get",onSuccess:this.onImageInfo.bind(this)})}else{if(this.last_rotation!=this.model.getRotation()||this.hasCropChanged()||this.hasSizeChanged()||b){this.last_rotation=this.model.getRotation();var a=this.model.getCropCoordinates();this.last_crop=a.clone();this.last_width=this.model.getWidth();this.last_height=this.model.getHeight();var c=new Date();params=$H({image:this.model.getUploadId(),authenticity_token:AUTH_TOKEN,rotate:this.model.getRotation(),width:this.last_width,height:this.last_height,px_per_pt_ratio:this.model.getPxPerPtRatio(),timestamp:c.getTime()});params=params.merge(this.last_crop);if(this.loading){this.notifyLoadObservers(1,false)}this.loading=true;this.notifyLoadObservers(1,true);this.image_element.src="/draw/image?"+params.toQueryString()}else{this.notifyLoadObservers(0,false)}}this.last_upload_id=this.model.getUploadId()},onImageInfo:function(a){if(a.responseText.length>0){var b=a.responseText.evalJSON();this.model.setBaseDimensions(b.width,b.height)}this.notifyLoadObservers(1,false);this.transformImage(true)},hasSizeChanged:function(){var c=this.last_width;var b=this.model.getWidth();var a=this.last_height;var d=this.model.getHeight();if((c!=null&&b==null)||(c==null&&b!=null)){return true}else{if((a!=null&&d==null)||(a==null&&d!=null)){return true}else{if(c!=b||a!=d){return true}else{return false}}}},hasCropChanged:function(){var a=this.last_crop;var b=this.model.getCropCoordinates();if((a==null&&b!=null)||(a!=null&&b==null)){return true}else{if(a!=null&&b!=null&&(a.get("crop_x1")!=b.get("crop_x1")||a.get("crop_y1")!=b.get("crop_y1")||a.get("crop_x2")!=b.get("crop_x2")||a.get("crop_y2")!=b.get("crop_y2"))){return true}else{return false}}},onModelChanged:function($super){$super();this.transformImage()},addCanvasElementTo:function($super,a){$super(a)},onWidgetChanged:function(a){this.loading=false;this.notifyLoadObservers(1,false);this.setLoaded()}});var TextWidget=Class.create(BaseWidget,{image_element:null,sync_text:"",delay_count:0,image_load_observer:null,first_load:true,last_font_size:null,last_rotate:null,last_font:null,loading:false,initialize:function($super,a,b){$super(a,b)},makeCanvasContent:function(){this.image_element=Builder.node("img",{"class":"element",style:"position: absolute;"});return this.image_element},addCanvasElementTo:function($super,a){$super(a);this.transformText()},setupEventObservers:function($super){$super();this.image_load_observer=this.onWidgetChanged.bind(this);this.image_element.observe("load",this.image_load_observer)},tearDownEventObservers:function($super){$super();this.image_element.stopObserving("load",this.image_load_observer)},transformText:function(a){latest_text=this.model.getText();if(this.sync_text!=latest_text||a){this.sync_text=latest_text;var b=new Date();params=$H({text:this.sync_text,font_size:this.model.getAdjustedFontSize(),rotate:this.model.getRotation(),font:this.model.getFont(),colour:this.model.getFontColour(),horizontal_alignment:this.model.getHorizontalAlignment(),vertical_alignment:this.model.getVerticalAlignment(),shadow_colour:this.model.getShadowColour(),shadow_direction:this.model.getShadowDirection(),shadow_size:this.model.getAdjustedShadowSize(),line_spacing:this.model.getLineSpacing(),letter_spacing:this.model.getLetterSpacing(),timestamp:b.getTime()});if(this.loading){this.notifyLoadObservers(1,false)}this.loading=true;this.notifyLoadObservers(1,true);this.image_element.src="/draw/text?"+params.toQueryString();if(this.hasBaselineChanged()){this.notifyLoadObservers(1,true);new Ajax.Request("/draw/text_info",{parameters:params,method:"get",onSuccess:this.onImageInfo.bind(this)})}}else{this.notifyLoadObservers(0,false)}},onWidgetChanged:function($super){this.loading=false;$super()},hasBaselineChanged:function(){if(this.last_font_size!=this.model.getFontSize()||this.last_rotate!=this.model.getRotation()||this.last_font!=this.model.getFont()||this.last_shadow_direction!=this.model.getShadowDirection()||this.last_shadow_size!=this.model.getShadowSize()||this.last_line_spacing!=this.model.getLineSpacing()){this.last_font_size=this.model.getFontSize();this.last_rotate=this.model.getRotation();this.last_font=this.model.getFont();this.last_shadow_direction=this.model.getShadowDirection();this.last_shadow_size=this.model.getShadowSize();this.last_line_spacing=this.model.getLineSpacing();return true}else{return false}},onImageInfo:function(a){if(a.responseText.length>0){var b=a.responseText.evalJSON();this.model.setTopOffset(b.top_offset);this.model.setBottomOffset(b.baseline);this.model.setLeftOffset(b.left_offset);this.model.setRightOffset(b.right_offset)}this.notifyLoadObservers(1,false)},onModelChanged:function($super){$super();if(this.model.isAppearanceChanged()){this.transformText(true)}else{if(this.model.isTextChanged()){this.transformText()}else{this.notifyLoadObservers(0,false)}}}});var BoxWidget=Class.create(BaseWidget,{last_rotation:0,box_element:null,raw_coordinates:null,dimensions:null,resize_control:null,initialize:function($super,a,b){$super(a,b)},remove:function($super){if(this.resize_control!=null){this.resize_control.remove()}$super()},makeCanvasContent:function(){var a=[Builder.node("div",{"class":"nw_handle"}),Builder.node("div",{"class":"ne_handle"}),Builder.node("div",{"class":"sw_handle"}),Builder.node("div",{"class":"se_handle"})];this.box_element=Builder.node("div",{"class":"element",style:"background-color: "+this.model.getFontColourRGB()},a);return this.box_element},setupEventObservers:function($super){$super()},tearDownEventObservers:function($super){$super()},onModelChanged:function($super){this.box_element.setStyle({backgroundColor:this.model.getFontColourRGB()})},addCanvasElementTo:function($super,a){$super(a)},getWidth:function(){return Number(this.canvas_element.getStyle("width").gsub("px",""))},getHeight:function(){return Number(this.canvas_element.getStyle("height").gsub("px",""))},canRotate:function($super){return false},onModelSelect:function($super){$super();if(this.resize_control){if(this.model.getSelected()){this.resize_control.show()}else{this.resize_control.hide()}}},onModelPosition:function($super){$super();if(this.resize_control){this.resize_control.setSize()}},onModelZOrder:function($super){$super();if(this.resize_control!=null){this.resize_control.cloneZIndex(this.canvas_element)}},addCanvasElementTo:function($super,a){$super(a);this.makeResizer(a)},onWidgetChanged:function($super){$super();this.makeResizer(this.parent);if(this.model.getSelected()){this.resize_control.show()}},makeResizer:function(a){if(this.resize_control==null&&a!=null){this.resize_control=new Resizer(this.box_element,this.onResize.bind(this),a);this.resize_control.hide()}},makeResizeDraggable:function(){if(this.resize_control){var a=this.resize_control.getResizeElement();if(a){a.observe("click",function(b){b.stop()});new Draggable(a,{onStart:this.onDragBegin.bind(this),onEnd:this.onDragEnd.bind(this),snap:this.onSnap.bind(this),change:this.onResizeDrag.bind(this)})}}},onResizeDrag:function(){if(this.resize_control){var a=this.resize_control.getResizeElement();this.resize_control.clonePosition(a,this.canvas_element)}},onResize:function(){var a=this.getPosition();this.model.resize(a[0],a[1],a[0]+this.getWidth(),a[1]+this.getHeight())},onDragChange:function(){if(this.resize_control){var a=this.resize_control.getResizeElement();this.resize_control.clonePosition(this.canvas_element,a)}}});var AlignmentIndicators=Class.create({indicator_left:null,indicator_center:null,indicator_right:null,indicator_left_left:0,indicator_left_top:0,indicator_left_height:0,indicator_center_center:0,indicator_center_top:0,indicator_center_height:0,indicator_right_center:0,indicator_right_top:0,indicator_right_height:0,indicator_top_top:0,indicator_top_left:0,indicator_top_width:0,indicator_middle_middle:0,indicator_middle_left:0,indicator_middle_width:0,indicator_bottom_middle:0,indicator_bottom_left:0,indicator_bottom_width:0,activated:false,initialize:function(a){this.indicator_left=this.makeIndicatorElement("indicator_left");this.indicator_center=this.makeIndicatorElement("indicator_center");this.indicator_right=this.makeIndicatorElement("indicator_right");this.indicator_top=this.makeIndicatorElement("indicator_top");this.indicator_middle=this.makeIndicatorElement("indicator_middle");this.indicator_bottom=this.makeIndicatorElement("indicator_bottom");a.insert(this.indicator_left);a.insert(this.indicator_center);a.insert(this.indicator_right);a.insert(this.indicator_top);a.insert(this.indicator_middle);a.insert(this.indicator_bottom)},remove:function(){this.indicator_bottom.remove();this.indicator_middle.remove();this.indicator_top.remove();this.indicator_right.remove();this.indicator_center.remove();this.indicator_left.remove()},makeIndicatorElement:function(b){var a=Builder.node("div",{"class":b});return a},setIndicatorLeftPos:function(c,b,a){c=Math.round(c);b=Math.round(b);a=Math.round(a);this.indicator_left_left=c;if(b<a){this.indicator_left_top=b;this.indicator_left_height=a-b}else{this.indicator_left_top=a;this.indicator_left_height=b-a}this.setLeft(this.indicator_left,this.indicator_left_left);this.setTop(this.indicator_left,this.indicator_left_top);this.setHeight(this.indicator_left,this.indicator_left_height)},setIndicatorCenterPos:function(c,b,a){c=Math.round(c);b=Math.round(b);a=Math.round(a);this.indicator_center_center=c;if(b<a){this.indicator_center_top=b;this.indicator_center_height=a-b}else{this.indicator_center_top=a;this.indicator_center_height=b-a}this.setLeft(this.indicator_center,this.indicator_center_center);this.setTop(this.indicator_center,this.indicator_center_top);this.setHeight(this.indicator_center,this.indicator_center_height)},setIndicatorRightPos:function(b,c,a){b=Math.round(b);c=Math.round(c);a=Math.round(a);this.indicator_right_right=b;if(c<a){this.indicator_right_top=c;this.indicator_right_height=a-c}else{this.indicator_right_top=a;this.indicator_right_height=c-a}this.setLeft(this.indicator_right,this.indicator_right_right);this.setTop(this.indicator_right,this.indicator_right_top);this.setHeight(this.indicator_right,this.indicator_right_height)},setIndicatorTopPos:function(c,b,a){c=Math.round(c);b=Math.round(b);a=Math.round(a);this.indicator_top_top=c;if(b<a){this.indicator_top_left=b;this.indicator_top_width=a-b}else{this.indicator_top_left=a;this.indicator_top_width=b-a}this.setTop(this.indicator_top,this.indicator_top_top);this.setLeft(this.indicator_top,this.indicator_top_left);this.setWidth(this.indicator_top,this.indicator_top_width)},setIndicatorMiddlePos:function(c,b,a){c=Math.round(c);b=Math.round(b);a=Math.round(a);this.indicator_middle_middle=c;if(b<a){this.indicator_middle_left=b;this.indicator_middle_width=a-b}else{this.indicator_middle_left=a;this.indicator_middle_width=b-a}this.setTop(this.indicator_middle,this.indicator_middle_middle);this.setLeft(this.indicator_middle,this.indicator_middle_left);this.setWidth(this.indicator_middle,this.indicator_middle_width)},setIndicatorBottomPos:function(c,b,a){c=Math.round(c);b=Math.round(b);a=Math.round(a);this.indicator_bottom_bottom=c;if(b<a){this.indicator_bottom_left=b;this.indicator_bottom_width=a-b}else{this.indicator_bottom_left=a;this.indicator_bottom_width=b-a}this.setTop(this.indicator_bottom,this.indicator_bottom_bottom);this.setLeft(this.indicator_bottom,this.indicator_bottom_left);this.setWidth(this.indicator_bottom,this.indicator_bottom_width)},setLeft:function(a,b){a.setStyle({left:b+"px"})},setTop:function(a,b){a.setStyle({top:b+"px"})},setHeight:function(a,b){a.setStyle({height:b+"px"})},setWidth:function(a,b){a.setStyle({width:b+"px"})},showIndicator:function(b,a,c){if(a&&this.activated){b.show()}else{b.hide()}b.removeClassName("canvas_indicator");if(c){b.addClassName("canvas_indicator")}},showIndicatorLeft:function(a,b){this.showIndicator(this.indicator_left,a,b)},showIndicatorCenter:function(a,b){this.showIndicator(this.indicator_center,a,b)},showIndicatorRight:function(a,b){this.showIndicator(this.indicator_right,a,b)},showIndicatorTop:function(a,b){this.showIndicator(this.indicator_top,a,b)},showIndicatorMiddle:function(a,b){this.showIndicator(this.indicator_middle,a,b)},showIndicatorBottom:function(a,b){this.showIndicator(this.indicator_bottom,a,b)},hideIndicators:function(){this.hideHorizontalIndicators();this.hideVerticalIndicators()},hideHorizontalIndicators:function(){this.indicator_left.hide();this.indicator_center.hide();this.indicator_right.hide()},hideVerticalIndicators:function(){this.indicator_top.hide();this.indicator_middle.hide();this.indicator_bottom.hide()},fadeIndicators:function(){new Effect.Fade(this.indicator_left,{duration:0.2});new Effect.Fade(this.indicator_center,{duration:0.2});new Effect.Fade(this.indicator_right,{duration:0.2});new Effect.Fade(this.indicator_top,{duration:0.2});new Effect.Fade(this.indicator_middle,{duration:0.2});new Effect.Fade(this.indicator_bottom,{duration:0.2})},slowFadeIndicators:function(){new Effect.Fade(this.indicator_left,{duration:0.8});new Effect.Fade(this.indicator_center,{duration:0.8});new Effect.Fade(this.indicator_right,{duration:0.8});new Effect.Fade(this.indicator_top,{duration:0.8});new Effect.Fade(this.indicator_middle,{duration:0.8});new Effect.Fade(this.indicator_bottom,{duration:0.8})},activate:function(){this.activated=true}});var NEXT_INDEX_WIDGET_ID=0;var IndexWidget=Class.create({index_template:new Template('					<div class="add_links"> 						<a href="#" class="add_text"></a><div class="links_separator"></div><a href="#" class="add_image"></a><a href="#" class="add_box"></a> 						<div class="clear"></div> 					</div> 					<div class="fields"> 						<ul class="field_list" id="fieldlist_#{id}"> 							<li class="empty_text">'+I18n.t("empty_text",{scope:["wysiwyg"]})+"</li> 						</ul> 					</div> 					"),last_selected:null,index_widgets:null,index_element:null,inner_index_element:null,add_image:null,add_image_observer:null,add_field_observers:null,heading_element:null,sortable:null,more_index_options:null,initialize:function(a){this.more_index_options=a;this.add_field_observers=$A([]);this.index_widgets=$A([]);this.makeIndexElement();this.setupEventObservers()},remove:function(){this.tearDownEventObservers();this.index_element.remove()},setupEventObservers:function(){this.add_image_observer=this.addImageClicked.bindAsEventListener(this);this.add_text_observer=this.addTextClicked.bindAsEventListener(this);this.add_box_observer=this.addBoxClicked.bindAsEventListener(this);this.model_remove_observer=this.onModelRemove.bind(this);this.add_image.observe("click",this.add_image_observer);this.add_text.observe("click",this.add_text_observer);this.add_box.observe("click",this.add_box_observer)},tearDownEventObservers:function(){this.add_image.stopObserving("click",this.add_image_observer);this.add_text.stopObserving("click",this.add_text_observer)},makeIndexElement:function(){this.index_element=Builder.node("div",{"class":"index"});this.index_element.update(this.index_template.evaluate({id:NEXT_INDEX_WIDGET_ID++}));if(this.more_index_options!=null){this.index_element.insert({bottom:this.more_index_options})}this.inner_index_element=this.index_element.select(".field_list").first();this.add_links=this.index_element.select(".add_links").first();this.add_image=this.index_element.select(".add_image").first();this.add_box=this.index_element.select(".add_box").first();this.add_text=this.index_element.select(".add_text").first();this.heading_element=this.index_element.select(".index_heading").first();this.empty_text=this.index_element.select(".empty_text").first()},addIndexTo:function(a){if(a){a.insert({top:this.index_element})}},addIndexWidgetToIndex:function(b){var a=null;var d=null;var c=b.getModel();this.index_widgets.each(function(e){if(e.isVisible()){var f=e.getModel();var g=e.getIndexElement();if(c&&f){if(c.getZOrder()>f.getZOrder()&&(d==null||d.getZOrder()<f.getZOrder())){a=g;d=f}}}});b.addIndexElementTo(this.inner_index_element,a);if(!this.index_widgets.include(b)){this.index_widgets.push(b)}index_model=b.getModel();if(index_model){index_model.observeRemove(this.model_remove_observer)}this.setSortable(true);this.checkForEmptyText()},setSortable:function(a){if(this.sortable){this.sortable.destroy();this.sortable=null}if(a){this.sortable=Sortable.create(this.inner_index_element,{tag:"li",overlap:"vertical",onChange:this.indexOrderChanged.bind(this)})}},findIndexWidget:function(b){var a=null;this.index_widgets.each(function(c){if(c.idEquals(b)){a=c;throw $break}}.bind(this));return a},indexOrderChanged:function(){this.setZOrders()},setZOrders:function(){var a=this.inner_index_element.select(".index_widget");count=a.length;a.each(function(c){var e=c.id;var b=e.sub("index_","");var d=this.findIndexWidget(b);if(d){d.setZOrder(count--)}}.bind(this))},addTextClicked:function(a){this.notifyAddFieldObservers("text");a.stop()},addImageClicked:function(a){this.notifyAddFieldObservers("image");a.stop()},addBoxClicked:function(a){this.notifyAddFieldObservers("box");a.stop()},observeAddField:function(a){this.add_field_observers.push(a)},stopObservingAddField:function(a){this.add_field_observers=this.add_field_observers.without(a)},notifyAddFieldObservers:function(a){this.add_field_observers.each(function(b){b(a)}.bind(this))},removeIndexElement:function(a,b){if(b){index_model=a.getModel();if(index_model!=null){index_model.stopObservingRemove(this.model_remove_observer)}this.index_widgets=this.index_widgets.without(a)}a.removeIndexElement();this.checkForEmptyText()},setHeading:function(){if(this.heading_element!=null){this.heading_element.update("Contents")}},getIndexElement:function(){return this.index_element},checkForEmptyText:function(){var a=0;if(this.index_widgets){a=this.index_widgets.length}if(a<=0){this.empty_text.show()}else{this.empty_text.hide()}},onModelRemove:function(a){widget=this.findIndexWidgetByModel(a);if(widget!=null){this.removeIndexElement(widget,true)}},findIndexWidgetByModel:function(a){var b=null;this.index_widgets.each(function(c){if(c.getModel()==a){b=c;throw $break}}.bind(this));return b},hide:function(){this.index_element.hide()},show:function(){this.index_element.show()}});var CanvasWidget=Class.create({canvas_template:new Template("<div class='loader'></div>"),canvas_element:null,canvas_widgets:null,click_observer:null,width:460,height:275,width_mm:55,height_mm:30,loader_element:null,transform_visible:false,alignment_indicators:null,rotating:null,help_widget:null,bleed_help:"Background images must go right to the edge past the <span class='pink'>pink</span> trim line.",safe_area_help:"Place all text inside the <span class='blue'>blue</span> text safe area.",read_only:false,initialize:function(a){this.help_widget=a;this.canvas_widgets=$A([]);this.makeCanvasWidget();this.createAlignmentIndicators();this.createSafeAreas();this.setupEventHandlers()},remove:function(){this.tearDownEventHandlers();this.alignment_indicators.remove();this.canvas_element.remove()},makeCanvasWidget:function(){this.canvas_element=Builder.node("div",{"class":"canvas"});this.canvas_element.update(this.canvas_template.evaluate({}));this.loader_element=this.canvas_element.select(".loader").first()},createSafeAreas:function(){this.bleed=Builder.node("div",{"class":"bleed"});this.text_safe_area=Builder.node("div",{"class":"text_safe_area"});this.default_mask=Builder.node("div",{"class":"default_mask"});this.canvas_element.insert(this.bleed);this.canvas_element.insert(this.text_safe_area);this.canvas_element.insert(this.default_mask);this.bleed_overlay=new Overlay(this.bleed,1);this.text_safe_overlay=new Overlay(this.text_safe_area,1);this.mask_overlay=new Overlay(this.default_mask,0);this.bleed_show_observer=this.onShowBleed.bind(this);this.bleed_hide_observer=this.onHideBleed.bind(this);this.bleed_overlay.observeShow(this.bleed_show_observer);this.bleed_overlay.observeHide(this.bleed_hide_observer);this.text_safe_show_observer=this.onShowTextSafe.bind(this);this.text_safe_hide_observer=this.onHideTextSafe.bind(this);this.text_safe_overlay.observeShow(this.text_safe_show_observer);this.text_safe_overlay.observeHide(this.text_safe_hide_observer);this.default_mask.show()},showSafeAreas:function(b,a,c){if(!this.read_only&&b&&b.getLoaded()){if(b.getType()==TYPE_IMAGE||b.getType()==TYPE_BOX){this.bleed_overlay.show(c,a)}else{this.text_safe_overlay.show(c,a)}}},onShowBleed:function(){if(!this.read_only){this.help_widget.setValue(this.bleed_help);this.mask_overlay.show(0,false)}},onHideBleed:function(){this.help_widget.setValue("");this.mask_overlay.show(0,true)},onShowTextSafe:function(){if(!this.read_only){this.help_widget.setValue(this.safe_area_help)}},onHideTextSafe:function(){this.help_widget.setValue("")},setHelpText:function(a){if(this.help_widget){this.help_widget.setValue(a)}},setCursor:function(a){this.bleed.setStyle({cursor:a});this.text_safe_area.setStyle({cursor:a});this.default_mask.setStyle({cursor:a})},createAlignmentIndicators:function(){this.alignment_indicators=new AlignmentIndicators(this.canvas_element)},setupEventHandlers:function(){this.click=this.onClick.bindAsEventListener(this);this.mouse_move=this.onMouseMove.bindAsEventListener(this);this.mouse_out=this.onMouseOut.bindAsEventListener(this);this.end_drag=this.onWidgetEndDrag.bindAsEventListener(this);this.key_down=this.onKeyDown.bindAsEventListener(this);this.model_remove_observer=this.onModelRemove.bind(this);this.canvas_element.observe("click",this.click);this.canvas_element.observe("mousemove",this.mouse_move);this.canvas_element.observe("mouseout",this.mouse_out);document.observe("mouseup",this.end_drag);document.observe("keydown",this.key_down)},tearDownEventHandlers:function(){this.canvas_element.stopObserving("click",this.click);this.canvas_element.stopObserving("mousemove",this.mouse_move);this.canvas_element.stopObserving("mouseout",this.mouse_out);document.stopObserve("mouseup",this.end_drag);document.stopObserving("keydown",this.key_down)},onClick:function(a){x=a.pointerX();y=a.pointerY();this.transform_widget=this.findWidget(x,y,false);if(this.transform_widget!=null){this.selectWidget(this.transform_widget);this.showTransform(this.transform_widget)}a.stop()},onMouseMove:function(a){if(!this.rotating){x=a.pointerX();y=a.pointerY();this.transform_widget=this.findWidget(x,y,true);this.showTransform(this.transform_widget);if(this.transform_widget&&!this.transform_widget.isDragging()){widget=this.findWidget(x,y,false);this.hoverWidget(widget)}}},onTransformMouseOver:function(a){if(!this.rotating){this.hoverWidget(null)}},onWidgetDrag:function(a){if(this.transform_widget){this.transform_widget.drag(a)}this.showTransform(this.transform_widget);this.hoverWidget(null);a.stop()},onMouseOut:function(a){if(!this.rotating){x=a.pointerX();y=a.pointerY();if(!this.inCanvas(x,y)){this.showTransform(null);this.hoverWidget(null)}}},onWidgetEndDrag:function(a){if(this.transform_widget&&this.transform_widget.isDragging()){this.transform_widget.onDragEnd();this.showTransform(this.transform_widget)}else{this.showTransform(null)}},onKeyDown:function(b){var a=b.element().tagName.toLowerCase();if(a!="input"&&a!="textarea"){this.transform_widget=null;this.canvas_widgets.each(function(c){if(c.model.getSelected()){this.transform_widget=c;throw $break}}.bind(this));if(this.transform_widget){switch(b.keyCode){case 38:this.showSafeAreas(this.transform_widget.model,true,1);this.alignment_indicators.activate();this.transform_widget.model.moveUp(1);this.showTransform(this.transform_widget);this.showSafeAreas(this.transform_widget.model,false,1);b.stop();break;case 40:this.showSafeAreas(this.transform_widget.model,true,1);this.alignment_indicators.activate();this.transform_widget.model.moveDown(1);this.showTransform(this.transform_widget);this.showSafeAreas(this.transform_widget.model,false,1);b.stop();break;case 37:this.showSafeAreas(this.transform_widget.model,true,1);this.alignment_indicators.activate();this.transform_widget.model.moveLeft(1);this.showTransform(this.transform_widget);this.showSafeAreas(this.transform_widget.model,false,1);b.stop();break;case 39:this.showSafeAreas(this.transform_widget.model,true,1);this.alignment_indicators.activate();this.transform_widget.model.moveRight(1);this.showTransform(this.transform_widget);this.showSafeAreas(this.transform_widget.model,false,1);b.stop();break}}}},relativeCoordinates:function(a,e){var d=this.canvas_element.cumulativeOffset();var b=a-d[0];var c=e-d[1];return[b,c]},findWidget:function(b,d,c){if(!this.inCanvas(b,d)){return null}var a=this.relativeCoordinates(b,d);found=null;found_model=null;this.canvas_widgets.each(function(e){if(e.isAt(a[0],a[1])){if(e.model.isAbove(found_model)||(c&&e.model.getSelected())){found=e;found_model=e.model;if(c&&found_model.getSelected()){throw $break}}}});return found},inCanvas:function(a,g){var f=this.canvas_element.cumulativeOffset();var e=f[0];var d=f[1];var b=e+this.canvas_element.getWidth();var c=d+this.canvas_element.getHeight();if(a>e&&a<b&&g>d&&g<c){return true}else{return false}},addTransform:function(){this.rotate_handle=Builder.node("a",{"class":"rotate_handle"});this.rotate_angle=Builder.node("div",{"class":"rotate_angle",style:"display: none;"});this.drag_handle=Builder.node("a",{"class":"drag_handle"});this.transform=Builder.node("div",{"class":"transform",style:"display: none;"},$A([this.drag_handle,this.rotate_angle,this.rotate_handle]));new Draggable(this.rotate_handle,{onStart:this.startRotate.bind(this),onEnd:this.endRotate.bind(this),snap:this.snapRotate.bind(this)});$(document.body).insert({top:this.transform});this.drag=this.onWidgetDrag.bindAsEventListener(this);this.transform_mouse_over=this.onTransformMouseOver.bindAsEventListener(this);this.drag_handle.observe("mousedown",this.drag);this.drag_handle.observe("mouseover",this.transform_mouse_over);this.rotate_handle_radius=Number(this.rotate_handle.getStyle("width").gsub("px",""))/2},removeTransform:function(){if(this.transform){this.drag_handle.stopObserving("mousedown",this.drag);this.drag_handle.stopObserving("mouseover",this.transform_mouse_over);this.drag_handle.remove()}},setRotate:function(b){if(b.canRotate()){var a=0;var d=0;if(b){var c=b.model.getRotation();rad_angle=c*Math.PI/180;pos=this.getRotatePos(rad_angle);a=pos[0];d=pos[1]}else{pos=this.getRotatePos(0);a=pos[0];d=pos[1]}this.rotate_handle.show();this.rotate_handle.setStyle({left:a+"px",top:d+"px"})}else{this.rotate_handle.hide()}},startRotate:function(){this.rotate_widget=this.transform_widget;this.last_rotate_angle=null;this.rotate_angle.show();this.drag_handle.hide();this.rotating=true},endRotate:function(){if(this.rotate_widget&&this.last_rotate_angle!=null){this.rotate_widget.model.setRotation(this.last_rotate_angle)}this.rotate_widget=null;this.rotate_angle.hide();this.drag_handle.show();this.rotating=false},snapRotate:function(b,g){var f=70/2;var d=b-f;var c=g-f;var e=(d*f)/(Math.sqrt(Math.pow(d,2)+Math.pow(c,2))*f);var a=Math.acos(e);if(c<0){a=(2*Math.PI-a)}this.last_rotate_angle=Math.round(a*180/Math.PI);if(this.last_rotate_angle>=360){this.last_rotate_angle=0}this.rotate_angle.update(this.last_rotate_angle+"°");return this.getRotatePos(a)},getRotatePos:function(b){var c=70/2;var a=70/2;sx=Math.cos(b)*a;sy=Math.sin(b)*a;return[Math.round(sx+c)-this.rotate_handle_radius,Math.round(sy+c)-this.rotate_handle_radius]},showTransform:function(a){if(a&&!a.isDragging()&&a.model.getSelected()){var c=a.getCanvasElement();var g=c.cumulativeOffset();var i=g[0]+c.getWidth()/2;var j=g[1]+c.getHeight()/2;var d=this.canvas_element.cumulativeOffset();var b=d[0];var f=d[1];var h=b+this.canvas_element.getWidth();var e=f+this.canvas_element.getHeight();if(i<b){i=b}if(i>h){i=h}if(j<f){j=f}if(j>e){j=e}if(a.canRotate()){this.transform.removeClassName("no_rotate")}else{this.transform.addClassName("no_rotate")}this.transform.setStyle({left:i+"px",top:j+"px"});this.setRotate(a);if(!this.transform_visible){this.transform_visible=true;this.cancelEffectsOn(this.transform);this.transform.show()}}else{if(this.transform_visible){this.transform_visible=false;this.cancelEffectsOn(this.transform);this.transform.hide()}}},cancelEffectsOn:function(a){Effect.Queues.get("global").each(function(b){if(b.element==a){b.cancel()}})},selectWidget:function(a){if(a&&!this.read_only){a.model.setSelected(true)}else{this.canvas_widgets.each(function(b){if(b.model.getSelected()){b.model.setSelected(false)}})}},hoverWidget:function(a){if(a){if(!a.model.getHovered()&&!this.read_only){a.model.setHovered(true)}}else{this.canvas_widgets.each(function(b){b.model.setHovered(false)})}},addCanvasTo:function(a){if(a){a.insert({top:this.canvas_element});this.addTransform()}},addCanvasWidgetToCanvas:function(a){if(!this.canvas_widgets.include(a)){this.canvas_widgets.push(a)}a.addCanvasElementTo(this.canvas_element);a.setAlignmentIndicators(this.alignment_indicators);canvas_model=a.getModel();if(canvas_model){canvas_model.observeRemove(this.model_remove_observer)}},getCanvasElement:function(){return this.canvas_element},removeCanvasElement:function(a,b){if(b){canvas_model=a.getModel();if(canvas_model!=null){canvas_model.stopObservingRemove(this.model_remove_observer)}this.canvas_widgets=this.canvas_widgets.without(a)}a.removeCanvasElement()},onModelRemove:function(b){var a=this.findCanvasWidgetByModel(b);if(a!=null){this.removeCanvasElement(a,true)}},findCanvasWidgetByModel:function(a){var b=null;this.canvas_widgets.each(function(c){if(c.getModel()==a){b=c;throw $break}}.bind(this));return b},setWidth:function(c){var a=this.width/2;var b=c/2;var d=c/this.width;old_width=this.width;this.width=c;this.canvas_element.setStyle({width:this.width+"px"});this.canvas_widgets.each(function(e){var i=e.getModel();if(c>old_width){i.setBoundingBox(0,0,this.width,this.height)}var g=0;if(i.getType()==TYPE_IMAGE){var j=a-i.getCenter();var h=j*d;g=b+h-i.getWidth()/2}else{g=i.getLeft()*d}var f=Math.round(i.getLeft()-g);i.moveLeft(f);if(c<=old_width){i.setBoundingBox(0,0,this.width,this.height)}}.bind(this))},setHeight:function(b){var a=this.height/2;var e=b/2;var d=b/this.height;var c=this.height;this.height=b;this.canvas_element.setStyle({height:this.height+"px"});this.canvas_widgets.each(function(f){var h=f.getModel();if(b>c){h.setBoundingBox(0,0,this.width,this.height)}var k=0;if(h.getType()==TYPE_IMAGE){var i=a-h.getMiddle();var j=i*d;k=e+j-h.getHeight()/2}else{k=h.getTop()*d}var g=Math.round(h.getTop()-k);h.moveUp(g);if(b<=c){h.setBoundingBox(0,0,this.width,this.height)}}.bind(this))},getWidth:function(){return this.width},getHeight:function(){return this.height},getLoaderElement:function(){return this.loader_element},setReadOnly:function(a){this.read_only=a;this.selectWidget(null)}});var Wysiwyg=Class.create({wysiwyg:null,image_dialog:null,crop_dialog:null,index_widget:null,toolbar_widget:null,canvas_widget:null,image_clicked_observer:null,index_add_field_observer:null,model_select_observer:null,model_hover_observer:null,model_remove_observer:null,last_id:1,card_section_element:null,limit:10,layout_id:null,card_id:null,loader:null,px_per_mm_ratio:6,MAX_ITEMS:50,auto_fade_bleed:0,help_widget:null,models:null,width_mm:55,height_mm:30,bottom_toolbar:null,initialize:function(a,b,d,c){this.wysiwyg=a;this.width_px=d;this.height_px=c;this.models=$A([]);this.makeHelpWidget();this.createCardSection();this.createCanvas();this.createLoader();this.loadCanvasData(b);this.addToolbars();this.createImageDialog();this.createCropDialog();this.createIndex();this.clearFloat();this.setupEventObservers();this.loadModelData(b)},remove:function(){this.loader.remove();this.tearDownEventObservers();this.index_widget.remove();this.toolbar_widget.remove();this.canvas_widget.remove();this.card_section_element.remove();this.crop_dialog.remove();this.image_dialog.remove()},createImageDialog:function(){this.image_dialog=new ImageDialog(this.layout_id,this.card_id)},createCropDialog:function(){this.crop_dialog=new CropDialog()},createCardSection:function(){this.card_section_element=Builder.node("div",{"class":"card_section"});this.wysiwyg.insert(this.card_section_element);var a=this.wysiwyg.select(".more_card_options").first();if(a!=null){this.wysiwyg.insert({bottom:a})}},createIndex:function(){this.index_widget=new IndexWidget();this.index_widget.addIndexTo(this.wysiwyg)},clearFloat:function(){var a=Builder.node("div",{"class":"clear"});this.wysiwyg.insert({bottom:a})},addToolbars:function($super){this.makeLeftToolbar();this.makeTopToolbar();this.makeRightToolbar();this.makeBottomToolbar()},makeLeftToolbar:function(){},makeTopToolbar:function(){},makeRightToolbar:function(){},makeHelpWidget:function(){this.help_widget=new ToolBarHelp("help")},makeBottomToolbar:function(){this.bottom_toolbar=new ToolBar("bottom");this.bottom_toolbar.addSection("","center",this.help_widget);this.addToolbar(this.bottom_toolbar,false);this.bottom_toolbar.show(true)},addToolbar:function(a,b){a.addTo(this.card_section_element,b)},createCanvas:function(){this.canvas_widget=new CanvasWidget(this.help_widget);this.canvas_widget.addCanvasTo(this.card_section_element)},createLoader:function(){this.loader=new Overlay(this.canvas_widget.getLoaderElement())},setupEventObservers:function(){this.image_click_observer=this.imageClicked.bind(this);this.index_add_field_observer=this.indexAddField.bind(this);this.index_widget.observeAddField(this.index_add_field_observer);this.model_select_observer=this.onModelSelect.bind(this);this.model_hover_observer=this.onModelHover.bind(this);this.model_remove_observer=this.onModelRemove.bind(this);this.model_position_observer=this.onModelPosition.bind(this);this.model_drag_observer=this.onModelDrag.bind(this);this.widget_load_observer=this.onWidgetLoad.bind(this);this.card_section_click_observer=this.onCardSectionClicked.bindAsEventListener(this);this.card_section_element.observe("click",this.card_section_click_observer)},tearDownEventObservers:function(){this.card_section_element.stopObserving("click",this.card_section_click_observer)},onCardSectionClicked:function(){this.unselectAll()},indexAddField:function(a){if(a=="image"){this.addNewImage()}else{if(a=="text"){this.addNewText()}else{if(a=="box"){this.addNewBox()}}}},addNewImage:function(){this.image_dialog.show(this.image_click_observer)},addNewText:function(a){if(!a||a.length<=0){a="Custom"}this.addTextField(a,true)},addNewBox:function(){this.addBoxField()},imageClicked:function(){this.addImageField(this.image_dialog.getSelectedId(),this.image_dialog.getSelectedThumb(),this.image_dialog.getSelectedCopyright())},addImageField:function(e,b,i){if(this.models.length>this.MAX_ITEMS){alert("The maximum number of card items is "+this.MAX_ITEMS+" you'll have to remove some items to make space for a new item.")}else{var f=this.canvas_widget.getWidth()/2;var c=this.canvas_widget.getHeight()/2;var d=new ImageModel(this.last_id);d.setPxPerMmRatio(this.px_per_mm_ratio);d.setLimit(this.limit);d.setFirstLoad(false);d.setXAnchor(f);d.setYAnchor(c);d.setScale(100,true);var a=0;var h=0;this.models.each(function(l){h++;a=Math.max(l.getZOrder(),a)}.bind(this));min_z_order=a-h;this.models.each(function(l){l.setZOrder(l.getZOrder()-min_z_order)}.bind(this));last_text_order=h+1;this.models.each(function(l){if(l.getType()==TYPE_TEXT){last_text_order=Math.min(last_text_order,l.getZOrder())}}.bind(this));this.models.each(function(l){if(l.getZOrder()>=last_text_order){l.setZOrder(l.getZOrder()+1)}}.bind(this));d.setZOrder(last_text_order);d.setImage(e,b,i);var j=new ImageWidget(d,this.models,this.image_dialog,this.crop_dialog);var k=this.newImageIndexWidget(d,this.image_dialog,this.crop_dialog);var g=new ImageToolBarWidget(d);this.addNewField(d,j,k,g);d.setSelected(true)}},addTextField:function(d){if(this.models.length>this.MAX_ITEMS){alert("The maximum number of card items is "+this.MAX_ITEMS+" you'll have to remove some items to make space for a new item.")}else{var c=this.canvas_widget.getWidth()/2;var f=this.canvas_widget.getHeight()/2;var g=new TextModel(this.last_id);g.setPxPerMmRatio(this.px_per_mm_ratio);g.setLimit(this.limit);g.setXAnchor(c);g.setYAnchor(f);g.setName(d);g.setLabel(d);g.setText(d);g.setPlaceholder(true);g.setZOrder(this.getTopZOrder());last_text_model=this.getLastTextModel();if(last_text_model){g.setFontColour(last_text_model.getFontColour());g.setFont(last_text_model.getFont());g.setFontSize(last_text_model.getFontSize());g.setShadowDirection(last_text_model.getShadowDirection());g.setShadowSize(last_text_model.getShadowSize());g.setShadowColour(last_text_model.getShadowColour());g.setAlignment(last_text_model.getAlignment());g.setLineSpacing(last_text_model.getLineSpacing());g.setLetterSpacing(last_text_model.getLetterSpacing())}var b=new TextWidget(g,this.models);var a=this.newTextIndexWidget(g);var e=new TextToolBarWidget(g);this.addNewField(g,b,a,e);g.setSelected(true)}},newBoxIndexWidget:function(a){return new BoxIndexWidget(a)},newImageIndexWidget:function(c,b,a){return new ImageIndexWidget(c,b,a)},newTextIndexWidget:function(a){return new TextIndexWidget(a)},addBoxField:function(){if(this.models.length>this.MAX_ITEMS){alert("The maximum number of card items is "+this.MAX_ITEMS+" you'll have to remove some items to make space for a new item.")}else{var f=new BoxModel(this.last_id);f.setPxPerMmRatio(this.px_per_mm_ratio);f.setLimit(this.limit);f.setXAnchor(this.canvas_widget.getWidth()/4);f.setYAnchor(this.canvas_widget.getHeight()/4);f.setWidth(this.canvas_widget.getWidth()/2);f.setHeight(this.canvas_widget.getHeight()/2);var e=0;var c=0;this.models.each(function(g){c++;e=Math.max(g.getZOrder(),e)}.bind(this));min_z_order=e-c;this.models.each(function(g){g.setZOrder(g.getZOrder()-min_z_order)}.bind(this));last_text_order=c+1;this.models.each(function(g){if(g.getType()==TYPE_TEXT){last_text_order=Math.min(last_text_order,g.getZOrder())}}.bind(this));this.models.each(function(g){if(g.getZOrder()>=last_text_order){g.setZOrder(g.getZOrder()+1)}}.bind(this));f.setZOrder(last_text_order);var b=new BoxWidget(f,this.models);var a=this.newBoxIndexWidget(f);var d=new BoxToolBarWidget(f);this.addNewField(f,b,a,d);f.setSelected(true);f.setLoaded(true)}},getLastTextModel:function(){var a=null;if(this.models){this.models.each(function(b){if(b.getType()==TYPE_TEXT){a=b}})}return a},getTopZOrder:function(){order=1;this.models.each(function(a){order++}.bind(this));return order},addNewField:function(b,a,f,d){this.models.push(b);var c=this.canvas_widget.getWidth();var e=this.canvas_widget.getHeight();b.setBoundingBox(0,0,c,e);this.index_widget.addIndexWidgetToIndex(f);this.canvas_widget.addCanvasWidgetToCanvas(a);this.addNewToolbarWidget(d);b.observeSelectChange(this.model_select_observer);b.observeHoverChange(this.model_hover_observer);b.observeRemove(this.model_remove_observer);b.observePositionChange(this.model_position_observer);b.observeDrag(this.model_drag_observer);f.observeLoad(this.widget_load_observer);a.observeLoad(this.widget_load_observer);this.last_id++},addNewToolbarWidget:function(a){},onModelSelect:function(a){if(a.getSelected()){this.models.each(function(b){if(b!=a){b.setSelected(false)}}.bind(this))}},showHoverCursor:function(){hovered=null;this.models.each(function(a){if(a.getHovered()){hovered=a}});if(hovered!=null){this.canvas_widget.setCursor("pointer")}else{this.canvas_widget.setCursor("default")}},unselectAll:function(){this.models.each(function(a){a.setSelected(false)}.bind(this))},onModelHover:function(a){if(a.getHovered()){this.models.each(function(b){if(b!=a){b.setHovered(false)}}.bind(this))}this.showHoverCursor()},onModelRemove:function(b){var a=b.getZOrder();this.models=this.models.without(b);this.models.each(function(c){if(c.getZOrder()>a){c.setZOrder(c.getZOrder()-1)}})},onModelDrag:function(b){var a=null;this.models.each(function(c){if(c.getDragging()){a=c}});if(a){this.canvas_widget.showSafeAreas(a,true,1)}else{this.canvas_widget.showSafeAreas(b,false,1)}},onModelPosition:function(a){this.canvas_widget.showSafeAreas(a,true,1);this.canvas_widget.showSafeAreas(a,false,1)},onWidgetLoad:function(a,d,b){this.loader.show(d,b);if(a){var c=a.getModel();this.canvas_widget.showSafeAreas(c,b,d)}},onToolbarButtonClick:function(a){switch(a){case"landscape":case"portrait":this.toggleOrientation();break;default:this.setCardSize(a);break}},toggleOrientation:function(){width=this.canvas_widget.getWidth();height=this.canvas_widget.getHeight();if(height>width){rotate=-90}else{rotate=90}this.models.each(function(a){if(a.getType()==TYPE_IMAGE){a.rotateBy(rotate)}});this.canvas_widget.setWidth(height);this.canvas_widget.setHeight(width)},addDefaults:function(){DEFAULT_LABELS.each(function(a){this.addTextField(a)}.bind(this))},loadCanvasData:function(b){var a=$F(b);if(a.length>0){var c=a.evalJSON();this.loadCanvasJSON(c)}},loadCanvasJSON:function(a){this.loadCardSize(this.width_px,this.height_px,a.width,a.height);this.layout_id=a.layout_id;this.card_id=a.card_id;this.setCustomised(a.is_customised);if(this.image_dialog!=null){this.image_dialog.changeLayout(this.layout_id)}},setCustomised:function(a){this.is_customised=a},loadCardSize:function(d,c,b,a){if(this.canvas_widget&&d&&c&&b&&a){this.px_per_mm_ratio=d/b;this.canvas_widget.setWidth(d);this.canvas_widget.setHeight(c);this.width_mm=b;this.height_mm=a}},loadModelData:function(b){var d=false;if(b){var a=$F(b);if(a.length>0){var c=a.evalJSON();this.loadModelJSON(c)}}return d},loadModelJSON:function(b){this.removeModels();var a=b.layout_items;if(a){a.each(function(c){loaded=true;if(c.text_layout_item!=null){this.loadTextModel(c.text_layout_item)}else{if(c.image_layout_item!=null){this.loadImageModel(c.image_layout_item)}else{if(c.box_layout_item!=null){this.loadBoxModel(c.box_layout_item)}}}},this)}},removeModels:function(){var a=this.models.pop();while(a!=null){a.remove();a=this.models.pop()}},loadTextModel:function(e){var c=new TextModel(this.last_id);c.setHorizontalAlignment(e.horizontal_alignment);c.setVerticalAlignment(e.vertical_alignment);c.setLabel(e.locale_name);c.setName(e.name);c.setText(e.content);c.setPxPerMmRatio(this.px_per_mm_ratio);c.setXAnchorMm(e.x_anchor);c.setWidthMm(e.width);c.setYAnchorMm(e.y_anchor);c.setHeightMm(e.height);c.setZOrder(e.zindex);c.setFontColour(e.font_colour);c.setFont(e.font);c.setFontSize(e.font_size);c.setRotation(e.rotation);c.setPlaceholder(e.placeholder);c.setDatabaseId(e.id);c.setBottomOffset(e.baseline);c.setLimit(this.limit);c.setShadowDirection(e.shadow_direction);c.setShadowSize(e.shadow_size);c.setShadowColour(e.shadow_colour);c.setLineSpacing(e.line_spacing);c.setLetterSpacing(e.letter_spacing);c.setFree(e.free);var b=new TextWidget(c,this.models);var a=this.newTextIndexWidget(c);var d=new TextToolBarWidget(c);this.addNewField(c,b,a,d)},loadImageModel:function(e){var c=new ImageModel(this.last_id);c.setPxPerMmRatio(this.px_per_mm_ratio);c.setXAnchorMm(e.x_anchor);c.setWidthMm(e.width);c.setBaseWidth(e.base_width);c.setYAnchorMm(e.y_anchor);c.setHeightMm(e.height);c.setBaseHeight(e.base_height);c.setScale(e.scale,true);c.setImage(e.upload_id,e.thumbnail,e.copyright);c.setZOrder(e.zindex);c.setRotation(e.rotation);c.setCropCoordinates(e.crop_x1,e.crop_y1,e.crop_x2,e.crop_y2);c.setPlaceholder(e.placeholder);c.setDatabaseId(e.id);c.setLimit(this.limit);c.setFree(e.free);var b=new ImageWidget(c,this.models,this.image_dialog,this.crop_dialog);var a=this.newImageIndexWidget(c,this.image_dialog,this.crop_dialog);var d=new ImageToolBarWidget(c);this.addNewField(c,b,a,d)},loadBoxModel:function(e){var c=new BoxModel(this.last_id);c.setPxPerMmRatio(this.px_per_mm_ratio);c.setXAnchorMm(e.x_anchor);c.setWidthMm(e.width);c.setYAnchorMm(e.y_anchor);c.setHeightMm(e.height);c.setZOrder(e.zindex);c.setRotation(e.rotation);c.setPlaceholder(e.placeholder);c.setDatabaseId(e.id);c.setLimit(this.limit);c.setFontColour(e.font_colour);c.setFree(e.free);var b=new BoxWidget(c,this.models);var a=this.newBoxIndexWidget(c);var d=new BoxToolBarWidget(c);this.addNewField(c,b,a,d);c.setLoaded(true)},getElement:function(){return this.wysiwyg},toHash:function(){var a=$A();this.models.each(function(b){a.push(b.toHash())}.bind(this));return $H({width:this.width_mm,height:this.height_mm,is_customised:this.is_customised,layout_id:this.layout_id,layout_items:a})},toJSON:function(){return this.toHash().toJSON()},save:function(b,a){b.value=this.toJSON()},show:function(){if(this.wysiwyg!=null){this.wysiwyg.show()}},hide:function(){if(this.wysiwyg!=null){this.wysiwyg.hide()}},setReadOnly:function(a){if(this.canvas_widget!=null){this.canvas_widget.setReadOnly(a)}}});function getPageSize(){var c,b;if(window.innerHeight&&window.scrollMaxY){c=window.innerWidth+window.scrollMaxX;b=window.innerHeight+window.scrollMaxY}else{if(document.body.scrollHeight>document.body.offsetHeight){c=document.body.scrollWidth;b=document.body.scrollHeight}else{c=document.body.offsetWidth;b=document.body.offsetHeight}}var a,d;if(self.innerHeight){if(document.documentElement.clientWidth){a=document.documentElement.clientWidth}else{a=self.innerWidth}d=self.innerHeight}else{if(document.documentElement&&document.documentElement.clientHeight){a=document.documentElement.clientWidth;d=document.documentElement.clientHeight}else{if(document.body){a=document.body.clientWidth;d=document.body.clientHeight}}}if(b<d){pageHeight=d}else{pageHeight=b}if(c<a){pageWidth=c}else{pageWidth=a}return[pageWidth,pageHeight]};

var FloatingZoom=Class.create({element:null,mousemove_bind:null,visible:false,zoom_template:new Template('<p>#{alt}</p><img src="#{source}"></img>'),initialize:function(){this.addFloatingZoom();this.setupEventObservers()},remove:function(){this.tearDownEventObservers()},addFloatingZoom:function(){if(!$("floating_zoom")){$(document.body).insert(Builder.node("div",{id:"floating_zoom",style:"position: absolute; display: none;"}))}this.element=$("floating_zoom")},show:function(c,b,a,d){this.setImage(c,b);this.setPosition(a,d);this.visible=true;this.reallyShow.bind(this).delay(0.5)},hide:function(a,b){this.setPosition(a,b);this.element.hide();this.visible=false},reallyShow:function(){if(this.visible){this.element.show()}},setImage:function(b,a){this.element.update(this.zoom_template.evaluate({source:b,alt:a}))},setupEventObservers:function(){this.mousemove_bind=this.onMouseMove.bindAsEventListener(this);$(document.body).observe("mousemove",this.mousemove_bind)},tearDownEventObservers:function(){$(document.body).stopObserving("mousemove",this.mousemove_bind)},onMouseMove:function(a){this.setPosition(a.pointerX(),a.pointerY())},setPosition:function(a,f){if(this.visible){var e=a+20;var d=f;var b=document.viewport.getWidth()+document.viewport.getScrollOffsets().left;var c=document.viewport.getHeight()+document.viewport.getScrollOffsets().top;if(e+this.element.getWidth()>b){e=e-this.element.getWidth()-40}if(d+this.element.getHeight()>c){d=c-this.element.getHeight()}this.element.setStyle({left:e+"px",top:d+"px"})}}});var ZoomImage=Class.create({element:null,mouseover_bind:null,mouseout_bind:null,floating_zoom:null,initialize:function(a,b){this.element=a;this.floating_zoom=b;this.setupEventObservers();this.top=a.cumulativeOffset()[1]},remove:function(){this.tearDownEventObservers()},setupEventObservers:function(){this.mouseover_bind=this.onMouseOver.bindAsEventListener(this);this.mouseout_bind=this.onMouseOut.bindAsEventListener(this);this.element.observe("mouseover",this.mouseover_bind);this.element.observe("mouseout",this.mouseout_bind);document.observe("click",this.mouseout_bind)},tearDownEventObservers:function(){this.element.stopObserving("mouseover",this.mouseover_bind);this.element.stopObserving("mouseout",this.mouseout_bind);document.stopObserving("click",this.mouseout_bind)},onMouseOver:function(a){this.floating_zoom.show(this.element.getAttribute("src"),this.element.getAttribute("alt"),a.pointerX(),a.pointerY())},onMouseOut:function(a){if(a&&a.element()&&a.element().up(".zoom_hover")||a.element()==this.element){this.floating_zoom.hide(a.pointerX(),a.pointerY())}}});var zoom_images=[];function loadZooms(){var a=new FloatingZoom();var b=$$(".zoom_hover");if(zoom_images.size()){killZooms()}b.each(function(c){zoom_images.push(new ZoomImage(c,a))})}function killZooms(){zoom_images.each(function(a){a.remove()});zoom_images=[]};

var SQUIZ_FONTS=$A([$H({name:"Aachen",normal:"AachenBT-Roman",bold:"AachenBT-Bold",italic:"",bolditalic:""}),$H({name:"AdLib",normal:"AdLibBT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Amazone",normal:"AmazoneBT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Amelia",normal:"AmeliaBT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"American Typewriter",normal:"AmerTypewriterITCbyBT-Medium",bold:"AmerTypewriterITCbyBT-Bold",italic:"",bolditalic:""}),$H({name:"Architecture",normal:"Architecture-Normal",bold:"",italic:"",bolditalic:""}),$H({name:"Arnold Boe",normal:"ArnoldBoeD",bold:"",italic:"",bolditalic:""}),$H({name:"Bank Gothic ",normal:"BankGothicBT-Light",bold:"BankGothicBT-Medium",italic:"",bolditalic:""}),$H({name:"Bauhaus",normal:"BauhausITCbyBT-Medium",bold:"",italic:"",bolditalic:""}),$H({name:"Bauhaus Bold",normal:"BauhausITCbyBT-Bold",bold:"BauhausITCbyBT-Heavy",italic:"",bolditalic:""}),$H({name:"Benguiat Gothic",normal:"BenguiatGothicITCbyBT-Book",bold:"BenguiatGothicITCbyBT-Bold",italic:"BenguiatGothicITCbyBT-BookItal",bolditalic:"BenguiatGothicITCbyBT-BoldItal"}),$H({name:"Bergell",normal:"BergellLetPlain",bold:"",italic:"",bolditalic:""}),$H({name:"Binner",normal:"BinnerD",bold:"",italic:"",bolditalic:""}),$H({name:"Blacklight",normal:"BlacklightD",bold:"",italic:"",bolditalic:""}),$H({name:"Blippo",normal:"BlippoBT-Black",bold:"",italic:"",bolditalic:""}),$H({name:"Bodoni",normal:"BodoniBT-Roman",bold:"BodoniBT-Bold",italic:"BodoniBT-Italic",bolditalic:"BodoniBT-BoldItalic"}),$H({name:"Bodoni Bold Condensed",normal:"BodoniBT-BoldCondensed",bold:"",italic:"",bolditalic:""}),$H({name:"Bronx",normal:"BronxLetPlain",bold:"",italic:"",bolditalic:""}),$H({name:"Castle",normal:"CastleT-Book",bold:"CastleT-Bold",italic:"",bolditalic:""}),$H({name:"Castle Ultra",normal:"CastleT-Ultr",bold:"",italic:"",bolditalic:""}),$H({name:"Chiller",normal:"ChillerPlain",bold:"",italic:"",bolditalic:""}),$H({name:"Classical Garamond",normal:"ClassicalGaramondBT-Roman",bold:"ClassicalGaramondBT-Bold",italic:"ClassicalGaramondBT-Italic",bolditalic:"ClassicalGaramondBT-BoldItalic"}),$H({name:"Dancin",normal:"DancinPlain",bold:"",italic:"",bolditalic:""}),$H({name:"Dextor",normal:"DextorD",bold:"",italic:"",bolditalic:""}),$H({name:"Empire",normal:"EmpireBT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Enviro",normal:"EnviroD",bold:"",italic:"",bolditalic:""}),$H({name:"Eras Bold",normal:"ErasITCbyBT-Bold",bold:"ErasITCbyBT-Ultra",italic:"",bolditalic:""}),$H({name:"Ewie",normal:"EwieD",bold:"",italic:"",bolditalic:""}),$H({name:"Exotic",normal:"Exotic350BT-Light",bold:"Exotic350BT-Bold",italic:"",bolditalic:""}),$H({name:"Exotic Demi-Bold",normal:"Exotic350BT-DemiBold",bold:"",italic:"",bolditalic:""}),$H({name:"Expo",normal:"Expo-Normal",bold:"",italic:"",bolditalic:""}),$H({name:"Formal Script",normal:"FormalScript421BT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Friz Quadrata",normal:"FrizQuadrataITCbyBT-Roman",bold:"FrizQuadrataITCbyBT-Bold",italic:"",bolditalic:""}),$H({name:"Galaxy",normal:"GalaxyBT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Helvetica",normal:"Swiss721BT-Roman",bold:"Swiss721BT-Bold",italic:"Swiss721BT-Italic",bolditalic:"Swiss721BT-BoldItalic"}),$H({name:"Helvetica Medium",normal:"Swiss721BT-Medium",bold:"",italic:"Swiss721BT-MediumItalic",bolditalic:""}),$H({name:"Helvetica Black",normal:"Swiss721BT-Black",bold:"",italic:"Swiss721BT-BlackItalic",bolditalic:""}),$H({name:"Helvetica Roman Condensed",normal:"Swiss721BT-RomanCondensed",bold:"Swiss721BT-BoldCondensed",italic:"Swiss721BT-ItalicCondensed",bolditalic:"Swiss721BT-BoldCondensedItalic"}),$H({name:"Helvetica Roman Extended",normal:"Swiss721BT-RomanExtended",bold:"Swiss721BT-BoldExtended",italic:"",bolditalic:""}),$H({name:"Helvetica Bold Rounded",normal:"Swiss721BT-BoldRounded",bold:"",italic:"",bolditalic:""}),$H({name:"Helvetica Black Condensed",normal:"Swiss721BT-BlackCondensed",bold:"",italic:"Swiss721BT-BlackCondensedItalic",bolditalic:""}),$H({name:"Helvetica Black Extended",normal:"Swiss721BT-BlackExtended",bold:"",italic:"",bolditalic:""}),$H({name:"Horizon",normal:"HorizonBT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Humanist",normal:"Humanist521BT-Roman",bold:"Humanist521BT-Bold",italic:"Humanist521BT-Italic",bolditalic:"Humanist521BT-BoldItalic"}),$H({name:"Humanist Roman Condensed",normal:"Humanist521BT-RomanCondensed",bold:"Humanist521BT-BoldCondensed",italic:"",bolditalic:""}),$H({name:"Humanist Extra Bold Condensed",normal:"Humanist521BT-XtraBoldCondensed",bold:"",italic:"",bolditalic:""}),$H({name:"Humanist Extra Bold",normal:"Humanist521BT-ExtraBold",bold:"",italic:"",bolditalic:""}),$H({name:"Humanist Ultra Bold",normal:"Humanist521BT-UltraBold",bold:"",italic:"",bolditalic:""}),$H({name:"Ice Age",normal:"IceAgeD",bold:"",italic:"",bolditalic:""}),$H({name:"Impress",normal:"ImpressBT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Inserat",normal:"Swiss921BT-RegularA",bold:"",italic:"",bolditalic:""}),$H({name:"John Handy",normal:"JohnHandyPlain",bold:"",italic:"",bolditalic:""}),$H({name:"Keypunch",normal:"Keypunch-Normal",bold:"",italic:"",bolditalic:""}),$H({name:"LCD",normal:"LcdD",bold:"",italic:"",bolditalic:""}),$H({name:"Lithograph",normal:"Lithograph",bold:"Lithograph-Bold",italic:"",bolditalic:""}),$H({name:"Mister Earl",normal:"MisterEarlBT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Nevison Casual",normal:"NevisonCasD",bold:"",italic:"",bolditalic:""}),$H({name:"Newtext",normal:"NewtextITCbyBT-Regular",bold:"",italic:"NewtextITCbyBT-RegularItalic",bolditalic:""}),$H({name:"Nicolas Cochin",normal:"NicolasCocT-Regu",bold:"NicolasCocT-Blac",italic:"NicolasCocT-ReguItal",bolditalic:""}),$H({name:"OCR-A",normal:"OCRAbyBT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Orbit-B",normal:"OrbitBbyBT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Oz Handicraft",normal:"OzHandicraftBT-Roman",bold:"",italic:"",bolditalic:""}),$H({name:"Pablo",normal:"PabloPlain",bold:"",italic:"",bolditalic:""}),$H({name:"Pepper",normal:"Pepper-Normal",bold:"",italic:"",bolditalic:""}),$H({name:"Plaza",normal:"PlazaD-Regu",bold:"",italic:"",bolditalic:""}),$H({name:"Rage Italic",normal:"RageItalicLetPlain",bold:"",italic:"",bolditalic:""}),$H({name:"Revue",normal:"RevueBT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Rubber Stamp",normal:"RubberStampLetPlain",bold:"",italic:"",bolditalic:""}),$H({name:"Scruff",normal:"ScruffPlain",bold:"",italic:"",bolditalic:""}),$H({name:"Slipstream",normal:"SlipstreamLetPlain",bold:"",italic:"",bolditalic:""}),$H({name:"Snell",normal:"SnellBT-Regular",bold:"SnellBT-Bold",italic:"",bolditalic:""}),$H({name:"Sonic",normal:"SonicBT-ExtraBold",bold:"",italic:"",bolditalic:""}),$H({name:"Square",normal:"Square721BT-Roman",bold:"Square721BT-Bold",italic:"Square721BTItalic",bolditalic:""}),$H({name:"Square Demi",normal:"Square721DmNormal",bold:"",italic:"Square721Demi-Italic",bolditalic:""}),$H({name:"Square Extended",normal:"Square721BT-RomanExtended",bold:"Square721BT-BoldExtended",italic:"",bolditalic:""}),$H({name:"Square Condensed",normal:"Square721BT-RomanCondensed",bold:"Square721BT-BoldCondensed",italic:"",bolditalic:""}),$H({name:"Square Black",normal:"Square721Blk-Normal",bold:"",italic:"Square721Blk-Italic",bolditalic:""}),$H({name:"Staccato",normal:"Staccato222BT-Regular",bold:"",italic:"",bolditalic:""}),$H({name:"Stop",normal:"StopD",bold:"",italic:"",bolditalic:""}),$H({name:"Technical",normal:"Technical-Normal",bold:"",italic:"Technical-Italic",bolditalic:""}),$H({name:"Times New Roman",normal:"TimesNewRomanPSMT",bold:"TimesNewRomanPS-BoldMT",italic:"TimesNewRomanPS-ItalicMT",bolditalic:"TimesNewRomanPS-BoldItalicMT"}),$H({name:"Verdana",normal:"Verdana",bold:"Verdana-Bold",italic:"Verdana-Italic",bolditalic:"Verdana-BoldItalic"}),$H({name:"Vivaldi",normal:"VivaldiD",bold:"",italic:"",bolditalic:""}),$H({name:"Zapf Chancery",normal:"ZapfChanceryITCbyBT-Medium",bold:"ZapfChanceryITCbyBT-Bold",italic:"ZapfChanceryITCbyBT-MediumItal",bolditalic:""})]);var SQUIZ_FONT_SIZES=$A(["6","7","8","9","10","11","12","14","16","18","21","24","36","48","60","72"]);var SQUIZ_SHADOW_SIZES=$A(["0","0.2","0.3","0.4","0.5","0.6","0.7","1.0","1.5","2.0","2.5","3.0","4.0","5.0","7.0"]);var SquizWysiwyg=Class.create(Wysiwyg,{side_change_observer:null,initialize:function($super,a,b,d,c){this.on_toolbar_click=this.onToolBarClick.bind(this);this.on_side_click=this.onSideClick.bind(this);$super(a,b,d,c);this.addCorners()},makeTopToolbar:function($super){this.makeAdvancedToolbar();this.makeToolbar();$super()},makeAdvancedToolbar:function(){this.more_toolbar=new ToolBar("top");this.more_toolbar.addSection(I18n.t("text_shadow_effect",{scope:["wysiwyg"]}),null,new ToolBarDropDown(null,["shadow-colour"],"colour"),new ToolBarDropDown(SQUIZ_SHADOW_SIZES,["shadow-size"],"size number"),new ToolBarDropDown(null,["shadow-direction"],"shadow_direction"));this.more_toolbar.show(false);this.addToolbar(this.more_toolbar,true)},makeToolbar:function(){this.advanced_toolbar=new ToolBar("top");bold=new ToolBarStyleButton("font-weight","bold","bold","normal");italic=new ToolBarStyleButton("font-style","italic","italic","normal");advanced_button=new ToolBarToggleButton("more","advanced","more","less");advanced_button.observe(this.on_toolbar_click);this.advanced_toolbar.addSection("",null,advanced_button);this.advanced_toolbar.addSection(I18n.t("alignment",{scope:["wysiwyg"]}),null,new ToolBarDropDown(null,["text-align"],"alignment"));this.advanced_toolbar.addSection(I18n.t("style",{scope:["wysiwyg"]}),null,bold,italic);this.advanced_toolbar.addSection(I18n.t("colour",{scope:["wysiwyg"]}),null,new ToolBarDropDown(null,["font-colour"],"colour"));this.advanced_toolbar.addSection(I18n.t("size",{scope:["wysiwyg"]}),null,new ToolBarDropDown(SQUIZ_FONT_SIZES,["font-size"],"size number editable"));this.advanced_toolbar.addSection(I18n.t("font",{scope:["wysiwyg"]}),null,new ToolBarFontDropDown(SQUIZ_FONTS,bold,italic));this.addToolbar(this.advanced_toolbar,true)},makeLeftToolbar:function($super){this.left_toolbar=new ToolBar("left");var a=new ToolBarResizeSlider("scale","scale_finished");this.left_toolbar.addSection("","center resizer_section",a);this.addToolbar(this.left_toolbar,true);$super()},makeRightToolbar:function($super){this.right_toolbar=new ToolBar("right");var c=new ToolBarToggleButton("front","front","front","back");c.observe(this.on_side_click);var a=new ToolBarLabel("Front","side_label");var b=new ToolBarLabel("Back","side_label");this.right_toolbar.addSection("",null,a,c,b);this.addToolbar(this.right_toolbar,false)},onToolBarClick:function(a,b){if(a=="more"){this.toggleMore(b)}},onSideClick:function(a,b){if(this.side_change_observer!=null){this.side_change_observer()}},observeSideChange:function(a){this.side_change_observer=a},toggleMore:function(a){if(this.more_toolbar.isVisible()){this.more_toolbar.show(false)}else{this.more_toolbar.show(true)}},addCorners:function(){var a=Builder.node("div",{"class":"corners"});var b=this.canvas_widget.getCanvasElement();b.insert(a)},addNewToolbarWidget:function($super,a){$super(a);if(this.advanced_toolbar){this.advanced_toolbar.addToolBarWidget(a)}if(this.more_toolbar){this.more_toolbar.addToolBarWidget(a)}if(this.left_toolbar){this.left_toolbar.addToolBarWidget(a)}if(this.right_toolbar){this.right_toolbar.addToolBarWidget(a)}if(this.bottom_toolbar){this.bottom_toolbar.addToolBarWidget(a)}},setReadOnly:function($super,a){$super(a);if(this.advanced_toolbar!=null){this.advanced_toolbar.setReadOnly(a)}if(this.more_toolbar){this.more_toolbar.setReadOnly(a)}if(this.left_toolbar){this.left_toolbar.setReadOnly(a)}}});

var LayoutSelectorWidget=Class.create({template:new Template('					<div style="display: none;" class="customize"> 						<h2>Customize <a class="remove_customization" href="#">Remove customization (#{price})</a></h2> 						<div class="index_container"> 							<div style="clear:both;"></div> 						</div> 					</div> 					<h2>Free back designs</h2> 					<div class="layouts"> 						<ul class="layout_list"> 							<li class="clear"></li> 							<li class="empty_text">'+I18n.t("no_layouts_text",{scope:["wysiwyg"]})+'</li> 						</ul> 						<div class="clear"></div> 						<div class="more_index_options"> 							<a href="#" class="go_back" style="visibility: hidden;">oops changed my mind (revert back)</a> 						</div> 					</div> 					'),select_observer:null,layouts:null,go_back_layout:null,initialize:function(a,b){this.price=b;this.select_observers=$A([]);this.customize_observers=$A([]);this.layouts_json=a;this.makeElement();this.loadLayouts();this.setupEventObservers()},remove:function(){this.tearDownEventObservers();this.element.remove()},setupEventObservers:function(){this.go_back_observer=this.onGoBackClicked.bindAsEventListener(this);this.go_back.observe("click",this.go_back_observer);this.click_observer=this.onClick.bindAsEventListener(this);this.list_element.observe("click",this.click_observer);this.remove_customization_observer=this.onRemoveCustomization.bindAsEventListener(this);this.remove_customization.observe("click",this.remove_customization_observer)},tearDownEventObservers:function(){this.go_back.stopObserving("click",this.go_back_observer);this.list_element.stopObserving("click",this.click_observer)},makeElement:function(){this.element=Builder.node("div",{"class":"back_designs"});this.element.update(this.template.evaluate({price:this.price}));this.list_element=this.element.select(".layout_list").first();this.empty_text=this.element.select(".empty_text").first();this.clear_element=this.element.select(".clear").first();this.go_back=this.element.select(".go_back").first();this.index_container=this.element.select(".index_container").first();this.customize=this.element.select(".customize").first();this.remove_customization=this.element.select(".remove_customization").first()},addSelectorTo:function(a){if(a){a.insert({top:this.element})}},addIndexToSelector:function(a){a.addIndexTo(this.index_container)},onRemoveCustomization:function(a){a.stop();if(confirm(I18n.t("remove_customise_confirm",{scope:"wysiwyg"}))){this.setCustomised(false);this.notifyRemoveCustomizationObservers();this.selectLayout(0)}},setCustomised:function(a){if(a){this.customize.show()}else{this.customize.hide()}},observeSelect:function(a){this.select_observers.push(a)},stopObservingSelect:function(a){this.select_observers=this.select_observers.without(a)},notifyLayoutSelectObservers:function(a,b){if(a!=null){this.select_observers.each(function(c){c(a,b)}.bind(this))}},observeRemoveCustomization:function(a){this.customize_observers.push(a)},stopObservingRemoveCustomization:function(a){this.customize_observers=this.customize_observers.without(a)},notifyRemoveCustomizationObservers:function(){this.customize_observers.each(function(a){a()}.bind(this))},checkForEmptyText:function(){var a=0;if(this.layouts){a=this.layouts.length}if(a<=0){this.empty_text.show()}else{this.empty_text.hide()}},loadLayouts:function(){if(this.layouts_json!=null&&this.layouts_json.length>0){this.layouts=this.layouts_json.evalJSON();var a=0;this.layouts.each(function(b){this.loadLayout(b,a);a++}.bind(this))}this.checkForEmptyText()},loadLayout:function(a,b){if(a!=null){var d=this.findThumbnailPath(120,70,a.layout_thumbnails);var c=Builder.node("img",{src:d});var f=Builder.node("a",{"class":"layout_link",href:"#",rel:b},[c]);var e=Builder.node("li",{"class":"layout"},f);this.clear_element.insert({before:e})}},findThumbnailPath:function(b,c,a){var d="";a.each(function(e){if(e.layout_thumbnail.width==b&&e.layout_thumbnail.height==c){d=e.layout_thumbnail.relative_path;throw $break}});return d},onClick:function(d){var c=d.element();var b=null;if(c!=null&&!c.hasClassName("layout_link")){c=c.up(".layout_link")}if(c.hasClassName("layout_link")){b=Number(c.readAttribute("rel"))}if(b!=null&&b>=0&&b<this.layouts.length){var a=document.documentElement.scrollTop;this.selectLayout(b);d.stop();document.documentElement.scrollTop=a}},selectLayout:function(b){if(this.layouts!=null&&b!=null&&b>=0&&b<this.layouts.length){var a=this.layouts[b];this.notifyLayoutSelectObservers(a,false)}},hide:function(){this.element.hide()},show:function(){this.element.show()},setGoBack:function(a){this.go_back_layout=a;if(this.go_back_layout!=null){this.go_back.setStyle({visibility:"visible"})}else{this.go_back.setStyle({visibility:"hidden"})}},onGoBackClicked:function(a){a.stop();this.notifyLayoutSelectObservers(this.go_back_layout,true)}});var SquizBackWysiwyg=Class.create(SquizWysiwyg,{back_selector:null,double_sided_premium:0,double_sided_per_quantity:0,help_toolbar:null,initialize:function($super,b,c,g,f,a,e,d){this.layouts_json=a;this.double_sided_premium=e;this.double_sided_per_quantity=d;$super(b,c,g,f);this.createBackSelector();this.makeCustomizeToolbar();this.on_customise_click=this.onCustomiseClick.bindAsEventListener(this);this.customise_widget.setOnClickObserver(this.on_customise_click);this.setCustomised(this.is_customised)},remove:function(){if(this.different_element&&this.different_observer){this.different_element.stopObserving("click",this.different_observer)}},createBackSelector:function(){this.back_selector=new LayoutSelectorWidget(this.layouts_json,this.double_sided_premium);this.back_selector.addSelectorTo(this.wysiwyg);this.back_selector.observeSelect(this.onLayoutSelected.bind(this));this.back_selector.observeRemoveCustomization(this.onRemoveCustomization.bind(this));this.back_selector.addIndexToSelector(this.index_widget)},onLayoutSelected:function(a){var b=this.is_customised;this.loadCanvasJSON(a);this.loadModelJSON(a);this.setCustomised(b)},onCustomiseClick:function(){this.setCustomised(true)},setCustomised:function($super,a){$super(a);this.setReadOnly(!a);this.showHideHelpToolbar();this.models.each(function(b){var c=b.getFree()||a;b.setVisible(c)});this.setCustomText();if(this.back_selector!=null){this.back_selector.setCustomised(a)}},addNewField:function($super,b,a,d,c){$super(b,a,d,c);this.setModelVisibility(b)},setModelVisibility:function(a){if(a!=null){var b=a.getFree()||this.is_customised;a.setVisible(b)}},setCustomText:function(){if(this.customise_widget!=null){if(this.is_customised){this.customise_widget.setValue("")}else{this.customise_widget.setValue(I18n.t("customise_layout",{scope:["wysiwyg"],price:this.double_sided_premium,quantity:this.double_sided_per_quantity}))}}},createIndex:function($super){this.index_widget=new IndexWidget()},onDifferentBackClick:function(c){c.stop();var a=this.toJSON();var b=a.evalJSON();this.back_selector.setGoBack(b)},onRemoveCustomization:function(){this.setCustomised(false)},makeRightToolbar:function($super){this.right_toolbar=new ToolBar("right");var c=new ToolBarToggleButton("back","back","front","back");c.observe(this.on_side_click);var a=new ToolBarLabel("Front","side_label");var b=new ToolBarLabel("Back","side_label");this.right_toolbar.addSection("",null,a,c,b);this.addToolbar(this.right_toolbar,false)},makeCustomizeToolbar:function(){this.help_toolbar=new ToolBar("top");this.customise_widget=new ToolBarHelp("link","link");this.help_toolbar.addSection("","center",this.customise_widget);this.addToolbar(this.help_toolbar,true);this.setCustomText();this.showHideHelpToolbar()},showHideHelpToolbar:function(){if(this.is_customised){if(this.help_toolbar!=null){this.help_toolbar.show(false)}if(this.advanced_toolbar!=null){this.advanced_toolbar.show(true)}}else{if(this.help_toolbar!=null){this.help_toolbar.show(true)}if(this.advanced_toolbar!=null){this.advanced_toolbar.show(false)}}}});
