/*

    function initLoader(id){
        var parent = $('#'+id);
        var loader = $(document.createElement('div'));
        var position = parent.position();
        loader.css({
            'display': 'none',
            'position': 'absolute',
            'z-index': 99998,
            'left': position.left + (parent.width()-64)/2 + "px",
            'top': "200px",
            'width': 64,
            'height': 64,
            'background': '#fff'
        });
            
        loader.appendTo(document.body);
        loader.append("<img src='/images/2.gif'");
        return loader;
    }
    
    function initPagination(id){
        var pagination = $(document.createElement('div'));
        pagination.addClass("pagination");
        pagination.width($('#'+id).width()+14);
        pagination.appendTo(document.body);
        return pagination;
    }

$(document).ready(function(){    
    loader = initLoader('leftColumn');
    pagination = initPagination('leftColumn');
});

*/

var axaj = null;
var animate = null;
var Loader = function(options) {

    var self = this;

    self.loader = $('.loader');
    self.scale = self.loader.find('.scale');
    self.url = options.url;
    self.dataType = options.dataType;
    if(!self.dataType)
        self.dataType = 'json';

    self.params = options.params;
    if (!self.params)
        self.params = {};
        
    self.success = options.success;
    self.click = false;

    self.loader.find('.close').click(function(){
        self.hide();
    });
        
    self.start = function() {
        scale.animate({width: '100%'}, 3000);
    }

    self.hide = function() {
        if (ajax) {
            ajax.abort();
        }
        self.loader.hide();
        self.scale.width(0);
        
        return false;
    }
            
    self.show = function() {
        if (ajax) {
            ajax.abort();
            animate.stop();
        }
        self.loader.show();
        self.scale.width(0);
        animate = self.scale.animate({width: '100%'}, 2000);
        var city = $('.current_city').attr('id');
        if (!city) city = '';
        
        ajax = $.ajax({
            type: "POST",
            url: self.url,
            dataType: self.dataType,
            timeout: 20000,
            data: $.extend({
                city:city,
                language:language
            }, self.params),               
            success: function(result){
                getMap().clearAll();
                self.success(result);
                animate.stop();
                self.scale.animate({width: '100%'}, 500, 'linear', function(){
                    self.hide();
                });
            },
            error: function(){
                self.hide();
                animate.stop();
            }
        });
            
        return false;
    }

}

