/**
 * 获得request对象中的参数
 */
function Request(name){
 new RegExp("(^|&)"+name+"=([^&]*)").exec(window.location.search.substr(1));
 return RegExp.$2
}

/**
 * 窗口轉到指定URL
 */
function go(url) {
    location.href = url;
}
function Del_Confirm() {
    return window.confirm("您确认删除吗？");
}
function Del_Confirm_url(url) {
    if( window.confirm("您确认删除吗？"))
    	go(url);    
}
function GiveUp_Confirm() {
    return window.confirm("您确认放弃吗？"); 
}
/**
*得到頁面中checkbox（id是'checkboxlist'）的值。
*如果一個checkbox也沒有勾選，返回""；否則返回以","分割的被選中的checkbox.value;
*/
function getSelectCheckboxIds(checkid) {
    var checkObj = "checkboxlist";
    if (checkid != null) {
        checkObj = checkid;
    }
    var ids = "";
    $A(document.getElementsByName(checkObj)).each(function (e) {
        if (e.checked == true) {
            if (ids != "") {
                ids += ",";
            }
            ids += getFirstSubStr(e.value,";");
        }
    });
    return ids;
}
/**
*得到頁面中radiobutton（id是'radiobutton'）的值。
*如果一個radiobutton也沒有勾選，返回""；否則返回value;
*/
function getRadioButtonId(checkid,sign) {
    var checkObj = "radiobutton";
    var symbol = ",";
    if (checkid != null) {
        checkObj = checkid;
    }
    if (sign != null) {
        symbol = sign;
    }    
    var id = "";
    $A(document.getElementsByName(checkObj)).each(function (e) {
        if (e.checked == true)
            id = getFirstSubStr(e.value,symbol);
    });
    return id;
}
/**
*给定一个带分隔符号的组合字符串,获取分隔符之前的字符串
*/
function getFirstSubStr(str,split){
    var fStr = "";
    if(str.indexOf(split)==-1){
        fStr = str;
    }
    else{
        fStr = str.substring(0,str.indexOf(split));
    }
    return fStr;
}
/**
*给定一个带分隔符号的组合字符串,获取分隔符之后的字符串
*/
function getLastSubStr(str,split){
    var fStr = "";
    if(str.lastIndexOf(split)==-1){
        fStr = str;
    }
    else{
        fStr = str.substring(str.lastIndexOf(split)+1,str.length);
    }
    return fStr;
}

//列表選擇，改變顏色
function changecolor() {
    var obj = document.all.tags("TR");
    for (var i = 0; i < obj.length; i++) {
        if (obj[i].children[0] != null && obj[i].children[0].children[0] != null) {
            var obj1 = obj[i].children[0].children[0];
            if (obj1.checked == true) {
                if (obj[i].bgColor == "#f2f4ff") {
                    obj[i].bgColor = "#aab4f2";
                } else {
                    if (obj[i].bgColor == "#e7eef3") {
                        obj[i].bgColor = "#95a1e5";
                    }
                }
            } else {
                if (obj[i].bgColor == "#aab4f2") {
                    obj[i].bgColor = "#f2f4ff";
                } else {
                    if (obj[i].bgColor == "#95a1e5") {
                        obj[i].bgColor = "#e7eef3";
                    }
                }
            }
        }
    }
}
function selectall(obj1, checkid) {
    var checkObj = "checkboxlist";
    if (checkid != null) {
        checkObj = checkid;
    }
    var obj = document.all.item(checkObj);
    if (obj != null) {
        var i = 0;
        var value = true;
        if (obj1.checked == true) {
            value = true;
        } else {
            value = false;
        }
        if (obj.length == null) {
            obj.checked = value;
        } else {
            for (i = 0; i < obj.length; i++) {
                obj[i].checked = value;
            }
        }
    }
    changecolor();
}
function editObj(checkid, url) {
    ids = getSelectCheckboxIds(checkid);
    if (ids == "" || ids.indexOf(",") != -1) {
        alert("\u8bf7\u9009\u62e9\u4e00\u7b14\u4fee\u6539\u76ee\u6807\uff01");
        return false;
    }
    url += "&id=" + ids;
    go(url);
}
function deleteObjs(checkid) {
    ids = getSelectCheckboxIds(checkid);
    if (ids == "") {
        alert("\u8bf7\u9009\u62e9\u5220\u9664\u76ee\u6807\uff01");
        return false;
    }
    if (!Del_Confirm()) {
        return false;
    }
    document.forms[0].submit();
}

