//Written by : Martin Tuncaydin

//SINGLETONS
//------------------------
var Display = new DisplayObject();
var Module = new ModuleObject();
var Method = new MethodObject();

function ge(id) {
    return d.getElementById(id);
}

//DISPLAY OBJECT
//------------------------
function DisplayObject() {

    var Modules = new Array();
    var Targets = new Array();
    var Keys = new Array();
    var Values = new Array();
    var Params = new Array();

    this.Modules = Modules;
    this.Targets = Targets;
    this.Keys = Keys;
    this.Values = Values;
    this.Params = Params;

    this.AddModule = AddModule;
    this.RemoveModule = RemoveModule;
    this.RemoveModules = RemoveModules;
    this.CheckModuleExists = CheckModuleExists;
    this.Refresh = Refresh;
    this.Clear = Clear;
    this.FindModule = FindModule;

    function AddModule(controlID, target, keys, values) {
        //alert(controlID + "-" + target + "-" + keys + "-" + values);
        Modules[Modules.length++] = controlID.toLowerCase();
        Targets[Targets.length++] = target;
        Keys[Keys.length++] = keys;
        Values[Values.length++] = values;
        Params[Params.length++] = buildAjaxCallArgs(keys, values);
    }

    function RemoveModule(moduleID) {
        for (var i = 0; i < Modules.length; i++) {
            if (Modules[i] == moduleID) {
                Modules.splice(i, 1);
                Targets.splice(i, 1);
                Keys.splice(i, 1);
                Values.splice(i, 1);
                Params.splice(i, 1);
                //alert(Modules.length + '-' + Targets.length + '-' + Keys.length + '-' + Values.length);
                break;
            }
        }
    }

    function RemoveModules() {
        Modules = null;
        Targets = null;
        Keys = null;
        Values = null;
        Params = null;
    }

    function CheckModuleExists(moduleID) {
        for (var i = 0; i < Modules.length; i++) {
            if (Modules[i] == moduleID.toLowerCase()) {
                return true;
            }
        }
        return false;
    }

    function Clear() {
        for (var i = 0; i < Targets.length; i++) {
            var element = ge(Targets[i]);
            if (element.InnerHTML == '' || element.InnerHTML == null) {
                alert('Clearing node : ' + element.id);
                element.ParentNode.RemoveChild(ge(element.parentNode.id));
            }
        }
    }

    function Refresh() {
        for (var i = 0; i < Modules.length; i++) {
            //alert(Modules[i] + "," + Targets[i] + "," + Keys[i] + "," + Values[i]);
            InvokeControl(Modules[i].toLowerCase(), Targets[i], Keys[i], Values[i], Params[i], false);
        }
    }

    function FindModule(moduleID) {
        for (var i = 0; i < Modules.length; i++) {
            if (Modules[i] == moduleID) {
                return i;
            }
        }

        return null;
    }
}

