﻿var ClientMethods = Class.create({
    initialize: function()
    {
        this.bsClientID = '1';
    },
    checkPage: function()
    {
        var qs = new Querystring();
        if(qs.get('guid') != undefined)
        {
            this.getArticle(qs.get('guid'));
        }
        else
        {
            if($('hfDefaultArticle') != null)
            {
                this.getArticle($F('hfDefaultArticle'));
            }
            else if($F('hfDefaultSection') != null)
            {
                this.getAllSectionArticles($F('hfDefaultSection'), $F('hfSectionContainer'));
            }
        }
        //$('dMessage').innerHTML = this.bsClientID;
    },
    getAllSectionArticles: function(sectionName, sectionContainer)
    {
        new Ajax.Request('Utilities/cmMethods.aspx', {
            method: 'post',
            parameters: { Command: 'GetAllSectionArticles', SectionName: sectionName },
            onSuccess: function(xhrResponse)
            {
                var d = new Element('div').update(xhrResponse.responseText);
                $(sectionContainer).innerHTML = $(d).select('div[id="dAllSectionArticles"]')[0].innerHTML;
            },
            onFailure: function(xhrResponse)
            {
                $(sectionContainer).innerHTML = xhrResponse.responseText;
            }
        });
    },
    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 + ' p.ArticleHeadline')[0].id;
                var pb = $$('#' + tar + ' div.ArticleBody')[0].id;
                
                //$(pb).innerHTML = d.getElementsByClassName('lblArticleBody')[0].innerHTML;
                //$(ph).innerHTML = 'headline ' + pb;
                $(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;
            }
        });
        
        //$('dMessage').innerHTML = guid;
        
    } 
});

ClientMethods.sendContactUsEmail = function(dContactContainer, classToValidate, errorClass, controlPrefixId)
    {
        if(DataValidation.validateRequest(dContactContainer, classToValidate, errorClass))
        {
            var cPrefix;
            if(controlPrefixId != undefined && controlPrefixId != null)
            {
                cPrefix = $F(controlPrefixId)
                $('pMessage').innerHTML = cPrefix;
            }
            else
            {
                cPrefix = '';
            }
            var name, emailAddress, subject, message;
            name = $(cPrefix + 'txtName').value;
            emailAddress = $(cPrefix + 'txtEmailAddress').value;
            subject = $(cPrefix + 'ddlSubject').options[$(cPrefix + 'ddlSubject').selectedIndex].value
            message = $(cPrefix + 'txtMessage').value;
            new Ajax.Request('Utilities/cmMethods.aspx', {
                method: 'post',
                parameters: { Command: 'SendContactUsEmail', Name: name, EmailAddress: emailAddress, Subject: subject, Message: message },
                onSuccess: function(xhrResponse)
                {
                    $('pMessage').innerHTML = 'Thank you for your message.';
                    $('pMessage').addClassName('pMessageClass');
                    $(cPrefix + 'txtName').value = '';
                    $(cPrefix + 'txtEmailAddress').value = '';
                    $(cPrefix + 'ddlSubject').selectedIndex = 0;
                    $(cPrefix + 'txtMessage').value = '';
                    
                },
                onFailure: function(xhrResponse)
                {
                    $('pMessage').innerHTML = xhrResponse.responseText;
                }
            });
        }
    }


///////////QUERY STRING MODEL///////////////
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		var value = (pair.length==2)
			? decodeURIComponent(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

Querystring.prototype.get = function(key, default_) {
	var value = this.params[key];
	return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
	var value = this.params[key];
	return (value != null);
}