/*
 *All Right Reserved. Copyright(c) TOSHIBA.
 *
 * Modify
 * Ver1.00     2003.09.26    new
 * Ver1.01     2003.10.16    dynamicLoad call timing change
 */
 
/*
 * Load code file
 * param codefile name
 * Author Liyajun
 * Ver 1.0        
 */ 
 

function dynamicLoad(jsFileName){ 

  //--for cache 
  var now = new Date();
  var getData = jsFileName+'?nc='+now.getTime();

  if( document.all ){ 

     if( navigator.userAgent.indexOf("Win")!=-1 ){

       //--for document.all && Win
       eval(document.all('dynld')).src = getData;

     } else if( navigator.userAgent.indexOf("Mac")!=-1 ){

       //--for document.all && Mac
       document.body.insertAdjacentHTML('BeforeEnd'
        ,'<scr'+'ipt src="'+getData+'"><scr'+'ipt/>');

     }

  } else if(document.getElementById){

    //--for w3c-dom  widthout document.all 
    var cnode =document.getElementById('dynld');
    var nnode = document.createElement('script');
    nnode.src = getData;
    nnode.id  = 'dynld';
    cnode.parentNode.replaceChild(nnode,cnode);

  } else {

    //--for nondhtml(n4...)
    if(document.images){
      var datasrc   = new Image();
      datasrc.src   = getData;
      location.href = datasrc.src;
    }

  }
}
document.write('<scr'+'ipt id="dynld"></scr'+'ipt>');

/*======================================================
Usage
displayCode(formElementObject, event, codeID);
=======================================================*/
var codestr="";
var namestr="";
var catestr="";
var codeLength=10;
var nameLength=20;
var shiborikomiketa=2;
var code_name="";
var cd = "";
var nm = "";
var cat = "";
var curCat="";
var curLevel=1;            // current level
var queryFlag=false;       // query code by input code or shiborikomi code
var tagArray = new Array();// last level's shiborikomi code
var originalCode="";

// display code window
function displayCode(oj, e, codeID, end_func, timerCounter, mouseX, mouseY) {
  this.oj = oj;
  this.e = e;
  this.codeID = codeID;
  this.end_func = end_func;
  if(arguments.length < 5){
    timerCounter=0;
    this.mouseX = getMouseX(e);
    this.mouseY = getMouseY(e);
    originalCode = "";
    originalCode = oj.value;
  } else {
    this.mouseX = mouseX;
    this.mouseY = mouseY;
  }
  if(codeID != null && timerCounter%5 == 0){
    dynamicLoad('JS/'+codeID+'.js');
  }
  // wait for code load
  if(code_name.length != 0) {
    window.status = "";
    displayCodeSub(oj, this.mouseX, this.mouseY, end_func);
    return;
  }
  this.timerCounter = eval(timerCounter+1);
  if(timerCounter > 15) {
    window.status = "code not found "+this.codeID;
    return;
  }
  setTimeout('displayCode(oj, null, codeID, end_func, timerCounter, this.mouseX, this.mouseY)', 500);
}

