//-----------------------------------------------------------------------------------------------------//
// Show Faq Flag Implementation
// Implemtation http://brainspark.com/faq/?f=YOURFLAG <div class="YOURFLAG" />
//-----------------------------------------------------------------------------------------------------//
$(document).ready(function faqShowFlag() {
/* Initialize
-------------------------------------------*/
/**
 * @method init
 **/
this.init = function init(flag) {
var span = $('dl.accordionize dt span');
//-------------------------------//
// 1. Validate
if(span.length == 0)
{
return;
}

//-------------------------------//
// 2. Get the flag value
this.name = this.getUrlParam(flag);

//-------------------------------//
// 3. Look in the faq for nodes 
//  with this class and trigger 
//  the click
span.each(this.triggerFlag);
};

/* Private Methods
-------------------------------------------*/
/**
 * @method triggerFlag
 **/
this.triggerFlag = function triggerFlag() {
el = $(this);
if(el.hasClass(_this.name))
{
el.trigger('click');
}
};

/**
 * @method getUrlParam
 **/
this.getUrlParam = function getUrlParam( name ) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
{
return null;
}
else
{
return results[1];
}
};

/* Call the initializer
-------------------------------------------*/
var _this = this;
this.init('f');
});

//-----------------------------------------------------------------------------------------------------//
// Show Faq Implementation
//-----------------------------------------------------------------------------------------------------//
$(document).ready(function showFaq(){
/* Initialize
-------------------------------------------*/
/**
 * @method init
 **/
this.init = function init() {
var detailNode = $('div.accordionize a ~ p, dl.accordionize dd');
var linkNode  = $('div.accordionize a.faq');
var spanNode = $('dl.accordionize dt span');

if(detailNode.length == 0)
{
return;
}

detailNode.hide();
linkNode.click(this.linkToggle);
spanNode.click(this.spanToggle);
};

/* Methods
-------------------------------------------*/
/**
 * @method linkToggle
 **/
this.linkToggle = function linkToggle() {
if($(this).next().hasClass('selected')){
$(this).removeClass('selected').next().hide().removeClass('selected');
}
else {
$(this).addClass('selected').next().show().addClass('selected');
}
};

/**
 * @method spanToggle
 **/
this.spanToggle = function spanToggle() {
if($(this).parent('dt').next('dd').hasClass('selected')){
$(this).parent('dt').removeClass('selected').next('dd').hide().removeClass('selected');
}
else{
$(this).parent('dt').addClass('selected').next('dd').show().addClass('selected');
}
}

/* Call the initializer
-------------------------------------------*/
var _this = this;
this.init();
});
