﻿
/*
	For functions getElementsByClassName, addClassName, and removeClassName
	Copyright Robert Nyman, http://www.robertnyman.com
	Free to use if this text is included
*/
function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}
 
function addClassName(elm, className){
    var currentClass = elm.className;
    if(!new RegExp(("(^|\\s)" + className + "(\\s|$)"), "i").test(currentClass)){
        elm.className = currentClass + ((currentClass.length > 0)? " " : "") + className;
    }
    return elm.className;
}
 
function removeClassName(elm, className){
    var classToRemove = new RegExp(("(^|\\s)" + className + "(\\s|$)"), "i");
    elm.className = elm.className.replace(classToRemove, "").replace(/^\s+|\s+$/g, "");
    return elm.className;
}
 
function hasClass(el, c) {
  if (!el || !el.className.length) return;
  var bits = el.className.split(' '), has = false;
  for (var j = 0; j < bits.length; j++) if (bits[j] === c) has = true;
  return has;
}
 


function getTokenNext(c, a, b) {
    var i = 0; //>> Desde el principio
    var j = -1; //>> No aparece
    var r = "";

    if (a) {
        i = c.indexOf(a);
        n = a.length;
        if (i >= 0) i += a.length;
    }
    if (b) j = c.indexOf(b, i);

    if (j < 0) //>> No aparece b
        r = c.substr(i);
    else {
        if (i < j) //>> Los índices del rango son consecutivos (i < j)
        {
            var l = Math.abs(j - i);
            r = c.substr(i, l);
        }
    }

    return r;
}

function getToken(c, a, b) {
    var i = 0; //>> Desde el principio
    var j = -1; //>> No aparece
    var r = "";

    if (a) {
        i = c.indexOf(a);
        n = a.length;
        if (i >= 0) i += a.length;
    }
    if (b) j = c.lastIndexOf(b);

    if (j < 0) //>> No aparece b
        r = c.substr(i);
    else {
        if (i < j) //>> Los índices del rango son consecutivos (i < j)
        {
            var l = Math.abs(j - i);
            r = c.substr(i, l);
        }
    }

    return r;
}


var a;
function rAJAX(container, resource, method, params, cb) {
    var c = document.getElementById(container);
    c.innerHTML = "Cargando...";
    if (!a) a = new ajax(resource, cb); //>> Si se crea un objeto nuevo los manejadores de tiempos an se ejecutan 
    a.setCallBack(cb);
    a.setHolder(container);
    a.run(resource, method, params);
}



function scrollDown()
{
    var limit = $(document).height() - $(window).height();
    //$('.tabBox .tabs li:eq(1)').trigger('click');
    if ($(window).scrollTop() < limit) {
        //alert ($(window).scrollTop() < limit);
        $('html, body').animate({ scrollTop: $(document).height() - $(window).height() }, 1000);
    }
}

function printPage(id)
{
    var pW = window.open('imprimir.aspx?id=' + id, '', 'resizable=no, scrollbars=no, width=720, height=550');
}

//>> Objeto posición
function pos(x, y)
{
	this.pageX = x;
	this.pageY = y;
}

function setPos(e, p)
{
	var extra = 10;
	var bPage = ($("body").outerHeight() - ($(".footer").outerHeight() + $(".bFooter").outerHeight()) - 10);
	var hBox = e.outerHeight();
	var m = hBox; // / 2;
	var bBox = (p.pageY + m + 15);
	var t = p.pageY + 15 - m;
	var l = p.pageX + 15;

	//>> borde horizontal
	extra = 250;
	var rPage = ($(".container").offset().left + $(".container").outerWidth()) + extra;
	var wBox = e.outerWidth();
	var rBox = (p.pageX + wBox);

	if (bBox >= bPage) t = bPage - hBox;
	if (rBox >= rPage) l = p.pageX - wBox - 15;


	e.css({ "left": l, "top": t });
}




function checkMail(valor)
{
	//var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3,4})+$/;
	var re = /^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*[.]([a-z]{2,3,4})$/;

	if (re.test(valor))
	{
		//alert("La dirección de email " + valor + " es correcta.")
		return (true)
	}
	else
	{
		//alert("La dirección de email es incorrecta.");
		return (false);
	}
}

//window.onload = function ()
{
    //alert("mensaje");

	jQuery.fn.loadData = function (url, params, fOk, fFail)
	{
		//this.each(function (url, params)
		{
			$(this).hide();
			
			$(this).html("<center><div style='height:100%;padding:25px;overflow:hidden;'><img src='resources/img/loader.gif' alt='Cargando...' /><br />Cargando .... </div></center>");
			
			this.load(url, params, function (response, status, xhr)
			{
				if (status == "error")
				{
					//if (fFail) fFail.call();
				}
				else
				{
					if (response == "Error 404")
					{
						if (fFail) fFail.call();
					}
					else
					{
						if (response == "Error")
						{
							if (fFail) fFail.call();
						}
						else
						{
							$(this).fadeIn();
							if (fOk) fOk.call();
						}
					}
				}
			}
                    );


		}
		//);
	}

}

