function includeCSS(p_file) {
	var v_css  = document.createElement('link');
	v_css.rel = 'stylesheet'
	v_css.type = 'text/css';
	v_css.href = p_file;
	document.getElementsByTagName('head')[0].appendChild(v_css);
}


function replaceHtml(el, html) {
	var oldEl = (typeof el === "string" ? document.getElementById(el) : el);
	/*@cc_on // Puro innerHTML para IE (que es más rápido)
	oldEl.innerHTML = html;
	return oldEl;
	@*/
	var newEl = oldEl.cloneNode(false);
	newEl.innerHTML = html;
	oldEl.parentNode.replaceChild(newEl, oldEl);
	return newEl;
};

// insertAdjacentHTML(), insertAdjacentText() and insertAdjacentElement()
// for Netscape 6/Mozilla by Thor Larholm me@jscript.dk
// Usage: include this code segment at the beginning of your document
// before any other Javascript contents.

if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement){
	HTMLElement.prototype.insertAdjacentElement = function (where,parsedNode)
	{
		switch (where){
		case 'beforeBegin':
			this.parentNode.insertBefore(parsedNode,this)
			break;
		case 'afterBegin':
			this.insertBefore(parsedNode,this.firstChild);
			break;
		case 'beforeEnd':
			this.appendChild(parsedNode);
			break;
		case 'afterEnd':
			if (this.nextSibling) this.parentNode.insertBefore(parsedNode,this.nextSibling);
			else this.parentNode.appendChild(parsedNode);
			break;
		}
	}

	HTMLElement.prototype.insertAdjacentHTML = function (where,htmlStr)
	{
		var r = this.ownerDocument.createRange();
		r.setStartBefore(this);
		var parsedHTML = r.createContextualFragment(htmlStr);
		this.insertAdjacentElement(where,parsedHTML)
	}


	HTMLElement.prototype.insertAdjacentText = function (where,txtStr)
	{
		var parsedText = document.createTextNode(txtStr)
		this.insertAdjacentElement(where,parsedText)
	}

  insertHTML = function (thenode, htmlStr) {
    var r = thenode.ownerDocument.createRange();
    r.setStartBefore(thenode);
    var parsedHTML = r.createContextualFragment(htmlStr);
  //remove all children, add the new one.
    for (var i = 0; i < thenode.childNodes.length; i++) {
      thenode.removeChild(thenode.childNodes[i]);
    }
    thenode.appendChild(parsedHTML);
  }

} else {
  insertHTML = function (thenode, htmlStr) {
    thenode.insertAdjacentHTML('beforeEnd', htmlStr);
  //remove all children except for the new one.
    for (var i = 0; i < thenode.childNodes.length-1; i++) {
      thenode.removeChild(thenode.childNodes[i]);
    }
  }
}
//END prototyping stuff for stinking IE compatibility!!!

function agregarEvento(elemento, nombre_evento, funcion, captura){
// para IE   36.
	if (elemento.attachEvent){
		elemento.attachEvent('on' + nombre_evento, funcion);
			return true;
	}else{   // para navegadores respetan Estándares DOM(Firefox,safari)   40.
		if (elemento.addEventListener){
			elemento.addEventListener(nombre_evento,funcion,captura);
			return true;
		}else {
			return false;
		}
	}
}

function require_once(filename) {
    // !No description available for require_once. @php.js developers: Please update the function summary text file.
    //
    // version: 905.3122
    // discuss at: http://phpjs.org/functions/require_once
    // +   original by: Michael White (http://getsprink.com)
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // %        note 1: Uses global: php_js to keep track of included files
    // -    depends on: require
    // *     example 1: require_once('http://www.phpjs.org/js/phpjs/_supporters/pj_test_supportfile_2.js');
    // *     returns 1: true
    var cur_file = {};
    cur_file[this.window.location.href] = 1;

    // save include state for reference by include_once and require_once()
    // BEGIN REDUNDANT
    php_js_shared = php_js_shared || {}; // We use a non-namespaced global here since we wish to share across all instances
    // END REDUNDANT

    if (!php_js_shared.includes) {
        php_js_shared.includes = cur_file;
    }
    if (!php_js_shared.includes[filename]) {
        if (this.require(filename)) {
            return true;
        }
    } else {
        return true;
    }
    return false;
}


function CalcularDv(nit)
{
 var vpri, x, y, z, i, nit1, dv1;
 nit1=nit;
 if (isNaN(nit1)){
 		document.form1.dv.value="X";
  		alert('El valor digitado no es un número valido');
  }else{
  	vpri = new Array(16);
 	x=0 ; y=0 ; z=nit1.length;
 	vpri[1]=3;
 	vpri[2]=7;
 	vpri[3]=13;
 	vpri[4]=17;
 	vpri[5]=19;
 	vpri[6]=23;
 	vpri[7]=29;
 	vpri[8]=37;
 	vpri[9]=41;
 	vpri[10]=43;
 	vpri[11]=47;
 	vpri[12]=53;
 	vpri[13]=59;
 	vpri[14]=67;
 	vpri[15]=71;
  for(i=0 ; i<z ; i++)
 	{
 	 y=(nit1.substr(i,1));
  	 x+=(y*vpri[z-i])
 	}
  	y=x%11
 	//document.write(y+"<br>");
	  if (y > 1){
	   	dv1=11-y;
	  }else{
	   	dv1=y;
	  }
 	return dv1;
  }
}

