var prevStart=1,nextStart=1;
var prevHref="", nextHref="", appServer = $("#appServer").val();
var itemCount = parseInt($("#itemCount").val());
var totalItemCount = parseInt($("#totalItemCount").val());
var startItem = parseInt($("#startItem").val());

var totWidth = document.body.clientWidth+"px";
var totWindowHeight = document.getElementById("pTubeContainer").clientHeight+"px";
$("#completePage, #mainPageLoading").css({"width":totWidth});
$("#completePage").css({"height":totWindowHeight});

/*messageObj = new DHTML_modalMessage();
messageObj.setShadowOffset(5);*/

alertObj = new $.alerts();

function showHideTopics() {
    if($("#showHideTopics").find("div:eq(1) span").html() != "Hide Personal Topics")
    //if($(el).hasClass("selected"))
        {
            //Hide Topics
            $("#showHideTopics").find("div:eq(1) span").html("Hide Personal Topics");
            $("#personalizedSearchBox").animate({"height":"196px"}, 625);
            //$(".personalizedSearchButtons").animate({"top":"108px"}, 500);
            $("#topicDisplay").css("display","block");
            $("#topicDisplay").animate({height:"104px"}, 500);//,function(){
                
           // });
        } else {
            //Show Topics
            $("#showHideTopics").find("div:eq(1) span").html("Show Personal Topics");
            $("#personalizedSearchBox").animate({"height":"82px"}, 600);
            $("#topicDisplay").animate({height:"0px"},650,function(){
                $("#topicDisplay").css({"display":"none"});
            });
        }
}

function onEnter( evt, operation, start) {
    var keyCode = null;
    if( evt.which ) {
        keyCode = evt.which;
    } else if( evt.keyCode ) {
        keyCode = evt.keyCode;
    }
    if( 13 == keyCode ) {
        if(operation == "combinedSearch"){
            combinedSearchNew(start);
        }
        else
            searchPersonalTube();
        return false;
    }
    return true;
}

function searchPersonalTube()
{
    var searchTopic = escape($("#searchTopicTxt").val());
    var youtubeID = $("#youtubeID").val();
    if(typeof(searchTopic) == "undefined")
        searchTopic = "";
    if(typeof(youtubeID) == "undefined")
        youtubeID = "";
    if(searchTopic == ""  &&  youtubeID == "")
    {
        showHidePtLoading("hide");
        return;
    }
    else
    {
       //showHidePtLoading("show","Searching for videos...");
       var href = appServer+"/videos/";
       var params = "";

       if(youtubeID != "")
            youtubeID = rstr2b64("YOUTUBE:"+youtubeID);

       if(youtubeID == "")
           params = params + "q="+searchTopic;
       if(searchTopic == "")
           params = params + "ac="+youtubeID ;

       if(searchTopic != "" && youtubeID != "")
            params = "q="+searchTopic+"&ac="+youtubeID;
       
       var searchOption = $("input[name=searchOption]:checked").val();
       
       if(searchOption == "currTopic" && $("#actualTopicPath").val() != "Top")
       {
           href += $("#actualTopicPath").val()+"?"+params;
       }
       else
           href += "search?"+params;

       $("#isBackBtn").val("true");

        document.searchTopicForm.action=href;
        document.searchTopicForm.submit();
    }
}

function clearField(id)
{
    $(id).val("");
}

function clearSavedFields(el)
{
    $(el).val("");
    $("#topicsHolder").html("");
    $("#searchTopics").val("");
}

function combinedSearchNew(start)
{
    //$("#videoResults, .topicList, .topicsBreadcrumb").css("display","none");
    //$(".itemsDisplay").css("width","63%");
    var searchTopics = escape($("#searchTopics").val());
    var searchKeywords = escape($("#searchKeywords").val());
    //var hostingSite = $("#hostingSite").val();
    var userID = escape($("#userID").val());
    var feedAccounts = "";
    if(userID != "")
        feedAccounts = rstr2b64("YOUTUBE:"+userID);
    
    if(typeof(start) == "undefined")
        start = 0;

    if(searchTopics != "" || searchKeywords != "" || feedAccounts != "")
    {
        //showHidePtLoading("show","Searching for videos...");
        var href = "/videos/search?u=1&t="+searchTopics+"&k="+searchKeywords+"&ac="+feedAccounts+"&start="+start;
        document.searchCriteriaForm.action = href;
        document.searchCriteriaForm.submit();
    }
//    else
//        searchPersonalTube();
}

