



/**
 * - util.js
 * - Global Function Declare Part
 * - 사이트 공용으로사용하는 여러가지 공통기능 함
 *
 * Copyright	Copyright (c) 2007
 * Company		LINKSOFT
 *
 * @author		YU
 * @version		1.0,
 * @see
 * @date		2008. 01. 08
 */


/*=======================================================================================
  ###  현재 정의되어 있는 함수 리스트  ###
  =======================================================================================
## UTIL ##
- gf_NextFocus(obj_form, txt_from, txt_to): Foucus 자동 이동


--------------------------------------------------------------------------
## LINK용 ##
- gf_Holdings(ai_Bibctrlno, ai_Seqno, as_Years, as_DBT): JournalHoldings 화면 이동
- gf_TOC(ai_Bibctrlno, ai_Seqno, as_Years, as_DBT): JournalTOC 화면 이동 
=========================================================================================*/


/*=======================================================================================
	함수명 : 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 == 6){
            txt_to.focus();
        }
    }
	return;
}

/*=======================================================================================
	함수명 : lf_MakeStandardLink
	기  능 : 원문보기 링크 띄위기 
	인  수 : URL
	RETURN : 
=========================================================================================*/
function lf_MakeStandardLink(fldcode, urlfile, ksno)
{	
	
	//새창의 크기
 	var cw=1000;
 	var ch=700;

	 //스크린의 크기
	var sw=screen.availWidth;
	var sh=screen.availHeight;
	
	//열 창의 포지션
	var px=(sw-cw)/2;
	var py=(sh-ch)/2;
	
	window.open('','makestandard','left='+px+',top='+py+',width='+cw+',height='+ch+',toolbar=no,menubar=no,status=no,scrollbars=no,resizable=no');

	var f = document.frmMakeStandard;
	f.FLD_Code.value = fldcode;
	f.EFileName.value = urlfile;
	f.ReqKS.value = ksno;
	f.KS_NO.value = ksno;
	f.submit();
}

/* history 조합검색(기본검색) */
function lf_CombineSearch(seq, dpid, vquery, equery, dquery){
		var arrEdit = new Array();
		var arrCol = new Array();
		arrEdit = equery.split("@");
		var sDBtype = "";
		var sScope = "";
		var sState = "";
		
		for (var i=1; i < arrEdit.length ; i++){
			arrCol = arrEdit[i].split(":");				
		}
		var sf = document.SearchForm;
		sf.displayID.value = dpid;
		sf.vquery.value = vquery;
		sf.dquery.value = dquery;	
		sf.isHistorySave.value = "true";	//검색식 저장하게 한다.
		sf.isHistoryRun.value = "false";	//검색식 검색실행여부
		sf.submit();
		
}
/*=======================================================================================
	함수명 : lf_MakeStandardLink1
	기  능 : 원문보기 링크 띄위기 ,로그
	인  수 : URL
	RETURN : 
=========================================================================================*/
function lf_MakeStandardLink1(fldcode, urlfile, ksno, cn, dbt, ref_url)
{	
	//KISTI_LOG 
	cgf_KISTILogSave2("", "SS22", dbt, "V07", cn, "1", "", "", "04");
	gf_urlclickmake(cn,dbt,ref_url);
	
	//새창의 크기
 	var cw=1000;
 	var ch=700;

	 //스크린의 크기
	var sw=screen.availWidth;
	var sh=screen.availHeight;
	
	//열 창의 포지션
	var px=(sw-cw)/2;
	var py=(sh-ch)/2;
	
	window.open('','makestandard','left='+px+',top='+py+',width='+cw+',height='+ch+',toolbar=no,menubar=no,status=no,scrollbars=no,resizable=no');

	var f = document.frmMakeStandard;
	f.FLD_Code.value = fldcode;
	f.EFileName.value = urlfile;
	f.ReqKS.value = ksno;
	f.KS_NO.value = ksno;
	f.submit();
}

/* history 조합검색(기본검색) */
function lf_CombineSearch(seq, dpid, vquery, equery, dquery){
		var arrEdit = new Array();
		var arrCol = new Array();
		arrEdit = equery.split("@");
		var sDBtype = "";
		var sScope = "";
		var sState = "";
		
		for (var i=1; i < arrEdit.length ; i++){
			arrCol = arrEdit[i].split(":");				
		}
		var sf = document.SearchForm;
		sf.displayID.value = dpid;
		sf.vquery.value = vquery;
		sf.dquery.value = dquery;	
		sf.isHistorySave.value = "true";	//검색식 저장하게 한다.
		sf.isHistoryRun.value = "false";	//검색식 검색실행여부
		sf.submit();
		
}

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);
		}
	});
}