function displayCodeSub(oj, mouseX, mouseY, end_func) {

  cd = codestr.split("|");
  nm = namestr.split("|");
  cat = catestr.split("|");
  titlestr = code_name;
  codestr = "";
  namestr = "";
  catestr = "";
  code_name = "";
  this.oj = oj;
  this.mouseX = mouseX;
  this.end_func = end_func;
  queryFlag = false;
  // for long codeName adjust
  if(nameLength>32) nameLength=32;
	var dd='';
	dd+='<style TYPE="text/css">.ddfont {font-size:12px;font-family:monospace}</style>';
	dd+='<table border=1 cellspacing=0 cellpadding=0 bgcolor="#e8e8e8" class="ddfont">\n';
	if(shiborikomiketa != 0) {
		dd+='<tr bgcolor="#e8e8e8"><td>\n';
		dd+='<input type=button value="Before" class="ddfont"';
		dd+=' onclick = "frontLevel(document.dragCode_form.code,document.dragCode_form.name,document.dragCode_form.codes)">';
		dd+='<input type=button value=" Next "  class="ddfont"';
		dd+=' onclick = "nextLevel(document.dragCode_form.code,document.dragCode_form.name,document.dragCode_form.codes)">\n';
		dd+='<span id="levelDisp"  class="ddfont" style="position:relative;margin-top:0px;"></span>\n';
		dd+='</td></tr>\n';
	}
	dd+='<tr bgcolor="#e8e8e8"><td nowrap>\n';
	dd+='<input type=text name="code" value="" size=' + codeLength + ' onkeyup="txtKeyChange(document.dragCode_form.code,document.dragCode_form.name,document.dragCode_form.codes);"\n';
	dd+=' class="ddfont">\n';
	dd+='<input type=text name="name" value="" size=' + (nameLength+2) + '  onkeyup="nameKeyChange(document.dragCode_form.code,document.dragCode_form.name,document.dragCode_form.codes);"\n';
	dd+=' class="ddfont">&nbsp;&nbsp;<br>\n';
	dd+='<select name="codes" size=15 onChange="boxSelect(document.dragCode_form.code,document.dragCode_form.name,document.dragCode_form.codes,end_func);" ';
	dd+=' style="width:100%;font-size:12px;font-family:monospace" onDblClick="selectDbClick(document.dragCode_form.code,document.dragCode_form.name,document.dragCode_form.codes,oj,end_func);">\n';
	dd+='<option  class="ddfont">\n';
	dd+='</select>\n';
	dd+='<div align=right>\n';	
	dd+='<input type=button value="  OK  " onClick="okClick(document.dragCode_form.code,document.dragCode_form.name,document.dragCode_form.codes,oj,end_func);"';
	dd+=' class="ddfont"><br>\n';
	if(oj != null && oj.type == 'text' ) {		// add for parametric search 2004/02/02
		dd+='<input type=button value="Clear " onClick="clearItems(oj,end_func);"';
		dd+=' class="ddfont">\n';
	} else {
		dd+='&nbsp;&nbsp;&nbsp;';
	}
	dd+='<input type=button value="Cancel" onClick="onCancel(oj,end_func);"';
	dd+='  class="ddfont">\n';
	dd+='</div>\n';
	dd+='</td></tr></table>\n';

	wrtSubWindow(titlestr, dd, mouseX, mouseY);
	document.dragCode_form.code.value="";
	setSelect(document.dragCode_form.code,document.dragCode_form.name,document.dragCode_form.codes);
  }
function boxSelect(c,n,s,end_func) {
    c.value="";
    n.value="";
    if(trim(s.options[s.selectedIndex].value)!=""){
        c.value=s.options[s.selectedIndex].value;
        wstr = s.options[s.selectedIndex].text.split(" ");
        //T.Igarashi modify if blank in name case
        if(wstr.length > 1){
            for(i=1; i<wstr.length; i++){
                if(n.value.length!=0 && wstr[i].length!=0) n.value=n.value+' '+wstr[i];
                else n.value=n.value+wstr[i];
            }
        }
    }
    if(trim(c.value).length!=0){    // doesn't has code   
      setDatatoParent(oj,c.value,end_func);
    }
}
function codetextchange(c,n,s) {
  setSelect(c,n,s);
}
function blankAdd(str,len) {
  var i;
  retStr=str;
  if(retStr.length < len) {
    for(i=retStr.length; i<len;i++) retStr+=" ";
  }
  return retStr;
}