//MODULE OBJECT
function ModuleObject() {
    this.SMID;
    this.Name;
    this.Target;
    this.Keys = new Array();
    this.Values = new Array();
    this.IsSynchronous = false;
    this.IsMultiple = false;

    this.Load = Load;
    this.UnLoad = UnLoad;
    this.UnLoadModuleOnly = UnLoadModuleOnly;
    this.Refresh = Refresh;

    function Load(isInvisible) {
        if (this.SMID != null && this.Target != null) {
            //alert(this.SMID);
            if (!Display.CheckModuleExists(this.SMID)) {
                InvokeControl(this.SMID, this.Target, this.Keys, this.Values, null, isInvisible, this.IsSynchronous);
                Display.AddModule(this.SMID, this.Target, this.Keys, this.Values);
                if (document.getElementById(this.Target) != null && this.SMID != 'BE695CD2-57A8-11DE-93AB-F91656D89593') { document.getElementById(this.Target).scrollIntoView(true) };
            }
            else {
                if (this.SMID == '13B9AE09-C273-483b-95D7-F277B5FD8946' || this.IsMultiple) {
                    InvokeControl(this.SMID, this.Target, this.Keys, this.Values, null, isInvisible, this.IsSynchronous);
                    if (document.getElementById(this.Target) != null && this.SMID != 'BE695CD2-57A8-11DE-93AB-F91656D89593') { document.getElementById(this.Target).scrollIntoView(true) };
                }
                else {
                    alert("Module " + this.SMID + "already exists.");
                }
            }
        }
        else {
            alert('Load Control Failure : { No SMID specified }');
        }

        //We clear all empty containers
        //Display.Clear();

    }

    function UnLoadModuleOnly() {
        if (this.SMID != null && this.Target != null) {
            if (Display.CheckModuleExists(this.SMID.toLowerCase())) {
                Display.RemoveModule(this.SMID.toLowerCase());
                var element = ge(this.Target);

                if (element != null)
                    element.innerHTML = "";
            }
            else {
                alert("Module does not exist.");
            }
        }
        else {
            alert('Unload Module Failure : { No SMID specified }');
        }
    }

    function UnLoad() {
        if (this.SMID != null && this.Target != null) {
            if (Display.CheckModuleExists(this.SMID.toLowerCase())) {

                Display.RemoveModule(this.SMID.toLowerCase());
                //alert(ge(this.Target).parentNode.id);
                var element = ge(this.Target);

                if (element != null) {
                    if (element.parentNode) {
                        element.parentNode.removeChild(element);
                    }
                    else {
                        var bypassElement = ge('colLeft');
                        bypassElement.removeChild(element);
                    }
                }
            }
            else {
                alert("Module " + this.SMID + " does not exist.");
            }
        }
        else {
            alert('Unload Module Failure : { No SMID specified }');
        }
    }

    function Refresh() {
        if (this.SMID != null && this.Target != null) {
            if (Display.CheckModuleExists(this.SMID.toLowerCase())) {
                var locIndex = Display.FindModule(this.SMID.toLowerCase());
                if (locIndex != null) {
                    //locIndex--;
                    //alert(Display.Modules[locIndex] + "|" + Display.Targets[locIndex] + "|" + Display.Keys[locIndex] + "|" + Display.Values[locIndex]);
                    InvokeControl(Display.Modules[locIndex].toLowerCase(), Display.Targets[locIndex], Display.Keys[locIndex], Display.Values[locIndex], Display.Params[locIndex], false, this.IsSynchronous);
                }
                else {
                    alert("Module {" + this.SMID + "} could not be refreshed.");
                }
            }
            else {
                alert("Module {" + this.SMID + "} does not exist.");
            }
        }
        else {
            alert('Refresh Module Failure : { No SMID specified }');
        }
    }

}


//MODULE OBJECT
function MethodObject() {
    this.SMID;
    this.Method;
    this.Keys = new Array();
    this.Values = new Array();
    this.TransmissionType;

    this.Invoke = Invoke;

    function Invoke() {
        if (this.SMID.toLowerCase() != null && this.Method) {
            return InvokeMethod(this.SMID.toLowerCase() + ',' + this.Method, 'execution', this.Keys, this.Values, this.TransmissionType);
        }
        else {
            alert('Method invocation failed : { No method and or module identifier specified }');
        }
    }

}


function removeElements(e, removeSelf) {
    var i;
    var element = ge(e);

    if (element == null && ge(e.toUpperCase()) != null) {
        element = ge(e.toUpperCase());
    }

    var numWorkspaceElements = 0;
    if (element)
        numWorkspaceElements = element.childNodes.length;

    if ((element != null && element != undefined) && Display.CheckModuleExists(e)) {

        Module.SMID = element.id;
        Module.Target = element.id;
        Module.UnLoad();
    }
    else if (element != null) {
        if (element.parentNode && element.childNodes) {
            for (i = 0; i < numWorkspaceElements; i++) {
                element.removeChild(element.childNodes[0]);
            }

            if (removeSelf)
                element.parentNode.removeChild(element);
        }
        else if (element.parentNode.parentNode.id = 'colLeft') {
            element.parentNode.parentNode.removeChild(element);
        }
    }
}

//We define the three div structures that form the site
var navigation = 'colOne';
var workspace = 'colLeft';
var controlpanel = 'colRight';

function onEnter(formName) {
    if (event.keyCode == 13) {
        document.forms[formName].submit();
    }
}


