function writeToConsole(msg)
{
	if (console)
	{
		if (console.debug)
		{
			console.debug(msg);
		}
	}
	else
	{
		alert(msg);
	}
}

function caCallback_CallbackError(sender, eventArgs)
{
    writeToConsole("Callback error has occured");
}

function caCallback_Complete(sender, eventArgs)
{
	writeToConsole("Callback complete");
}

/* Products Per Page Filter */
function ddlProductsPerPage_onChange()
{
    try
    {
        // Drop down list object
		var obj = $("ddlProductsPerPage");
		
		// Selected value
		var productsPerPage = obj.options[obj.selectedIndex].value;
		
		// Update the hidden textbox
		$("tbProductsPerPage").value = productsPerPage;
		
		// Run callback
		caCallback_Callback("ChangePageSize", "pagesize=" + productsPerPage + ";");
    }
    catch (ex)
    {
        alert("ddlProductsPerPage_onChange:\n" + ex);
    }
    finally
    {
    }
}

/* Sort By Filter */
function ddlSortBy_onChange()
{
    try
    {
        // Drop down list object
		var obj = $("ddlSortBy");
    	
		// Selected value
		var sortBy = obj.options[obj.selectedIndex].value;
		
		// Update the hidden textbox
		$("tbSortBy").value = sortBy;

        // Run callback
		caCallback_Callback("", "sortby=" + sortBy + ";");
    }
    catch (ex)
    {
        alert("ddlSortBy_onChange:\n" + ex.description);
    }
    finally
    {
    }
}

/* Change current page index */
function ChangePageIndex(index)
{
    try
    {
        if (index && typeof(index) == "number")
        {
            // Update the hidden textbox
            $("tbCurrentPage").value = index;
            
            // Run calback
            caCallback.Callback("", "currentpage=" + index + ";");
        }
    }
    catch (ex)
    {
        alert("ChangePageIndex:\n" + ex.description);
    }
    finally
    {
    }
}

/* document.getElementById(..) */
function $(id)
{
	return document.getElementById(id);
}