﻿var xmlHttp = null;

function myGetTime()
{
	var myDate = new Date();
	return myDate.getTime();
}

function GetRequestHeader1()
{
	return top.location.protocol + "//" + top.location.host + "/LiboPub.dll?Search1";
//	return top.location.protocol + "//" + top.location.host + "/LiboCgi.exe";
}

function GetRequestHeader2()
{
	return top.location.protocol + "//" + top.location.host + "/LiboPub.dll?Search1?searchString=";
//	return top.location.protocol + "//" + top.location.host + "/LiboCgi.exe?";
}

function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	}
}
function defaultRequestHandler() {
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; 
  for(i=0; a && i < a.length && ( x=a[i] )&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

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_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function string_trim( v )
{
if( v.length == 0 )
	return v;
for( var i = 0 ; i < v.length ; i++ )
{
if( v.charAt( i ) != ' ' )
	break;
}
var nStart = i;
for( var i = v.length - 1 ; i >= 0 ; i-- )
{
if( v.charAt( i ) != ' ' )
	break;
}
var nEnd = i;
return nStart <= nEnd ? v.substring( nStart , nEnd + 1 ) : "";

}

function date_to_string( d )
{
	var result = d.getFullYear().toString();
	var month = d.getMonth() + 1;
	if( month < 10 )
	{
		result += "0";
	}
	result += month.toString();
	if( d.getDate() < 10 )
	{
		result += "0";
	}
	result += d.getDate().toString();

	return result;
}

function get_weeknews( baokan) {

	start = 0;
	filter_BAOKAN = baokan;
	filter_NEWS2 = "";
	expr = "";
	
	navigate_page( "LRC_WEEK_NEWS" , 'group.weeknews' );
}
function get_param_string( paramType , paramValue )
{
	return paramType + "~" + paramValue +"@";
}
function get_param_string2( paramType , paramValue )
{
	if( paramValue.length != 0 )
	{
		return paramType + "~" + paramValue +"@";
	}
	else
	{
		return "";
	}

}
function get_news_url( myRequest , myTemplate ) {
	var path = GetRequestHeader2() ;
	path += "request~" + myRequest + "@";
	path += "template~"+myTemplate + "@";
	path += get_param_string( "user" , "undefined" != typeof( user ) ? user : "" );
	path += get_param_string( "expr" , "undefined" != typeof( expr ) ? expr : ""  );
	path += get_param_string( "start" , "undefined" != typeof( start ) ? start : ""  );
	path += get_param_string( "number" , "undefined" != typeof( number ) ? number : ""  );
	path += get_param_string( "order" , "undefined" != typeof( order ) ? order : ""  );
	path += get_param_string( "sdate" , "undefined" != typeof( sdate ) ? sdate : ""  );
	path += get_param_string( "edate" , "undefined" != typeof( edate ) ? edate : ""  );
	path += get_param_string2( "filter_BAOKAN" , "undefined" != typeof( filter_BAOKAN ) ? filter_BAOKAN : ""  );
	path += get_param_string2( "filter_NEWS2" , "undefined" != typeof( filter_NEWS2 ) ? filter_NEWS2 : ""  );
	path += get_param_string2( "filter_TYPE" , "undefined" != typeof( filter_TYPE ) ? filter_TYPE : ""  );
	path += get_param_string( "abstract" , "undefined" != typeof( newsAbstract ) ? newsAbstract : ""  );
	path += get_param_string( "weeknews" , "undefined" != typeof( weeknews ) ? weeknews : ""  );
	path += get_param_string( "client_type" , "undefined" != typeof( client_type ) ? client_type : ""  );
	path += get_param_string( "server_port" , "undefined" != typeof( server_port ) ? server_port : ""  );
	path += "timeStamp~"+ myGetTime() +"@";

	return path;
}

function get_modify_url( myRequest , myTemplate ) {
	var path = GetRequestHeader2() ;
	path += "request~" + myRequest + "@";
	path += "template~"+myTemplate + "@";
	path += get_param_string( "user" , "undefined" != typeof( user ) ? user : "" );
	path += get_param_string( "expr" , "undefined" != typeof( expr ) ? expr : ""  );
	path += get_param_string( "start" , "undefined" != typeof( start ) ? start : ""  );
	path += get_param_string( "number" , "undefined" != typeof( number ) ? number : ""  );
	path += get_param_string( "client_type" , "undefined" != typeof( client_type ) ? client_type : ""  );
	path += get_param_string( "server_port" , "undefined" != typeof( server_port ) ? server_port : ""  );
	path += get_param_string( "searchKeyword" , "undefined" != typeof( searchKeyword ) ? searchKeyword : ""  );
	path += get_param_string( "searchField" , "undefined" != typeof( searchField ) ? searchField : ""  );
	path += get_param_string( "replaceKeyword" , "undefined" != typeof( replaceKeyword ) ? replaceKeyword : ""  );
	path += get_param_string2( "filter_TYPE" , "undefined" != typeof( filter_TYPE ) ? filter_TYPE : ""  );
	path += get_param_string( "searchTimeStamp" , "undefined" != typeof( searchTimeStamp ) ? searchTimeStamp : ""  );
	path += get_param_string( "dataTimeStamp" , "undefined" != typeof( dataTimeStamp ) ? dataTimeStamp : ""  );
	path += "timeStamp~"+ myGetTime() +"@";

	return path;
}

function my_request( form1 , url )
{
	form1.action = GetRequestHeader1();
	form1.searchString.value = url;
	form1.submit();

}

function navigate_page( myRequest , myTemplate ) {

	my_request( form1 , get_news_url( myRequest , myTemplate ) );
}
				
function navigate_page_modify( myRequest , myTemplate ) {

	my_request( form1 , get_modify_url( myRequest , myTemplate ) );
}

function navigate_page_browse( myRequest , myTemplate , append_param ) {

	my_request( form1 , get_news_url( myRequest , myTemplate )  + append_param );
}

function navigate_page_stat( myRequest , myTemplate , stat , append_param) {

	my_request( form1 , get_news_url( myRequest , myTemplate ) + "stat~" + encode( stat ) + "@" + append_param );

}

function get_news_image( imagepath , imagepath2 , imageParam ) {

	var path = GetRequestHeader2() ;
 	path += "request~LRC_NEWS_IMAGE@";	//索引與影像同主機時開啟，索引與影像不同主機時關閉
// 	path += "request~LRC_NEWS_IMAGE_LOG@";	//索引與影像同主機時關閉，索引與影像不同主機時開啟
	path += "start~" + 0 +"@";
	path += "number~" + 1 +"@";
	path += "user~" + user +"@";
	path += "doi~" + imagepath +"@";
	path += "client_type~"+ client_type +"@";
	path += "server_port~" + server_port +"@";
	path += "timeStamp~"+ myGetTime() +"@";

	window.open(path,'','width=800,height=700,resizable=1,scrollbars=yes,menubar=yes' );
//	window.frames("CommandFrame").document.location  = path;	//索引與影像同主機時關閉，索引與影像不同主機時開啟

}

function date_to_string2( d )
{
	var result = d.getFullYear().toString();
	result += "-";
	var month = d.getMonth() + 1;
	if( month < 10 )
	{
		result += "0";
	}
	result += month.toString();
	result += "-";
	if( d.getDate() < 10 )
	{
		result += "0";
	}
	result += d.getDate().toString();

	return result;
}
function get_end_send_date( month_number )
{
	var d = new Date();
	if( month_number == 7 )
	{
		d.setTime( d.getTime() + 7 * 24 * 60 * 60 * 1000 );
	}
	if( month_number == 14 )
	{
		d.setTime( d.getTime() + 14 * 24 * 60 * 60 * 1000 );
	}
	if( month_number == 30 )
	{
		d.setMonth( d.getMonth() + 1 );
	}
	if( month_number == 60 )
	{
		d.setMonth( d.getMonth() + 2 );
	}
	else if( month_number == 180 )
	{
		d.setMonth( d.getMonth() + 6 );
	}
	else if( month_number == 365 )
	{
		d.setMonth( d.getMonth() + 12 );
	}
	return date_to_string2( d );
}

function get_start_date( seperate )
{
	var d = new Date();
	switch( seperate )
	{
	case "1":
		//			d.setDate( d.getDate() - 1 );
		break;
	case "3":
		d.setDate( d.getDate() - 2 );
		break;
	case "14":
		d.setDate( d.getDate() - 13 );
		break;
	case "30":
		d.setMonth( d.getMonth() - 1 );
		d.setDate( d.getDate() + 1 );
		break;
	case "180":
		d.setMonth( d.getMonth() - 6 );
		d.setDate( d.getDate() + 1 );
		break;
	case "365":
		d.setFullYear( d.getFullYear() - 1 );
		d.setDate( d.getDate() + 1 );
		break;
	}
	return date_to_string( d );
}
function get_date_seperate( sdate )
{
	var index = 0;
	if( get_start_date( "1" ) == sdate )
	{
		index = 1;
	}
	if( get_start_date( "3" ) == sdate )
	{
		index = 2;
	}
	if( get_start_date( "14" ) == sdate )
	{
		index = 3;
	}
	if( get_start_date( "30" ) == sdate )
	{
		index = 4;
	}
	if( get_start_date( "180" ) == sdate )
	{
		index = 5;
	}
	if( get_start_date( "365" ) == sdate )
	{
		index = 6;
	}
	return index;

}
function normalize_string( s )
{
	var s2 = "";
	for( var j = 0 ; j < s.length ; j++ )
	{
		switch( s.charAt( j ) )
		{
			case '(':
			case ')':
			case '+':
			case '|':
			case '-':
			case ' ':
			case '﹛':
			case '[':
			case ']':
			case '*':
			case 'ㄝ':
			    s2 += "?";
			break;
			case ' ':
			    s2 += "+";
			break;
			default:
			    s2 += s.charAt( j );
		}
	}
	return s2;

}

function normalize_string2( s )
{
	var s2 = "";
	for( var j = 0 ; j < s.length ; j++ )
	{
		switch( s.charAt( j ) )
		{
			case '(':
			case ')':
			    s2 += "?";
			break;
			default:
			    s2 += s.charAt( j );
		}
	}
	return s2;

}

function IsValidKeyword( keyword )
{
	if( keyword  == "*" || keyword  == "?" || keyword  == "!" || keyword  == "#" || keyword  == "$"|| keyword  == "@")
	{
		return false;
	}
	return true;
}

function get_htm_stat() {
	var path = GetRequestHeader2() ;
	path += "request~LRC_CLIENT.GET_LIST@";
	path += "user~" + user + "@";
	path += "template~html.stat.abstract@";
	path += "client_type~"+ client_type +"@";
	path += "server_port~" + server_port +"@";
	path += "timeStamp~"+ myGetTime() +"@";

	my_request( form1 , path );
}


function get_client_list() {
	var path = GetRequestHeader2() ;
	path += "request~LRC_CLIENT.GET_LIST@";
	path += "user~" + user + "@";
	path += "template~right.client@";
	path += "client_type~"+ client_type +"@";
	path += "server_port~" + server_port +"@";
	path += "timeStamp~"+ myGetTime() +"@";

	my_request( form1 , path );
}

function get_user_list( client_id ) {
	var path = GetRequestHeader2() ;
	path += "request~LRC_USER.GET_LIST@";
	path += "user~" + user + "@";
	path += "client_id~" + client_id +"@";
	path += "sdate~" + sdate +"@";
	path += "edate~" + edate +"@";
	path += "template~right.user@";
	path += "client_type~"+ client_type +"@";
	path += "server_port~" + server_port +"@";
	path += "timeStamp~"+ myGetTime() +"@";

	my_request( form1 , path );
}

function get_ip_address( client_id ) {
	var path = GetRequestHeader2() ;
	path += "request~LRC_IPADDRESS.GET_LIST@";
	path += "user~" + user + "@";
	path += "client_id~" + client_id +"@";
	path += "sdate~" + sdate +"@";
	path += "edate~" + edate +"@";
	path += "template~right.ip@";
	path += "client_type~"+ client_type +"@";
	path += "server_port~" + server_port +"@";
	path += "timeStamp~"+ myGetTime() +"@";

	my_request( form1 , path );
}

function get_alert_list( client_id ) {
	var path = GetRequestHeader2() ;
	path += "request~LRC_ALERT.GET_LIST@";
	path += "user~" + user + "@";
	path += "client_id~" + client_id +"@";
	path += "sdate~" + sdate +"@";
	path += "edate~" + edate +"@";
	path += "template~right.alert@";
	path += "client_type~"+ client_type +"@";
	path += "server_port~" + server_port +"@";
	path += "timeStamp~"+ myGetTime() +"@";

	my_request( form1 , path );
}

function logout( page )
{
	var path = GetRequestHeader2() ;
	path += "request~LRC_LOGOUT@";
	path += "user~" + top.user + "@";
	path += "client_type~"+ client_type +"@";
	path += "server_port~" + server_port +"@";
	
	createXMLHttpRequest();
	xmlHttp.onreadystatechange = defaultRequestHandler;
	xmlHttp.open("GET", path, false);
	xmlHttp.send(null);
	navigate_page( 'LRC_GET_HTML' , page );
}


function checkDate(theDate){
  var reg = /^\d{4}-((0{0,1}[1-9]{1})|(1[0-2]{1}))-((0{0,1}[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;  
  var result=true;
  if(!reg.test(theDate))
    result = false;
  else{
    var arr_hd=theDate.split("-");
    var dateTmp;
    dateTmp= new Date(arr_hd[0],parseFloat(arr_hd[1])-1,parseFloat(arr_hd[2]));
    if(dateTmp.getFullYear()!=parseFloat(arr_hd[0])
       || dateTmp.getMonth()!=parseFloat(arr_hd[1]) -1 
        || dateTmp.getDate()!=parseFloat(arr_hd[2])){
        result = false
    }
  }
  return result;
}

function convertToDate(theDate){
    var arr_hd=theDate.split("-");
    var dateTmp;
    return new Date(arr_hd[0],parseFloat(arr_hd[1])-1,parseFloat(arr_hd[2]));
}

function search_index(){
	start = 0;
	order = "date.D";
	filter_BAOKAN = "";
	filter_NEWS2 = "";
	var now = new Date();
	var current_Year = now.getYear();
	var current_Day = now.getDate();
//	var current_Month = (parseInt(current_Day, 10) &lt; 7) ?now.getMonth() :now.getMonth()+1;
//	current_Month = (parseInt(current_Month, 10) &lt; 7) ?"0"+current_Month :"";
	sdate = current_Year+"0701";
	edate = current_Year+"0731";
	keyword = "";
	expr = encode( keyword );
	number = "50";
	weeknews = "0";
	navigate_page_stat( "LRC_SEARCH.METADATA_LIST" , 'search.index' , '進階檢索' , 'history~1@');
}

