﻿// JScript File

function ShowEntryList()
{

    getElementFromID("PageMode").innerHTML = "List" ;
    
    getElementFromID("GViewCurrentPage").innerHTML = "1";
    //getElementFromID("GViewSortBy").innerHTML = "id";
    getElementFromID("GViewSortOrder").innerHTML = "ASC";
    getElementFromID("GViewFilterBy").innerHTML ="" ;
    getElementFromID("GViewFilterValue").innerHTML = "";

    GridViewCallBackFunction()


}

function ShowAdminEntryList()
{

    getElementFromID("PageMode").innerHTML = "Admin" ;
    getElementFromID("GViewCurrentPage").innerHTML = "1";
    //getElementFromID("GViewSortBy").innerHTML = "id"; //no need to initialize this
    getElementFromID("GViewSortOrder").innerHTML = "ASC";
    getElementFromID("GViewFilterBy").innerHTML ="" ;
    getElementFromID("GViewFilterValue").innerHTML = "";

    getElementFromID("IFilterBy").innerHTML = ""; //SHARED NOW WITH LIST
    getElementFromID("IFilterValue").innerHTML = ""; //SHARED NOW WITH LIST

    GridViewCallBackFunction()


}

/*
function ResetGviewList()
{
     //reset the dropdown menu
    var OptionID = "FilterByOption" ; // Me.id
    getElementFromID(OptionID).selectedIndex = 0;

    //reset filter option
    getElementFromID("GViewFilterBy").innerHTML = "";
    //getElementFromID("GViewFilterPnl2").innerHTML = "";
    FilterGridView("")
    
}
*/

function GetGridViewPage(Page)
{

     getElementFromID("GViewCurrentPage").innerHTML = Page;
    
     GridViewCallBackFunction()

}



function SortGridView(SortBy)
{
    getElementFromID("GViewSortBy").innerHTML = SortBy;
    
    var LastSortOrder = getElementFromID("GViewSortOrder").innerHTML;
    
    if(LastSortOrder == "ASC")
        var SortOrder = "DESC";    //Sort In opposite direction
    else
        var SortOrder = "ASC";     
    
    getElementFromID("GViewSortOrder").innerHTML = SortOrder;
    
    var Page = "1"; //Reset Page on sorting
    getElementFromID("GViewCurrentPage").innerHTML = Page;

    GridViewCallBackFunction()
   

}




//USING SAME FILTER AS DATALIST VIEW 
/*
function FilterGridView(Me)
{
    alert(Me.id)

    //Reset Values 
    //var SortOrder = "ASC"; -Dont have to reset sort
    //var SortBy = "id"
    var Page = "1";
    
    var FilterBy = getElementFromID("GViewFilterBy").innerHTML

   
     if(FilterBy =="")
        var FilterValue = ""; //Case where Show ALL is selected
     else
     {   
        var FilterValueOption = "FilterValueOption"
        var SelectedValueIndex = getElementFromID(FilterValueOption).selectedIndex
        var FilterValue = getElementFromID(FilterValueOption).options[SelectedValueIndex].value
     }

     getElementFromID("GViewFilterValue").innerHTML = FilterValue ; 
     getElementFromID("GViewCurrentPage").innerHTML = Page;
     //getElementFromID("GViewSortBy").innerHTML = SortBy;
     //getElementFromID("GViewSortOrder").innerHTML = SortOrder;
  
           
     GridViewCallBackFunction()

}
*/



//function also used by calendar function when a date on calendar is clicked 
function GridViewCallBackFunction()
{


    var Page = getElementFromID("GViewCurrentPage").innerHTML;
    var SortBy = getElementFromID("GViewSortBy").innerHTML;
    var SortOrder = getElementFromID("GViewSortOrder").innerHTML;
    var FilterBy = getElementFromID("IFilterBy").innerHTML;         //Using Same Filter As Datalist View
    var FilterValue = getElementFromID("IFilterValue").innerHTML;   //Using Same Filter As Datalist View

    var PageMode =  getElementFromID("PageMode").innerHTML


    Message = "<ClientRequest>" +
               "<RequestID>GetGridViewPage</RequestID>"  +
               "<PageMode>" + PageMode + "</PageMode>" +                
               "<Page>" + Page + "</Page>" +                
               "<SortBy>" + SortBy + "</SortBy>" + 
               "<SortOrder>" + SortOrder + "</SortOrder>" + 
               "<FilterBy>" + FilterBy + "</FilterBy>" + 
               "<FilterValue>" + FilterValue + "</FilterValue>" +                                                             
              "</ClientRequest>";

    ShowListMessagePanel();

    //Call Call Back Script
    var context ="";
    ClientCallBackFunction(Message, context);

}






