﻿
function trim(str){  //删除左右两端的空格
 	return str.replace(/(^\s*)|(\s*$)/g, "");
}

function ltrim(str){  //删除左边的空格
 	return str.replace(/(^\s*)/g,"");
}

function rtrim(str){  //删除右边的空格
 	return str.replace(/(\s*$)/g,"");
}

function changeExpr(condStr, field)
{
	var i;
	var strArr = condStr.split(" ");
	var dest = "";
	
	for (i = 0; i < strArr.length; i++) {
		if (strArr[i] != "") {
			if (dest == "")
				dest = field + ":(+" + strArr[i];
			else
				dest += " +" + strArr[i];
		}
	}
	dest += ")";			
	
	return dest;
}

function GoTosearch(search_num)

{
   
   if(search_num == 0){
	   
      document.search_form.action = "search_outline_sou.jsp";  
      
	  return sou_str_catch();
   }
   else if(search_num == 1){
      
	  document.search_form.action = "search_outline_ref.jsp"; 
      
	  return ref_str_catch();
   }
}



function sou_str_catch()
{
	
    SearchMode="1"; //模糊检索
		
	var BeginDate,EndDate,SQLDate,SQL,SQL_tra,sql1,sql2,sql3,sql4,sql5,sql6,sql7,sql8,sel2,sel3,BeginYear,EndYear,ClassNo_str,CoreFlag;	
	var BeginYear=document.search_form.BeginYear.value;	
	var EndYear=document.search_form.EndYear.value;
	var op2=""
	var op3=""
	var op4=""
	var op5=""
	var op6=""
	var op7=""
	var op8=""
	BeginDate=EndDate=SQLDate=SQL=sql1=sql2=sql3=sql4=sql5=sql6=sql7=sql8=""; 
	ClassNo_str=CoreFlag="";
	var strDate;
	
		
	//拼出学科范围条件
	if(document.search_form.ClassNoSelect.value != ""){
		ClassNo_str="CLASSI_NUM_ORDER_ID:"+document.search_form.ClassNoSelect.value+""
		
		}
		
    //拼出日期条件	
	if(BeginYear!=""){		
		eval( "strDate = trim(BeginYear)" );
		if( !isYearString(strDate) )
		{
			
			alert("时间范围限定有误！");
			document.search_form.BeginYear.focus();
			
			return false;
		}
		BeginDate=trim(BeginYear); 
	}
	if(EndYear!=""){
		eval( "strDate = trim(EndYear)" );
		if( !isYearString(strDate) )
		{
			
			alert("时间范围限定有误！");
			document.search_form.EndYear.focus();
			
			return false;
		}
		EndDate=trim(EndYear); 
	}
	
	if(BeginDate!=""&&EndDate!=""){
		if(parseInt(BeginDate) > parseInt(EndDate)){
			alert("时间范围限定有误！");
			
			return false;
		}
		if(SearchMode=="1")
			SQLDate="YEAR:[" + BeginDate + " TO " + EndDate +"]";

	}
	if(BeginDate==""&&EndDate!=""){
		if(SearchMode=="1")
			SQLDate="YEAR:[" + EndDate + " TO " + EndDate +"]";

	}
	if(BeginDate!=""&&EndDate==""){
		if(SearchMode=="1")
			SQLDate="YEAR:[" + BeginDate + " TO " + BeginDate +"]";

	}

    //拼出第一栏条件
    var str1 = trim(document.search_form.term1.value).toLowerCase();
	if(str1!=""){
		if(SearchMode == "1"){
        if(str1.indexOf("\"")==0 && str1.lastIndexOf("\"")==str1.length-1){ 
           sql1 = document.search_form.field1.value+"_EX:" + str1;
          } 
        else{
			str1 = str1.replace(/\"/g,"&quot;");
    		sql1 = changeExpr(str1, document.search_form.field1.value);	
		  }
		}
	}	

    //拼出第二栏条件
    var str2 = trim(document.search_form.term2.value).toLowerCase();
	if(str2!=""){
		if(SearchMode=="1"){
        if(str2.indexOf("\"")==0 && str2.lastIndexOf("\"")==str2.length-1){ 
           sql2 = document.search_form.field2.value+"_EX:" + str2;
          } 
        else{
			str2 = str2.replace(/\"/g,"&quot;");
    		sql2 = changeExpr(str2, document.search_form.field2.value);	
		  }
		}

  	}
    //拼出第三栏条件	
	var str3 = trim(document.search_form.term3.value).toLowerCase();
	if(str3!=""){
		if(SearchMode=="1"){
        if(str3.indexOf("\"")==0 && str3.lastIndexOf("\"")==str3.length-1){ 
           sql3= document.search_form.field3.value+"_EX:" + str3;
          } 
        else{
			str3 = str3.replace(/\"/g,"&quot;");
    		sql3 = changeExpr(str3, document.search_form.field3.value);	
		  }
		}

	}
	var str4 = trim(document.search_form.term4.value).toLowerCase();
	if(str4!=""){
		if(SearchMode=="1"){
        if(str4.indexOf("\"")==0 && str4.lastIndexOf("\"")==str4.length-1){ 
           sql4=document.search_form.field4.value+"_EX:" + str4;
          } 
        else{
			str4 = str4.replace(/\"/g,"&quot;");
    		sql4 = changeExpr(str4, document.search_form.field4.value);	
		  }
		}

	}
	var str5 = trim(document.search_form.term5.value).toLowerCase();
	if(str5!=""){
		if(SearchMode=="1"){
        if(str5.indexOf("\"")==0 && str5.lastIndexOf("\"")==str5.length-1){ 
           sql5=document.search_form.field5.value+"_EX:" + str5;
          } 
        else{
			str5 = str5.replace(/\"/g,"&quot;");
    		sql5 = changeExpr(str5, document.search_form.field5.value);	
		  }
		}

	}
	var str6 = trim(document.search_form.term6.value).toLowerCase();
	if(str6!=""){
		if(SearchMode=="1"){
        if(str6.indexOf("\"")==0 && str6.lastIndexOf("\"")==str6.length-1){ 
           sql6=document.search_form.field6.value+"_EX:" + str6;
          } 
        else{
			str6 = str6.replace(/\"/g,"&quot;");
    		sql6 = changeExpr(str6, document.search_form.field6.value);	
		  }
		}

	}
	var str7 = trim(document.search_form.term7.value).toLowerCase();
	if(str7!=""){
		if(SearchMode=="1"){
        if(str7.indexOf("\"")==0 && str7.lastIndexOf("\"")==str7.length-1){ 
           sql7=document.search_form.field7.value+"_EX:" + str7;
          } 
        else{
			str7 = str7.replace(/\"/g,"&quot;");
    		sql7 = changeExpr(str7, document.search_form.field7.value);	
		  }
		}
	}
	var str8 = trim(document.search_form.term8.value).toLowerCase();
	if(str8!=""){
		if(SearchMode=="1"){
        if(str8.indexOf("\"")==0 && str8.lastIndexOf("\"")==str8.length-1){ 
           sql8=document.search_form.field8.value+"_EX:" + str8;
          } 
        else{
			str8 = str8.replace(/\"/g,"&quot;");
    		sql8 = changeExpr(str8, document.search_form.field8.value);	
		  }
		}
	}
    
	
   if( sql2 != "" &&(sql1 != ""))
     
	 op2=document.search_form.op2.options[document.search_form.op2.selectedIndex].value;
	 
   if( sql3 != "" &&(sql1 != "" || sql2 != ""))
     
	 op3=document.search_form.op3.options[document.search_form.op3.selectedIndex].value;
	 
   if( sql4 != "" &&(sql1 != "" || sql2 != "" || sql3 !=""))
     
	 op4=document.search_form.op4.options[document.search_form.op4.selectedIndex].value;

   if( sql5 != "" &&(sql1 != "" || sql2 != "" || sql3 != "" || sql4 != ""))
     
	 op5=document.search_form.op5.options[document.search_form.op5.selectedIndex].value;
	 
   if( sql6 != "" &&(sql1 != "" || sql2 != "" || sql3 != "" || sql4 != "" || sql5 != ""))
     
	 op6=document.search_form.op6.options[document.search_form.op6.selectedIndex].value;
	 
   if( sql7 != "" &&(sql1 != "" || sql2 != "" || sql3 != "" || sql4 != "" || sql5 != "" || sql6 != ""))
     
	 op7=document.search_form.op7.options[document.search_form.op7.selectedIndex].value;
	 
   if( sql8 != "" &&(sql1 != "" || sql2 != "" || sql3 != "" || sql4 != "" || sql5 != "" || sql6 != "" || sql7 != ""))
     
	 op8=document.search_form.op8.options[document.search_form.op8.selectedIndex].value;
      

	SQL=sql1+op2+sql2+op3+sql3+op4+sql4+op5+sql5+op6+sql6+op7+sql7+op8+sql8;
	if(SQLDate!=""&&SQL!=""){
		if(SQL!="")
			SQL="("+SQL+") AND "+SQLDate;

	}
	if(ClassNo_str!=""&&SQL!=""){
		if(SQL!="")
			SQL="("+SQL+") AND "+ClassNo_str;

	}
	if(CoreFlag!=""&&SQL!=""){
		if(SQL!="")
			SQL="("+SQL+") AND "+CoreFlag;

	}
	if(SQL==""){
	
	alert("检索表达式不能为空");
	
    
	return false;
	}
	
	else{
	
	SQL="(" + SQL + ") AND CITE:1 "
	
	}
	SQL=AddGF(SQL);
	document.search_form.searchmode.value=SearchMode;
	document.search_form.searchword.value=SQL;
    SQL_tra=TranSQL_sou(SQL);
	document.search_form.dbtype.value = "1"
	document.search_form.searchword_tra.value=SQL_tra

	return true;
	
}

function ref_str_catch(){
	
	

	SearchMode="1"; //模糊检索
	
	var BeginDate_ref,EndDate_ref,SQLDate_ref,BeginDate,EndDate,SQLDate,SQL,sql1,sql2,sql3,sel2,sel3,str1,str2,str3,CoreFlag;
	var BeginYear=document.search_form.BeginYear.value;
	var EndYear=document.search_form.EndYear.value;
	var BeginYear_ref=document.search_form.BeginYear_ref.value;
	var EndYear_ref=document.search_form.EndYear_ref.value;

	var op2=document.search_form.op2.options[document.search_form.op2.selectedIndex].value;
	var op3=document.search_form.op3.options[document.search_form.op3.selectedIndex].value;

	BeginDate_ref=EndDate_ref=SQLDate_ref=BeginDate=EndDate=SQLDate=SQL=sql1=sql2=sql3="";
	CoreFlag="";
	var strDate;
	
    //拼出日期条件	
	if(BeginYear!=""){
		eval( "strDate = trim(BeginYear)" );
		if( !isYearString(strDate) )
		{
			
			alert("被引时间限定有误！");
			document.search_form.BeginYear.focus();
			
			return false;
		}
		BeginDate=BeginYear; 
	}
	if(EndYear!=""){
		eval( "strDate = trim(EndYear)" );
		if( !isYearString(strDate) )
		{
			
			alert("被引时间限定有误！");
			document.search_form.EndYear.focus();
			
			return false;
		}
		EndDate=EndYear; 
	}

	if(BeginDate!=""&&EndDate!=""){
		if(parseInt(BeginDate) > parseInt(EndDate)){
			alert("被引时间限定有误！");
			
			return false;
		}
		if(SearchMode=="1")
		
			SQLDate="ARTICLE_YEAR:(";
            
			for(var YearNum=0;YearNum<=parseInt(EndDate)-parseInt(BeginDate);YearNum++){
				  
				  SQLDate=SQLDate + (parseInt(BeginDate)+parseInt(YearNum)) + " "
				
				
				}
			
			
			SQLDate=SQLDate + ")";

	}
	if(BeginDate==""&&EndDate!=""){
		if(SearchMode=="1")
			SQLDate="ARTICLE_YEAR:(" + EndDate +")";

	}
	if(BeginDate!=""&&EndDate==""){
		if(SearchMode=="1")
			SQLDate="ARTICLE_YEAR:(" + BeginDate + ")";

	}
	
	if(BeginYear_ref!=""){
		eval( "strDate = BeginYear_ref" );
		if( !isYearString_unlimite(strDate) )
		{
			
			alert("发表时间限定有误！");
			document.search_form.BeginYear_ref.focus();
			
			return false;
		}
		BeginDate_ref=BeginYear_ref; 
	}
	if(EndYear_ref!=""){
		eval( "strDate = EndYear_ref" );
		if( !isYearString_unlimite(strDate) )
		{
			
			alert("发表时间限定有误！");
			document.search_form.EndYear_ref.focus();
			
            return false;
		}
		EndDate_ref=EndYear_ref; 
	}
	if(BeginDate_ref!=""&&EndDate_ref!=""){
		if(parseInt(BeginDate_ref) > parseInt(EndDate_ref)){
			
			alert("发表时间限定有误！");
			
			return false;
		}
		if(SearchMode=="1")
			SQLDate_ref="CITATION_YEAR:[" + BeginDate_ref + " TO " + EndDate_ref +"]";

	}
	if(BeginDate_ref==""&&EndDate_ref!=""){
		if(SearchMode=="1")
			SQLDate_ref="CITATION_YEAR:[" + EndDate_ref + " TO " + EndDate_ref +"]";

	}
	if(BeginDate_ref!=""&&EndDate_ref==""){
		if(SearchMode=="1")
			SQLDate_ref="CITATION_YEAR:[" + BeginDate_ref + " TO " + BeginDate_ref +"]";

	}

    //拼出第一栏条件	
	str1 = trim(document.search_form.term1.value).toLowerCase();
	if (str1 != ""){
		
		
		if(SearchMode=="1")
           if(str1.indexOf("\"")==0 && str1.lastIndexOf("\"")==str1.length-1)
		     {
			  
              sql1=document.search_form.field1.value+"_EX:" + str1;
             } 
          else
		     {
			str1 = str1.replace(/\"/g,"&quot;");
			sql1 = changeExpr(str1, document.search_form.field1.value);	
			}

	}
	
    //拼出第二栏条件	
	str2= trim(document.search_form.term2.value).toLowerCase();
	if (str2 != ""){
		
		if(SearchMode=="1")
           if(str2.indexOf("\"")==0 && str2.lastIndexOf("\"")==str2.length-1)
		     {
			  
              sql2=document.search_form.field2.value+"_EX:" + str2;
             } 
          else
		     {
			str2 = str2.replace(/\"/g,"&quot;");
			sql2 = changeExpr(str2, document.search_form.field2.value);	
			}

  	}
    //拼出第三栏条件	
	str3 = trim(document.search_form.term3.value).toLowerCase();
	if (str3 != ""){
		
		if(SearchMode=="1")
           if(str3.indexOf("\"")==0 && str3.lastIndexOf("\"")==str3.length-1)
		     {
			  
              sql3=document.search_form.field3.value+"_EX:" + str3;
             } 
          else
		     {
			str3 = str3.replace(/\"/g,"&quot;");
			
			sql3 = changeExpr(str3, document.search_form.field3.value);	
			}

	}
	if(sql1==""||sql2=="")
		op2="";

	if(sql1==""&&sql2==""){
		op2="";
		op3="";
	}
	if(sql3=="")
		op3="";
		
	SQL=sql1+op2+sql2+op3+sql3;

	if(SQLDate!=""&&SQL!=""){
		if(SQL!="")
			SQL="("+SQL+") AND "+SQLDate;
	  	
	}
	if(SQLDate_ref!=""&&SQL!=""){
		if(SQL!="")
			SQL="("+SQL+") AND "+SQLDate_ref;

	}
	if(CoreFlag!=""&&SQL!=""){
		if(SQL!="")
			SQL="("+SQL+") AND "+CoreFlag;

	}
		  	
	if(SQL==""){
		
		alert("检索表达式不能为空！");
		
		return false;
	}
	SQL=AddGF(SQL);
	document.search_form.searchmode.value="1";
	document.search_form.searchword.value=SQL;
	document.search_form.dbtype.value = "2"
    SQL_tra=TranSQL_ref(SQL);
    document.search_form.searchword_tra.value=SQL_tra
   
	return true;
}

function TranSQL_ref(str){
    
    if(str.indexOf('CITATION_DERIVATION_ID') != -1){ 
       str = '分组结果限定'; 
      }
    if(str.indexOf('REF_AUTHOR_IDS') != -1){ 
       str = '分组结果限定'; 
      }
    
var reg,stringObj,newstr	
    reg=new RegExp("_EX","g"); 
    stringObj=str;
    newstr=stringObj.replace(reg,"");
    
	newstr = newstr.replace(/\+/g,"");
	
    newstr = newstr.replace(/\(/g,"");
	
    newstr = newstr.replace(/\)/g,"");
	
    newstr = newstr.replace(/\[/g,"");
	
    newstr = newstr.replace(/\]/g,"");
	

	
    reg=new RegExp("CORE_FLAG:1","g");
	
	newstr=newstr.replace(reg,"核心库");
	
    reg=new RegExp("GF","g");
	
	newstr=newstr.replace(reg,"");		

	reg=new RegExp("CITATIONORIG_INFO","g");
	
	newstr=newstr.replace(reg,"二次检索");
	
	reg=new RegExp("CITATION_AUTHOR","g");
	
	newstr=newstr.replace(reg,"被引作者");

    reg=new RegExp("CITATION_AUTHOR1","g"); 
    
    newstr=newstr.replace(reg,"被引第一作者"); 

    reg=new RegExp("CITATION_DERIVATION","g"); 
    
    newstr=newstr.replace(reg,"被引来源"); 

    reg=new RegExp("CITE_ORGANIZTION","g"); 
    
    newstr=newstr.replace(reg,"被引机构"); 

    reg=new RegExp("CITE_LABORATORY","g"); 

    newstr=newstr.replace(reg,"被引实验室"); 

    reg=new RegExp("PUBLISHING_COMPANY","g"); 
   
    newstr=newstr.replace(reg,"被引出版社"); 

    reg=new RegExp("EDITOR_IN_CHIEF","g"); 
    
    newstr=newstr.replace(reg,"被引文献主编");
	
	reg=new RegExp("ARTICLE_YEAR","g"); 
   
    newstr=newstr.replace(reg,"被引年份"); 
    
	reg=new RegExp("CITATION_YEAR","g"); 
    
    newstr=newstr.replace(reg,"出版年份"); 

    
    reg=new RegExp(" AND ","g"); 
  
    newstr=newstr.replace(reg," * "); 
	

	
    reg=new RegExp(" OR ","g"); 
   
    newstr=newstr.replace(reg," + ");
	
    reg=new RegExp(":","g"); 
  
    newstr=newstr.replace(reg,"=");
	
    reg=new RegExp(" TO ","g"); 
  
    newstr=newstr.replace(reg," - "); 
	
	
	return newstr;

	}
	
	
function TranSQL_sou(str){
    
      if(str.indexOf('INTERNAL_PARENT_ID') != -1){ 
       str = '来源期刊浏览'; 
      } 
      
      if(str.indexOf('JOURNAL_NAME_ID') != -1){ 
       str = '分组结果限定'; 
      }
      
      
      if(str.indexOf('AUTHOR_ORG_ID') != -1){ 
       str = '分组结果限定'; 
      }
    
var reg,stringObj,newstr	
    reg=new RegExp("_EX","g"); 
    stringObj=str;

    newstr=stringObj.replace(reg,""); 

    newstr = newstr.replace(/\+/g,"");
	
    newstr = newstr.replace(/\(/g,"");
	
    newstr = newstr.replace(/\)/g,"");
	
    newstr = newstr.replace(/\[/g,"");
	
    newstr = newstr.replace(/\]/g,"");

    reg=new RegExp("GF","g");
	
	newstr=newstr.replace(reg,"");	
	
    reg=new RegExp(" AND CITE:1 ","g");
	
	newstr=newstr.replace(reg,"");	

    reg=new RegExp("ALLFIELDS","g");
	
	newstr=newstr.replace(reg,"全文检索");

	reg=new RegExp("CLASSI_NUM_ORDER_ID","g");
	
	newstr=newstr.replace(reg,"学科范围");
	
    reg=new RegExp("CORE_FLAG:1","g");
	
	newstr=newstr.replace(reg,"核心库");
	
	reg=new RegExp("AUTHOR_NAMES","g"); 
	
	newstr=newstr.replace(reg,"作者"); 
	
    reg=new RegExp("AUTHOR_NAME1","g"); 
    
    newstr=newstr.replace(reg,"第一作者"); 

    reg=new RegExp("SUPERSCRIPTION_CN","g"); 
    
    newstr=newstr.replace(reg,"题名"); 

    reg=new RegExp("JOURNAL_NAME","g"); 
    
    newstr=newstr.replace(reg,"刊名"); 

    reg=new RegExp("ISSN","g"); 

    newstr=newstr.replace(reg,"ISSN"); 

    reg=new RegExp("TABLOID_CN","g"); 
   
    newstr=newstr.replace(reg,"文摘"); 

    reg=new RegExp("ORGANIZATIONS","g"); 
    
    newstr=newstr.replace(reg,"机构");
	
	reg=new RegExp("KEYWORD_CN","g"); 
   
    newstr=newstr.replace(reg,"关键词"); 
    
    reg=new RegExp("KEYWORD_EN","g"); 
   
    newstr=newstr.replace(reg,"英文关键词"); 
    
	reg=new RegExp("FUND_NAMES","g"); 
    
    newstr=newstr.replace(reg,"基金名称"); 

	reg=new RegExp("YEAR","g"); 
    
    newstr=newstr.replace(reg,"年份"); 

    reg=new RegExp(" AND ","g"); 
  
    newstr=newstr.replace(reg," * "); 
	

	
    reg=new RegExp(" OR ","g"); 
   
    newstr=newstr.replace(reg," + ");
	
    reg=new RegExp(":","g"); 
  
    newstr=newstr.replace(reg,"=");
	
    reg=new RegExp(" TO ","g"); 
  
    newstr=newstr.replace(reg," - "); 
	
	
	return newstr;

	}


function AddGF(str){
var reg,stringObj,newstr	
    reg=new RegExp("JOURNAL_NAME","g"); 
    stringObj=str;
    newstr=stringObj.replace(reg,"JOURNAL_NAME_GF");	
	
	reg=new RegExp("CITATION_DERIVATION","g"); 
    
    newstr=newstr.replace(reg,"CITATION_DERIVATION_GF");
    	
	return newstr;
	}
