var BLN_USE_IBNC = false;

if(typeof(PortalBrasil) == 'undefined'){
	var PortalBrasil = {};
}

// Funções necessárias:
function fun_verify_event(event){var obj_keycode = ((event.keyCode) ? event.keyCode : event.which);return ((obj_keycode != 9 && obj_keycode != 16 && obj_keycode != 17 && obj_keycode != 18 && obj_keycode != 20 && obj_keycode != 35 && obj_keycode != 36 && obj_keycode != 37 && obj_keycode != 38 && obj_keycode != 39 && obj_keycode != 40 && obj_keycode != 45 && obj_keycode != 46) ? false : true);}
function fun_is_num(event,obj_form_element){var obj_keycode = ((event.keyCode) ? ((!bln_is_ie && !document.all) ? event.charCode : event.keyCode) : event.which);if(!bln_is_ie && document.all){if(fun_verify_event(event) || obj_keycode == 46 || obj_keycode == 33 || obj_keycode == 34){return false;};}if(bln_is_ie){if(fun_verify_event(event) || obj_keycode == 96 || obj_keycode == 97 || obj_keycode == 98 || obj_keycode == 99 || obj_keycode == 100 || obj_keycode == 101 || obj_keycode == 102 || obj_keycode == 103 || obj_keycode == 104 || obj_keycode == 105){return false;}}if(bln_is_ie || !(event.ctrlKey)){if(obj_keycode < 32){return true};if(obj_keycode > 127){return false};if(obj_keycode < 48 || obj_keycode > 57){alert('Atenção: ' + ((document.getElementById('lbf_' + obj_form_element.name)) ? 'o campo ' + document.getElementById('lbf_' + obj_form_element.name).firstChild.nodeValue : 'este campo') + ' deve conter um valor numérico.');obj_form_element.focus();return false;}}}
function fun_set_focus(obj_form,str_form_element,str_form_to_set,event){if(obj_form.elements[str_form_element].value.length == obj_form.elements[str_form_element].maxLength){if(!fun_verify_event(event)){obj_form.elements[str_form_to_set].focus();}}}
function fun_send_on_enter(event){var obj_keycode = ((event.keyCode) ? ((!bln_is_ie && !document.all) ? event.charCode : event.keyCode) : event.which);if(obj_keycode == 13 && bln_is_ie){PortalBrasil.Login.sendLogin();}}

