// PTAValidation.js.//<script>var _val_agt=navigator.userAgent.toLowerCase();var _val_is_major=parseInt(navigator.appVersion);var _val_is_ie=((_val_agt.indexOf("msie")!=-1) && (_val_agt.indexOf("opera")==-1));var _val_isNT=_val_agt.indexOf("windows nt")!=-1;var _val_IE=(document.all);var _val_IE4=(_val_is_ie && (_val_is_major==4) && (_val_agt.indexOf("msie 4")!=-1));var _val_IE6=(_val_is_ie && (_val_agt.indexOf("msie 6.0")!=-1));var _val_NS=(document.layers);var _val_DOM=(document.getElementById);var _val_isMac=(_val_agt.indexOf("Mac")==-1);var _val_allString="document.";_val_allString += (_val_IE)?"all.":(_val_DOM)?"getElementById(\"":"";var _val_styleString=(_val_IE)?".style":(_val_DOM)?"\").style":"";var _val_endAllString=(_val_DOM && !_val_IE)?"\")":"";var _val_px=(_val_DOM)?"px":"";var Page_PTAValidationVer = "2";var Page_IsValid = true;  var Page_BlockSubmit = false;//****Janela Modal ************************function OK(sTitulo,sMensagem){
	Obj = new Object();
	Obj.BotaoOk = true;	
	Obj.Titulo = sTitulo;
	Obj.Mensagem = sMensagem;
	strResult = window.showModalDialog(PTA_sProjeto + "include/pta_webcontrols/modalDialog.htm", Obj, "dialogHeight:230px; dialogWidth:320px; center:1; help:0; scroll:0; status:0; unadorned:1;"); 			
}
function OKCancelar(sTitulo,sMensagem){
	Obj = new Object();
	Obj.BotaoOk = true;	
	Obj.BotaoCancelar = true;
	Obj.Titulo = sTitulo;
	Obj.Mensagem = sMensagem;
	strResult = window.showModalDialog(PTA_sProjeto + "include/pta_webcontrols/modalDialog.htm", Obj, "dialogHeight:230px; dialogWidth:320px; center:1; help:0; scroll:0; status:0; unadorned:1;"); 			
	return (strResult=='ok'?true:false);
}
function Prompt(sTitulo,sMensagem){
	Obj = new Object();
	Obj.BotaoOkPrompt = true;	
	Obj.BotaoCancelarPrompt = true;
	Obj.Titulo = sTitulo;
	Obj.Mensagem = sMensagem;
	Obj.Prompt = ' ';
	strResult = window.showModalDialog(PTA_sProjeto + "include/pta_webcontrols/modalDialog.htm", Obj, "dialogHeight:230px; dialogWidth:320px; center:1; help:0; scroll:0; status:0; unadorned:1;"); 			
	return strResult;
}
function SimNao(sTitulo,sMensagem){
	Obj = new Object();
	Obj.BotaoSim = true;	
	Obj.BotaoNao = true;
	Obj.Titulo = sTitulo;
	Obj.Mensagem = sMensagem;
	strResult = window.showModalDialog(PTA_sProjeto + "include/pta_webcontrols/modalDialog.htm", Obj, "dialogHeight:230px; dialogWidth:320px; center:1; help:0; scroll:0; status:0; unadorned:1;"); 			
	return (strResult=='sim'?true:false);
}
function Erro(sMensagem,sUrl){   	
	Obj = new Object();
	Obj.BotaoOk = true	
	Obj.Titulo = "Aviso"
	Obj.Mensagem = sMensagem
	strResult = window.showModalDialog(PTA_sProjeto + "include/pta_webcontrols/modalDialog.htm", Obj, "dialogHeight:230px; dialogWidth:320px; center:1; help:0; scroll:0; status:0; unadorned:1;"); 	
	window.location.href = sUrl;
}function PaginaErro(sUrl){
	// Fixo até que a nova pagina de erro seja implementada.
	//alert('teste');
	Obj = new Object();
	Obj.BotaoOk = true	
	Obj.Titulo = "Aviso"
	Obj.Mensagem = "Ocorreu um erro inesperado no sistema. Por favor, entre em contato com o Administrador."
	//alert('Messagem');
	strResult = window.showModalDialog(PTA_sProjeto + "include/pta_webcontrols/modalDialog.htm", Obj, "dialogHeight:230px; dialogWidth:320px; center:1; help:0; scroll:0; status:0; unadorned:1;"); 	
	//window.parent.location.href = sUrl;
	if(sUrl != ''){
	    self.location.href = sUrl;
	    //alert('self');
	}
	else{
	    //alert('back');
	    history.back();
	}
}var submeteuFormulario = 0;
function controleDoubleClick(obj) 
{
	if(submeteuFormulario=="1") 
	{
		OK("","O botão 'OK' ou 'Confirma' foi acionado mais de uma vez enquanto a transação estava em andamento. Aguarde... ");
		return false;
	}
	submeteuFormulario = "1";
	return true;
	
	//obj.disabled = true;
}//**************************************/* Inicio Controle de Segurança Pagina*/
var PaginaCorrente;
function _nocontextmenu(e){
	var c=PaginaCorrente;
	if(!c)return;
	if(navigator.appName=="Netscape"){
		OK('Aviso','Por questões de segurança, esta função está desativada.');
		e.cancelBubble=true;
		e.returnValue=false;
	}else{
		OK('Aviso','Por questões de segurança, esta função está desativada.');
		c.event.cancelBubble=true
		c.event.returnValue=false;
	}
	return false;
}