function addChildToWorkSpace(method, parent, child, tag, clearChildren, isAjax, html) {
    if (clearChildren == true) {
        removeElements(parent);
    }

    //MT: I set this to workspace 
    var parentDiv = ge(parent)
    var newChildDiv = document.createElement(tag);

    newChildDiv.setAttribute('id', child);
    newChildDiv.className = 'workspaceitem';
    newChildDiv.setAttribute('class', 'workspaceitem');

    /*newChildDiv.setAttribute('id', child);
    newChildDiv.className = 'workspaceitem';
    newChildDiv.setAttribute('class', 'workspaceitem');*/

    var newChildDivName = child;

    if (isAjax == false && html != '') {
        newChildDiv.innerHTML = html;
    }

    parentDiv.appendChild(newChildDiv);

    //Now we populate the new Div with some ajax content
    if (isAjax == true) {
        ajax(method, child);
    }

    jQuery('#' + child).hide();
    jQuery('#' + child).slideDown(500);
    //jQuery('#' + child).fadeIn(2000);

    //Now we add the optional close link to each new element
    //ge(child).innerHTML = '<a href="javascript:void();" onclick="javascript:removeElements(this.Parent.Id);">[Close]</a>' + ge(child).innerHTML;
}

//MT : I decided to have three different functions to add children to the three main content areas.
// In the future you never know it might come in useful. Also makes things a lot clearer when your
//adding millions of children.
function addChildToTaskBar(method, parent, child, tag, clearChildren, isAjax, html) {
    if (clearChildren == true) {
        removeElements(parent);
    }

    var parentDiv = ge(parent)
    var newChildDiv = document.createElement(tag);

    newChildDiv.id = child;
    newChildDiv.setAttribute('id', child);
    newChildDiv.className = 'navigationbox';
    newChildDiv.setAttribute('class', 'navigationbox');

    var newChildDivName = child;

    if (isAjax == false && html != '') {
        newChildDiv.innerHTML = html;
    }

    if (parentDiv) {
        parentDiv.appendChild(newChildDiv);
    }

    //Now we populate the new Div with some ajax content
    if (isAjax == true) {
        ajax(method, child);
    }
}

function addChildToNavigation(method, parent, child, className, tag, clearChildren, isAjax, html) {
    if (clearChildren == true) {
        removeElements(parent);
    }

    var parentDiv = ge(parent)
    var newChildDiv = document.createElement(tag);

    newChildDiv.setAttribute('id', child);
    newChildDiv.setAttribute('class', 'box');

    var newChildDivName = child;

    if (isAjax == false && html != '') {
        newChildDiv.innerHTML = html;
    }

    parentDiv.appendChild(newChildDiv);

    //Now we populate the new Div with some ajax content
    if (isAjax == true) {
        ajax(method, child);
    }
}


function NewsletterSignUp(fullName, emailAddress, formName, target) {

    if (ValidateForm(formName)) {

        if (emailAddress.indexOf('@') != -1) {

            var keys = new Array();
            var values = new Array();
            keys[0] = 'FullName';
            values[0] = fullName;
            keys[1] = 'emailAddress';
            values[1] = emailAddress;
            Method.SMID = 'bea9123f-19bd-46da-a5a4-6eb00778baec';
            Method.Method = 'AddSubscriber';
            Method.Keys = keys;
            Method.Values = values;
            var result = Method.Invoke();
            if (result.indexOf('false') != -1) {
                if (document.getElementById(target)) {
                    document.getElementById(target).innerHTML = '<h1>An error occured</h1>';
                }
                else {
                    alert('We could not add you to the mailing list because of an error.');
                }
            } else {
                if (document.getElementById(target)) {
                    document.getElementById(target).innerHTML = '<h1>Thank you for signing up!</h1>';
                }
                else {
                    alert('Thank you for subscribing to our newsletter.');
                }
            }
        }
        else {
            alert('Please provide a valid email address.');
        }
    }
    else {
        alert('A valid email address and name is required to sign up.');
    }
}

