/**
 * @version		1.0.6 - 11 april 2011
 * 
 * @copyright	1.0.6,	11 april 2011,		Jan Niemantsverdriet,	Ook mogelijkheid om open tab te sluiten als er op wordt geklikt
 * @copyright	1.0.5,	28 april 2010,		Jan Niemantsverdriet,	Tabsveld in een CpHTMLTabsCombi wordt niet meer verstoord
 * @copyright	1.0.4,	27 april 2010,		Jan Niemantsverdriet,	Ondersteuning voor CpHTMLTabsCombi
 * @copyright	1.0.3,	18 augustus 2008,	Jan Niemantsverdriet,	Update alleen eigen tabs
 * @copyright	1.0.2,	13 augustus 2008,	Jan Niemantsverdriet,	Mogelijkheid om een extra functie uit te voeren voor bij wijzigen tab
 * @copyright	1.0.1,	11 augustus 2008,	Jan Niemantsverdriet,	Tabbladen varanderen bij selectie nu ook van css klasse
 * @copyright	1.0.0,	5 maart 2008,		Jan Niemantsverdriet,	Gemaakt
 */

/**
 * Maakt het opgegeven tabblad zichtbaar'
 * 
 * @param string a_sId					het id van het geheel
 * @param string a_sTabId				het id van het te openen tabblad
 * @param function|void a_hFunction		de functie die moet worden aangeroepen nadat er van tabblad is gewisseld
 */
function CpHTMLTabs_openTab(a_sId, a_sTabId, a_hFunction, a_sGroup, a_bCloseOnClick) {
	var sGroup = (bIsString(a_sGroup) ? a_sGroup : '');
	var bCloseOnClick = (bIsBoolean(a_bCloseOnClick) ? a_bCloseOnClick : false);
	var sGroupIdPart = (sGroup == '' ? '' :  sGroup + ':.:');
	var oSystem = document.getElementById(a_sId);
	var aDivs = oSystem.getElementsByTagName('div');
	for (var iCounter = 0; iCounter < aDivs.length; iCounter++) {
		if (aDivs[iCounter].id.substring(0, a_sId.length + 1) == a_sId + '_') {
			if ((aDivs[iCounter].className == 'CpHTMLTabs_mainSelected') || (aDivs[iCounter].className == 'CpHTMLTabs_main')) {
				if (aDivs[iCounter].id == (a_sId + '_' + sGroupIdPart + a_sTabId + '_main')) {
					if (jQuery(aDivs[iCounter]).hasClass('CpHTMLTabs_mainSelected') && bCloseOnClick) aDivs[iCounter].className = 'CpHTMLTabs_main'; 
					else aDivs[iCounter].className = 'CpHTMLTabs_mainSelected';
				} else {
					aDivs[iCounter].className = 'CpHTMLTabs_main';
				}
			}
		}
	}
	var aHeaders = jQuery("#" + a_sId + " th" + (sGroup == '' ? '' : '.CpHTMLTabsCombi_group_' + sGroup));
	var sCurrentTab = '';
	for (var iCounter = 0; iCounter < aHeaders.length; iCounter++) {
		if (aHeaders[iCounter].id.substring(0, a_sId.length + 1) == a_sId + '_') {
			if (jQuery(aHeaders[iCounter]).is(".CpHTMLTabs_browserButton") || jQuery(aHeaders[iCounter]).is(".CpHTMLTabs_browserButtonSelected")) {
				if (jQuery(aHeaders[iCounter]).is(".CpHTMLTabs_browserButtonSelected")) {
					sCurrentTab = aHeaders[iCounter].id;
					sCurrentTab = sCurrentTab.substring((a_sId.length + 1));
					sCurrentTab = sCurrentTab.substring(0, sCurrentTab.length - "_button".length);
				}
				if (aHeaders[iCounter].id == a_sId + '_' + sGroupIdPart + a_sTabId + '_button' && !(jQuery(aHeaders[iCounter]).hasClass('CpHTMLTabs_browserButtonSelected') && bCloseOnClick)) {
					jQuery(aHeaders[iCounter]).removeClass("CpHTMLTabs_browserButton");
					jQuery(aHeaders[iCounter]).addClass("CpHTMLTabs_browserButtonSelected");
				} else {
					jQuery(aHeaders[iCounter]).addClass("CpHTMLTabs_browserButton");
					jQuery(aHeaders[iCounter]).removeClass("CpHTMLTabs_browserButtonSelected");
				}
			}
		}
	}
	if (bIsFunction(a_hFunction) && a_hFunction !== "") a_hFunction(a_sId, sCurrentTab, a_sTabId);
}

/**
 * Selecteerd de juiste content op basis van de huidige selectie
 * 
 * @param a_sId					het id van de gehele building block
 * @param sCurrentTab			niet relevant
 * @param a_sTabId				het geselecteerde tabblad
 * @since 1.0.4 - 27 april 2010
 * @author Jan Niemantsverdriet
 */
function CpHTMLTabsCombi(a_sId, sCurrentTab, a_sTabId) {
	var aHeaders = jQuery("#" + a_sId + " th.CpHTMLTabs_browserButtonSelected");
	var aGroups = [];
	for (var iCounter = 0; iCounter < aHeaders.length; iCounter++) {
		var aClasses = aHeaders[iCounter].className.split(' ');
		var sCurrentTab = aHeaders[iCounter].id;
		sCurrentTab = sCurrentTab.substring((a_sId.length + 1));
		sCurrentTab = sCurrentTab.substring(0, sCurrentTab.length - "_button".length);
		for (var iCounter2 = 0; iCounter2 < aClasses.length; iCounter2++) {
			var sClass = aClasses[iCounter2] + "";
			if (sClass.substr(0, 22) == "CpHTMLTabsCombi_group_") {
				var aCurrentTab = sCurrentTab.split(":.:");
				var sAdd = "CpHTMLTabsCombi_" + sClass.substr(22) + "_" + aCurrentTab[1];
				if (jQuery.inArray(sAdd,aGroups) == -1) aGroups.push(sAdd);
			}
		}
	}
	jQuery("#" + a_sId + " > div.CpHTMLTabs_mainSelected").removeClass("CpHTMLTabs_mainSelected").addClass("CpHTMLTabs_main");
	var sSelection = "#" + a_sId + " > div." + aGroups.join(".") + ":first";
	jQuery(sSelection).removeClass("CpHTMLTabs_main");
	jQuery(sSelection).addClass("CpHTMLTabs_mainSelected");
}

