// JavaScript Document
function RObj(ea) {
var LS="";var QS=new Object();var un="undefined";var f="function";var n="number";var r="string";var e1="ERROR: Index out of range in\r\nRequest.QueryString";var e2="ERROR: Wrong number of arguments or invalid property assignment\r\nRequest.QueryString";var e3="ERROR: Object doesn't support this property or method\r\nRequest.QueryString.Key"
function Err(arg) {if (ea) alert("Request Object:\r\n"+arg)}
function URID(t) {var d="";if (t) {for (var i=0; i<t.length; ++i) {var c=t.charAt(i);d+=(c=="+" ? " ":c);};};return unescape(d);}
function OL(o) {var l=0;for (var i in o) {if (typeof(o[i])!=f) l++;};return l;}
function AK(key) {var auk=true;for (var u in QS) {if (typeof(QS[u])!=f && u.toString().toLowerCase()==key.toLowerCase()) {auk=false;return u;}};if (auk) {QS[key]=new Object();QS[key].toString=function() {return TS(QS[key])};QS[key].Count=function() {return OL(QS[key])};QS[key].Count.toString=function() {return OL(QS[key]).toString()};QS[key].Item=function(e) {if (typeof(e)==un) return QS[key];else {if (typeof(e)==n) {var a=QS[key][Math.ceil(e)];if (typeof(a)==un) Err(e1 +"(\""+key+"\").Item("+e+")");return a;}else Err("ERROR: Expecting numeric input in\r\nRequest.QueryString(\""+key+"\").Item(\""+e+"\")");}};QS[key].Item.toString=function(e) {if (typeof(e)==un) return QS[key].toString();else {var a=QS[key][e];if (typeof(a)==un) Err(e1+"(\""+key+"\").Item("+e+")");return a.toString();};};QS[key].Key=function(e) {var t=typeof(e);if (t==r) {var a=QS[key][e];return (typeof(a)!=un && a && a.toString() ? e:"");}else Err(e3+"("+(e?e:"")+")");};QS[key].Key.toString=function() {return un};};return key}
function AVTK(key, val) {if (key!="") {var key=AK(key);var l=OL(QS[key]);QS[key][l+1]=val;}}
function TS(o) {var s="";for (var i in o) {var ty=typeof(o[i]);if (ty=="object") s+=TS(o[i]);else if (ty!=f) s+=o[i]+", ";};var l=s.length;if (l>1) return(s.substring(0,l-2));return (s=="" ? un:s);}
function KM(k, o) {var k=k.toLowerCase();for (var u in o) {if (typeof(o[u])!=f && u.toString().toLowerCase()==k) return u;};}
if (window.location && window.location.search) {LS=window.location.search;var l=LS.length;if (l>0) {LS=LS.substring(1,l);var preAmpAt=0;var ampAt=-1;var eqAt=-1;var k=0;var skip=false;for (var i=0; i<l; ++i) {var c=LS.charAt(i);if (LS.charAt(preAmpAt)=="=" || (preAmpAt==0 && i==0 && c=="=")) skip=true;if (c=="=" && eqAt==-1 && !skip) eqAt=i;if (c=="&" && ampAt==-1) {if (eqAt!=-1) ampAt=i;if (skip) preAmpAt=i+1;skip=false;};if (ampAt>eqAt) {AVTK(URID(LS.substring(preAmpAt,eqAt)),URID(LS.substring(eqAt+1,ampAt)));preAmpAt=ampAt+1;eqAt=ampAt=-1;++k;};};if (LS.charAt(preAmpAt)!="=" && (preAmpAt!=0 || i!=0 || c!="=")) {if (preAmpAt!=l) {if (eqAt!=-1) AVTK(URID(LS.substring(preAmpAt,eqAt)),URID(LS.substring(eqAt+1,l)));else if (preAmpAt!=l-1) AVTK(URID(LS.substring(preAmpAt,l)),"");};if (l==1) AVTK(LS.substring(0,1),"");};};};var TC=OL(QS);if (!TC) TC=0
QS.toString=function() {return LS.toString()};QS.Count=function() {return (TC ? TC:0)};QS.Count.toString=function() {return (TC ? TC.toString():"0")};QS.Item=function(e) {if (typeof(e)==un) return LS;else {if (typeof(e)==n) {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!=f && ++c==e) return QS[i];};Err(e1+"().Item("+e+")");}else return QS[KM(e, QS)];};return un;};QS.Item.toString=function() {return LS.toString()};QS.Key=function(e) {var t=typeof(e);if (t==n) {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!=f && ++c==e) return i;}}else if (t==r) {var e=KM(e, QS);var a=QS[e];return (typeof(a)!=un && a && a.toString() ? e:"");}else Err(e2+"().Key("+(e?e:"")+")");Err(e1+"().Item("+e+")");};QS.Key.toString=function() {Err(e2+"().Key");}
this.QueryString=function(k) {if (typeof(k)==un) return QS;else {var k=KM(k, QS);if (typeof(QS[k])==un) {t=new Object();t.Count=function() {return 0};t.Count.toString=function() {return "0"};t.toString=function() {return un};t.Item=function(e) {return un};t.Item.toString=function() {return un};t.Key=function(e) {Err(e3+"("+(e?e:"")+")");};t.Key.toString=function() {return un};return t;}if (typeof(k)==n) return QS.Item(k);else return QS[k];}}
this.QueryString.toString=function() {return LS.toString();};this.QueryString.Count=function() {return (TC ? TC:0)};this.QueryString.Count.toString=function() {return (TC ? TC.toString():"0")};this.QueryString.Item=function(e) {if (typeof(e)==un) return LS.toString();else {if (typeof(e)==n) {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])!=f && ++c==e) return QS[i];};Err(e1+".Item("+e+")");}else return QS[KM(e, QS)];}if (typeof(e)==(n)) Err(e1+".Item("+e+")");return un;}
this.QueryString.Item.toString=function() {return LS.toString()};this.QueryString.Key=function(e) {var t=typeof(e);if (t==n) {var e=Math.ceil(e);var c=0;for (var i in QS) {if (typeof(QS[i])=="object" && (++c==e)) {return i;}}}else if (t==r) {var e=KM(e, QS);var a=QS[e];return (typeof(a)!=un && a && a.toString() ? e:"");}else Err(e2+".Key("+(e?e:"")+")");Err(e1+".Item("+e+")");};this.QueryString.Key.toString=function() {Err(e2+".Key");};this.Version=1.1;this.Author="Andrew Urquhart (www.andrewu.co.uk)";}
var Request=new RObj(false);

