function Autoloader(id, mapId) {
    this.inheritsFrom(new EsriControl(id, "Autoloader", 0, 0, 0, 0)); // ??? 
    this.mapId = mapId;
    var self = this;

    this.updateAsync = function(xml, eventSources) {
        var idTag = xml.getElementsByTagName("id").item(0);
        var id = idTag.firstChild.nodeValue;
        if (id == self.id) {
            /*self.mapId = xml.getElementsByTagName("map-id").item(0).firstChild.nodeValue;*/
            var taskIds = xml.getElementsByTagName("autoclose-task");
            if (taskIds && taskIds.length > 0){
                for (var i = 0; i < taskIds.length; i++){
                    var taskId = null;   
                    taskId = taskIds.item(i).firstChild.nodeValue;
                    if (taskWindowManager && taskWindowManager.windows['win_EsriTaskCell_'+taskId]){
                        taskWindowManager.windows['win_EsriTaskCell_'+taskId].hide();
                    }
                }
            }                
            taskIds = xml.getElementsByTagName("autoload-task");
            if (taskIds && taskIds.length > 0){
                for (var i = 0; i < taskIds.length; i++){
                    var taskId = null;
                    var titleValue = '';
                    var element =  taskIds.item(i);
                    if (element && element.childNodes){
                        var children = element.childNodes;
                        for (var j = 0; j < children.length; j++){
                            var child = children[j];
                            if (child && child.nodeName && child.firstChild && child.firstChild.nodeValue){
                                if (child.nodeName.toLowerCase() == "id"){
                                    taskId = child.firstChild.nodeValue;
                                }
                                else if (child.nodeName.toLowerCase() == "title"){
                                    titleValue = child.firstChild.nodeValue;
                                }
                            }
                        } 
                    }
                    if (taskId != null){                    
                        toggleWindow(taskId, 'map1',[{container:'mapForm', title:titleValue}]);
                    }
                }
            }        
        }
    }
  
    /*this.sendRequest = function(extraParams){
        var map = EsriControls.maps[self.mapId];
        var formId = map.formId;
        var url = EsriUtils.getServerUrl(formId);
        var params = "agsAjax=agsAjax&formId=" + map.formId + "&" + self.id + "=" + self.id + "&"+extraParams +"&doPostBack=doPostBack&"  + EsriUtils.buildRequestParams(formId);
        EsriUtils.sendAjaxRequest(url, params, false, EsriControls.processPostBack);    
    }*/
  
    /*this.clearResults = function(){
        self.sendRequest("noticesAction=clear");
    }*/
      
    EsriControls.tasks[id] = this;
    EsriControls.taskIds.push(id);
    EsriControls.addPostBackTagHandler("autoloader", this.updateAsync);
}
