﻿//This file contains all of the calls made to the 'ws_Forums' web service and handles the return calls from it
var intGForumID;
var strSearchHeader;

    function f_GetForumHomePage(){
        document.getElementById("ForumItems").innerHTML = "Loading....";
        ret = ws_Forums.GetHomePage(f_OnCompleteGetForumHomePage, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteGetForumHomePage(result){
        document.getElementById("ForumItems").innerHTML = result;
    }


    function f_NewForum(){
        ret = ws_Forums.AddNewForum(f_OnCompleteDetail, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_ShowForumDetail(intForumID){
        intGForumID = intForumID;
        document.getElementById("ForumDetail").innerHTML = "Loading....";
        ret = ws_Forums.ForumDetail(intForumID, true, f_OnCompleteDetail, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteDetail(result){
        document.getElementById("ForumDetail").innerHTML = result;
    }


    function f_NewForumReply(intForumID){
        ret = ws_Forums.AddNewForumReply(intForumID, f_OnCompleteReplyDetail, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_ShowForumReplyDetail(intReplyID, intForumID){
        document.getElementById("ForumReplyDetail").innerHTML = "Loading....";
        ret = ws_Forums.ForumReplyDetail(intReplyID, intForumID, f_OnCompleteReplyDetail, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteReplyDetail(result){
        document.getElementById("ForumReplyDetail").innerHTML = result;
    }

    function f_ReturnAllNonAnswered(){
        document.getElementById("SearchResults").innerHTML = "Working...";
        ret = ws_Forums.GetTotalNonAnsweredTable(f_OnCompleteReturnAllNonAnswered, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteReturnAllNonAnswered(result){
        document.getElementById("SearchResults").innerHTML = result;
    }


    function f_Search(){
	    var intID;
        var julPosted;
        var intUserID;
        var strTitle;
        var strMessage;
        var boolEmailUpdate;
        var intViews;
        var intOwnerID;
        var intRegionID;

	    intRegionID = document.getElementById("cmbSrchRegions").value;
        if (intRegionID.length<1){
            intRegionID='j';
        }
        if(isNaN(intRegionID)==true){
            intRegionID = 0;
        }

	    intID = document.getElementById("txtsrchID").value;
        if (intID.length<1){
            intID='j';
        }
        if(isNaN(intID)==true){
            intID = 0;
        }

        intOwnerID  = document.getElementById("cmbSrchOwners").options[document.getElementById("cmbSrchOwners").selectedIndex].value;
        if (intOwnerID.length<1){
            intOwnerID='j';
        }
        if(isNaN(intOwnerID)==true){
            intOwnerID = 0;
        }

        intUserID = document.getElementById("cmbUsers").options[document.getElementById("cmbUsers").selectedIndex].value;
        if (intUserID.length<1){
            intUserID='j';
        }
        if(isNaN(intUserID)==true){
            intUserID = 0;
        }
        strTitle = document.getElementById("txtsrchTitle").value;
        strMessage = document.getElementById("txtsrchMessage").value;

        document.getElementById("SearchResults").innerHTML = "Loading....";
        document.getElementById("ForumDetail").innerHTML = "";
        ret = ws_Forums.Search(intID, strTitle, strMessage, intUserID, intOwnerID, intRegionID, f_OnCompleteSearch, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteSearch(result){
        document.getElementById("SearchResults").innerHTML = result;
    }

    function f_InitiateSearch(strText){
        ret = ws_Forums.SiteSearch(strText, f_OnCompleteInitiateSearch, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteInitiateSearch(result){
        var vVar;

        vVar = result.split('||');
                
        document.getElementById("BreakdownForum").innerHTML = vVar[0];
        document.getElementById("SearchResultsForum").innerHTML = vVar[1];
    }
    

    function f_SearchSite(intPassedContID, strPassedText){
        var strText = '';
        var intRegionID = '';
        strSearchHeader = '';
        
        strText = strPassedText;
        intRegionID = intPassedContID 
        
        if (intRegionID.length<1){
            intRegionID  = document.getElementById("cmbsrchRegions").options[document.getElementById("cmbsrchRegions").selectedIndex].value;
        }
        if (intRegionID.length<1){
            intRegionID='j';
        }
        if(isNaN(intRegionID)==true){
            intRegionID = 0;
        }else{
            //strSearchHeader = 'Pre-Production Forum : ' + document.getElementById("cmbsrchRegions").options[document.getElementById("cmbsrchRegions").selectedIndex].text;
            strSearchHeader = 'Pre-Production Forum';
        }
        

        if (strText.length<1){
            strText = document.getElementById("txtsrchText").value;
        }
        if (strText == 'keywords'){
            strText = '';
        }
        strText = strText.replace("<", "")
        strText = strText.replace(">", "")

        if (strText.length>0){
            if (strSearchHeader.length>0){
                strSearchHeader += ', '
            }else{
                strSearchHeader = 'Pre-Production Forum : '            
            }
            strSearchHeader += strText
        }
        //window.alert("region:" + intRegionID + ", text:" + strText + "::" + strSearchHeader);

        document.getElementById("Title").innerHTML = "Loading....";
        document.getElementById("ForumPosts").innerHTML = "";
        ret = ws_Forums.SearchSite(intRegionID, strText, f_OnCompleteSearchSite, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteSearchSite(result){    
        document.getElementById("Title").innerHTML = strSearchHeader;
        document.getElementById("ForumPosts").innerHTML = result;
    }


    function f_SearchPaged(intPageNumber){
        var strText = '';
        var intRegionID = '';
        strSearchHeader = '';
        
        //strText = strPassedText;
        //intRegionID = intPassedContID 
        
        if (intRegionID.length<1){
            //intRegionID  = document.getElementById("cmbsrchRegions").options[document.getElementById("cmbsrchRegions").selectedIndex].value;
        }
        if (intRegionID.length<1){
            intRegionID='j';
        }
        if(isNaN(intRegionID)==true){
            intRegionID = 0;
        }else{
            //strSearchHeader = 'Pre-Production Forum : ' + document.getElementById("cmbsrchRegions").options[document.getElementById("cmbsrchRegions").selectedIndex].text;
            strSearchHeader = 'Pre-Production Forum';
        }
        strSearchHeader = 'Pre-Production Forum';
        

        if (strText.length<1){
            strText = document.getElementById("txtsrchText").value;
        }
        if (strText == 'keywords'){
            strText = '';
        }
        strText = strText.replace("<", "")
        strText = strText.replace(">", "")

        if (strText.length>0){
            if (strSearchHeader.length>0){
                strSearchHeader += ', '
            }else{
                strSearchHeader = 'Pre-Production Forum : '            
            }
            strSearchHeader += strText
        }
        //window.alert("region:" + intRegionID + ", text:" + strText + "::" + strSearchHeader);

        document.getElementById("Title").innerHTML = "Loading....";
        document.getElementById("ForumPosts").innerHTML = "";

        //document.getElementById("divSearchResults").style.visibility = '';
        //document.getElementById("ForumPosts").innerHTML = "Loading....";
        ret = ws_Forums.SearchPaged(intPageNumber, 20, 0, strText, f_OnCompleteSearchPaged, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteSearchPaged(result){
        var varArray = result.split("||");
        document.getElementById("ForumPosts").innerHTML = varArray[0];
        //document.getElementById("divResultsHead").innerHTML = varArray[1];
        document.getElementById("Title").innerHTML = strSearchHeader;
    }
    
   

    function f_ShowAll(){
        ret = ws_Forums.ShowAll(f_OnCompleteShowAll, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteShowAll(result){
        document.getElementById("SearchResults").innerHTML = result;
    }




    function f_Save(intID){
        var julPosted;
        var strTitle;
        var strMessage;
        var boolEmailUpdate;
        var intViews;
        var strRegions;
        var intOwnerID;
        
        if (intID.length<1){
            intID='j';
        }
        if(isNaN(intID)==true){
            intID = 0;
        }

        intOwnerID  = document.getElementById("cmbOwners").options[document.getElementById("cmbOwners").selectedIndex].value;
        if (intOwnerID.length<1){
            intOwnerID='j';
        }
        if(isNaN(intOwnerID)==true){
            intOwnerID = 0;
        }

        len = document.getElementById("lstRegions").length
        i = 0
        strRegions = ""
        
        for (i = 0; i < len; i++) {
            if (document.getElementById("lstRegions")[i].selected) {
                strRegions = strRegions + document.getElementById("lstRegions")[i].value + "~"
            } 
        }

        strTitle = document.getElementById("txtTitle").value;
        strMessage = document.getElementById("txtMessage").value;
        boolEmailUpdate = document.getElementById("chkEmailUpdate").checked;

        ret = ws_Forums.Save(intID, strTitle, strMessage, boolEmailUpdate, strRegions, intOwnerID, f_OnCompleteSave, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_Delete(intID){
        var resp= confirm("Do you really want to delete this Forum Post?");
        if (resp==true){
            ret = ws_Forums.Delete(intID, f_OnCompleteDelete, f_OnErrorGeneric, f_OnTimeoutGeneric);
        }
    }
    function f_OnCompleteSave(result){
        window.alert("Save complete");
        document.getElementById("ForumDetail").innerHTML = '';
    }
    function f_OnCompleteDelete(result){
        window.alert("The forum post has been deleted");
        document.getElementById("ForumDetail").innerHTML = '';
        f_Search();        
    }



    function f_SaveSite(){
        var julPosted;
        var strTitle;
        var strMessage;
        var boolEmailUpdate;
        var intViews;
        var strRegions;
        var intOwnerID;
        
        intID = 0;

        intOwnerID  = 1

        len = document.getElementById("lstRegions").length
        i = 0
        strRegions = ""
        
        for (i = 0; i < len; i++) {
            if (document.getElementById("lstRegions")[i].selected) {
                strRegions = strRegions + document.getElementById("lstRegions")[i].value + "~"
            } 
        }

        strTitle = document.getElementById("txtTitle").value;
        strMessage = document.getElementById("txtMessage").value;
        //boolEmailUpdate = document.getElementById("chkEmailUpdate").checked;
        boolEmailUpdate = false;

        if (strTitle.length<1 || strMessage.length<1){
            window.alert("Please enter your title and message");
        }else if (strRegions.length<1){
            window.alert("Please select at least one region for your message");
        }else{
            ret = ws_Forums.Save(intID, strTitle, strMessage, boolEmailUpdate, strRegions, intOwnerID, f_OnCompleteSaveSite, f_OnErrorGeneric, f_OnTimeoutGeneric);
        }
    }
    function f_OnCompleteSaveSite(result){
        //document.getElementById("Submit").style.left = '310px';
        //document.getElementById("Submit").innerHTML = 'Thank you.  Your post has been submitted.';
        //redirect to the forum page
        window.location='forum.aspx';
    }



    function f_ForumReplySave(intReplyID, intForumID){
        //intCurForumID holds the current id of the forum post
        var strMessage;
        strMessage = document.getElementById("txtReplyMessage").value;
        ret = ws_Forums.SaveReply(intReplyID, intForumID, strMessage, f_OnCompleteSaveReply, f_OnErrorGeneric, f_OnTimeoutGeneric);        
    }
    function f_DeleteReply(intID){
        var resp= confirm("Do you really want to delete this Forum Reply?");
        if (resp==true){
            ret = ws_Forums.DeleteReply(intID, f_OnCompleteReplyDelete, f_OnErrorGeneric, f_OnTimeoutGeneric);
        }
    }
    function f_OnCompleteSaveReply(result){
        window.alert ("Save complete");
        document.getElementById("ForumReplyDetail").innerHTML = '';
        f_ShowForumDetail(intGForumID);
    }
    function f_OnCompleteReplyDelete(result){
        window.alert("The forum reply has been deleted");
        document.getElementById("ForumReplyDetail").innerHTML = '';
        f_ShowForumDetail(intGForumID);
    }




    function f_setDeleted(){
        document.getElementById("divDeleted").innerHTML=Date() + '&nbsp;<a onclick=f_setUnDeleted();>[unDelete]</a>';
        document.getElementById("txtDeleted").value=Date();
    }
    function f_setUnDeleted(){
        document.getElementById("divDeleted").innerHTML='&nbsp;<a onclick=f_setDeleted()>[Delete]</a>';
        document.getElementById("txtDeleted").value='';
    }




    function f_DrawForumID(intID){
        document.getElementById("ForumPane").innerHTML = "Working....";
        ret = ws_Forums.ShowForumID(intID, f_OnCompleteFileID, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteFileID(result){
        document.getElementById("FilePane").innerHTML = result;
    }

    function f_RemoveReplyImage(intID){
        var resp= confirm("Do you really want to remove this image?");
        if (resp==true){
            ret = ws_Forums.RemoveImage(intID, f_onCompleteRemoveReplyImage, f_OnErrorGeneric, f_OnTimeoutGeneric);
        }
    }
    function f_onCompleteRemoveReplyImage(result){
        f_RefreshReplyImageList(intGForumID);
    }


    function f_RefreshImageList(intID){
        //get the details of the blog from the database and show them in the div on the requesting form
        ret = ws_Forums.RefreshImageList(intID, f_OnCompleteRefreshImageList, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteRefreshImageList(result){
        document.getElementById("ForumImageList").innerHTML = result;
        if (result=='There are no images.  Use the upload button below to add an image to this forum post'){
            window.alert("There are no images for this forum post.  Please use the upload new image button to add a new image");
        }
    }

    function f_RefreshReplyImageList(intID){
        ret = ws_Forums.RefreshReplyImageList(intID, f_OnCompleteRefreshImageList, f_OnErrorGeneric, f_OnTimeoutGeneric);
    }
    function f_OnCompleteRefreshImageList(result){
        document.getElementById("ForumReplyImageList").innerHTML = result;
        if (result=='There are no images.  Use the upload button below to add an image to this forum reply'){
            window.alert("There are no images for this forum reply.  Please use the upload new image button to add a new image");
        }
    }


    function f_ShowImageHTML(Name,ImagePathLive,AltText){
        var strHtml;
        
        strHtml = '<img src="' + ImagePathLive + '" alt="' + AltText + '" id="' + Name + '"/>'
        document.getElementById("ForumImageHTML").value = strHtml;    
    }
    

    function f_OnErrorGeneric(error){
        var stackTrace = error.get_stackTrace();
        var message = error.get_message();
        var statusCode = error.get_statusCode();
        var exceptionType = error.get_exceptionType();
        var timedout = error.get_timedOut();
        var strMessage;
       
        // Display the error.    
        //strMessage = "Stack Trace: " +  stackTrace + "    ||    Service Error: " + message + "    ||    Status Code: " + statusCode + "    ||    Exception Type: " + exceptionType + "    ||    Timedout: " + timedout;
        strMessage = "Message: " +  message;
        window.alert("Error in the Forum web service:" + strMessage);  
    }
    
    function f_OnTimeoutGeneric(result){
        window.alert("There was a time-out in the Forum web service: " + result);
    }    
