// JavaScript Document
/*global navigator,pageValidator,setTimeout,window*/

<!-- Begin
function blockError()
{
	return true;
}
window.onerror = blockError;
//  End -->

<!-- Begin
function setaCombo(oCombo, valor)
{
	var i;
	if (valor == parseInt(valor, 10))
	{
		valor = parseInt(valor, 10);	
	}
	else
	{
		valor = valor;
	}
		
	for (i=0;i<oCombo.length;i++)
	{
		if (oCombo.options[i].value == valor)
		{
			oCombo.options[i].selected=true;
		}
	}
	oCombo.value=valor;
}
// End -->

function frm_Action(f_Frm,f_URL)
{
    var frm;
    frm = document.getElementById(f_Frm);
	frm.action = f_URL;    
}

function frm_Reset(f_Frm)
{
    var frm;
    frm = document.getElementById(f_Frm);
	frm.reset();    
}

function frm_Submit(f_Frm)
{
    var frm;
    frm = document.getElementById(f_Frm);
	frm.submit();    
} 

function frm_Redireciona(f_URL)
{
    var url;
	url = f_URL
    document.location.href = url;    
} 

function obj_Value(f_Obj,f_Value)
{
    var obj;
    obj = document.getElementById(f_Obj);
	obj.value = f_Value;    
}

function obj_Attribute(f_Obj,f_Attribute)
{
    var obj;
    obj = document.getElementById(f_Obj);
	obj.setAttribute( "autocomplete","off" );    
	//alert(obj);	
}

function obj_Class(f_Obj,f_Value)
{
    var obj;
    obj = document.getElementById(f_Obj);
	obj.className = f_Value;    
}

function obj_DataMatch(f_Frm,f_Obj_1,f_Obj_2)
{
    var frm;
    frm = document.getElementById(f_Frm);
	
   	var obj_1;
    obj_1 = document.getElementById(f_Obj_1);
	
    var obj_2;
    obj_2 = document.getElementById(f_Obj_2);
	if (obj_2.value != obj_1.value)
	{
		document.getElementById("lbl_" + obj_2.name).className = 'Erro_Msg';				
		document.getElementById("spa_" + obj_2.name).className = 'Erro_Msg';
   		document.getElementById("spa_" + obj_2.name).innerHTML = '&middot;&nbsp;por favor, senhas n&atilde;o conferem.';

		//document.getElementById("lbl_" + obj_1.name).className = 'Erro_Msg';						
		//document.getElementById("spa_" + obj_1.name).className = 'Erro_Msg';
   		//document.getElementById("spa_" + obj_1.name).innerHTML = '&middot;&nbsp;por favor, senhas n&atilde;o conferem.';
		
		//alert((obj_2.value != obj_1.value));	
		//frm.submit.stop();
   		//document.getElementById('btn_OK').disabled = true;	
	}
	else
	{
		document.getElementById("lbl_" + obj_2.name).className = '';				
		document.getElementById("spa_" + obj_2.name).className = 'Erro_Clear';
   		document.getElementById("spa_" + obj_2.name).innerHTML = '...';

		//document.getElementById("lbl_" + obj_1.name).className = '';						
		//document.getElementById("spa_" + obj_1.name).className = 'Erro_Clear';
   		//document.getElementById("spa_" + obj_1.name).innerHTML = '...';
		
		//alert((obj_2.value != obj_1.value));	
		//frm.submit();
   		//document.getElementById('btn_OK').disabled = false;				
	}	
}

