//Get Category2 list By Category1ID
function GetCategory2ByCategory1ID(category1, dest, dest2)
{     
    var cat1 = document.getElementById(category1);
    clearbox(dest);
    clearbox(dest2);
    PageMethods.GetCategory2ByCategory1ID(cat1.value, CallbackGetCategory2ByCategory1ID, CallFailed, dest);
}

//Get Category3 list By Category2ID
function GetCategory3ByCategory2ID(category1, category2, dest)
{     
    var cat1 = document.getElementById(category1);
    var cat2 = document.getElementById(category2);
    clearbox(dest);
    PageMethods.GetCategory3ByCategory2ID(cat1.value, cat2.value, CallbackGetCategory3ByCategory2ID, CallFailed, dest);
}
 
//Callback GetCategory2ByCategory1ID
function CallbackGetCategory2ByCategory1ID(res, destCtrl)
{     
    var i;
    var list = res;
    var dest = document.getElementById(destCtrl);
    for(i = 0 ; i < list.length ; i++)
    {
        dest.options[i]=new Option(list[i].substring(list[i].indexOf(":")+1,list[i].length), list[i].substring(0,list[i].indexOf(":")));
    }
}
 
//Callback GetCategory3ByCategory2ID
function CallbackGetCategory3ByCategory2ID(res, destCtrl)
{     
    var i;
    var list = res;
    var dest = document.getElementById(destCtrl);
    for(i = 0 ; i < list.length ; i++)
    {
        dest.options[i]=new Option(list[i].substring(list[i].indexOf(":")+1,list[i].length), list[i].substring(0,list[i].indexOf(":")));
    }
}

// Alert message on some failure
function CallFailed(res, destCtrl)
{
    alert(res.get_message());
}

function clearbox(dest)
{
   // Set select to the element "selectbox."
   var select=document.getElementById(dest);
   // Set options to an array of all "option" tags that
   // are children of the select element.
   var options=select.getElementsByTagName("option");
   var i;
   // Loop through the array of options and remove each
   // each one from the parent's childNode list.
   for (i=options.length-1; i>=0; i--)
   {
      select.removeChild(options[i]);
   }
}

function SubmitMe()
{
    var c1=document.getElementById("ComCategory1");
    var c2=document.getElementById("ComCategory2");
    var c3=document.getElementById("ComCategory3");

    var hc1=document.getElementById("hc1");
    var hc2=document.getElementById("hc2");
    var hc3=document.getElementById("hc3");

    hc1.value = c1.value;
    hc2.value = c2.value;
    hc3.value = c3.value;
    document.form1.submit();   
}

function SetHiddenData()
{
    var c1=document.getElementById("ComCategory1");
    var c2=document.getElementById("ComCategory2");
    var c3=document.getElementById("ComCategory3");

    var hc1=document.getElementById("hc1");
    var hc2=document.getElementById("hc2");
    var hc3=document.getElementById("hc3");

    hc1.value = c1.value;
    hc2.value = c2.value;
    hc3.value = c3.value;
}


function ChangeProvidePage(pageNum)
{
    var hiddenCtrl = document.getElementById("HProvideInfo");
    PageMethods.ChangeProvidePage(pageNum, hiddenCtrl.value, CallbackChangeProvidePage, CallFailed);
}

//CallbackChangeProvidePage
function CallbackChangeProvidePage(res)
{     
    var hPageInfo = res.substring(0,res.indexOf("^"));
    var divHTML = res.substring(res.indexOf("^") + 1, res.lastIndexOf("^"));
    var divHTML2 = res.substring(res.lastIndexOf("^") + 1, res.length);


    var destCtrl = document.getElementById("ProductList");
    destCtrl.innerHTML = divHTML;
    
    var hiddenCtrl = document.getElementById("HProvideInfo");
    hiddenCtrl.value = hPageInfo;
    
    var divProvidePaging = document.getElementById("ProvidePaging");
    divProvidePaging.innerHTML = divHTML2;
}

function ChangeRequirementPage(pageNum)
{
    var hiddenCtrl = document.getElementById("HRequirementInfo");
    PageMethods.ChangeRequirementPage(pageNum, hiddenCtrl.value, CallbackChangeRequirementPage, CallFailed);
}

//CallbackChangeProvidePage
function CallbackChangeRequirementPage(res)
{     
    var hPageInfo = res.substring(0,res.indexOf("^"));
    var divHTML = res.substring(res.indexOf("^") + 1, res.lastIndexOf("^"));
    var divHTML2 = res.substring(res.lastIndexOf("^") + 1, res.length);

    var destCtrl = document.getElementById("RequirementList");
    destCtrl.innerHTML = divHTML;
    
    var hiddenCtrl = document.getElementById("HRequirementInfo");
    hiddenCtrl.value = hPageInfo;
    
    var divRequirementPaging = document.getElementById("RequirementPaging");
    divRequirementPaging.innerHTML = divHTML2;
}

/* ------------------------------  Click previous ---------------------------- */
function ChangePGroupToPrevious()
{
    var hiddenCtrl = document.getElementById("HProvideInfo");
    PageMethods.ChangeProvidePage(-99998, hiddenCtrl.value, CallbackChangeProvidePage, CallFailed);
}

function ChangeRGroupToPrevious()
{
    var hiddenCtrl = document.getElementById("HRequirementInfo");
    PageMethods.ChangeRequirementPage(-99998, hiddenCtrl.value, CallbackChangeRequirementPage, CallFailed);
}

/* ------------------------------  Click back ---------------------------- */
function ChangePGroupToBack()
{
    var hiddenCtrl = document.getElementById("HProvideInfo");
    PageMethods.ChangeProvidePage(99998, hiddenCtrl.value, CallbackChangeProvidePage, CallFailed);
}

function ChangeRGroupToPrevious()
{
    var hiddenCtrl = document.getElementById("HRequirementInfo");
    PageMethods.ChangeRequirementPage(99998, hiddenCtrl.value, CallbackChangeRequirementPage, CallFailed);
}

/* ------------------------------  Click first ---------------------------- */
function ChangePGroupToFirst()
{
    var hiddenCtrl = document.getElementById("HProvideInfo");
    PageMethods.ChangeProvidePage(-99999, hiddenCtrl.value, CallbackChangeProvidePage, CallFailed);
}

function ChangeRGroupToPrevious()
{
    var hiddenCtrl = document.getElementById("HRequirementInfo");
    PageMethods.ChangeRequirementPage(-99999, hiddenCtrl.value, CallbackChangeRequirementPage, CallFailed);
}

/* ------------------------------  Click last ---------------------------- */
function ChangePGroupToLast()
{
    var hiddenCtrl = document.getElementById("HProvideInfo");
    PageMethods.ChangeProvidePage(99999, hiddenCtrl.value, CallbackChangeProvidePage, CallFailed);
}

function ChangeRGroupToPrevious()
{
    var hiddenCtrl = document.getElementById("HRequirementInfo");
    PageMethods.ChangeRequirementPage(99999, hiddenCtrl.value, CallbackChangeRequirementPage, CallFailed);
}

