var dialog=new Object;
dialog.version="1.1.0";
dialog.isIE=((document.all!=null) && (window.opera==null)) ? true : false;
dialog.ie=null;
if(document.getElementById==null){
  if(document.all!=null){
    dialog.ie=function(id){return document.all[id];};
  }else{
    dialog.ie=function(id){return null;};
  }
}else{
  dialog.ie=function(id){return document.getElementById(id);};
}
dialog.body=(document.compatMode=='CSS1Compat') ? document.documentElement : document.body;
dialog.id="";
dialog.isOpen=false;
dialog.isMouseMove=false;
dialog.x=0;
dialog.y=0;
dialog.clientX=0;
dialog.clientY=0;
dialog.width=300;
dialog.height=200;
dialog.message="";
dialog.scrollable=false;
dialog.movable=true;
dialog.resizable=true;
dialog.title=new Object;
dialog.title.id="";
dialog.title.name="";
dialog.document=new Object;
dialog.document.id="";
dialog.document.path="";
dialog.document.srcDefault="";
dialog.document.source="";
dialog.document.sourceID=null;
dialog.document.valueID=null;
dialog.document.textID=null;
dialog.shadow=new Object;
dialog.shadow.x=5;
dialog.shadow.y=5;

dialog.open=function(){
  var v=null;
  var e=null;
  if(arguments.length>0){
    if(!(typeof(arguments[0])=='object')){
      e=arguments[0].toString();
    }else{
      v=arguments[0].toString();
      if(arguments.length>1){e=arguments[1];}
    }
  }
  if(v==null){v=dialog.id;}
  else{if(v.length<=0){v=dialog.id;};}
  if(v.length>0){
    if(dialog.ie(v)!=null){
      if(e==null){e=window.event;}
      if(!(typeof(e)=='object')){e=window.event;}
      if(!dialog.isOpen){
        var domclientWidth=document.documentElement && parseInt(document.documentElement.clientWidth) || 100000;
        dialog.id=v;
        dialog.isOpen=true;
        dialog.ie(v).style.display='inline';
        dialog.ie(v).style.width=dialog.width+'px';
        if(dialog.document.id.length>0){
          if(dialog.ie(dialog.document.id)!=null){
            dialog.ie(dialog.document.id).src=dialog.document.path+dialog.document.source;
            dialog.ie(dialog.document.id).height=dialog.height+'px';
          }
        }
        dialog.x=((((dialog.isIE)?dialog.body.clientWidth:((/Safari/i.test(navigator.userAgent))?window.innerWidth:Math.min(domclientWidth, window.innerWidth-16)))-dialog.ie(v).offsetWidth))/2+((dialog.isIE)?dialog.body.scrollLeft:window.pageXOffset);
        dialog.y=((((dialog.isIE)?dialog.body.clientHeight:window.innerHeight)-dialog.ie(v).offsetHeight))/2+((dialog.isIE)?dialog.body.scrollTop:window.pageYOffset);
        if(dialog.x<0){dialog.x=0;}
        if(dialog.y<0){dialog.y=0;}
        dialog.ie(v).style.left=dialog.x+'px';
        dialog.ie(v).style.top=dialog.y+'px';
        dialog.ie(v).style.visibility='visible';
        if(dialog.ie(v+'__')!=null){
          dialog.ie(v+'__').style.display='inline';
          dialog.ie(v+'__').style.width=dialog.ie(v).offsetWidth+'px';
          dialog.ie(v+'__').style.height=dialog.ie(v).offsetHeight+'px';
          dialog.ie(v+'__').style.left=(dialog.x+dialog.shadow.x)+'px';
          dialog.ie(v+'__').style.top=(dialog.y+dialog.shadow.y)+'px';
          dialog.ie(v+'__').style.visibility='visible';
        }
        window.onresize=function(e){dialog.resize(e);};
        if(dialog.scrollable){window.onscroll=function(e){dialog.scrolling(e);};};
        if(dialog.title.id.length>0){
          if(dialog.ie(dialog.title.id)!=null){
            if(dialog.title.name.length>0){dialog.ie(dialog.title.id).innerHTML=dialog.title.name;};
            if(dialog.movable){
              dialog.ie(dialog.title.id).onmousedown=function(e){dialog.mousedown(e);};
              dialog.ie(dialog.title.id).onmouseup=function(e){dialog.mouseup(e);};
              dialog.ie(dialog.title.id).onmouseout=function(e){dialog.mouseup(e);};
            }
          }
        }
        if(dialog.ie(v+'_R')!=null){
          if(dialog.resizable){
            dialog.ie(v+'_R').onmousedown=function(e){dialog.mousedownSize(e);};
            dialog.ie(v+'_R').onmouseup=function(e){dialog.mouseup(e);};
          }
        }
        dialog.covered();
        dialog.onOpen();
      }
    }
  }
  return;
}

