var node_count = 0;
// this is hard coded to match values predefined below in the initial call to start these areas. ...
var last_local = 3; 
var last_national = 3; 
var last_world = 3; 
var last_entertainment = 3; 
var last_sports = 3; 
var last_odds = 3;
var last_business = 3;
var last_health = 3;
var last_science = 3;
var last_religion = 3;
var last_consumer = 3;

var today = new Date;

function trim(sString)
{
    while (sString.substring(0,1) == ' ')
        sString = sString.substring(1, sString.length);
    while (sString.substring(sString.length-1, sString.length) == ' ')
        sString = sString.substring(0,sString.length-1);

    return sString;
} 

function pullStories_AJAX(tree,nid,number_pass,return_idName)
{
    // get data from ajax, append it above div with id = return_idName 
    var temp = document.createElement('div');
    var new_id = "newDiv_" + node_count;
    var start_num; var end_num;
    temp.setAttribute("id",new_id);
    var x = document.getElementById(return_idName).appendChild(temp);

    number = parseInt(number_pass);

    switch(return_idName)
    {
        case 'more_local':
            start_num = (last_local + 1);
            last_local = start_num + number;
            break;
        case 'more_national':
            start_num = (last_national + 1);
            last_national = start_num + number;
            break;
        case 'more_world':
            start_num = (last_world + 1);
            last_world = start_num + number;
            break;
        case 'more_sports':
            start_num = (last_sports + 1);
            last_sports = start_num + number;
            break;
        case 'more_entertainment':
            start_num = (last_entertainment + 1);
            last_entertainment = start_num + number;
            break;
        case 'more_odds':
            start_num = (last_odds + 1);
            last_odds = start_num + number;
            break;
        case 'more_business':
            start_num = (last_business + 1);
            last_business = start_num + number;
            break;
        case 'more_health':
            start_num = (last_health + 1);
            last_health = start_num + number;
            break;
        case 'more_science':
            start_num = (last_science + 1);
            last_science = start_num + number;
            break;
        case 'more_religion':
            start_num = (last_religion + 1);
            last_religion = start_num + number;
            break;
        case 'more_consumer':
            start_num = (last_consumer + 1);
            last_consumer = start_num + number;
            break;
    }
    //end_num = start_num + 10;


    $("#"+new_id).load("/index/ajaxLoadMore", { 'tree':tree,'nid':nid,'start':start_num,'count':number });
    
    // optional (shrink or remove div at [-]

    node_count ++;
}

function toggle(name)
{
    switch(name)
    {
        case 'science':
            document.getElementById('toggle_science').style.margin = "0px 0px 0px 0px";
            break;
        case 'consumer':
            document.getElementById('toggle_consumer').style.margin = "0px 0px 0px 0px";
            break;
        case 'business':
            document.getElementById('toggle_business').style.margin = "0px 0px 0px 0px";
            break;
        case 'religion':
            document.getElementById('toggle_religion').style.margin = "0px 0px 0px 0px";
            break;
        case 'health':
            document.getElementById('toggle_health').style.margin = "0px 0px 0px 0px";
            break;
    }

    if(document.getElementById("toggle_"+name).innerHTML == "- collapse")
    {
        document.getElementById("toggle_"+name).innerHTML = "+ expand&nbsp;&nbsp;&nbsp;&nbsp;";
        document.getElementById("toggle_"+name).style.color = "#fff";
        document.getElementById("more_"+name).style.display = "none";
        document.getElementById("more_"+name+"_link").style.display = "none";
        document.getElementById(name+"_stories").style.display = "none";
        document.getElementById("h2_"+name).className = "no_stories_showing";
        document.getElementById("h2_"+name+"_link").style.color = "#fff";

        setCookie_categoryView(name,'0')
    }
    else
    {
        document.getElementById("toggle_"+name).innerHTML = "- collapse";
        document.getElementById("toggle_"+name).style.color = "#333";
        document.getElementById("more_"+name).style.display = "block";
        document.getElementById("more_"+name+"_link").style.display = "block";
        document.getElementById(name+"_stories").style.display = "block";
        document.getElementById("h2_"+name).className = "spacer";
        document.getElementById("h2_"+name+"_link").style.color = "#333";

        setCookie_categoryView(name,'1')
    }
}

