﻿// JScript ファイル

var MstrInterestUrl = 'http://localhost:2836/PAFinder/xml/Interest.xml';
var MstrKeywordUrl = 'http://localhost:2836/PAFinder/xml/Keyword.xml';
var MstrDiseaseUrl = 'http://localhost:2836/PAFinder/xml/Disease.xml';
var MstrFAQUrl = 'http://www.pa-engine.net/pac_test/web2/faq/search_text.asp';
var MstrSiteUrl = 'http://www.pa-engine.net/pac_test/web2/faq/search_text.asp';
var MstrFAQPolicyUrl = 'http://www.pa-engine.net/pac_test/web2/crossdomain.xml';
var MstrXMLPolicyUrl = 'http://localhost/getFAQList/getFAQList.asp';
var MstrFAQJsonUrl = 'http://qa.eisai.jp/api/getFAQList.asp';
var MstrSiteJsonUrl = 'http://qa.eisai.jp/api/bridge.asp';
var MstrSearch = '';
var MintFAQPage = 1;
var MintSitePage = 1;
var MintFAQDispCnt = 10;
//var MintSiteDispCnt = 5;
var MintSiteDispCnt = 10;
function insertProgress(VobjElement) {
	var strHTML;
	strHTML = "<li>";
	strHTML += "<div class=\"wf_loading\">";
	strHTML += "<img src=\"/resource/images/wf/loading.gif\" alt=\"\" />";
	strHTML += "</div>";
	strHTML += "</li>";
	VobjElement.innerHTML = strHTML;
}

function receiveToKeyword(Vstr) {
    PAFuncLib.$('tbxSearch').value = PAFuncLib.$('tbxSearch').value + ' ' + Vstr;
    PAFuncLib.clickButton('btnSearch');
}

function createInterestDiseaseRanking(VstrXml) {
    var pnl = PAFuncLib.$('pnlInterest');
    if (pnl) {
        pnl.innerHTML = '';
        
        var obj = PAFuncLib.toDOM(VstrXml);
        var arr = obj.getElementsByTagName('item');
        for (var i = 0; i < arr.length; i++) {
            var lst = document.createElement('ol');
            for (var i = 0; i < arr.length; i++) {
                var item = document.createElement('li');
                var text = document.createTextNode(arr[i].getAttribute('word') + '');
                item.appendChild(text);
                lst.appendChild(item);
            }
            pnl.appendChild(lst);
        }
    }
}
//*イベント処理----------------------------------------------------------------------------------*//

//検索ボタンクリック
function btnSearch_onClick(){
		PAFuncLib.returnValueFalse();
		var Text = PAFuncLib.$('searchWords').value;
		setCookie(Text);

		searchButton_onClick(Text,true);
}

function searchButton_onClick(VstrKeywords,VblnNewWord){

    //MstrSearch = unescape(VstrKeywords);
	if(200 < VstrKeywords.length){
		window.alert("検索するキーワードが長すぎます。200文字以内に絞ってください。");
		return;
	}
	MstrSearch = VstrKeywords;

    $.historyInit(pageload, "index.html");

	//ハッシュ値の初期化
	if(VblnNewWord){
		iniPageRecord();
	}
    mainPageLoad(VstrKeywords,VblnNewWord);
}

//ページ読み込み時
function window_load(VblnPaging) {

    var flashvars = {
	};
	var params = {
		menu: "false",
		scale: "noScale",
		allowFullscreen: "true",
		allowScriptAccess: "always",
		bgcolor: "#FFFFFF"
	};

//    $.historyInit(pageload, "index.html");

	if(autoSearchFlag){
		return;
	}

    MintFAQPage = 1;
    MintSitePage = 1;
    var strBuff = readCookie("PAKeywords");
	if(!strBuff || strBuff == null){
		strBuff = "";
	}
   	strBuff = decodeURIComponent(strBuff);
	strBuff = getConvertString(strBuff);

	MstrSearch = strBuff;
	PAFuncLib.$("searchWords").value = strBuff;

    var query;
	var blnFlg;
    query = window.location.href;
	if(0 <= query.indexOf("#")){
		blnFlg = false;
	}
	else{
		blnFlg = true;
	}

	searchButton_onClick(MstrSearch,blnFlg);
}