// code change,display ixtuti code
function txtKeyChange(c,n,s){
      var i;
      var j=0;
      var cLen;
      var cdLen;
      var sb = s.options;
      var slen;           
      queryFlag=true;       // mark select from query or change level 
      n.value="";
      if(s!=null){
       	   slen=s.length;                        
	       for(i=0;i<slen;i++){	                  
	            s.selectedIndex=0;	                   
	            s.options[s.selectedIndex]=null;	                   	                   
	       }	          
       }else{
	       return;
	   }	           	           
	   // clear levelDisp
	if(shiborikomiketa != 0) {
		outputLAYER("levelDisp","");
	}
      if(trim(c.value)!=""){
//    	  c.value = trim(c.value);
      	  cLen = c.value.length;
      	  cdLen =cd.length;
      	  // display leagal code and name in codes
      	  for(i=0;i<cdLen;i++){
      	     // clear list box
             if(cd[i].substring(0,cLen)==c.value){              	
                     sb[j] = new Option(blankAdd(cd[i],codeLength)+"  "+nm[i], cd[i]);
                     j++;
              }
              if(cd[i]==c.value){
              	  n.value = nm[i];
              }
      	             
      	  }
    // if empty then all display
   	} else {
   		cdLen = cd.length;
   		for(i=0;i<cdLen;i++){
   			if(trim(cd[i]) != ""){
				sb[j] = new Option(blankAdd(cd[i],codeLength)+"  "+nm[i], cd[i]);
				j++
			}
		}
	}
}

function nameKeyChange(c,n,s){
      var i;
      var j=0;
      var cLen;
      var cdLen;
      var sb = s.options;
      var slen;           
      queryFlag=true;       // mark select from query or change level 
      c.value="";
      if(s!=null){
       	   slen=s.length;                        
	       for(i=0;i<slen;i++){	                  
	            s.selectedIndex=0;	                   
	            s.options[s.selectedIndex]=null;	                   	                   
	       }	          
       }else{
	       return;
	   }
	   // clear levelDisp
	if(shiborikomiketa != 0) {
		outputLAYER("levelDisp","");
	}
      if(trim(n.value)!=""){
//      	  n.value = trim(n.value);
      	  cLen = n.value.length;
      	  cdLen =cd.length;
      	  // display leagal code and name in codes
      	  for(i=0;i<cdLen;i++){
      	     // clear list box
             if(nm[i].substring(0,cLen)==n.value){              	
                     sb[j] = new Option(blankAdd(cd[i],codeLength)+"  "+nm[i], cd[i]);
                      j++;
              }
              if(nm[i]==n.value){
              	  c.value = cd[i];
              }
      	             
      	  }
    // if empty then all display
   	} else {
   		cdLen = cd.length;
   		for(i=0;i<cdLen;i++){
   			if(trim(cd[i]) != ""){
				sb[j] = new Option(blankAdd(cd[i],codeLength)+"  "+nm[i], cd[i]);
				j++
			}
		}
	}
    
}

// get current level's codes
function getCode(level,s){
	var count;
	var catLen=cat.length;
	var slen;
	var curLen= shiborikomiketa*level;
	var index;
	var i;
    // clear codes
    if(s!=null){
       	   slen=s.length;                        
	       for(i=0;i<slen;i++){	                  
	            s.selectedIndex=0;	                   
	            s.options[s.selectedIndex]=null;	                   	                   
	       }	          
     }else{
	       return;
	 }	        

	for(i=0;i<catLen;i++){	   
	   tagArray[i]=0;         // initial tagArray
	      if (curLevel==1){   // the first level
		     if(cat[i].length == curLen){	// cate code length is equal	     	
		        tagArray[i]=1;		         
	         }	              
	      }else{           // not the first level      
	          if((cat[i].length == curLen)
	               &&(cat[i].substring(0,curLen-shiborikomiketa)==curCat)){	              	 
	           	   tagArray[i]=1;
	          }
	     }
	}
	
}

// trim space
function trim(TheString)
{
	var len;

	len = TheString.length;
 	while(TheString.substring(0,1) == " "){        //trim left space 
 		TheString = TheString.substring(1, len);
  		len = TheString.length;
	}

 	while(TheString.substring(len-1, len) == " "){ //trim right space
 		TheString = TheString.substring(0, len-1);
  		len = TheString.length;
 	}
 	return TheString;
}

// get current shiborikomiketa code
function getCurCat(s){
    var i;
	var curNm;
	var catArray = new Array();
	var catLen=cat.length;
	var index;
	index = 0;	
	//get current cat code and put them in catArray
	for(i=0;i<catLen;i++){
		if(tagArray[i]==1){
		    catArray[index++]=cat[i];
	    }	        
	}	
	// get selected code's shiborikomi code
	if(s!=null){
		if(s.selectedIndex==-1){
		    return catArray[0];
	    }
	    return catArray[s.selectedIndex];
	}
	return cat[0];
	
}