PortalBrasil.Login = {
	FormType: 2,

	Availability: [1, 1],
	
	ApplicationCode: (Math.ceil(Math.random() * 1000000000) - 1),

	Session: ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','X','W','Y','Z','0','1','2','3','4','5','6','7','8','9'],

	ApplicationStrings: {Status: 0, Sessao: 0, Indice: 0, Opera: '', View: 0},
	
	ApplicationParans: [],
	
	FilteredURL: '',

	Applications: {},

	Servers: {},

	Distribution: {},

	setApplicationStrings: function(){
		this.ApplicationStrings.Status	= this.getApplicationCode(1, 50);
		this.ApplicationStrings.Sessao	= this.getApplicationCode(2, 15);
		this.ApplicationStrings.Indice	= this.getApplicationCode(1, 50);
		this.ApplicationStrings.Opera		= '<%OPERA%>';
		this.ApplicationStrings.View		= this.getApplicationCode(2, 10);
	},
	
	setApplicationsServers: function(){
		document.forms['frmLoginAPI'].elements['SERV_PF'].value		= this.getServer('RIB');
		document.forms['frmLoginAPI'].elements['SERV_PJ'].value		= this.getServer('RIE');
		document.forms['frmLoginAPI'].elements['SERV_IBNC'].value	= this.getServer('IBNC');
		document.forms['frmLoginAPI'].elements['RANDOM'].value		= this.ApplicationCode;
	},

	sendLogin: function(){
		if(document.forms['login'].elements['FORM_TYPE'].value == 1){
			this.verifyLogin('Correntista', [document.forms['login'].elements['AGENCIA'],document.forms['login'].elements['CONTA']]);
		}else{
			this.verifyLogin('NaoCorrentista', [document.forms['login'].elements['NC_USERID'],document.forms['login'].elements['NCPF'],document.forms['login'].elements['NCPFD']]);
		}
	},

	verifyLogin: function(str_form_type, arr_fields){
		var bln_is_ok = true;
	
		var obj_appl_form = document.forms['frmLoginAPI'];
		var ErrorConfig = {Correntista: {name: ['Agência','Conta'], regexp: ['^[0-9]{1,4}$','^[0-9]{1,9}$']},NaoCorrentista: {name: ['Usuário','CPF','Dígito do CPF'], regexp: ['','','']}};
	
		for(var int_count = 0; int_count < arr_fields.length; int_count++){
			if(str_form_type == 'Correntista'){
				if(arr_fields[int_count].name == 'USERID') continue;
			}
			

			if(arr_fields[int_count].value != ''){
				if(ErrorConfig[str_form_type].regexp[int_count] != ''){
					if(!arr_fields[int_count].value.match(new RegExp(ErrorConfig[str_form_type].regexp[int_count],'g'))){
						bln_is_ok = false;
	
						alert('Por favor, preencha corretamente o campo ' + ErrorConfig[str_form_type].name[int_count] + '.');
	
						arr_fields[int_count].focus();
						return false;
					}
				}
	
				if(bln_is_ok){
					obj_appl_form.elements[arr_fields[int_count].name.replace(/NC_/g, '') + this.ApplicationCode].value = arr_fields[int_count].value;
				}
			}else{
				bln_is_ok = false;
	
				alert('Por favor, preencha o campo ' + ErrorConfig[str_form_type].name[int_count] + '.');
	
				arr_fields[int_count].focus();
	
				return false;
			}
		}

		if(bln_is_ok){
			for(var int_count = 0; int_count < arr_fields.length; int_count++){
				arr_fields[int_count].value = '';
			}

			this.setApplicationsServers();
			this.setFormActionAndSend(obj_appl_form);
		}
	},

	setFormActionAndSend: function(obj_form){
		if(document.forms['login'].elements['PROD_I'].value == 1){
			top.location = 'https://www.santandernet.com.br/default.asp?txtAgencia=' + document.forms['frmLoginAPI'].elements['AGENCIA' + this.ApplicationCode].value + '&txtConta=' + document.forms['frmLoginAPI'].elements['CONTA' + this.ApplicationCode].value + '&oA=site';
		}else{
			var str_appl = ((BLN_USE_IBNC) ? 'SERV_IBNC' : ((document.forms['login'].elements['PROD_I'].value == 1) ? ((document.forms['login'].elements['FORM_TYPE'].value == 2) ? 'SERV_IBNC' : 'SERV_PF') : ((document.forms['login'].elements['FORM_TYPE'].value == 2) ? 'SERV_IBNC' : 'SERV_PJ')));

			obj_form.action = obj_form.elements[str_appl].value;
			obj_form.submit();	
		}
	},

	getApplicationCode: function(int_type, int_n){
		int_type	= int_type || 1;
		int_n		= int_n || 15;
	
		if(int_type == 1){
			return Math.round(Math.random() * (int_n - 1));
		}else{
			var int_aux = -1, int_counter = int_n, str_data = '';

			while(int_counter > 0){
				int_aux = Math.round(Math.random() * (this.Session.length - 1));

				str_data += (((Math.round(Math.random() * (999)) % 2) == 0) ? this.Session[int_aux].toUpperCase() : this.Session[int_aux].toLowerCase());

				int_counter--;
			}

			return str_data;
		}
	},

	getApplicationParans: function(){
		this.FilteredURL = '';

		for(var Looper in this.ApplicationStrings){
			this.ApplicationParans[this.ApplicationParans.length] = Looper.toUpperCase() + '=' + this.ApplicationStrings[Looper];
		}

		while(this.ApplicationParans.length > 0){
			var int_select = Math.round(Math.random() * (this.ApplicationParans.length - 1));
			var arr_tmp_aux = this.ApplicationParans;

			this.FilteredURL += ((this.FilteredURL != '') ? '&' : '') + this.ApplicationParans[int_select].replace(/\<\%OPERA\%\>/, ((BLN_USE_IBNC || document.forms['login'].elements['FORM_TYPE'].value == 2) ? ((document.forms['login'].elements['PROD_I'].value == 2) ? 'InicioLogin' : 'DirecionaLogin') : ((document.forms['login'].elements['PROD_I'].value == 2) ? 'InicioLogin' : 'DirecionaLogin'))); // LoginNaoCorrentistaPF
			this.ApplicationParans = [];

			for(var int_count = 0; int_count < arr_tmp_aux.length; int_count++){
				if(int_count != int_select) this.ApplicationParans[this.ApplicationParans.length] = arr_tmp_aux[int_count]; 
			}
		}

		return this.FilteredURL;
	},
	
	getServer: function(str_appl){
		if(typeof(str_appl) == 'undefined' || !this.Distribution[str_appl]) return false;

		this.getApplicationParans();

		var int_selected_server =  Math.round(Math.random() * (this.Distribution[str_appl].length - 1));

		var str_server		= this.Servers[str_appl][(this.Distribution[str_appl][int_selected_server] - 1)];
		var str_application	= this.Applications[str_appl];

		return str_server + str_application + '?' + this.FilteredURL;
	},

	getFilteredURL: function(){
		var arr_form_itens = ['USERID' + this.ApplicationCode, 'AGENCIA' + this.ApplicationCode, 'CONTA' + this.ApplicationCode, 'NCPF' + this.ApplicationCode, 'NCPFD' + this.ApplicationCode, 'SERV_PF', 'SERV_PJ', 'SERV_IBNC', 'PROD_I', 'RANDOM'], str_form = '';

		str_form += '<form name="frmLoginAPI" method="post" action="" target="_top" autocomplete="off">' + "\n";
		
		for(var int_count = 0; int_count < arr_form_itens.length; int_count++){
			str_form += '	<input type="hidden" name="' + arr_form_itens[int_count] + '" id="' + arr_form_itens[int_count] + '" value="" />' + "\n";
		}
		
		str_form += '</form>' + "\n";

		return str_form;
	},
	
	changeLoginType: function(int_type){
		int_type = int_type || 0;

		if(int_type == 1){
			if(PortalBrasil.SEGMENTO_TRANS == 'NAO_CORRENTISTA' || PortalBrasil.SEGMENTO == 'NAO_CORRENTISTA') this.FormType = 1;
		}

		if(this.FormType == 1){
			document.forms['login'].elements['FORM_TYPE'].value = 2;
			this.FormType = 2;
		}else{
			document.forms['login'].elements['FORM_TYPE'].value = 1;
			this.FormType = 1;
		}

		if(PortalBrasil.SEGMENTO_TRANS == 'GENERICO' || PortalBrasil.SEGMENTO_TRANS == 'NAO_CORRENTISTA' || PortalBrasil.SEGMENTO_TRANS == 'NL_NAO_CORRENTISTA' || PortalBrasil.SEGMENTO_TRANS == 'LG_NAO_CORRENTISTA' || PortalBrasil.SEGMENTO == 'GENERICO' || PortalBrasil.SEGMENTO == 'NAO_CORRENTISTA' || PortalBrasil.SEGMENTO == 'NL_NAO_CORRENTISTA' || PortalBrasil.SEGMENTO == 'LG_NAO_CORRENTISTA'){
			cookies.set('SEGMENTO', ((document.forms['login'].elements['FORM_TYPE'].value == 2) ? 'NAO_CORRENTISTA' : ''), '/','','','');
		}
	},

	writeNotAvailableAreas: function(){
		var str_return = '';

		return str_return;
	}
};
