function InitModalLoginDiv(loginDivName)
{  
    if(loginDivName != "")
    {
        // determine if this was a prev. failed login
        var isFailedLogin = ($.cookie("FailedLogin") == "true") && ($.cookie("FailedLoginDivName") == loginDivName);  
        var title = "Login";
        
          
        
        // initialize dialog
        $(function() {
            $("#" + loginDivName).dialog({
                bgiframe: true,
                autoOpen: isFailedLogin,
                resizable: false,
                width: 425,
                title: title,
                modal: true,
                open: function(type, data) {
                    $(this).parent().appendTo("form");
                }
            });
        });
        
        
        if(isFailedLogin)
        {  
            // move dialog back into form (asp.net postbacks won't work properly w/o this)
//            $("#" + loginDivName).parent().appendTo($("form"));
            
            // delete FailedLogin  
            $.cookie("FailedLogin", null, { expires: -1, path: "/"}); // Set the path to ensure cookie is deleted properly 
        }
    }
}

function InitModalLoginEnterKeyClick(loginDivName)
{
    if(loginDivName != "")
    {
        // make 'Enter' key click submit Login form 
        $("form input").keypress(function(e) {
            if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { 
    // 	        $("#" + loginDivName + " > .ModalLoginSubmitButton").trigger('click');
	           $(".ModalLoginSubmitButton", "#" + loginDivName).trigger('click');
	            return true; 
            } else {
            }
        });
    }
}

function ActionLinkLoginHandler(event, loginDivName, title , cookieName, cookieValue)
{ 
    if(loginDivName != "")
    {
        // set cookie 
        $.cookie(cookieName, cookieValue, {expires: 1, path: "/"});// Set the path to ensure cookie is deleted properly    
     
         // set dialog title
        $("#" + loginDivName).dialog("option", "title", title); 
        
        // delete cookie if dialog close
        $("#" + loginDivName).bind('dialogclose', function(event, ui) {  
            $.cookie(cookieName, null, { expires: -1, path: "/"}); // Set the path to ensure cookie is deleted properly 
        });
        
        // move dialog back into form (asp.net postbacks won't work properly w/o this)
        $("#" + loginDivName).parent().appendTo($("form"));
        
        // open login dialog when link is clicked
        $("#" + loginDivName).dialog("open");
        
        // prevent the link from redirecting
        event.preventDefault();
    }
}

function FocusFirstField(parentID)
{
    $("#" + parentID + " input:visible:enabled:first").focus();
}

function ToggleBlankAndActiveState(blankStateID, activeStateID, isFocusOnFirstField)
{
    $("#" + blankStateID).click(function(){
        
        // show the Active State
        $("#" + activeStateID).toggle();
        
        if(isFocusOnFirstField == true)
            FocusFirstField(activeStateID);
        
        // hide the Blank Slate
        $(this).toggle(); 
        
         HideActiveStateWithEmptyFields(activeStateID);
    });  

    $("#" + activeStateID + " input").focus(function(){
        HideActiveStateWithEmptyFields(activeStateID);
    });  

    $("#" + activeStateID + " input").blur(function(){ 
        HideActiveStateWithEmptyFields(activeStateID);
    });  
}

function HideActiveStateWithEmptyFields(activeStateID)
{
    $(".ActiveState").each(function(){
        
        if($(this).attr("id") != activeStateID)
        {
             var nonEmptyFieldsCount = 0;
            
             $(this).find('input[type=text][value!=""]').each(function(){
                if( ($(this).attr("title") != "" && $(this).val() != $(this).attr("title") && $(this).val() != "") || 
                    ($(this).attr("title") == "" && $(this).val() != "") )
                {
                    nonEmptyFieldsCount++; 
                }
            });   
            
            if(nonEmptyFieldsCount == 0 )
            {    
                $(this).hide();   
                $(this).siblings(".BlankState").show();
            }
            else
            { 
                $(this).show();   
                $(this).siblings(".BlankState").hide();
            }
        }
    });
}