var blogImageID;
function SendBlogPostToFriend(friendName, friendEmail, userName, userEmail, message, formName, blogIdentifier, blogPostIdentifier) {

    if (ValidateForm(formName)) {

        if (friendEmail.indexOf('@') != -1 && userEmail.indexOf('@') != -1) {

            var keys = new Array();
            var values = new Array();
            keys[0] = 'userName';
            values[0] = userName;
            keys[1] = 'userEmail';
            values[1] = userEmail;
            keys[2] = 'friendName';
            values[2] = friendName;
            keys[3] = 'friendEmail';
            values[3] = friendEmail;
            keys[4] = 'BlogIdentifier';
            values[4] = blogIdentifier;
            keys[5] = 'BlogPostIdentifier';
            values[5] = blogPostIdentifier;
            keys[6] = 'Message';
            values[6] = message;
            Method.SMID = '5b08a9f6-b0ef-46a7-a183-40a83997143c';
            Method.Method = 'SendToFriend';
            Method.Keys = keys;
            Method.Values = values;
            var result = Method.Invoke();
            if (result.indexOf('false') != -1) {
                document.getElementById('email_friend').innerHTML = '<h1>An error occured while we tried to send your friend an email. Please try again later.</h1>';
            } else {
                //alert('Thank you. Your email was successfully sent.');
                if (blogIdentifier == 'e34c2254-ffeb-4186-bb24-68593260c454') {
                    document.getElementById('email_friend').innerHTML = '<h1>Thank you. Your message was successfully sent. Please click <a href=\"../Photos/PhotoItem.aspx?BlogIdentifier=' + blogIdentifier + '&BlogPostIdentifier=' + blogPostIdentifier + '&BlogImageIdentifier=' + blogImageID + '\">here</a> to return to the album you were viewing.</h1>';
                }
                else {
                    document.getElementById('email_friend').innerHTML = '<h1>Thank you. Your message was successfully sent. Please click <a href=\"ViewBlog.aspx?BlogIdentifier=' + blogIdentifier + '&BlogPostIdentifier=' + blogPostIdentifier + '\">here</a> to return to the blog post you were reading.</h1>';
                }
            }
        }
        else {
            alert('Please provide a valid email address.');
        }
    }
    else {
        alert('A valid email address and name is required to sign up.');
    }
}


function ContactUs(name, email, subject, message, formName) {

    if (ValidateForm(formName)) {

        if (email.indexOf('@') != -1) {

            var keys = new Array();
            var values = new Array();
            keys[0] = 'Name';
            values[0] = name;
            keys[1] = 'Email';
            values[1] = email;
            keys[2] = 'Subject';
            values[2] = subject;
            keys[3] = 'Message';
            values[3] = message;
            Method.SMID = '03c0905d-4fb5-4b1b-9a3d-90edc0c16c7d';
            Method.Method = 'ContactUs';
            Method.Keys = keys;
            Method.Values = values;
            var result = Method.Invoke();
            if (result.indexOf('false') != -1) {
                document.getElementById('contactFormContainer').innerHTML = '<h1>An error occured while we tried to send your inquiry. Please try again later.</h1>';
            } else {
                //alert('Thank you. Your email was successfully sent.');
                document.getElementById('contactFormContainer').innerHTML = '<h1>Thank you. Your message was successfully sent.</h1>';
            }
        }
        else {
            alert('Please provide a valid email address.');
        }
    }
}

function AskQuestion(formName, target) {

    if (ValidateForm(formName)) {

        var keys = new Array();
        var values = new Array();
        var form = document.forms[formName];

        var elLength = form.elements.length;

        for (var i = 0; i < elLength; i++) {
            keys[i] = form.elements[i].name;
            values[i] = form.elements[i].value;
        }

        Method.SMID = '9a21dc5e-9f81-41ca-854e-b7348b18a2f3';
        Method.Method = 'AddQuestion';
        Method.Keys = keys;
        Method.Values = values;

        var result = Method.Invoke();
        if (result.indexOf('false') != -1) {
            if (document.getElementById(target)) {
            document.getElementById(target).value = 'We could not submit your question due to an error!';
                    
            }
            else {
                alert('We could not submit your question due to an error!');
            }

            alert('We could not submit your question due to an error. Please try again later.');

        } else {
            if (document.getElementById(target)) {
            document.getElementById(target).value = 'Thank you for submitting your question!';
            }
            else {
                alert('Thank you for submitting your question!');
            }

            //alert('Your question was successfully submitted.');
        }
    }
}


