
/*
 * ExtendedWebUIValidation.js
 */
 
function extended_ValidatorEnable(id, enable) 
{
    var i;
    for (i = 0; i < Page_Validators.length; i++)
    {  
		if(Page_Validators[i].id == id)
		{
			Page_Validators[i].enabled = (enable != false);
			if(!enable) { Page_Validators[i].isvalid = true; }
			ValidatorUpdateDisplay(Page_Validators[i]);
			ValidatorUpdateIsValid();
		}
    }
}

function extended_ValidatorValidate(id)
{
    var i;
    for (i = 0; i < Page_Validators.length; i++)
    {  
		if(Page_Validators[i].id == id)
		{
			ValidatorValidate(Page_Validators[i]);
			ValidatorUpdateIsValid();
		}
    }
    
    return false;
}

function extended_PageClientValidate(summaryId) {
    var i;
    for (i = 0; i < Page_Validators.length; i++) {
        ValidatorValidate(Page_Validators[i]);
    }
    ValidatorUpdateIsValid();   
    extended_ValidationSummaryOnSubmit(summaryId);
    Page_BlockSubmit = !Page_IsValid;
    return Page_IsValid;
}

function extended_ValidationSummaryOnSubmit(summaryId) {
    if (typeof(Page_ValidationSummaries) == "undefined") 
        return;
    if(summaryId.length == 0)
		return;
		
    var summary, sums, s;
    for (sums = 0; sums < Page_ValidationSummaries.length; sums++) {
        summary = Page_ValidationSummaries[sums];
        if(summary.id == summaryId)
        {
			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>";
							sfinal = "";
							break;
						case "BulletList":
						default: 
							headerSep = "";
							first = "<ul>";
							pre = "<li>";
							post = "</li>";
							sfinal = "</ul>";
							break;
						case "SingleParagraph":
							headerSep = " ";
							first = "";
							pre = "";
							post = " ";
							sfinal = "<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 += sfinal;
					summary.innerHTML = s; 
					window.scrollTo(0,0);
				}
				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);
				}
			}
		}
    }
}
