﻿
function getElementsByClass(searchClass,node,tag) {
       //consigue todos los elementos con la cssclass de searchClass dentro del nodo node y que sean de etiqueta tag.
       var classElements = new Array();
       if ( node == null )
               node = document;
       if ( tag == null )
               tag = '*';
       var els = node.getElementsByTagName(tag);
       var elsLen = els.length;
       var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
       for (i = 0, j = 0; i < elsLen; i++) {
               if ( pattern.test(els[i].className) ) {
                       classElements[j] = els[i];
                       j++;
               }
       }
       return classElements;
}

function getElementsByTitle(titulo,etiqueta){
//consigue todos los elementos con el title titulo y que pertenezcan al tag etiqueta.
    // el arreglo contendra los titulos
    var eltsTitle = new Array();

    // el parametro etiqueta(string) indica dónde se buscara. Si se quiere buscar meter en el array todos los elementos de la pagina, utilizar '*'
    var elts = document.getElementsByTagName(etiqueta);

    // recorremos todo
    for (var n = 0; n < elts.length; ++n) {

        // si el elemento n tiene un title que coincide con el titulo que buscamos, lo metemos en el primer array
        if (elts[n].getAttribute('title') && elts[n].getAttribute('title') == titulo) {
            eltsTitle.push(elts[n]);
        }

    }

    // devolvemos el array
    return eltsTitle;
}


/*function creaTextAreaFCK(){
       //busca los elementos con clase MiTextarea y los transforma al objeto FCK.
        
        //si existe un formulario...
        if (document.getElementById("formBasico"))
        {
            var nombreFCK = "MiTextarea";
            
            var fcks = getElementsByClass(nombreFCK, document.getElementById("formBasico"), "textarea");
            if (fcks.length > 0){
                
                for(var i = 0;i<fcks.length;i++)
                {
                var oFCKeditor = new FCKeditor( nombreFCK );
                oFCKeditor.BasePath = "fckeditor/";
                //oFCKeditor.ToolbarSet = 'MiToolbar';
                oFCKeditor.ToolbarSet = 'Basic';
                oFCKeditor.Width = '100%';

                oFCKeditor.ReplaceTextarea();
               }
              }
        }
        

}*/

function creaTextAreaCK(){
       //busca los elementos con clase MiTextarea y los transforma al objeto CK.
        
        //si existe un formulario...
        if (document.getElementById("formBasico"))
        {
            var nombreCK = "MiTextarea";
            
            var cks = getElementsByClass(nombreCK, document.getElementById("formBasico"), "textarea");
            if (cks.length > 0){
                
                for(var i = 0;i<cks.length;i++)
                {
                    CKEDITOR.replace( cks[i].name );
               }
              }
        }
        

}


	
function AbreFoto(ruta, titulo){
    //abre una ventana de tipo visor con la imagen de la ruta. los dos parámetros se pasan a dos hidden fields que luego recogerá la página visor.htm 
	document.aspnetForm.hName.value = ruta;
	document.aspnetForm.hTitle.value = titulo;
window.open('visor.htm','Visor','width=5,height=5,screenX=0,screenY=0,top=0,left=0,titlebar=no,location=no,toolbar=no,directories=no,menubar=no,resizable=yes,scrollbars=no,status=no');
    return false;
}

function client_OnTreeNodeChecked(e){
    //marcado de nodos de un arbol de forma descendente (de padre a hijos)     
    var obj = null;

    if (document.all)
    {
        obj = window.event.srcElement;}
    else
    {
        obj = e.target;}
        var treeNodeFound = false;
        var checkedState;

        if (obj.tagName == "INPUT" && obj.type == "checkbox")
        {
            var treeNode = obj;
            checkedState = treeNode.checked;
            do
                {
                if (document.all)
                {obj = obj.parentElement;}
                else
                {obj = obj.parentNode;}
                }
             while (obj.tagName != "TABLE")

            var parentTreeLevel = obj.rows[0].cells.length;
            var parentTreeNode = obj.rows[0].cells[0];
            var tables = null;
            if (document.all)
                {tables = obj.parentElement.getElementsByTagName("TABLE");}
            else
                {tables = obj.parentNode.getElementsByTagName("TABLE");}
            var numTables = tables.length
            if (numTables >= 1)
            {
                for (i=0; i < numTables; i++)
                {
                    if (tables[i] == obj)
                    {
                        treeNodeFound = true;
                        i++;
                        if (i == numTables)
                            {return;}
                        }
                        if (treeNodeFound == true)
                        {
                            var childTreeLevel = tables[i].rows[0].cells.length;
                            if (childTreeLevel > parentTreeLevel)
                            {
                                var cell = tables[i].rows[0].cells[childTreeLevel - 1];
                                var inputs = cell.getElementsByTagName("INPUT");
                                inputs[0].checked = checkedState;
                            }
                            else
                                {return;}
                        }
                  }
            }
     }
}

function validaForm(boton){
 
     //si existe un formulario...
    if (document.getElementById("formBasico"))
    {
        var obligatorios = getElementsByClass("obligatorio",document.getElementById("formBasico"),"input");
     
        var error = false;
        var txtAlert = "Debe completar todos los campos obligatorios."
        
        for (var i=0;i<obligatorios.length;i++)
        {
            if(obligatorios[i].value==""){ error=true;//txtAlert += obligatorios[i].id;
            }
        }
        
        if(error){
        alert(txtAlert);return false;}
        else{return true;
        }
    }
}

