
document.domain = 'inteart.net';

var IA = {
	root: false,
	comun: false,
	api: false,
	ea: false,
	mov: 0,
	inteart: 0,
	cargador: '<span class="cargador"><span class="progreso"></span></span>',
	alturaPaneles: function(){
		if(!IA.mov){
			var d = $(document).height();
			$('#nav').css('height',d+'px');
		}
	},
	cerrarMensaje: function(id){
		$('#m'+id).remove();
	},
	mostrarCargador: function(e){
		var el = $(e.target);
		if(!el.hasClass('sin-cargador')){
			var pa = el.closest('.panel-acciones');
			pa.children().addClass('oculto');
			pa.append(IA.cargador);
		}
	},
	controlMenu: function(){
		if(IA.mov){
			var oc = $('#nav').hasClass('menu-mov-oculto') ? 1 : 0;
			if(!oc){
				$('#nav').addClass('menu-mov-oculto');
			} else {
				$('#nav').removeClass('menu-mov-oculto');
			}
		} else {
			var comp = $('#nav').hasClass('col-nav-compacta') ? 1 : 0;			
			if(!comp){
				$('#nav').removeClass('col-15').addClass('col-nav-compacta');
				$('#interfaz').removeClass('col-85').addClass('col-ppal');
				var m = 0;
			} else {				
				$('#nav').removeClass('col-nav-compacta').addClass('col-15');
				$('#interfaz').removeClass('col-ppal').addClass('col-85');
				var m = 1;
			}
			datos = 'm='+m+'&_ESTADO_AP='+IA.ea;		
			$.ajax({
				data: datos,
				type: "POST",
				dataType: "html",
				url: 'ajax/menu.ajax.php'
			});
		}	
	},
	desplegableNav: function(n){	
		var li = $('#nav li[data-n="'+n+'"]');
		if(li.hasClass('desplegado')){
			li.removeClass('desplegado');
		} else {
			li.addClass('desplegado');
			
		}
		$('#nav li:not(li[data-n="'+n+'"])').removeClass('desplegado');
		if($('#nav').hasClass('col-nav-compacta')){
			IA.controlMenu();
		}
	},
	abrirInterfaz: function(e){
		e.preventDefault();
		var i = $(e.currentTarget).attr('data-interfaz');
		var fc = $(e.currentTarget).attr('data-f-cierre');
		var data_f_cierre = '';
		if(
			(typeof fc!=='undefined')&&
			(fc!='undefined')
		){
			data_f_cierre = ' data-f-cierre="'+fc+'"';
		}
		var d = $(e.currentTarget).attr('data-d');
		var data_d = '';
		if(
			(typeof d!=='undefined')&&
			(d!='undefined')
		){
			data_d = ' data-d="'+d+'"';
		}		
		var url = IA.comun+'interfaces/'+i;		
		var p = $(document).scrollTop();
		var m = $('<iframe id="i-'+i+'" src="'+url+'?_ESTADO_AP='+IA.ea+'"'+data_f_cierre+' data-pos="'+p+'"'+data_d+'></iframe>');
		$('body').addClass('latente').append(m);
		$(document).scrollTop(0);
	},
	reemplazarInterfaz: function(o,intf,reem,d){
		var p = $('#i-'+intf).attr('data-pos');
		$('#i-'+intf).remove();
		var m = $('<iframe id="i-'+reem+'" src="'+IA.comun+'interfaces/'+reem+'?_ESTADO_AP='+IA.ea+'" data-pos="'+p+'" data-d="'+d+'"></iframe>');
		$('body').append(m);
	},
	cerrarInterfaz: function(notif,txt,rec){
		var m = {
			'funcion': '_cerrarInterfaz',
			'params': [notif,txt,rec]
		};
		window.parent.postMessage(m,"*");		
	},
	_cerrarInterfaz: function(o,notif,txt,rec){	
		var fc = $('iframe').attr('data-f-cierre');
		var id = $('iframe').attr('id');
		if($('#crt').length){
			IA.cerrarAplicacion();
		} else {
			var csr = false;			
			if(
				(typeof fc!=='undefined')&&
				(fc!='undefined')
			){
				eval(fc+'();');
				csr = true;
			} else {
				if(rec){
					document.location.reload();			
				} else {
					csr = true;
				}
			} 
			if(csr){				
				var p = $('#'+id).attr('data-pos');				
				$('body').removeClass('latente');
				$(window.document).scrollTop(p);
				if(
					(notif!='')&&
					(notif!==undefined)
				){
					IA.notificacion(notif,txt);
				}
				$('#'+id).remove();
				window.focus();				
			}
		}
	},
	noRecarga: function(){
		return false;
	},
	abrirModal: function(e){
		e.preventDefault();
		var i = $(e.currentTarget).attr('data-modal');
		var pa = $(e.currentTarget).attr('href');
		var p = $(document).scrollTop();
		var m = $('<iframe id="m-'+i+'" src="modal-'+i+'?'+pa+'" data-pos="'+p+'"></iframe>');
		$('body').addClass('latente').append(m);
		$(document).scrollTop(0);
	},
	reemplazarModal: function(mod,reem,d){
		var p = $('#m-'+mod).attr('data-pos');
		$('#m-'+mod).remove();
		var m = $('<iframe id="m-'+reem+'" src="modal-'+reem+'?'+d+'" data-pos="'+p+'"></iframe>');
		$('body').append(m);
	},
	cerrarModal: function(r){
		if(r){
			IA.recargarPadre();
		} else {	
			var id = $('iframe',window.parent.document).attr('id');
			var p = $('#'+id,window.parent.document).attr('data-pos');
			$('body',window.parent.document).removeClass('latente');
			$(window.parent.document).scrollTop(p);
			$('#'+id,window.parent.document).remove();
		}
	},
	datosPadre: function(){
		var m = {
			'funcion': 'datosAHijo'
		};		
		window.parent.postMessage(m,"*");
	},
	datosAHijo: function(o){
		//console.log('ID iframe: '+$('iframe').attr('id'));
		//console.log('o: '+o);		
		var mar = $('iframe').attr('id');		
		var d = $('iframe').attr('data-d');		
		//console.log($('#'+mar).attr('src'));				
		var m = {
			'funcion': 'datosValidacionInterfaz',
			'params': [$('inteart').attr('data-u'),$('inteart').attr('data-t'),$('inteart').attr('data-ea'),d]
		};
		document.getElementById(mar).contentWindow.postMessage(m,o);		
	},
	datosValidacionInterfaz: function(o,u,t,ea,d){
		$('#f-validacion-interfaz input[name="_U"]').val(u);
		$('#f-validacion-interfaz input[name="_T"]').val(t);
		$('#f-validacion-interfaz input[name="_ESTADO_AP"]').val(ea);
		$('#f-validacion-interfaz input[name="_D"]').val(d);
		$('#f-validacion-interfaz').submit();
	},
	recargarPadre: function(){
		window.parent.location.reload();
	},		
	actualizarAtributoElementoPadre: function(o,sel,at,v){		
		$(sel).attr(at,v);		
	},	
	actualizarContenidoElementoPadre: function(o,sel,t,v){			
		if(t=='html'){
			$(sel).html(v);
		} else {
			$(sel).val(v);
		}
	},
	pestanas: function(e){
		e.preventDefault();
		var el = $(e.target);
		var id = el.attr('href') ? el.attr('href').replace('#','') : el.closest('a').attr('href').replace('#','');		
		if(el.closest('.panel-acciones').length){
			pa = el.closest('.panel-acciones');
			pa.find('.panel-pestana-acciones').addClass('oculto');
			if(el.closest('a').hasClass('pestana-activa')){
				el.closest('a').removeClass('pestana-activa');
			} else {
				el.closest('a').addClass('pestana-activa');
				pa.find('.v-pestana:not([href="#'+id+'"])').removeClass('pestana-activa');
				$('#'+id).removeClass('oculto');
			}
		} else {		
			var pp = el.closest('.panel');
			if(!el.hasClass('pestana-activa')){
				pp.find('.v-pestana').removeClass('pestana-activa');
				pp.find('.panel-pestana').addClass('oculto');
				el.addClass('pestana-activa');
				$('#'+id).removeClass('oculto');
			}
		}
	},
	notificacion: function(cl,txt){
		$('#txt-notificacion').html(txt);
		$('#notificacion').removeAttr('style').removeClass().addClass(cl).css({'height':'auto'});
		var al = $('#notificacion').outerHeight();
		$('#notificacion').attr('data-a',al).css({'height':al+'px'});		
		$('#notificacion').animate({top:0},200,function(){
			  window.cn = setTimeout(IA.cerrarNotificacion,10000);
		});		
	},
	cerrarNotificacion: function(){
		clearTimeout(window.cn);
		var al = $('#notificacion').attr('data-a');
		$('#notificacion').animate({top:'-'+al+'px'},200,function(){
			$('#notificacion').removeClass();
			$('#txt-notificacion').html('');
			$('#notificacion').attr('data-a','0');
		});	
	},
	eliminarFilaBD: function(d,f){
		var fila = $('tr[data-fila="'+f+'"]').clone();
		fila.find('.sugerencias,a').remove();
		fila.removeAttr('data-fila');
		fila.find('.col-accion').remove();
		var tit = 'Por favor, confirme que desea eliminar el siguiente registro de la base de datos; esta acción no puede deshacerse';
		var con = '<table>'+fila.html()+'</table>';
		var acc = '<a class="boton rojo" href="javascript:IA.eliminarFilaBDConfirmado(\''+d+'\',\''+f+'\')">Confirmar eliminación</a> <a class="boton gris" href="javascript:IA.cerrarModalInterna();">Cancelar</a>';
		var cl = 'eliminar';
		IA.lanzarModalInterna(tit,con,acc,cl);
	},
	lanzarModalInterna: function(tit,con,acc,cl){
		$('#modal-interna .panel').addClass(cl);
		$('#modal-interna .panel-titulo').append(tit);
		$('#modal-interna .panel-contenido').append(con);
		$('#modal-interna .panel-acciones').append(acc);
		$('#modal-interna').css({'display':'block'});
	},
	cerrarModalInterna: function(){
		$('#modal-interna .panel').attr('class','panel');
		$('#modal-interna .panel-titulo,#modal-interna .panel-contenido,#modal-interna .panel-acciones').html('');
		$('#modal-interna').css({'display':'none'});
	},
	eliminarFilaBDConfirmado: function(d,f){
		IA.cerrarModalInterna();
		datos = 'd='+d+'&_ESTADO_AP='+IA.ea;		
		$.ajax({
			data: datos,
			type: "POST",
			dataType: "html",
			url: IA.comun+'ajax/eliminar-fila-bd.ajax.php',
			success: function(respuesta){ 			
				if(respuesta.match(/^ERROR/)){
					IA.notificacion('error',respuesta);
				} else {				
					IA.eliminarElemento($('tr[data-fila="'+f+'"]'));
				}
			}
		});
	},
	eliminarSugerencia: function(id){
		$('#'+id).remove();
	},
	eliminarElemento: function(el){
		el.fadeOut(300,function(){el.remove();});
	},
	estadoActivacion: function(){
		var el = $(this);
		var est = el.attr('data-activo')=='N' ? 'S' : 'N';
		var d = el.attr('data-d');
		datos = 'd='+d+'&e='+est+'&_ESTADO_AP='+IA.ea;			
		$.ajax({
			data: datos,
			type: 'POST',
			dataType: 'html',
			url: IA.comun+'ajax/estado-activacion.ajax.php',
			success: function(respuesta){ 
				if(respuesta.match(/^ERROR/)){
					IA.notificacion('error',respuesta);
				} else {				
					el.attr('data-activo',est);
					var txt = el.text();					
					if(est=='S'){
						txt = txt.replace('in','');
					} else {
						txt = 'in'+txt
					}
					el.text(txt);
				}
			}
		});
	},
	anadirValorCSV: function(csv,v){
		if(!csv){
			return v;
		} else {
			csv = csv.split(',');
			csv.push(v);
			return csv.join(',');
		}
	},
	eliminarValorCSV: function(csv,v){
		csv = csv.split(',');
		for (var k in csv) {
			if (csv[k] == v) {
				csv.splice(k,1);
			}
		}		
		if(csv.length==0){
			return '';
		} else if(csv.length==1){
			return csv[0];
		} else {
			return csv.join(',');
		}
	},
	comprobarPendientes: function(){
		if($('tr.tr-pendiente-ajax').length){
			$(window).on('beforeunload', function(){
                return true;
			});
		} else {
			$(window).off('beforeunload');
		}
	},
	estadoInicialDesplegables: function(){
		$('.desplegable').each(function(){
			if(!$(this).hasClass('desplegado')){
				var id = $(this).attr('data-id');
				$('*[data-desp="'+id+'"]').addClass('oculto');
			}
		});
		IA.alturaPaneles();
	},
	desplegable: function(e){
		var el = $(e.currentTarget);
		var id = el.attr('data-id');
		var d = el.hasClass('desplegado');
		if(d){
			el.removeClass('desplegado');
			$('*[data-desp="'+id+'"]').addClass('oculto');
		} else {
			el.addClass('desplegado');
			$('*[data-desp="'+id+'"]').removeClass('oculto');		
		}
		IA.alturaPaneles();
	},
	fecha: function(f,s){
		if(s=='bd'){
			if(f.match(/^\d{4}-\d{2}-\d{2}$/)){
				return f;				
			} else {
				return f.substring(6)+'-'+f.substring(3,5)+'-'+f.substring(0,2);
			}
		} else if(s=='h'){
			if(f.match(/^\d{2}\/\d{2}\/\d{4}$/)){
				return f;	
			} else {				
				return f.substring(8)+'/'+f.substring(5,7)+'/'+f.substring(0,4);
			}
		}
	},
	selectDependiente: function(e){
		var s = $(e.currentTarget);
		var id = s.attr('id');	
		var dep = $('select[data-dependiente-de="'+id+'"]');	
		dep.each(function(){
			var d = $(this);
			if(!d.attr('data-dep-en-proceso')){				
				d.attr('data-dep-en-proceso','1');
				d.html('<option value="">—</option>');
				var a = d.attr('data-ajax');
				var m = '';
				if(d.is('[multiple]')){
					m = 1;
				}
				var vv = d.attr('data-valores');				
				if(typeof vv !== typeof undefined && vv !== false){
					var tmp = vv.split('|');
					var pares = [];
					$.each(tmp,function(i,v){
						var vp = $('*[name="'+v+'"]').val();
						if(typeof vp !== typeof undefined && vp !== false){
							pares.push('"'+v+'":"'+vp+'"');
						}
					});					
					var v = '{'+pares.join(',')+'}';
				} else {	
					var v = s.val();
				}							
				datos = 'v='+v+'&d='+$('#_AJAX').val()+'&m='+m+'&_ESTADO_AP='+IA.ea;				
				$.ajax({
					data: datos,
					type: 'POST',
					dataType: 'html',
					url: IA.comun+a+'.ajax.php',
					success: function(respuesta){ 					
						if(respuesta.match(/^ERROR/)){
							IA.notificacion('error',respuesta);
						} else {				
							d.html(respuesta).removeAttr('title');
							var m = d.is('[multiple]') ? 1 : 0;
							$('.falso-select[data-select="'+d.attr('data-select')+'"]').removeAttr('title');
							IA.generarOpciones(d.attr('data-select'),m);
							d.removeAttr('data-dep-en-proceso');
						}
					}
				});
			}
		});
	},
	filtrarTabla(e){
		clearTimeout(window.fT);
		window.fT = setTimeout(function(){	
			var t = $(e.currentTarget).closest('table');		
			var f = {};
			t.find('.filtro').each(function(){		
				if(
					($(this).attr('type')=='checkbox')&&
					($(this).is(':checked'))
				){
					f[$(this).attr('data-col')] = '§';
				} else if(
					($(this).val()!='')&&
					($(this).attr('type')!='checkbox')
				){
					f[$(this).attr('data-col')] = $(this).val().toLowerCase();
				}
			});				
			IA.filtrarFilas(f,t);			
		},500);
	},
	filtrarSelect(e){
		clearTimeout(window.fS);
		window.fS = setTimeout(function(){			
			var i = $(e.currentTarget);
			var t = i.closest('.opciones-falso-select').find('table');		
			var f = {};
			f['1'] = i.val().toLowerCase();	
			IA.filtrarFilas(f,t);			
		},500);
	},
	filtrarFilas: function(f,t){		
		if(Object.keys(f).length==0){
			t.find('tr').removeClass('oculto');
		} else {	
			t.find('tbody tr').each(function(){
				var m = 0;
				tr = $(this);
				$.each(f,function(i,v){
					var ofs = false;
					if(tr.closest('.opciones-falso-select').length){
						ofs = true;
					}
					var td = tr.find('td[data-col="'+i+'"]');
					if(
						(td.find('input:not(".oculto"):not([type="hidden"])').length)&&
						(!ofs)
					){
						var mtd = td.find('input:not(".oculto"):not([type="hidden"]))').val();						
					} else {						
						var mtd = td.html().toLowerCase();
						mtd = mtd.replace(/<strong class="falso-th-mov">.+<\/strong>/g,'');
						mtd = mtd.replace(/(<([^>]+)>)/ig,'');
					}						
					if(
						(v=='§')&&
						(mtd!='')
					){
						m++;
					} else if(mtd.indexOf(v)>-1){
						m++;
					}
				});					
				if(Object.keys(f).length==m){
					tr.removeClass('oculto');
				} else {
					tr.addClass('oculto');
				}
			});
		}
	},
	iniciarFalsosSelect: function(s){
		if(!s){
			var i = 1;
			var s = $('select');		
		} else {
			var i = $('select').length;
		}
		s.each(function(){
			if(
				($(this).is(':not(:disabled)'))&&
				(!$(this).hasClass('no-falso'))
			){
				$(this).attr('data-select',i);
				var m = $(this).is('[multiple]') ? 1 : 0;
				if($(this).parent().attr('data-falso-select')!='1'){
					$(this).parent().attr('data-falso-select','1');
					var t = '';
					if($(this).attr('title')){
						t = 'title="'+$(this).attr('title')+'"';
					}
					var s = '<div class="falso-select" '+t+'data-select="'+i+'"></div>';			
					var o = '<div class="opciones-falso-select" data-select="'+i+'" data-m="'+m+'"><div class="filtro"><input type="text"></div><div class="lista"><table></table></div>';
					if(m==1){
						o += '<div class="b-select-multiple"><a class="boton sin-cargador" href="javascript:IA.actualizarSelect(\''+i+'\');">Seleccionar</a></div>';
					}
					o += '</div>';
					$(this).parent().append(s);
					$('body').append(o);
					IA.generarOpciones(i,m);
					$('.falso-select[data-select="'+i+'"]').click(IA.falsoSelect);
					$('.opciones-falso-select[data-select="'+i+'"] .filtro input').on('input',IA.filtrarSelect);
				}
				i++;
			}
		});		
	},
	falsoSelect: function(e){
		$('.opciones-falso-select').removeClass('falso-select-activo');
		var fs = $(e.currentTarget);
		var s = fs.attr('data-select');
		var l = (fs.offset().left) - 10;
		var w = (fs.outerWidth()) + 20;
		var ids =$('select[data-select="'+fs.attr('data-select')+'"]').attr('id');
		if($('label[for="'+ids+'"]').length){
			var t = (fs.offset().top);
		} else {
			var t = (fs.offset().top) - 20;
		}
		
		$('.opciones-falso-select[data-select="'+s+'"]').addClass('falso-select-activo').css({'top': t+'px','left': l+'px','width': w+'px'});
		$('.opciones-falso-select[data-select="'+s+'"] .filtro input').focus();
	},
	opcionFalsoSelect: function(e){
		var o = $(e.currentTarget);
		var fs = o.closest('.opciones-falso-select');
		var v = fs.find('input:checked').val();		
		IA.actualizarSelect(fs.attr('data-select'),v);
	},
	actualizarSelect: function(s,vr){		
		var v = [];
		var lv = [];
		var fs = $('.opciones-falso-select[data-select="'+s+'"]');
		fs.removeClass('falso-select-activo');
		if(vr){
			v.push(vr);
		} else {
			fs.find('.lista input').each(function(){
				if($(this).is(':checked')){
					v.push($(this).val());
				}			
			});		
		}			
		$('select[data-select="'+s+'"] option').each(function(){
			var vs = $(this).val();			
			if(v.indexOf(vs)!=-1){
				$(this).prop('selected',true);
				lv.push($(this).text());
			} else {
				$(this).prop('selected',false);				
			}
		});
		$('select[data-select="'+s+'"]').trigger('change');	
		if($('select[data-select="'+s+'"]').is('[multiple]')){
			$('.falso-select[data-select="'+s+'"]').attr('title','Selección: '+lv.join(', '));
		}
		$('.opciones-falso-select[data-select="'+s+'"] input').prop('checked',false);
	},
	generarOpciones: function(i,m){		
		$('.opciones-falso-select[data-select="'+i+'"] .lista table').html('');
		var j = 1;
		var o = '<tbody>';
		$('select[data-select="'+i+'"]').find('option').each(function(){
			var v = $(this).val();
			var t = $(this).text();
			var chk = '';
			if($(this).is(':selected')){
				chk = ' checked';
			}
			if(m==1){
				o += '<tr><td data-col="1"><span class="grupo-casillas-desvinculado"><input type="checkbox" id="i'+i+'-'+j+'" name="i'+i+'[]" value="'+v+'"'+chk+'> <label for="i'+i+'-'+j+'">'+t+'</label></span></td></tr>';
			} else {
				o += '<tr><td data-col="1"><input type="radio" id="i'+i+'-'+j+'" name="i'+i+'" value="'+v+'"> <label for="i'+i+'-'+j+'"'+chk+'>'+t+'</label></td></tr>';
			}
			j++;
		});
		o += '</tbody>';
		$('.opciones-falso-select[data-select="'+i+'"] .lista table').append(o);
		if(m!=1){
			$('.opciones-falso-select[data-select="'+i+'"] .lista input').change(IA.opcionFalsoSelect);
		}
	},
	campoAcumulable: function(e){		
		var el = $(e.currentTarget);
		var fc = el.attr('data-f');		
		var a = el.attr('data-ajax');
		var p = false;
		datos = 'd='+$('#_AJAX').val()+'&_ESTADO_AP='+IA.ea;	
		if(el.is('[data-p-campo-acumulable]')){
			datos += '&_P='+el.attr('data-p-campo-acumulable');
		}		
		$.ajax({
			data: datos,
			type: 'POST',
			dataType: 'html',
			url: IA.comun+a+'.ajax.php',
			success: function(respuesta){ 			
				if(respuesta.match(/^ERROR/)){
					IA.notificacion('error',respuesta);
				} else {				
					$('#campos-apilados').append(respuesta);
					IA.idCamposAcumulables();
					if(fc){
						eval(fc+'();');
					}
					var sls = $('#campos-apilados *[data-id-pila]').last().find('select');
					if(sls.length>0){
						IA.iniciarFalsosSelect(sls);
					}
					IA.elementosArrastrables();
				}
			}
		});		
	},
	idCamposAcumulables: function(){
		var ids = [];
		$('*[data-id-pila]').each(function(){
			var id = $(this).attr('data-id-pila');
			ids.push(id);
		});
		$('#_PILA').val(ids.join(','));
		$('#orden_lista_grupos,#orden_campos_apilados').val(ids.join(','));
	},
	eliminarCampoAcumulable: function(id,fc){
		$('*[data-id-pila="'+id+'"],.area-arrastre[data-area="'+id+'"]').remove();
		IA.idCamposAcumulables();		
		if(fc){
			eval(fc+'();');
		}
	},
	guardarFila: function(e){
		var v = $(e.currentTarget);
		var tr = v.closest('tr');
		var t = tr.attr('data-tabla-bd');
		var id = tr.attr('data-ID');
		var d = tr.attr('data-d');
		var f = [];
		tr.find('input,select').each(function(){
			if($(this).attr('data-campo')){
				var col = $('th[data-col="'+$(this).closest('td').attr('data-col')+'"]').text();
				col = col.replace(/arrow_drop_down/ig,'');			
				f.push('{"campo":"'+$(this).attr('data-campo')+'","valor":"'+$(this).val()+'","vacio":"'+$(this).attr('data-vacio')+'","columna":"'+col+'"}');
			}			
		});
		var json = '{"filas":['+f.join(',')+']}';			
		datos = 't='+t+'&id='+id+'&f='+json+'&d='+d+'&_ESTADO_AP='+IA.ea;	
		$.ajax({
			data: datos,
			type: 'POST',
			dataType: 'html',
			url: IA.comun+'ajax/guardar-fila-bd.ajax.php',
			success: function(respuesta){ 
				if(respuesta.match(/^ERROR/)){
					IA.notificacion('error',respuesta);
				} else {				
					IA.notificacion('exito',respuesta);	
					tr.removeClass('tr-pendiente-ajax');
					IA.comprobarPendientes();
				}
			}
		});
	},
	descargarArchivo: function(e){
		var el = $(e.target);
		var ida = el.attr('data-ida');
		var dt = new Date();
		var ms = dt.getTime();
		var f = $('<form id="'+ms+'" target=_blank" method="post" action="'+IA.comun+'descargar-archivo"><input type="hidden" name="ida" value="'+ida+'"><input type="hidden" name="u" value="'+$('inteart').attr('data-u')+'"><input type="hidden" name="t" value="'+$('inteart').attr('data-t')+'"><input type="hidden" name="_ESTADO_AP" value="'+IA.ea+'"></form>');
		IA.formOculto(f);
	},
	descargarTabla: function(t,na,q,p){
		var dt = new Date();
		var ms = dt.getTime();
		if(q){
			var tb = t;
		} else {
			var tb = btoa(unescape(encodeURIComponent($('#'+t).html())));		
		}
		var f = $('<form id="'+ms+'" target=_blank" method="post" action="'+IA.comun+'descargar-tabla"><input type="hidden" name="tb" value="'+tb+'"><input type="hidden" name="na" value="'+na+'"><input type="hidden" name="q" value="'+q+'"><input type="hidden" name="p" value="'+p+'"><input type="hidden" name="u" value="'+$('inteart').attr('data-u')+'"><input type="hidden" name="t" value="'+$('inteart').attr('data-t')+'"><input type="hidden" name="_ESTADO_AP" value="'+IA.ea+'"></form>');
		IA.formOculto(f);		
	},
	formOculto: function(f){
		$('body').append(f);
		f.submit();
		setTimeout(function(){
			f.remove();
		},100);
	},
	renovarAcceso: function(){
		var c = $('#crt').val();
		datos = 'c='+c+'&_ESTADO_AP='+IA.ea;	
		$.ajax({
			data: datos,
			type: 'POST',
			dataType: 'html',
			url: IA.comun+'ajax/renovar-acceso.ajax.php',
			success: function(respuesta){ 
				if(respuesta.match(/^ERROR/)){
					IA.cerrarAplicacion();
				} else {								
					IA.propagarToken(respuesta);
					$('#f-renovacion-acceso #_U').val($('inteart').attr('data-u'));
					$('#f-renovacion-acceso #_T').val(respuesta);
					$('#f-renovacion-acceso').submit();
				}
			}
		});
	},
	propagarToken: function(o,t){
		if(arguments.length==1){
			$('inteart').attr('data-t',o);
		} else {
			$('inteart').attr('data-t',t);
		}
		if(window.self!==window.top){
			var m = {
				'funcion': 'propagarToken',
				'params': [t]
			};
			window.parent.postMessage(m,"*");		
		}
	},
	cerrarAplicacion: function(){
		if(window.self!==window.top){
			var m = {
				'funcion': 'cerrarAplicacion'
			};
			window.parent.postMessage(m,"*");			
		} else {
			document.location = IA.root+'/cerrar';			
		}
	},
	modalReal: function(e){
		var id = (typeof $(e.target).attr('data-modal-real')!=='undefined') ? $(e.target).attr('data-modal-real') : $(e.target).closest('*[data-modal-real]').attr('data-modal-real');		
		var op = $('*[data-modal-real="'+id+'"]').attr('data-modal-real-opaca');
		var clon = $('#'+id).clone(true);		
		var cl = false;
		if(op=='1'){
			cl = ' opaca';
		}
		$('body').append('<div class="modal-real'+cl+'" id="modal-real-'+id+'"></div>');
		$('#modal-real-'+id).html(clon);		
		$('#modal-real-'+id+' .panel-titulo .material-icons').click(function(){
			$('.falso-select-activo').removeClass('falso-select-activo');
			$('#modal-real-'+id).remove();
		});
		$('#modal-real-'+id+' #'+id).removeClass('none');
		var alV = $(window).height();
		var alT = $('#modal-real-'+id+' .panel-titulo').outerHeight();
		var mh = (alV - alT) - 100;
		$('#modal-real-'+id+' .panel-contenido').css('max-height',mh+'px');		
	},
	mt: function(){
		var t = new Date();
		return t.getTime();
	},
	elementosArrastrables: function(){
		$('*[data-arrastrables]').each(function(){
			$(this).find('.area-arrastre[data-area="F"]').remove();
			var t = $(this).attr('data-arrastrables');
			var idg = $(this).attr('id');
			if(t=='ordenables'){
				$(this).find('.arrastrable').each(function(){
					var id = $(this).attr('data-id-pila');
					if(!$('.area-arrastre[data-area="'+id+'"]').length){
						$(this).prop('draggable',true);
						$(this).before('<span class="area-arrastre" data-area="'+id+'"><span class="rectangulo-area"></span></span>');
					} 
				});
			}
			if(!$(this).find('input.orden').length){
				$(this).append('<input class="orden" id="orden_'+idg.replace('-','_')+'" name="orden_'+idg.replace('-','_')+'" type="hidden" value="">');	
			}
			$(this).append('<span class="area-arrastre" data-area="F"><span class="rectangulo-area"></span></span>');
			IA.ordenarArrastrables(idg);
		});				
		$('.area-arrastre').on('dragenter',IA.arrastrarEncima);
		$('.arrastrable').on('dragend',IA.finArrastre);
		var objetosA = $('[draggable]');
		[].forEach.call(objetosA,function(e) {
			e.addEventListener('dragstart',IA.comienzaArrastre,false);
		});
		
	},
	objetoArrastrado : false,
	comienzaArrastre: function(e){	
		IA.objetoArrastrado = this;
		e.dataTransfer.effectAllowed = 'copy';
		e.dataTransfer.setData('Data',this);
		e.dataTransfer.setDragImage(this,10,10);
	},
	arrastrarEncima: function(e) {
		objContenedor = this;
		if(e.preventDefault){e.preventDefault();}
		var id = $(IA.objetoArrastrado).attr('data-id-pila');
		if($(objContenedor).attr('data-area')!=id){
			$('.area-arrastre-activa').removeClass('area-arrastre-activa');
			$(objContenedor).addClass('area-arrastre-activa');
		}
	},
	finArrastre: function(e){
		$('.area-arrastre').off('dragenter',IA.arrastrarEncima);
		$('.arrastrable').off('dragend',IA.finArrastre);
		var idObj = $(IA.objetoArrastrado).attr('data-id-pila');			
		var idAr = $('.area-arrastre-activa').attr('data-area');
		if(
			(idObj!=idAr)&&
			(typeof idAr!=='undefined')&&
			(idAr!='undefined')
		){
			$('.arrastrable[data-id-pila="'+idObj+'"],.area-arrastre[data-area="'+idObj+'"]').remove();
			var clon = $(IA.objetoArrastrado);
			var d = $('.area-arrastre[data-area="'+idAr+'"]')
			d.removeClass('area-arrastre-activa');
			d.before(clon);	
			IA.elementosArrastrables();
			var idg = $('.arrastrable[data-id-pila="'+idObj+'"]').closest('[data-arrastrables]').attr('id');
			IA.ordenarArrastrables(idg);
			var ff = $('#'+idg).attr('data-fin-arrastre');
			if(ff){
				eval(ff+'();');
			}
		}
	},
	ordenarArrastrables: function(id){
		var g = $('#'+id);
		var io = g.find('.orden');
		o = [];
		g.find('.arrastrable').each(function(){
			o.push($(this).attr('data-id-pila'));
		});
		io.val(o.join(','));
	},
	contadorTablasActualizables: function(){
		var t = $('tr[data-contable="1"]').length;
		$('#resultados-dinamicos').html(t);
	},
	b64: function(x) {
		return btoa(encodeURIComponent(x).replace(/%([0-9A-F]{2})/g, function(match, p1) {
			return String.fromCharCode('0x' + p1);
		}));
	},
	objetoAJSON: function(o){
		var json = []; 
		$.each(o,function(n,v){
			json.push('"'+n+'":"'+v+'"');
		});
		return '{'+json.join(',')+'}';
	},
	txtInterfaz: function(acc,id){
		var el = false;
		var datos = 'acc='+acc;
		switch(acc){
			case 'I':
				datos += '&id='+$('#id').val();
				el = $('#f-txts-variables');
				break;
			case 'A':
				datos += '&id='+id;				
				el = $('#'+id);
				break;
			case 'E':
				datos += '&id='+id;
				break;
		}		
		if(el){
			var ii = {};
			el.find('textarea[data-i]').each(function(){
				i = $(this).attr('data-i');
				t = $(this).val();
				ii[i] = t;
			});
			datos += '&txts='+IA.objetoAJSON(ii);
		}		
		$.ajax({
			data: datos,
			type: "POST",
			dataType: "html",
			url: "ajax/txt-interfaz.ajax.php",
			success: function(respuesta){ 
				if(respuesta.match(/^ERROR/)){
					IA.notificacion('error',respuesta);
				} else {								
					location.reload();
				}			
			}
		});
	},
	focoInterfaz: function(){
		var id = $('iframe').attr('id');		
		$('#'+id).focus();
	}
}
$(document).ready(function(){
	IA.root = $('inteart').attr('data-dom');
	IA.comun = $('inteart').attr('data-com');
	IA.api = $('inteart').attr('data-api');
	IA.ea = $('inteart').attr('data-ea');
	IA.inteart = $('inteart').css('display');	
	if(IA.inteart!='block'){
		IA.mov = 1;
	} else {
		IA.mov = 0;
	}	
	IA.alturaPaneles();
	$('a[data-interfaz]').click(IA.abrirInterfaz);
	$('a[data-modal]').click(IA.abrirModal);
	$('.estado-activacion[data-d]:not(.estado-activacion[data-activo="I"])').click(IA.estadoActivacion);
	$('.boton').click(IA.mostrarCargador);
	if($('#f-validacion-interfaz').length){
		IA.datosPadre();
	}
	$('.v-pestana').click(IA.pestanas);
	$('.sugerencias input').on('input',IA.escucharSugerencia);
	$('.tr-pendiente-ajax').on('input',function(){
		$(this).closest('tr').addClass('tr-pendiente-ajax');
		IA.comprobarPendientes();
	});
	IA.estadoInicialDesplegables();
	$('.desplegable').click(IA.desplegable);
	if(IA.mov){
		$('#nav').addClass('menu-mov menu-mov-oculto').removeClass('col-15 col-nav-compacta');
		$('#interfaz').addClass('col-ppal').removeClass('col-85');
	} else {
		$.datepicker.regional['es'] = {
			closeText: 'Cerrar',
			prevText: 'Anterior',
			nextText: 'Siguiente',
			currentText: 'Hoy',
			monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
			monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'],
			dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado'],
			dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
			dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
			weekHeader: 'Sm',
			dateFormat: 'dd/mm/yy',
			firstDay: 1,
			isRTL: false,
			showMonthAfterYear: false,
			yearSuffix: '',
			showAnim: 'slideDown'
		};
		$.datepicker.setDefaults($.datepicker.regional['es']);
		$('input[data-c-fecha="1"]:not([data-c-fecha-hora="1"])').datepicker();			
		$('input[data-c-fecha-hora="1"]').datetimepicker({
			formatTime:'H:i',
			step:5,
			format:'d/m/Y H:i',
			formatDate:'d/m/Y',
			timepickerScrollbar:true,
			mask:false
		});
		$.datetimepicker.setLocale('es');
		$(document).tooltip({
			show: {
			  duration: 0
			},
			hide: {
			  duration: 0
			}
		});
		if(typeof $('.t-reordenable').tablesorter === 'function') {
			$('.t-reordenable').tablesorter({dateFormat : "ddmmyyyy"});
		}
		if($('.t-filtrable').length){
			$('.t-filtrable input.filtro').on('input',IA.filtrarTabla);
		}
		IA.iniciarFalsosSelect();
	}
	if($('select[data-dependiente-de]').length){
		$('select[data-dependiente-de]').each(function(){
			var def = $(this).attr('data-dependiente-de');
			$('#'+def).change(IA.selectDependiente);
		});		
	}
	if($('a[data-v-campo-acumulable]').length){
		$('a[data-v-campo-acumulable]').click(IA.campoAcumulable);		
	}
	if($('a[data-reemplazar-interfaz-por]').length){
		$('a[data-reemplazar-interfaz-por').click(function(e){
			var v = $(e.currentTarget);
			var intf = v.attr('data-interfaz');
			var reem = v.attr('data-reemplazar-interfaz-por');
			var d = v.attr('data-d');			
			//window.parent.IA.reemplazarInterfaz(intf,reem,d);
			var m = {
				"funcion": "reemplazarInterfaz",
				"params": [intf,reem,d]
			};		
			window.parent.postMessage(m,"*");
		});			
	}
	if($('a[data-guardar-fila="1"]').length){
		$('a[data-guardar-fila="1"').click(IA.guardarFila);			
	}
	$(window).on('resize',function(){
		clearTimeout(window.rw);
		window.rw = setTimeout(function(){
			var d = $('inteart').css('display');			
			if(IA.inteart!=d){
				window.location.reload();
			}			
		},200);
	});
	if($('#modal-interfaz').length){		
		var m = {
			'funcion': 'focoInterfaz'
		};		
		window.parent.postMessage(m,"*");		
		$('#modal-interfaz').keydown(function(e){
			var t = e.keyCode || e.which;
			if(t==27){
				var v = $('#v-cerrar-sesion');
				var j = v.attr('href').replace('javascript:','');
				eval("$('#v-cerrar-sesion').click(function(){"+j+"})");
				v.trigger('click');
			}
		});
	}
	if($('span[data-v-archivo]').length){
		$('span[data-v-archivo] a').click(IA.descargarArchivo);
	}
	if($('a[data-modal-real]').length){
		$('a[data-modal-real]').click(IA.modalReal);
	}
	if($('*[data-arrastrables]').length){
		IA.elementosArrastrables();
	}	
	
	window.addEventListener('message',function(e){
		
		//console.log('Recibe: '+$('vivo').attr('data-dom'));
		//console.log(e.data);		
		//console.log(e.data.funcion);		
		/*if(e.data.params!==undefined){
			console.log(e.data.params);	
		}*/
		//console.log(e.origin);
		if(e.data.params!==undefined){			
			eval('IA.'+e.data.funcion+'("'+e.origin+'","'+e.data.params.join('","')+'");');
		} else {	
			eval('IA.'+e.data.funcion+'("'+e.origin+'");');	
		}
	});
});
