function InitModalLoginDiv(loginDivName)
{  
    if(loginDivName != "")
    {
        // determine if this was a prev. failed login
        var isFailedLogin = ($.cookie("FailedLogin") == "true") && ($.cookie("FailedLoginDivName") == loginDivName); 
        var modalHeight = 410; 
        var title = "Login to GotoGroupBuy";
        
          // increase dialog height so error messages can fit
        if(isFailedLogin)
        { 
            modalHeight = 475; 
        }
        
        // initialize dialog     
        $(function() {
            $("#" + loginDivName).dialog({
	                    bgiframe: true,
	                    autoOpen: isFailedLogin, 
	                    resizable: false,
	                    height: modalHeight,
	                    width: 425,
	                    title: title,
	                    modal: true
	        });  
        });
        
        
        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()
{  
    $(".ReturningUser").dialog("close"); 
   //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 
    });

}