﻿Object.extend = function(destination, source,deep) {
		if(!deep)deep=0;
	  for (property in source) {
		  if(typeof(source[property])=="object"&&deep>0){
			  	if(!destination[property])destination[property]={};
				Object.extend(destination[property],source[property],deep-1)
		  }else{
				try{
					destination[property] = source[property];
				  }catch(e){}
		  }
	  }
	  return destination;
	};
Object.extend(Array.prototype, {
  each: function(iterator) {
    for (var i = 0; i < this.length; i++){iterator(this[i]);}
	}
});
//***********************************************************
//            util   工具函数                              //
//***********************************************************
var util={}
util.$=function(){
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
		if(element)element=Object.extend(element,{on:function(eventName,fun){Event.observe(this,eventName,fun)}});
    if (arguments.length == 1)
      return element;
    elements.push(element);
  }
  return Object.extend(elements,{on:function(eventName,fun){this.each(function(obj){if(obj)Event.observe(obj,eventName,fun)})}});
}
util.ObjectDragDrop=function(obj){ 
    var me = this; 
    this.foo = (typeof obj=="string")?document.getElementById(obj):obj; 
     
    this.foo.menuBar.onmousedown = function(e){ 
            if(Event.element(window.event||window.Event)==me.foo.closeButton)return;
          var foo = me.foo; 
          e = e||event; 
          
          //获取鼠标在对象内部的坐标
          if( e.layerX )
		  { 
		  	foo.oOffset = {x:e.layerX,  y:e.layerY};  
		} 
          else{ 
		  foo.oOffset = {x:e.offsetX, y:e.offsetY };   } 
          
          document.onmousemove = me.drag; 
          document.onmouseup   = me.drop; 
          document.onselectstart = function(){ return false; };          
    } 
     
    this.drag = function(e){ 
          var foo = me.foo; 
          e=e||event; 
          foo.style.top  = e.clientY +(document.documentElement.scrollTop || document.body.scrollTop)- foo.oOffset.y + "px"; 
          foo.style.left = e.clientX+(document.documentElement.scrollLeft || document.body.scrollLeft) - foo.oOffset.x + "px"; 
    } 
     
    this.drop = function(e){ 
          e=e||event; 
          document.onmousemove = document.onmouseup = document.onselectstart = null;     
    }     
}

util.setDivCanDrag=function(div){
    util.ObjectDragDrop(div)
}

util.getScrollTop=function(win)
{ 
      if(!win)win=self
      var scrollTop=0; 
      if(win.document.documentElement&& win.document.documentElement.scrollTop)
      { 
            scrollTop=win.document.documentElement.scrollTop; 
      } 
      else if(win.document.body)
      { 
            scrollTop=win.document.body.scrollTop; 
      } 
      return scrollTop; 
}
util.getScrollLeft=function(win)
{ 
      if(!win)win=self
      var scrollLeft=0; 
      if(win.document.documentElement&& win.document.documentElement.scrollLeft)
      { 
            scrollLeft=win.document.documentElement.scrollLeft; 
      } 
      else if(win.document.body)
      { 
            scrollLeft=win.document.body.scrollLeft; 
      } 
      return scrollLeft; 
}