dialog.title.change = function(title){
	var el = dialog.ie(dialog.title.id);
	if(!el){ return; }
	dialog.title.name = title;
	el.innerHTML = dialog.title.name;
	return;
}

dialog.onOpen=function(){return;};
dialog.onClose=function(){return;};

dialog.close=function(){
  if((dialog.isOpen)&&(dialog.id.length>0)){
    if(dialog.ie(dialog.id)!=null){
      dialog.ie(dialog.id).style.visibility='hidden';
      dialog.ie(dialog.id).style.dispaly='none';
      dialog.ie(dialog.id).style.left='0px';
      dialog.ie(dialog.id).style.top='0px';
      if(dialog.ie(dialog.id+'__')!=null){
        dialog.ie(dialog.id+'__').style.visibility='hidden';
        dialog.ie(dialog.id+'__').style.dispaly='none';
        dialog.ie(dialog.id+'__').style.left='0px';
        dialog.ie(dialog.id+'__').style.top='0px';
      }
      dialog.isOpen=false;
      dialog.covered();
      dialog.mouseup();
      window.onresize=null;
      window.onscroll=null;
      if(dialog.title.id.length>0){
        if(dialog.ie(dialog.title.id)!=null){
          dialog.ie(dialog.title.id).onmousedown=null;
          dialog.ie(dialog.title.id).onmouseup=null;
        }
      }
      if(dialog.ie(dialog.id+'_R')!=null){
        dialog.ie(dialog.id+'_R').onmousedown=null;
        dialog.ie(dialog.id+'_R').onmouseup=null;
      }
      if(dialog.document.id.length>0){
        if(dialog.ie(dialog.document.id)!=null){
          dialog.ie(dialog.document.id).src=dialog.document.path+dialog.document.srcDefault;
        }
      }
      dialog.id="";
      dialog.onClose();
    }
  }
  return;
}

dialog.resize=function(){
  var e=null;
  if(arguments.length>0){e=arguments[0];}
  if(e==null){e=window.event;}
  if(!(typeof(e)=='object')){e=window.event;}
  if((dialog.isOpen)&&(dialog.id.length>0)){
    if(dialog.ie(dialog.id)!=null){
      var domclientWidth=document.documentElement && parseInt(document.documentElement.clientWidth) || 100000;
      dialog.x=((((dialog.isIE)?dialog.body.clientWidth:((/Safari/i.test(navigator.userAgent))?window.innerWidth:Math.min(domclientWidth, window.innerWidth-16)))-dialog.ie(dialog.id).offsetWidth))/2+((dialog.isIE)?dialog.body.scrollLeft:window.pageXOffset);
      dialog.y=((((dialog.isIE)?dialog.body.clientHeight:window.innerHeight)-dialog.ie(dialog.id).offsetHeight))/2+((dialog.isIE)?dialog.body.scrollTop:window.pageYOffset);
      if(dialog.x<0){dialog.x=0;}
      if(dialog.y<0){dialog.y=0;}
      dialog.ie(dialog.id).style.left=dialog.x+'px';
      dialog.ie(dialog.id).style.top=dialog.y+'px';
      if(dialog.ie(dialog.id+'__')!=null){
        dialog.ie(dialog.id+'__').style.left=(dialog.x+dialog.shadow.x)+'px';
        dialog.ie(dialog.id+'__').style.top=(dialog.y+dialog.shadow.y)+'px';
      }
      dialog.covered();
      dialog.mouseup();
    }
  }
  return;
}

dialog.scrolling=function(){
  var e=null;
  if(arguments.length>0){e=arguments[0];}
  if(e==null){e=window.event;}
  if(!(typeof(e)=='object')){e=window.event;}
  if((dialog.isOpen)&&(dialog.id.length>0)){
    if(dialog.ie(dialog.id)!=null){
      dialog.y=((((dialog.isIE)?dialog.body.clientHeight:window.innerHeight)-dialog.ie(v).offsetHeight))/2+((dialog.isIE)?dialog.body.scrollTop:window.pageYOffset);
      if(dialog.y<0){dialog.y=0;};
      dialog.ie(dialog.id).style.top=dialog.y+'px';
      if(dialog.ie(dialog.id+'__')!=null){
        dialog.ie(dialog.id+'__').style.top=(dialog.y+dialog.shadow.y)+'px';
      }
      dialog.covered();
      dialog.mouseup();
    }
  }
  return;
}

