
var subcat_id = "";
var subcat_desc = "";
var subcat_enab = "";

/*subcategoriesDisabled => show selected subcategory*/
var subcategoriesDisabled = "";
var subcategoriesDisabled0 = "";
var subcategoriesDisabled1 = "";
var subcategoriesDisabled2 = "";

/*count => accountant*/
var count = 0;

function getAllSubcategories() {

	var desc_nav_section_1 = document.getElementById("desc_nav_section_1").value;
	callBackGetSubcategory(arrSubcategory0, "nav_section_1", desc_nav_section_1, false);
	getSubcategories();
}

function getSubcategories() {

	var desc_nav_section_2 = document.getElementById("desc_nav_section_2").value;
	var desc_nav_section_3 = document.getElementById("desc_nav_section_3").value;
	
	callBackGetSubcategory(arrSubcategory1, "nav_section_2", desc_nav_section_2, false);
	callBackGetSubcategory(arrSubcategory2, "nav_section_3", desc_nav_section_3, false);
}

function getAllSubcategoriesAndVerifyLinkAccess(subcategoriesSelected, enableLink) {

	var desc_nav_section_1 = document.getElementById("desc_nav_section_1").value;
	var desc_nav_section_2 = document.getElementById("desc_nav_section_2").value;
	var desc_nav_section_3 = document.getElementById("desc_nav_section_3").value;

	getWithLinkEnabled(1,"nav_section_1", desc_nav_section_1, subcategoriesSelected, false);
	getWithLinkEnabled(2,"nav_section_2", desc_nav_section_2, subcategoriesSelected, false);
	getWithLinkEnabled(3,"nav_section_3", desc_nav_section_3, subcategoriesSelected, false);
}

function getEnableAllLinkSubCategories(subcategoriesSelected, enableLink) {

	var desc_nav_section_1 = document.getElementById("desc_nav_section_1").value;
	var desc_nav_section_2 = document.getElementById("desc_nav_section_2").value;
	var desc_nav_section_3 = document.getElementById("desc_nav_section_3").value;

	getWithLinkEnabled(1,"nav_section_1", desc_nav_section_1, subcategoriesSelected, true);
	getWithLinkEnabled(2,"nav_section_2", desc_nav_section_2, subcategoriesSelected, true);
	getWithLinkEnabled(3,"nav_section_3", desc_nav_section_3, subcategoriesSelected, true);
}

function getSubCategory(categoryId, nav_sec, description, ignoreEnabled){
	
	//callbackProxy allows us to pass parameters extra to call
	var callbackProxy = function(data) {
						  	callBackGetSubcategory(data, nav_sec, description, ignoreEnabled);
						};
	
	JSubCategory.getSubcategoryByCategoryId(categoryId, { callback:callbackProxy } );	
}

//Verify if the subcaterogy's link is enabled or not
function getWithLinkEnabled(categoryId, nav_sec, description, subcategoriesSelected, ignoreEnabled) {
	
	switch (categoryId) {
		case 1:
			var desc_nav_section_1 = document.getElementById("desc_nav_section_1").value;
			callBackGetSubcategory(arrSubcategory0, "nav_section_1", desc_nav_section_1, false, subcategoriesSelected);
			break;
		case 2:
			var desc_nav_section_2 = document.getElementById("desc_nav_section_2").value;
			callBackGetSubcategory(arrSubcategory1, "nav_section_2", desc_nav_section_2, false, subcategoriesSelected);
			break;
		case 3:
			var desc_nav_section_3 = document.getElementById("desc_nav_section_3").value;
			callBackGetSubcategory(arrSubcategory2, "nav_section_3", desc_nav_section_3, false, subcategoriesSelected);
			break;
	}
}

