﻿function checkInputXDD(inputvalue) {
	var upcaseStr = inputvalue.toUpperCase();
	if ((upcaseStr.indexOf("<SCRIPT")!=-1)||(upcaseStr.indexOf("/SCRIPT>")!=-1)) return false;
	if ((upcaseStr.indexOf("<IFRAME")!=-1)||(upcaseStr.indexOf("/IFRAME>")!=-1)) return false;
	if ((upcaseStr.indexOf("<FRAME")!=-1)||(upcaseStr.indexOf("/FRAME>")!=-1)) return false;
	if ((upcaseStr.indexOf("<A")!=-1)||(upcaseStr.indexOf("/A>")!=-1)) return false;
	if ((upcaseStr.indexOf("<IMAGE")!=-1)||(upcaseStr.indexOf("/IMAGE>")!=-1)) return false;
	if ((upcaseStr.indexOf("<BODY")!=-1)||(upcaseStr.indexOf("/BODY>")!=-1)) return false;
	if ((upcaseStr.indexOf("<IMG")!=-1)||(upcaseStr.indexOf("/IMG>")!=-1)) return false;
	if ((upcaseStr.indexOf("<FORM")!=-1)||(upcaseStr.indexOf("/FORM>")!=-1)) return false;
	if ((upcaseStr.indexOf("<SPAN")!=-1)||(upcaseStr.indexOf("/SPAN>")!=-1)) return false;
	return true;
}

/**
 * 
 *普通检索
 *
 **/
function Search(){
	var CID = frm.CID.value;
	var Keyword = Blank(frm.keyword.value);
  if (!checkInputXDD(Keyword+CID)) {
    alert("查询关键字有不合法字符，请重新数据！");
    return false;
  }
	if(!CheckNull(Keyword)){
		if(CID != ''){
			frm.search.value="CID:("+CID+")";
			frm.search.value += " order by CreateDate";
		}
		frm.submit();
	}else{
		var Query = filter(Deal(Keyword));
		frm.search.value="CID:("+CID+") and (Title:("+Query+") or AssetPath:("+Query+"))";
		frm.search.value += " order by CreateDate";
		frm.submit();
	}
}

function SearchOld(){
	var CID = frm.CID.value;
	var keyword = frm.keyword.value;
	var start = frm.start.value;
	var end = frm.end.value;
  if (!checkInputXDD(CID+keyword+start+end)) {
    alert("查询关键字有不合法字符，请重新数据！");
    return false;
  }
	
	var start = start.ReplaceAll("-", "");
	var end = end.ReplaceAll("-", "");
	
	var qstr = '';
	var temp1 = '';
	var temp2 = '';
	if(CheckNull(CID)){
		temp1 = ""+CID+"";
	}
	if(CheckNull(keyword)){
		temp2 = keyword;
	}
	if(CheckNull(temp1)&&CheckNull(temp2)){
		qstr += "_Content :(("+temp1+") and "+temp2+" and \"enpproperty\")";
	}else if(!CheckNull(temp1)&&CheckNull(temp2)){
		qstr += "_Content :(("+temp2+") and \"enpproperty\")";
	}else if(CheckNull(temp1)&&!CheckNull(temp2)){
		qstr += "_Content :(("+temp1+") and \"enpproperty\")";
	}
	if(CheckNull(start)&&CheckNull(end)){
		qstr += " and _Date:["+start+","+end+"]"; 
	}else if(CheckNull(start)&&!CheckNull(end)){
		qstr += " and _Date:["+start+",30001231]"; 
	}else if(!CheckNull(start)&&CheckNull(end)){
		qstr += " and _Date:[19000101,"+end+"]"; 
	}
	frm.search.value = qstr;
	frm.search.value += " order by _Date";
	frm.submit();
}

/**
 * 
 *普通检索
 *
 **/
function Search_Gaoji(){
	var CID = frm.CID.value;
	var keyword1 = frm.keyword1.value;
	var keyword2 = frm.keyword2.value;
	var keyword3 = frm.keyword3.value;
	var keyword4 = frm.keyword4.value;
  if (!checkInputXDD(frm.keyword1.value+frm.keyword2.value+frm.keyword3.value+frm.keyword4.value+frm.CID.value+frm.keyword.value+frm.CIDName.value
                     +frm.start.value+frm.end.value+frm.zuozhe.value+frm.laiyuan.value+frm.CID.value)) {
    alert("查询关键字有不合法字符，请重新数据！");
    return false;
  }
	
	var k1 = Blank(frm.keyword1.value);
	var k2 = Blank(frm.keyword2.value);
	var k3= Blank(frm.keyword3.value);
	var k4= Blank(frm.keyword4.value);

	var mark = 0;/*如果为0的话说明4个输入框都为空*/
	var test = /\S/;
	/*var chars = /'+/;
	if(chars.test(keyword1)||chars.test(keyword2)||chars.test(keyword3)||chars.test(keyword4)){
		alert("请勿输入特殊字符，如\"'\"");
		return ;
	}*/
	if(test.test(keyword1)){
		keyword1 = "("+ BlankR(keyword1,' and ')+") ";
	}
	if(test.test(keyword2)){
		keyword2 = "(\""+BlankR(keyword2,'\" and \"')+"\") ";
	}
	if(test.test(keyword3)){
		 keyword3 = "("+BlankR(keyword3,' or ')+") ";
	}
	if(test.test(keyword4)){
		keyword4 = "(not "+BlankR(keyword4,' and not ')+")";
	}
	var keyword = keyword1+keyword2+keyword3+keyword4;
	
	var laiyuan = Blank(frm.laiyuan.value);
	var zuozhe = Blank(frm.zuozhe.value);
	var wenhao = Blank(frm.wenhao.value);
	var start = Blank(frm.start.value);
	var end = Blank(frm.end.value);
	//var zerenbianji = Blank(frm.zerenbianji.value);
	
	start = start.ReplaceAll("-", "");
	end = end.ReplaceAll("-", "");
	
	var Query = '';
	var qstr = "CID:("+CID+")";
	if(CheckNull(keyword)){
		qstr += " and (Title:("+keyword+") or AssetPath:("+keyword+") or IntroTitle:("+keyword+"))";
		frm.keyword.value = k1;
		//frm.keyword.value = keyword;
	}
	//来源
	if(laiyuan != 0){
		qstr += " and aSource:("+laiyuan+")"; 
	}
	//作者
	if(CheckNull(zuozhe)){
		qstr += " and Creator:("+zuozhe+")"; 
	}
	//作者
	if(CheckNull(wenhao)){
		qstr += " and SubTitle:("+wenhao+")"; 
	}
	//责任编辑
	//if(CheckNull(zerenbianji)){
	//	qstr += " and Recorder:("+zerenbianji+")"; 
	//}
	if(CheckNull(start)&&CheckNull(end)){
		qstr += " and CreateDate:["+start+","+end+"]"; 
	}else if(CheckNull(start)&&!CheckNull(end)){
		qstr += " and CreateDate:["+start+",30001231]"; 
	}else if(!CheckNull(start)&&CheckNull(end)){
		qstr += " and CreateDate:[19000101,"+end+"]"; 
	}
	frm.search.value = qstr;
	frm.search.value += " order by CreateDate";
	frm.submit();
}