dialog.mousedown=function(){
  var e=null;
  if(arguments.length>0){e=arguments[0];}
  if(e==null){e=window.event;}
  if(!(typeof(e)=='object')){e=window.event;}
  if(e!=null){
    dialog.clientX=e.clientX;
    dialog.clientY=e.clientY;
    dialog.isMouseMove=true;
    window.document.onmousemove=function(ev){dialog.mousemove(ev);};
    window.document.onmouseup=function(ev){dialog.mouseup(ev);};
  }
  return;
}

dialog.mousedownSize=function(){
  var e=null;
  if(arguments.length>0){e=arguments[0];}
  if(e==null){e=window.event;}
  if(!(typeof(e)=='object')){e=window.event;}
  if(e!=null){
    dialog.clientX=e.clientX;
    dialog.clientY=e.clientY;
    dialog.isMouseMove=true;
    window.document.onmousemove=function(ev){dialog.mousemoveSize(ev);};
    window.document.onmousemouseup=function(ev){dialog.mousemoveSize(ev);};
  }
  return;
}

dialog.mouseup=function(){
  window.document.onmousemove=null;
  window.document.onmouseup=null;
  dialog.isMouseMove=false;
  return;
}

dialog.mousemove=function(){
  var e=null;
  if(arguments.length>0){e=arguments[0];}
  if(e==null){e=window.event;}
  if(!(typeof(e)=='object')){e=window.event;}
  if((dialog.isOpen)&&(dialog.id.length>0)){
    if(dialog.ie(dialog.id)!=null){
      if(e!=null){
        dialog.x=dialog.x+(e.clientX-dialog.clientX);
        dialog.y=dialog.y+(e.clientY-dialog.clientY);
        dialog.clientX=e.clientX;
        dialog.clientY=e.clientY;
        if(dialog.x<0){dialog.x=0;}
        if(dialog.y<0){dialog.y=0;}
        dialog.ie(dialog.id).style.left=dialog.x+'px';
        dialog.ie(dialog.id).style.top=dialog.y+'px';
        if(dialog.ie(dialog.id+'__')!=null){
          dialog.ie(dialog.id+'__').style.left=(dialog.x+dialog.shadow.x)+'px';
          dialog.ie(dialog.id+'__').style.top=(dialog.y+dialog.shadow.y)+'px';
        }
        dialog.covered();
      }
    }
  }
  return;
}

dialog.mousemoveSize=function(){
  var e=null;
  if(arguments.length>0){e=arguments[0];}
  if(e==null){e=window.event;}
  if(!(typeof(e)=='object')){e=window.event;}
  if((dialog.isOpen)&&(dialog.id.length>0)){
    if(dialog.ie(dialog.id)!=null){
      if(e!=null){
        dialog.ie(dialog.id).style.width=dialog.ie(dialog.id).offsetWidth+(e.clientX-dialog.clientX)+'px';
        if(dialog.ie(dialog.document.id)!=null){
          dialog.ie(dialog.document.id).style.height=dialog.ie(dialog.document.id).offsetHeight+(e.clientY-dialog.clientY)+'px';
        }
        if(dialog.ie(dialog.id+'__')!=null){
          dialog.ie(dialog.id+'__').style.width=dialog.ie(dialog.id).offsetWidth+'px';
          dialog.ie(dialog.id+'__').style.height=dialog.ie(dialog.id).offsetHeight+'px';
        }
        dialog.clientX=e.clientX;
        dialog.clientY=e.clientY;
        dialog.covered();
      }
    }
  }
  return;
}

dialog.moveTo=function(){
  var e=null;
  if(arguments.length>0){e=arguments[0];}
  if(e==null){e=window.event;}
  if(!(typeof(e)=='object')){e=window.event;}
  if(e!=null){
    if(e.type.toLowerCase()=='mousedown'){
      dialog.mousedown(e);
      return;
    }
    if(e.type.toLowerCase()=='mouseup'){
      dialog.mouseup(e);
      return;
    }
    if(e.type.toLowerCase()=='mouseout'){
      dialog.mouseup(e);
      return;
    }
    if(e.type.toLowerCase()=='mousemove'){
      dialog.mousemove(e);
      return;
    }
  }
  return;
}