//ページング(FAQ検索)
function pageFAQ_click(VstrText) {
    MstrSearch = VstrText;
    insertProgress(PAFuncLib.$('pnlFAQ'));
    
    MintFAQPage = 1;
    PAFuncLib.insertScript({ Src : MstrFAQJsonUrl + '?dispcnt=' + MintFAQDispCnt + '&page=' + MintFAQPage + '&search=' + PAURLEscape(MstrSearch) });
}

//ページング(サイト内検索)
function pageSite_click(VstrText) {
    MstrSearch = VstrText;
    MintSitePage = 1;
    
    insertProgress(PAFuncLib.$('pnlSite'));
    PAFuncLib.insertScript({ Src : MstrSiteJsonUrl + '?dispcnt=' + MintSiteDispCnt + '&page=' + MintSitePage + '&search=' + PAURLEscape(MstrSearch) });    
}
//*イベント処理 end --------------------------------------------------------------------------*//

//*ページ遷移処理 start ----------------------------------------------------------------------*//

function pageMoveFAQ(VintFAQPage){
    
    //ローディング処理
    PAFuncLib.$('pnlFAQ').innerHTML = '';
    insertProgress(PAFuncLib.$('pnlFAQ'));
    
    MintFAQPage = VintFAQPage;
    PAFuncLib.insertScript({ Src : MstrFAQJsonUrl + '?dispcnt=' + MintFAQDispCnt + '&page=' + MintFAQPage + '&search=' + PAURLEscape(MstrSearch) })
    
    recordPage();
}

function pageMoveSite(VintSitePage){

    //ローディング処理
    PAFuncLib.$('pnlSite').innerHTML = '';
    insertProgress(PAFuncLib.$('pnlSite'));
    
    MintSitePage = VintSitePage;
    PAFuncLib.insertScript({ Src : MstrSiteJsonUrl + '?dispcnt=' + MintSiteDispCnt + '&page=' + MintSitePage + '&search=' + PAURLEscape(MstrSearch) });    

    recordPage();
}

//*ページ遷移処理 end -----------------------------------------------------------------------------*//

//*ページハッシュ----------------------------------------------------------------------------------*//

//ハッシュ初期化
function iniPageRecord(){
    MintFAQPage = 1;
	MintSitePage = 1;
	recordPage();
}

function recordPage(){
    var hash = MintFAQPage + "_" + MintSitePage;
    if($.browser.msie) {
        hash = encodeURIComponent(hash);
    }
    $.historyLoad(hash);
	document.title = 'Wellness Finder 健康・病気と薬に関する情報検索 | エーザイの一般生活者向けサイト';
}
//*-------------------------------------------------------------------------------------------------*//
function pageload(){}


//*JSON読み込み・タグ形成処理 start ----------------------------------------------------------------*//

function createSiteJson(Varr) {
    
    var blnSiteCreate = false;
    
    var site = PAFuncLib.$('pnlSite');
    
    if (site) {
       site.innerHTML = '';
       var allCount = Varr['result']['all_count'];
       
       PAFuncLib.$('SiteAllCnt').innerHTML = '<strong>' + allCount + '</strong>';
/*
       if(allCount == 0){
            if(PAFuncLib.$('sitePage')){
                PAFuncLib.$('sitePage').innerHTML = '';
            }
            return;
       }
*/
        //$('lblSiteResult').innerHTML = '&nbsp;&nbsp;&nbsp;<strong>' + allCount + '</strong>件見つかりました。';
        var nowPage = Varr['result']['now_page'];
        var allPage = Varr['result']['all_page'];
        var datas = Varr['data'];
        
        if (datas) {
            var tag = "";
            var newWindow = "";
            var strTitle = "";
            for (var i = 1; i <= MintSiteDispCnt; i++) {
                var item = datas['item' + i];
                if (item) {
	                newWindow = "";
	                if(item['target'] == "1"){
	                    newWindow = "target='_blank'";
	                }

					if(item['name']==""){
						strTitle = item['url'];
					}
					else{
						strTitle = item['name'];
					}

                    tag += '<li>';
                    tag += '<h3><a href="' + item['url'] + '" ' + newWindow + '>' + strTitle + '</a></h3>';
                    tag += '<span>［ファイル形式 ' + item['file'] + '｜ファイルサイズ ' + item['file_size'] + 'B］</span>';
                    tag += '<p>' + item['text'] + '</p>';
                    tag += '<span>' + item['url'] + '</span>';
                    tag += '</li>';
                    blnSiteCreate = true;
                }
                else {
                    break;
                }
            }
            site.innerHTML = tag;
        }

		if(!blnSiteCreate){
			tag = "<li>";
			tag += "<div class=\"wf_error\">";
			tag += "該当する情報がありませんでした。<br />";
			tag += "キーワードを減らすか変更して検索してみてください。";
			tag += "</div>";
			tag += "</li>";
            site.innerHTML = tag;
			PAFuncLib.$('sitePage').innerHTML = '';
			PAFuncLib.$('sitePage_bottom').innerHTML = '';
			return;
		}
        
        //ページナビを設定
        dispPageNavi(nowPage,allPage,'sitePage','pageMoveSite');

		eisaiUtility.externalLink();
    }
}