function formataMoeda(objTextBox,SeparadorMilesimo,SeparadorDecimal,e)
{
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    //var whichCode = (window.Event) ? e.which : e.keyCode;    
	var whichCode = (window.addEventListener) ? e.which : e.keyCode;	
    // 13=enter, 8=backspace as demais retornam 0(zero)
    // whichCode==0 faz com que seja possivel usar todas as teclas como delete, setas, etc   
	if ((objTextBox.value.length >= objTextBox.maxLength) && (whichCode != 13) && (whichCode != 8)) whichCode = 1;
	if ((whichCode == 13) || (whichCode == 0) || (whichCode == 8))
    	return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
 
 
    if (strCheck.indexOf(key) == -1) 
    	return false; // Chave inválida
    len = objTextBox.value.length;
	if (len >= objTextBox.getAttribute('maxlength'))
		return false;	
    for(i = 0; i < len; i++)
        if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) 
        	break;
    aux = '';
    for(; i < len; i++)
        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) 
        	aux += objTextBox.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) 
    	objTextBox.value = '';
    if (len == 1) 
    	objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;
    if (len == 2) 
    	objTextBox.value = '0'+ SeparadorDecimal + aux;
    if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        objTextBox.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
        	objTextBox.value += aux2.charAt(i);
        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
    }
    return false;
}

function MascaraData(f_name) 
{ 
	var L_obj,valor,L_valid;
	L_obj = document.getElementById(f_name);
	valor = L_obj.value;
	if (L_obj.value.length === 2){L_obj.value = L_obj.value + "/";} 
	if (L_obj.value.length === 5){L_obj.value = L_obj.value + "/";}
	//var d;
	//d = Date.parseExact(L_obj.value, "dd/MM/yyyy");
	//if (L_obj.value.length === 10)
	//{
	//	if (d !== null)
	//	{
	//		L_valid = true;
			//alert(d.toString('dddd, MMMM d, yyyy'));
	//	}
	//	else
	//	{	
	//		L_valid = false;
	//	}	
		
	//	if (L_valid !== true)
	//	{
	//		document.getElementById("spa_" + f_name).innerHTML = arr_FormMensagem[8] + ": " + valor + "\' informada est&#225; incorreta";
	//		document.getElementById("lbl_" + f_name).className = "Erro_Label";
	//		document.getElementById("spa_" + f_name).className = "Erro_Span";					
	//		document.getElementById("ico_" + f_name).innerHTML = arr_Img[17];
	//		L_obj.value = "";
	//	}
	//}	
	return function () {};
} 

function MascaraTelefone(objTextBox,e) 
{ 
if (objTextBox.value.length == 2){objTextBox.value = '(' + objTextBox.value;} 
if (objTextBox.value.length == 3){objTextBox.value = objTextBox.value + ')';}
if (objTextBox.value.length == 8){objTextBox.value = objTextBox.value + '-';}
} 

function Excluir(f_Value)
{
if (confirm('Are you sure you want to delete this post?')) { var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var m = document.createElement('input'); m.setAttribute('type', 'hidden'); m.setAttribute('name', '_method'); m.setAttribute('value', 'delete'); f.appendChild(m);var s = document.createElement('input'); s.setAttribute('type', 'hidden'); s.setAttribute('name', 'authenticity_token'); s.setAttribute('value', f_Value); f.appendChild(s);f.submit(); };return false;	
}

//**************
//** AUTO TAB **
//**************

<!-- Begin
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
var keyCode = (isNN) ? e.which : e.keyCode; 
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}

function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}

function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}

return true;
}
//  End -->

//**********************

//** TEXTAREA COUNTER **

//**********************



<!-- Begin

function textCounter(field, countfield, maxlimit) {

field = document.getElementById(field);
countfield = document.getElementById(countfield);

if (field.value.length > maxlimit) // if too long...trim it!

field.value = field.value.substring(0, maxlimit);

// otherwise, update 'characters left' counter

else 

countfield.innerHTML = maxlimit - field.value.length;

}

// End -->

//*************

//** MASCARA **

//*************



<!-- Begin 

function Mascara(obj,obj_tamanho,obj_marcardor) 

{ 
if (obj.value.length == parseInt(obj_tamanho)){obj.value = obj.value + '' + obj_marcardor + '';} 
//if (obj.value.length == 5){obj.value = obj.value + '.';}
//if (obj.value.length == 12){obj.value = obj.value + '/';}
//if (obj.value.length == 17){obj.value = obj.value + '-';}
} 

//  End -->


function js_SetarAtributo(f_Form)
{
	var form;
	form = document.getElementById(f_Form);
	if(form!=null)
	{
		if(form.elements.length!=0)
		{
			for(var i=0;i<form.elements.length;i++)
			{
				obj_Attribute(form.elements[i].name,'-');
			}
		}
	}
	else
	{
		alert("js_SetarAtributo(): form is " + form);	
	}
}

