|
|
|
|
|
|
|
|
|
(function($) { |
|
var fn_options = {}; |
|
var in_element = ''; |
|
var ttl_length_steps = ''; |
|
$.fn.vjaccordionsteps = function(options) { |
|
in_element = this; |
|
ttl_length_steps = in_element.children().length; |
|
|
|
fn_options = (typeof options !='undefined')?options:{}; |
|
fn_options = $.extend({}, $.fn.vjaccordionsteps.default_options, (typeof options !='undefined' ? options : {})); |
|
|
|
if(fn_options.vjacc_type == 'steps'){ |
|
$.fn.vjaccordionsteps._steps(this); |
|
} |
|
}; |
|
|
|
$.fn.vjaccordionsteps._steps = function(elem){ |
|
if(fn_options.vjacc_hide_all_steps == true){ |
|
$.fn.vjaccordionsteps._hide_all_steps(elem); |
|
} |
|
else{ |
|
$.fn.vjaccordionsteps._display_step(elem, 1, true); |
|
} |
|
|
|
$(elem).find('li h3').click(function(e) { |
|
var selected_elem = $(this).parent(); |
|
var cur_element = selected_elem.index()-0; |
|
var cur_element = cur_element+1; |
|
if($(selected_elem).data('vjopt_display') == 1){ |
|
$.fn.vjaccordionsteps._display_step(elem, cur_element); |
|
} |
|
}); |
|
|
|
$(elem).find('.vjsteps_nxt').click(function(e) { |
|
var cur_element_nxt_ele = $(this).closest('li'); |
|
var cur_element_nxt = cur_element_nxt_ele.index()-0; |
|
var cur_element_nxt = cur_element_nxt+1; |
|
var cur_element_nxt_next = cur_element_nxt+1; |
|
var is_valid_next_step = false; |
|
if(cur_element_nxt_next<=ttl_length_steps){ |
|
is_valid_next_step = true; |
|
} |
|
var arr_params = { |
|
'in_element': in_element, |
|
'previous_li': cur_element_nxt_ele, |
|
'current_step': cur_element_nxt, |
|
'next_step': cur_element_nxt_next, |
|
'is_valid_next_step': is_valid_next_step, |
|
'total_steps': ttl_length_steps |
|
}; |
|
var is_go_nextstep = fn_options.vjacc_next_step_function(arr_params); |
|
if($(cur_element_nxt_ele).data('vjopt_display') == 1 && is_valid_next_step == true && is_go_nextstep == true){ |
|
$.fn.vjaccordionsteps._display_step(elem, cur_element_nxt_next); |
|
} |
|
}); |
|
|
|
$(elem).find('.vjsteps_prev').click(function(e) { |
|
var previous_li = $(this).closest('li'); |
|
var cur_element_nxt = previous_li.index()-0; |
|
var cur_element_nxt = cur_element_nxt+1; |
|
var cur_element_nxt_next = cur_element_nxt+1; |
|
var cur_element_nxt_prev = cur_element_nxt-1; |
|
var is_valid_prev_step = false; |
|
if(cur_element_nxt_prev>=1){ |
|
is_valid_prev_step = true; |
|
} |
|
else{ |
|
cur_element_nxt_prev = 0; |
|
} |
|
var arr_params = { |
|
'in_element': in_element, |
|
'previous_li': previous_li, |
|
'current_step': cur_element_nxt, |
|
'next_step': cur_element_nxt_next, |
|
'prev_step': cur_element_nxt_prev, |
|
'is_valid_prev_step': is_valid_prev_step, |
|
'total_steps': ttl_length_steps |
|
}; |
|
var is_go_prevstep = fn_options.vjacc_prev_step_function(arr_params); |
|
|
|
if($(previous_li).data('vjopt_display') == 1 && is_valid_prev_step == true && is_go_prevstep == true){ |
|
$.fn.vjaccordionsteps._display_step(elem, cur_element_nxt_prev); |
|
} |
|
|
|
}); |
|
|
|
}; |
|
|
|
$.fn.vjaccordionsteps.display_step = function(disp_step){ |
|
$.fn.vjaccordionsteps._display_step(in_element, disp_step); |
|
} |
|
|
|
$.fn.vjaccordionsteps._display_step = function(elem, disp_step, is_page_load){ |
|
if(typeof is_page_load == 'undefined'){ is_page_load = false; } |
|
var disp_step = (typeof disp_step!='undefined')?(disp_step -0):''; |
|
var th_current_step = $(in_element).find('.vjopt_activeli').data('vjstepno') -0; |
|
if(th_current_step<1){ |
|
th_current_step = 1; |
|
} |
|
var arr_params = { |
|
'current_step': th_current_step, |
|
'new_step': disp_step, |
|
'total_steps': ttl_length_steps |
|
}; |
|
if(th_current_step == disp_step && is_page_load == false){ |
|
return; |
|
} |
|
if(is_page_load == false){ |
|
var is_i_change_step = fn_options.vjacc_step_change_function(arr_params); |
|
} |
|
else{ |
|
var is_i_change_step = true; |
|
} |
|
if(disp_step!='' && is_i_change_step == true){ |
|
$(elem).find('li h3').removeClass('vjopt_activeh3'); |
|
$(elem).find('li').removeClass('vjopt_activeli'); |
|
$.fn.vjaccordionsteps._hide_all_steps(elem); |
|
|
|
$(elem).find('li').each(function(){ |
|
var vjstepno = $(this).data('vjstepno') -0; |
|
if(vjstepno>0 && disp_step == vjstepno){ |
|
$(this).data('vjopt_display', 1); |
|
$(this).addClass('vjopt_activeli'); |
|
$(this).find('h3').addClass('vjopt_activeh3'); |
|
$(this).find('section').show(); |
|
fn_options.vjacc_after_step_change_function(arr_params); |
|
return; |
|
} |
|
}); |
|
} |
|
}; |
|
|
|
$.fn.vjaccordionsteps.reset_steps = function(){ |
|
$(in_element).find('li').data('vjopt_display', 0); |
|
$.fn.vjaccordionsteps._display_step(in_element, 1, true); |
|
}; |
|
|
|
$.fn.vjaccordionsteps._hide_all_steps = function(elem){ |
|
$(elem).find('li section').hide(); |
|
}; |
|
|
|
$.fn.vjaccordionsteps.vjacc_next_step = function(disp_step){ |
|
$.fn.vjaccordionsteps._display_step(in_element, disp_step); |
|
}; |
|
|
|
$.fn.vjaccordionsteps.default_options = { |
|
'vjacc_type': 'steps', |
|
'vjacc_hide_all_steps': false, |
|
'vjacc_next_step_function': function(){ return true; }, |
|
'vjacc_prev_step_function': function(){ return true; }, |
|
'vjacc_after_step_change_function': function(){ return true; }, |
|
'vjacc_step_change_function': function(){ return true; } |
|
}; |
|
})(jQuery); |