window.onerror = function(){return true;}
//文件上传控件对象
FileControl = function(_Name, _FileFormat, _AlterString, _AllowNull, _FileNameObject, _FileSizeObject, _OldFileNameObject){
    this.Name = "";//控件的name
    if(_Name != null)
        this.Name = _Name;
    this.FileFormat = "";//上传文件的格式限制
    if(_FileFormat != null)
        this.FileFormat = _FileFormat;
    this.AlterString = "";//上传文件的警告
    if(_AlterString != null)
        this.AlterString = _AlterString;
    this.AllowNull = true;//上传文件是否允许为空
    if(_AllowNull != null)
        this.AllowNull = _AllowNull;
    if(_AllowNull != null)
        this.AllowNull = _AllowNull;
    this.FileNameObject = null;
    if(_FileNameObject != null)
        this.FileNameObject = _FileNameObject;
    this.FileSizeObject = null;
    if(_FileSizeObject != null)
        this.FileSizeObject = _FileSizeObject;
    this.OldFileNameObject = null;
    if(_OldFileNameObject != null)
        this.OldFileNameObject = _OldFileNameObject;
    this.FileName = "";//上传文件上传后的文件名
    this.ErrMsg = "";//上传的错误信息
    this.Status = 0;//执行状态 0:提交前 1:提交 2:提交后
}