function toggle_fromCookie(name,flag)
{
    switch(name)
    {
        case 'science':
            document.getElementById('toggle_science').style.margin = "0px 0px 0px 0px";
            break;
        case 'consumer':
            document.getElementById('toggle_consumer').style.margin = "0px 0px 0px 0px";
            break;
        case 'business':
            document.getElementById('toggle_business').style.margin = "0px 0px 0px 0px";
            break;
        case 'religion':
            document.getElementById('toggle_religion').style.margin = "0px 0px 0px 0px";
            break;
        case 'health':
            document.getElementById('toggle_health').style.margin = "0px 0px 0px 0px";
            break;
    }

    if(flag == "0")
    {
        document.getElementById("toggle_"+name).innerHTML = "+ expand&nbsp;&nbsp;&nbsp;&nbsp;";
        document.getElementById("toggle_"+name).style.color = "#fff";
        document.getElementById("more_"+name).style.display = "none";
        document.getElementById("more_"+name+"_link").style.display = "none";
        document.getElementById(name+"_stories").style.display = "none";
        document.getElementById("h2_"+name).className = "no_stories_showing";
        document.getElementById("h2_"+name+"_link").style.color = "#fff";
    }
    else
    {
        document.getElementById("toggle_"+name).innerHTML = "- collapse";
        document.getElementById("toggle_"+name).style.color = "#333";
        document.getElementById("more_"+name).style.display = "block";
        document.getElementById("more_"+name+"_link").style.display = "block";
        document.getElementById(name+"_stories").style.display = "block";
        document.getElementById("h2_"+name).className = "spacer";
        document.getElementById("h2_"+name+"_link").style.color = "#333";
    }
}

function getCookieVal (offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1)
    endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}

function FixCookieDate (date) {
    var base = new Date(0);
    var skew = base.getTime(); // dawn of (Unix) time - should be 0
    if (skew > 0)  // Except on the Mac - ahead of its time
        date.setTime (date.getTime() - skew);
}

function GetCookie (name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg)
            return getCookieVal (j);
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break; 
    }
    return null;
}

function SetCookie (name,value,expires,path,domain,secure) 
{
    document.cookie = name + "=" + escape (value);
    document.cookie = "m_ksl_newsCookieTimer = " + expires;
}