function GetGridViewPageResponse(result)
{

    CreateXMLDOMDocument(result);

    var RequestID = xmlDoc.getElementsByTagName("RequestID")[0].firstChild.nodeValue  
    var Message = xmlDoc.getElementsByTagName("Message")[0].firstChild.nodeValue 
    var SortOrder = xmlDoc.getElementsByTagName("SortOrder")[0].firstChild.nodeValue 
    var PageMode = xmlDoc.getElementsByTagName("PageMode")[0].firstChild.nodeValue 

    var ControlHTML = xmlDoc.getElementsByTagName("ControlHTML").item(0).text;  //Encapsulated in CDATA


    getElementFromID("GridViewListOuterPnl").innerHTML  = ControlHTML ; 
    getElementFromID("GViewSortOrder").innerHTML = SortOrder;
 
    DisplayPanel(PageMode)   ;    
    
}





function GetGridViewFilterValue(Me)
{

    var OptionID = "FilterByOption" ; // Me.id
    SelectedIndex = getElementFromID(OptionID).selectedIndex
    SelectedOption = getElementFromID(OptionID).options[SelectedIndex].value

    var GViewValueOption =  JournalFilterOptions(SelectedOption)

    if(SelectedOption=="")
    {
        getElementFromID("GViewFilterBy").innerHTML = SelectedOption;
        GViewValueOption = "";   //If Show ALL is selected, dont show dropdown menu, get data
        FilterGridView(Me);
    }
    else
    { 
        var GViewValueOption = 
                '<select id="FilterValueOption" name="FilterValueOption" onchange="javascript:FilterGridView(this)">' + 
                   '<option value="">--Select ' + SelectedOption + '--</option>' + 
                    GViewValueOption + 
                '</select>'
     }

    getElementFromID("GViewFilterPnl2").innerHTML = GViewValueOption;
    getElementFromID("GViewFilterBy").innerHTML = SelectedOption;

}


//########## DELETE ENTRY ######################################


function DeleteEntry(FileID,PostID)
{

    var Page = getElementFromID("GViewCurrentPage").innerHTML ;
    var SortBy = getElementFromID("GViewSortBy").innerHTML ;
    var SortOrder = getElementFromID("GViewSortOrder").innerHTML ;
    var FilterBy = getElementFromID("GViewFilterBy").innerHTML;
    var FilterValue = getElementFromID("GViewFilterValue").innerHTML;


    var ConfirmMessage = "Do you want to PERMANENTLY DELETE Entry?" ; 
   
    var cancel = !confirm(ConfirmMessage);
   
    if(cancel)
     return;
        

    Message = "<ClientRequest>" +
               "<RequestID>DeleteEntry</RequestID>"  +
               "<FileID>" + FileID + "</FileID>" +                               
               "<PostID>" + PostID + "</PostID>" +                             
               "<Page>" + Page + "</Page>" + 
               "<PageMode>Admin</PageMode>" +                
               "<SortBy>" + SortBy + "</SortBy>" + 
               "<SortOrder>" + SortOrder + "</SortOrder>" + 
               "<FilterBy>" + FilterBy + "</FilterBy>" + 
               "<FilterValue>" + FilterValue + "</FilterValue>" +                                                             
              "</ClientRequest>";

    ShowDeleteMessagePanel();
    //Call Call Back Script
    var context ="";
    ClientCallBackFunction(Message, context);


}




//#######################################################################################
//########################### COMMENT FUNCTIONS #########################################
//#######################################################################################


function GetCommentList(FileID,PostID)
{
    getElementFromID("GViewCommentParentID").innerHTML = PostID;
    getElementFromID("GViewCommentFileID").innerHTML = FileID;

    //Reset Values for first time. 
    getElementFromID("GViewCommentFilterBy").innerHTML = "" ;     
    getElementFromID("GViewCommentFilterValue").innerHTML = "" ; 
    getElementFromID("GViewCommentCurrentPage").innerHTML = "1";
    getElementFromID("GViewCommentSortBy").innerHTML = "id";
    getElementFromID("GViewCommentSortOrder").innerHTML = "ASC";

    DisplayPanel("Comment")
    GetGridViewCommentPage("1")

}



function GetCommentListResponse(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("GViewCommentOuterListPnl").innerHTML  = ControlHTML ; 
        
}



function ResetGviewCommentList()
{
     //reset the dropdown menu
    var OptionID = "CommentFilterByOption" ; // Me.id
    getElementFromID(OptionID).selectedIndex = 0;

    //reset filter option
    getElementFromID("GViewCommentFilterBy").innerHTML = "";
    getElementFromID("GViewCommentFilterPnl2").innerHTML = "";
    FilterGridViewComment("")
    
}



