hybrid.gallery.js 9.19 KB
var errors = new Array();

function grabGalleryFeed() {
    var viewport = jQuery('#TzHybridGallery_Viewport');
    viewport.html('Loading gallery...');
    
    jQuery.ajax({
        url:        widget_dir + 'inc/viewer.php'
      , data:       global_settings
      , type:       'post'
      , dataType:   'json'
      , success:    renderGallery
    });
    
}

function renderGallery(data) {
    var viewport = jQuery('#TzHybridGallery_Viewport');
    
    if(data.length < 1) {
        viewport.html("No gallery posts.");
    } else {
        var output = jQuery('<div></div>');
        
        for(i=0; i < data.length; i++) {
            var item = jQuery('<div style="margin-bottom:15px;"></div>');
            item.append('<div><strong>Title:</strong> '+data[i].post_title+'</div>');
            item.append('<div><strong>Description:</strong> '+data[i].post_content+'</div>');
            item.append('<div><strong>Gallery Type:</strong> '+data[i].gallery_type+'</div>');
            item.append('<div><strong>File Name/URL:</strong> '+data[i].filename+'</div>');
            item.append('<div><strong>Link Type:</strong> '+data[i].link_type+'</div>');
            item.append('<div><strong>Added By:</strong> '+data[i].author_name+'</div>');
            item.append('<div><strong>On:</strong> '+data[i].human_date+'</div>');
            
            var thumb = "";
            
            if (data[i].link_type == "linked" && data[i].gallery_type == "image") {
                thumb = data[i].filename;
            } else if (data[i].link_type == "linked" && data[i].gallery_type == "video") {
                thumb = data[i].thumbnail;
            } else {
                thumb = widget_dir + "uploads/" + data[i].filename;
            }
            
            item.append('<div><strong>Thumbnail:</strong><img src="'+thumb+'" width="50" /></div>');
            item.append('<div><strong>Status:</strong> '+data[i].status+'</div>');
            
            output.append(item);
        }
        
        viewport.html(output);
    }
    
}

function pushError(msg) {
    errors.push(msg);
}

function showErrors() {
    var el = jQuery("#TzImageFormErrors");
    var errorContainer = jQuery(".errors",el);
    errorContainer.empty();
    
    for(var i=0; i < errors.length; i++) {
        errorContainer.append("<p>"+errors[i]+"</p>");
    }
    errors.length = 0;
    el.show();
}

function showSuccess(msg) {
    var el = jQuery("#TzImageFormSuccess");
    var responseContainer = jQuery(".response",el);
    responseContainer.empty().html(msg);
    el.show();
    
    setTimeout("hideSuccess()",3000);
}

function hideSuccess() {
    var el = jQuery("#TzImageFormSuccess");
    el.fadeOut();
}

function hideErrors() {
    var el = jQuery("#TzImageFormErrors");
    el.hide();
}

function checkImageForm(formData,jqForm, options) {
    
    
    var formElement = jqForm[0];
    
    if (formElement.title.value == "") { pushError("The title field is required"); }
    if (formElement.description.value == "") { pushError("The description field is required"); }
    if (formElement.uploaded_image_filename.value == "" && formElement.imageLinked.value == "") { pushError("Please link or upload an image."); }
    
    if (errors.length > 0) {
        showErrors();
        return false;
    } else {
        hideErrors();
        return true;
    }
}

function imageFormComplete(resp, statusText, xhr, $form) {
    if(resp.status == "error") {
        errors.length = 0;
        pushError(resp.details);
        showErrors();
    } else {
        showSuccess(resp.details);
    }
    
    jQuery('#uploaded_image_filename').val('');
    jQuery('.image-selected-name').empty();
    
    document.image_form.imageLinked.disabled = false;
    jQuery('#TzHybridGallery_Control').slideUp();
}

function checkVideoForm(formData,jqForm, options) {
    
    var formElement = jqForm[0];
    if (formElement.videoLinked.value == "" && formElement.uploaded_video_filename.value == "") {
        pushError("Please link or upload a video");
    } else {
        if (formElement.uploaded_video_filename.value != "") {
            // it's an uploaded video
            if (formElement.video_title.value=="" || formElement.video_description.value=="") {
                pushError("Please enter a title and description for your video.");
            }
            
        } else {
            // video Linked....
            
        }
    }
    
    if (errors.length > 0) {
        showErrors();
        return false;
    } else {
        hideErrors();
        return true;
    }
    
}