function js_SetarTitulo(f_Title)
{	
	if(f_Title!="")
	{	
		//document.defaultCharset
		document.title = f_Title;	
	}
	else
	{
		alert("js_SetarTitulo(): title is empty");	
	}
}

function js_AutoTab(f_Name,event)
{
	var obj_Input = f_Name;
	//alert(event);

	autoTab(obj_Input,obj_Input.maxLength, event);
}

function js_ocultar(f_element)
{
	var obj
	obj = document.getElementById(f_element);
	obj.style.display = "none";
}

function js_valor(f_element,f_valor)
{
	var obj
	obj = document.getElementById(f_element);
	obj.value = f_valor;
}
function verificaJS() {
	document.getElementById("js_habilitado").style.display = "none";
	document.getElementById("js_desabilitado").style.display = "none";
}

//JSLint: 2010-05-09
function js_bloquearTeclas(event, f_name, index, f_form)
{
	if (f_form === undefined)
	{
		alert("f_form is " + f_form);
	}
	
	if (!event)
	{
		event = window.event;
	}	
	var L_frmElement, iKeyCode, oSrcElement;
	iKeyCode = event.keyCode ? event.keyCode : event.which;
	oSrcElement = event.srcElement ? event.srcElement : event.target;  

	//iKeyCode === 9	
	//alert(iKeyCode);		
	//alert(oSrcElement);
	index = parseInt(index, 10);
	L_frmElement = document.getElementById(f_form);
	//alert(L_frmElement.elements[index].className);
	//alert(index + ' - ' + L_frmElement.elements[index].id);	
	switch (iKeyCode)	
	{
		case 9: case 13:
		{
			//alert("case: " + iKeyCode);
			if ((oSrcElement.className.indexOf("required") !== -1) && (oSrcElement.value.length === 0))
			{
				if (oSrcElement)
				{                           
					//alert(oSrcElement.id);
					var L_element,L_spaName,L_lblName,L_icoName;
					L_element = oSrcElement.id;
					L_spaName = "spa_" + L_element;
					L_lblName = "lbl_" + L_element;
					L_icoName = "ico_" + L_element;
					document.getElementById(L_spaName).innerHTML = arr_FormMensagem[0];
					document.getElementById(L_lblName).className = "Erro_Label";
					document.getElementById(L_spaName).className = "Erro_Span";					
					//document.getElementById(L_icoName).innerHTML = arr_Img[17];
					
					oSrcElement.focus();					
					oSrcElement.value += "";
					if (event.preventDefault)
					{
						event.preventDefault();
						setTimeout(function () {oSrcElement.focus();}, 1);
					}
					//w3c stop default behavior	
					if (event.cancelable)
					{
						event.preventDefault();
					}						
					//ie stop default behavior
					event.keyCode = 0; 
					event.returnValue = false;
					//DOM level 0 stop default behavior
					return false;			
				}					
			}
			else if ((oSrcElement.className.indexOf("optional") !== -1) && (iKeyCode === 9 || iKeyCode === 13 ))
			{
				//oSrcElement.form[index].focus();				
				L_frmElement.elements[index].focus();
				//if (oSrcElement)
				//{                           
					//alert(oSrcElement.id);
				//	oSrcElement.focus();					
				//	oSrcElement.value += "";
				//	if (event.preventDefault)
				//	{
				//		event.preventDefault();
				//		setTimeout(function () {oSrcElement.focus(); 
				//							}, 1);							
				//	}
					//w3c stop default behavior	
				//	if (event.cancelable)
				//	{
				//		event.preventDefault();
				//	}						
					//ie stop default behavior
				//	event.keyCode = 0; 
				//	event.returnValue = false;
					//DOM level 0 stop default behavior
				//	return false;			
				//}									
			}
			else if ((oSrcElement.className.indexOf("required") !== -1) && (oSrcElement.value.length !== 0))
			{
				//alert(index);
				//oSrcElement.form[index].focus();
				oSrcElement.focus();
				//L_frmElement.elements[index].focus()				
			}
			else 
			{
				//alert(index);
				//oSrcElement.form[index+1].focus();
			}
				//oSrcElement.focus();								
				L_frmElement.elements[index].focus();
				oSrcElement.value += "";
				if (event.preventDefault)
				{
					event.preventDefault();
					//setTimeout(function () {oSrcElement.focus();}, 1);
					setTimeout(function () {L_frmElement.elements[index].focus();}, 1);
				}
				//w3c stop default behavior	
				if (event.cancelable)
				{
					event.preventDefault();
				}						
				//ie stop default behavior
				event.keyCode = 0; 
				event.returnValue = false;
				//DOM level 0 stop default behavior
				return false;	
					
			break;
		}
		case 1:
		{
			L_frmElement.elements[index].focus();
		}
		default:
		{
			//alert("default: " + iKeyCode);
			break;
		}
	}
	
	//if ((index === 0) && ((iKeyCode === 9) || (iKeyCode === 13)))
	//{
	//	if (oSrcElement)
	//	{                           
			//alert(oSrcElement);
	//		oSrcElement.value += "";
	//		if (event.preventDefault)
	//		{
     //           event.preventDefault();
	//			setTimeout(function () {oSrcElement.focus(); 
	//								}, 1);	

				//w3c stop default behavior	
	//			if (event.cancelable)
	//			{
	//				event.preventDefault();
	//			}	
	//		}
	//		oSrcElement.focus();
			//ie stop default behavior
	//		event.keyCode = 0; 
		//	event.returnValue = false;
			//DOM level 0 stop default behavior
		//	return false;			
		//}		
	//}
	//else if ((iKeyCode === 9) || (iKeyCode === 13))
	//{		
	//	if ((oSrcElement.className.indexOf("required") !== -1) && (oSrcElement.value.length !== 0))
	//	{
	//		oSrcElement.form[index+1].focus();
	//	}
	//	else if (oSrcElement.className.indexOf("optional") !== -1)
	//	{
	//		oSrcElement.form[index+1].focus();
	//	}	
	//}
	//else
	//{
	//	return true;
		//; 
	//}
	
	return function()
	{};
}

