var Architect_Contractor_Whizzie = (function($){ var t; var current_step = ''; var step_pointer = ''; // callbacks from form button clicks. var callbacks = { architect_contractor_do_next_step: function( btn ) { architect_contractor_do_next_step( btn ); }, architect_contractor_install_widgets: function( btn ) { var widgets = new architect_contractor_WidgetManager(); widgets.init( btn ); }, architect_contractor_install_content: function(btn){ var content = new architect_contractor_ContentManager(); content.init( btn ); } }; function architect_contractor_window_loaded() { var maxHeight = 0; $( '.whizzie-menu li.step' ).each( function( index ) { $(this).attr( 'data-height', $(this).innerHeight() ); if( $(this).innerHeight() > maxHeight ) { maxHeight = $(this).innerHeight(); } }); $( '.whizzie-menu li .detail' ).each( function( index ) { $(this).attr( 'data-height', $(this).innerHeight() ); $(this).addClass( 'scale-down' ); }); $( '.whizzie-menu li.step' ).css( 'height', '100%' ); $( '.whizzie-menu li.step:first-child' ).addClass( 'active-step' ); $( '.whizzie-nav li:first-child' ).addClass( 'active-step' ); $( '.whizzie-wrap' ).addClass( 'loaded' ); // init button clicks: $('.do-it').on( 'click', function(e) { e.preventDefault(); step_pointer = $(this).data('step'); current_step = $('.step-' + $(this).data('step')); $('.whizzie-wrap').addClass( 'spinning' ); if($(this).data('callback') && typeof callbacks[$(this).data('callback')] != 'undefined'){ // we have to process a callback before continue with form submission callbacks[$(this).data('callback')](this); return false; } else { architect_contractor_loading_content(); return true; } }); $('.button-upload').on( 'click', function(e) { e.preventDefault(); renderMediaUploader(); }); $('.theme-presets a').on( 'click', function(e) { e.preventDefault(); var $ul = $(this).parents('ul').first(); $ul.find('.current').removeClass('current'); var $li = $(this).parents('li').first(); $li.addClass('current'); var newcolor = $(this).data('style'); $('#new_style').val(newcolor); return false; }); } function architect_contractor_loading_content(){} function architect_contractor_do_next_step( btn ) { current_step.removeClass( 'active-step' ); $( '.nav-step-' + step_pointer ).removeClass( 'active-step' ); current_step.addClass( 'done-step' ); $( '.nav-step-' + step_pointer ).addClass( 'done-step' ); current_step.fadeOut( 500, function() { current_step = current_step.next(); step_pointer = current_step.data( 'step' ); current_step.fadeIn(); current_step.addClass( 'active-step' ); $( '.nav-step-' + step_pointer ).addClass( 'active-step' ); $('.whizzie-wrap').removeClass( 'spinning' ); }); } function architect_contractor_WidgetManager() { function architect_contractor_import_widgets(){ jQuery.post( whizzie_params.ajaxurl, { action: 'architect_contractor_setup_widgets', wpnonce: whizzie_params.wpnonce }, complete ); } return { init: function( btn ) { complete = function() { architect_contractor_do_next_step(); } architect_contractor_import_widgets(); } } } function architect_contractor_ContentManager(){ var complete; var items_completed = 0; var current_item = ''; var $current_node; var current_item_hash = ''; function ajax_callback(response) { if(typeof response == 'object' && typeof response.message != 'undefined'){ $current_node.find('span').text(response.message); if(typeof response.url != 'undefined'){ // we have an ajax url action to perform. if(response.hash == current_item_hash){ $current_node.find('span').text("failed"); architect_contractor_find_next(); }else { current_item_hash = response.hash; jQuery.post(response.url, response, ajax_callback).fail(ajax_callback); // recuurrssionnnnn } }else if(typeof response.done != 'undefined'){ // finished processing this plugin, move onto next architect_contractor_find_next(); }else{ // error processing this plugin architect_contractor_find_next(); } }else{ // error - try again with next plugin $current_node.find('span').text("ajax error"); architect_contractor_find_next(); } } return { init: function(btn){ $('.envato-setup-pages').addClass('installing'); $('.envato-setup-pages').find('input').prop("disabled", true); complete = function(){ architect_contractor_loading_content(); window.location.href=btn.href; }; architect_contractor_find_next(); } } } return { init: function(){ t = this; $(architect_contractor_window_loaded); }, callback: function(func){ console.log(func); console.log(this); } } })(jQuery); Architect_Contractor_Whizzie.init();