var BackgroundColor = "#D4D0C8";//#F5F5F4
Dialog ={};
Dialog.BackgroundPanel = null;
//Dialog.DialogSetting = function(eleId,channel,catetory){
//    if(!String._isValid(eleId)) throw new Error('ID 不是有效字符串!');
//	this._element =$(eleId);
//	this._channel = channel;
//	this._category = category;
//	this._openEventName='onclick';
//	this._isFade = true;
//	this._alignv ='eventsrctop';
//	this._innerHTML = '';
//	this._nameValueCollection={};
//	this._regExpMatch =null;
//}
//Channle = 
//    function(channleName,categoryName){
//        this._channelName = channelName;
//        this._category = {};
//        this._categoryString = categoryName;
//        __init();
//    }
//Channle.prototype.__init =
//    function(){
//        
//    }
//Category = 
//    function(categoryName){
//        this._categrotyName = categoryName;
//        this._channelName = channelName;
//        this._keywords = '';
//    }
//    
//    
//Dialog.DialogSetting.prototype.init=
//	function(){
//		this._check();	
//		DialogSetting.items[this._element.id] = this; //实际上就是记录当前这个元素下的关键字(正则表达式)
//		//var key = this._element.id+"_"+this._channel+"_"+this._category;
//		//DialogSetting.datas[key]=null;
//		if(!this._exisis()){
//			//DialogSetting.datas[DialogSetting.dataKeys.length] = key;
//			Ajax.Request('/Ajaxpro/GetCategoryByChannle.aspx?channel='+this._channle+'&category='+this._category,
//			null,'Text',Callback);
//		}
//	}
//Dialog.DialogSetting.prototype._check = 
//	function(){
//		if(!this._element)throw new Error('element is null!');
//		if(!String._isValid(this._channel))throw new Error('channle not is string!');
//		if(!String._isValid(this._category))throw new Error('category not is string!');
//		if(!this._openEventName) this._openEventName ='onclick';
//		if(typeof this._isFade == 'string'){
//            		var falde = /^true$/i.test(this._isFade) 
//            		|| /^false$/i.test(this._isFade) ? eval(this._isFade.toLowerCase()):true;
//            		this._isFade = falde;
//       	 }
//		this._isFade = 
//		this._isFade==true 
//		|| this._isFade=false?this._isFade:false;
//	}
//Dialog.DialogSetting.Items = {};
/*命令对话框*/
Dialog.CommandDialog =
    function(elementId,openEventSrc){
        if(!String._isValid(elementId)) throw new Error('ID 不是有效字符串!');
        this._element = $(elementId);
        this._openEventSrc = openEventSrc?openEventSrc:$(elementId+"_OpenHandler");
        this._isFade = true;
        this._isModal = true;
        this._alignv = "eventsrctop";
        this._opacity = 5;
        this._visible = false;
        this._backPanelColor = BackgroundColor;
        this._opacityControl = new Dialog.OpacityControl(this._backPanelColor);
}
Dialog.CommandDialog.prototype._init = 
    function(){
         if(!this._element){
            throw new Error('not found dialog element!');
        }
        this._alignv = this._alignv?this._alignv:"eventsrctop";
        if(typeof this._isModal == 'string'){
            var dModal = /^true$/i.test(this._isModal) 
            || /^false$/i.test(this._isModal) ? eval(this._isModal.toLowerCase()):true;
            this._isModal = dModal;
        }
        this._isModal = this._isModal==false||this._isModal==true?this._isModal:false;
        if(typeof this._isFade == 'string'){
            var falde = /^true$/i.test(this._isFade) 
            || /^false$/i.test(this._isFade) ? eval(this._isFade.toLowerCase()):true;
            this._isFade = falde;
        }
        this._isFade = this._isFade ==false || this._isFade ==true ?this._isFade:false;
        this._opacityControl._isFade = this._isFade;
        this._backPanelColor= this._backPanelColor && typeof this._backPanelColor == 'string'?this._backPanelColor:BackgroundColor;
        this._openEventSrc = 
        !this._openEventSrc || typeof this._openEventSrc == 'string'?
        $(this._element.id+"_OpenHandler"):this._openEventSrc;
        this._setDialogDisplayModal();
        var curDialog = this;
        Dialog.CommandDialog.Items[this._element.id] = curDialog;
    }