/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: Corneliu Lucian 'Kor' Rusu | corneliulucian[at]gmail[dot]com */
var r={
  'special':/[\W]/g,
  'quotes':/['\''&'\"']/g,
  'notnumbers':/[^\d]/g
}
//onkeyup="valid(this,'special')";
function valid(o,w){
  o.value = o.value.replace(r[w],'');
}

function js_primeiraLetraMaiuscula(f_name)
{
	var L_obj;
	L_obj = document.getElementById(f_name);
	L_obj.style.textTransform = "capitalize";	
}
function js_zerarErro(f_name)
{
	document.getElementById("spa_" + f_name).innerHTML = "&#160;";
	document.getElementById("lbl_" + f_name).className = "";
	document.getElementById("spa_" + f_name).className = "Erro_Clear";
	//document.getElementById("ico_" + f_name).innerHTML = "";
}
function js_diaSemana(f_name)
{
	var L_objeto, L_data, L_mes, L_dia, L_ano, L_dianumero, L_semana, L_valor;
	L_valor = "";
	L_objeto = document.getElementById(f_name);
	L_valor = L_objeto.value;

	//L_data = new Date();
	//L_data = dateFormat.masks["default"].L_data;
	//alert(dateFormat.masks["default"].L_data);
	
	//L_data = new Date(L_valor);	
	//L_mes = L_data.getMonth(L_data);
	//L_dia = L_data.getDate();
	//L_mes = L_data.getFullYear();
	//L_data = new Date(L_data);
	//L_dianumero = L_data.getDay();
	//alert(L_dianumero);
	//if (L_dianumero !== "undefined")
	//{
	//	L_semana = [];
	//	L_semana[0] = 'Domingo';
	//	L_semana[1] = 'Segunda';
	//	L_semana[2] = 'Terça';
	//	L_semana[3] = 'Quarta';
	//	L_semana[4] = 'Quinta';
	//	L_semana[5] = 'Sexta';
	//	L_semana[6] = 'Sabado';	
	//	L_objeto.value = L_semana[L_dianumero] + ", " + L_valor;
	//}
	//else
	//{
		L_objeto.value = L_valor;
	//}	
}

