var isNetscape = false;

function checkKeyword() {
	keyword=document.searchform.Keyword.value;
	if (keyword=="")
	{
		alert("Please enter keyword for search");
		return false;
	} else {
		if (document.searchform.searchScope[1].checked)
		{
			document.searchform.action = "http://search.hktdc.com/search.asp";

			document.searchform.SubPortalTopic.value= "";

			document.searchform.MCFlag.value="True";
			document.searchform.FSFlag.value="True";
			document.searchform.ISFlag.value="True";
			document.searchform.PLFlag.value="True";
		} else  {
			//document.searchform.SubPortalTopic.value = "(ChinaTradeInConcept)";
			if ((document.searchform.searchScope.selectedIndex)>= 0) {	
				if (document.searchform.searchScope[document.searchform.searchScope.selectedIndex].value == "wholeSite"){
					document.searchform.action = "http://search.hktdc.com/search.asp";
					document.searchform.SubPortalTopic.value= "";
					document.searchform.MCFlag.value="True";
					document.searchform.FSFlag.value="True";
					document.searchform.ISFlag.value="True";
					document.searchform.PLFlag.value="True";			
				} else {
					document.searchform.action = "http://search.hktdc.com/common/search.asp";
					fakeGet(new Array("SearchType", "Language", "Keyword", "Group"));
				}		
			} else {
			  document.searchform.action = "http://search.hktdc.com/common/search.asp";
			  fakeGet(new Array("SearchType", "Language", "Keyword", "Group"));			
			}
		}

		var ok = false;
		var charNo = 0;

		while (!ok && (charNo<keyword.length) ) {

			if ( (keyword.charCodeAt(charNo)>=48 && keyword.charCodeAt(charNo)<=57)  || (keyword.charCodeAt(charNo)>=65 && keyword.charCodeAt(charNo)<=90) || (keyword.charCodeAt(charNo)>=97 && keyword.charCodeAt(charNo)<=122) )
			{
				document.searchform.Language.value="en";
				document.searchform.PromLinkLang.value="en";

				document.searchform.Encoding.value="ISO-8859-1";
				ok = true;
			} else if (keyword.charCodeAt(charNo)>126) {
				ok = true;

				if (confirm('Please go to our Chinese page to conduct your search in Chinese. Click OK to proceed, or click Cancel to continue your search in English.'))
				{
if (document.searchform.searchScope[1].checked)
{
  sc = document.searchform.searchScope[1].value;						
}else{
  if ((document.searchform.searchScope.selectedIndex)>= 0)
    sc=document.searchform.searchScope[document.searchform.searchScope.selectedIndex].value
  else
    sc = document.searchform.searchScope[0].value;						  
}     
	    				if (sc == "BA-China")
	   					document.searchform.action="calert/chalert.htm";
					else if (sc == "BA-EU")
	   					document.searchform.action="calert/eualert.htm";
					else if (sc == "BA-US")
	   					document.searchform.action="calert/usalert.htm";
					else if (sc == "WTO")
	   					document.searchform.action="chinese/index.htm";
					else if (sc == "PRD")
	   					document.searchform.action="chinese/index.htm";	   					
					else if (sc == "BJOlympics")
	   					document.searchform.action="chinese/index.htm";	   					
					else if (sc == "EconForum")
	   					document.searchform.action="cindex.htm";	   					
					else if (sc == "InfoHub")
	   					document.searchform.action="index.asp";	   					
					else if (sc == "ChinaBidding")
	   					document.searchform.action="cb_c2.asp";	   					
					else if (sc == "WebDir")
	   					document.searchform.action="index_c.asp";	   					
					else
	    					document.searchform.action="index_c.htm";

	    				document.searchform.target="_top";
	    				document.searchform.method="GET";
	    				document.searchform.Encoding.value="Big5";
					document.searchform.Language.value="zt";
					document.searchform.PromLinkLang.value="zt";


	    				noFakeGet = true;
				} else {
					return false;
				}


			} else {
				ok = false;
			}
			charNo++;
		}
		if (!ok) {

			if (document.searchform.CurrLangInterface.value=="Eng") {
				alert("Please enter keyword for search");
			} else {
				alert("½Ð¥ý¿é¤JÃöÁä¦r");
			}

			return false;
		}

		document.searchform.Keyword.value = filterSpecialChar(keyword)
	}

	if (parseInt(navigator.appVersion) >= 4) {
	  if (navigator.appName == "Netscape") {
	    isNetscape = true;
	  } else if (navigator.appName == "Microsoft Internet Explorer") {
	    isIE = true;
	  } else {
	    isWhoKnows = true;
	  }
	}


	// Validation for Date Range
	if (document.searchform.startDay!=null) {

		startDay	= document.searchform.startDay.value;
		startMonth	= document.searchform.startMonth.value;
		startYear	= document.searchform.startYear.value;
		endDay		= document.searchform.endDay.value;
		endMonth	= document.searchform.endMonth.value;
		endYear		= document.searchform.endYear.value;

		if (isNetscape) {
			startDay	= document.searchform.startDay[document.searchform.startDay.selectedIndex].value;
			startMonth	= document.searchform.startMonth[document.searchform.startMonth.selectedIndex].value;
			startYear	= document.searchform.startYear[document.searchform.startYear.selectedIndex].value;
			endDay		= document.searchform.endDay[document.searchform.endDay.selectedIndex].value;
			endMonth	= document.searchform.endMonth[document.searchform.endMonth.selectedIndex].value;
			endYear		= document.searchform.endYear[document.searchform.endYear.selectedIndex].value;
		}

		if (((startDay!="Date") && (startMonth!="Month") && (startYear!="Year") && (endDay!="Date") && (endMonth!="Month") && (endYear!="Year") )  ||  ( (startDay=="Date") && (startMonth=="Month") && (startYear=="Year") && (endDay=="Date") && (endMonth=="Month") && (endYear=="Year") )  ) {
			// Nothing
		} else {
			alert("Please (un)select Date Range options!");
			return false;
		}

		if ( (startDay!="Date") && (startMonth!="Month") && (startYear!="Year") && (endDay!="Date") && (endMonth!="Month") && (endYear!="Year") ) {

			var startDate = new Date(); // startYear, startMonth, startDay ,0 ,0, 0) ;
			var endDate = new Date();   // endYear, endMonth, endDay, 0 ,0, 0) ;

			startDate.setFullYear(startYear);
			startDate.setMonth(startMonth-1);
			startDate.setDate(startDay);

			endDate.setFullYear(endYear);
			endDate.setMonth(endMonth-1);
			endDate.setDate(endDay);

			if (startDate.getTime() > endDate.getTime() ) {
				alert("Date Range Invalid!");
				return false;
			}

			if (startDate.getMonth()!=startMonth-1) {
				//alert("Start Date getMonth: " + startDate.getMonth());
				//alert("startMonth: " + startMonth);
				//alert("Start Date getDate: " + startDate.getDate());
				//alert("startDay: " + startDay);

				
				alert("Start Date Invalid!");
				return false;
			}

			if (endDate.getMonth()!= endMonth-1) {
				alert("End Date Invalid!");
				return false;
			}
		}
	}

	fakeGet(new Array("SearchType", "Language", "Keyword", "Group"));
	initQuery();
	return true;
}

