







	
/**
 * - ndsl_util.js
 * - Global Function Declare Part
 * - NDSL에서 링크정보 및 공용으로사용하는 여러가지 공통기능 함
 *
 * Copyright	Copyright (c) 2007
 * Company		LINKSOFT
 *
 * @author		SICHIN
 * @version		1.0,
 * @see
 * @date		2008. 01. 08
 */


/*=======================================================================================
  ###  현재 정의되어 있는 함수 리스트  ###
  =======================================================================================
## UTIL ##
- gf_NextFocus(obj_form, txt_from, txt_to): Foucus 자동 이동
- gf_export_action(as_objname, as_flag) : NDSL 출력.
--------------------------------------------------------------------------
## LINK용 ##
====> (KISTI의  favorite_bibart.jsp에 정의된것 과 같다.  ndsl_util.jsp 변경되면 favorite_bibart.jsp에도 반영해야 함. )
- gf_Holdings(ai_Bibctrlno, ai_Seqno, as_Years, as_DBT): JournalHoldings 화면 이동
- gf_TOC(ai_Bibctrlno, ai_Seqno, as_Years, as_DBT): JournalTOC 화면 이동 
- gf_AbstToggle(obj, obj2, absid, artctrlno): 초록보기
- gf_TagInsert(object, cn, dbt, controlNo): 태그입력
- gf_TagCloud(as_name,as_gubun): 태그 클라우드 화면이동 
- gf_citeinfomake(citegubun,flag,cn,dbt,url,target) 
- gf_MoveResolverSite(as_Genre,as_RURL,as_ISSN,as_EISSN,as_DATE,as_VOLUME,as_ISSUE,as_SPAGE,as_EPAGE,as_ISBN,ai_Artctrlno,as_ATitlet)  : 선택한 Resolversite로 이동한다.
=========================================================================================*/

/*=----------------------## UTIL ##-------------------------------------------------------*/
/*=======================================================================================
	함수명 : gf_NextFocus
	기  능 : Foucus 자동 이동
	인  수 : obj_form - object
		   obj_from - 'txt_from'
		   obj_to   - 'txt_to'
	RETURN : 
=========================================================================================*/
function gf_NextFocus(obj_form, txt_from, txt_to) 
{
    var f = obj_form;
    if(txt_from != "undefined" && txt_from != null){
        if(txt_from.value.length == 4){
            txt_to.focus();
        }
    }
	return;
}

/*=----------------------## LINK ##-------------------------------------------------------*/
/*=======================================================================================
	함수명 : gf_Holdings
	기  능 : JournalHoldings 화면 이동
	인  수 : ai_Bibctrlno - 저널제어번호
		   ai_Seqno - 권호일련번호
		   as_Years   - 발행년
		   as_DBT   - 저널/프로시딩구분 (NJOU,NPRO)
	RETURN : 
=========================================================================================*/
function gf_Holdings(ai_Bibctrlno, ai_Seqno, as_Years, as_DBT) 
{
//alert("gf_Holdings bibctrlno="+ai_Bibctrlno+", seqno="+ai_Seqno+", years="+as_Years+", dbt="+as_DBT);
	location.href="/journalhold.do?bibctrlno="+ai_Bibctrlno+"&seqno="+ai_Seqno+"&years="+as_Years+"&DBT="+as_DBT;
	return;
}



/*=======================================================================================
	함수명 : gf_TOC
	기  능 : JournalTOC 화면 이동
	인  수 : ai_Bibctrlno - 저널제어번호
		   ai_Seqno - 권호일련번호
		   as_Years   - 발행년
		   as_DBT   - 저널/프로시딩구분 (NJOU,NPRO)
	RETURN : 
=========================================================================================*/
function gf_TOC(ai_Bibctrlno, ai_Seqno, as_Years, as_DBT) 
{
//alert("gf_TOC bibctrlno="+ai_Bibctrlno+", seqno="+ai_Seqno+", years="+as_Years+", dbt="+as_DBT);
	location.href="/journaltoc.do?bibctrlno="+ai_Bibctrlno+"&seqno="+ai_Seqno+"&years="+as_Years+"&DBT="+as_DBT;
	return;
}