function createFAQJson(Varr) {
    
    var blnFAQCreate = false;
    
    var faq = PAFuncLib.$('pnlFAQ');
    if (faq) {
        faq.innerHTML = '';        
        var allCount = Varr['result']['all_count'];
        PAFuncLib.$('FAQAllCnt').innerHTML = '<strong>' + allCount + '</strong>';
/*
        if(allCount == 0){
            if(PAFuncLib.$('FAQPage')){
                PAFuncLib.$('FAQPage').innerHTML = '';
            }
            return;
        }
*/

        //$('lblFAQResult').innerHTML = '&nbsp;&nbsp;&nbsp;<strong>' + allCount + '</strong>件見つかりました。';
        var nowPage = Varr['result']['now_page'];
        var allPage = Varr['result']['all_page'];
        var datas = Varr['data'];
        if (datas) {
            var tag = "";
            for (var i = 1; i <= MintFAQDispCnt; i++) {
                var item = datas['item' + i];         
                if (item) {   
                    tag += '<li>';
                    tag += '<span>' + item['category']  + '</span>';
                    tag += '<h3><a href="' + item['url'] + '" >' + item['title'] + '</a></h3>';
                    tag += '<img src="' + item['img_src'] + '" width="45" height="45" alt="" />';
                    tag += '</li>';
                    
                    blnFAQCreate = true;
                }
                else {
                    break;
                }
            }
            faq.innerHTML = tag;
        }

		if(!blnFAQCreate){
			tag = "<li>";
			tag += "<div class=\"wf_error\">";
			tag += "該当する情報がありませんでした。<br />";
			tag += "キーワードを減らすか変更して検索してみてください。";
			tag += "</div>";
			tag += "</li>";
            faq.innerHTML = tag;
 			PAFuncLib.$('FAQPage').innerHTML = '';
 			PAFuncLib.$('FAQPage_bottom').innerHTML = '';
			return;
		}

        //ページナビを設定
        dispPageNavi(nowPage,allPage,'FAQPage','pageMoveFAQ');
    } 
}
//2009.7.2 edit end --

//*JSON読み込み・タグ形成処理 end  ----------------------------------------------------------------*//


