﻿var ClientMethods = Class.create({
    initialize: function(bsClientId)
    {
        this.bsClientID = bsClientId;
    },
    getArticle: function(guid)
    {
        var tar = $F('hfTargetDiv');
        var secNav = $('hfSectionNavigation');
        
        new Ajax.Request('Utilities/cmMethods.aspx', {
            method: 'post',
            parameters: { Command: 'GetArticleBody', BSClientID: this.bsClientID, ArticleGUID: guid },
            onSuccess: function(xhrResponse)
            {
                var d = new Element('div').update(xhrResponse.responseText);
                
                var ph = $$('#' + tar + ' div.ArticleHeadline')[0].id;
                var pb = $$('#' + tar + ' div.ArticleBody')[0].id;
                
                $(ph).innerHTML = d.getElementsByClassName('lblArticleHeadline')[0].innerHTML;
                $(pb).innerHTML = d.getElementsByClassName('lblArticleBody')[0].innerHTML;
                
                var li = $('li_' + guid);
                li.addClassName('Selected');
                
                var secNavLis = $$(secNav + ' li');
                for(var i = 0; i < secNavLis.length; i++)
                {
                    if(secNavLis[i].id != 'li_' + guid)
                    {
                        //secNavLis[i].addClassName('Unselected');
                        secNavLis[i].removeClassName('Selected');
                    }
                }
                
                
            },
            onFailure: function(xhrResponse)
            {
                $(tar).innerHTML = xhrResponse.responseText;
            }
        });
        
    },
    checkPage: function(hfDefaultGUID, pageLayoutType, sectionName, articleCount)
    {
        switch(pageLayoutType)
        {
            case 'LeftLinks':
                var qs = new Querystring();
                if(qs.get('guid') != undefined)
                {
                    this.getArticle(qs.get('guid'));
                }
                else
                {
                    this.getArticle($F(hfDefaultGUID));
                }
                break;
            case 'AllSectionArticles':
                this.getAllSectionArticles(sectionName, articleCount);
                break;
        }
    },
    getAllSectionArticles: function(sectionName, articleCount)
    {
        new Ajax.Request('Utilities/webmanMethods.aspx', {
            method: 'post',
            parameters: { cmd: 'GetWebPageSection', SectionName: sectionName, BSClientID: this.bsClientID, ArticleCount: articleCount },
            onSuccess: fillContainer,
            onFailure: function(xhrResponse)
            {
                $('sMessage').innerHTML += xhrResponse.responseText;
            }
        });
    }
});


var fillContainer = function(xhrResponse)
{
    var target = $F('hfTargetDiv');
    var d = new Element('div').update(xhrResponse.responseText);
    
    //var target = d.getElementsByClassName('lblTargetContainerID')[0].innerHTML;
    //$('errorConsole').innerHTML += 'started';
    var bodies = d.getElementsByClassName('lblBodies');
    var headlines = d.getElementsByClassName('lblHeadlines');
    var authors = d.getElementsByClassName('lblAddedByAccounts');
    var posteddates = d.getElementsByClassName('lblPostedDates');
    var links = d.getElementsByClassName('hlArticleLinks');
    
    var b_css = d.getElementsByClassName('lblBodyCssClasses');
    var hl_css = d.getElementsByClassName('lblHeadlineCssClasses');
    //$('errorConsole').innerHTML += '<br>' + b_css[0]
    
    //$('errorConsole').innerHTML += '<br>' + links.length + ' ' + links[0].href + ' ' + links[1].href;
    for(var i = 0; i < bodies.length; i++)
    {
        //$('errorConsole').innerHTML += '<br>for loop';
        var ph = new Element('div');
        var hl = new Element('span');
        var aut = new Element('span');
        var dp = new Element('span');
        var hr = new Element('hr');
        var by = new Element('span');
        var lnk = new Element('a');
        var posted = new Element('span');
        
        var spacer = new Element('p');
        
        
        spacer.style.height = '2.5em';
        //spacer.innerHTML = '&nbsp;miketaylor';
        
        var bcss_classname = b_css[i];
        
        //hf.style.marginBottom = '20px';
        
        lnk.href = links[i].href;
        lnk.innerHTML = links[i].innerHTML;
        lnk.addClassName(hl_css[i].innerHTML);
        
        by.innerHTML = ' by ';
        posted.innerHTML = 'posted ';
        //$('errorConsole').innerHTML += '<br>elements created';
        
        hl.innerHTML = headlines[i].innerHTML;
        hl.addClassName(hl_css[i].innerHTML);
        //$('errorConsole').innerHTML += '<br>headline done.';
        
        aut.innerHTML = authors[i].innerHTML;
        aut.style.fontWeight = 'bold';
        
        dp.innerHTML = posteddates[i].innerHTML;
        dp.style.fontWeight = 'bold';
        
        ph.innerHTML = bodies[i].innerHTML;
        ph.addClassName(b_css[i].innerHTML);
        
        //$('errorConsole').innerHTML += '<br>values set';
        $(target).appendChild(lnk);
        //$('errorConsole').innerHTML += '<br>link';
        //$(target).appendChild(hl);
        $(target).appendChild(ph);
        //$('errorConsole').innerHTML += '<br>body';
        $(target).appendChild(posted);
        $(target).appendChild(dp);
        $(target).appendChild(by);
        $(target).appendChild(aut);
        $(target).appendChild(hr);
        $(target).appendChild(spacer);
        //$('errorConsole').innerHTML += '<br>finished with ' + i;
        
    }
};

ClientMethods.registerForNewsletter = function(txtField, groupName)
{
    if(DataValidation.validateRequest('dNewsletterSignup', 'Newsletter', 'errorNull'))
    {
        var bsClientID = $F('hfBSClientID');
        new Ajax.Request('Utilities/ClientMethods.aspx', {
            method: 'post',
            parameters: { Command: 'NewsletterSignup', EmailAddress: $F(txtField), BSClientID: bsClientID, GroupName: groupName },
            onSuccess: function(xhrResponse)
            {
                $(txtField).value = '';
                alert('Thank you for registering for the Music As A Weapon Newsletter');
            }
        });
    }
    else
    {
    
    }
    
}

ClientMethods.clickButton = function(e, buttonid)
{
    var evt = e ? e : window.event;
    var bt = $(buttonid);
    if (bt)
    {
        if (evt.keyCode == 13)
        {
            bt.click();
            return false;
        }
    }
}