util.positionedOffset=function(element) {
    var valueT = 0, valueL = 0;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;
      element = element.offsetParent;
      if (element) {
        p = util.getStyle(element, 'position');
        if (p == 'relative' || p == 'absolute') break;
      }
    } while (element);
    return [valueL, valueT];
}
util.getStyle=function(element, style) {
    element = util.$(element);
    var value = element.style[style.camelize()];
    if (!value) {
      if (document.defaultView && document.defaultView.getComputedStyle) {
        var css = document.defaultView.getComputedStyle(element, null);
        value = css ? css.getPropertyValue(style) : null;
      } else if (element.currentStyle) {
        value = element.currentStyle[style.camelize()];
      }
    }
    if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
      if (Element.getStyle(element, 'position') == 'static') value = 'auto';	
    return value == 'auto' ? null : value;
}
util.isOnpoint=function(obj){
    if(Browser.opera>0){
        var ev=event
    }else{
        var ev=getEvent();
    }
	if(Event.pointerX(ev)>Position.cumulativeOffset(obj)[0]&&Event.pointerX(ev)<Position.cumulativeOffset(obj)[0]+obj.offsetWidth&&
		Event.pointerY(ev)>Position.cumulativeOffset(obj)[1]&&Event.pointerY(ev)<Position.cumulativeOffset(obj)[1]+obj.offsetHeight)
	{
		return true;
	}
	return false;
}
//***********************************************************
//            DivClass  主命名空间                         //
//***********************************************************
var win=window.top?window.top:window;	
var me=this;
var DivClass={
	List:[],
	Clear:function(){DivClass.List.each(function(dom){if(dom.parentNode)dom.parentNode.removeChild(dom)})},
	Hide:function(){DivClass.List.each(function(dom){dom.style.diaplay="none"})},
	Add:function(div){DivClass.List.push(div)},
	Remove:function(div){DivClass.List.splice(div)},
	IsAnyOver:function(){
	    for(var i=0;i<DivClass.List.length;i++){
	        
	        if(util.isOnpoint(DivClass.List[i]))return true
	    }
	    return false;
	   // DivClass.List.any(function(dom){return util.isOnpoint(dom)})
	}
}
DivClass.CreateDiv=function(){
	var Div=win.document.createElement("DIV");
	DivClass.Add(Div);
	return Div;
}
DivClass.CreateCoverBodyDiv=function(){
	var Div=DivClass.CreateDiv();
	win.document.body.appendChild(Div);
	Object.extend(Div,{style:{width:Math.max(win.document.body.offsetWidth,win.screen.availWidth)+"px",height:Math.max(win.document.body.offsetHeight,win.screen.availHeight) +"px",left:0,top:0,position:"absolute",zIndex:99,background:"#AAA",opacity:0.5,filter:"alpha(opacity=50)",display:"block"}},1);
	return Div;
}

DivClass.CreateCenterPopDiv=function(width,height,title,HTML){
	if(!title)title="";
	if(!HTML)HTML="";
	var left=Math.floor(width>win.document.body.clientWidth?util.getScrollLeft(win):((win.document.body.clientWidth-width)/2+util.getScrollLeft(win)))+"px";//(win.document.body.clientWidth-width)/2
	//alert(win.document.body.clientHeight);
	var top=Math.floor(height>win.document.body.clientHeight?util.getScrollTop(win):(100+util.getScrollTop(win)))+"px";//(win.document.body.clientHeight-height)/2
	var Div=DivClass.CreateDiv();
	win.document.body.appendChild(Div);
	Object.extend(Div,{style:{border:"1px solid #4978FE",overflow:"hidden",padding:0,margin:0,left:left,top:top,position:"absolute",zIndex:999,background:"#FFF",display:"block"}},1);
	//var str="<div style=\"background:#4978FE;padding:0;margin:0;width:10px\">";
	//str+=		"<div style=\"padding:5px;height:25px;width:auto\">";
	//str+=			"<div style=\"float:left;color:#83B73C;padding:4px;font-weight:bold;font-size:14px;width:auto\">"+title+"</div>";
	//str+=			"<div style=\"float:right;width:auto;color:#AAAAAA;padding:2px;border:1px solid #AAAAAA;font-weight:bold;cursor:pointer\" onmouseover=\"this.style.borderColor=this.style.color='#990099'\" onmouseout=\"this.style.borderColor=this.style.color='#AAAAAA'\">╳</div>";
	//str+=		"</div>";
	//str+=		"<div style=\"top:30px;width:auto\">"+HTML+"</div>";
	//str+=	"</div>";
	var str="<div><div><div></div><div></div></div><div>"+HTML+"</div></div>";
	Div.innerHTML=str;
	Div.childNodes[0].childNodes[0].childNodes[1].onclick=function(){me.DivClass.Clear()};
	Div.appendHTML=function(htmlText){
		Div.childNodes[0].childNodes[1].innerHTML=htmlText;	
	}
	Div.workDom=Div.childNodes[0].childNodes[1];
	Div.menuBar=Div.childNodes[0].childNodes[0];
	Div.closeButton=Div.childNodes[0].childNodes[0].childNodes[1];
	util.setDivCanDrag(Div);
	return Div;
}

