// ??????cpath??????
var cpath = getCpath();


function processEnterToTab(){
	if(event.keyCode==13) 
		event.keyCode=9;
	//if(event.keyCode==13 && event.ctrlKey)
		//event.keyCode13;
		//alert("!!!!!!!!!");
}

function getSelectText(sel){
  if(sel.selectedIndex == -1)
   return "";
  return sel.options[sel.selectedIndex].text;
}

function getElementByName(form1,elename){
  var inputs = form1.elements;
  for(var i=0;i<inputs.length;i++){
      var ele = inputs[i];
	  if(ele.name == elename){
	     return ele;
	  }
  }
  return null;
}

function justNumber(){
	// alert(event.keyCode);
	// 13 -- enter 46 -- tab
    if (document.all){       
        if(!( ((event.keyCode >= 48) && (event.keyCode <= 57)) 
            || (event.keyCode == 13) || (event.keyCode == 46) 
            || (event.keyCode == 45))){
            event.keyCode = 0 ;
        }                          
    }
 }
// 没有‘－’
function justNumber1(){
	if (document.all){       
        if(!( ((event.keyCode >= 48) && (event.keyCode <= 57)) 
            || (event.keyCode == 13) || (event.keyCode == 46))){
            event.keyCode = 0 ;
        }                          
    }
}

// ??????? 1234567890
function justPureNumber(){
	// alert(event.keyCode);      
    if (document.all){       
        if(!(((event.keyCode >= 48) && (event.keyCode <= 57)) 
            || (event.keyCode == 13) 
            )){
            event.keyCode = 0 ;
        }                          
    }
 }
//////////////////////////////////////
//description:@see checkLength(ele,m,n)
//////////////////////////////////////
function getPos(obj)
{
   obj.focus();
   var workRange=document.selection.createRange();
   obj.select();
   var allRange=document.selection.createRange();
   workRange.setEndPoint("StartToStart",allRange);
   var len=workRange.text.length;
   workRange.collapse(false);
   workRange.select();

   return len;
}

/*
*?????????????????????????????????
*ele:?????????
*  m:???????????????
*  n:???????????????
*demo:<input name="test" type="text" onKeyPress="checkLength(this,5,2);">
*/
function checkLength(ele,m,n){
	var value = ele.value;
	var index = value.indexOf(".");
	var star = getPos(ele);
	if(index>0){
		if(event.keyCode==46){
			 event.keyCode=0;
		}
		var value1 = value.substring(0,index);
		var value2 = value.substring(index+1);
		if(star>index){
			if(value2.length>=n){
				event.keyCode = 0 ;
			}
		}
		else{
			if(value1.length>=m){
				event.keyCode = 0 ;
			}
		}
	}
	else{
		if(value.length>=m){
				if(event.keyCode!=46){
					event.keyCode = 0 ;
				}
		}
	}
}
/////////////////////////////////////////
////////////////////////////////////////
/*
	 ??????form????
	 @param  formObject ????form?????checked?checkbox??????
 	         toCheckElementName ??????checkbox???name
 	        
 	??? ?jsp??????????????
 	<input type="button" class="button01" value="<fmt:message key="delete"/>" onclick="submitBatchDeleteForm(batchDeletePartyForm,'code');"/>        
 */
function submitBatchDeleteForm(formObject,toCheckElementName) {
	
   
   if(countCheckboxChecked(formObject,toCheckElementName) <= 0) 
   	{	alert("????????????!");
   		return;
    } else {
  		if(confirm("???????")) {
		formObject.submit();
  		}
   }
   
}


/*
	 ????checked?checkbox???
	 @param  formObject ????form???checkbox????
 	         toCheckElementName ??checked?checkbox???name
 	        
 	??? countCheckboxChecked(form1,'code')        
 */
function countCheckboxChecked(formObject,toCheckElementName){
	
	var temp = 0;
	for(var i=0;i<formObject.elements[toCheckElementName].length;i++){
	      var checkEle = formObject.elements[toCheckElementName][i];
		  if(checkEle.checked) temp++; 
	}
	return temp;
}


/*
	 ???????checkbox
	 @param  clickMeElement ?????checkbox?????????????checkbox
 	         toCheckElementName ??checked?checkbox???name
 	        
 	????jsp???????? <input type="checkbox" onclick="selectall(this,'code');" />        
 */