/*=======================================================================================
	함수명 : gf_AbstToggle
	기  능 : 초록버튼 열고 닫기  
	인  수 : obj, obj2, absid, artctrlno
	RETURN : 
=========================================================================================*/
var gsajax_tempbuffer = "";
//function gf_AbstToggle(obj, obj2, absid, artctrlno, dbt) //DB에서 가져올때
function gf_AbstToggle(obj, obj2) 	//FAST에서 가져온경
{


	gsajax_tempbuffer ="";
	if (obj.style.display != "none") {
		if(document.getElementById(gsajax_tempbuffer) == null || document.getElementById(gsajax_tempbuffer) == undefined)
		{}
		else document.getElementById(gsajax_tempbuffer).innerHTML = "";
	 	obj.style.display = "none" ;
	 }
	else  obj.style.display = "";
	
	if (obj.style.display != "none") {
		obj2.src = "/img/ndsl/" + obj2.id+ "2" + ".gif";
		obj2.title = "초록닫기";		
		
/*		//ajax사용 - DB이용시 이용한다.
		var url = "ndslAbsajax.co";
		var params  = "artctrlno=" + artctrlno;
			params += "&dbt=" + dbt;
		gsajax_tempbuffer = absid;
		sendAbsRequest( url, params, "POST");
*/
	} else {
		obj2.src = "/img/ndsl/" + obj2.id + ".gif";	
		obj2.title = "초록보기";
	}
}

/*=======================================================================================
    함수명 : absresult
    기  능 : 초록데이터 Push
    인  수 : value - Ajax에서 넘겨받은 초록데이터 (DB이용시ㅣ 사용한다.)
    리  턴 : 
=========================================================================================*/
function absresult(value)
{	
	document.getElementById(gsajax_tempbuffer).innerHTML = value;
//	eval(gsajax_tempbuffer+".innderHTML=value;");
	return;
}


/*=======================================================================================
    함수명 : gf_TagCloud
    기  능 : TagCloud클릭시 TagCloud상세 화면으로 이동한다.
    인  수 : as_name,as_gubun
    리  턴 : 
=========================================================================================*/
function gf_TagCloud(as_name,as_gubun)
{
    var tf = document.tagForm;
    tf.tagName.value = encodeURIComponent(as_name);
    tf.scholarColid.value = as_gubun;
	tf.action = "/tagcloud.do";
	tf.submit();
}


/*=======================================================================================
	함수명 : gf_TagInsert/ insertTag
	기  능 : 태그입력 기능 관련 함수 
	인  수 : object
	RETURN : 
=========================================================================================*/
function gf_TagInsert(object, cn, dbt, controlNo)
{

	SesCommonLoginType = cgf_SessionCheck2();
	if(SesCommonLoginType != "1"){
		//로그인 NEW 방식 - 로그인 처리만 하게 하고, 이용자가 다시 기능을 수행하게 한다.
		lf_openConfirm();
		return;
	}

	var position = new Object;
	position.x = 0;
	position.y = 0;


	if( object ) {
		var offset =  jQuery(object).offset();
		position.x = offset.left + jQuery(object).width() + 10;
		position.y = offset.top;
	}

	var div = jQuery("#layer_tag");

	div.css("top", position.y);
	div.css("left", position.x);
	div.css("visibility", "visible");
	
	var f = document.TagForm;
	f.cn.value = cn;
	f.dbt.value = dbt;
	f.controlNo.value = controlNo;


	return;
}

function closeTagForm() {
	var div = jQuery("#layer_tag");
	div.css("visibility","hidden");
}


function insertTag(){
	gf_InsertTag("");
	return;
}

