/* -------------------------------------------------------------------- IMGCrave js http://www.chevereto.com/ @version 1.1 @author Rodolfo Berríos --------------------------------------------------------------------- */ // Shake fx jQuery.fn.shake = function(){ this.each(function(init){ var jqNode = $(this); jqNode.css({position: 'relative'}); for (var x=1; x<=2; x++){ jqNode.animate({ left: -10 },0) .animate({ left: 0 },30) .animate({ left: 10 },30) .animate({ left: 0 },30); } }); return this; } $(function (){ /*** vars ***/ var uploadID = "#upload"; var active_class = "active"; var error_box = "#error-box"; var error_boxID = error_box.substring(1); // Don't edit /*** upload selector ***/ var select_remote = "#select-remote"; var select_local = "#select-local"; var upload_local = "#upload-local"; var upload_remote = "#upload-remote"; /*** tools ***/ var preferences = "#preferences"; var preferences_box = "#preferences-box"; var upload_button = "#upload-button"; var pref_shorturl = "#pref-shorturl"; /*** inputs ***/ var url_input = "#url"; var resize_input = "#resize"; var preferences_box_input = preferences_box + " input"; /*** boxes ***/ var upload_remote = "#upload-remote"; var resizing = "#resizing"; /*** resize switch ***/ var resizing_switch = "#resizing-switch"; var resizing_box = "#resizing-box"; /*** uploadify ***/ var UploadifyID = "#uploadify"; var fileQueue = "#fileQueue"; /*** messages ***/ var cancel_upload_msg = "Do you really want to cancel the process?"; var empty_form_msg = "You must complete part of the form in order to continue"; var local_error_msg = "No image has been uploaded"; /*** txt ***/ var just_uploaded_txt = "Just uploaded"; var images_txt = "images"; /*** misc ***/ var cancel_upload = "#cancel-upload"; var empty_upload_class = "empty-upload"; var error_class = "error"; var show_upload_class = "show_upload"; var hide_upload_class = "hide_upload"; var uploading_class = "uploading"; /*** uploaded_list ***/ var content = "#viewContent"; var uploaded_list = "#uploaded_list"; var viewing = "#viewing"; var imgWeight = "#imgWeight"; var imgDimentions = "#imgDimentions" var view_full_image = "#view-full-image"; var img_full_image = "img#full_image"; var socialize = "#socialize"; var short_url = "#short-url"; var loading_changeID = "loading"; /*** multicodes ***/ var multi_codes = "multi-codes"; /*** sticky footer ***/ var footer_height = $('#in-foot').outerHeight(true)+1; //$("#wrap").css('margin-bottom', -footer_height); //$("#wrap").append('
'); $("#push").css('height', footer_height); $(footer_height).css('height', footer_height); /*** reset form */ $(uploadID).each(function() { this.reset(); }); /*** popups ***/ $("a[rel='pop-up']").click(function () { var pop_w = '650'; var pop_h = '350'; var pop_left = (screen.width/2)-(pop_w/2); var pop_top = (screen.height/2)-(pop_h/2); var settings = "height="+pop_h+", width="+pop_w+", scrollTo, resizable=1, scrollbars=1, location=0, top="+pop_top+", left="+pop_left; window.open(this.href, 'Popup', settings); return false; }); /*** error show fx ***/ // This prepend + slide the error boxes. function errorShow(errorMsg, errorClass) { $(uploadID).prepend(''); $(error_box).slideDown(); } /*** reactivate upload fx ***/ // When the upload has failed, this re-activates the form. function reactivateUpload() { $(upload_button).html('Upload').removeClass(uploading_class); $(cancel_upload).css('display', 'none'); $(preferences_box_input + "," + resize_input + "," + url_input).removeAttr('disabled'); } /*** error click fx ***/ function errorClick() { $(error_box).slideUp(250, function() { $(error_box).remove() }); } /*** onlive do the fx... ***/ $(error_box).live('click', function() { errorClick(); }); /*** focus source ***/ // I know that is fast/easy/pretty to use hide()/show() or fade but that will break the Flash queue. // And it's just a weird flash issue. function focusSource(toActive, toRest, toHide, toShow) { $(toActive).addClass(active_class); $(toRest).removeClass(active_class); $(toHide).addClass(hide_upload_class).removeClass(show_upload_class); $(toShow).addClass(show_upload_class).removeClass(hide_upload_class); } function focusRemote() { focusSource(select_remote, select_local, upload_local, upload_remote); } function focusLocal() { focusSource(select_local, select_remote, upload_remote, upload_local); } /*** function isuploading ***/ function isUploading() { return $(upload_button).hasClass(uploading_class); } /*** upload selector magic ***/ $(select_remote).click(function () { if($(upload_remote).hasClass(hide_upload_class) && !isUploading()) focusRemote(); }); $(select_local).click(function () { if($(upload_local).hasClass(hide_upload_class) && !isUploading()) focusLocal(); }); /*** preferences ***/ $(preferences).click(function () { if(!isUploading()) { $(preferences_box).slideToggle("normal", "easeOutBounce"); $(this).toggleClass(active_class); } }); /*** pref-shorturl ***/ $(pref_shorturl).removeAttr('checked'); $(pref_shorturl).change(function(){ var checked = $(this).is(':checked') ? '1':'0'; var doShort = '/content/system/js/pref.php?doShort='+checked; $.ajax({url: doShort}); }); /*** resizing ***/ $(resizing_switch+" a").click(function () { if(!isUploading()) { $(resizing_box).slideToggle("normal"); $(this).toggleClass(active_class); } }); /*** validate input fields ***/ $(uploadID).validate({ rules: { url : { required: false, url: true }, resize: { required: false, digits: true, min: 16, max: 1280 } }, messages: { url: false, resize: false } }); /*** upload ***/ $(upload_button).click(function () { // Do something... if($(fileQueue).text()!=='' || $(url_input).val()!=='') { // Remove class error in #url and Focus in if($(fileQueue).text()!=='') { $(url_input).removeClass(error_class) focusLocal(); } else { focusRemote(); } if($(this).hasClass(uploading_class)==false && $(resize_input).hasClass(error_class)==false && $(url_input).hasClass(error_class)==false) { // No errors... Do the upload. errorClick(); $(this).addClass(uploading_class); $(this).html('Uploading'); $(cancel_upload).fadeIn(); $(preferences_box_input + "," + resize_input + "," + url_input).attr('disabled', 'disabled'); // Call the upload... if($(fileQueue).text()!=='') { $(UploadifyID).uploadifyUpload(); } else { $.post("/upload.php", { url: $(url_input).val(), resize: $(resize_input).val()}, function(response) { if (response.error == "true") { errorShow("Error: "+response.errorMsg); reactivateUpload(); } else { // Redirect url upload window.location = "/?v="+response.ImgName; } }, 'json'); } } else { // erros... Shake it. if($(resize_input).hasClass(error_class)) { $(resizing).shake(); } if($(url_input).hasClass(error_class)) { $(upload_remote).shake(); } } } else { // Do something if($(error_box).hasClass(empty_upload_class)) { $(error_box).shake(); } else { // No error box.. Start a new one or just replace text? if($(error_box).text()=='') { errorShow(empty_form_msg, empty_upload_class); } else { $(error_box+" span").html(empty_form_msg); $(error_box).addClass(empty_upload_class); } } } }); /*** cancel upload ***/ $(cancel_upload).click(function () { if(confirm(cancel_upload_msg)) { window.location.reload(true); } }); /*** change functions ***/ function change_html_txt(selector, search, replace) { $(selector).html($(selector).html().replace(search, replace)); } function change_attr(selector, attr, search, replace) { $(selector).attr(attr,$(selector).attr(attr).replace(search, replace)); } /*** uploadify ***/ // Catch the images ImagesUp = ''; $(UploadifyID).uploadify({ 'uploader' : '/content/system/js/uploadify.swf', 'expressInstall' : '/content/system/js/expressInstall.swf', 'fileDataName' : 'ImageUp', 'script' : '/upload.php', 'fileExt' : '*.jpg;*.jpeg;*.png;*.gif;*.bmp', 'fileDesc' : 'Image Files (.JPG, .PNG, .GIF, .BMP)', 'scriptData' : {'sID': '6c4ed0662b9da2e00e0b4e0edd5c0d63'}, 'sizeLimit' : 6291456, // Bytes 'queueID' : 'fileQueue', 'queueSizeLimit' : 10, 'simUploadLimit' : 1, 'auto' : false, 'multi' : true, 'removeCompleted' : false, 'scriptAccess' : 'always', 'buttonText' : 'SELECT FILES', 'onComplete' : function(event, queueID, fileObj, response, data) { eval("var response="+response); if (response.error == "true") { // SERVER SIDE ERROR $(UploadifyID+queueID).addClass("uploadifyError") .find('.byteSize').remove() .find('.status').remove(); $(UploadifyID+queueID+" span.percentage").html(response.errorMsg); return false; } else { // SERVER SIDE OK ImagesUp += response.ImgName; } }, 'onAllComplete' : function(event, data) { if(ImagesUp!=='') { // One or more images uploaded if(data.filesUploaded==1) { window.location = "/?v="+ImagesUp; } else { window.location = "/?uploaded"; } } else { errorShow(local_error_msg) reactivateUpload(); $(UploadifyID).uploadifyClearQueue(); } } }); });