AI_BTC / assets /js /jquery-vj-accordion-steps.js
Dooratre's picture
Upload 147 files
b0759c6 verified
raw
history blame
5.7 kB
/*
* Vijay Naidu M,
* Cyberzo Solutions
*/
(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;
// if(typeof this !='object'){ return; }
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);//Hide all sections
}
else{
$.fn.vjaccordionsteps._display_step(elem, 1, true);
}
$(elem).find('li h3').click(function(e) {//Onclick for headings
var selected_elem = $(this).parent();
var cur_element = selected_elem.index()-0;//As it starts with 0
var cur_element = cur_element+1;
if($(selected_elem).data('vjopt_display') == 1){//Current step is eligible to get the step
$.fn.vjaccordionsteps._display_step(elem, cur_element);
}
});
$(elem).find('.vjsteps_nxt').click(function(e) {//Onclick for Next buttons
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;//Current step
var cur_element_nxt_next = cur_element_nxt+1;//Next step
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){//Eligible to go for next step
$.fn.vjaccordionsteps._display_step(elem, cur_element_nxt_next);
}
});
$(elem).find('.vjsteps_prev').click(function(e) {//Onclick for Previous buttons
var previous_li = $(this).closest('li');
var cur_element_nxt = previous_li.index()-0;
var cur_element_nxt = cur_element_nxt+1;//Current step
var cur_element_nxt_next = cur_element_nxt+1;//Next step
var cur_element_nxt_prev = cur_element_nxt-1;//Previous step
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){//Eligible to go for previous step
$.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){//Requested step is already active
return;
}
if(is_page_load == false){
var is_i_change_step = fn_options.vjacc_step_change_function(arr_params);
}
else{//This triggers on page load
var is_i_change_step = true;
}
if(disp_step!='' && is_i_change_step == true){
$(elem).find('li h3').removeClass('vjopt_activeh3');//Remove active class
$(elem).find('li').removeClass('vjopt_activeli');//Remove active class
$.fn.vjaccordionsteps._hide_all_steps(elem);//Hide all sections
$(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');//Add active class
$(this).find('h3').addClass('vjopt_activeh3');//Add active class
$(this).find('section').show();//Show requested step
fn_options.vjacc_after_step_change_function(arr_params);
return;
}
});
}
};
$.fn.vjaccordionsteps.reset_steps = function(){
$(in_element).find('li').data('vjopt_display', 0);//reset all steps
$.fn.vjaccordionsteps._display_step(in_element, 1, true);//Show first step
};
$.fn.vjaccordionsteps._hide_all_steps = function(elem){
$(elem).find('li section').hide();//Hide all sections
};
$.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);