function _click(e){
	var c=PaginaCorrente;
	if(!c&&!c.document)return;
	if(c.document.all)if(c.event.button==2)return false;
	if(navigator.appName.indexOf("Netscape")!=-1) {	
		if(e.which==3)return false;
	else if(document.layers && e.target && e.target=="javascript:void(0)")routeEvent(e);
	}
}

function _checkF5(e){	
	var c=PaginaCorrente;		
	if(!c&&!c.document)return;	
	if(c.document.all) {
		if(c.event.keyCode==116)
		{
			OK('Aviso','Por questões de segurança, esta função está desativada.');
			c.event.keyCode=0; 			
			return false;
		}	
		if ( (c.event.keyCode==78) && (c.event.ctrlKey))
		{
			OK('Aviso','Por questões de segurança, esta função está desativada.');
		}
	}	
}

function disableRefresh(obj){
	PaginaCorrente = obj;
	var c=PaginaCorrente.document;	
	if(!c)return;
	if(window.Event){
		c.captureEvents(Event.MOUSEUP);
		c.captureEvents(Event.MOUSEDOWN);
		c.captureEvents(Event.KEYDOWN | Event.KEYUP);
	} 
	c.onmousedown=_click;
	c.oncontextmenu=_nocontextmenu;
	c.onkeydown=_checkF5;
}
/* Fim Controle de Segurança Pagina*///*********Funções Basicas**************function FormataValorKeyUp(oObjeto, nTamMax, oEvent, sMilhar, sDecimal, nTamDecimal){	var nTecla = null;	if (document.layers)
	{
		nTecla = oEvent.which;
	}
	else
	{
		nTecla = (window.Event) ? oEvent.which : oEvent.keyCode;
	}	if ((nTecla == 8) || (nTecla == 46))	{		return FormataValor(oObjeto, nTamMax, oEvent, sMilhar, sDecimal, nTamDecimal)	}		return false;}function FormataValor(oObjeto, nTamMax, oEvent, sMilhar, sDecimal, nTamDecimal, bMostraSepMilhar)
{
	if (sMilhar == null)
		sMilhar = ".";
		
	if (sDecimal == null)
		sDecimal = ",";

	if (nTamDecimal == null)
		nTamDecimal = 2;

	if (bMostraSepMilhar == null)
		bMostraSepMilhar = true;

	var nTecla = null;
	
	if (document.layers)
		nTecla = oEvent.which
	else
		nTecla = (window.Event) ? oEvent.which : oEvent.keyCode;
	if ((nTecla == 8) || (nTecla == 46) || 
		(nTecla >= 48 && nTecla <= 57) || 
		(nTecla >= 96 && nTecla <= 105))
	{
		if (nTecla >= 96 && nTecla <= 105)
			nTecla -= 48;
		
		var sValor = oObjeto.value;

		while (sValor.indexOf("/") > -1)
			sValor = sValor.replace("/", "" );
			
		while (sValor.indexOf(",") > -1)
			sValor = sValor.replace(",", "" );

		while (sValor.indexOf(".") > -1)
			sValor = sValor.replace(".", "" );

		if ((nTecla != 8) && (nTecla != 46))
			sValor += String.fromCharCode(nTecla);
		
		if (!isNaN(sValor))
		{
			var nValor = parseInt(sValor,10);
			if ((nValor > 0) || (String.fromCharCode(nTecla) == '0'))
				sValor = String(nValor)
			else
				sValor = "";
		}

		var nTam = sValor.length;

		if (nTam > nTamMax)
			return false;

		if ((nTam < nTamDecimal+1) && (nTam > 0))
		{
			var sPreenche = "";
			
			for (var i=1;i<=nTamDecimal+1-nTam;i++)
				sPreenche += "0";
			
			sValor = sPreenche + sValor;
			nTam = sValor.length;
		}

		nTam -= nTamDecimal;

		if (nTam > 0)
		{
			var sValorTemp = sValor.substring(0,nTam);
			var sNovoValor = "";
			
			for (var i=nTam-1;i>=0;i--)
			{
				var sSeparador = "";
				if (bMostraSepMilhar)
				{
					var iTmp = (nTam-1-i);
					if (((iTmp % 3) == 0) && (iTmp >= 3))
						sSeparador = sMilhar;
				}

				sNovoValor = sValorTemp.charAt(i) + sSeparador + sNovoValor;
			}
			
			if (nTamDecimal > 0)
				sNovoValor += sDecimal + sValor.substr(nTam,nTamDecimal);
			
			sValor = sNovoValor;
		}

		oObjeto.value = sValor;
	}

	return false;
}