dialog.sizeTo=function(){
  var e=null;
  if(arguments.length>0){e=arguments[0];}
  if(e==null){e=window.event;}
  if(!(typeof(e)=='object')){e=window.event;}
  if(e!=null){
    if(e.type.toLowerCase()=='mousedown'){
      dialog.mousedownSize(e);
      return;
    }
    if(e.type.toLowerCase()=='mouseup'){
      dialog.mouseup(e);
      return;
    }
    if(e.type.toLowerCase()=='mouseout'){
      dialog.mouseup(e);
      return;
    }
    if(e.type.toLowerCase()=='mousemove'){
      dialog.mousemoveSize();
    }
  }
  return;
}

dialog.clear=function(){
  dialog.close();
  dialog.id="";
  dialog.isOpen=false;
  dialog.isMouseMove=false;
  dialog.x=0;
  dialog.y=0;
  dialog.clientX=0;
  dialog.clientY=0;
  dialog.width="300";
  dialog.height="200";
  dialog.message="";
  dialog.scrollable=false;
  dialog.movable=true;
  dialog.title.id="";
  dialog.title.name="";
  dialog.document.id="";
  dialog.document.source="";
  dialog.document.sourceID=null;
  dialog.document.valueID=null;
  dialog.document.textID=null;
  return;
}

dialog.alert=function(){
  if(arguments.length>0){if(arguments[0].length>0){alert(arguments[0]);};}
  else{if(dialog.message.length>0){alert(dialog.message);};}
  return;
}

dialog.covered=function(){
  if(dialog.ie(dialog.id)!=null){

	  function getVisibility(obj){
		  var value = obj.style.visibility;
		  if(!value){
			  if(document.defaultView && typeof(document.defaultView.getComputedStyle)=="function"){
          value=document.defaultView.getComputedStyle(obj, "").getPropertyValue("visibility");
        }else if(obj.currentStyle){
          value=obj.currentStyle.visibility;
        }else{
          value='';
        }
      }
      return value;
	  };
	  
	  getAbsolutePos=function(obj){
      var SL=0,ST=0;
      var is_div = /^div$/i.test(obj.tagName);
      if(is_div && obj.scrollLeft){
	      SL=obj.scrollLeft;
	    }
      if(is_div && obj.scrollTop){
	      ST=obj.scrollTop;
	    }
      var r={x:obj.offsetLeft - SL, y:obj.offsetTop - ST};
      if(obj.offsetParent){
	      var tmp = getAbsolutePos(obj.offsetParent);
	      r.x += tmp.x;
	      r.y += tmp.y;
      }
      return r;
	  };
	  
	  hasOwnerDialog=function(obj){
	    var el=obj.parentNode;
	    var r=false;
	    while(el!=null){
	      var p=el.parentNode;
	      if(el.id!=null){
	        if(el.id==dialog.id){ r=true; break; }
	        if(el.style.visibility!=null){
	          if(el.style.visibility=='hidden'){ r=true; break; }
	        }
	        if(el.style.dispaly!=null){
	          if(el.style.dispaly=='none'){ r=true; break; }
	        }
	      }
	      if(el.tagName.toUpperCase()=='BODY'){ break; }
	      el=p;
	    }
	    return r;
	  };

    var dd=getAbsolutePos(dialog.ie(dialog.id));
    var dx1=dd.x;
    var dx2=dialog.ie(dialog.id).offsetWidth+dx1;
    var dy1=dd.y;
    var dy2=dialog.ie(dialog.id).offsetHeight+dy1;
    if(dialog.ie(dialog.id).style.visibility=='hidden'){
      dx1=0;dx2=1;dy1=0;dy2=1;
    }
    var slct=document.getElementsByTagName("select");
    if(slct!=null){
      for(var i=0;i<slct.length;i++){
        var el=slct[i];
        if(!hasOwnerDialog(el)){
          var ee=getAbsolutePos(el);
          var ex1=ee.x;
          var ex2=el.offsetWidth+ex1;
          var ey1=ee.y;
          var ey2=el.offsetHeight+ey1;
          if((ex1>dx2) || (ex2<dx1) || (ey1>dy2) || (ey2<dy1)){
				    if(el.SavedVisibility==null){
					    el.SavedVisibility=getVisibility(el);
				    }
				    el.style.visibility=el.SavedVisibility;
          }else{
				    if(el.SavedVisibility==null){
					    el.SavedVisibility=getVisibility(el);
				    }
				    el.style.visibility='hidden';
          }
        }
      }
    }
  }
}