//文件上传控件集合对象
FileControls = function(){
    var self = this;    
    this.items=[];
    this.length = this.items.length;
    //增加文件上传控件对象
    this.add = function(_FileControl){
        this.items[this.items.length] = _FileControl;
    }
    //删除文件上传控件对象
    this.remove = function(_FileControl){
        for(var i = 0; i < this.items.length; i++)
        {
            if(this[this.items.length] == _FileControl){
                this.splice(i,1);
                break;
            }
        }
    }
    //删除文件上传控件对象
    this.removeAt = function(index){
        this.items.splice(index,1);
    }
    //获取文件上传控件对象
    this.get = function(int){
        return this.items[i];
    }
    //检查文件上传控件对象的格式
    this.CheckFiles = function(){
        var _FileControl;
        var objFile;
        try {
            for(var i = 0; i < self.items.length; i++){
                _FileControl = self.items[i];
                objFile = window.frames(_FileControl.Name).frames("uploadManager").document.forms[0].uploadBox1;
                if(_FileControl.OldFileNameObject != null){
                    _FileControl.OldFileNameObject.value = objFile.value.substring(objFile.value.lastIndexOf("\\") + 1);
                }
                if(_FileControl.AllowNull == false && objFile.value == ""){
                    alert("请选择" + _FileControl.AlterString);
                    objFile.focus();
                    return false;
                }else{
                    if(_FileControl.FileFormat == "")
                        continue;
                    if(objFile.value != ""){
                        var index = objFile.value.lastIndexOf(".");
                        var ext =  "";
                        if(index > 0)
                            ext =  objFile.value.substring(index);
                        if(ext == "" || ("|"+_FileControl.FileFormat + "|").toLowerCase().indexOf(("|"+ext+"|").toLowerCase()) == -1){
                            alert("你选择上传的文件的格式不正确！\r\n文件格式限制为："+_FileControl.FileFormat);
                            objFile.focus();
                            return false;
                        }
                    }
                }
            }
        }catch(err) {
            alert("服务器错误：\r\n"+err.message);
            return false;
        }
        return true;
    }
    //检查文件上传控件对象的上传状态
    this.getUploadStatus = function(){
        if(self.FileControlIndex >= self.items.length){
            self.ReturnValue = 1;
            return;
        }
        var _FileControl = self.items[self.FileControlIndex];
        var frame =  window.frames(_FileControl.Name);
        var frame2 =  window.frames(_FileControl.Name).frames[0];
        var objFrom = frame.document.forms[0];
        var objFrom2 = null;
        try {
            objFrom2 = frame2.document.forms[0];
        } catch(err) {
            objFrom2 = null;
        }
        if(objFrom2 != null && objFrom2.uploadBox1.value == "" && _FileControl.AllowNull == true && _FileControl.Status == 0){
            this.FileControlIndex ++;
            self.FileStatus = true;
            self.getUploadStatus();
        }else{
            if(self.FileStatus == true){
                self.FileStatus = false;
                _FileControl.Status = 1;
                frame.SlickUpload_Submit();
                _FileControl.Status = 2;
                self.setTimeCall();
            }else{
                if(objFrom.hf_errcode == null || objFrom.hf_errcode.value == ""){
                    self.FileStatus = false;
                    self.setTimeCall();
                }else if(objFrom.hf_errcode.value == "1" ){
                    if(_FileControl.FileNameObject != null)
                        _FileControl.FileNameObject.value = objFrom.hf_filefullname.value;
                    if(_FileControl.FileSizeObject != null)
                        _FileControl.FileSizeObject.value = isNaN(objFrom.hf_filesize.value) ? "0" : objFrom.hf_filesize.value;
                    self.FileControlIndex ++;
                    self.FileStatus = true;
                    self.getUploadStatus();
                }else{
                    self.ReturnValue = -1;
                    return false;
                }
            }
        }
    }
    this.setTimeCall = function(){
        setTimeout(self.getUploadStatus,500);    
    }    
    //当前上传控件的序号
    this.FileControlIndex = 0;
    //当前上传控件的序号
    this.FileStatus = true;
    this.ReturnValue = 0;
    this.EventSrcObject = null; //触发事件的控件Name

    this.Upload = function(oName){
        self.EventSrcObject = oName;
        if(self.CheckFiles() == false)
            return false;
        else
            Ext.MessageBox.show({
                title: '请等待',
                msg: '正在上传文件...请等待...',
                width:240,
                closable:false,
                animEl: 'mb7'
            });/**/
        self.getUploadStatus();
        self.Submit();
    }
    this.Upload1 = function(oName){
        self.EventSrcObject = oName;
        if(self.CheckFiles() == false)
            return false;
        else
            Ext.MessageBox.show({
                title: '请等待',
                msg: '正在上传文件...请等待...',
                width:240,
                closable:false,
                animEl: 'mb7'
            });/**/
        self.getUploadStatus();
        return self.NoSubmit();
    }
    this.Submit = function(){
        if(self.ReturnValue != 0){
            Ext.MessageBox.hide();
            if(self.ReturnValue == 1){
                setTimeout('this.__doPostBack_Ex(\''+self.EventSrcObject+'\',\'\')', 0);
            }else{
                var _FileControl = self.items[self.FileControlIndex];
                var frame =  window.frames(_FileControl.Name);
                var objFrom = frame.document.forms[0];
                alert("文件上传失败：" + objFrom.hf_filefullname.value);
            }
            return;
        }else
            setTimeout(self.Submit,500);
    }
    this.NoSubmit = function(){
        if(self.ReturnValue != 0){
            Ext.MessageBox.hide();
            if(self.ReturnValue == 1){
                setTimeout('__doPostBack(\''+self.EventSrcObject+'\',\'\')', 0);
            }else{
                var _FileControl = self.items[self.FileControlIndex];
                var frame =  window.frames(_FileControl.Name);
                var objFrom = frame.document.forms[0];
                alert("文件上传失败：" + objFrom.hf_filefullname.value);
                return false;
            }
            return true;
        }else
            setTimeout(self.NoSubmit,500);
    }
}


function __doPostBack_Ex(eventTarget, eventArgument) 
{
    var theform;
    if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
        theform = document.forms[0];
    }
    else {
        theform = document.forms[0];
    }

    if(!theform.__EVENTTARGET)
    {            
        theform.appendChild(document.createElement("<input type='hidden' name='__EVENTTARGET'>"));
    }
    
    if(!theform.__EVENTARGUMENT)
    {            
        theform.appendChild(document.createElement("<input type='hidden' name='__EVENTARGUMENT'>"));                        
    }
    
    theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
    theform.__EVENTARGUMENT.value = eventArgument;
    if ((typeof(theform.onsubmit) == "function")) 
    {
        if(theform.onsubmit()!=false)
        {
            theform.submit();    
        }
    }
    else
    {            
        theform.submit();    
    }
    
    function __doPostBack(eventTarget, eventArgument)
    {
        __doPostBack_Ex(eventTarget, eventArgument);
    }

}