function selectall(clickMeElement,toCheckElementName){

   var form1 = clickMeElement.form;
   //alert(form1.elements[toCheckElementName].length);
   if(form1.elements[toCheckElementName]==null) return;
   for(var i=0;i<form1.elements[toCheckElementName].length;i++){ 
	      var checkEle = form1.elements[toCheckElementName][i];
	      
		  if(checkEle.value != '' && !checkEle.disabled )
		  checkEle.checked = clickMeElement.checked;
	}
	
}
  
  
/* 
	???????
	@param elementId1,elementId2 ???????????
	
   <TABLE width="100%" border="0" align=center cellpadding="0" cellspacing="0">
   <tr>
    <td class="panelTitle" style="cursor:hand"  onclick="processPageFold('contactTypeTagPart','contactTypeTablePart');" >
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span id="contactTypeTagPart">+</span> <fmt:message key="contactType"/>
    </td>
   </tr>
	</TABLE>
	
	<table id="contactTypeTablePart" style="display:none" width="100%" align=center cellspacing="1" class="contentTable">
	......
	</table>

 */
 
function processPageFold(elementId1,elementId2) {
	var element1 = document.getElementById(elementId1);
	var element2 = document.getElementById(elementId2);
	if(element1.innerText=="+") {
		element2.style.display = "";
		element1.innerText=" -";
	} else {
		element2.style.display = "none";
		element1.innerText="+";
	}

}