/*=======================================================================================
	함수명 : lf_ReRun
	기  능 :  History에서 재실행
	인  수 :  
	RETURN :  
=========================================================================================*/
function lf_ReRun(seq, dispid, viewquery, editquery, dispquery, cflag)
{
    var sf = document.SearchForm;//Action 실행 Form
    if(cflag == "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.isHistorySave.value = "true";	//검색식 저장하게 한다.
	sf.isHistoryRun.value = "true";		//검색식 검색실행여부
//	sf.queryseqlist.value = seq;
    sf.submit();
}



/*=======================================================================================
	함수명 : lf_ReEdit
	기  능 :  History에서 재편집 분기.
	인  수 :  
	RETURN :  
=========================================================================================*/
function lf_ReEdit(seq, colid, dispid, editquery)
{

	if(colid == "7"){
		lf_ReEditExecute(dispid, editquery);
	}else{
		/* colid에 해당하는 페이지로 이동하게 해준다. */
	}
    return;
}


/*=======================================================================================
	함수명 : lf_ReEditExecute
	기  능 :  History에서 재편집실행.
	인  수 :  
	RETURN :  
=========================================================================================*/
function lf_ReEditExecute(dispid, editquery)
{
    var f = document.frmSearch; //화면사용 Form

	g_DispID =  dispid;
	g_EditQuery = editquery;

    // " 문제 대체
    gf_setFormQuery(dispid, g_EditQuery);
    gf_setFormVariable(dispid, f);
    f.txt_inputa.focus();
	document.SearchForm.isHistorySave.value = "0";//<!--검색식 저장여부-->
    return;
}

/********************************
- gf_urlclickmake : 논문상세 링크연결 및 통계로그 쌓기
- flag : 1:koi url, 0:일반url
- cn : 선택 CN번호
- dbt : DBtype
- url : link url
*********************************/
function gf_urlclickmake(cn,dbt,ref_url){

	var svccode		= "S5109";
	var controlno	= cn;
	var srcsite		= "STANDARD";
	var dbtype		= dbt;
	var source		= ref_url;
	
	//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;
}	

/*=======================================================================================
	함수명 : cfg_ddsStandRequset / getResult / cgf_ddsRequestOpen	
	기  능 : 특허정보  원문복사 신청 함수 - /js/common/favorite_patent.jsp와 같은 함수이다.
	             양쪽 싱크 맞춰야한다.
	인  수 : 
	RETURN : 
=========================================================================================*/
function cfg_ddsStandRequset(chk){
	// 로그인 여부 check 이전에 필요
	
		lf_openConfirm();	
		return;
	
	// logsave
	// cgf_KISTILogSave2("", "SS22", "PATENT", "V08", "", "1", "", "", "04");
	
	var ochk = document.getElementsByName(chk);
	var sval = "";
	
	for(var i=0; i < ochk.length; i++){
		if(ochk[i].checked) sval += ochk[i].value + "|";
	}
	
	var url = "/ddsrequestsrch.co";
	var param = "colid=7&keys=" + sval ; 
	param += "&sGubun=st";
	
	sendMainRequest(url,param,"POST");

	return;
}

function cfg_ddsStandRequset2(as_val){
	// 로그인 여부 check 이전에 필요
	
		lf_openConfirm();	
		return;
	
	
	// logsave
	// cgf_KISTILogSave2("", "SS22", "PATENT", "V08", "", "1", "", "", "04");

	var url = "/ddsrequestsrch.co";
	var param = "colid=7&keys=" + as_val ; 
	param += "&sGubun=st";
	sendMainRequest(url,param,"POST");
	
	return;
}


function getResult(as_Txt){
	if(as_Txt != "") {	
		var xmlDoc = cfg_ddsXmlMake(as_Txt);
		cgf_ddsRequestOpen(xmlDoc);
	} 
	return;
}

var gs_DDS_HEADER = "StandardList";
var gs_DDS_DATA_HEAD = "Standard";
var gs_DDS_TITLE 	= "TI";
var gs_DDS_MK 	= "MK";		//자료유형
var gs_DDS_TN 	= "TN";		//규격번호
var gs_DDS_TL 	= "TL";		//규격명칭
var gs_DDS_AT 	= "AT";		//저자
var gs_DDS_VY 	= "VY";		//년도
var gs_DDS_ST 	= "ST";		//상태

function cfg_ddsXmlMake(val){
	
	
	var arrValue = val.split("☆");
	
	var mtrlkind = "S"; //자료유형
	var titleno = "";	//규격번호
	var arttitle = "";	//규격명칭
	var author = "";	//저자
	var volyears = "";	//년도
	var stat = "T";		//상태
	
	var xmlDoc = cfg_CreateDom();
	var PInode = xmlDoc.createProcessingInstruction("xml","version='1.0' encoding='utf-8'");
	var rootNode = xmlDoc.createElement(gs_DDS_HEADER);
		
	
	xmlDoc.appendChild(PInode);
	xmlDoc.appendChild(rootNode);
	
	for (var idx =0; idx < arrValue.length; idx ++){
		
		var chkString = arrValue[idx];
		var arrString = chkString.split("▶");
		
		if(arrString.length > 5 ){
			
			mtrlkind = arrString[0]; 	//자료유형
			titleno  = arrString[1];	//규격번호
			arttitle = arrString[2];	//규격명칭
			author 	 = arrString[3];	//저자
			volyears = arrString[4];	//년도
			stat 	 = arrString[5];	//상태
			
			
			var dataNode = xmlDoc.createElement(gs_DDS_DATA_HEAD);
			var titleNode = xmlDoc.createElement(gs_DDS_TITLE);
			var mkNode = xmlDoc.createElement(gs_DDS_MK);
			var tnNode = xmlDoc.createElement(gs_DDS_TN);
			var tlNode = xmlDoc.createElement(gs_DDS_TL);
			var atNode = xmlDoc.createElement(gs_DDS_AT);
			var vyNode = xmlDoc.createElement(gs_DDS_VY);
			var stNode = xmlDoc.createElement(gs_DDS_ST);
			
			var titleTextNode = xmlDoc.createTextNode(arttitle);
			
			var mkTextNode = xmlDoc.createTextNode(mtrlkind);
			var tlTextNode = xmlDoc.createTextNode(arttitle);
			var atTextNode = xmlDoc.createTextNode(author);
			var vyTextNode = xmlDoc.createTextNode(volyears);
			var stTextNode = xmlDoc.createTextNode(stat);
			var tnTextNode = xmlDoc.createTextNode(titleno);
					
			
			rootNode.appendChild(dataNode);	
			dataNode.appendChild(titleNode);
			titleNode.appendChild(titleTextNode);
					
			dataNode.appendChild(mkNode);
			mkNode.appendChild(mkTextNode);
			
			dataNode.appendChild(tnNode);
			tnNode.appendChild(tnTextNode);
			
			dataNode.appendChild(tlNode);
			tlNode.appendChild(tlTextNode);
			
			dataNode.appendChild(atNode);
			atNode.appendChild(atTextNode);		
			
			dataNode.appendChild(vyNode);
			vyNode.appendChild(vyTextNode);	
			
			dataNode.appendChild(stNode);
			stNode.appendChild(stTextNode);		
						
			
		}
	}
	return 	xmlDoc.xml;
}

function cgf_ddsRequestOpen(xmldata){

	var memberid = "";
	var libid = "";
		
	if ((memberid == "" || memberid == "null") && libid == "etc") {
		CenterWindow('/jsp/common/dds/com_popup_help1.jsp', 'Warning', 500, 600, 0,0);
		return;
	} else if (memberid == "" || memberid =="null") {
	       	document.ddsrequestinfo.action = "/ddsrequest.co";
	} else {
	       	document.ddsrequestinfo.action = "/kistiddsrequest.co";
	}
	window.open("", "ddsWin", "width=807, height=700, scrollbars=1, menubars=0, status=0");
	document.ddsrequestinfo.target = "ddsWin";	       		
	//document.ddsrequestinfo.action = "/ddsrequest.co";
	document.ddsrequestinfo.method = "post";
	document.ddsrequestinfo.ddstype.value = 's';
	document.ddsrequestinfo.ddsvalue.value = xmldata;
	document.ddsrequestinfo.submit();	
	
}


function cfg_CreateDom(){
	var domObj;

	if (window.ActiveXObject)
	{
		domObj = new ActiveXObject("Microsoft.XMLDOM");
		
	} else {
		// code for Mozilla, Firefox, Opera..
		var parser = new DOMParser();
		domObj = parser.parseFromString(req.responseText, "text/xml");
	}
	return domObj;
	
}