function combinedSearch()
{
    $("#videoResults, .topicList, .topicsBreadcrumb").css("display","none");
    $(".itemsDisplay").css("width","63%");
    var searchTopics = $("#searchTopics").val();
    var searchKeywords = $("#searchKeywords").val();
    var hostingSite = $("#hostingSite").val();
    var userID = $("#userID").val();
    var feedAccounts = "";
    if(userID != "")
    feedAccounts = hostingSite+":"+userID;
    var href = "/MyCriteriaSearchResults?searchTopics="+searchTopics+"&searchKeywords="+searchKeywords+"&accounts="+feedAccounts+
                "&startItem=0&itemCount=20";
    $("#searchVideoResultsFrame").attr("src",href);
    $("#searchVideoResults").css("display","block");
}

function prevNext(start)
{
    $("#startItem").val(start);
    if(typeof(document.myCriteriaSearchResults) == "undefined")
    {
        $("form[name=myvideos]").attr("action",window.location.href);
        var searchOption = $("input[name=searchOption]:checked").val();
        $("#searchOption").val(searchOption);
        document.myvideos.submit();
    }
    else
    {
        document.myCriteriaSearchResults.submit();
    }
}

function displayPlayback(itemID, sourceName, sourceID)
{
    $("#playbackItemID").val(itemID);
    $("#sourceName").val(sourceName);
    $("#sourceID").val(sourceID);
    
     var sourceToSend = "personaltube";
     if(typeof(itemID) == "undefined" || itemID == "")
        sourceToSend = sourceName;

       sourceToSend = escape(rstr2b64(sourceToSend));
       var href = appServer + "/videos?s=" + sourceToSend + "&v=";
       
       if(itemID != "" && typeof(itemID) != "undefined" ){
           href += itemID;
       }else{
           href += sourceID;
       }

       $("form[name=videoPlayback]").attr("action",href);
        document.videoPlayback.submit();
        
}

function videoPreview(itemID, source, sourceID)
{
    var href = appServer+"/videoPreview.jsp?itemID="+itemID+"&source="+source+"&sourceID="+sourceID;
    return GB_showCenter('Video Preview', href, 500, 500);
}

function logoutHandler()
{
    document.getElementById("logout").action="/LogoutHandler?signInType=mypersonaltube";
    document.getElementById("logout").submit();
}

function saveSearchPreferencesController()
{
    var searchTopics = personalTubeTrim("searchTopics");
    var searchKeywords = personalTubeTrim("searchKeywords");
    //var hostingSite = personalTubeTrim("hostingSite");
    var userID = personalTubeTrim("userID");
    if(searchTopics == "" && searchKeywords == "" && userID == "")
    {
        //displayMessage('includes/emptyCriteriaToSave.inc');
        alertObj.createAlert("emptyCriteriaToSave", "custom", [["Yes", saveSearchPreferences], ["No",""]]);
    }
    else{
        saveSearchPreferences();
    }
}

function saveSearchPreferences(){
    showHidePtLoading("show","Saving Search Preferences...");
    var userID = personalTubeTrim("userID");
    $.ajax({
        url: "/SetAllCriteria",
        type: "POST",
        data:{
            action:'manualAuto',
            feedId:$("#feedID").val(),
            editorName:$("#editorName").val(),
            orgId:$("#orgID").val(),
            topics:$("#searchTopics").val(),
            reqdWords:$("#searchKeywords").val(),
            prohibKeywords:"",
            accountSite:"YOUTUBE",
            accountID:userID,
            setFrom: "consumer"
        },
        success:function(res){
            showHidePtLoading("hide");
            //alert("Save criteria: "+res);
            if(res =="success") {
                alertObj.createAlert("searchCriteriaSaved", "default");
            }
        }
    });
}

function personalTubeTrim(id)
{
    var trimmedStr = $("#"+id).val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    return trimmedStr;
}


function removeMyTopic(currTopicNum)
{
    //searchTopics
    var allTopics = "";
    var topicDivID = "prfrdTopic"+currTopicNum;
    var child = document.getElementById(topicDivID);
    var parentId = document.getElementById('topicsHolder');
    parentId.removeChild(child);

    var elements = $("#topicsHolder > div.preferredTopics");
    elements.each(function() {allTopics += $(this).attr("title") + " ";});

    $("#searchTopics").val(allTopics);
    $("#searchTopics").val(personalTubeTrim("searchTopics"));

    var allTopicsArr = $("#searchTopics").val() == "" ? [] :$("#searchTopics").val().split(" ");

    createdAddedPersTopics(allTopicsArr, 'topicsHolder');

}