function DeleteCookie (name,path,domain) 
{
    if (GetCookie(name)) {
        document.cookie = name + "=" +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

function strstr (haystack, needle, bool) 
{
    var pos = 0;
    haystack += '';
    pos = haystack.indexOf( needle );    
    if (pos == -1) 
        return false;
    else
    {
        if (bool)
            return haystack.substr( 0, pos );
        else
            return haystack.slice( pos );
    }
}

function loadCookie_moreStories()
{
    old_cookie = GetCookie("m_ksl_moreStories");
    if(old_cookie != null)
    {
        // explode cookie and run script to load into the page.
        categories = old_cookie.split(";");
        for(var i in categories)
        {
            // split on "," and run [pullStories_AJAX('103','172','5','NAME');] for each
            temp_array = categories[i].split(",");
            if(temp_array[1] > 0)
            {
                // for the pullStories function in this cat 

                switch(temp_array[0])
                {
                    case 'local':
                        pullStories_AJAX('103','148',temp_array[1] * 5,'more_local');
                        break;
                    case 'national':
                        pullStories_AJAX('103','157',temp_array[1] * 5,'more_national');
                        break;
                    case 'world':
                        pullStories_AJAX('103','235',temp_array[1] * 5,'more_world');
                        break;
                    case 'entertainment':
                        pullStories_AJAX('103','154,156,332,155',temp_array[1] * 5,'more_entertainment');
                        break;
                    case 'sports':
                        pullStories_AJAX('103','294',temp_array[1] * 5,'more_sports');
                        break;
                    case 'oddsandends':
                        pullStories_AJAX('103','333',temp_array[1] * 5,'more_odds');
                        break;
                    case 'business':
                        pullStories_AJAX('103','153',temp_array[1] * 5,'more_business');
                        break;
                    case 'health':
                        pullStories_AJAX('103','201,200',temp_array[1] * 5,'more_health');
                        break;
                    case 'science':
                        pullStories_AJAX('103','169,170',temp_array[1] * 5,'more_science');
                        break;
                    case 'religion':
                        pullStories_AJAX('103','576',temp_array[1] * 5,'more_religion');
                        break;
                    case 'consumer':
                        pullStories_AJAX('103','172',temp_array[1] * 5,'more_consumer');
                    break;
                }					
            }
        }
    }
}

function loadCookie_categoryView()
{
    old_cookie = GetCookie("m_ksl_categoryView");
    if(old_cookie != null)
    {
        categories = old_cookie.split(";");
        for(var i in categories)
        {
            temp_array = categories[i].split(",");
            {
                // for the pullStories function in this cat 	
                switch(temp_array[0])
                {
                    case 'local':
                        toggle_fromCookie('local',temp_array[1])
                        break;
                    case 'national':
                        toggle_fromCookie('national',temp_array[1])
                        break;
                    case 'world':
                        toggle_fromCookie('world',temp_array[1])
                        break;
                    case 'entertainment':
                        toggle_fromCookie('entertainment',temp_array[1])
                        break;
                    case 'sports':
                        toggle_fromCookie('sports',temp_array[1])
                        break;
                    case 'odds':
                        toggle_fromCookie('odds',temp_array[1])
                        break;
                    case 'business':
                        toggle_fromCookie('business',temp_array[1])
                        break;
                    case 'health':
                        toggle_fromCookie('health',temp_array[1])
                        break;
                    case 'science':
                        toggle_fromCookie('science',temp_array[1])
                        break;
                    case 'religion':
                        toggle_fromCookie('religion',temp_array[1])
                        break;
                    case 'consumer':
                        toggle_fromCookie('consumer',temp_array[1])
                        break;
                }
            }
        }
    }
}

function setCookie_moreStories(cat)
{
    // check if the cookie has a value.  if no, create a new one, else increment the old one
    c_name = "m_ksl_moreStories";
    old_cookie = GetCookie(c_name);
    if(old_cookie == null)
    {
        switch(cat)
        {
            case 'local':
                value = "local,1;national,0;world,0;entertainment,0;sports,0;oddsandends,0;business,0;health,0;science,0;religion,0;consumer,0";
                break;
            case 'national':
                value = "local,0;national,1;world,0;entertainment,0;sports,0;oddsandends,0;business,0;health,0;science,0;religion,0;consumer,0";
                break;
            case 'world':
                value = "local,0;national,0;world,1;entertainment,0;sports,0;oddsandends,0;business,0;health,0;science,0;religion,0;consumer,0";
                break;
            case 'entertainment':
                value = "local,0;national,0;world,0;entertainment,1;sports,0;oddsandends,0;business,0;health,0;science,0;religion,0;consumer,0";
                break;
            case 'sports':
                value = "local,0;national,0;world,0;entertainment,0;sports,1;oddsandends,0;business,0;health,0;science,0;religion,0;consumer,0";
                break;
            case 'oddsandends':
                value = "local,0;national,0;world,0;entertainment,0;sports,0;oddsandends,1;business,0;health,0;science,0;religion,0;consumer,0";
                break;
            case 'business':
                value = "local,0;national,0;world,0;entertainment,0;sports,0;oddsandends,0;business,1;health,0;science,0;religion,0;consumer,0";
                break;
            case 'health':
                value = "local,0;national,0;world,0;entertainment,0;sports,0;oddsandends,0;business,0;health,1;science,0;religion,0;consumer,0";
                break;
            case 'science':
                value = "local,0;national,0;world,0;entertainment,0;sports,0;oddsandends,0;business,0;health,0;science,1;religion,0;consumer,0";
                break;
            case 'religion':
                value = "local,0;national,0;world,0;entertainment,0;sports,0;oddsandends,0;business,0;health,0;science,0;religion,1;consumer,0";
                break;
            case 'consumer':
                value = "local,0;national,0;world,0;entertainment,0;sports,0;oddsandends,0;business,0;health,0;science,0;religion,0;consumer,1";
                break;
        }
    }
    else
    {
        // explode old cookie and find the cat, ++ value, put back into cookie.
        categories = old_cookie.split(";");
        for(var i in categories)
        {
            if(strstr(categories[i],cat))
            {
                var temp_cat = categories[i].split(",");
                temp_cat[1] = parseInt(temp_cat[1]) + 1;
                categories[i] = temp_cat[0] + "," + temp_cat[1];
            }
        }
        value = categories.join(';');
    }
    // should be about an hour TimeOfLife for the cookie.
    var expdate = new Date ();
    expdate = expdate.getTime() + (60 * 60 * 1000);
    SetCookie(c_name,value,expdate);
}

function cookieKiller()
{
    var now = new Date;
    now = now.getTime();

    page_time = GetCookie('m_ksl_newsCookieTimer');
    if(page_time < now)
    {
        // Delete both ksl_news cookies for mobile
        DeleteCookie('m_ksl_categoryView');
        DeleteCookie('m_ksl_moreStories');
        DeleteCookie('m_ksl_newsCookieTimer');
    }
}

function setCookie_categoryView(cat,flag_value)
{
    // check if the cookie has a value.  if no, create a new one, else increment the old one
    c_name = "m_ksl_categoryView";
    old_cookie = GetCookie(c_name);
    if(old_cookie == null)
        old_cookie = "local,1;national,1;world,1;entertainment,1;sports,1;odds,1;business,0;health,0;science,0;religion,0;consumer,0";

    // explode old cookie and find the cat, swap value 0 <-> 1, put back into cookie.
    categories = old_cookie.split(";");
    // 0 = off, 1 = on ... cat_name,flag;cat_name2,flag;....
    for(var i in categories)
    {
        if(strstr(categories[i],cat))
        {
            temp_array = categories[i].split(",");
            switch(temp_array[0])
            {
                case 'local':
                    (temp_array[1] == 0) ? temp_array[1] = 1 :  temp_array[1] = 0;
                    break;
                case 'national':
                    (temp_array[1] == 0) ? temp_array[1] = 1 :  temp_array[1] = 0;
                    break;
                case 'world':
                    (temp_array[1] == 0) ? temp_array[1] = 1 :  temp_array[1] = 0;
                    break;
                case 'entertainment':
                    (temp_array[1] == 0) ? temp_array[1] = 1 :  temp_array[1] = 0;
                    break;
                case 'sports':
                    (temp_array[1] == 0) ? temp_array[1] = 1 :  temp_array[1] = 0;
                    break;
                case 'odds':
                    (temp_array[1] == 0) ? temp_array[1] = 1 :  temp_array[1] = 0;
                    break;
                case 'business':
                    (temp_array[1] == 0) ? temp_array[1] = 1 :  temp_array[1] = 0;
                    break;
                case 'health':
                    (temp_array[1] == 0) ? temp_array[1] = 1 :  temp_array[1] = 0;
                    break;
                case 'science':
                    (temp_array[1] == 0) ? temp_array[1] = 1 :  temp_array[1] = 0;
                    break;
                case 'religion':
                    (temp_array[1] == 0) ? temp_array[1] = 1 :  temp_array[1] = 0;
                    break;
                case 'consumer':
                    (temp_array[1] == 0) ? temp_array[1] = 1 :  temp_array[1] = 0;
                    break;
            }
            categories[i] = temp_array[0] + "," + temp_array[1];
        }
    }

    value = categories.join(';');

    var expdate = new Date ();
    expdate = expdate.getTime() + (60 * 60 * 1000);
    SetCookie(c_name,value,expdate);
}