function gf_InsertTag(as_userid){

	//TagForm은 TopMenu.jsp에서 정의 됨.
	var f = document.TagForm;
	f.userId.value = as_userid;

	if(gf_Trim(as_userid,'a') == ""){
		//로그인정보 없음.
		gf_Msg("KOR", 121, 1, "");
		return;
	}
	
	if(gf_Trim(f.textfield.value,'a') == ""){
		//입력데이타 데이타 없음.
		gf_Msg("KOR", 127, 1, "");
		return;
	}
	
	
	var collection_id = f.collection_id.value;
	var tagName = f.textfield.value;
	var userId = f.userId.value;
	var cn = f.cn.value;
	var dbt = f.dbt.value;
	var controlNo = f.controlNo.value;

	
	var url = "/inserttag.co";
	var params  = "collection_id="+collection_id;
		params += "&tagName="+tagName;
		params += "&userID="+userId;
		params += "&cn="+cn;
		params += "&dbt="+dbt;
		params += "&controlNo="+controlNo;

	sendTagCloudSave( url, params, "POST");
	return;

}

function gf_TagCloudSaveAjaxResult(value)
{
	//var su = value;
	value = gf_Trim(value,'a');	
	if(value.toUpperCase() == "FAIL" ){
		gf_Msg("KOR", 120, 1, "");//115:실패
		document.getElementById("textfield").value = "";
		document.getElementById("textfield").focus();	
	}else{
		gf_Msg("KOR", 120, 1, "");
		closeTagForm();		
	}
	return;
}



/*=======================================================================================
	함수명 : lf_ReRun
	기  능 :  History에서 재실행
	인  수 :  
	RETURN :  
=========================================================================================*/
function lf_reExecute(seq, dispid, cType)
{
	http = jQuery.ajax( {
		url: "/getHistory.co",
		type: "POST",
		data: {	seq: seq},
		complete:function(res, status) {
			result = jQuery.trim(res.responseText);
			arrQuery = result.split("★");
			viewquery = arrQuery[0];
			if(arrQuery.length > 1) editquery = arrQuery[1];
			if(arrQuery.length > 2) dispquery = arrQuery[2];
			lf_ReRun(seq, dispid, viewquery, editquery, dispquery,  cType);
		}
	});
}

function lf_ReRun(seq, dispid, viewquery, editquery, dispquery,  cType)
{
		
	
	
	if(viewquery !="") {
	    var sf = document.SearchForm;//Action 실행 Form
		if(cType == "F"){
			sf.bexecute_flag.value = false;
		}else{
			sf.bexecute_flag.value = true;
		}
		sf.displayID.value = dispid;
		sf.vquery.value = viewquery;
		sf.equery.value = editquery;
		sf.dquery.value = dispquery;	
		sf.oldquery.value = viewquery;
		sf.olddquery.value = dispquery;	
		sf.isHistorySave.value = "true";	//검색식 저장하게 한다.
		sf.isHistoryRun.value = "true";		//검색식 검색실행여부
		sf.historySeq.value = seq;											//검색식 검색실행SEQ (0:MAX)
		sf.submit();
	}
    return;
}


/*=======================================================================================
	함수명 : gf_export_action
	기  능 :  NDSL 출력실행 .
	인  수 :  as_objname, as_flag
	RETURN :  
=========================================================================================*/
function gf_export_action(as_objname, as_type)
{
	var allcheck = false;
	var vquery = "";

	if(document.getElementById("checkAll1").checked){
		allcheck = true;
	}

	//전체선택인경우 - vquery이용 재검색 후 1000건 출력
	if(allcheck){
		vquery = document.SearchForm.vquery.value;
		lf_export_all_action( vquery, as_type);
		lf_export_action(as_objname, as_type);	
	//체크박스 클릭한 경우만 출력한다.
	}else{
		lf_export_action(as_objname, as_type);	
	}

    return;
}




