﻿// JScript File


//#######################################################
//------------- GET NEW PAGE SCRIPTS ----------
//#######################################################

    //PAGING
    
function GetNewPage(PageNum)
{ 

    var FilterBy = getElementFromID('IFilterBy').innerHTML;
    var FilterValue = getElementFromID('IFilterValue').innerHTML;
    var SortBy = getElementFromID('ISortedBy').innerHTML;
    var SortOrder = getElementFromID('ISortedOrder').innerHTML;
    
    //Use "option" to send any page specific variable. THis is currently used by
    //album page to determine whether to get  full "thumbnail" or "frame" thumbnail 
    //This enable sharing of same paging
    
    var Option = "";
    if(getElementFromID('DataListPageOption') != null)
        Option = getElementFromID('DataListPageOption').innerHTML; 


    Message =   "<ClientRequest>" +
                   "<RequestID>GetNewPage</RequestID>"  +
                   "<PageNum>" + PageNum + "</PageNum>" +   
                   "<Option>" + Option + "</Option>" +   
                   "<SortBy>" + SortBy + "</SortBy>" +                     
                   "<SortOrder>" + SortOrder + "</SortOrder>" + 
                   "<FilterBy>" + FilterBy + "</FilterBy>" + 
                   "<FilterValue>" + FilterValue + "</FilterValue>" +                                        
              "</ClientRequest>";
    //Call Call Back Script
   
    //Move Window to Top of page
    //window.scrollTo(0,0) 

    ShowListMessagePanel()

    var context ="";
    ClientCallBackFunction(Message, context);

}




function GetNewPageResponse(result)

{

    CreateXMLDOMDocument(result);

    var RequestID = xmlDoc.getElementsByTagName("RequestID")[0].firstChild.nodeValue ;
    var ControlHTML = xmlDoc.getElementsByTagName("ControlHTML").item(0).text;  //Encapsulated in CDATA
    //var SortOrder = xmlDoc.getElementsByTagName("SortOrder")[0].firstChild.nodeValue;
    //var SortBy = xmlDoc.getElementsByTagName("SortBy")[0].firstChild.nodeValue;

    getElementFromID('DataListOuterPnl').innerHTML  = ControlHTML ; 
    
    DisplayPanel("View")

}




//RESET - View ALL - 
function ResetListView()
{

    getElementFromID('IFilterBy').innerHTML ="";
    getElementFromID('IFilterValue').innerHTML = "";
    getElementFromID('ISortedBy').innerHTML = "id";
    getElementFromID('ISortedOrder').innerHTML ="ASC";

    GetNewPage("1");


}




//#############################################################
//------------- GET COMMENT ENTRY FOR DATLIST VIEW ------------
//#############################################################


function ViewComment(FileID, PostID, CommentID)
{


    if(getElementFromID("RateArticlePanel") != null) 
        getElementFromID("RateArticlePanel").style.display = "none";

    if(getElementFromID("ReportAbusePanel") != null) 
        getElementFromID("ReportAbusePanel").style.display = "none";


    var FilterBy = "id";
    var FilterValue = CommentID; 
    var SortBy = "id";
    var SortOrder = "ASC";
    var Page = "1";

    Message = "<ClientRequest>" +
               "<RequestID>ViewComment</RequestID>"  +
               "<FileID>" + FileID + "</FileID>" +                               
               "<PostID>" + PostID + "</PostID>" +  
               "<CommentID>" + CommentID + "</CommentID>" +                                                                           
               "<Page>" + Page + "</Page>" +                
               "<SortBy>" + SortBy + "</SortBy>" + 
               "<SortOrder>" + SortOrder + "</SortOrder>" + 
               "<FilterBy>" + FilterBy + "</FilterBy>" + 
               "<FilterValue>" + FilterValue + "</FilterValue>" +                                                             
              "</ClientRequest>";

    ShowCommentMessagePanel(PostID);

    //Call Call Back Script
    var context ="";
    ClientCallBackFunction(Message, context);

}



function ViewCommentResponse(result)
{

    CreateXMLDOMDocument(result);
    var RequestID = xmlDoc.getElementsByTagName("RequestID")[0].firstChild.nodeValue  
    //var Message = xmlDoc.getElementsByTagName("Message")[0].firstChild.nodeValue 
    var ControlHTML = xmlDoc.getElementsByTagName("ControlHTML").item(0).text;  //Encapsulated in CDATA
    
    var PostID =  xmlDoc.getElementsByTagName("PostID")[0].firstChild.nodeValue 
    var CommentID =  xmlDoc.getElementsByTagName("CommentID")[0].firstChild.nodeValue 
    
    
    //clear previous Panel 
    var LastCommentDetailPnlName = getElementFromID("LastCommentDetailPnlName").innerHTML; // = "CDetailPnl" + PostID + CommentID;
    if(LastCommentDetailPnlName != "")
    getElementFromID(LastCommentDetailPnlName).innerHTML = "";
    
   var CDetailPnl = "CDetailPnl" + PostID + CommentID; 

    //update info
    getElementFromID("LastCommentDetailPnlName").innerHTML = CDetailPnl;
    getElementFromID(CDetailPnl).innerHTML  = ControlHTML ; 

 
 
          
}


//########## GET COMMENT LIST ######################################


