	function getNextCategoryList(ddlControlId, createIfMissing, deviceCategory)
	{
		var currentDdlId = new Number(ddlControlId.replace('ddlCategories', ''));
		var nextDdlId = 'ddlCategories' + (currentDdlId + 1);
		var nextDdl = $(nextDdlId);
		if ((nextDdl == null) || (nextDdl == undefined))
		{
			if (createIfMissing)
			{
				var currentDivId = 'divCategories' + currentDdlId;
				var nextDivId = 'divCategories' + (currentDdlId + 1);
				new Insertion.After(currentDivId, '<div style="float: left;" id="' + nextDivId + '"><select style="width: 170px;" name="' + nextDdlId + '" id="' + nextDdlId + '" class="TopRingtones" onChange="retrieveSubCategories(\'' + nextDdlId + '\',\'' + deviceCategory + '\')"></select>&nbsp;&nbsp;&nbsp;&nbsp;</div>');
				nextDdl = $(nextDdlId);
			}
		}
		return nextDdl;
	}
	
    function clearCategoryList(controlId)
    {
		var nextId = (new Number(controlId.replace('ddlCategories', ''))) + 1;

    	var divCategories = $('divCategories' + nextId);
    	while ((divCategories != null) && (divCategories != undefined))
    	{
    		Element.remove(divCategories);
    		
    		nextId++;
    		divCategories = $('divCategories' + nextId);
		}
    }
    
    function enableAjaxDependantObjects(isEnabled)
    {
		var ddlCategories = $('ddlCategories1');
		var index = 1;
		while ((ddlCategories != null) && (ddlCategories != undefined))
		{
			ddlCategories.disabled = !isEnabled;
			
			index++;
			ddlCategories = null;
			ddlCategories = $('ddlCategories' + index);
		}
		
		var btnGo = $('btnGo');
		btnGo.disabled = !isEnabled;
    }
    
        
    function populateSubCategories(originalRequest)
    {
    	if (originalRequest.responseText.length > 0)
    	{
    		var response = originalRequest.responseText.split('|');
 		   	var deviceCategory = response[0];
  		    var ddlParentCategoriesId = response[1];
			var ddlParentCategories = $(ddlParentCategoriesId);
	    	clearCategoryList(ddlParentCategoriesId);
	    	if (response.length > 2)
	    	{
		    	var ddlChildCategories = getNextCategoryList(ddlParentCategoriesId, true, deviceCategory);
				
	    		for(var i = 2; i < response.length; i += 2)
	    		{
	    			ddlChildCategories.options[ddlChildCategories.options.length] = new Option(response[i+1], response[i]);
	    		}
	    		
	    		retrieveSubCategories(ddlChildCategories.id, deviceCategory);
	    	}
    	}
    	
    	enableAjaxDependantObjects(true);
    }

	function categoryGoButtonPressed(baseUrl, tab)
	{
		var trail = tab;		
		var ddlCategories = $('ddlCategories1');
		var nextSequence = 1;
		var ddlPrevCategories = null;
		while ((ddlCategories != null) && (ddlCategories != undefined))
		{
			ddlPrevCategories = ddlCategories;
			trail = trail + ' ' + $F(ddlPrevCategories);
			nextSequence++;
			ddlCategories = $('ddlCategories' + nextSequence);
		}
		if ((ddlPrevCategories != null) && (ddlPrevCategories != undefined))
		{
			document.location = baseUrl + '&c3=' + $F(ddlPrevCategories) + '&trail=' + trail;
		}
		return false;
	}

    function recommendationGoButtonPressed(baseUrl)
	{
		var ddlCategories = $('ddlCategories');
		if ((ddlCategories != null) && (ddlCategories != undefined))
		{
			document.location = baseUrl + '&c3=' + $F(ddlCategories)  + '&trail=faCat ' +  $F(ddlCategories);
		}
		return false;
	}
    