function addMyTopic(topic)
{
    var topicPresent = false;
    var elements = $('div.preferredTopics');
    if(elements.length == 3)
        alert("Topic addition limit reached. Please remove any other preferred topic to add this topic.");
    else
    {
        elements.each(function() {topicPresent = ($(this).attr("title") == topic)?true:false;});
        if(!topicPresent)
        {
            var allTopics = $("#searchTopics").val();
            allTopics += " "+topic;
            $("#searchTopics").val(allTopics);
            $("#searchTopics").val(personalTubeTrim("searchTopics"));

            var allTopicsArr = $("#searchTopics").val() == "" ? [] : $("#searchTopics").val().split(" ");

            createdAddedPersTopics(allTopicsArr, 'topicsHolder');
            $("#showHideTopics").find("div:eq(1) span").html("Show Personal Topics");
            showHideTopics();
        }
    }
}

function createdAddedPersTopics(allTopicsArr, parentId){

    var parentIdTmp = $("#"+parentId);

    parentIdTmp.empty();

    if(allTopicsArr.length > 0){
        $.each(allTopicsArr, function(index, value) {
            value = $.trim(value);
            if (value != "") {
                this.divInd = index+1;

                var prfrdTopicDiv = $('<div></div>').addClass('preferredTopics').attr({"title":value, "id":"prfrdTopic"+this.divInd});
                var truncTop = value.substring(4);
                var anchTag = $('<a></a>').addClass('topicTxt').attr("href",appServer+"/videos/"+truncTop).text(value);
                var removeTopicIconDiv = $('<span></span>').addClass('removeTopicIcon').attr("onClick","removeMyTopic('"+this.divInd+"')");
                var imgTag = $('<img />').attr({"src":"images/testDrive/remove_icon.png"}).css("height","15px");

                prfrdTopicDiv.append(anchTag);
                prfrdTopicDiv.append(removeTopicIconDiv.append(imgTag));
                parentIdTmp.append(prfrdTopicDiv);

                if(this.divInd %2 == 1)
                    $("#prfrdTopic"+this.divInd).addClass("odd");
                else
                    $("#prfrdTopic"+this.divInd).addClass("even");
            }
        });
    } else {
        parentIdTmp.append($('<div></div>').addClass('topicsHelpTxt').html("To add a topic to your Personal Topics, browse to that topic via  <a style=''color:#666666;text-decoration: underline; font-weight: bold;' href='/'>Browse All Topics</a>, and click on the <b>Add to Personal Topics</b> button."));
    }
}

function updateFeedItemList(thumbID,action,sourceName, sourceID)
{
    if(sourceName == null)
        sourceName = "";
    if(sourceID == null)
        sourceID = "";
    if(thumbID == null)
        thumbID = "";
    var feedId = $("#feedID").val();

    if(action == "remove") {
        showHidePtLoading("show","Removing video from Favorites...");
        $.ajax({
                url: "GetFeedOnDelItem",
                type: "POST",
                dataType: "json",
                data:{
                    action:action,
                    loginType:"mypersonaltube",
                    orgId:$("#orgID").val(),
                    feedId:feedId,
                    editorName:$("#editorName").val(),
                    itemID:thumbID,
                    editor:$("#editorEmail").val(),
                    START_ITEM:$("#startItem").val(),
                    ITEM_COUNT:$("#itemCount").val()
                },
                /*error: function(request,error) {
                    if(error == "parsererror"){
                        showHidePtLoading("hide");
                        displayMessage('/includes/favoriteVideoRemoved.inc');
                        constructThumbnailDiv('pagination', '');
                    }
                },*/
                success:function(result){
                    if(result){
                        showHidePtLoading("hide");
                        if(result.root){
                            if(result.root.error == "No Feed Items Found"){
                                //displayMessage('/includes/favoriteVideoRemoved.inc');
                                alertObj.createAlert("favoriteVideoRemoved", "default");
                                constructThumbnailDiv('pagination', '');
                            } else if(result.root.status) {
                                //displayMessage('/includes/cannotService.inc');
                                alertObj.createAlert("cannotService", "default");
                            }
                        } else if(result.response.feed.feedItemList == "[object Object]"){
                            //displayMessage('/includes/favoriteVideoRemoved.inc');
                            alertObj.createAlert("favoriteVideoRemoved", "default");
                            var resultXmlJsonFormat = result.response.feed.feedItemList;
                            constructThumbnailDiv('pagination', resultXmlJsonFormat);
                        } 
                    }
                }

        });
    } else if(action == "add") {
      showHidePtLoading("show","Adding video to Favorites...");
      $.ajax({
            url: "GetFeedOnAddItem",
            type: "POST",
            data:{
                action:action,
                loginType:"mypersonaltube",
                orgId:$("#orgID").val(),
                feedId:feedId,
                editorName:$("#editorName").val(),
                itemID:thumbID,
                sourceName:sourceName,
                sourceID:sourceID,
                editor:$("#editorEmail").val()
            },
            success:function(res){

                if(res =="success")
                {
                    showHidePtLoading("hide");
                    //displayMessage('/includes/favoriteVideoAdded.inc');
                    alertObj.createAlert("favoriteVideoAdded", "default");
                }
            }
        });
    }
}