function exibirValorFormatado(e) {
		var obj,tecla;
		//verificando se o que foi digitado Ã© um nÃºmero
		if (!soNumero(e)){
			return false;
		}
		obj   = (_val_NS) ? e.target : event.srcElement;
		codTecla = (_val_NS) ? e.which : event.keyCode;
		switch (codTeclaKeyDown) {
			case 8:
				obj.value = formatarValor(obj.value.substring(0,obj.value.length-1));
				break;
			case 9:
				return true;
				break;
			case 46:
				obj.value = formatarValor(obj.value.substring(0,obj.value.length-1));	
				break;
			default :
				if ((codTecla>47)&&(codTecla<58)) {
					if (obj.maxLength>obj.value.length){
					obj.value = formatarValor(obj.value + String.fromCharCode(codTecla));
					}
				}	
		}
		if (obj.value == '0,00') obj.value = '';
		return false;
}

function capturaCodTecla(e){
	codTeclaKeyDown = (_val_NS) ? e.which : event.keyCode;
	if (_val_IE) {
		switch (codTeclaKeyDown) {
			case 8:
				event.srcElement.value = formatarValor(event.srcElement.value.substring(0,event.srcElement.value.length-1));
				return false;
			break;
			case 46:
				event.srcElement.value = formatarValor(event.srcElement.value.substring(0,event.srcElement.value.length-1));
				return false;
			break;
		}
		if (event.srcElement.value == '0,00') event.srcElement.value = '';
	}
}
	
function formatarValor(str){
  var decimal,inteiro;
  var i,count;
  STR = new String(str);
  STR = tirarZerosEsquerda(STR);
  inteiro='';
	if (STR.length == 1){
		  inteiro  = '0';
		  decimal = '0' + STR;
		}
		else { 
		  if (STR.length == 2){
			  inteiro  = '0';
			  decimal = STR;
			}
			else{
			  decimal = STR.substring(STR.length-2,STR.length);
			  i=3;
			  count=0;
			  while (i<=STR.length){
				if (count==3) {
				  inteiro = '.' + inteiro;
				  count = 0;
				}
			    inteiro = STR.charAt(STR.length-i) + inteiro;
				count++;
				i++;
			  }
			}
		}
	if (inteiro == '') {
	  inteiro = '0';
	}
	if (decimal == '') {
	  decimal = '00';
	}
	return inteiro+','+decimal;
}