function compute(string){
   	 str = string;
	 var temp;
	 arEle = new  Array();
	 arSym = new  Array();
	 var pos = hasSymbol(str);
	
	 while(pos!= -1){
		 temp= str.substr(0,pos);
		 
		 arEle[arEle.length] = trim(temp);
		 
		 arSym[arSym.length] = str.substr(pos,1) ;
		 str =  trim(str.substr(pos+1)); 
		 pos = hasSymbol(str);
	 }
	 
	 
	 arEle[arEle.length] = trim(str);
	 var str_temp = '';
	 for(i=0;i<arEle.length;i++){
	 	str_temp = str_temp + ","+ arEle[i];
	 }
   	
	 str_temp='';
	 for(i=0;i<arSym.length;i++){
	 	str_temp = str_temp + ","+ arSym[i];
	 }
	 //alert(str_temp);
	 var p1  = isNaN( document.getElementById(arEle[0]).value)==true?0:parseFloat(document.getElementById(arEle[0]).value) ;
	 if(isNaN(p1)){
	 	p1=0;
	 }
	 for(i=0;i<arSym.length;i++){
		p2 = isNaN( document.getElementById(arEle[i+1]).value)==true?0:parseFloat(document.getElementById(arEle[i+1]).value) ;
		if(isNaN(p2)){
	 	p2=0;
	 	}
		eval("p1 = p1" + arSym[i] + "p2" );
	 }
	 
	 return p1;
   } 
   
   function hasSymbol(str){
    var symbol = new  Array();
	symbol[0]="+";
 	symbol[1]="-";
 	symbol[2]="*";
 	symbol[3]="/";
 	
     var minPos=-1;
   		for(i=0;i<symbol.length;i++){
			pos = str.indexOf(symbol[i]);
			if (pos!=-1){
				if(minPos == -1){
					minPos= pos;
				}else if(pos<minPos){
				 	minPos = pos;
				}
			}
		}
		return minPos;
   }

 
  function trim(str){
   
    var string = str;
	var pos = string.indexOf(' ');
	
	if(string.length==null||string.length==0){
	    	return '';
	}
	
	
	while (pos==0){
	    if(string.length==1){
	    	return '';
	    }
		string = string.substr(1);
	    pos = string.indexOf(' ');
	}

	pos = string.lastIndexOf(' ');
	while(pos == string.length -1){
		string = string.substr(0,pos);
		pos = string.lastIndexOf(' ');
	}
	return string;
}
   
   
// ?????? &#039; --> '
function htmlEscape(str){
   return str.replace(/&#039;/g,"'");
}

// ????????????(???????)
function initDepotTag1(tag,selectBoxObj){
	var depotDom;
	if(tag=='0') { // ????????????????????
	 	depotDom = xml_loadXML(cpath+"/syorgnize/listDepotNodeByUser.do");
	 } else { // ?????????????????
	 	depotDom = xml_loadXML(cpath+"/syorgnize/listDepotNodeByUser.do?act=forNew");
	 }
   fillSelBox1(depotDom,selectBoxObj);
}

// ????????????(????????)
function initDepotTag2(tag,selectBoxObj,initCodeStr){
	var depotDom;
	if(tag=='0') {
	 	depotDom = xml_loadXML(cpath+"/syorgnize/listDepotNodeByUser.do");
	 } else { 
	 	depotDom = xml_loadXML(cpath+"/syorgnize/listDepotNodeByUser.do?act=forNew");
	 }
   fillSelBox2(depotDom,selectBoxObj,htmlEscape(initCodeStr));
}

//add https by liuguojun
function httpsInitDepotTag2(tag,selectBoxObj,initCodeStr){
	var urlStr;
	if(tag=='0'){
	 	urlStr=cpath+"/syorgnize/listDepotNodeByUser.do";
	}else{ 
	 	urlStr=cpath+"/syorgnize/listDepotNodeByUser.do?act=forNew";
	}
	var dom1 = new ActiveXObject("Microsoft.XMLDOM");
    dom1.onreadystatechange = function(){
    	if (dom1.readyState == 4) {
    		fillSelBox2(dom1,selectBoxObj,htmlEscape(initCodeStr));
    	} 
    };
    dom1.load(urlStr);
}

// ????? 'd1','d2','d3'  -->  d1:d2:d3
function stringTransfer(strInit){
	var arrayStr = strInit.split(",");
	var strResult ="";
	for(var i=0;i<arrayStr.length;i++) {
		strResult += arrayStr[i].slice(1,-1) + ":";
	}
	return strResult.slice(0, -1);
}
function floatTransfer(str){
   var arrayStr=str.split(",");
   var temp="";
   for (var i=0;i<arrayStr.length;i++){
        temp += arrayStr[i];
   }
   return temp;
}
// ???select?????????(????????)
function fillSelBox1(treeDom,selEle){

	var nodeList = treeDom.documentElement.childNodes;
	var opt;
	if (document.all)	{
		for (i=0; i<nodeList.length; i++)		{
			opt = selEle.document.createElement("OPTION");
			opt.text = nodeList[i].getAttribute("name");
			opt.value = nodeList[i].getAttribute("code");
			selEle.options.add(opt);
		}
	}
	/* else{
		for (i=0; i<nodeList.length; i++){
			Opt = new Option(nodeList[i].getAttribute("name"),nodeList[i].getAttribute("code"),false,false);
			ctrl.options[ctrl.options.length] = Opt;
		}
	} */
}

function fillSelBox2(treeDom,selEle,defOptCode){
	
	var nodeList = treeDom.documentElement.childNodes;
	var opt;
	if (document.all)	{
		var index;
		for (i=0; i<nodeList.length; i++)		{
			opt = selEle.document.createElement("OPTION");
			opt.text = nodeList[i].getAttribute("name");
			opt.value = nodeList[i].getAttribute("code");
			//alert(defOptCode);
			if(opt.value == defOptCode) 
			//opt.selected = true;
			index=i;
			selEle.options.add(opt);
		}
		if( selEle.options[index]!=null && ! (typeof selEle.options[index]=='undefined') )
		selEle.options[index].selected = true;
		
	}
	/* else{
		for (i=0; i<nodeList.length; i++){
			Opt = new Option(nodeList[i].getAttribute("name"),nodeList[i].getAttribute("code"),false,false);
			ctrl.options[ctrl.options.length] = Opt;
		}
	} */
}

function getSepAfter(str){
   var len = str.length;
   var delpos = str.indexOf(":");		
   return str.substring(delpos + 1, len);		
}

//====================================================================
 //from here go operate
  function issueCommand(form,codeInput,nameInput,param,twoParm){
    if (document.all){    
        //alert(event.keyCode)   ;        
        if (event.keyCode==40)                   
            getCodeNameList(form,getIEXy(form.elements[codeInput],1),getIEXy(form.elements[codeInput],0),codeInput,param,twoParm);                                                   
    }
 }
 
 function getIEXy(e,i){  
  var t=e.offsetTop-document.body.scrollTop;
  var l=e.offsetLeft-document.body.scrollLeft;
  while(e=e.offsetParent){
   t+=e.offsetTop;
   l+=e.offsetLeft;
  }
  if (i==0)
   return t+20;
  if (i==1)
   return l;
 }
 
function checkAndSubmit(form1){
  if( checkForm( form1 ) ){
      form1.submit();
  }
}

function msg_info(msg){
   alert(msg);
}
function msg_warn(msg){
   alert(msg);
}
function msg_error(msg){
   alert(msg);
}

 function getDefaultCurrency(form1,inputCode,inputName){
    var urlStr = cpath+"/common/getDefaultCurrency.do";  
    var dom1 = xml_loadXML(urlStr);     
    if (dom1==null) {      
       return;
    }             
    var rootNode = dom1.documentElement;
    form1.elements[inputCode].value=xml_childValue(rootNode,"code");
    form1.elements[inputName].value=xml_childValue(rootNode,"name");
 }
 
 
  function fillName(objectName,code,noCompanyId){   
    var urlStr = cpath+"/code2name/nameAction.do?object="+objectName+"&code="+code+"&noCompanyId="+noCompanyId;  
    var dom1 = xml_loadXML(urlStr);     
    if (dom1==null) {      
       return;
    }             
    var rootNode = dom1.documentElement;
    var name=xml_childValue(rootNode,"name");            
    return  name;                      
  }
  
  function hiddenPop(apop){
     if (apop.isOpen)
       apop.hide();
  }
  
  function checkIsExist(objectName,codeKey,code,hql){
  var urlStr = cpath+"/code2name/nameAction.do?checkExist=&codeKey="+codeKey+"&object="+objectName+"&code="+code+"&hql="+hql;  
    var dom1 = xml_loadXML(urlStr);     
    if (dom1==null) {
    	//alert("???");      
         return false;
    } 
    var rootNode = dom1.documentElement;
    var result=xml_childValue(rootNode,"result");        
    if (result=='Y')
      return true;
    else
      return false;
}

function checkIsExistForUpdate(objectName,codeKey,code,hql){
  var urlStr = cpath+"/code2name/nameAction.do?checkExistForUpdate=&codeKey="+codeKey+"&object="+objectName+"&code="+code+"&hql="+hql;  
    var dom1 = xml_loadXML(urlStr);     
    if (dom1==null) {
    	//alert("???");      
         return false;
    } 
    var rootNode = dom1.documentElement;
    var result=xml_childValue(rootNode,"result");        
    if (result=='Y')
      return true;
    else
      return false;
}


function round(v,p){
   var tempInt,tempDot,temp,Power,xxrl
   temp = v;
   Power = 1;
   for(var i=0;i<p;i++){
      Power = Power * 10;
   }
   tempInt=parseInt(temp*Power);
   tempDot=v*Power-tempInt;
   if(tempDot>=0.499){
    tempInt=tempInt+1;
   }
   xxrl = parseFloat(tempInt/Power);
   return xxrl;
}

// JavaScript Document
function setElementValue(ele,value0){
	if(ele.type != 'select-one'){
		ele.value = value0;
	}else{
			var opsArr = ele.options;
			for(var i=0;i<opsArr.length;i++){
				if(opsArr[i].value == value0){
					opsArr[i].selected = true;
					return;
				}
			}
	}
}

function getElementValue(ele){
	if(ele.type != 'select-one'){
		return ele.value;
	}else{
			var opsArr = ele.options;
			for(var i=0;i<opsArr.length;i++){
				if(opsArr[i].selected == true){
					return opsArr[i].value;
				}
			}
			return null;
	}
}

function getElement(form1,elename){
  var inputs = form1.elements;
  for(var i=0;i<inputs.length;i++){
      var ele = inputs[i];
	  if(ele.name == elename){
	     return ele;
	  }
  }
  return null;
}

function getElements(form1,elename){
  var eles = new Array();
  var j = 0;
  var inputs = form1.elements;
  for(var i=0;i<inputs.length;i++){
      var ele = inputs[i];
	  if(ele.name == elename){
	     eles[j] = ele;
		 j++;
	  }
  }
  return eles;
}

function getForms(doc1,formname){
  var forms1 = new Array();
  var j = 0;
  var alleles = doc1.all;
  //alert(alleles.length);
  for(var i=0;i<alleles.length;i++){
      var ele = alleles[i];
	  if(ele.name == formname){
	     forms1[j] = ele;
		 j++;
	  }
  }
  //alert(forms1.length);
  return forms1;
}

function getSelectedText(sel){
  if(sel.selectedIndex == -1) return "";
  return sel.options[sel.selectedIndex].text;
}

function checkedCount(eles){
	//???????????????
	var count1 = 0;
	for(var i=0;i<eles.length;i++){
	      var checkEle = eles[i];
		  if(checkEle.checked)
		     count1 ++;
	}
	return count1;
}

function doselect(allele,eles){
   for(var i=0;i<eles.length;i++){
	      var checkEle = eles[i];
		  if(checkEle.disabled != true){
		  	checkEle.checked = allele.checked;
		  }
	}
}


////////////////////////////////////////
// Author:??????
// Date:  2004-12-13
// Description:disable ???enable??????form ??????
///////////////////////////////////////
function enableElement(form, enabled){
 var o = form;
 enabled=enabled.toLowerCase();

 if(o){
    var html = o.outerHTML;
     var index = html.lastIndexOf(">");
     if(enabled = "false"){

         html = html.substring(0,index)+" readonly=true>";

     }
     else if(enabled = "true"){

     }
     o.outerHTML = html;
     o.style.backgroundColor = "#EFEEE2";
    
 }
}



// shows or hides a DIV element
// divID - name of the DIV element
// show - true (show) or false (hide)
function winShow(ID, show) {
if (show == null || typeof(show) == 'undefined') show = true;

var el = document.getElementById(ID);
if (el) {
if (show) {
// set the object visible
el.style.visibility = "visible";

// make sure it's not off-screen...
//   top-left of the object (relative to the page)
var objLft = 0;
var objTop = 0;
for (var e = el; e.offsetParent; e = e.offsetParent) {
objLft += e.offsetLeft;
objTop += e.offsetTop;
}
//   bottom-right of the object
var objRgt = objLft + el.offsetWidth;
var objBtm = objTop + el.offsetHeight;
//   leave some margin around the object
var margin = 2;
objLft -= margin; objTop -= margin;
objRgt += margin; objBtm += margin;
//   page scroll position
var winX = document.body.scrollLeft;
var winY = document.body.scrollTop;
//   page size
var winW = document.body.clientWidth;
var winH = document.body.clientHeight;
//   move the object on-screen
if (objRgt > winX+winW) winX = objLft - winW; // right edge
if (objBtm > winY+winH) winY = objBtm - winH; // bottom edge
if (objLft < winX) winX = objLft; // left edge
if (objTop < winY) winY = objTop; // top edge
window.scrollTo(winX, winY);
} else {
// set the object invisible
el.style.visibility = "hidden";
}
}
}

function winHide(ID) {
winShow(ID, false);
}

function winSetHeight(ID, height) {
document.getElementById(ID).style.height = height + "px";
}

function selectTime(destEle,infoStr) {
	
	var url = cpath+"/common/timeSelect.jsp";
    var sizeStr = "dialogHeight:90px;dialogWidth:150px;scroll:no;status:no;center:yes;help:no;edge:sunken;";
	
	var returnStr = showModalDialog(url,"",sizeStr);
	if(returnStr==undefined) return false;
	
	var eleValue =destEle.value;
	if(eleValue.length==0) 
	   { //alert("??????????");  // ????????
	   		alert(infoStr);
	     	return false; 
	    } 
	if(eleValue.length>10)  //???????????(yyyy-MM-dd)
	 	eleValue=eleValue.substring(0,10);  
	
	destEle.value = eleValue + " " + returnStr;

}
function winSetHeight(ID, height) {
document.getElementById(ID).style.height = height + "px";
}

    function changeCursorToWait(){

       document.body.onmouseover=function(){

           document.body.style.cursor="wait";

        }

    }

    

    function changeCursorToNormal(){

    document.body.style.cursor="";

       document.body.onmouseover=function(){

           document.body.style.cursor="";

        }

    }

function getBetweenTime(beginTime,endTime){
    var millBegin = new Date(beginTime);
    var millEnd = new Date(endTime);
    
    var millBetween = millEnd-millBegin;
    
    var MinMilli = 1000 * 60;
    var HrMilli = MinMilli * 60;
       
    return Math.round(millBetween/HrMilli);    
}

//用于Span的显示与隐藏 outId:要显示与隐藏的span ID / inId:放置显示与隐藏标识('-'or'+')的span ID
//create by xieyucheng
function showOrHiddenSpan(outId,inId) {
	var table = $(outId);
	var span = $(inId);
	if(table.style.display=='none') {
		span.innerText=' -  ';
		table.style.display='';
	}
	else {
		span.innerText=' ＋';
		table.style.display='none';
	}
}

function calendarSetup(id,format,showTime,buttonid) {
	Calendar.setup({
        inputField     :    id,
        ifFormat       :    format,
        showsTime      :    showTime,
        button         :    buttonid,
        align          :    "Br",
        singleClick    :    true
    });
}
 