function callBackGetSubcategory(data, nav_sec, description, ignoreEnabled, subcategoriesSelected) {

	//Callback function
	
	if ((data != null) && (typeof data == 'object')) {

		subcat_id = new Array (data.length);
		subcat_desc = new Array (data.length);
		subcat_enab = new  Array (data.length);

		//Populate the arrays' subcategories
		for (i=0; i < data.length; i++) {
		
			subcat_id[i] = data[i].id;
			subcat_desc[i] = data[i].description.replace("'","&rsquo;");
			subcat_enab[i] = data[i].enabled;
			
		}
		
		//Build the html with the subcategories
		listSubcategory(nav_sec, description, ignoreEnabled, subcategoriesSelected);	
		
	}
	else {
		alert('Error loading page');
	}
}

function listSubcategory(nav_sec, description, ignoreEnabled, subcategoriesSelected) {
	
	var elementId = document.getElementById(nav_sec+"_cat");
	var elementId2 = document.getElementById(nav_sec+"_box");
	
	var sec1value = document.getElementById("nav_section_1_sel_value").value;
	var sec2value = document.getElementById("nav_section_2_sel_value").value;
	var sec3value = document.getElementById("nav_section_3_sel_value").value;

	if (count == 3) {
		count = 0;
	}
	if (elementId != null) {
	
		elementId.innerHTML = "";
		
		if (!(isRoutine && subcat_id.length == 5)) {
		
			for(i=0; i<subcat_id.length; i++){
		
				var enclose_begin = "<li class='prod_cat'>";
				var enclose_end = "</li>";
				var content = "";
				
				// "Sun Protection is not a link because there are no products related"
				// The first filter will always have links if the other ones weren't selected
				
				if (subcat_id.length == 5) {
					if ( subcategoriesSelected == ",1," || subcategoriesSelected == ",2," || subcategoriesSelected == ",3," || subcategoriesSelected == ",10," || subcategoriesSelected == ",11," ) {
						subcategoriesDisabled0 = subcategoriesSelected;
					}
				} else if (subcat_id.length == 4) {
					if ( subcategoriesSelected == ",4," || subcategoriesSelected == ",6," || subcategoriesSelected == ",12," || subcategoriesSelected == ",13," ) {
						subcategoriesDisabled1 = subcategoriesSelected;
					}
				} else {
					if ( subcategoriesSelected == ",7," || subcategoriesSelected == ",8," || subcategoriesSelected == ",9," ) {
						subcategoriesDisabled2 = subcategoriesSelected;
					}
				}
				subcategoriesDisabled = (subcategoriesDisabled0 + subcategoriesDisabled1 + subcategoriesDisabled2);

				if (String(subcategoriesSelected) == "undefined") {
					sub = "";
					subcategoriesDisabled = "";
					subcategoriesDisabled0 = "";
					subcategoriesDisabled1 = "";
					subcategoriesDisabled2 = "";
				}
				
				if ((subcat_id[i] != 11) && (String(sub) == "")) {
					content = "<a href=\"javascript:setNavSection('" + nav_sec + "','" + nav_sec + "_txt','" + nav_sec + "_link','" + subcat_desc[i] + "','" + description + "','" + nav_sec + "_cat','" + subcat_id[i] + "','" + nav_sec + "_sel_value');\">" + subcat_desc[i] + "</a>";
				
				} else if (subcategoriesSelected == (","+subcat_id[i]+",")) {
					content = "<span class='disabled_sub_cat'>" + subcat_desc[i] + "</span>";
				
				} else if ((subcat_id[i] != 11) && (sub.indexOf(","+subcat_id[i]+",") != -1) ) {
					content = "<a href=\"javascript:setNavSection('" + nav_sec + "','" + nav_sec + "_txt','" + nav_sec + "_link','" + subcat_desc[i] + "','" + description + "','" + nav_sec + "_cat','" + subcat_id[i] + "','" + nav_sec + "_sel_value');\">" + subcat_desc[i] + "</a>";
				
				} else if ((subcat_id[i] == 11) || (sub.indexOf(","+subcat_id[i]+",") == -1) ) {
					content = "<span class='disabled_sub_cat'>" + subcat_desc[i] + "</span>";
				
				}
				
				if (subcategoriesDisabled.indexOf(","+subcat_id[i]+",") != -1) {
					if (clickReset == "no" || parseInt(clickReset) != subcat_id.length) {
						content = "<span class='disabled_sub_cat'>" + subcat_desc[i] + "</span>";
					} else {
						content = "<a href=\"javascript:setNavSection('" + nav_sec + "','" + nav_sec + "_txt','" + nav_sec + "_link','" + subcat_desc[i] + "','" + description + "','" + nav_sec + "_cat','" + subcat_id[i] + "','" + nav_sec + "_sel_value');\">" + subcat_desc[i] + "</a>";
						var start = subcategoriesDisabled.indexOf(","+subcat_id[i]+",");
						var stop = subcategoriesDisabled.indexOf(","+subcat_id[i]+",") + 3;
						subcategoriesDisabled = subcategoriesDisabled.substring(0,start) + subcategoriesDisabled.substring(stop,subcategoriesDisabled.length);
						switch (subcat_id.length) {
							case 5:
								subcategoriesDisabled0 = "";
								break;
							case 4:
								subcategoriesDisabled1 = "";
								break;
							case 3:
								subcategoriesDisabled2 = "";
								break;					
						}
					}
				}
				
				var innerhtml = enclose_begin + content + enclose_end;
				elementId.innerHTML += innerhtml; 
			}
		}
	}

	if (elementId2 != null) {
	
		elementId2.innerHTML = "";
		
		if (!(isRoutine && subcat_id.length == 5)) {
			for(i=0; i<subcat_id.length; i++){
		
				var enclose_begin = "<li>";
				var enclose_end = "</li>";
				var content = "";
				
				// "Sun Protection is not a link because there are no products related"
				// The first filter will always have links if the other ones weren't selected

				if ((subcat_id[i] != 11) && (String(sub) == "")) {
					content = "<a href=\"javascript:setNavSection('" + nav_sec + "','" + nav_sec + "_txt','" + nav_sec + "_link','" + subcat_desc[i] + "','" + description + "','" + nav_sec + "_cat','" + subcat_id[i] + "','" + nav_sec + "_sel_value');\">" + subcat_desc[i] + "<span>&raquo;</span></a>";
				
				} else if (subcategoriesSelected == (","+subcat_id[i]+",")) {
					content = "<span style='padding-left:20px;'>" + subcat_desc[i] + " &raquo;</span>";
				
				} else if ((subcat_id[i] != 11) && (sub.indexOf(","+subcat_id[i]+",") != -1) ) {
					content = "<a href=\"javascript:setNavSection('" + nav_sec + "','" + nav_sec + "_txt','" + nav_sec + "_link','" + subcat_desc[i] + "','" + description + "','" + nav_sec + "_cat','" + subcat_id[i] + "','" + nav_sec + "_sel_value');\">" + subcat_desc[i] + "<span>&raquo;</span></a>";
				
				} else if ((subcat_id[i] == 11) || (sub.indexOf(","+subcat_id[i]+",") == -1) ) {
					content = "<span style='padding-left:20px;'>" + subcat_desc[i] + " &raquo;</span>";
				
				}
				
				if (subcategoriesDisabled.indexOf(","+subcat_id[i]+",") != -1) {
					if (clickReset == "no" || parseInt(clickReset) != subcat_id.length) {
						content = "<span style='padding-left:20px;'>" + subcat_desc[i] + " &raquo;</span>";
					} else {
						content = "<a href=\"javascript:setNavSection('" + nav_sec + "','" + nav_sec + "_txt','" + nav_sec + "_link','" + subcat_desc[i] + "','" + description + "','" + nav_sec + "_cat','" + subcat_id[i] + "','" + nav_sec + "_sel_value');\">" + subcat_desc[i] + "<span>&raquo;</span></a>";
					}
				} 
				
				var innerhtml = enclose_begin + content + enclose_end;
				elementId2.innerHTML += innerhtml; 
	
			}
		}
	}
	
	count++;
}