function Browser() {

  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";

  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }


  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }


  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

///PARA SABER QUE BROWSER TENGO
/*ASI LO LLAMO
var browser1 = new Browser();
if (browser1.isIE)
  var Width=Width;
else
  var Width=Width1;
*/

//var browser = new Browser();


function expandirObj(obj){
	var capa = document.getElementById(obj);
	if(capa.style.display=='')
		capa.style.display='none';
	else
		capa.style.display='';
}


function SwitchMenu(obj) {
	if (document.getElementById) {
	var el = document.getElementById(obj);
	var ar = document.getElementById("ppal").getElementsByTagName("td"); //DynamicDrive.com change
    if (el.style.display != "block") { //DynamicDrive.com change
			for (var i=0; i<ar.length; i++) {
				if (ar[i].className=="submenu") //DynamicDrive.com change
				ar[i].style.display = "none";
			}
			el.style.display = "block";
		} else {
			el.style.display = "none";
		}
	}
}


function removeRow(tabla,idFila) {
	if (confirm("Realmente desea eliminar este registro?")==true) {
 		document.getElementById(tabla).deleteRow(idFila);
		return true;
	} else {
	 	return false;
	}
}


function removeRowAjax(tablaDB,where,nivel,idFila,tabla) {
	var elimino = 0;
	elimino = DeleteAjaxFull(tablaDB,where,nivel);
	if (elimino == 1) {
		document.getElementById(tabla).deleteRow(idFila);
	}

}

function getValor(){
	return ajax_con;
}

function setValor(valor){
	ajax_con=valor;
}

function KeyF5Check() {
	//var tecla=window.event.keyCode;
  	//if (tecla==116) {
	// alert("Lo sentimos por seguridad no debe recargar la página.\n Utilice la nevegaci&oacute;n de la aplicaci&oacute;n");
	 //event.keyCode=0;
	 //event.returnValue=false;
	//}
}


function Browser() {
  var ua, s, i;
  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}