function videoFormComplete(resp, statusText, xhr, $form) {
    if(resp.status == "error") {
        errors.length = 0;
        pushError(resp.details);
        showErrors();
    } else {
        showSuccess(resp.details);
    }
    jQuery('.video-selected-name').empty();
    jQuery('#uploaded_video_filename').val('');
    
    document.video_form.videoLinked.disabled = false;
    jQuery('#TzHybridGallery_Control').slideUp();
}

function showResponse(message) {
    jQuery('#TzHybridGallery_Response').html(message).fadeIn();
}


jQuery(document).ready(function($) {
   
    grabGalleryFeed();
   
    $('.form-cancel').live('click',function() {
        hideErrors();
        jQuery('#TzHybridGallery_Control').slideUp();
    });
    
    
   
    /* ADD NEW SECTION -------------------------------------------------------------- */ 
    $('#TzHybridGallery_Header').delegate('a#TzAddNewBtn','click',function() {
        $('#TzHybridGallery_Control').show();
        var tabs            = [];
        var tabContainers   = [];
        $('.tabs ul li a').each(function() {
            if(this.pathname == window.location.pathname) {
                tabs.push(this);
                tabContainers.push($(this.hash).get(0));
            }
        });
        $(tabs).click(function() {
            $(tabContainers).hide().filter(this.hash).show();
            $(tabs).removeClass('selected');
            $(this).addClass('selected');
            return false;
        }).filter(':first').click();
        
        
        
        $('#image_form').ajaxForm({
            beforeSubmit:   checkImageForm
          , success:        imageFormComplete
          , url:            widget_dir + 'inc/forms.php'
          , data:           { 'form_type' : 'image-form', 'gallery' : global_settings.default_gallery, 'approval' : global_settings.image_approval }
          , type:           'post'
          , dataType:        'json'
          , clearForm:      true
          , resetForm:      true 
        });
        
        
        $('#video_form').ajaxForm({
            beforeSubmit:   checkVideoForm
          , success:        videoFormComplete
          , url:            widget_dir + 'inc/forms.php'
          , data:           { 'form_type' : 'video-form', 'gallery' : global_settings.default_gallery, 'approval' : global_settings.video_approval }
          , type:           'post'
          , dataType:       'json'
          , clearForm:      true
          , resetForm:      true
        });
        
        
        
        
    });
    /* ------------------------------------------------------------------------------ */
    
    $('#imageInput').uploadify({
        'uploader'  : widget_dir + 'assets/uploadify/uploadify.swf'
      , 'script'    : widget_dir + 'assets/uploadify/uploadify.php'
      , 'cancelImg' : widget_dir + 'assets/uploadify/cancel.png'
      , 'auto'      : true
      , 'folder'    : upload_dir
      , 'buttonImg' : widget_dir + 'assets/uploadify/upload_btn.png'
      , 'height'    : 26
      , 'width'     : 76
      , 'sizeLimit' : (2*1000000)
      , 'fileDesc'  : "Images Only!"
      , 'fileExt'   : "*.gif;*.jpg;*.png"
      , onComplete  : function(e,q,fileObj) {
                        $('#uploaded_image_filename').val(fileObj.name);
                        $('.image-selected-name').css('color','#4D4D4D').html("<img src='"+widget_dir+"assets/images/accept.png' align='absmiddle' />&nbsp;"+fileObj.name+" uploaded.");
                        document.image_form.imageLinked.value = "";
                        document.image_form.imageLinked.disabled = true;
                        return true;
                      }
    });
        
    $('#videoInput').uploadify({
        'uploader'  : widget_dir + 'assets/uploadify/uploadify.swf'
      , 'script'    : widget_dir + 'assets/uploadify/uploadify.php'
      , 'cancelImg' : widget_dir + 'assets/uploadify/cancel.png'
      , 'auto'      : true
      , 'folder'    : widget_dir + 'uploads/'
      , 'buttonImg' : widget_dir + 'assets/uploadify/upload_btn.png'
      , 'height'    : 26
      , 'width'     : 76
      , 'sizeLimit' : (20000*1000000)
      , 'fileDesc'  : "Proper Video Formats Only"
      , 'fileExt'   : '*.wmv;*.3gp;*.avi;*.mov;*.mp4;*.mpeg;*.mpg;*.flv;*.mkv;*.gif'
      , onComplete  : function(e,q,fileObj) {
                        $('#uploaded_video_filename').val(fileObj.name);
                        $('.video-selected-name').css('color','#4D4D4D').html("<img src='"+widget_dir+"assets/images/accept.png' align='absmiddle' />&nbsp;"+fileObj.name+" uploaded.");
                        document.video_form.videoLinked.value = "";
                        document.video_form.videoLinked.disabled = true;
                        return true;
                      }
    });
    
});