Dialog.CommandDialog.Items = {};
Dialog.CommandDialog.Current = null;
/*.......打开........*/
Dialog.CommandDialog.prototype.open = 
    function(){
        if(Dialog.CommandDialog.Current != this){
            if(Dialog.CommandDialog.Current){
                Dialog.CommandDialog.Current.hide();
            }
            Dialog.SetBackgroundPanel(this._backPanelColor||BackgroundColor)
            this.show();
        }
    }
/*........关闭.......*/
Dialog.CommandDialog.prototype.close = 
    function(){
        if(this == Dialog.CommandDialog.Current){
            if(Dialog.CommandDialog.Current){
                this.hide();
            }
        }
    }
/*........显示.......*/
Dialog.CommandDialog.prototype.show = 
    function(){
        Dialog.SetAllFrameEleDisplay("none");
        if(this._isModal){
            this._opacityControl.show();///////////
        }
        this._element.style.display ='';
        this._element.style.visibility = "visible";
        this._setLocation();
        this._isFade?Dialog.CommandDialog.Fadein(this._element.id,0):Dialog.CommandDialog.SetOpacity(this._element,10);
        this._visible = true;
        Dialog.CommandDialog.Current=this;
    }
/*........隐藏.......*/
Dialog.CommandDialog.prototype.hide = 
    function(){
        if(this._isFade){
            Dialog.CommandDialog.Fadeout(this._element.id,10);
        }else{
            this._element.style.display = 'none';
            this._element.style.visibility = 'hidden';
        }
        if(this._isModal)
        this._opacityControl.hide();/////////////
        this.visible = false;
        Dialog.CommandDialog.Current=null;
    }
/*........设置当前元素状态.......*/
Dialog.CommandDialog.prototype._setDialogDisplayModal = 
    function(){
        this._element.style.display = 'none';
        this._element.style.position = 'absolute';
        this._element.style.zIndex = '10001';
        this._element.style.visibility = 'hidden';
        this._element.style.overflow = 'hidden';
    }
/*广告对话框*/
Dialog.AdvertisementDialog =
    function(){
        
    }


Dialog.OpacityControl = 
    function(bgcolor,opacity){
        Dialog.SetBackgroundPanel(bgcolor||BackgroundColor);
        this._isFade = false;//撑握背景图
        this._backEle = Dialog.BackgroundPanel;
        this._opacity = opacity||5;
    }
Dialog.OpacityControl.prototype.show=
    function(){
        this._isFade = this._isFade == null?false:this._isFade;
        this._backEle.style.display='';
        this._backEle.style.visibility='visible';
        if(!this._isFade){
            Dialog.OpacityControl.SetOpacity(this._opacity);
        }else{
            Dialog.OpacityControl.SetOpacity(0);
            Dialog.OpacityControl.Fadein(0,this._opacity);
        }
    }
Dialog.OpacityControl.prototype.hide=
    function(){
        this._isFade = this._isFade ==null?true:this._isFade;
        if(!this._isFade){
            this._backEle.style.display = 'none';
            this._backEle.style.visibility = 'hidden';
        }else{
            Dialog.OpacityControl.Fadeout(this._opacity);
        }
    }
Dialog.Open=
	function(eleId,eventSrc,isFade,isModal,alignv){
		if(!String._isValid(eleId)) throw new Error('ID 不是有效字符串!');
		var element = $(eleId);
		//Dialog.SetAllFrameEleDisplay("none");
		if(typeof isFade =='string'){
			var fade = /^true$/i.test(isFade) 
           		|| /^false$/i.test(isFade) ? 
			eval(isFade.toLowerCase()):true;
			isFade = fade;
		}
		isFade = isFade ==false || isFade==true?isFade:false;
		if(typeof isModal=='string'){
			var modal= /^true$/i.test(isModal) 
           		|| /^false$/i.test(isModal) ? 
			eval(isModal.toLowerCase()):true;
			isModal =modal;
		}
		isModal=isModal==false || isModal==true?isModal:false;
		var cmdDialog ;
		if(Dialog.CommandDialog.Items[eleId] == null){
		    var cmdDialog = 
		    new Dialog.CommandDialog(eleId,eventSrc);
		    cmdDialog._isFade = isFade;
		    cmdDialog._isModal = isModal;
		    cmdDialog._alignv = alignv;
		    cmdDialog._init();
		}else{
		    cmdDialog=Dialog.CommandDialog.Items[eleId];
		    cmdDialog._openEventSrc = eventSrc;
		    //在这个地方也可以再进行赋值
		}
		cmdDialog.show();
	}