function ShowHideFormElementOnCheckBoxSelection(checkBoxID, formElementID)
{   
    // If checked
    if ($("#"  + checkBoxID).is(":checked"))
    {
        //show the hidden div
        $("#" + formElementID).show(); 
    }
    else
    {     
        //otherwise, hide it
        $("#" + formElementID).hide(); 
    } 
}

function ToggleFormElementsOnCheckBoxSelection(checkBoxID, formElementToShowID, formElementToHideID)
{    
     $(document).ready(function() {
     
        // If checked
        if ($("#"  + checkBoxID).is(":checked"))
        { 
            //show the hidden div
            $("#" + formElementToShowID).show(); 
            $("#" + formElementToHideID).hide(); 
        }
        else
        {      
            //otherwise, hide it
            $("#" + formElementToShowID).hide(); 
            $("#" + formElementToHideID).show(); 
        } 
     
    });
}

function EnableValidation(elementID, isEnabled)
{     
     $(document).ready(function() { 
     
        var id;
        var val;
        
      
        $("#" + elementID).find(".Error").each(function(i) {
            
            id = $(this).attr("id");
            val = document.getElementById(id);  
            
            // Enable/Dis-enable validators
            ValidatorEnable(val, isEnabled); 
            
            if(isEnabled) 
                val.style.display = 'none'; // Hide validation text until an error occurs 
        });
        
//        $("#" + formElementToDisableID).find(".Error").each(function(i) {
//            
//            id = $(this).attr("id"); 
//            val = document.getElementById(id);  
//            
//            ValidatorEnable(val, false);  
//        });  
    });
    
}

function CloseModalLogins()
{  
    // Don't close the dialog because it will erase the cookies we use for redirecting
$(".ReturningUser").dialog( "destroy" );    $(".ReturningUser").hide(); 
    
   //jQuery("body").mask("Logging in..."); 
   // $("form").mask("Logging in..."); 
   $("#loginProgressModal").dialog({ 
        modal: true, 
        resizable: false, 
        dialogClass: 'LoginProgress',
        minHeight: 50,
        minWidth: 200, 
        height: 50,
        width: 200 
    });

}

function ToggleDivOnAnchorClick(aID, divID, collapsedText, expandedText)
{
    $(document).ready(function() 
    {  	 
             
            if($("#" + aID).text() == expandedText)
            {
                $("#" + aID).text(collapsedText);  
                $("#" + divID).hide(); 
            }
            else
            {
                $("#" + aID).text(expandedText);  
                $("#" + divID).show(); 
            } 
    });
}

function SetVisible(obj, visible) {
    if (visible)
        obj.style.display = '';
    else
        obj.style.display = 'none';
}

function ChangeText(obj, text) {
    obj.innerHTML = text;
}

function ShowObject(ControlNameToShow) {
    var ControlObjectToShow = document.getElementById(ControlNameToShow);
    if (typeof (ControlObjectToShow) != "undefined")
        SetVisible(ControlObjectToShow, true);
}

function HideButtonIfPageIsValid(ControlObjectToHide, ControlNameToShow, validationGroup) {
    if (typeof (Page_Validators) != "undefined") {
        if (typeof (Page_ClientValidate) == 'function') {
            var isPageValid = Page_ClientValidate(validationGroup);
            if (Page_IsValid) {
                //alert('ControlObjectToHide:' + ControlObjectToHide);
                SetVisible(ControlObjectToHide, false);
                var ControlObjectToShow = document.getElementById(ControlNameToShow);
                //alert('ControlObjectToShow:' + ControlObjectToShow);
                if (typeof (ControlObjectToShow) != "undefined")
                    SetVisible(ControlObjectToShow, true);
            }
        } else
            alert("Page_ClientValidate function undefined");
    } else
        alert("Page_Validators undefined");
}