// display now level's codes
function disCurCode(c,n,s){
    var i=0;
    var j=0;
    var sb = s.options;
    var subNm; 
    var catLen= cat.length; 
    var disp;   
    // add current code to listbox
    for(i = 0;i<catLen;i++){
        if(tagArray[i]==1){
       	    sb[j] = new Option(blankAdd(cd[i],codeLength)+"  "+nm[i], cd[i]);
       	    j++;
       	    disp = levDisp(curCat);
       	    // add current level discription levelDisp
       	}else
       	   if(tagArray[i]==2){
       	       sb[j] = new Option(blankAdd(cd[i],codeLength)+"  "+nm[i], cd[i]);
       	       j++; 
       	       disp = levDisp(curCat);
   	   }       	
    }
	if(shiborikomiketa != 0) {
		outputLAYER("levelDisp",disp);
	}
	return;
}

// get level discription
function levDisp(curCat){
    var disp="";
    var i;
    var j;
    var k;
    var levArray = new Array();
    var index;
    var catLen   = cat.length;    // cate' length
    var curLen   = curCat.length; // current cate code's length
    levArray[0]= "";
    index = 0;
    // make the level desption
    if(curLevel>1)
    {
        for(i=0;i<curLen;i=i+shiborikomiketa){
         	levArray[index]=curCat.substring(0,i+shiborikomiketa);
            for(j=0;j<catLen;j++){                	  
               if(cat[j]==levArray[index]){ 
                   if(disp==""){
                       disp = nm[j];
                   }else{
//                         disp = disp+">"+nm[j];
                       disp = nm[j];
                   }
               }                  
            }            
               index++;               
        }
     }        
	return disp;
}	
function setSelect(c,n,s) {
     curLevel=1;
     c.value="";
     n.value="";
     getCode(curLevel,s);
     disp = disCurCode(c,n,s);
 }
 
 // check whether the nextButton is effective or not
function IsEffecNextButton(s){
   	var count=0;
	var catLen=cat.length;
	var curLen= shiborikomiketa*(curLevel);	
		
	var i;
        if(shiborikomiketa == 0) return false;
	curCat = getCurCat(s);
	// get next level's code count
	for(i=0;i<catLen;i++){
		if((cat[i].length == curLen)
		   &&(cat[i].substring(0,curLen-shiborikomiketa)==curCat)){
		       count++;
		}           
	}
	if( count ==0 ){		// doesn't has next level code
	       return false;
	}else{
	     return true;
	}
}

// display next level's code
function nextLevel(c,n,s){  
    if(queryFlag){    // query code by input code in [code,name]
      	curLevel = 1;
       	setSelect(c,n,s);
       	queryFlag=false;
       	return -1;
       	
    }
    curLevel = curLevel+1;
    curCat = getCurCat(s);
              
    if(IsEffecNextButton(s)){      // has next level code 
        c.value="";
        n.value=""; 
        getCode(curLevel,s);      
        disCurCode(c,n,s);
       
    }else{     // when doesn't have next level,level's value doesn't change
        curLevel= curLevel-1;
        return -1;
    }
    return 0;
}