//Retorna mensagens para o usuário
function alerta(msg){
	//Verifica se o conteúdo é nulo
	var st = (msg == "") || (msg == "undefined")
	
	//Se o status for falso, apresenta a mensagem obtida.
	if(st==false){
		alert(msg)
	}		  
}

function LTrim(str) { 
	 for (var k=0; k<str.length && str.charAt(k)<=" " ; k++) ;
		return str.substring(k,str.length);
}
	
function RTrim(str) {
	for (var j=str.length-1; j>=0 && str.charAt(j)<=" " ; j--) ;
		return str.substring(0,j+1);
}
	
function Trim(str) {
	return LTrim(RTrim(str));
}

function ValidateForm(frm)
{
	var result = true;
	var msg = "";
	
	for(i=0; i < frm.length; i++)
	{
		if(frm[i].getAttribute("require")!=null)
		{
			switch( frm[i].tagName)
			{
				case "INPUT":
					switch( frm[i].type.toUpperCase() )
					{
						case "TEXT":
							if( Trim(frm[i].value) == "" )
							{
								msg = "Campo de Preenchimento obrigatorio";
								result = false;
								frm[i].focus();
							}
							else
							{
								//Verifica se há alguma validação
								if( frm[i].getAttribute("verify")!=null )
								{									
									if( !ValidateField( frm[i].getAttribute("verify"), frm[i].value ) )
									{										
										msg = "Conteúdo do campo com formato inválido";
										result = false;
										frm[i].focus();
									}
						
								}
							}
							break;
					}
					break;
			}
		}		
	}
	
	if(msg!="")
		alert(msg);
		
	return result;
}

function ValidateField(tipo, valor)
{
	switch( tipo.toUpperCase() )
	{
		case "ALFA":			
			return somenteLetras(valor);
			break;
		
		case "DATE":
			return isDate(valor);
			break;
	}
	
	return true;
}

function somenteLetras(valor)
{	
	var regex = new RegExp("^[a-zA-Z]*$");	
	
	return regex.test(valor);
}

function isDate(dateStr){
		//checa a data pro formato dd/mm/aaaa
		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

		var matchArray = dateStr.match(datePat); // 
		if (matchArray == null) {		
			return false;
		}
		
		month = matchArray[3]; 
		day = matchArray[1]; 
		year = matchArray[4]; 
		
		if(year=="0000"){
			return false;
		}
		
		if (month < 1 || month > 12) { // checa o mês		
			return false;
		}

		if (day < 1 || day > 31) {
			return false;
		}

		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			return false;
		}
		else
		{
			if (month == 2) { // checa fevereiro
				var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
				if (day>29 || (day==29 && !isleap)) {
					return false;
				}
			}		
		}
		
		return true; // date é válida	
	}