﻿
//------------------------------
// When a tree node is clicked
// record that for later use
//------------------------------
var treeNavigateContextClickedNodeKey = 0;
var treeSearchResultContextClickedNodeKey = 0;




//------------------------
// Creates String.Trim()
//------------------------
String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
}

function SetPageDirection(language) {
    var lang = new String(language);

    switch (lang.toUpperCase()) {
        case "ARABIC":
            document.body.dir = 'rtl';
            break;
        case "PERSIAN":
            document.body.dir = 'rtl';
            break;
        case "HEBREW":
            document.body.dir = 'rtl';
            break;
        default:
            document.body.dir = 'ltr';
    }
}

//------------------------------------
// When a search is returns an A tag
// Contains the name "SEARCHRESULT"
//------------------------------------
function ScrollSearchResultIntoView() {
    var x = document.getElementById('SEARCHRESULT');
    if (x != null) x.scrollIntoView(true);
}

function SetBrowseTabActive() {
    var searchTab = tabMain.GetTab(0);
    searchTab.SetVisible(true);
    tabMain.SetActiveTab(searchTab);
}

function SetSearchTabActive() {
    var searchTab = tabMain.GetTab(1);
    searchTab.SetVisible(true);
    tabMain.SetActiveTab(searchTab);
}


function LoadHomeStaticContentOrBookMark() {
    var qs = new String(window.location)
    if (qs.indexOf('BOOKMARK', 0) > 0) {

        callbackPanelBook.PerformCallback('BOOKMARK:show');
        txtSearch.SetText(queryString('QueryText'));
        //DoSearch();
    }
    else {
        callbackPanelBook.PerformCallback('STATIC:Home.htm');
    }
}

function ShowDownloadPage() {
    callbackPanelBook.PerformCallback('STATIC:download.htm');
}

function ShowHelpPage() {
    callbackPanelBook.PerformCallback('STATIC:help.htm');
}

function ShowAPIPage() {
    callbackPanelBook.PerformCallback('STATIC:API.htm');
}
function ShowHistoryPage() {
    callbackPanelBook.PerformCallback('STATIC:History.htm');
}


function ShowDevotionalPage() {
    callbackPanelBook.PerformCallback('STATIC:DEVOTIONAL.htm');
}

function OpenAppSlideShow() {
    var newwindow2 = window.open('../pages/AppSlideShow.aspx', 'Slide', 'height=700,width=955,left=1,top=1,location=1,status=1,scrollbars=0,resizable=1,toolbar=0');
    if (window.focus) newwindow2.focus();
}


function ClearToFreshWhiteScreen() {
    txtSearch.SetText('');
    callbackPanelBook.PerformCallback('');
    SetBrowseTabActive();
    callbackTreeSearchResult.PerformCallback('');

}

function ChangeLanguageTree(language) {

    var treeContainer = callbackTreeNavigator.GetMainElement();

    //This lets the loading message appear at the top by restricting the size
    treeContainer.style.height = 150;

    //Call the callback
    callbackTreeNavigator.PerformCallback(language);

    //This ensures that the tree is big enough to handle it. Jerking motion helps
    var heightOfProbableContainer = screen.availHeight;
    if (heightOfProbableContainer != null && heightOfProbableContainer > 180) {
        treeContainer.style.height = screen.availHeight - 180;
    }
}


function OpenNewWindow(url, name) {
    var newwindow = window.open(url, name, 'height=700,width=800,left=20,top=20,location=1,status=1,scrollbars=1,resizable=1');
    if (window.focus) newwindow.focus();
}

function queryString(key) {
    var re = new RegExp("[?&]" + key + "=([^&$]*)", "i");
    var offset = location.search.search(re);
    if (offset == -1) return null;
    var s = new String(RegExp.$1);
    s = s.replace('+', ' ');
    s = s.replace('+', ' ');
    s = s.replace('+', ' ');
    s = s.replace('+', ' ');
    s = s.replace('+', ' ');
    s = s.replace('+', ' ');
    s = s.replace('+', ' ');
    s = s.replace('+', ' ');
    s = s.replace('+', ' ');
    return decodeURI(s);
}

