﻿/// <reference name="MicrosoftAjax.debug.js" />
/// <reference name="MicrosoftAjaxTimer.debug.js" />
/// <reference name="MicrosoftAjaxWebForms.debug.js" />
/// <reference name="relationalUtility.debug.js" />

Type.registerNamespace('Website.Behavior');

// ===================================================================== Column Chooser

Website.Behavior.hideColumnChooser= function()
{
    Relational.Utility.changeClassName(this, "Hover", "NoHover");
}
    
Website.Behavior.showColumnChooser= function()
{
    Relational.Utility.changeClassName(this, "NoHover", "Hover");
}

// ===================================================================== Wait buttons

Website.Behavior.waitButton_click = function () {
    var waitButton = this;
    if (waitButton) {
        if (waitButton.tagName=='SPAN') waitButton=waitButton.parentNode;
        if(Relational.Utility.isPageValid(waitButton) == true) {
            // build DummyButton
            var dummyButton = document.createElement('a');
            dummyButton.className = waitButton.className + " DummyButton"; // Keep same CSS classes as original link
            dummyButton.style.cssText = waitButton.style.cssText; // Keep any styles set manually on the page
            dummyButton.innerHTML="<span></span><img src='../images/dingbats/spinner.tiny.2.gif' width='10' height='10'/>Please wait...";
            waitButton.parentNode.insertBefore(dummyButton,waitButton); 
            // hide WaitButton
            Relational.Utility.changeClassName(waitButton,'Button','Hidden');
        }
    } 
}


// ===================================================================== Rule definitions

	
//Website.Behavior.publicRules =
//{
//    // Rules that are needed only by the public site (don't run on admin site for performance reasons)

//    // Add/remove focus styling on form fields
//    'input.FormField' : function(element){
//        $addHandler(element, 'focus', Website.Behavior.formField_focus);
//        $addHandler(element, 'blur', Website.Behavior.formField_blur);
//    }

//}

Website.Behavior.globalRules =
{
    // Rules that are needed on both the admin and public sites

    // Wait button behavior
    'a._WaitButton' : function(element){
        $addHandler(element, 'click', Website.Behavior.waitButton_click);
    },

    // Wire up column chooser
    'div._ColumnChooserContainer' : function(element){
        $addHandler(element, 'mouseover', Website.Behavior.showColumnChooser);
        $addHandler(element, 'mouseout', Website.Behavior.hideColumnChooser);
    }
}


// ===================================================================== Initialization

Website.Behavior.initialize = function(isAdminPage) {
    // This needs to be called at the bottom of every root master page.
    if (isAdminPage != true || typeof(isAdminPage)==undefined){
        Relational.Utility.Rules.register(Website.Behavior.publicRules)
    }
    Relational.Utility.Rules.register(Website.Behavior.globalRules);
    Relational.Utility.Rules.apply();
}


// Notify ScriptManager that this is the end of the script.
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