function GetComment(FileID, PostID, CommentID)
{

    var FilterBy = "id";
    var FilterValue = CommentID; 
    var SortBy = "id";
    var SortOrder = "ASC";
    var Page = "1";

    Message = "<ClientRequest>" +
               "<RequestID>GetComment</RequestID>"  +
               "<FileID>" + FileID + "</FileID>" +                               
               "<PostID>" + PostID + "</PostID>" +  
               "<CommentID>" + CommentID + "</CommentID>" +                                                                           
               "<Page>" + Page + "</Page>" +                
               "<SortBy>" + SortBy + "</SortBy>" + 
               "<SortOrder>" + SortOrder + "</SortOrder>" + 
               "<FilterBy>" + FilterBy + "</FilterBy>" + 
               "<FilterValue>" + FilterValue + "</FilterValue>" +                                                             
              "</ClientRequest>";

    //Call Call Back Script
    var context ="";
    ClientCallBackFunction(Message, context);

}



function GetCommentResponse(result)
{
    CreateXMLDOMDocument(result);
    var RequestID = xmlDoc.getElementsByTagName("RequestID")[0].firstChild.nodeValue  
    var Message = xmlDoc.getElementsByTagName("Message")[0].firstChild.nodeValue 
    var ControlHTML = xmlDoc.getElementsByTagName("ControlHTML").item(0).text;  //Encapsulated in CDATA
    getElementFromID("CommentViewDataListPnl").innerHTML  = ControlHTML ; 
          
}




//###########################################
// FILTER OPTIONS
//##########################################

function GetCategoryListView(CategoryId)
{
    var Page = "1";
    
    getElementFromID("IFilterBy").innerHTML = "CategoryId";
    getElementFromID("IFilterValue").innerHTML = CategoryId ; 
           
    GetNewPage(Page);

}


function GetCategoryMenuView(CategoryId)
{
    var Page = "1";
    
    getElementFromID("IFilterBy").innerHTML = "CategoryId";
    getElementFromID("IFilterValue").innerHTML = CategoryId ; 
           
    GetNewPage(Page);

}

function GetSubCategoryMenuView(SubCategoryId)
{
    var Page = "1";
    
    getElementFromID("IFilterBy").innerHTML = "SubCategoryId";
    getElementFromID("IFilterValue").innerHTML = SubCategoryId ; 
           
    GetNewPage(Page);

}










function GetFilterValues(FilterBy)
{

//If FilterBy is subcategory, need the category. Currently only using this in the main sections (not user site)
    
    var FilterByCategoryID = "";


    if(FilterBy == "SubCategoryID")
    {
        FilterByCategoryID = getElementFromID("FilterByCategoryID").innerHTML


        if(FilterByCategoryID=="")
            {
            alert("Please Filter on 'Category' First Before 'SubCategory'");
            ResetFilter();
            return;
            }
    }
    
    

    Message = "<ClientRequest>" +
               "<RequestID>GetFilterValues</RequestID>"  +
               "<FilterBy>" + FilterBy + "</FilterBy>"  +
               "<FilterByCategoryID>" + FilterByCategoryID + "</FilterByCategoryID>"  +
              "</ClientRequest>";

    ShowListMessagePanel();
    //Call Call Back Script
    var context ="";
    ClientCallBackFunction(Message, context);
    
    
}



function GetFilterValuesResponse(result)
{

    CreateXMLDOMDocument(result);

    var RequestID = xmlDoc.getElementsByTagName("RequestID")[0].firstChild.nodeValue ;
    var ControlHTML = xmlDoc.getElementsByTagName("ControlHTML").item(0).text;  //Encapsulated in CDATA
    var FilterValuesCount = xmlDoc.getElementsByTagName("FilterValuesCount")[0].firstChild.nodeValue ;


    getElementFromID('FilterValuesPanel').innerHTML  = ControlHTML ; 
    
    if(FilterValuesCount != "0")
        getElementFromID('FilterValuesPanel').style.display = "block"
    
    getElementFromID("IFilterValue").innerHTML = "";

}



//################################################################
//Sort Function
//################################################################

function SortListItems()
{
 var DropdownID = getElementFromID("SortDropDownList");
 var SortBy = GetDropDownValue(DropdownID)

 SortListView(SortBy)

}

function SortAscending()
{

    getElementFromID("ISortedOrder").innerHTML = "ASC";
    var Page = "1"; //Reset Page on sorting
    GetNewPage(Page);

} 


function SortDescending()
{

    getElementFromID("ISortedOrder").innerHTML = "DESC";
    var Page = "1"; //Reset Page on sorting
    GetNewPage(Page);
} 

function SortListView(SortBy)
{
    getElementFromID("ISortedBy").innerHTML = SortBy;
    
    var LastSortOrder = getElementFromID("ISortedOrder").innerHTML;
    
    if(LastSortOrder == "ASC")
        var SortOrder = "DESC";    //Sort In opposite direction
    else
        var SortOrder = "ASC";     
    
    getElementFromID("ISortedOrder").innerHTML = SortOrder;
    
    var Page = "1"; //Reset Page on sorting
    //getElementFromID("GViewCurrentPage").innerHTML = Page;

    GetNewPage(Page);
   

}





//###########################################
// GET CATEGORY VIEW
//##########################################


function GetCategoryView()
{


    Message = "<ClientRequest>" +
               "<RequestID>GetCategoryView</RequestID>"  +
              "</ClientRequest>";

    ShowListMessagePanel();

    //Call Call Back Script
    var context ="";
    ClientCallBackFunction(Message, context);

}



function GetCategoryViewResponse(result)

{

    CreateXMLDOMDocument(result);

    var RequestID = xmlDoc.getElementsByTagName("RequestID")[0].firstChild.nodeValue ;
    var ControlHTML = xmlDoc.getElementsByTagName("ControlHTML").item(0).text;  //Encapsulated in CDATA

    getElementFromID('CategoryViewPanel').innerHTML  = ControlHTML ; 
    
    DisplayPanel("CategoryView")
    

}