DivClass.CreateFollowPopDiv=function(title,HTML){
    var Div=DivClass.CreateDiv();
	win.document.body.appendChild(Div);
	Object.extend(Div,{style:{width:"250px",border:"1px solid #cccccc",padding:0,margin:0,left:Event.pointerX(window.event||window.Event)+"px",top:Event.pointerY(window.event||window.Event)+"px",position:"absolute",zIndex:999,background:"#FFF",display:"block"}},1);
	//var str="<div style=\"background:#dddddd;padding:0;margin:0;width:100%;\">";
	//str+=		"<div style=\"padding:2px;height:15px;width:100%; border-bottom:1px solid #FF8B00\">";
	//str+=			"<div style=\"float:left;color:#FF8B00;padding:2px;font-weight:bold;font-size:12px;width:auto\">"+title+"</div>";
	//str+=			"<div style=\"float:right;width:auto;color:#AAAAAA;padding:2px;border:1px solid #AAAAAA;font-weight:bold;cursor:pointer\" onmouseover=\"this.style.borderColor=this.style.color='#990099'\" onmouseout=\"this.style.borderColor=this.style.color='#AAAAAA'\">╳</div>";
	//str+=		"</div>";
	//str+=		"<div style=\"top:20px;width:100%; text-align:center;background:#252119;color:#cccccc\">"+HTML+"</div>";
	//str+=	"</div>";
	var str="<table  style=\"background:#dddddd;padding:0;margin:0;width:100%;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
	str+="<tr>";
	str+="<td><table  style=\"height:15px;width:100%; border-bottom:1px solid #FF8B00\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
	str+="<tr>";
	str+=" <td  style=\"float:left;color:#FF8B00;padding:2px;font-weight:bold;font-size:12px;width:auto\">"+title+"</td>";
	str+="<td style=\"float:right;width:15px;color:#AAAAAA;padding:2px 0 0 2px;border:1px solid #AAAAAA;font-weight:bold;cursor:pointer\" onmouseover=\"this.style.borderColor=this.style.color='#990099'\" onmouseout=\"this.style.borderColor=this.style.color='#AAAAAA'\" onclick='me.DivClass.Clear()'>╳</td>";
	str+="</tr>";
	str+="</table></td>";
	str+="</tr>";
	str+="<tr>";
    str+="<td bgcolor='#252119'>"+HTML+"</td>";
    str+="</tr>";
    str+="</table>";
	
	Div.innerHTML=str;
	//alert(Div.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].innerHTML)
	//Div.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[1].onclick=function(){me.DivClass.Clear()};
	Div.appendHTML=function(htmlText){
		Div.childNodes[0].childNodes[0].childNodes[1].childNodes[0].innerHTML=htmlText;	
	}
	//Div.onresize=function(){Div.childNodes[0].childNodes[0].style.width=Element.getDimensions(Div).width-10}
	Div.workDom=Div.childNodes[0].childNodes[0].childNodes[1].childNodes[0];
	Div.menuBar=Div.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0];
	Div.closeButton=Div.childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[1];
	util.setDivCanDrag(Div);
	
	return Div;
}

DivClass.CreateMovePopDiv=function(GUID,HTML){   
    if(!$(GUID)){
    var Div=DivClass.CreateDiv();
    Object.extend(Div,{id:GUID,style:{width:"10px",border:"1px solid #cccccc",padding:0,margin:0,position:"absolute",zIndex:999,background:"#252119",display:"block"}},1);	
	win.document.body.appendChild(Div);	
	Div.innerHTML=HTML;	
	}else{
	    var Div=$(GUID);
	}
	    Object.extend(Div,{style:{left:(Event.pointerX(window.event||window.Event)+5)+"px",top:(Event.pointerY(window.event||window.Event)+5)+"px"}},1);
	
	return Div;
}

DivClass.CreateMenuPopDiv=function(MenuDom,HTML){
    var Div=DivClass.CreateDiv();
	win.document.body.appendChild(Div);
	    Object.extend(Div,{style:{width:"auto",height:"auto",left:(Position.cumulativeOffset(MenuDom)[0]+4)+"px",top:(Position.cumulativeOffset(MenuDom)[1]+MenuDom.offsetHeight-3)+"px",position:"absolute",background:"transition",display:"block",wordBreak :"keep-all",wordWrap:"normal"}},1);
	    var str="<table  style=\"padding:0;margin:0;width:auto;\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
	    str+="<tr>";
        str+="<td><div  style='height:0; line-height:0; font-size:0;width:100px;padding:0;margin:0;border:0'></div>"+HTML+"</td>";
        str+="</tr>";
        str+="</table>";
	
	Div.innerHTML=str;
	return Div;
}