function GiveAwaySignUp(firstName, lastName, email, confirmEmail, state, friendEmail1, friendEmail2, friendEmail3, friendEmail4, friendEmail5, friendEmail6, formName) {

    if (ValidateForm(formName)) {

        if (email.indexOf('@') != -1 && email.indexOf('@') != -1) {

            if (email == confirmEmail) {
                var keys = new Array();
                var values = new Array();
                keys[0] = 'FirstName';
                values[0] = firstName;
                keys[1] = 'LastName';
                values[1] = lastName;
                keys[2] = 'Email';
                values[2] = email;
                keys[3] = 'State';
                values[3] = state;
                keys[4] = 'FriendEmail1';
                values[4] = friendEmail1;
                keys[5] = 'FriendEmail2';
                values[5] = friendEmail2;
                keys[6] = 'FriendEmail3';
                values[6] = friendEmail3;
                keys[7] = 'FriendEmail4';
                values[7] = friendEmail4;
                keys[8] = 'FriendEmail5';
                values[8] = friendEmail5;
                keys[9] = 'FriendEmail5';
                values[9] = friendEmail6;
                Method.SMID = 'bd9d8a07-affc-4b9a-ad04-4fb9b1bbdca6';
                Method.Method = 'RegisterGivewayEntry';
                Method.Keys = keys;
                Method.Values = values;
                var result = Method.Invoke();
                if (result.indexOf('false') != -1) {
                    document.getElementById('givewayContainer').innerHTML = '<h2 style="color:#ffffff;">An error occured when we tried to enter you into the give away. Please try again later.</h2>';
                } else {
                    //alert('Thank you. Your email was successfully sent.');
                    document.getElementById('givewayContainer').innerHTML = '<h2 style="color:#ffffff;">Thank you. You have been successfully entered into the giveaway.</h2>';
                }
            }
            else {
                alert('The email addresses provided do not match.');
            }
        }
        else {
            alert('Please provide a valid email address.');
        }
    }
    else {
        alert('A valid email address and name is required to sign up.');
    }
}

