function Page()
{
	this.blockContextMenu		= false;
	this.autoFocusFirstField	= false;
	this.isIE					= (typeof window.ActiveXObject != 'undefined');;
	this.isMozila				= (typeof document.implementation != 'undefined') &&(typeof document.implementation.createDocument != 'undefined');
	this.onErrorFunction		= this.ErrorCapture;
	this.onLoadFunction			= this.onLoad;
	this.onSubmitFunction		= null;
}

Page.prototype.init = function()
{
	/*
	var arrScrpt= new Array( "Common.js", "BehaviorFunctions.js", "ValidationFunctions.js" );
	var objHead = document.getElementsByTagName("head")[0];
	
	for( var i=0; i < arrScrpt.length; i++ )
	{
		var objScrpt = document.createElement("script");
			objScrpt.src = arrScrpt[i];

		objHead.appendChild( objScrpt );
	}
	*/
	if( this.blockContextMenu )
		this.BlockContextMenu();

	if( this.autoFocusFirstField )
		this.SetFocus();

	if( this.onErrorFunction != null )
		this.attachEvent(window, "error", this.ErrorCapture );
		
	if( this.onLoadFunction	!= null )
		this.onLoadFunction();
		
}

Page.prototype.BlockContextMenu = function()
{
	if (document.layers) {
		document.captureEvents(Event.MOUSEDOWN);
		document.onmousedown = function(e) {if (document.layers ||(document.getElementById && !document.all)) {  if (e.which==2 || e.which==3) {return false; } }};
	} 
	else{
		document.onmouseup = function(e) {if (document.layers ||(document.getElementById && !document.all)) {  if (e.which==2 || e.which==3) {return false; } }};
		document.oncontextmenu = function(e) {return false;};
	} 
	
	document.oncontextmenu = function(e) {return false;};
}

Page.prototype.SetFocus = function()
{
	if( document.readyState != "complete")
	    return;

	if( (  document.activeElement                                    ) &&
	    (  document.activeElement.tagName                            ) &&
	    (  document.activeElement.tagName.toUpperCase() == "INPUT"   ) &&
	    (  document.activeElement.form                               ) &&
	    (! document.activeElement.disabled                           ) &&
	    (! document.activeElement.readOnly                           ) &&
	    (  document.activeElement.type.toUpperCase()    != "HIDDEN"  ) ) {

        Behavior.setFieldFocus( document.activeElement );
        return;
	}

	var elementsLength = document.forms[0].childNodes.length;
	var i;
	var p = -1;

	for(i = 0; ( (i < elementsLength) && (i < 99) ); i++) {

		if( (  document.forms[0].childNodes[i].tagName                          ) &&
		    (  document.forms[0].childNodes[i].tagName.toUpperCase() == "INPUT" ) &&
		    (  document.forms[0].childNodes[i].tagName.toUpperCase() == "SELECT") &&
		    (! document.forms[0].childNodes[i].disabled                         ) &&
		    (  document.forms[0].childNodes[i].type.toUpperCase()    != "HIDDEN") ) {

			if(! document.forms[0].childNodes[i].readOnly ) 
			{
			    Behavior.setFieldFocus( document.forms[0].childNodes[i] );
			    return;
			}

			if(-1 == p)
			    p = i;
		}
	}

	if(-1 != p) 
	{
	    Behavior.setFieldFocus( document.forms[0].childNodes[p] );
	    return;
	}
}

Page.prototype.ErrorCapture = function(sMsg,sUrl,sLine)
{	
	var msg = "";
	//if( this.isIE )
	{
		msg = "JavaScript Error\n";
		msg+= "Erro  :" + sMsg  + "\n";
		msg+= "Linha :" + sLine + "\n";
		msg+= "URL   :" + sUrl  + "\n";
	}
	//else
	//{
	//	msg = "JavaScript Error\n";
	//}
	alert(msg);
	return true;
}

Page.prototype.attachEvent = function( obj, eventName, functionName )
{
	if( typeof window.ActiveXObject != 'undefined' )
		obj.attachEvent("on" +	eventName, functionName );
	else
		obj.addEventListener( eventName, functionName, true);	
}

Page.prototype.onLoad = function()
{
	try
	{
		Behavior = new Behavior();

		var arrEventList = new Array();
			arrEventList[ 0] = new Array("keypress", ""						, Behavior.nextField);
			arrEventList[ 1] = new Array("keypress", eFieldType.numerico	, Behavior.numericMask);
			arrEventList[ 2] = new Array("keypress", eFieldType.data		, Behavior.dateTimeMask);
			arrEventList[ 3] = new Array("keypress", eFieldType.dataHora	, Behavior.dateTimeMask);
			arrEventList[ 4] = new Array("keypress", eFieldType.mesAno		, Behavior.dateTimeMask);
			arrEventList[ 5] = new Array("keypress", eFieldType.horaMinSeg	, Behavior.dateTimeMask);
			arrEventList[ 6] = new Array("keypress", eFieldType.dataHoraMinSeg, Behavior.dateTimeMask);
			arrEventList[ 7] = new Array("keypress", eFieldType.horaMin		, Behavior.dateTimeMask);
			arrEventList[ 8] = new Array("keypress", eFieldType.inteiro		, Behavior.numericMask);
			arrEventList[ 9] = new Array("keypress", eFieldType.cartao		, Behavior.cartaoMask);
			arrEventList[10] = new Array("keypress", eFieldType.cep			, Behavior.cepMask);
			arrEventList[11] = new Array("keypress", eFieldType.cnpj		, Behavior.cnpjMask);
			arrEventList[12] = new Array("keypress", eFieldType.cpf			, Behavior.cpfMask);
			arrEventList[13] = new Array("keypress", eFieldType.fone		, Behavior.foneMask);
			arrEventList[13] = new Array("keypress", eFieldType.fone2		, Behavior.fone2Mask);
			arrEventList[14] = new Array("keypress", eFieldType.RE			, Behavior.reMask);

		Behavior.className = "Edit";
		Behavior.eventList = arrEventList;
		Behavior.applyEventList( document.forms[0] );

		if( this.onSubmitFunction	!= null )
			this.attachEvent( document.forms[0], "submit", this.onSubmitFunction );
		
	}
	catch(e)
	{
		setTimeout('objPage.onLoad();', 100);
	}	
}

Page.prototype.onSubmit = function()
{

}