function tirarZerosEsquerda(STR){
	var sAux = '';
	STR = new String(STR);  
	var i = 0;
	while (i < STR.length ){
		if ((STR.charAt(i)!='.') && (STR.charAt(i)!=',')){
			sAux += STR.charAt(i);
		}
		i++
	}
  STR = new String(sAux);
  sAux = '';
  i = 0;
  while (i < STR.length ){
    if (STR.charAt(i) != '0'){
      sAux = STR.substring(i,STR.length)
	  i = STR.length;
	}
    i++;
  }
  return  sAux;
}

function soNumero(e) {
	var keyNumber = (_val_IE) ? event.keyCode : e.which;
	if (((keyNumber<48)||(keyNumber>57)) && (keyNumber!="0") && (keyNumber!=8)) {
		if (_val_IE) {
			event.keyCode=0
		}
		return false;
	}
	return true;
}function DesFormataFloat (dblValor, SepMilhar, SepDecimal) {
	var strValorOriginal = String(dblValor);

	while (strValorOriginal.indexOf(TrimJava(SepMilhar)) > -1) {
		strValorOriginal = strValorOriginal.replace(SepMilhar,'');
	}
	while ((strValorOriginal.indexOf(SepDecimal) > -1) && (SepDecimal != '.')) {
		strValorOriginal = strValorOriginal.replace(SepDecimal,'.');
	}
	return strValorOriginal;
}

function TrimJava(str)
{               
	var strTrim = new String(str)
	while (strTrim.substr(0,1) == ' ')
	{
		strTrim = strTrim.substr(1,strTrim.length-1);
	}
	while (strTrim.substr(strTrim.length-1,1) == ' ')
	{
		strTrim = strTrim.substr(0,strTrim.length-2);
	}
	return strTrim;
}