// get front level's code 
function getFrontCode(c,n,s){
    var i;
    var catLen=cat.length;
    // get last time's shiborikomi code
    curCat=getCurCat(s).substring(0,getCurCat(s).length-2*shiborikomiketa);
 
    for(i=0;i<catLen;i++){
        if((cat[i].substring(0,curCat.length)==curCat)
            &&(cat[i].length==curCat.length+shiborikomiketa))
        {
        	getCode(curLevel,s);
        }
    }
    
}
// get front level code and display them
function frontLevel(c,n,s){
    var slen;

    if(queryFlag){          // query code by input not by select level                
        curLevel = 1;
        setSelect(c,n,s);   // display the first level code
       	queryFlag=false;
       	return;       	
    }
    if(curLevel==1){  
        return;
    }
      // clear list box        
    if(s!=null){
       slen=s.length;                        
	   for(i=0;i<slen;i++){	                  
	       s.selectedIndex=0;	                   
	       s.options[s.selectedIndex]=null;	                   	                   
	    }	          
    }else{
	    return;
	}	           
	if(curLevel>1){
	    if (curLevel>2){            // has front level
	       c.value="";              // clear code box
	       n.value="";              // clear code name box
	       curLevel = curLevel-1;	// change current level 
	       getFrontCode(c,n,s);     // get front level's code
	       disCurCode(c,n,s);       // display front code
	       return;	
        }
        // when it is the second level,just display the first level's code
        curLevel = curLevel-1;             
        setSelect(c,n,s)
	}
}

 // double click codes display currect code or return 
 function selectDbClick(c,n,s,oj,end_func){
	var cb = c;
	var nb = n;
	if(queryFlag) {
		if(s.selectedIndex==-1){
			s.selectedIndex=0;
		}
		boxSelect(cb,nb,s,end_func);  // write code to [code],write code name to [name]
		okClick(cb,nb,s,oj,end_func);
		return;
	}
	if(s!=null){
		if(s.length>0){
			if(s.selectedIndex==-1){
				s.selectedIndex=0;
			}
			// has shiborikomi code,but has no code
			if(nextLevel(c,n,s) == -1){
				boxSelect(cb,nb,s,end_func);  // write code to [code],write code name to [name]
				okClick(cb,nb,s,oj,end_func);
			}   	   	  
		}
	}
	return;   
 }
 // get code name from code
 function getCodeName(code) {
   cdLen =cd.length;
   wCd = trim(code);
   for(i=0;i<cdLen;i++){
     if(wCd == trim(cd[i])) {
       return trim(nm[i]);
     }
   }
   return "";
 }
 // is code exist?
 function isCodeExist(code) {
   cdLen =cd.length;
   wCd = trim(code);
   for(i=0;i<cdLen;i++){
     if(wCd == trim(cd[i])) {
       return true;
     }
   }
   return false;
 }
 
 // when click ok button,return parent window
 function okClick(c,n,s,oj,end_func){
     if(trim(c.value).length!=0 && isCodeExist(c.value)){    // doesn't has code   
        setDatatoParent(oj, c.value, end_func);
        clearSubWindow(oj);
    }    
 }
 // when click clear button,return parent window
 function clearItems(oj,end_func){
	setDatatoParent(oj,"",end_func);
	clearSubWindow(oj);
 }

  // when click cancel button, data back to parent window
  function onCancel(oj,end_func){
    setDatatoParent(oj, trim(originalCode),end_func);
    clearSubWindow(oj);
  }

  function setDatatoParent(oj,data,end_func) {
     //for indexed elements
     idx = getElementIndex(oj);
     
     if(data=="") {
       oj.value="";
       if(idx == null)
           outputLAYER(oj.name+"_CODENAME","");
       else
           outputLAYER(oj.name+"_CODENAME["+idx+"]","");
     } else {
       oj.value=data;
       if(idx == null)
           outputLAYER(oj.name+"_CODENAME",getCodeName(data));
       else
           outputLAYER(oj.name+"_CODENAME["+idx+"]",getCodeName(data));
     }
     if(end_func != null) {
         end_func();
     }
  }
  // get form element index(for indexed elements)
  function getElementIndex(obj){
    if(obj.name==undefined) return null;
    elm = document.forms[obj.form.name].elements[obj.name];
    idx = elm.length;
    for(i=0;i<idx;i++) {
      if(obj == elm[i]) {
        return i;
      }
    }
    return null;
  }

/***************************************************************************
	Display and Control SubWindow Subroutins
	Designed & Corded by T.Igarashi
****************************************************************************/
//Layer Create
subWindow.prototype.moveLAYOJ   = moveLAYOJ;
subWindow.prototype.outputLAYOJ = outputLAYOJ;
subWindow.prototype.zindexLAYOJ = zindexLAYOJ;
subWindow.prototype.showLAYER = showLAYER;
subWindow.prototype.hideLAYER = hideLAYER;
var offsetX;
var offsetY;
var clickElement;
var clickElementObj;