//根据是否有top.opener,即:是否是单独打开的窗口,决定显示"返回"或是"关闭按钮"
function displayButton(owner){
   if(top.opener!=null){
      owner.innerHTML = '<input name="submit22" type="reset" class="button00" value=" 关  闭 " onClick="window.close()"> ';
   }else{
      owner.innerHTML =  '<input name="submit22" type="reset" class="button00" value=" 返  回 " onClick="history.back()"> ';
   }
}


//比較兩個日期,如果開始日期早於結束日期返回true,否則返回false;如果有一個日期為空返回true
function compareDate(str1, str2) {
    if(str1.trim()=="" || str2.trim()=="")
       return true;
    var d1 = new Date(str1);
    var d2 = new Date(str2);
    if (Date.parse(d1) - Date.parse(d2) < 0) {
        return true;
    }
    else {
        return false;
    }
}

//比較兩個日期,如果開始日期与結束日期在给定的范围之内返回true,否則返回false
function compareDateRange(str1, str2, range) {
    if(range>=0){
	    if(str1.trim()=="" || str2.trim()=="")
	       return true;
	    var d1 = new Date(str1);
	    var d2 = new Date(str2);
	    if (Date.parse(d2) - Date.parse(d1) <= range*60*60*1000*24) {
	        return true;
	    }
	    else {
	        alert("开始日期与截止日期时间范围不能超过" + (range+1) + "天！");
	        return false;
	    }
    }
    else if(range==-1)
        return true;
    else
        alert("开始日期与截止日期时间范围允许的最大天数设定有误,请联系系统管理员调整!");
    return false;
}

//与当前年月比較,如果小于等于返回true,否则返回false
function compareCurYearMonth(y1, m1) {
    var y2 = new Date().getFullYear();
    var m2 = new Date().getMonth()+1;
    if(y1<y2 || (y1==y2 && m1<=m2))
	   return true;
    else
        alert("所选年月不能超过当前年月!");
    return false;
}

//比較兩個日期,格式如yyyy/MM/dd或yyyy-MM-dd,如果年月相同返回true,否則返回false
function sameYearMonth(str1, str2) {
	if(str1.trim()=="" || str2.trim()==""){
	   alert("开始日期与截止日期必须在同一年月");
	   return false;
	}
	if(str1.substring(0,7)!=str2.substring(0,7)){
	   alert("开始日期与截止日期必须在同一年月");
	   return false;
	}
	return true;
}
/* 
   依據下拉列表的選擇，在多個區域中進行顯示/隱藏的切換，
   各區域的ID命名規則為：selectId + "." + option[i].value
   example參見/WEB-INF/pages/project/projectAdvanceSearch.jsp
*/
function switchSelect(field) {
	var options = field.getElementsByTagName('option');
	for(var i = 0; i < options.length; i++) {		
		var fieldId = field.id + "." + options[i].value;
		if($(fieldId)!=null) {
			if(field.value==options[i].value) 
				Element.show(fieldId);
			else
				Element.hide(fieldId);
		}
	}
}
/*
	改變計劃/專案年度時，分類年度要依此調整
*/
function changeCategoriesYear(field, yearField) {
	$(yearField+'annual').value=field.value;
	if($(yearField+'.tr')!=null) {
		if(field.value.trim()=='') Element.hide(yearField+'.tr');
		else Element.show(yearField+'.tr');
	}
}
/**
* 去除去除兩邊空格
* 用法：
*     var str = "  hello ";
*     str = str.trim();
*/
String.prototype.trim= function()  
{  
    return this.replace(/(^\s*)|(\s*$)/g, "");  
}

/**
* 得到絕對路徑
*/
function URL(url)
{
  if(url.trim()==""){
      return url.trim();
  }
  else{
      if(url.trim().indexOf("/")==0){
          return ctxPath + url.trim();
      }
      else{
          return ctxPath + "/" + url.trim();
      }
  }
}

/**
* 鼠標進入時隱藏文本框中的提示,離開時顯示
*/
function edtTtl(obj,flg){
	if(flg){
		if(obj.value=='')obj.value=obj.title;
	}else{
		if(obj.value==obj.title)obj.value='';
	}
}