/********************************
- gf_citeinfomake : 참고문헌,인용문헌 링크연결 및 통계로그 쌓기
- citegubun : 'citing'-인용문헌, 'cite'-참고문헌
- flag : 'title', 'doi', 'pmid', 'koi' --> citegubun, flag 조합으로 사이트코드 생성
- cn : 선택 CN번호
- dbt : DBtype
- url : link url
- target : target 정보
*********************************/
function gf_citeinfomake(citegubun,flag,cn,dbt,url,target){

/*
alert('citegubun='+citegubun);
alert('flag='+flag);
alert('cn='+cn);
alert('dbt='+dbt);
alert('url='+url);
alert('target='+target);
*/
	var svccode	= "";
	var controlno	= cn;
	var srcsite		= "NDSL";
	var dbtype		= dbt;
	var source		= url;

	//인용문헌
	if(citegubun == 'citing'){
		if(flag == 'title'){
			svccode = "S2107";
		}else if(flag == 'koi'){
			svccode = "S2207";
		}else{
			//doi, pmid인경우
			svccode = "S3207";
		}
	}else{
	//참고문헌
		if(flag == 'title'){
			svccode = "S2103";
		}else if(flag == 'koi'){
			svccode = "S2203";
		}else{
			//doi, pmid인경우
			svccode = "S3203";
		}
	}

	//Ajax 호출 - 통계저장한다.
	http = jQuery.ajax( {
		url: "/linkcenterlogsaveAjax.co",
		type: "POST",
		data: {	
			svccode: svccode,	
			controlno: controlno,	
			srcsite: srcsite,	 
			dbtype:	dbtype,
			source: source
		}, 
		async:false,
		complete:function(res, status) {
			result = jQuery.trim(res.responseText);
		}
	});

	if(target == '_blank'){
		window.open(url);	
	}else{
		location.target = target;
		location.href = url;
	}

}




/********************************
- gf_urlclickmake : 논문상세 링크연결 및 통계로그 쌓기
- flag : 1:koi url, 0:일반url
- cn : 선택 CN번호
- dbt : DBtype
- url : link url
*********************************/
function gf_urlclickmake(flag,cn,dbt,url){

	var svccode	= "";
	var controlno	= cn;
	var srcsite		= "NDSL";
	var dbtype		= dbt;
	var source		= url;

	if(flag=="1"){
		svccode = "S2209";
	}else{
		svccode = "S3209";
	}

	
	//Ajax 호출 - 통계저장한다.
	http = jQuery.ajax( {
		url: "/linkcenterlogsaveAjax.co",
		type: "POST",
		data: {	
			svccode: svccode,	
			controlno: controlno,	
			srcsite: srcsite,	 
			dbtype:	dbtype,
			source: source
		}, 
		async:false,
		complete:function(res, status) {
			result = jQuery.trim(res.responseText);
		}
	});

	return;
}	





/*<!--***************************************************************
	함 수 명	: gf_MoveResolverSite()
	설    명	: 선택한 Resolversite로 이동한다.
	Argument: 
		as_Genre	- article,proceeding,journal,conference
		as_RURL	- Resolver Base URL
		as_ISSN
		as_EISSN
		as_DATE
		as_VOLUME
		as_ISSUE
		as_SPAGE
		as_EPAGE
		as_ISBN	
		ai_Artctrlno
		as_ATitle
***************************************************************-->*/
function gf_MoveResolverSite(as_Genre,as_RURL,as_ISSN,as_EISSN,as_DATE,as_VOLUME,as_ISSUE,as_SPAGE,as_EPAGE,as_ISBN,ai_Artctrlno,as_ATitle) 
{
	//alert(as_Genre+","+as_RURL+","+as_ISSN+","+as_EISSN+","+as_DATE+","+as_VOLUME+","+as_ISSUE+","+as_SPAGE+","+as_EPAGE+","+as_ISBN+","+as_ATitle);

	/* 로그저장 */
	//gf_saveLog('1118',ai_Artctrlno,'','1');
	
	var ResolverURL = "";
	var ls_Temp = "";
	ls_Temp += as_RURL+"?sid=NDSL";
	ls_Temp += "&genre="+as_Genre;
	ls_Temp += "&issn="+as_ISSN;
	ls_Temp += "&eissn="+as_EISSN;
	ls_Temp += "&date="+as_DATE;
	ls_Temp += "&volume="+as_VOLUME;
	ls_Temp += "&issue="+as_ISSUE;
	ls_Temp += "&spage="+as_SPAGE;
	ls_Temp += "&epage="+as_EPAGE;
	ls_Temp += "&isbn="+as_ISBN;
	ls_Temp += "&atitle="+as_ATitle;
	ResolverURL = ls_Temp;
	
	//alert(ResolverURL+" ::(size "+ResolverURL.length+")");

	window.open(ResolverURL);

	return;
}