function Search_Er()
{
	var CID = fts_er.CID.value;
	var Keyword = Blank(fts_er.keyword_er.value);
	var Keyword_old = fts_er.keyword.value;
	var Keyword_old_d = fts_er.keyword.value.split(" ").join(" and ");
	
	if(!CheckNull(Keyword)){
		alert("请填写关键字");
	}else{
		var Query = filter(Deal(Keyword));
		fts_er.keyword.value = Keyword_old+" "+Keyword;
		fts_er.search.value="CID:("+CID+") and (Title:("+Query+" and "+Keyword_old_d+") or AssetPath:("+Query+" and "+Keyword_old_d+"))";
		fts_er.search.value += " order by CreateDate";
		fts_er.submit();
	}
}
function Search_RiLiEr()
{
	var y = /-/g;	
	var fod = (fts_er.fts_date.value).replace(y,"");
	var CID = fts_er.CID.value;
	fts_er.search.value = "CID:("+CID+") and CreateDate:["+fod+","+fod+"]";
	fts_er.submit();
}
function CheckNull(Str)
{
	if(!new RegExp(/\S/).test(Str))
 	{
 		return false;
 	}
 	return true;
}
function Blank(Str)
{
	return Str.replace(/(^\s*)|(\s*$)/g,"");
}
function BlankR(keyword,type)
{
	var y = /\s+/g;
	var deal = ((keyword.replace(y," ")).split(" ")).join(type);
	return deal;
}
function Deal(Str)
{
	var y = /\s+/g;
	return ((Str.replace(y," ")).split(" ")).join(" or ");
}
String.prototype.ReplaceAll = stringReplaceAll;

function  stringReplaceAll(AFindText,ARepText){
  raRegExp = new RegExp(AFindText,"g");
  return this.replace(raRegExp,ARepText)
} 


function filter(input) {
        if (!hasSpecialChars(input)) {
            return input;
        }
        var filtered = "";
        for (i = 0; i <= input.length - 1; i++) {
            c = input.charAt(i);
            switch (c) {
            
            case '\\':
            	filtered+="\\\\";
                break;
            case '+':
            	filtered+="\\+";
                break;
            case '-':           	
            	filtered+="\\-";
                break;
            case '!':
            	filtered+="\\!";
                break;
            case '(':
            	filtered+="\\(";
                break;
            case ')':
            	filtered+="\\)";
                break;
            case ':':
            	filtered+="\\:";
                break;
            case '^':
            	filtered+="\\^";
                break;
            case '[':
            	filtered+="\\[";
                break;
            case ']':
            	filtered+="\\]";
                break;
            case '{':
            	filtered+="\\{";
                break;
            case '}':
            	filtered+="\\}";
                break;
            case '~':
            	filtered+="\\~";
                break;
            case '*':
            	filtered+="\\*";
                break;
            case '?':
            	filtered+="\\?";
                break;
            case '|':
            	filtered+="\\|";
                break;    
            case '"':
            	filtered+="\\\"";
                break; 
            case '&':
            	filtered+="\\&";
                break; 
            
            default:
                filtered+=c;
            }
        }
        return filtered;
    }

function hasSpecialChars(input) {
        var flag = false;
        if ((input.length > 0)) {
            for (i = 0; i < input.length; i++) {
                c = input.charAt(i);
               
                switch (c) {
                case '\\':
                    flag = true;
                    break;
                case '+':
                    flag = true;
                    break;
                case '-':
                    flag = true;
                    break;
                case '!':
                    flag = true;
                    break;
                case '(':
                    flag = true;
                    break;
                case ')':
                    flag = true;
                    break;
                case ':':
                    flag = true;
                    break;
                case '^':
                    flag = true;
                    break;
                case '[':
                    flag = true;
                    break;
                case ']':
                    flag = true;
                    break;
                case '{':
                    flag = true;
                    break;
                case '}':
                    flag = true;
                    break;
                case '~':
                    flag = true;
                    break;
                case '*':
                    flag = true;
                    break;
                case '?':
                    flag = true;
                    break;
                case '|':
                    flag = true;
                    break;    
                case '"':
                    flag = true;
                    break; 
                case '&':
                    flag = true;
                    break; 
                }
            }
        }
        return flag;
    }