function fakeGet(paraArray) {

	var actionStr = document.searchform.action;

	actionStr += "?";
	if (isIE) {
		for (var i=0; i<paraArray.length; i++) {

			if (paraArray[i]=="advLanguage")
				paraArray[i]="Language";

			if (eval("document.searchform."+paraArray[i]) !=null) {
				actionStr += paraArray[i]+ "=" + eval("document.searchform."+paraArray[i]+".value").replace(' ','+');
				if (i!=(paraArray.length-1))
					actionStr +="&";
			}
		}
	} else if (isNetscape) {
		for (var i=0; i<paraArray.length; i++) {
			if (eval("document.searchform."+paraArray[i]) !=null  || paraArray[i]=="advLanguage") {

				if (paraArray[i]=="advLanguage") {
					actionStr += "Language=" + eval("document.searchform.Language[document.searchform.Language.selectedIndex].value").replace(' ','+');
				} else {
					actionStr += paraArray[i]+ "=" + eval("document.searchform."+paraArray[i]+".value").replace(' ','+');
				}

				if (i!=(paraArray.length-1))
					actionStr +="&";
			}
		}
	}
	document.searchform.action = actionStr ;
}

// for filtering special char
function filterEachSpecialChar(orgText, theChar)
{
	var resultStr = orgText
	while(resultStr.indexOf(theChar)!= -1)
	{
		resultStr = resultStr.replace(theChar, "")
	}
	return resultStr;
}

function filterSpecialChar(orgText) {
	// List of Special Character Handled
	// ! @ # % ^ ( ) _ = ` : ;  ' ?  { } [ ] ~ \ |
	var resultStr = orgText

	resultStr = filterEachSpecialChar( resultStr, "!")
	resultStr = filterEachSpecialChar( resultStr, "@")
	resultStr = filterEachSpecialChar( resultStr, "#")
	resultStr = filterEachSpecialChar( resultStr, "^")
	resultStr = filterEachSpecialChar( resultStr, "%")
	resultStr = filterEachSpecialChar( resultStr, "(")
	resultStr = filterEachSpecialChar( resultStr, ")")
	resultStr = filterEachSpecialChar( resultStr, "_")
	resultStr = filterEachSpecialChar( resultStr, "=")
	resultStr = filterEachSpecialChar( resultStr, "`")
	resultStr = filterEachSpecialChar( resultStr, ":")
	resultStr = filterEachSpecialChar( resultStr, ";")
	resultStr = filterEachSpecialChar( resultStr, "'")
	resultStr = filterEachSpecialChar( resultStr, "?")
	resultStr = filterEachSpecialChar( resultStr, "{")
	resultStr = filterEachSpecialChar( resultStr, "}")
	resultStr = filterEachSpecialChar( resultStr, "[")
	resultStr = filterEachSpecialChar( resultStr, "]")
	resultStr = filterEachSpecialChar( resultStr, "~")
	resultStr = filterEachSpecialChar( resultStr, "\\")
	//resultStr = filterEachSpecialChar( resultStr, "|")

	resultStr = filterEachSpecialChar( resultStr, ".")
	resultStr = filterEachSpecialChar( resultStr, ",")
	resultStr = filterEachSpecialChar( resultStr, "<")
	resultStr = filterEachSpecialChar( resultStr, ">")

	return resultStr
}

function initQuery() {
	document.searchform.action = document.searchform.action + "&iniQuery=1" + "&searchscope=" + document.searchform.SubPortalTopic.value.replace("(","").replace(")","");
}