/*
 * Date Format 1.2.3
 * (c) 2007-2009 Steven Levithan <stevenlevithan.com>
 * MIT license
 *
 * Includes enhancements by Scott Trenda <scott.trenda.net>
 * and Kris Kowal <cixar.com/~kris.kowal/>
 *
 * Accepts a date, a mask, or a date and a mask.
 * Returns a formatted version of the given date.
 * The date defaults to the current date/time.
 * The mask defaults to dateFormat.masks.default.
 */

var dateFormat = function () {
	var	token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
		timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		timezoneClip = /[^-+\dA-Z]/g,
		pad = function (val, len) {
			val = String(val);
			len = len || 2;
			while (val.length < len) val = "0" + val;
			return val;
		};

	// Regexes and supporting functions are cached through closure
	return function (date, mask, utc) {
		var dF = dateFormat;

		// You can't provide utc if you skip other args (use the "UTC:" mask prefix)
		if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
			mask = date;
			date = undefined;
		}

		// Passing date through Date applies Date.parse, if necessary
		date = date ? new Date(date) : new Date;
		if (isNaN(date)) throw SyntaxError("invalid date");

		mask = String(dF.masks[mask] || mask || dF.masks["default"]);

		// Allow setting the utc argument via the mask
		if (mask.slice(0, 4) == "UTC:") {
			mask = mask.slice(4);
			utc = true;
		}

		var	_ = utc ? "getUTC" : "get",
			d = date[_ + "Date"](),
			D = date[_ + "Day"](),
			m = date[_ + "Month"](),
			y = date[_ + "FullYear"](),
			H = date[_ + "Hours"](),
			M = date[_ + "Minutes"](),
			s = date[_ + "Seconds"](),
			L = date[_ + "Milliseconds"](),
			o = utc ? 0 : date.getTimezoneOffset(),
			flags = {
				d:    d,
				dd:   pad(d),
				ddd:  dF.i18n.dayNames[D],
				dddd: dF.i18n.dayNames[D + 7],
				m:    m + 1,
				mm:   pad(m + 1),
				mmm:  dF.i18n.monthNames[m],
				mmmm: dF.i18n.monthNames[m + 12],
				yy:   String(y).slice(2),
				yyyy: y,
				h:    H % 12 || 12,
				hh:   pad(H % 12 || 12),
				H:    H,
				HH:   pad(H),
				M:    M,
				MM:   pad(M),
				s:    s,
				ss:   pad(s),
				l:    pad(L, 3),
				L:    pad(L > 99 ? Math.round(L / 10) : L),
				t:    H < 12 ? "a"  : "p",
				tt:   H < 12 ? "am" : "pm",
				T:    H < 12 ? "A"  : "P",
				TT:   H < 12 ? "AM" : "PM",
				Z:    utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
				o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
				S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
			};

		return mask.replace(token, function ($0) {
			return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
		});
	};
}();

// Some common format strings
dateFormat.masks = {
	"default":      "ddd mmm dd yyyy HH:MM:ss",
	shortDate:      "m/d/yy",
	mediumDate:     "mmm d, yyyy",
	longDate:       "mmmm d, yyyy",
	fullDate:       "dddd, mmmm d, yyyy",
	shortTime:      "h:MM TT",
	mediumTime:     "h:MM:ss TT",
	longTime:       "h:MM:ss TT Z",
	isoDate:        "yyyy-mm-dd",
	isoTime:        "HH:MM:ss",
	isoDateTime:    "yyyy-mm-dd'T'HH:MM:ss",
	isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};

// Internationalization strings
dateFormat.i18n = {
	dayNames: [
		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
		"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
	],
	monthNames: [
		"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
		"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
	]
};

// For convenience...
Date.prototype.format = function (mask, utc) {
	return dateFormat(this, mask, utc);
};