subWindow['dragCode']=new subWindow('dragCode',-100,-100,'');

function subWindow(layName,x,y){
	this.id = layName;
	this.x = x;
	this.y = y;
	this.div='<div id="'+layName+'" class="subWindows"\n'
			+ 'style="position:absolute;left:'+x+'px;top:'+y+'px">\n'
			+ '</div>\n';
	document.write(this.div);
	return;
}
function wrtSubWindow(titlestr, htmlstr, x, y, cancelFunction){
	e = null;
	subWindow['dragCode'].hideLAYER('dragCode');
	subWindow['dragCode'].outputLAYOJ(getLayOj('dragCode'),'');
	thtmlstr =  '';
	// title header(drag parts) write
	thtmlstr += '<form name="'+'dragCode'+'_form">';
	thtmlstr += '<table border=2 cellpadding=0 cellspacing=1 bgcolor="#e8e8e8" style="font-size:12px;font-family:monospace">\n';
	thtmlstr += '<tr height=20 bgcolor="#004477" id="dragTitle" style="cursor:pointer">';
	thtmlstr += '<td width="100%" style="font-size:12px;font-family:monospace">';
	thtmlstr += '<font color="white"><b>&nbsp;'+titlestr+'</b></font>';
	thtmlstr += '</tr></td>';
	thtmlstr += '<tr><td>';
	thtmlstr += htmlstr;
	thtmlstr += '</td></tr></table>'
	thtmlstr += '</form>'
	subWindow['dragCode'].outputLAYOJ(getLayOj('dragCode'),thtmlstr);

    // code window's display position calculate
	var left = x;
	var top = y;
	var frmWidth   = getWIDTH("dragCode");					// form's width
    var frmHeight  = getHEIGHT("dragCode");				// form's height
    var winWidth   = document.body.clientWidth;			// current window's width                            
    var winHeight  = document.body.clientHeight;		// current window's height
    var offsetMX   = x - document.body.scrollLeft;		// mouse's offset X
    var offsetMY   = y - document.body.scrollTop;		// mouse's offset Y 
    var absoluteMX = x;									// mouse's absolute X
    var absoluteMY = y;									// mouse's absolute Y
    
    
    //zhaozq add  2004.9.21
    //function: make sure the populate window laying above the pulldown object.    
    brw = navigator.appName.toUpperCase()
    if(brw.indexOf("EXPLORER")>=0){
	    var str;
	    str='<iframe name="fffff" src="javascript:false" style="position:absolute; visibility:inherit; top:0px; left:0px;width:' + frmWidth + '; height:'+ (frmHeight - 20) +'; z-index:-1;"></iframe>';
	    thtmlstr = str + thtmlstr;      
	    subWindow['dragCode'].outputLAYOJ(getLayOj('dragCode'),thtmlstr);
    }
    
 	// window over to right
 	if(winWidth-offsetMX<frmWidth) {
 		left=winWidth-frmWidth;
 		if(left<0) left=0;
 	}
 	// window over to height
 	if(winHeight-offsetMY<frmHeight) {
 		top=winHeight-frmHeight;
 		if(top<0) top=0;
 	}

//	if(document.layers){ var left = 300 ; var top  = 100 }//n4
	if(x != null && y != null) {
		subWindow['dragCode'].moveLAYOJ(getStyleOj('dragCode'),left,top);
	}
	subWindow['dragCode'].zindexLAYOJ(getStyleOj('dragCode'),1000);
	subWindow['dragCode'].showLAYER('dragCode');
	set_event_('dragTitle',cancelFunction);
}
function clearSubWindow(targetForm){
	stop_event_('dragTitle');
	subWindow['dragCode'].hideLAYER('dragCode');
	subWindow['dragCode'].outputLAYOJ(getLayOj('dragCode'),'');
	subWindow['dragCode'].moveLAYOJ(getStyleOj('dragCode'),-100,-100);
	if(targetForm != null && targetForm.type == 'text') {
		targetForm.focus();
		targetForm.select();
	}
}

