/*! * Sketch (2015-02-23, 15:59) * * Copyright (C) 2011-2015 Hakim El Hattab, http://hakim.se */window.sketch={},sketch.IO=function(){function a(a,b){return a||0==a?a:b}var b="/php/sketch.php",c="/php/sketch.php",d="/php/gallery.php",e="x",f=null;return{initialize:function(){f=sketch.Main.linesToJSON()},hasUnsavedChanges:function(){return sketch.Main.linesToJSON()!==f},saveSketch:function(){var a=sketch.Main.linesToJSON();this.hasUnsavedChanges()?a.length>255?(sketch.LoadingOverlay.show("Saving sketch",100),$.post(b,"save="+a,function(b){sketch.LoadingOverlay.hide(),b.match(/error/gi)?alert("Uh-oh, the server replied with a no-no :( Wait a minute and try again."):(f=a,sketch.URL.writeID(b),sketch.Facebook.isConnected()&&FB.api("/me/sketchtoy:draw","post",{sketch:sketch.Main.getSketchShareURL()},function(a){!a||a.error}),sketch.ShareOverlay.show(),sketch.Related.update())})):alert("Please draw more before saving."):sketch.ShareOverlay.show()},loadSketch:function(a,b){$.get(c,{load:a},function(a,c){if(a.match(/error/gi))alert("There was an error loading your sketch."),b("error",{});else{f=a;var c="success";try{var d=sketch.IO.parseSketch($.parseJSON(a))}catch(e){c="error",alert("Uh-oh, an error occured while trying to load this sketch.")}b(c,d)}})},parseSketch:function(b){for(var c=a(b.p,b.perspective),d=a(b.a,b.amplitude),f=a(b.l,b.lines),g=0;g'),d.appendTo($("head"))),d.attr("content",sketch.Main.getSketchShareURL())}}}(),sketch.Util=function(){return{hexToRGB:function(a){return"string"==typeof a?(a=a.split("#").join(""),{r:parseInt(a.slice(0,2),16),g:parseInt(a.slice(2,4),16),b:parseInt(a.slice(4,6),16)}):{r:0,g:0,b:0}},wrapNumber:function(a,b){return a>b?-b+a%b:-b>a?b+a%b:a},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},supportsLocalStorage:function(){try{return localStorage.setItem("t","t"),localStorage.removeItem("t"),!0}catch(a){return!1}},isTouchDevice:function(){return!!navigator.userAgent.match(/ipod|ipad|iphone|android/gi)}}}(),window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,1e3/60)}}(),sketch.Locale=function(){function a(){c(),d(),i.find("li").on("click",function(a){var b=$(a.target).attr("data-language");"string"==typeof b&&g[b]&&sketch.Locale.change(b)}),i.on("mouseenter",function(){i.find(".list").show()}),i.on("mouseleave",function(){i.find(".list").hide()})}function b(){sketch.Util.supportsLocalStorage()&&localStorage.setItem(e,h)}function c(){if(sketch.Util.supportsLocalStorage()&&(h=localStorage.getItem(e),SketchConfig.autodetectLanguage&&!h)){var a=window.navigator.userLanguage||window.navigator.language;a&&(a=a.slice(0,2).toLowerCase(),g[a]&&(sketch.Main.trackEvent("Locale","Change Automatically",a,null,!0),h=a,b()))}g[h]||(h=f)}function d(){var a=$(".toolbar");a.find(".new-button").text(sketch.Locale.string("new")),a.find(".save-button").text(sketch.Locale.string("save")),a.find(".undo-button").text(sketch.Locale.string("undo")),a.find(".eraser-toggle").text(sketch.Locale.string("erase")),a.find(".facebook-share .label").text(sketch.Locale.string("share")),a.find(".facebook-send .label").text(sketch.Locale.string("send")),a.find(".tweet-button .label").text(sketch.Locale.string("tweet")),a.find(".size-dropdown .dropdown-title .label").text(sketch.Locale.string("size")+":"),a.find(".color-dropdown .dropdown-title .label").text(sketch.Locale.string("color")),a.find(".color-dropdown .dropdown-title .label").text(sketch.Locale.string("color")),a.find(".vibration-dropdown .dropdown-title .label").text(sketch.Locale.string("vibration")+":");var b=$(".share-overlay");b.find(".url .label").text(sketch.Locale.string("share-link")+":"),b.find(".share-facebook .label").text(sketch.Locale.string("share-fb")),b.find(".share-facebook-message .label").text(sketch.Locale.string("share-fb-message")),b.find(".share-facebook-photo .label").text(sketch.Locale.string("share-upload")),b.find(".share-email .label").text(sketch.Locale.string("share-email")),b.find(".share-twitter .label").text(sketch.Locale.string("share-tweet")),b.find(".share-download .label").text(sketch.Locale.string("share-download"));var c=$("footer");c.find(".links .terms").text(sketch.Locale.string("terms")),c.find(".links .privacy").text(sketch.Locale.string("privacy")),i.find(".button .label").text(sketch.Locale.string("language")+":"),i.find(".button .value").text(i.find(".list li[data-language="+h+"]").text()),i.removeClass("loading");var d=a.get(0),e=a.css("display");d.style.display="none",d.offsetHeight,d.style.display=e}var e="sketch-toy-language",f="en",g={en:{"new":"New",save:"Save",undo:"Undo",erase:"Erase",size:"Size",vibration:"Vibration",color:"Color",show:"Show",hide:"Hide",remove:"Remove",share:"Share",send:"Send",tweet:"Tweet","share-link":"Link","share-fb":"Share","share-fb-message":"Send Message","share-tweet":"Tweet","share-email":"Email","share-upload":"Upload Image","share-download":"Download Image","featured-sketches":"Featured Sketches",comments:"Comments","connect-fb":"Connect With Facebook",language:"Language",terms:"Terms of Service",privacy:"Privacy","promotion-title":"Sketch Toy","promotion-body":"Sketch using animated lines and share replays with friends!","sketch-fb":"An animated sketch! Click to replay.","sketch-tweet":"Check out this drawing!","alert-unsaved-statement":"The current drawing will be lost","alert-unsaved-confirmation":"The current drawing will be lost, do you want to continue?"},pt:{"new":"Novo",save:"Salvar",undo:"Apagar",erase:"Desfazer",size:"Tamanho",vibration:"Vibração",color:"Cor",show:"Mostrar",hide:"Esconder",remove:"Remover",share:"Compartilhar",send:"Enviar",tweet:"Tuitar","share-link":"Link","share-fb":"Compartilhar","share-fb-message":"Enviar Mensagem","share-tweet":"Tuitar","share-email":"Enviar Email","share-upload":"Upload de Imagem","share-download":"Download da Imagem","featured-sketches":"Desenhos em destaque",comments:"Comentários","connect-fb":"Conectar com Facebook",language:"Língua",terms:"Termos de Serviço",privacy:"Privacidade","promotion-title":"Sketch Toy","promotion-body":"Faça desenhos e compartilhe o replay com amigos","sketch-fb":"Um desenho animado! Clique para assistir o replay.","sketch-tweet":"Olhe esse desenho!","alert-unsaved-statement":"O desenho atual será perdido.","alert-unsaved-confirmation":"O desenho atual será perdido, quer continuar?"},es:{"new":"Nuevo",save:"Guardar",undo:"Deshacer",erase:"Borrar",size:"Tamaño",vibration:"Vibración",color:"Color",show:"Mostrar",hide:"Ocultar",remove:"Eliminar",share:"Compartir",send:"Enviar",tweet:"Tweet","share-link":"Enlace","share-fb":"Compartir","share-fb-message":"Enviar mensajee","share-tweet":"Tweet","share-email":"Email","share-upload":"Subir imagene","share-download":"Descargar Imagene","featured-sketches":"Bocetos destacados",comments:"Comentarios","connect-fb":"Conéctate con Facebook",language:"Idioma",terms:"Términos de Servicio",privacy:"Privacidad","promotion-title":"Sketch Toy","promotion-body":"Dibuja bocetos y compartir repeticiones con amigos","sketch-fb":"Un dibujo animado! Haz clic aquí para reproducir.","sketch-tweet":"Echa un vistazo a este dibujo!","alert-unsaved-statement":"Se perderá el dibujo actual","alert-unsaved-confirmation":"Se perderá el dibujo actual, ¿desea continuar?"},tr:{"new":"Yeni",save:"Kaydet",undo:"Geri Al",erase:"Sil",size:"Boyut",vibration:"Titreşim",color:"Renk",show:"Göster",hide:"Gizle",remove:"Kaldır",share:"Paylaş",send:"Mesaj",tweet:"Tweet At","share-link":"Bağlantı","share-fb":"Paylaş","share-fb-message":"Mesaj Gönder","share-tweet":"Tweet At","share-email":"E-posta","share-upload":"Resim Yükle","share-download":"Resmi İndir","featured-sketches":"Öne çıkan çizimler",comments:"Yorumlar","connect-fb":"Facebook ile Bağlan",language:"Dil",terms:"Hizmet Şartları",privacy:"Gizlilik","promotion-title":"Sketch Toy","promotion-body":"Çizim yapın ve arkadaşlarınızla paylaşın.","sketch-fb":"Hareketli bir çizim! İzlemek için tıklayın.","sketch-tweet":"Şu çizime bakın!","alert-unsaved-statement":"Geçerli çizim kaybolacak.","alert-unsaved-confirmation":"Geçerli çizim kaybolacak. Devam etmek istiyor musunuz?"}},h=f,i=$(".select-language");return{initialize:a,string:function(a){var b=g[h]||b[f],c=b[a];return"undefined"==typeof c&&(c=g[f][a]),"undefined"==typeof c&&(c=""),c},change:function(a){g[a]&&(sketch.Main.trackEvent("Locale","Change",a),h=a,b(),window.location.reload())}}}(),sketch.Social=function(){function a(){e||sketch.Util.isTouchDevice()||(e=!0,b(),c())}function b(){$.ajax({url:"//platform.twitter.com/widgets.js",type:"GET",dataType:"script"})}function c(){}function d(a,b,c,d){var e="https://twitter.com/intent/tweet?url="+encodeURIComponent(a)+"&text="+encodeURIComponent(b)+"&related=sketchtoy";d&&(e+="&via="+d),c&&(e+="&hashtags="+c);var f=550,g=420,h=Math.round(screen.width/2-f/2);y=0,screen.height>g&&(y=Math.round(screen.height/2-g/2)),window.open(e,"twitter_share","height="+g+", width="+f+", left="+h+", top="+y+", toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no")}var e=!1;return{initialize:a,tweet:d}}(),sketch.Related=function(){function a(){f=$(".related"),g=$(".related-gallery"),h=$(".related-comments"),i||sketch.Util.isTouchDevice()||(i=!0,"/"!==window.location.pathname?(d(),b()):b("horizontal"))}function b(a){g.length&&(g.addClass(a),$.ajax({url:"http://sketch-toy.tumblr.com/api/read/json?callback=?",dataType:"script",context:this,success:function(){"object"==typeof tumblr_api_read&&tumblr_api_read.posts.length&&c(tumblr_api_read.posts)}}))}function c(a){if(a&&g.length){$("

").text(sketch.Locale.string("featured-sketches")+":").appendTo(g);for(var b="/"===window.location.pathname?6:4,c=0,d=Math.min(a.length,b);d>c;c++){var e=a[c];$(['','',""].join("")).appendTo(g)}}}function d(){h.length&&(h.empty().append("

"+sketch.Locale.string("comments")+":

",'
'),h.addClass("visible"),FB.XFBML.parse(h.get(0)))}function e(){i&&"/"!==window.location.pathname&&d()}var f,g,h,i=!1;return{initialize:a,update:e}}(),sketch.Dropdown={create:function(a){function b(){n.addClass("open"),o.addClass("open"),$(document).on("mousedown",m),d()}function c(){n.removeClass("open"),o.removeClass("open"),$(document).off("mousedown",m)}function d(){var a=n.outerWidth(),b=o.outerWidth();o.css("margin-left",-(b-a)/2)}function e(a){q=a,n.find(".value").text(a),o.find("button").removeClass("selected"),o.find('button[data-value="'+q+'"]').addClass("selected")}function f(){return q}function g(a){a.preventDefault()}function h(a){a.preventDefault(),n.hasClass("open")?c():b()}function i(a){a.preventDefault()}function j(a){a.preventDefault();var b=$(a.currentTarget);b.length&&(e(b.attr("data-value")),c(),"function"==typeof this.onChanged&&this.onChanged(q))}function k(){o.hasClass("auto-width")&&o.width(n.outerWidth()-1),b()}function l(){c()}function m(b){for(var d=b.target,e=!0;d&&d.getAttribute;){if(d&&d==a.get(0)){e=!1;break}d=d.parentNode}e&&c()}var n=a.find(".dropdown-title"),o=a.find(".dropdown-list"),p=o.find(".dropdown-item"),q=null;a.on("mouseover",$.proxy(k,this)),a.on("mouseout",$.proxy(l,this)),n.on("click",$.proxy(g,this)),n.on("touchstart",$.proxy(h,this)),n.on("mousedown",$.proxy(i,this)),p.on("click touchstart",$.proxy(j,this)),this.setValue=e,this.getValue=f}},sketch.Facebook=function(){function a(){r=$(".facebook-send"),s=$(".facebook-share"),$facebookInvite=$(".facebook-invite"),t=$(".facebook-connect"),$facebookContents=$(".facebook-connect .contents"),r.on("click",l),s.on("click",k),$facebookInvite.on("click",m),t.on("click",n),FB.getLoginStatus(function(a){a&&"connected"===a.status?d(null,!0):f(!1)})}function b(a,b){a=a||function(){},FB.getLoginStatus(function(c){"connected"!==c.status||b?FB.login(function(b){b.authResponse?a.call(null,!0):a.call(null,!1)},b):a.call(null,!0)})}function c(a,b){b=b||function(){},FB.api("/me/permissions",function(c){if(c&&c.data&&c.data.length)for(var d=0;d').text("Hello "+a.first_name+"!").appendTo($facebookContents);a.picture&&a.picture.data&&$('').attr({src:a.picture.data.url,height:26}).prependTo(b);var c=$('