function GetGridViewCommentPage(Page)
{
     getElementFromID("GViewCommentCurrentPage").innerHTML = Page;    
     GridViewCommentCallBackFunction()
}




function FilterGridViewComment(Me)
{
    //Reset Values 
    //var SortOrder = "ASC";
    //var SortBy = "id"
    var Page = "1";
    
    var FilterBy = getElementFromID("GViewCommentFilterBy").innerHTML
    
     if(FilterBy =="")
        var FilterValue = ""; //Case where Show ALL is selected
     else
     {   
        var FilterValueOption = "CommentFilterValueOption"
        var SelectedValueIndex = getElementFromID(FilterValueOption).selectedIndex
        var FilterValue = getElementFromID(FilterValueOption).options[SelectedValueIndex].value
     }
     getElementFromID("GViewCommentFilterValue").innerHTML = FilterValue ; 
     getElementFromID("GViewCommentCurrentPage").innerHTML = Page;
     //getElementFromID("GViewCommentSortBy").innerHTML = SortBy;
     //getElementFromID("GViewCommentSortOrder").innerHTML = SortOrder;
  
           
     GridViewCommentCallBackFunction()

}



function SortGridViewComment(SortBy)
{
    getElementFromID("GViewCommentSortBy").innerHTML = SortBy;
    
    var LastSortOrder = getElementFromID("GViewCommentSortOrder").innerHTML;
    
    if(LastSortOrder == "ASC")
        var SortOrder = "DESC";    //Sort In opposite direction
    else
        var SortOrder = "ASC";     
    
    getElementFromID("GViewCommentSortOrder").innerHTML = SortOrder;
    
    var Page = "1"; //Reset Page on sorting
    getElementFromID("GViewCommentCurrentPage").innerHTML = Page;

    GridViewCommentCallBackFunction()
   

}