Dialog.Close = 
    function(eleId){
        if(!String._isValid(eleId)) throw new Error('ID 不是有效字符串!');
        var curDialog = 
        Dialog.CommandDialog.Items[eleId];
        Dialog.SetAllFrameEleDisplay("");
        if(curDialog){
            curDialog.close();
        }else if(Dialog.CommandDialog.Current){
            if(Dialog.CommandDialog.Current._element.id ==eleId)
            Dialog.CommandDialog.Current.close();
        }
    }
Dialog.SetAllFrameEleDisplay =
    function(modal){
        var eles = document.getElementsByTagName("select");
        var eleLen = eles?eles.length:0;
        var ele;
        for(var i=0;i<eleLen;i++){
            ele = eles[i];
            if(ele && 
            ele.getAttribute('type') != 'active'){
                ele.style.display=modal;
            }
         }
    }
Dialog.CommandDialog.Fadein =
    function(eleId,opacity){
        var element = $(eleId);
        if(opacity<10){
            opacity++;
            Dialog.CommandDialog.SetOpacity(element,opacity);
            setTimeout('Dialog.CommandDialog.Fadein("'+eleId+'",'+opacity+');',100);
        }
    }
Dialog.CommandDialog.Fadeout = 
    function(eleId,opacity){
        var element = $(eleId);
        if(opacity>0){
            opacity --;
            Dialog.CommandDialog.SetOpacity(element,opacity);
            setTimeout('Dialog.CommandDialog.Fadeout("'+eleId+'",'+opacity+');',100);
        }else{
            element.style.visibility = 'hidden';
            element.style.display = 'none';
        }
    }
Dialog.CommandDialog.SetOpacity=
    function(ele,opacity){
        opacity = opacity ==null?10:opacity;
        if(Browser.IE){
            ele.style.filter= 'alpha(opacity='+(opacity*10)+')';
        }else{
            ele.style.opacity =opacity/10;
        }
    }
Dialog.OpacityControl.Fadeout=
    function(opacity){
        if(opacity >0){
            opacity--;
            Dialog.OpacityControl.SetOpacity(opacity);
            window.setTimeout('Dialog.OpacityControl.Fadeout('+opacity+')',100);
        }else{
            Dialog.BackgroundPanel.style.display= "none";
            Dialog.BackgroundPanel.style.visibility = "hidden";
        }
    }
Dialog.OpacityControl.Fadein=
    function(opacity,mexOpacity){
        if(opacity<mexOpacity){
            opacity++;
            Dialog.OpacityControl.SetOpacity(opacity);
            window.setTimeout('Dialog.OpacityControl.Fadein('+opacity+','+mexOpacity+')',100);
        }
    }
Dialog.OpacityControl.SetOpacity =
    function(opacity){
        opacity = opacity?opacity:0;
        if(Browser.IE){
            Dialog.BackgroundPanel.style.filter ='alpha(opacity=' + (opacity*10) + ')';
        }else{
            Dialog.BackgroundPanel.style.opacity = opacity/10;
        }
    }
Dialog.SetBackgroundPanel = 
    function(bgColor){
        if(!Dialog.BackgroundPanel){
            var DVBackgroundPanel = document.createElement("DIV");
            DVBackgroundPanel.setAttribute("id","DvbgLayer");
            DVBackgroundPanel.style.position = "absolute";
            DVBackgroundPanel.style.height= document.body.scrollHeight+"px";
            DVBackgroundPanel.style.width = window.screen.availWidth+"px";
           
            DVBackgroundPanel.style.left = "-1px";
            DVBackgroundPanel.style.top = "-1px";
            DVBackgroundPanel.style.zIndex = "9999";
            DVBackgroundPanel.style.display='none'
            DVBackgroundPanel.style.backgroundColor=bgColor?bgColor:BackgroundColor;
            //追加节点
            document.body.appendChild(DVBackgroundPanel);
            Dialog.BackgroundPanel =
            DVBackgroundPanel;
        }else{
            Dialog.BackgroundPanel.style.backgroundColor =
            bgColor?bgColor:BackgroundColor;
        }
        Dialog.OpacityControl.ResizeDiv();
    }