//degradado de color rgb
var Fat = {
	make_hex : function (r,g,b) 
	{
		r = r.toString(16); if (r.length == 1) r = '0' + r;
		g = g.toString(16); if (g.length == 1) g = '0' + g;
		b = b.toString(16); if (b.length == 1) b = '0' + b;
		return "#" + r + g + b;
	},
	fade_all : function (dur)
	{
		;
		var a = document.getElementsByTagName("*");
		for (var i = 0; i < a.length; i++) 
		{
			var o = a[i];
			var r = /fade-?(\w{3,6})?/.exec(o.className);
			if (r)
			{
				if (!r[1]) r[1] = "";
				if (o.id) Fat.fade_element(o.id,null,dur,"#"+r[1]);
			}
		}
	},
	fade_element : function (id, fps, duration, from, to) 
	{
		if (!fps) fps = 30;
		if (!duration) duration = 3000;
		if (!from || from=="#") from = "#ffff33";
		if (!to) to = this.get_bgcolor(id);

		var frames = Math.round(fps * (duration / 1000));
		var interval = duration / frames;
		var delay = interval;
		var frame = 0;

		if (from.length < 7) from += from.substr(1,3);
		if (to.length < 7) to += to.substr(1,3);

		var rf = parseInt(from.substr(1,2),16);
		var gf = parseInt(from.substr(3,2),16);
		var bf = parseInt(from.substr(5,2),16);
		var rt = parseInt(to.substr(1,2),16);
		var gt = parseInt(to.substr(3,2),16);
		var bt = parseInt(to.substr(5,2),16);

		var r,g,b,h;
		while (frame < frames)
		{
			r = Math.floor(rf * ((frames-frame)/frames) + rt * (frame/frames));
			g = Math.floor(gf * ((frames-frame)/frames) + gt * (frame/frames));
			b = Math.floor(bf * ((frames-frame)/frames) + bt * (frame/frames));
			h = this.make_hex(r,g,b);

			setTimeout("Fat.set_bgcolor('"+id+"','"+h+"')", delay);

			frame++;
			delay = interval * frame; 
		}
		setTimeout("Fat.set_bgcolor('"+id+"','"+to+"')", delay);
	},
	set_bgcolor : function (id, c)
	{
		var o = document.getElementById(id);
		o.style.backgroundColor = c;
	},
	get_bgcolor : function (id)
	{
		var o = document.getElementById(id);
		while(o)
		{
			var c;
			if (window.getComputedStyle) c = window.getComputedStyle(o,null).getPropertyValue("background-color");
			if (o.currentStyle) c = o.currentStyle.backgroundColor;
			if ((c != "" && c != "transparent") || o.tagName == "body") { break; }
			o = o.parentNode;
		}
		if (c == undefined || c == "" || c == "transparent") c = "#ffffff";
		var rgb = c.match(/rgb\s*\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/);
		if (rgb) c = this.make_hex(parseInt(rgb[1]),parseInt(rgb[2]),parseInt(rgb[3]));
		return c;
	}
}


/*
//Funciones que nos mostraran un texto
function MostrarTooltip ( idObject, idTooltip ) 
{ 			
	var obj = document.getElementById( idObject ); 
	document.getElementById(idTooltip).innerHTML = obj.options[obj.selectedIndex].value;
	if(obj.options[obj.selectedIndex].value !="") 
	{
		//Formato Tooltip 
 		document.getElementById(idTooltip).style.zIndex = 9999999; 
  		document.getElementById(idTooltip).style.display = "inline"; 
  		document.getElementById(idTooltip).style.position = "absolute"; 
 		document.getElementById(idTooltip).style.border =  "ActiveBorder  1px	solid"  ; 
		document.getElementById(idTooltip).style.padding =   "3px"; > 
		document.getElementById(idTooltip).style.fontSize =  "10px"; 
		document.getElementById(idTooltip).style.fontFamily = "Verdana"; 
		document.getElementById(idTooltip).style.backgroundColor = "LemonChiffon"; 
		document.getElementById(idTooltip).style.top =    
		document.getElementById(idObject).offsetTop + document.getElementById(idObject).offsetHeight + "px";   
		document.getElementById(idTooltip).style.left =	5 + event.x;			    
	}      
} 
function OcultarTooltip ( idTooltip )
{ 
  document.getElementById(idTooltip).style.display = "none"; 
}

*/

//JS no intrusivo
function addLoadEvent(func) 
{
	if ( typeof wpOnload!='function')
	{
		wpOnload=func;
	}
	else
	{ 
	var oldonload=wpOnload;
	wpOnload=function()
		{
		oldonload();
		func();
		}
	}
}

addLoadEvent(function ()  { 
    //Fat.fade_all();
    //creaTextAreaFCK();
    creaTextAreaCK();
    //controlLeidosNoLeidos();
});

function controlLeidosNoLeidos(){

    var acordeonPanes = getElementsByClass("sustituir","node","input");
    for (var i=0;i<inputs.length;i++){
        traeAJAX(id);
    }

}

//FUNCIONALIDADES AJAX
function traeAJAX(id) {
    if (!enProceso && http) {
       var cadenaUrl = "../administracion/ajax.aspx?id=" + id; 
       http.open("GET", cadenaUrl, true);
       http.onreadystatechange = handleHttpResponse;
       enProceso = true;
       http.send(null);
    }
}

function handleHttpResponse() {
//funcion que trae los datos ajax   
    if (http.readyState == 4) {
       if (http.status == 200) {
          if (http.responseText.indexOf('invalid') == -1) {
             //no es necesario hacer nada, de momento
             }
       }
     }
}



var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest

 function getHTTPObject() {
    var xmlhttp;
    /*@cc_on
    @if (@_jscript_version >= 5)
       try {
          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
          try {
             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (E) { xmlhttp = false; }
       }
    @else
    xmlhttp = false;
    @end @*/
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
       try {
          xmlhttp = new XMLHttpRequest();
       } catch (e) { xmlhttp = false; }
    }
    return xmlhttp;
}