function encodeMyHtml(elementID) {
    encodedHtml = escape(document.getElementById(elementID).value);
    encodedHtml = encodedHtml.replace(/\//g, "%2F");
    encodedHtml = encodedHtml.replace(/\?/g, "%3F");
    encodedHtml = encodedHtml.replace(/=/g, "%3D");
    encodedHtml = encodedHtml.replace(/&/g, "%26");
    encodedHtml = encodedHtml.replace(/@/g, "%40");
    return encodedHtml;
}

function ShareItem(name, summary, url) {
    SHARETHIS.addEntry({
        title: 'Share me',
        summary: 'Sharing is good for the soul.',
        icon: 'http://path.to/icon'
    }, { button: true });

}

function ShowRules() {
    window.open('Rules.aspx');
}

function UpdateTextCounter(element, counter) {
    var maxLimit = 1000;
    if (element && counter) {
        if (element.value.length > maxLimit) {
            element.value = element.value.substring(0, maxLimit);
        }
        else {
            counter.innerHTML = (maxLimit - element.value.length) + ' characters remaining.';
        }
    }
}

function SwitchImageGliderContext(fullSizeImageUri, mainImageTarget, imageContainer) {

    if (ge(mainImageTarget)) {
        ge(mainImageTarget).src = fullSizeImageUri;
        jQuery('#' + imageContainer).fadeIn(2000);
    }
    else {
        alert('The image target does not exist');
    }

}


function ShowAllComments() {
    removeElements('body_div', false);
    if (Display.CheckModuleExists('248f8fe2-47b4-413d-8e6f-3c741f9be70a')) { Module.SMID = '248f8fe2-47b4-413d-8e6f-3c741f9be70a'; Module.Target = '248f8fe2-47b4-413d-8e6f-3c741f9be70a'; Module.UnLoad(); }
    addChildToWorkSpace('', 'body_div', '248f8fe2-47b4-413d-8e6f-3c741f9be70a', 'div', false, false, loadingImg);
    Module.SMID = '248f8fe2-47b4-413d-8e6f-3c741f9be70a';
    Module.Name = 'Comment control';
    Module.Target = '248f8fe2-47b4-413d-8e6f-3c741f9be70a';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'RequestStatus';
    values[0] = 'All';
    keys[1] = 'BlogPostName';
    values[1] = 'All comments';
    keys[2] = 'IsBlogControl';
    values[2] = 'true';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li5');
}

function ShowAllUnapprovedComments() {
    removeElements('body_div', false);
    if (Display.CheckModuleExists('248f8fe2-47b4-413d-8e6f-3c741f9be70a')) { Module.SMID = '248f8fe2-47b4-413d-8e6f-3c741f9be70a'; Module.Target = '248f8fe2-47b4-413d-8e6f-3c741f9be70a'; Module.UnLoad(); }
    addChildToWorkSpace('', 'body_div', '248f8fe2-47b4-413d-8e6f-3c741f9be70a', 'div', false, false, loadingImg);
    Module.SMID = '248f8fe2-47b4-413d-8e6f-3c741f9be70a';
    Module.Name = 'Comment control';
    Module.Target = '248f8fe2-47b4-413d-8e6f-3c741f9be70a';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'RequestStatus';
    values[0] = 'Unapproved';
    keys[1] = 'BlogPostName';
    values[1] = 'All unapproved comments';
    keys[2] = 'IsBlogControl';
    values[2] = 'true';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li8');
}

function ShowAllApprovedComments() {
    removeElements('body_div', false);
    if (Display.CheckModuleExists('248f8fe2-47b4-413d-8e6f-3c741f9be70a')) { Module.SMID = '248f8fe2-47b4-413d-8e6f-3c741f9be70a'; Module.Target = '248f8fe2-47b4-413d-8e6f-3c741f9be70a'; Module.UnLoad(); }
    addChildToWorkSpace('', 'body_div', '248f8fe2-47b4-413d-8e6f-3c741f9be70a', 'div', false, false, loadingImg);
    Module.SMID = '248f8fe2-47b4-413d-8e6f-3c741f9be70a';
    Module.Name = 'Comment control';
    Module.Target = '248f8fe2-47b4-413d-8e6f-3c741f9be70a';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'RequestStatus';
    values[0] = 'Approved';
    keys[1] = 'BlogPostName';
    values[1] = 'All approved comments';
    keys[2] = 'IsBlogControl';
    values[2] = 'true';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li7');
}




function ShowAllQuestionComments() {
    removeElements('body_div', false);
    if (Display.CheckModuleExists('d999b151-98a2-47e0-97b0-0d4e56584625')) { Module.SMID = 'd999b151-98a2-47e0-97b0-0d4e56584625'; Module.Target = 'd999b151-98a2-47e0-97b0-0d4e56584625'; Module.UnLoad(); }
    addChildToWorkSpace('', 'body_div', 'd999b151-98a2-47e0-97b0-0d4e56584625', 'div', false, false, loadingImg);
    Module.SMID = 'd999b151-98a2-47e0-97b0-0d4e56584625';
    Module.Name = 'Question Comment control';
    Module.Target = 'd999b151-98a2-47e0-97b0-0d4e56584625';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'RequestStatus';
    values[0] = 'All';
    keys[1] = 'BlogPostName';
    values[1] = 'All question comments';
    keys[2] = 'IsBlogControl';
    values[2] = 'true';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li5');
}

function ShowAllUnapprovedQuestionComments() {
    removeElements('body_div', false);
    if (Display.CheckModuleExists('d999b151-98a2-47e0-97b0-0d4e56584625')) { Module.SMID = 'd999b151-98a2-47e0-97b0-0d4e56584625'; Module.Target = 'd999b151-98a2-47e0-97b0-0d4e56584625'; Module.UnLoad(); }
    addChildToWorkSpace('', 'body_div', 'd999b151-98a2-47e0-97b0-0d4e56584625', 'div', false, false, loadingImg);
    Module.SMID = 'd999b151-98a2-47e0-97b0-0d4e56584625';
    Module.Name = 'Question Comment control';
    Module.Target = 'd999b151-98a2-47e0-97b0-0d4e56584625';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'RequestStatus';
    values[0] = 'Unapproved';
    keys[1] = 'BlogPostName';
    values[1] = 'All unapproved question comments';
    keys[2] = 'IsBlogControl';
    values[2] = 'true';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li8');
}

function ShowAllApprovedQuestionComments() {
    removeElements('body_div', false);
    if (Display.CheckModuleExists('d999b151-98a2-47e0-97b0-0d4e56584625')) { Module.SMID = 'd999b151-98a2-47e0-97b0-0d4e56584625'; Module.Target = 'd999b151-98a2-47e0-97b0-0d4e56584625'; Module.UnLoad(); }
    addChildToWorkSpace('', 'body_div', 'd999b151-98a2-47e0-97b0-0d4e56584625', 'div', false, false, loadingImg);
    Module.SMID = 'd999b151-98a2-47e0-97b0-0d4e56584625';
    Module.Name = 'Question Comment control';
    Module.Target = 'd999b151-98a2-47e0-97b0-0d4e56584625';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'RequestStatus';
    values[0] = 'Approved';
    keys[1] = 'BlogPostName';
    values[1] = 'All approved question comments';
    keys[2] = 'IsBlogControl';
    values[2] = 'true';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li7');
}




function AddBlogContent() {
    removeElements('body_div', false);
    if (Display.CheckModuleExists('8F546058-579A-11DE-8D47-52A255D89593')) { Module.SMID = '8F546058-579A-11DE-8D47-52A255D89593'; Module.Target = '8F546058-579A-11DE-8D47-52A255D89593'; Module.UnLoad(); }
    addChildToWorkSpace('', 'body_div', '8F546058-579A-11DE-8D47-52A255D89593', 'div', false, false, loadingImg);
    Module.SMID = '8F546058-579A-11DE-8D47-52A255D89593';
    Module.Name = 'Add content control';
    Module.Target = '8F546058-579A-11DE-8D47-52A255D89593';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'IsBlogControl';
    values[0] = 'true';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li1');
}

function DisplayBlogList() {
    //removeElements('body_div', false);
    if (Display.CheckModuleExists('bbd685d8-cc14-4da8-836e-15c1586930af')) { Module.SMID = 'bbd685d8-cc14-4da8-836e-15c1586930af'; Module.Target = 'bbd685d8-cc14-4da8-836e-15c1586930af'; Module.UnLoad(); }
    //addChildToWorkSpace('', 'body_div', 'bbd685d8-cc14-4da8-836e-15c1586930af', 'div', false, false, loadingImg);
    Module.SMID = 'bbd685d8-cc14-4da8-836e-15c1586930af';
    Module.Name = 'Blog list control';
    Module.Target = 'body_div';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'IsBlogControl';
    values[0] = 'true';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li2');
}

function DisplayNewsletterSubs() {
    removeElements('body_div', false);
    if (Display.CheckModuleExists('e3e142d1-45f8-4447-8b5e-7ddd4d29fa8d')) { Module.SMID = 'e3e142d1-45f8-4447-8b5e-7ddd4d29fa8d'; Module.Target = 'e3e142d1-45f8-4447-8b5e-7ddd4d29fa8d'; Module.UnLoad(); }
    addChildToWorkSpace('', 'body_div', 'e3e142d1-45f8-4447-8b5e-7ddd4d29fa8d', 'div', false, false, loadingImg);
    Module.SMID = 'e3e142d1-45f8-4447-8b5e-7ddd4d29fa8d';
    Module.Name = 'Blog list control';
    Module.Target = 'e3e142d1-45f8-4447-8b5e-7ddd4d29fa8d';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'IsBlogControl';
    values[0] = 'true';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li10');
}

function DisplayQuestionSubs() {
    removeElements('body_div', false);
    if (Display.CheckModuleExists('45eb7840-28b2-4cb9-acce-be43b0afc9aa')) { Module.SMID = '45eb7840-28b2-4cb9-acce-be43b0afc9aa'; Module.Target = '45eb7840-28b2-4cb9-acce-be43b0afc9aa'; Module.UnLoad(); }
    addChildToWorkSpace('', 'body_div', '45eb7840-28b2-4cb9-acce-be43b0afc9aa', 'div', false, false, loadingImg);
    Module.SMID = '45eb7840-28b2-4cb9-acce-be43b0afc9aa';
    Module.Name = 'Question list control';
    Module.Target = '45eb7840-28b2-4cb9-acce-be43b0afc9aa';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'IsBlogControl';
    values[0] = 'true';
    keys[1] = 'RequestStatus';
    values[1] = 'All';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li3');
}

function ShowAllUnAnsweredQuestions() {
    removeElements('body_div', false);
    if (Display.CheckModuleExists('45eb7840-28b2-4cb9-acce-be43b0afc9aa')) { Module.SMID = '45eb7840-28b2-4cb9-acce-be43b0afc9aa'; Module.Target = '45eb7840-28b2-4cb9-acce-be43b0afc9aa'; Module.UnLoad(); }
    addChildToWorkSpace('', 'body_div', '45eb7840-28b2-4cb9-acce-be43b0afc9aa', 'div', false, false, loadingImg);
    Module.SMID = '45eb7840-28b2-4cb9-acce-be43b0afc9aa';
    Module.Name = 'Un-Answered Questions';
    Module.Target = '45eb7840-28b2-4cb9-acce-be43b0afc9aa';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'RequestStatus';
    values[0] = 'Unapproved';
    keys[1] = 'IsBlogControl';
    values[1] = 'true';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li4');
}

function ShowAllAnsweredQuestions() {
    removeElements('body_div', false);
    if (Display.CheckModuleExists('45eb7840-28b2-4cb9-acce-be43b0afc9aa')) { Module.SMID = '45eb7840-28b2-4cb9-acce-be43b0afc9aa'; Module.Target = '45eb7840-28b2-4cb9-acce-be43b0afc9aa'; Module.UnLoad(); }
    addChildToWorkSpace('', 'body_div', '45eb7840-28b2-4cb9-acce-be43b0afc9aa', 'div', false, false, loadingImg);
    Module.SMID = '45eb7840-28b2-4cb9-acce-be43b0afc9aa';
    Module.Name = 'Answered Questions';
    Module.Target = '45eb7840-28b2-4cb9-acce-be43b0afc9aa';
    var keys = new Array();
    var values = new Array();
    keys[0] = 'RequestStatus';
    values[0] = 'Approved';
    keys[1] = 'IsBlogControl';
    values[1] = 'true';
    Module.Keys = keys;
    Module.Values = values;
    Module.IsSynchronous = true;
    Module.Load();

    DisplaySubMenuItems('Li6');
}

function DisplayMenuItems(category) {

    jQuery('#Comments').removeClass('current');
    jQuery('#Questions').removeClass('current');
    jQuery('#Blog').removeClass('current');
    jQuery('#Content').removeClass('current');
    jQuery('#Newsletter').removeClass('current');

    if (category == 'Comments') {
        jQuery('#CommentsMenuItems').show();
        jQuery('#BlogMenuItems').hide();
        jQuery('#ContentMenuItems').hide();
        jQuery('#NewsletterMenuItems').hide();
        jQuery('#QuestionMenuItems').hide();

        jQuery('#Comments').toggleClass('current');

        ShowAllComments();

    } else if (category == 'Blog') {
        jQuery('#CommentsMenuItems').hide();
        jQuery('#BlogMenuItems').show();
        jQuery('#ContentMenuItems').hide();
        jQuery('#NewsletterMenuItems').hide();
        jQuery('#QuestionMenuItems').hide();

        jQuery('#Blog').toggleClass('current');

        DisplayBlogList();

    } else if (category == 'Content') {
        jQuery('#CommentsMenuItems').hide();
        jQuery('#BlogMenuItems').hide();
        jQuery('#ContentMenuItems').show();
        jQuery('#QuestionMenuItems').hide();
        jQuery('#NewsletterMenuItems').hide();

        jQuery('#Content').toggleClass('current');

    } else if (category == 'Newsletter') {
        jQuery('#CommentsMenuItems').hide();
        jQuery('#BlogMenuItems').hide();
        jQuery('#ContentMenuItems').hide();
        jQuery('#QuestionMenuItems').hide();
        jQuery('#NewsletterMenuItems').show();

        jQuery('#Newsletter').toggleClass('current');

        DisplayNewsletterSubs();
    }
    else if (category == 'Questions') {
        jQuery('#CommentsMenuItems').hide();
        jQuery('#BlogMenuItems').hide();
        jQuery('#ContentMenuItems').hide();
        jQuery('#QuestionMenuItems').show();

        jQuery('#QuestionMenuItems').toggleClass('current');

        DisplayQuestionSubs();
    }
}

function DisplaySubMenuItems(id) {

    //Remove all class references for all sub menu items
    for (var i = 0; i < 15; i++) {
        if (ge(id)) {
            jQuery('#Li' + i).removeClass('current');
        }
    }

    jQuery('#' + id).toggleClass('current');
}