/**
* 去掉因權限不呈現的outlook bar
*/
function hiddenOutBarFolder(OutBarFolderTotal){
	validTotal=0;
	OutBarFolderValidNumer=new Array();
	for(var i=1;i<=OutBarFolderTotal;i++){
	  if(eval("typeof(OutBarFolder"+i+")!='undefined'") && eval("OutBarFolder"+i+"[1]!=null"))
	  {
	     OutBarFolderValidNumer[validTotal]=i;
	     validTotal++;
	  }
	}
	for(var i=1;i<=OutBarFolderTotal;i++){
	    if(i<=OutBarFolderValidNumer.length){
	       eval("OutBarFolder"+i+"=OutBarFolder"+OutBarFolderValidNumer[i-1]);
	    }
	    else{
	       eval("OutBarFolder"+i+"=null");
	    }
	}
}

//弹出下拉菜单使用
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

//弹出下拉菜单覆盖下拉文本框控件使用
function hideSelect() { //v6.0
  var form = document.forms[0];
  if(form!=null){
      if(form.elements('select')!=null)
          form.elements('select').style.visibility = 'hidden';
      if(form.elements('theYear')!=null)
          form.elements('theYear').style.visibility = 'hidden';  
      if(form.elements('theMonth')!=null)
          form.elements('theMonth').style.visibility = 'hidden';      
      if(form.elements('industry')!=null)
          form.elements('industry').style.visibility = 'hidden';  
      if(form.elements('kind')!=null)
          form.elements('kind').style.visibility = 'hidden';  
      if(form.elements('classType')!=null)
          form.elements('classType').style.visibility = 'hidden';         
      if(form.elements('orderName')!=null)
          form.elements('orderName').style.visibility = 'hidden';   
      if(form.elements('alertItem')!=null)
          form.elements('alertItem').style.visibility = 'hidden'; 
      if(form.elements('direction')!=null)
          form.elements('direction').style.visibility = 'hidden';                                                                   
  }
}
function showSelect() { //v6.0
  var form = document.forms[0];
  if(form!=null){
      if(form.elements('select')!=null)
          form.elements('select').style.visibility = 'visible'; 
      if(form.elements('theYear')!=null)
          form.elements('theYear').style.visibility = 'visible';  
      if(form.elements('theMonth')!=null)
          form.elements('theMonth').style.visibility = 'visible';      
      if(form.elements('industry')!=null)
          form.elements('industry').style.visibility = 'visible';  
      if(form.elements('kind')!=null)
          form.elements('kind').style.visibility = 'visible';  
      if(form.elements('classType')!=null)
          form.elements('classType').style.visibility = 'visible';         
      if(form.elements('orderName')!=null)
          form.elements('orderName').style.visibility = 'visible';   
      if(form.elements('alertItem')!=null)
          form.elements('alertItem').style.visibility = 'visible'; 
      if(form.elements('direction')!=null)
          form.elements('direction').style.visibility = 'visible';            
  }
}

function  getUser(userId, userType, range){
  var url = URL('/json/getAccountIdAndNameRemote');
  var user = {"id" : null, "userName" : null};
  var requestAjax = new Ajax.Request(
      url,
      {
          method: 'get',
          asynchronous: false,
          parameters: 'accountId=' + userId + '&accountType=' + userType + '&range=' + range,
          onComplete: function(json){
          	user = json.responseText.evalJSON(true);
          }
      }
  ); 
  return user;
}

function  accountIdValid(accountId, accountType){
  var url = URL('/json/accountIdValidRemote');
  var res = {"isValid" : null};
  var requestAjax = new Ajax.Request(
      url,
      {
          method: 'get',
          asynchronous: false,
          parameters: 'accountId=' + accountId + '&accountType=' + accountType,
          onComplete: function(json){
          	res = json.responseText.evalJSON(true);
          }
      }
  ); 
  return res;
}

function  passwordValid(accountId, password, accountType){
  var url = URL('/json/passwordValidRemote');
  var res = {"isValid" : null};
  var requestAjax = new Ajax.Request(
      url,
      {
          method: 'get',
          asynchronous: false,
          parameters: 'accountId=' + accountId + '&password=' + password + '&accountType=' + accountType,
          onComplete: function(json){
          	res = json.responseText.evalJSON(true);
          }
      }
  ); 
  return res;
}