Dialog.OpacityControl.ResizeDiv =function(){
    var width = 0, height = 0;
    var childNodes = document.body.childNodes;
        for(var i=0; 
        i<childNodes.length; i++){
            if(childNodes[i].nodeType == 1){
                if(childNodes[i].offsetLeft 
                    + childNodes[i].offsetWidth > width){
                    width = childNodes[i].offsetLeft + childNodes[i].offsetWidth;
                }
            }
        }
        for(var i=childNodes.length-1; 
            i>=0; i--){
            if(childNodes[i].offsetTop > 0){
                height = childNodes[i].offsetTop + childNodes[i].offsetHeight;			
                break;
            }
        }
        var documentWidth = 
        document.body.scrollLeft + document.body.clientWidth;
        if(width < documentWidth) width = documentWidth;
        var documentHeight = 
        document.body.scrollTop + document.body.clientHeight;
        if(height < documentHeight) height = documentHeight;
        Dialog.BackgroundPanel.style.width = width;
        Dialog.BackgroundPanel.style.height = height;
}

Dialog.CommandDialog.prototype._setLocation=
function(){
	this._alignv = this._alignv.toLowerCase();
	var x = document.body.scrollLeft, y = document.body.scrollTop;
	switch(this._alignv)
	{
		case 'middle center':
			x += (document.body.clientWidth - this._element.offsetHeight) / 2-(this._element.offsetHeight/2);
			y += (document.body.clientHeight - this._element.offsetHeight) / 2;
			break;
		case 'top left':
			x += 0;
			y += 0;
			break;
		case 'top center':
			x += (document.body.clientWidth - this._element.offsetWidth) / 2-(this._element.offsetHeight/2);
			y += 0;
			break;
		case 'top right':
			x += document.body.clientWidth - this._element.offsetWidth;
			y += 0;
			break;
		case 'middle left':
			x += 0;
			y += (document.body.clientHeight - this._element.offsetHeight) / 2;
			break;
		case 'middle right':
			x += document.body.clientWidth - this._element.offsetWidth;
			y += (document.body.clientHeight - this._element.offsetHeight) / 2;
			break;
		case 'bottom left':
			x += 0;
			y += document.body.clientHeight - this._element.offsetHeight;
			break;
		case 'bottom center':
			x += (document.body.clientWidth - this._element.offsetWidth) / 2;
			y += document.body.clientHeight - this._element.offsetHeight;
			break;
		case 'bottom right':
			x += document.body.clientWidth - this._element.offsetWidth;
			y += document.body.clientHeight - this._element.offsetHeight;				
			break;
		case 'buttonleft':
			x = this._openEventSrc.offsetLeft - this._element.offsetWidth;
			y = this._openEventSrc.offsetTop;				
			if(y + this._element.offsetHeight > document.body.scrollTop + document.body.clientHeight)
			{
				y = this._openEventSrc.offsetTop + this._openEventSrc.offsetHeight - this._element.offsetHeight;
			}
			break;
		case 'buttonright':
			x = this._openEventSrc.offsetLeft + this._openEventSrc.offsetWidth;
			y = this._openEventSrc.offsetTop;	
			if(y + this._element.offsetHeight > document.body.scrollTop + document.body.clientHeight)
			{
				y = this._openEventSrc.offsetTop + this._openEventSrc.offsetHeight - this._element.offsetHeight;
			}
			break;
		case 'buttontop':
			x = this._openEventSrc.offsetLeft;
			if(x + this._element.offsetWidth > document.body.scrollLeft + document.body.clientWidth)
			{
				x = this._openEventSrc.offsetLeft + this._openEventSrc.offsetWidth - this._element.offsetWidth;
			}
			y = this._openEventSrc.offsetTop - this._element.offsetHeight;
			break;
		case 'buttonbottom':
			x = this._openEventSrc.offsetLeft;
			if(x + this._element.offsetWidth > document.body.scrollLeft + document.body.clientWidth)
			{
				x = this._openEventSrc.offsetLeft + this._openEventSrc.offsetWidth - this._element.offsetWidth;
			}
			y = this._openEventSrc.offsetTop + this._openEventSrc.offsetHeight;
			break;
		case 'point':
			var ee = false || window.event;
			x = 0, y = 0;
			if(ee)
			{					
				x = ee.clientX;
				y = ee.clientY;
				if(x + this._element.offsetWidth > document.body.clientWidth)
				{
					x = x - this._element.offsetWidth;
				}
				if(y + this._element.offsetHeight > document.body.clientHeight)
				{
					y = y - this._element.offsetHeight;
				}
				if(x < 0) x = 0;
				if(y < 0) y = 0;
				x += document.body.scrollLeft;
				y += document.body.scrollTop;
			}
			break;
		default:
			break;
	}
	if (x < 0) x = 0;
	if (y < 0) y = 0;
	this._element.style.left = x;
	this._element.style.top = y;
}