//-------------------------
// Search Related Helpers
//-------------------------

function SubmitBlocker(event) {
    var keyCode = 0;
    if (window.event) {
        keyCode = window.event.keyCode;
        if (keyCode == 13) {
            event.returnValue = false;
            event.cancel = true;
            DoSearch();
            return false;
        }
    }
    else if (event.which) {
        keyCode = event.which;
        if (keyCode == 13) {
            event.stopPropagation();
            DoSearch();
            return false;
        }
    }
    return true;
}

function CheckIfDoSearchShouldBeRun() {
    var nameOfElement = new String(event.srcElement.name);
    var charFoundAt = nameOfElement.search(/txtSearch/);
    if (charFoundAt > 0) {
        DoSearch();
    }

}

function DoSearch() {

    var query = txtSearch.GetText()
    if (query == '' || query == SearchPromptText) {
        txtSearch.SetIsValid(false);
        alert('Enter a word or phrase to search for');
    }
    else {
        SetSearchTabActive();
        txtSearch.SetIsValid(true);

        callbackTreeSearchResult.PerformCallback(query);
    }
}

var color_arr = new Array("#ffffff", "#eeeeFF", "#ddddFF", "#ccccFF", "#bbbbFF", "#aaaaFF", "#9999FF", "#8888FF", "#7777FF", "#6666FF", "#5555FF", "#4444FF", "#3333FF", "#2222FF", "#1111FF", "#0000FF");
var current_color_pos = 0;
var current_text_pos = 0;
var interval_pointer = null;
var fase = 1; // fadein = 1, fadeout= -1
var current_alpha = 0;
var fade_step_time = 100;
var fade_out_fade_in_step_time = 500;
var show_text_time = 5000;

var text_arr = new Array(
                                  '\"O King of Berlin\"',
                                  '\"Holy Day\" AND Suspend AND Work',
                                  '\"central themes\" AND transformation',
                                  '\"advancing the process of entry by troops\"',
                                  '\"devotional gatherings\" OR \"devotional meetings\"',
                                  '\"Hidden Words\" AND revealed AND year',
                                  '\"Prayer for the Dead\" AND adult',
                                  '\"The four kinds of love\"',
                                  '\"holy day" AND "excuse from School\" AND children',
                                  '\"future of the Dominion of Canada\" AND great',
                                  '\"engage in some occupation\"',
                                  '\"ye are all the fruits of one tree\"'

);


function StartTryItTimer() {

    $get('aTryIt').innerText = text_arr[Math.floor(Math.random() * text_arr.length)];
    interval_pointer = setInterval(ShowRandomQuery, fade_step_time);

}

function SetTryItValue(text) {
    txtSearch.SetText(text);
    DoSearch();

}

function ShowRandomQuery() {
    clearInterval(interval_pointer);
    // we have shown this for x seconds now go to fadeout
    if (fase == 0) {
        fase = -1;
        interval_pointer = setInterval(ShowRandomQuery, fade_step_time);
    }
    // we are fading out
    else if (fase == -1) {
        current_color_pos--;
        // fade out fase is ready next text to fadein
        if (current_color_pos < 0) {
            current_color_pos = 0;
            fase = 1;
            current_text_pos = Math.floor(Math.random() * text_arr.length);

            // set the new text.
            $get('aTryIt').innerHTML = text_arr[current_text_pos];
            interval_pointer = setInterval(ShowRandomQuery, fade_out_fade_in_step_time);
        }
        else // keep fading out
        {
            $get('aTryIt').style.color = color_arr[current_color_pos];
            interval_pointer = setInterval(ShowRandomQuery, fade_step_time);
        }
    }
    // we are fading in
    else if (fase == 1) {
        current_color_pos++;
        // fade in fase is ready keep showing text
        if (current_color_pos == color_arr.length) {
            current_color_pos = color_arr.length - 1;
            fase = 0;
            interval_pointer = setInterval(ShowRandomQuery, show_text_time);
        }
        else // keep fading in
        {
            // alpha++
            $get('aTryIt').style.color = color_arr[current_color_pos];
            interval_pointer = setInterval(ShowRandomQuery, fade_step_time);
        }
    }

}