﻿ValidatorUpdateIsValid = function() { 
   	Page_IsValid = AllValidatorsValid(Page_Validators); 
	ClearValidatorCallouts(); 
	SetValidatorCallouts(); 
	
} 

ValidatorValidate = function(val, validationGroup, event) {
    val.isvalid = true;
    if ((typeof(val.enabled) == 'undefined' || val.enabled != false) && IsValidationGroupMatch(val, validationGroup)) {
        if (typeof(val.evaluationfunction) == 'function') {
            val.isvalid = val.evaluationfunction(val);
            if (!val.isvalid && Page_InvalidControlToBeFocused == null &&
                typeof(val.focusOnError) == 'string' && val.focusOnError == 't') {
                ValidatorSetFocus(val, event);
            }
        }
    }
   
    ClearValidatorCallouts();
    SetValidatorCallouts(); 

    ValidatorUpdateDisplay(val);
    
     
}

SetValidatorCallouts = function()
{
    var i;
    var pageValid = true;                    
    for (i = 0; i < Page_Validators.length; i++) {         
        var inputControl = document.getElementById(Page_Validators[i].controltovalidate);               
        if (!Page_Validators[i].isvalid) {                                                        
            if(pageValid)
                inputControl.focus();
            WebForm_AppendToClassName(inputControl, 'error');
            pageValid = false;                                                     
        }                        
    }                    
    return pageValid;
}

ClearValidatorCallouts = function()
{
    var i;                    
    var invalidConrols = [];
    for (i = 0; i < Page_Validators.length; i++) {         
        var inputControl = document.getElementById(Page_Validators[i].controltovalidate);               
        WebForm_RemoveClassName(inputControl, 'error');                                                  
    }                                        
}   

ValidatorOnChange = function (event) {
    if (!event) {
        event = window.event;
    }
    Page_InvalidControlToBeFocused = null;
    var targetedControl;
    if ((typeof(event.srcElement) != "undefined") && (event.srcElement != null)) {
        targetedControl = event.srcElement;
    }
    else {
        targetedControl = event.target;
    }
    var vals;    
    
    if (typeof(targetedControl.Validators) != "undefined") {
        vals = targetedControl.Validators;
        // alert('here - 1');
    }
    else {
        if (targetedControl.tagName.toLowerCase() == "label") {
            targetedControl = document.getElementById(targetedControl.htmlFor);
            vals = targetedControl.Validators;	                    
        }
    }
    var i;

	//if date picker caused it in IE...which can't find the textbox to get the list of validators for the control, so revalidate whole page
    if(vals == null)   
		vals = Page_Validators;
    	
	for (i = 0; i < vals.length; i++) {
		ValidatorValidate(vals[i], null, event);
	}	   
	
	ValidatorUpdateIsValid(); 
}  

ValidatorUpdateDisplay = function (val) 
{
	if (typeof(val.display) == "string") 
	{
		if (val.display == "None") 
		{
			return;
		}
		if (val.display == "Dynamic") 
		{
			//changed this block to not set display to inline, but to remove style attribute entirely
			//undo comments if not using jQuery
			if(val.isvalid)
			{
				//$(val).hide("slow");
				
				//val.style.display = "none"; 
			}else
			{
				//$(val).show("slow");
				//val.removeAttribute("style");
				
				
			}
			return;
		}
	}
	if ((navigator.userAgent.indexOf("Mac") > -1) && (navigator.userAgent.indexOf("MSIE") > -1)) 
	{
		val.style.display = "inline";
	}
	//val.style.visibility = val.isvalid ? "hidden" : "visible";
	//alert($('#ctl00_MainContent1_ctl00_ValidationSummary1').html());
}


function ValidationSummaryOnSubmit() {
    if (typeof(Page_ValidationSummaries) == "undefined") 
        return;
    var summary, sums, s;
    for (sums = 0; sums < Page_ValidationSummaries.length; sums++) {
        summary = Page_ValidationSummaries[sums];
        summary.style.display = "none";
        if (!Page_IsValid) {
            if (summary.showsummary != "False") {
                summary.style.display = "";
                if (typeof(summary.displaymode) != "string") {
                    summary.displaymode = "BulletList";
                }
                switch (summary.displaymode) {
                    case "List":
                        headerSep = "<br>";
                        first = "";
                        pre = "";
                        post = "<br>";
                        final = "";
                        break;
                    case "BulletList":
                    default: 
                        headerSep = "";
                        first = "<ul>";
                        pre = "<li>";
                        post = "</li>";
                        final = "</ul>";
                        break;
                    case "SingleParagraph":
                        headerSep = " ";
                        first = "";
                        pre = "";
                        post = " ";
                        final = "<br>";
                        break;
                }
                s = "";
                if (typeof(summary.headertext) == "string") {
                    s += summary.headertext + headerSep;
                }
                s += first;
                for (i=0; i<Page_Validators.length; i++) {
                    if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") {
                        s += pre + Page_Validators[i].errormessage + post;
                    }
                }   
                s += final;
                           
                
                //jAlert(s, '');
                $.notifyBar({
                    html: s,
                    delay: 4000,
                    animationSpeed: "slow",
                    cls: 'error'
                });  
               
            }
            if (summary.showmessagebox == "True") {
                s = "";
                if (typeof(summary.headertext) == "string") {
                    s += summary.headertext + "<BR>";
                }
                for (i=0; i<Page_Validators.length; i++) {
                    if (!Page_Validators[i].isvalid && typeof(Page_Validators[i].errormessage) == "string") {
                        switch (summary.displaymode) {
                            case "List":
                                s += Page_Validators[i].errormessage + "<BR>";
                                break;
                            case "BulletList":
                            default: 
                                s += "  - " + Page_Validators[i].errormessage + "<BR>";
                                break;
                            case "SingleParagraph":
                                s += Page_Validators[i].errormessage + " ";
                                break;
                        }
                    }
                }
                span = document.createElement("SPAN");
                span.innerHTML = s;
                s = span.innerText;
                alert(s);
            }
        }
    }
    
}