
(function($) {

    jQuery.fn.myload = function(url,update,options) {
        return this.each(function(){
            var p = {
                'url': url,
                'async': true,
                'cache': false,
                'type': 'POST'
            }

            for (var i in options) {
                switch (i){
                    case ('formulario') :   p['data']= jQuery("#"+options[i]).serialize();
                                            p['data']=p['data']+'&fromform=1';
                                            break;
                    case ('completo')   :   argumentos['onComplete']= eval(opciones[i]);
                                            break;
                }
            }

            if (!update) update='cuerpo';
            p['success'] = function(html){
                jQuery("#"+update).html(html);
            } 

            return jQuery.ajax(p);
        });
    };

    jQuery.myload = function(url,update,options) {

        var p = {
            'url': url,
            'async': true,
            'cache': false,
            'type': 'POST'
        }

        for (var i in options) {
            switch (i){
                case ('formulario') :   p['data']= jQuery("#"+options[i]).serialize();
                                        p['data']=p['data']+'&fromform=1';
                                        break;
                case ('completo')   :   argumentos['onComplete']= eval(opciones[i]);
                                        break;
            }
        }

        if (!update) update='cuerpo';
        p['success'] = function(html){

            //$("#miloader").fadeOut("slow");
            jQuery("#"+update).hide();
            //$("#"+update).fadeOut();
            jQuery("#"+update).html(html);


            //var pos = $("#"+update).offset();  
            //var width = $("#"+update).width();
            //var height = $("#"+update).height();

            //$("#"+update).append("<div id='miloader2'><center><img src='images/loading.gif' /></center></div>");
            //$("#miloader2").css( { "position":"absolute", "width": (width) + "px", "height": (height) + "px", "top": "0px", "left": "0px" } );
            //$("#miloader2").fadeOut();

            jQuery("#"+update).fadeIn();
        } 

    //    $("#"+update).empty().html('<img src="images/loading.gif" />');
			//$("body","html").css({height: "100%", width: "100%"});
			//$("html").css("overflow","hidden");
        //alert($("#"+update).attr('top'));
        //$("#"+update).addClass("TB_overlayBG");
        //
        put_preloader(update);
        // Analytics
        if ((typeof pageTracker) != 'undefined') {
            pageTracker._trackPageview(url);
        }

        return jQuery.ajax(p);

    };

    jQuery.myloadjson = function(url,options) {

        var p = {
            'url': url,
            'async': true,
            'cache': false,
            'type': 'POST',
            'dataType': 'json'
        }

        for (var i in options) {
            switch (i){
                case ('formulario') :   p['data']= jQuery("#"+options[i]).serialize();
                                        p['data']=p['data']+'&fromform=1';
                                        break;
            }
        }

        p['success'] = function(data){
            jQuery.each(data, function(i,item){
                if((typeof item)=='string') {
                    // nos mandan c�digo
                    eval(item);
                } else {
                    if (item['capa']!=undefined) {
                        jQuery("#"+item.capa).html(item.html);
                    }
                }
            });
            if (options['callback']!=undefined) {
                options['callback'](data);
            }
            
        } 

        return jQuery.ajax(p);

    };

    jQuery.myloadjsonv2 = function(url,options) {

        var p = {
            'url': url,
            'async': true,
            'cache': false,
            'type': 'POST',
            'dataType': 'json'
        }

        for (var i in options) {
            switch (i){
                case ('formulario') :   p['data']= jQuery("#"+options[i]).serialize();
                                        p['data']=p['data']+'&fromform=1';
                                        break;
            }
        }

        p['success'] = function(data){
            // actualizamos capas
            if (data['update']!=undefined) {
                jQuery.each(data['update'], function(i,item){
                    jQuery("#"+item.capa).html(item.html);
                });
            }

            // ejecutamos c�digo
            if (data['code']!=undefined) {
                jQuery.each(data['code'], function(i,item){
                    eval(item);
                });
            }

            // ejecutamos un callback si necesario
            if (options['callback']!=undefined) {
                options['callback'](data);
            }
            
        } 

        return jQuery.ajax(p);

    };

    jQuery.myloadjsonv3 = function(url,options) {

        var p = {
            'url': url,
            'async': true,
            'cache': false,
            'type': 'POST',
            'dataType': 'json'
        }

        for (var i in options) {
            switch (i){
                case ('formulario') :   p['data']= jQuery("#"+options[i]).serialize();
                                        p['data']=p['data']+'&fromform=1';
                                        break;
            }
        }

        p['success'] = function(data){
            jQuery.each(data, function(i,item){
                if(item['capa']!=undefined) {
                    jQuery("#"+item.capa).html(item.html);
                } else if((typeof item)=='string') {
                    eval(item);
                }
            });

            // ejecutamos un callback si necesario
            if (options['callback']!=undefined) {
                options['callback'](data);
            }
            
        } 

        return jQuery.ajax(p);

    };

    jQuery.myinitdiv = function(padre,div) {
        if (!jQuery('#'+div).length) {
            jQuery('#'+padre).append('<div id=\''+div+'\'/>');
        } else {
            jQuery('#'+div).html('');
        }
    };

    jQuery.call_ajax2 = function(url,update,options) {
    //jQuery.call_ajax3 = function(url,update) {
        //if (!update) update='cuerpo';
        $("#"+update).load(url);
    };

})(jQuery);


function put_preloader(update)
{
        var pos = jQuery("#"+update).offset();  
        var width = jQuery("#"+update).width();
        var height = jQuery("#"+update).height();

        var ndiv="miloader_"+update;


        jQuery("#"+update).append("<div id='"+ndiv+"'><center><img src='images/loading.gif' /></center></div>");
        jQuery("#"+ndiv).css( { "position":"absolute", "width": (width) + "px", "height": (height) + "px", "top": "0px", "left": "0px" } );
        jQuery("#"+ndiv).addClass("miloader");
        //$("#"+ndiv).addClass("TB_overlayBG");
        jQuery("#"+ndiv).fadeIn();
}