//Layer control subroutines

// output word to html
function outputLAYER(layName,html){
  if(document.getElementById){       //N6,Moz,IE5,IE6
    document.getElementById(layName).innerHTML=html
  } else if(document.all){                      //IE4
    document.all(layName).innerHTML=html
  } else if(document.layers) {                  //NN4
    with(document.layers[layName].document){
      open()
      write(html)
      close()
    }
  }
}
function moveLAYOJ(oj,x,y){
	if(document.getElementById){  //e5,e6,n6,m1,o6
		oj.left = x;
		oj.top  = y;
	} else if(document.all){      //e4
		oj.pixelLeft = x;
		oj.pixelTop  = y;
	} else if(document.layers){    //n4
		oj.moveTo(x,y);
	}
}
function outputLAYOJ(oj,html){
	if(document.getElementById) {
		oj.innerHTML=html;	//n6,m1,e5,e6
	} else if(document.all) {
		oj.innerHTML=html;	//e4
	} else if(document.layers) {	//n4
		with(oj.document){
			open();
			write(html);
			close();
		}
	}
}

function zindexLAYOJ(oj,zindex){
	if(document.getElementById) {
		oj.zIndex=zindex;	//n6,m1,e5,e6,o6
	} else if(document.all) {
		oj.zIndex=zindex;	//e4
	} else if(document.layers) {
		oj.zIndex=zindex;	//n4
	}
}

function getLayOj(layName){  
	if(document.getElementById) {
		return document.getElementById(layName);	//e5,e6,n6,m1,o6
	} else if(document.all) {
		return document.all(layName);			//e4
	} else if(document.layers)     {
		return document.layers[layName];		//n4
	}
}
function getStyleOj(clickElement){  
	return (!!document.layers)?getLayOj(clickElement):getLayOj(clickElement).style
}

function getMouseX(e){
	if(window.opera)		//o6
		return e.clientX;
	else if(document.all)		//e4,e5,e6
		return document.body.scrollLeft+event.clientX;
	else if(document.layers||document.getElementById)
		return e.pageX		//n4,n6,m1
}
function getMouseY(e){
	if(window.opera)		//o6
		return e.clientY;
	else if(document.all)		//e4,e5,e6
		return document.body.scrollTop+event.clientY;
	else if(document.layers||document.getElementById)
		return e.pageY;		//n4,n6,m1
}

function getLEFT(layName){
	if(document.all)			//e4,e5,e6,o6
		return document.all(layName).style.pixelLeft;
	else if(document.getElementById)	//n6,m1
		return (document.getElementById(layName).style.left!="")
			?parseInt(document.getElementById(layName).style.left):"";
	else if(document.layers)		//n4
		return document.layers[layName].left;
}


function getTOP(layName){
	if(document.all)			//e4,e5,e6,o6
		return document.all(layName).style.pixelTop;
	else if(document.getElementById) {	//n6,m1
		return (document.getElementById(layName).style.top!="")
			?parseInt(document.getElementById(layName).style.top):"";
		return;
	}else if(document.layers)		//n4
		return document.layers[layName].top;
}

function getWIDTH(layName){
	if(document.all)			//e4,e5,e6,o6
		return document.all(layName).offsetWidth;
	else if(document.getElementById) {	//n6,m1
		return (document.getElementById(layName).style.clip.width!="")
			?parseInt(document.getElementById(layName).style.clip.width):"";
//		return "";
	}else if(document.layers)		//n4
		return document.layers[layName].width;
}

function getHEIGHT(layName){
	if(document.all)			//e4,e5,e6,o6
		return document.all(layName).offsetHeight;
	else if(document.getElementById) {	//n6,m1
		return (document.getElementById(layName).style.height!="")
			?parseInt(document.getElementById(layName).offsetHeight):"";
//		return "";
	} else if(document.layers)		//n4
		return document.layers[layName].height;
}

function showLAYER(idName){ 

  if ( document.getElementById )
              document.getElementById( idName ).style.visibility   = 'visible' 
  else if ( document.all ) document.all( idName ).style.visibility = 'visible' 
  else if ( document.layers ) document.layers[ idName ].visibility = 'show' 

}