//function also used by calendar function when a date on calendar is clicked 
function GridViewCommentCallBackFunction()
{

    var Page = getElementFromID("GViewCommentCurrentPage").innerHTML ;
    var SortBy = getElementFromID("GViewCommentSortBy").innerHTML ;
    var SortOrder = getElementFromID("GViewCommentSortOrder").innerHTML ;
    var FilterBy = getElementFromID("GViewCommentFilterBy").innerHTML;
    var FilterValue = getElementFromID("GViewCommentFilterValue").innerHTML;
    var PostID = getElementFromID("GViewCommentParentID").innerHTML;
    var FileID = getElementFromID("GViewCommentFileID").innerHTML;

    
    Message = "<ClientRequest>" +
               "<RequestID>GetCommentList</RequestID>"  +
               "<FileID>" + FileID + "</FileID>" +                               
               "<PostID>" + PostID + "</PostID>" +                               
               "<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 GetGridViewCommentFilterValue(Me)
{

    var OptionID = "CommentFilterByOption" ; // Me.id
    SelectedIndex = getElementFromID(OptionID).selectedIndex
    SelectedOption = getElementFromID(OptionID).options[SelectedIndex].value

    var GViewValueOption =  JournalFilterOptions(SelectedOption)
    
    if(SelectedOption=="")
    {
        getElementFromID("GViewCommentFilterBy").innerHTML = SelectedOption;
        GViewValueOption = "";   //If Show ALL is selected, dont show dropdown menu, get data
        FilterCommentGridView(Me);
    }
    else
    { 
        var GViewValueOption = 
                '<select id="CommentFilterValueOption" name="CommentFilterValueOption" onchange="javascript:FilterGridViewComment(this)">' + 
                   '<option value="">--Select ' + SelectedOption + '--</option>' + 
                    GViewValueOption + 
                '</select>'
     }

    getElementFromID("GViewCommentFilterPnl2").innerHTML = GViewValueOption;
    getElementFromID("GViewCommentFilterBy").innerHTML = SelectedOption;



}




//########## EDIT COMMENT ENTRY ######################################


function EditComment(FileID, PostID, CommentID)
{

    var FilterBy = "id";
    var FilterValue = CommentID; 
    var SortBy = "id";
    var SortOrder = "ASC";
    var Page = "1";

    Message = "<ClientRequest>" +
               "<RequestID>EditComment</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 EditCommentResponse(result)
{

    CreateXMLDOMDocument(result);
    var RequestID = xmlDoc.getElementsByTagName("RequestID")[0].firstChild.nodeValue  
    var FileID = xmlDoc.getElementsByTagName("FileID")[0].firstChild.nodeValue     
    var PostID = xmlDoc.getElementsByTagName("PostID")[0].firstChild.nodeValue     
    var CommentID = xmlDoc.getElementsByTagName("CommentID")[0].firstChild.nodeValue     
    
    var ControlHTML = xmlDoc.getElementsByTagName("ControlHTML").item(0).text;  //Encapsulated in CDATA
    var Private = xmlDoc.getElementsByTagName("Private").item(0).text  
    var Title = xmlDoc.getElementsByTagName("Title").item(0).text  
    var Url = xmlDoc.getElementsByTagName("Url").item(0).text ;
    var PostedBy = xmlDoc.getElementsByTagName("PostedBy").item(0).text ;       
    var Body = xmlDoc.getElementsByTagName("Body").item(0).text;  //Encapsulated in CDATA

    if(Private == "true")
        getElementFromID("CPrivate").checked = true
    else
        getElementFromID("CPrivate").checked = false

    getElementFromID("CFileID").innerHTML = FileID
    getElementFromID("CPostID").innerHTML = PostID
    getElementFromID("CCommentID").innerHTML = CommentID
    
    getElementFromID("CEditorMode").innerHTML = "Update";


    getElementFromID("OriginalPostPnl").innerHTML = Body

    getElementFromID("CUrl").value = Url;
    getElementFromID("CName").value = PostedBy;  
    getElementFromID("CTitle").value = Title


    DisplayPanel("PostComment");

    getElementFromID("CUpdateButton").style.display = "inline";
    getElementFromID("CSubmitButton").style.display = "none";


    var CEditorBit = getElementFromID("CEditorBit").innerHTML
    if(CEditorBit=="0")
    {
     getElementFromID("CEditor").value = Body; //Set TextArea Content
     ShowTextEditor("", "CEditor")
     getElementFromID("CEditorBit").innerHTML="1";
    }
    else
     SetEditorContents("","CEditor",Body)

  

        
}


//#########################################################################



//########## DELETE COMMENT ENTRY ######################################

//Response function is : "GetCommentListResponse"
function DeleteComment(FileID, PostID, CommentID)
{


    var ConfirmMessage = "Do you want to PERMANENTLY DELETE Entry?" ; 
   
    var cancel = !confirm(ConfirmMessage);
   
    if(cancel)
     return;


    var Page = getElementFromID("GViewCommentCurrentPage").innerHTML;
    var SortBy = getElementFromID("GViewCommentSortBy").innerHTML ;
    var SortOrder = getElementFromID("GViewCommentSortOrder").innerHTML ;

    var FilterByOption = "CommentFilterByOption"
    var SelectedIndex = getElementFromID(FilterByOption).selectedIndex
    var FilterBy = getElementFromID(FilterByOption).options[SelectedIndex].value


    if(FilterBy =="")
        var FilterValue = ""; //Case where Show ALL is selected
     else
     {   
        var FilterValueOption = "CommentFilterValueOption"
        var SelectedValueIndex = getElementFromID(FilterValueOption).selectedIndex
        var FilterValue = getElementFromID(FilterValueOption).options[SelectedValueIndex].value
    }
    
    Message = "<ClientRequest>" +
               "<RequestID>DeleteComment</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 JournalFilterOptions(Option)
{


var TypeOpt = 
        '<option value="Public">Public</option>' + 
        '<option value="Private">Private</option>'
        
        
var MoodOpt = 
        '<option value="Down">Down</option>' + 
        '<option value="Fair">Fair</option>' + 
        '<option value="OK">OK</option>' + 
        '<option value="Good">Good</option>' + 
        '<option value="Excellent">Excellent</option>'

 
 var DayRatingOpt = 
        '<option value="1">1</option>' + 
        '<option value="2">2</option>' + 
        '<option value="3">3</option>' + 
        '<option value="4">4</option>' + 
        '<option value="5">5</option>' + 
        '<option value="6">6</option>' + 
        '<option value="7">7</option>' + 
        '<option value="8">8</option>' + 
        '<option value="9">9</option>' +         
        '<option value="10">10</option>'


  var DateMonthOpt = 
        '<option value="1">January</option>' + 
        '<option value="2">Februry</option>' + 
        '<option value="3">March</option>' + 
        '<option value="4">April</option>' + 
        '<option value="5">May</option>' + 
        '<option value="6">June</option>' + 
        '<option value="7">July</option>' + 
        '<option value="8">August</option>' + 
        '<option value="9">September</option>' +  
        '<option value="10">October</option>' +  
        '<option value="11">November</option>' +                 
        '<option value="12">December</option>';


  var OptionReturn ="";

    switch(Option)
    {

    case "Type" :
          OptionReturn = TypeOpt;
          break;
    case "Mood" :
          OptionReturn = MoodOpt;
          break;
    case "DayRating" :
          OptionReturn = DayRatingOpt;
          break;
    case "Month" :
          OptionReturn = DateMonthOpt;
          break;
    default :
       break;   
    }
    
return OptionReturn;

       
}



