var snode=null;
var timeout;
var lastaccess;
var snPassword= "";
var snQuery="";
var snURL="";
var snCheckID;
var wait;

function pageSearch( pages ) {
	f.fileSearch(encodeURI(snQuery),pages);
}

function onMyAuth( action, data ){
	if( data.mestat.status != 200 ){
        wait.hide(); // hide loading animation
		alert("認証に失敗しました");
	}else{
		logon();
		// auth success..
		clrck();
		if ( snCheckID )
			setck();
	}
}

function click_link(targetURL){
    var today = new Date();
    var now = today.getTime();
    if( (now-lastaccess) > (timeout*1000) ){
        logout();
        return;
    }else{
        lastaccess = today.getTime();
        window.open(targetURL);
    }
}

function logout(){
    document.location.reload();
}

function logon()　{
	var obj = document.getElementById("login");
	obj.innerHTML="こんにちは<br>"+snHost + "さん";
	obj.innerHTML+="<p><a href='javascript:logout();'>ログアウト</a></p>";
	obj.innerHTML+="<div id='help'><p><a href='http://dream.jp/mysearch/help.html'>MySearchヘルプ</a></p></div>";
	
	obj = document.getElementById("result");
	obj.innerHTML="";

	wait.hide();
}

function onMySearchHandler( action, response ){
	var obj = document.getElementById("searchnavi");
	obj.innerHTML="<h2>「" + snQuery +"」 の検索結果</h2>";
	obj.innerHTML+="<p><a href='http://dream.jp/search.php?enc=utf8&q="+snQuery+"'>Web</a>"+" | SemantiqNode</p>";

	obj = document.getElementById("result");
	obj.innerHTML="";

	if (response.info.allitems==0 | response.items.length==0 ) {
		obj.innerHTML="<p>条件に一致する情報は見つかりませんでした。</p>";
	}else{
		obj.innerHTML += "<p>page="+response.info.page + " / pages="+response.info.pages +"</p>";

		for(var i=0;i<response.items.length;i++){

			obj.innerHTML +=  "<a href='#' onClick='click_link(\""+snURL + response.items[i].href + "\")'><strong>"+response.items[i].name+"</strong></a><br />";
			
			obj.innerHTML += response.items[i].snippet.unescapeHTML() + "<br />";
			obj.innerHTML += response.items[i].prop.datetime + "<br />";
			obj.innerHTML += "<font color=#009900>"+response.items[i].displaypath + "</font><br /><br />";

 		}
	}
	var page=parseInt(response.info.page);
	if ( page > 1 ) {
		pg=page-1;
		obj.innerHTML +=  "<a href='#' onClick='pageSearch("+pg+")'>前へ</a> | ";
	}
	if ( page < parseInt(response.info.pages) ) {
		pg=page+1;
		obj.innerHTML +=  "<a href='#' onClick='pageSearch("+pg+")'>次へ</a><br />";
	}
	wait.hide();
}

function snsearch(){
	
	var form = document.forms["queryForm"];
	snQuery = form.elements.q.value;
	if ( snode==null )
		alert("ログインしてください");
	else {
		snURL="http://snproxy.dream.jp/sn/" + snHost;
		f = snode.getSearchInterface( onMySearchHandler );
		pageSearch(1);

    wait.show();
	}
}

function snauth(){

	var form = document.forms["dlgForm"];
	snHost = form.elements.host.value;
	snAccount = form.elements.account.value;
	snPassword = form.elements.password.value;
	snCheckID = form.elements.checkid.checked;
	snode = new SemantiqNode( snHost );
	snURL="snproxy.dream.jp/sn/" + snHost;

    // loading panel init
    loadingPanel();
    
    	// authentication
	a = snode.getAuthInterface( onMyAuth );
	a.auth( snAccount, snPassword );

    wait.show();
}

function init(){
	len=getck();
	var form = document.forms["dlgForm"];
	form.elements.host.value = snHost;
	form.elements.account.value = snAccount;
	if(len>0)
		form.elements.checkid.checked=true;
}

function loadingPanel(){
    wait = new YAHOO.widget.Panel("wait",
                      { width:"240px",
                        fixedcenter:true,
                        close:false,
                        draggable:false,
                        zindex:4,
                        modal:false,
                        visible:false
                      }
                    );

    wait.setHeader("Loading, please wait...");
    wait.setBody('<img src="http://us.i1.yimg.com/us.yimg.com/i/us/per/gr/gp/rel_interstitial_loading.gif" />');
    wait.render(document.body);

}