function hideLAYER(idName){ 

  if ( document.getElementById )
              document.getElementById( idName ).style.visibility   = 'hidden' 
  else if ( document.all ) document.all( idName ).style.visibility = 'hidden' 
  else if ( document.layers ) document.layers[ idName ].visibility = 'hide' 

}

  function subWindow_mdown(e) {
    clickElement = 'dragCode';
    clickElementObj = getStyleOj(clickElement)
    if (clickElementObj){
        offsetX = getMouseX(e) - getLEFT(clickElement)
        offsetY = getMouseY(e) - getTOP(clickElement)
       if(document.layers){
        offsetX = getMouseX(e)+10 ; offsetY = getMouseY(e)+10
       }
    }
//    return false
  }
  var mmove_mabiki;
  function subWindow_mmove(e) {
    if(!clickElementObj)
      return;
    // for IE redraw
    if(mmove_mabiki < 5) {
       mmove_mabiki++;
    } else {
      mmove_mabiki=0;
      movetoX = getMouseX(e) - offsetX
      movetoY = getMouseY(e) - offsetY
      subWindow[clickElement].moveLAYOJ(clickElementObj,movetoX,movetoY)
    }
    return false;
  }
  var zcount = 0
  function subWindow_mup(e) {
    if(!clickElementObj)
      return;
    subWindow[clickElement].zindexLAYOJ(clickElementObj,10000);
    movetoX = getMouseX(e) - offsetX
    movetoY = getMouseY(e) - offsetY
    subWindow[clickElement].moveLAYOJ(clickElementObj,movetoX,movetoY)
    clickElement=null;
    clickElementObj=null;
    return false;
  }
  function subWindow_kpress(e) {
    if(document.all) {
    	kcode = event.keyCode;
    }else{
    	kcode = e.keyCode;
    }
    if(kcode == 27) {
      clearSubWindow(null);
      return false;
    }
  }

  function set_event_(objname,cancelFunction){
	var obj = getLayOj(objname);
	if (document.layers) {
		captureEvents(Event.MOUSEDOWN);
	}
	obj.onmousedown = subWindow_mdown;
	if(document.layers){                          //n4
		document.captureEvents(Event.MOUSEMOVE)
		document.captureEvents(Event.MOUSEUP)
	}
	document.onmousemove = subWindow_mmove   //n4,m1,n6,e4,e5,e6,o6
	document.onmouseup   = subWindow_mup     //n4,m1,n6,e4,e5,e6,o6
	if(cancelFunction == null) {
		document.onkeypress = subWindow_kpress;
	} else {
		document.onkeypress = cancelFunction;
	}
  }

  function stop_event_(objname){
	var obj = getLayOj(objname);
    document.onmousemove = null                   //n4,m1,n6,e4,e5,e6,o6
    document.onmouseup   = null                   //n4,m1,n6,e4,e5,e6,o6
	document.onkeypress  = null
    obj.onmousedown = null
    if(document.layers){                          //n4
      document.releaseEvents(Event.MOUSEDOWN)
      document.releaseEvents(Event.MOUSEMOVE)
      document.releaseEvents(Event.MOUSEUP)
    }
  }

/**
	scroll area keep
*/
var scrollareaID = "";
function scrollareaSet(ID) {
	scrollareaID = ID;
	scrollareaEvent();
	window.onresize = scrollareaEvent;	
}
function scrollareaEvent() {
	if(document.all)			//e4,e5,e6,o6
		layOj=document.all(scrollareaID);
	else if(document.getElementById)	//n6,m1
		layOj=document.getElementById(scrollareaID);
	else if(document.layers)		//n4
		layOj=document.layers[scrollareaID];	
	//check whether Div element is existent
	if(layOj== null){
		return;
	}
	yy=layOj.offsetTop;
	ch=document.body.clientHeight;
	th=parseInt(ch-yy-50);

	if( th > 100 ) {
		layOj.style.height = th;
	} else {
		layOj.style.height = 100;
	}
}