//ページ読み込み処理
function mainPageLoad(VstrKeywords,VblnPaging){
    $.historyInit(pageload, "index.html");
    var strUrl = new String(window.location.href);
    if(!VblnPaging){
        if((strUrl.lastIndexOf("#") > 0) && (strUrl.lastIndexOf("_") > 0) && (strUrl.lastIndexOf("#") < strUrl.lastIndexOf("_"))){
            strPage = strUrl.replace(/^.*#/, '');
            var splitAry = strPage.split("_");
            MintFAQPage = splitAry[0];
            MintSitePage = splitAry[1];
            recordPage();
            MstrSearch = VstrKeywords;
            dispSearchResult(MstrSearch);
//           document.title = 'Wellness Finder 健康・病気と薬に関する情報検索 | エーザイの一般生活者向けサイト';
        }
		else{
			MintFAQPage = 1;
			MintSitePage = 1;
		    dispSearchResult(MstrSearch);
		}
    }
	else{
		MintFAQPage = 1;
		MintSitePage = 1;
	    dispSearchResult(MstrSearch);
	}

/*
    //パラメータ読み込み処理 --
    var strURL = window.location.search;
    if(strURL == ""){
        return;
    }
    if(!(strURL.lastIndexOf("?") == 0 && strURL.lastIndexOf("word")>0)){
        return;
    }
*/
}

function onLoad_noFlash(VobjTextBoxID){

    //テキストボックスにキーワードを設定
    PAFuncLib.$(VobjTextBoxID).value = MstrSearch;
    
    //検索結果を表示
    dispSearchResult(MstrSearch);
}

function setSearchWord() {
    var query;
    query = window.location.search;

	var intPos = query.indexOf("word=");
	if(intPos < 0 ){
		return "";
	}
	var strBuff = query.substring(intPos + 5);
	intPos = strBuff.indexOf("&");
	if(0 <= intPos){
		strBuff = strBuff.substring(0,intPos);
	}
	intPos = strBuff.indexOf("#");
	if(0 <= intPos){
		strBuff = strBuff.substring(0,intPos);
	}
	return unescape(strBuff);
/*
    var splitAry = new Array;
    splitAry = query.split("=");
    MstrSearch = unescape(splitAry[1]);
*/
}

function dispSearchResult(VstrSearchWord){

    //ローディング処理
	PAFuncLib.$('FAQPage').innerHTML = '';
    PAFuncLib.$('sitePage').innerHTML = '';
	PAFuncLib.$('FAQAllCnt').innerHTML = '0';
    PAFuncLib.$('SiteAllCnt').innerHTML = '0';
    insertProgress(PAFuncLib.$('pnlFAQ'));
	insertProgress(PAFuncLib.$('pnlSite'));

    if(typeof VstrSearchWord == 'undifined'){
        MstrSearch = VstrSearchWord;
    }
    PAFuncLib.insertScript({ Src : MstrFAQJsonUrl + '?dispcnt=' + MintFAQDispCnt + '&page=' + MintFAQPage + '&search=' + PAURLEscape(MstrSearch) }); 
    PAFuncLib.insertScript({ Src : MstrSiteJsonUrl + '?dispcnt=' + MintSiteDispCnt + '&page=' + MintSitePage + '&search=' + PAURLEscape(MstrSearch) });
}

function delayInit() {
    $('swfKeyword').render(MstrKeywordUrl, MstrXMLPolicyUrl);
    $('swfDisease').render(MstrDiseaseUrl, MstrXMLPolicyUrl);
    $('swfCrossDomain').getXml(MstrInterestUrl, 'createInterestDiseaseRanking', MstrXMLPolicyUrl);
}

function dispPageNavi(VintNowPage,VintAllPageCnt,VstrID,Vfunc){

    var dispMax = 11;   //表示範囲
    var page = PAFuncLib.$(VstrID); 
	var page2 = PAFuncLib.$(VstrID + '_bottom'); 

    if(!page || !page2){ return; }
    
    //ページが存在するかチェック      
    if(parseInt(VintNowPage) > parseInt(VintAllPageCnt)){
        return;
    }

    page.innerHTML = '';
	page2.innerHTML = '';
    
    //総ページ数がdispMaxより少ない場合
    if (VintAllPageCnt <= dispMax){
        var tag = "";        
        for(var i=0;i<VintAllPageCnt;i++){
            if((i+1) == VintNowPage){
                tag += '<li class="selected"><a href="#">' + (i+1) + '</a></li>';
            }
            else{
                tag += '<li><a href="javascript:' + Vfunc + '(' + (i+1)  + ')">' + (i+1) + '</a></li>';
            }
        }
        page.innerHTML = tag;
		page2.innerHTML = tag;
        return;
    }
        
    var aryPage = new Array(dispMax);
    var loopStartAryPos = 0;
    var loopEndAryPos = dispMax;
    var startPage,endPage;
  
    //中央値から左右のページ表示数
    var halfDispNum = parseInt((parseInt(dispMax)-3) / 2);
    startPage = parseInt(VintNowPage) - halfDispNum;
    endPage = parseInt(VintNowPage) + halfDispNum;
    
    //表示する最小ページNoが1より小さいかチェック
    if(startPage>1){
        aryPage[0] = '<li class="wp_prev_active"><a href="javascript:' + Vfunc + '(' + (parseInt(VintNowPage)-1) + ')" title="前のページ">&lt;</a></li>';
        aryPage[0] += '<li class="wp_prev_leader">…</li>';
        loopStartAryPos++;
    }
    
    //表示する最大ページNoが総ページ数を超えるかチェック 
    if(endPage < VintAllPageCnt){
        aryPage[dispMax-1] = '<li class="wp_next_leader">…</li>';
        aryPage[dispMax-1] += '<li class="wp_next_active"><a href="javascript:' + Vfunc + '(' + (parseInt(VintNowPage)+1) + ')" title="次のページ">&gt;</a></li>';
        loopEndAryPos--;
    }
    
    //ページタグを設定
    if(loopStartAryPos==0){
        for(var j=loopStartAryPos;j<loopStartAryPos+(parseInt(dispMax)-2);j++){
            if((j+1) == VintNowPage){
                aryPage[j] = '<li class="selected"><a href="#">' + (j+1) + '</a></li>';
            }
            else{
                aryPage[j] = '<li><a href="javascript:' + Vfunc + '(' + (j+1) + ')">' + (j+1) + '</a></li>';
            }
        }
    }
    else if(loopEndAryPos == dispMax){
        var maxPage = VintAllPageCnt;
        var loopEnd = parseInt(loopEndAryPos)-(parseInt(dispMax)-2);
        for(var j=loopEndAryPos;j>loopEnd;j--){
            if(maxPage == VintNowPage){
                aryPage[j] = '<li class="selected"><a href="#">' + maxPage + '</a></li>';
            }
            else{
                aryPage[j] = '<li><a href="javascript:' + Vfunc + '(' + maxPage + ')">' + maxPage + '</a></li>';
            }
            maxPage--;
        }
    }
    else{
        for(var j=loopStartAryPos;j<loopEndAryPos;j++){
            if(startPage == VintNowPage){
                aryPage[j] = '<li class="selected"><a href="#">' + startPage + '</a></li>';
            }
            else{
                aryPage[j] = '<li><a href="javascript:' + Vfunc + '(' + startPage + ')">' + startPage + '</a></li>';
            }
            startPage++;
        }
    }
    page.innerHTML = aryPage.join('\n');
    page2.innerHTML = aryPage.join('\n');
}


function getEncodeTextData(VstrText){
	var strRet = VstrText;
	if (-1 < navigator.appVersion.indexOf("KHTML")) {
		var strEsc = escape(strRet);
		if ((strEsc.indexOf("%u") < 0) && (-1 < strEsc.indexOf("%"))) {
			strRet = decodeURIComponent(strEsc);
		}
	}
	return strRet;
}

function PAURLEscape(VstrText){
	var strRet;
	if(PAFuncLib.IsWin && PAFuncLib.IsSF){
		strRet = VstrText;
		strRet = strRet.replace("&","＆");
		strRet = strRet.replace("?","？");
		strRet = strRet.replace("=","＝");
	}
	else{
		strRet = escape(VstrText);
	}
	return strRet;
}

function getConvertString(VstrText){
	var strText = VstrText;
//	strText = strText.toUpperCase();
	strText = strText.replace(/;/g,"；");
	strText = strText.replace(/</g,"＜");
	strText = strText.replace(/>/g,"＞");
	strText = strText.replace(/\(/g,"（");
	strText = strText.replace(/\)/g,"）");
	strText = strText.replace(/\'/g,"’");
	strText = strText.replace(/\"/g,"”");
	strText = strText.replace(/\*/g,"＊");
	strText = strText.replace(/\+/g,"＋");
	strText = strText.replace(/\-/g,"－");
	strText = strText.replace(/\//g,"／");
	strText = strText.replace(/%/g,"％");
	strText = strText.replace(/\$/g,"＄");
	strText = strText.replace(/\&/g,"＆");
	strText = strText.replace(/\!/g,"！");
	strText = strText.replace(/\|/g,"｜");
	strText = strText.replace(/\{/g,"｛");
	strText = strText.replace(/\}/g,"｝");
	strText = strText.replace(/\./g,"．");
	strText = strText.replace(/\\/g,"￥");
	return strText;
}

PAFuncLib.addListener(window, 'load', window_load);