function soValor(e, obj, valida){
	if (_val_IE){
		if (e.keyCode < 47 || e.keyCode > 57) {
			if(valida){
				if(e.keyCode != 44){
					e.returnValue = false;
				}
				return;
			}
			e.returnValue = false;
		}
	}else{
		if (e.which < 47 || e.which > 57) {
			if(e.which != 44){				
			}
		}
	}
}//window.onload=Init;
/*function Init()
{
	aplicacarFormatacaoCampos(document.forms[0]);}*///**************************************function ValidatorUpdateDisplay(val) {		var prop = PTA_getAttribute(val,"display");		var style_str = "", style_prefix = "display: ";		    if (typeof(prop) == "string") {            if (prop == "None") {            return;        }        if (prop == "Dynamic") {			      style_str = val.isvalid ? "none" : "inline";                        val.style.display = style_str;            return;        }    }    val.style.visibility = val.isvalid ? "hidden" : "visible";}function ValidatorUpdateIsValid() {    var i;    for (i = 0; i < Page_Validators.length; i++) {        if (!Page_Validators[i].isvalid) {            Page_IsValid = false;            Page_BlockSubmit = true;            return;        }   }   Page_IsValid = true;}function ValidatorHookupControl(control, val) {    if (control != null)    {	   if (typeof(control.Validators) == "undefined") {            control.Validators = new Array;	        var ev = control.onchange;	        var new_ev;            if (typeof(ev) == "function" ) {                            ev = ev.toString();                new_ev = "if (Page_IsValid || Page_BlockSubmit) {" + ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}")) + "}";            }            else {                new_ev = "";            }            var func = new Function("ValidatorOnChange('" + control.id + "'); " + new_ev);	        control.onchange = func;	    }        control.Validators[control.Validators.length] = val;    }}function ValidatorGetValue(id) {    var control;        control = PTA_getElementByID(id);    if (control == null)		return "";    if (typeof(control.value) == "string") {        return control.value;    }    if (typeof(control.tagName) == "undefined" && typeof(control.length) == "number") {        var j;        for (j=0; j < control.length; j++) {            var inner = control[j];            if (typeof(inner.value) == "string" && (inner.type != "radio" || inner.status == true)) {                return inner.value;            }        }    }}function ChecaCNPJ(source, objCNPJ) 
{
	var strCNPJ = objCNPJ;
	var NewCNPJ = "";
	var DV = "";
	var DVCNPJ;
	var s1 = 0;
	var s2 = 0;
	var NewDV;
	
	//Verifica tamanho do CNPJ
	if ((strCNPJ.length != 14) || (isNaN(strCNPJ)))
	{
		objCNPJ.isvalid = false;
		return false;
	}
	
	//Calcula os dígitos verificadores
	//Guarda os 12 primeiros digitos
	DVCNPJ = strCNPJ.substring(0,12);
	
	//calcula o primeiro digito verificador
	for (i=1;i<=4;i++)
		s1 = s1 + (parseInt(DVCNPJ.charAt(i-1))*(6-i));

	for (i=5;i<=12;i++)
		s1 = s1 + (parseInt(DVCNPJ.charAt(i-1))*(14-i));
	
	r1 = s1 % 11;
	if (r1 < 2)
		dv1 = 0;
	else 
		dv1 = 11 - r1;
	
	//calcula o segundo digito verificador
	s2 = dv1 * 2;
	
	for (i=1;i<=5;i++)
		s2 = s2 + (parseInt(DVCNPJ.charAt(i-1))*(7-i));
	for (i=6;i<=12;i++)
		s2 = s2 + (parseInt(DVCNPJ.charAt(i-1))*(15-i));
	r2 = s2 % 11;
	if (r2 < 2)
		dv2 = 0;
	else
		dv2 = 11 - r2;
	
	//junta os digitos verificadores
	DV = DV + dv1 + dv2;
	//guarda os digitos verificadores do CNPJ digitado (últimas duas posições no string)
	NewDV = strCNPJ.substring(12,14)
	if (NewDV == DV)
	{ //se o DV calculado for igual ao digitado, retorna true
		objCNPJ.isvalid = true;
		return true
	}
	else
	{
		objCNPJ.isvalid = false;
		return false;
	}
}/////////////////////////////////////////////////////////////////////////////////
//Verifica se o argumento é um CPF válido
function ChecaCPF (source, objCPF)
{
	var CPF = objCPF;
	var NewCPF = "";
	//Verifica tamanho do CPF

	if (CPF.length!=11) 
	{
		objCPF.isvalid = false;
		return false;
	}

	//Calcula os dígitos verificadores
	//Guarda os 09 primeiros digitos
	var DVCPF = CPF.substring(0,9);
	var s1 = 0;
	for (i=1;i<=9;i++) s1 = s1 + (parseInt(DVCPF.charAt(i-1))*(11-i));
	r1 = s1 % 11;
	if (r1<2) dv1 = 0;
	else dv1 = 11 - r1;
	var s2 = dv1 * 2;
	for (i=1;i<=9;i++) s2 = s2 + (parseInt(DVCPF.charAt(i-1))*(12-i));
	r2 = s2 % 11;
	if (r2<2) dv2 = 0;
	else dv2 = 11 - r2;
	var DV = "";
	DV = DV + dv1 + dv2;
	var NewDV = CPF.substring(9,11);
	
	if (NewDV==DV) 
	{
		objCPF.isvalid = true
		return true
	}
	else
	{
		objCPF.isvalid = false;
		return false
	}
}function Page_ClientValidate() {    var i,ctrl;    for (i = 0; i < Page_Validators.length; i++) {        ValidatorValidate(Page_Validators[i]);    }    ValidatorUpdateIsValid();       ValidationSummaryOnSubmit();     Page_BlockSubmit = !Page_IsValid;    return Page_IsValid;}function ValidatorCommonOnSubmit() {///<V1.200> - Support for CausesValidation property   var retValue = !Page_BlockSubmit;   if (!_val_NS) {   // If we are not in crappy old Netscape 4.7 then....      if (_val_IE)  // If its Internet Explorer, set our return event value.         event.returnValue = retValue;   }      Page_BlockSubmit = false;   return retValue;}function ValidatorOnChange(controlID) {        var cont = PTA_getElementByID(controlID);    var vals = cont.Validators;    var i;    for (i = 0; i < vals.length; i++) {        ValidatorValidate(vals[i]);    }    ValidatorUpdateIsValid();        return Page_IsValid;}function ValidatorValidate(val) {       val.isvalid = true;    if (val.enabled != false)        {        if (typeof(val.evalfunc) == "function") {            val.isvalid = val.evalfunc(val);         }    }    ValidatorUpdateDisplay(val);}function ValidatorOnLoad() {    if (typeof(Page_Validators) == "undefined")        return;    var i, val;    for (i = 0; i < Page_Validators.length; i++) {        val = Page_Validators[i];                var evalFunction = PTA_getAttribute(val,"evaluationfunction");        if (typeof(evalFunction) == "string") {            eval("val.evalfunc = " + evalFunction + ";");        }                var isValidAttribute = PTA_getAttribute(val,"isvalid");        if (typeof(isValidAttribute) == "string") {            if (isValidAttribute == "False") {                val.isvalid = false;                                                Page_IsValid = false;            }             else {                val.isvalid = true;            }        } else {            val.isvalid = true;        }        if (typeof(val.enabled) == "string") {            val.enabled = (val.enabled != "False");        }                var controlToValidate = PTA_getAttribute(val,"controltovalidate");        if (typeof(controlToValidate) == "string") {			     ValidatorHookupControl(PTA_getElementByID(controlToValidate), val);            }		    		var controlhookup = PTA_getAttribute(val,"controlhookup");    		if (typeof(controlhookup) == "string") {          if (controlhookup != ""){            ValidatorHookupControl(PTA_getElementByID(controlhookup), val);    			}    		}            }    Page_ValidationActive = true;    if (!Page_IsValid)		ValidationSummaryOnSubmit();			// IE4 hack test    if (_val_IE4)    {		var ev = new Function("ValidationSummaryOnSubmit();");		document.onreadystatechange=ev;	}	}function RegularExpressionValidatorEvaluateIsValid(val) {        var value = ValidatorGetValue(PTA_getAttribute(val, "controltovalidate"));    if (value == "")        return true;                var rx = new RegExp(PTA_getAttribute(val, "validationexpression"));    var matches = rx.exec(value);    return (matches != null && value == matches[0]);}function ValidatorTrim(s) {        return s.replace(/^\s+|\s+$/g," ");}function VerificaEspacoTrim(source, s) {    var sCampo = s;    var sSplit = s.split(" ");    if (sSplit.length > 1){		source.isvalid = false;		return false;	}else {		source.isvalid = true;		return true;	}}function RequiredFieldValidatorEvaluateIsValid(val) {        return (ValidatorTrim(ValidatorGetValue(PTA_getAttribute(val, "controltovalidate"))) != ValidatorTrim(PTA_getAttribute(val, "initialvalue")));}///////////////////////////////////// my stuff ////////////////////////////////////////////////////////////function ValidatorCompare(operand1, operand2, operator, val) {        var dataType = PTA_getAttribute(val, "type");    var op1, op2;    if ((op1 = ValidatorConvert(operand1, dataType, val)) == null)        return false;       if (operator == "DataTypeCheck")        return true;    if ((op2 = ValidatorConvert(operand2, dataType, val)) == null)        return true;    if (op2 == "")		return true;    switch (operator) {        case "NotEqual":            return (op1 != op2);        case "GreaterThan":            return (op1 > op2);        case "GreaterThanEqual":            return (op1 >= op2);        case "LessThan":            return (op1 < op2);        case "LessThanEqual":            return (op1 <= op2);        default:            return (op1 == op2);                }}function CompareValidatorEvaluateIsValid(val) {    var ctrl = PTA_getAttribute(val, "controltovalidate");    if (null == ctrl)        return true;    var value = ValidatorGetValue(ctrl);    if (ValidatorTrim(value).length == 0)        return true;    var compareTo = "";        var hookupCtrl = PTA_getAttribute(val, "controlhookup");    var useCtrlToValidate = false;    if (hookupCtrl != null)    {        if (typeof(hookupCtrl) == "string")        {		    if (hookupCtrl != "")		        useCtrlToValidate = true;        }    }            if (!useCtrlToValidate) {          var ctrl_literal = PTA_getAttribute(val, "valuetocompare");        if (typeof(ctrl_literal) == "string") {            compareTo = ctrl_literal;           }    }    else {        compareTo = ValidatorGetValue(PTA_getAttribute(val, "controlhookup"));    }    operator = PTA_getAttribute(val, "operator");    return ValidatorCompare(value, compareTo, operator, val);}function CustomValidatorEvaluateIsValid(val) {    var value = "";        var ctrl = PTA_getAttribute(val, "controltovalidate");    if (typeof(ctrl) == "string") {		if (ctrl != "") {			value = ValidatorGetValue(ctrl);			if (value == "")				return true;        }    }    var valid = true;        var func_str = PTA_getAttribute(val, "clientvalidationfunction");    if (typeof(func_str) == "string") {        if (func_str != "") {            eval("valid = (" + func_str + "(val, value) != false);");        }    }            return valid;}function RangeValidatorEvaluateIsValid(val) {	var value;        var ctrl = PTA_getAttribute(val, "controltovalidate");    if (typeof(ctrl) == "string") {		if (ctrl != "") {			value = ValidatorGetValue(ctrl);			if (value == "")				return true;        }    }    var minval = PTA_getAttribute(val,"minimumvalue");    var maxval = PTA_getAttribute(val,"maximumvalue");	if (minval == null && maxval == null)        return true;        if (minval == "")		minval = 0;	if (maxval == "")		maxval = 0;	    return ( (parseFloat(value) >= parseFloat(minval)) && (parseFloat(value) <= parseFloat(maxval)));}function ValidatorConvert(op, dataType, val) {    function GetFullYear(year) {        return (year + parseInt(val.century)) - ((year < val.cutoffyear) ? 0 : 100);    }    var num, cleanInput, m, exp;    if (dataType == "Integer") {        exp = /^\s*[-\+]?\d+\s*$/;        if (op.match(exp) == null)             return null;        num = parseInt(op, 10);        return (isNaN(num) ? null : num);    }    else if(dataType == "Double") {        exp = new RegExp("^\\s*([-\\+])?(\\d+)?(\\" + val.decimalchar + "(\\d+))?\\s*$");        while (op.indexOf(".") > -1)					op = op.replace(".","");        m = op.match(exp);        if (m == null)            return null;        cleanInput = m[1] + (m[2].length>0 ? m[2] : "0") + "." + m[4];        num = parseFloat(cleanInput);        return (isNaN(num) ? null : num);                }     else if (dataType == "Currency") {				        exp = new RegExp("^\\s*([-\\+])?(\\d+)" +                        "?(\\" + val.decimalchar + "(\\d{1,2}))?\\s*$");        while (op.indexOf(".") > -1)					op = op.replace(".","");        m = op.match(exp);        if (m == null)            return null;        var intermed = m[2] + m[5] ;        cleanInput = m[1] + intermed.replace(new RegExp("(\\" + val.groupchar + ")", "g"), "") + ((val.digits > 0) ? "." + m[7] : 0);        num = parseFloat(cleanInput);        return (isNaN(num) ? null : num);                }    else if (dataType == "Date") {        var yearFirstExp = new RegExp("^\\s*((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})\\s*$");        m = op.match(yearFirstExp);        var day, month, year;        if (m != null && (m[2].length == 4 || val.dateorder == "ymd")) {            day = m[6];            month = m[5];            year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10))        }        else {            if (val.dateorder == "ymd"){                return null;		            }						            var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$");            m = op.match(yearLastExp);            if (m == null) {                return null;            }            if (val.dateorder == "mdy") {                day = m[3];                month = m[1];            }            else {                day = m[1];                month = m[3];            }            year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10))        }        month -= 1;        var date = new Date(year, month, day);        return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? date.valueOf() : null;    }    else {        return op.toString();    }}function ValidationSummaryOnSubmit() {    if (typeof(Page_ValidationSummaries) == "undefined")         return;    var summary, sums, s, summ_attrib, hdr_txt, err_msg;    for (sums = 0; sums < Page_ValidationSummaries.length; sums++) {        summary = Page_ValidationSummaries[sums];        summary.style.display = "none";        if (!Page_IsValid) {						   summ_attrib = PTA_getAttribute(summary, "showsummary");            if (summ_attrib != "False") {                summary.style.display = "";                if (typeof(summary.displaymode) != "string") {                    summary.displaymode = "BulletList";                }                switch (summary.displaymode) {                    case "List":                        headerSep = "<br>";                        first = "";                        pre = "";                        post = "<br>";                        final_block = "";                        break;                                            case "BulletList":                    default:                         headerSep = "";                        first = "<ul>";                        pre = "<li>";                        post = "</li>";                        final_block = "</ul>";                        break;                                            case "SingleParagraph":                        headerSep = " ";                        first = "";                        pre = "";                        post = " ";                        final_block = "<br>";                        break;                }                s = "";                                hdr_txt = PTA_getAttribute(summary, "headertext");                if (typeof(hdr_txt) == "string") {                    s += hdr_txt + headerSep;                }                var cnt=0;                s += first;                for (i=0; i<Page_Validators.length; i++) {                                        err_msg = PTA_getAttribute(Page_Validators[i], "errormessage");                    if (!Page_Validators[i].isvalid && typeof(err_msg) == "string") {						if (err_msg != "") {							cnt++;							s += pre + err_msg + post;						}                    }                }                   s += final_block;            		// IE4 work around                if (_val_IE4)                {					if (document.readyState == "complete")					{						summary.innerHTML  = s;						window.scrollTo(0,0);						summary.style.visibility = "visible";					}				} else				{					summary.innerHTML = s; 					window.scrollTo(0,0);					summary.style.visibility = "visible";				}            }                        summ_attrib = PTA_getAttribute(summary, "showmessagebox");                        if (summ_attrib == "True") {                s = "";                                hdr_txt = PTA_getAttribute(summary, "headertext");                if (typeof(hdr_txt) == "string") {                                        s += hdr_txt + "\n";                }                for (i=0; i<Page_Validators.length; i++) {										       err_msg = PTA_getAttribute(Page_Validators[i], "errormessage");                    if (!Page_Validators[i].isvalid && typeof(err_msg) == "string") {                        switch (summary.displaymode) {                            case "List":                                                                s += err_msg + "\n";                                break;                                                            case "BulletList":                            default:                                                                 s += "  - " + err_msg + "\n";                                break;                                                            case "SingleParagraph":                                s += err_msg + " ";                                break;                        }                    }                }                                alert(s);            }                        summ_attrib = PTA_getAttribute(summary, "showmodal");                        if (summ_attrib == "True") {                s = "";                                hdr_txt = PTA_getAttribute(summary, "headertext");                                for (i=0; i<Page_Validators.length; i++) {										       err_msg = PTA_getAttribute(Page_Validators[i], "errormessage");                    if (!Page_Validators[i].isvalid && typeof(err_msg) == "string") {                        switch (summary.displaymode) {                            case "List":                                                                s += err_msg + "<br>";                                break;                                                            case "BulletList":                            default:                                                                 s += "  - " + err_msg + "<br>";                                break;                                                            case "SingleParagraph":                                s += err_msg + " ";                                break;                        }                    }                }                                                                OK(hdr_txt,s);            }                    }    }}////////////////////////--- Funtions to work in IE4 and DOM ---/////////////////////////////////function PTA_getAttribute(control,attribute){	var attrib;	if (_val_DOM)		attrib = control.getAttribute(attribute, false);	else		attrib = eval(_val_allString + control.id + "." + attribute + _val_endAllString);	return attrib;}function PTA_getElementByID(id){	var element = eval(_val_allString + id + _val_endAllString);	return element;}
function SetValidatorsIsvalidStatus(bolIsValid) {
	for (i=0; i<Page_Validators.length; i++) {
		Page_Validators[i].isvalid = bolIsValid;
   }
}

function SetValidatorsAllEnable(bolEnable) {
	for (i=0; i<Page_Validators.length; i++) {
		Page_Validators[i].isvalid = !bolEnable;
   }
}