function showHidePtLoading(action, message)
{
    if(action == "show")
    {
        showHideAbsDiv(action,message);
        $(".mainAbsDiv").css("display","");
    }
    if(action == "hide")
    {
        showHideAbsDiv(action);
        $(".mainAbsDiv").css("display","none");
    }
}

function showHideAbsDiv(action, message)
{
    if(action == "show")
    {
        $("#message").html(message);
        topHeight = getScrollTop() +250+"px";
        $("#mainPageLoading").css({"top":topHeight});
        $(".mainAbsDiv").css("display","");
    }
    else
    {
        $(".mainAbsDiv").css("display","none");
    }
}

function loadPersonalPrefs()
{
    $.ajax({
        type: 'POST',
        url: "ViewFeedDescription",
        dataType: "json",
        data:{call: "showPref", feedId: $("#feedID").val()},
        success: function(result){
            if(result == "[object Object]"){
                $("#searchKeywords").val(result.reqdWords);
                $("#userID").val((""+result.feedAccount).split(":")[1]);
                var fTopic = [];
                fTopic = result.feedTopic;

                var fTopicStr = "";
                if (fTopic.length > 0)
                    fTopicStr = fTopic.join(" ");

                createdAddedPersTopics(fTopic, 'topicsHolder');
                
                $("#searchTopics").val(fTopicStr);
                $("#showHideTopics").find("div:eq(1) span").html("Show Personal Topics");/* To show the saved topics section */
                showHideTopics();
            }
        }
    });
}

function getScrollTop()
{
    var t;
    if(document.documentElement&&document.documentElement.scrollTop){
        t=document.documentElement.scrollTop;
    }else{
        if(document.body){
            t=document.body.scrollTop;
        }
    }
    return t;
}

function removeFeedItemList(thumbID,action,currVideoSetting) {
    if(thumbID == null)
        thumbID = "";
    if(currVideoSetting == null)
        currVideoSetting = "";
    var feedId = $("#feedID").val();

    if(action == "remove") {
        showHidePtLoading("show","Removing video from Favorites...");
        $.ajax({
                url: "GetFeedOnDelItem",
                type: "POST",
                dataType: "json",
                data:{
                    action:action,
                    loginType:"mypersonaltube",
                    orgId:$("#orgID").val(),
                    feedId:feedId,
                    editorName:$("#editorName").val(),
                    itemID:thumbID,
                    editor:$("#editorEmail").val(),
                    START_ITEM:$("#startItem").val(),
                    ITEM_COUNT:$("#itemCount").val()
                },
               success:function(result){
                    if(result){
                        showHidePtLoading("hide");
                        if(result.root){
                            if(result.root.error == "No Feed Items Found"){
                                alertObj.createAlert("favoriteVideoRemoved", "default");
                                constructThumbnailDiv('pagination', '');
                            } else if(result.root.status) {
                                alertObj.createAlert("cannotService", "default");
                            }
                        } else if(result.response.feed.feedItemList == "[object Object]"){
                            alertObj.createAlert("favoriteVideoRemoved", "default");
                            var resultXmlJsonFormat = result.response.feed.feedItemList;
                            constructThumbnailDiv('pagination', resultXmlJsonFormat,currVideoSetting);
                        }
                    }
                }

        });
    }
}