function MM_preloadImages() { //v3.0
  var d=document; if (d.images) { if (!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0) { d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if (!d) d=document; if ((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if (!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if (!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null) {document.MM_sr[j++]=x; if (!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
///////////////////FGORMULARIO DE CONSULTAS consultas.php
function MM_jumpMenu(targ,selObj,restore) { //v3.0
	if (selObj.options[selObj.selectedIndex].value!=0) {
		  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
		  if (restore) selObj.selectedIndex=0;
	}
}





function ocultar() {
	if (document.getElementById) {
		var c = document.getElementsByTagName("div");
		  for (var x=0;x<c.length;x++) {
			if (c[x].id == 'oculta'){
				c[x].style.display='none';
				}
			}
	}
}
//ocultar();

function ocultarObj(id) {
	if (document.getElementById) {
		var c = document.getElementsByTagName("div");
		  for (var x=0;x<c.length;x++) {
			if (c[x].id == id){
				c[x].style.display='none';
				}
			}
	}
}

function ocultarSetTime(id,time) {
	setTimeout("ocultarObj('"+id+"')",time);
}
function restablecer() {
  setTimeout("window.location.reload()",1)
}

function redirect(URL) {
   window.location.href=URL;

}

function IrUrl(URL) {
   window.location.replace(URL);

}

function IrUrlTimeOut(URL,time) {
  setTimeout("window.location.replace('"+URL+"')",time);

}

function IrUrlWindow(URL) {
   window.opener.location.replace(URL);
   parent.close();
}



function CheckedAll(campo,t) {
 var objeto=document.getElementsByName(campo+'[]');
	if (t==1) {
		for (i=0;i<objeto.length;i++)
				objeto[i].checked='checked';
	} else {
		 for (i=0;i<objeto.length;i++)
				objeto[i].checked='';
		 }
}


function OpenUrlResizable(Url,Titulo,Width,Height)
{
   var izquierda = (screen.availWidth - Width) / 2;
    var arriba = (screen.availHeight - Height) / 2;

    var opciones =",toolbar='NO'"+
				 ",titlebar='NO'"+
                 ",location='NO'"+
                 ",status='NO'"+
                 ",menubar='NO'"+
                 ",resizable=yes"+
				 ",scrollbars=yes"+
                 ",width=" + Width +
                 ",height=" + Height +
                 ",left=" + izquierda +
                 ",top=" + arriba;
   window.open(Url,'', opciones);
}


function OpenUrl(Url,Titulo,Width,Height)
{
   var izquierda = (screen.availWidth - Width) / 2;
    var arriba = (screen.availHeight - Height) / 2;

    var opciones =",toolbar='NO'"+
				 ",titlebar='NO'"+
                 ",location='NO'"+
                 ",status='NO'"+
                 ",menubar='NO'"+
				 ",scrollbars=yes"+
                 ",width=" + Width +
                 ",height=" + Height +
                 ",left=" + izquierda +
                 ",top=" + arriba;
   window.open(Url,Titulo, opciones);
}


function OpenWindowFlat(Url,Titulo,Width,Height)
{
   var izquierda = (screen.availWidth - Width) / 2;
    var arriba = (screen.availHeight - Height) / 2;

    var opciones =",toolbar=no"+
				 ",titlebar=no"+
                 ",location=no"+
                 ",status=no"+
                 ",menubar=no"+
                 ",scrollbars=no"+
                 ",width=" + Width +
                 ",height=" + Height +
                 ",left=" + izquierda +
                 ",top=" + arriba;
   window.open(Url,Titulo, opciones);
}


function Confirmar(msg) {
var sn=confirm(msg);
 if (sn==true)
  return false;
 else
   return false;
}




function CheckPorcentaje(campo) {

	if ((campo.value<=0 || campo.value>100) && campo.value!='') {
			alert("El porcentaje debe ser mayor que 0 y menor de 100");
			campo.value='';
			campo.focus();
		}
}

//C&oacute;digo para colocar
//los indicadores de miles mientras se escribe
//script por tunait!
//<input type="text" name="pepe" onkeyup = "puntitos(this,this.value.charAt(this.value.length-1))">

function miles(donde,caracter) {
	pat = /[\*,\+,\(,\),\?,\,$,\[,\],\^]/
	valor = donde.value
	largo = valor.length
	crtr = true
	if (isNaN(caracter) || pat.test(caracter) == true) {
		if (pat.test(caracter)==true) {
			caracter = "\\" + caracter
		}
		carcter = new RegExp(caracter,"g")
		valor = valor.replace(carcter,"")
		donde.value = valor
		crtr = false
	}
	else {
		var nums = new Array()
		cont = 0
		for(m=0;m<largo;m++) {
			if (valor.charAt(m) == "." || valor.charAt(m) == " ")
				{continue;}
			else {
				nums[cont] = valor.charAt(m)
				cont++
			}
		}
	}
	var cad1="",cad2="",tres=0
	if (largo > 3 && crtr == true) {
		for (k=nums.length-1;k>=0;k--) {
			cad1 = nums[k]
			cad2 = cad1 + cad2
			tres++
			if ((tres%3) == 0) {
				if (k!=0) {
					cad2 = "." + cad2
				}
			}
		}
		donde.value = cad2
	}
}

/*****************************************************************************
C&oacute;digo para colocar los indicadores de miles  y decimales mientras se escribe
Script creado por Tunait!
Si quieres usar este script en tu sitio eres libre de hacerlo con la condici&oacute;n de que permanezcan intactas estas líneas, osea, los créditos.

http://javascript.tunait.com
tunait@yahoo.com  27/Julio/03

//onkeyup="puntitos(this,this.value.charAt(this.value.length-1),'decimales')"
// onclick="puntitos(this.form.textfield,this.form.textfield.value.charAt(this.form.textfield.value.length-1),this.name)" 2 decimales
******************************************************************************/
function decimales(donde,caracter,campo)
{
var decimales = false
campo = eval("donde.form." + campo)
	for (d =0; d < campo.length; d++)
		{
		if (campo[d].checked == true)
			{
			dec = new Number(campo[d].value)
			break;
			}
		}
	if (dec != 0)
		{decimales = true}




pat = /[\*,\+,\(,\),\?,\\,\$,\[,\],\^]/
valor = donde.value
largo = valor.length
crtr = true
if (isNaN(caracter) || pat.test(caracter) == true)
	{
	if (pat.test(caracter)==true)
		{caracter = "\\" + caracter}
	carcter = new RegExp(caracter,"g")
	valor = valor.replace(carcter,"")
	donde.value = valor
	crtr = false
	}
else
	{
	var nums = new Array()
	cont = 0
	for(m=0;m<largo;m++)
		{
		if (valor.charAt(m) == "." || valor.charAt(m) == " " || valor.charAt(m) == ",")
			{continue;}
		else {
			nums[cont] = valor.charAt(m)
			cont++
			}

		}
	}

if (decimales == true) {
	ctdd = eval(1 + dec);
	nmrs = 1
	}
else {
	ctdd = 1; nmrs = 3
	}
var cad1="",cad2="",cad3="",tres=0
if (largo > nmrs && crtr == true)
	{
	for (k=nums.length-ctdd;k>=0;k--) {
		cad1 = nums[k]
		cad2 = cad1 + cad2
		tres++
		if ((tres%3) == 0) {
			if (k!=0) {
				cad2 = "." + cad2
				}
			}
		}

	for (dd = dec; dd > 0; dd--)
	{cad3 += nums[nums.length-dd] }
	if (decimales == true)
	{cad2 += "," + cad3}
	 donde.value = cad2
	}
donde.focus()
}