﻿
var mouseInDiv = false;

function doSearch()
{
    prepareCookie(1);
}

function doSearch2(query)
{

    if(window.location.href.toLowerCase().indexOf('indexcn') != -1)
        url = 'searchcn.htm';
    else
        url = 'search.htm';
    url+= '?sq='+query;
    window.location.href=url;
}

function prepareCookie(type) // type:1 search; 2 login; 3 language change
{
    var sq = document.getElementById('search-q');
    
    //var st = dojo.byId('searchtype-select').value;
    var st = getSearchTypeValue();
    var sd = 'B';
    var sdc = document.getElementById('searchdefault-c');
    if(sdc.checked)
        sd = c_sC;
    var url = '';
    if(type == 3)
    {
        if(window.location.href.toLowerCase().indexOf('indexcn') != -1)
            url = 'index.htm';
        else
            url = 'indexcn.htm';
    }
    else if(window.location.href.toLowerCase().indexOf('indexcn') != -1)
        url = 'searchcn.htm';
    else
        url = 'search.htm';
    if(type == 3)
    {
        addCookie('st', st, 24*30);
        addCookie('sd', sd, 24*30);
        addCookie('sq', sq.value, 24*30);
        window.location.href=url;
    }
    else if(!navigator.cookieEnabled)
    {
        url += '?st=' + st + '&sd=' + sd;
        if(type == 1)
            url += '&sq=' + encodeURI(sq.value);
        else if(type == 2)
            url += '&login=1';
        window.location.href=url;
    }
    else
    {
        addCookie('st', st, 24*30);
        addCookie('sd', sd, 24*30);
        if(type == 1)
            addCookie('sq', sq.value, 24*30);
        else if(type == 2)
            addCookie('login', '1', 24*30);
        window.location.href=url;
    }
}

function doFPLogin()
{
    prepareCookie(2);
}

function checkSearchKey(evt)
{
    evt = evt ? evt : (window.event ? window.event : null);
    if (evt.keyCode == 13) 
    {
        doSearch();
    }
}

function doChangeLanguage()
{
    prepareCookie(3);
}

function setSearchTypeCheckbox(idivalue)
{
    var searchtype = parseInt(idivalue);
    var p = dojo.byId('searchtype-p');//US Patent
    var a = dojo.byId('searchtype-a');//US Application
    var c = dojo.byId('searchtype-c');//CN
    var r = dojo.byId('searchtype-r');//Reference
    var e = dojo.byId('searchtype-e');//EP
    var w = dojo.byId('searchtype-w');//Web
    var s = dojo.byId('searchtype-s');//Schoolor
    var ab = dojo.byId('searchtype-ab');//Abstract
    var o = dojo.byId('searchtype-o');//WO
    var d = dojo.byId('searchtype-d');//User Document
    if(p != null && p.style.display == 'none' && (searchtype & 1) == 1)
        searchtype -= 1;
    if(a != null && a.style.display == 'none' && (searchtype & 2) == 2)
        searchtype -= 2;
    if(c != null && c.style.display == 'none' && (searchtype & 4) == 4)
        searchtype -= 4;
    if(r != null && r.style.display == 'none' && (searchtype & 8) == 8)
        searchtype -= 8;
    if(e != null && e.style.display == 'none' && (searchtype & 16) == 16)
        searchtype -= 16;
    if(o != null && o.style.display == 'none' && (searchtype & 32) == 32)
        searchtype -= 32;
    if(ab != null && ab.style.display == 'none' && (searchtype & 64) == 64)
        searchtype -= 64;
    if(d != null && d.style.display == 'none' && (searchtype & 128) == 128)
        searchtype -= 128;
    if(searchtype <= 0)
    {
        if(p != null && p.style.display == '')
            searchtype = 1;
        else if(a != null && a.style.display == '')
            searchtype = 2;
        else if(c != null && c.style.display == '')
            searchtype = 4;
        else if(r != null && r.style.display == '')
            searchtype = 8;
        else if(e != null && e.style.display == '')
            searchtype = 16;
        else if(j != null && o.style.display == '')
            searchtype = 32;
        else if(o != null && ab.style.display == '')
            searchtype = 64;
        else if(d != null && d.style.display == '')
            searchtype = 128;
    }
    setSearchTypeCheckBoxByType(searchtype);
    setSearchTypeSpan(searchtype);
}

function doOnload()
{
	setCopyright();
    var com1 = new ACComponent('search-q', 'popupdiv-searchhelp', '/', true, doSearch);
    if(dojo.byId('simpleadvancedsearch-allwords')!=null)
   {
   	  var com3 = new ACComponent('simpleadvancedsearch-allwords', 'popupdiv-searchhelp', '', true, prepareSlave);
   }
   if(dojo.byId('simpleadvancedsearch-exactwords')!=null)
   {
   	  var com4 = new ACComponent('simpleadvancedsearch-exactwords', 'popupdiv-searchhelp', '', true, prepareSlave);
   }
   if(dojo.byId('simpleadvancedsearch-atleastwords')!=null)
   {
   	  var com5 = new ACComponent('simpleadvancedsearch-atleastwords', 'popupdiv-searchhelp', '', true, prepareSlave);
   }
   if(dojo.byId('simpleadvancedsearch-withoutwords')!=null)
   {
   	  var com6 = new ACComponent('simpleadvancedsearch-withoutwords', 'popupdiv-searchhelp', '', true, prepareSlave);
   }
   if(dojo.byId('simpleadvancedsearch-anninput')!=null)
   {
   	  var com7 = new ACComponent('simpleadvancedsearch-anninput', 'popupdiv-searchhelp', '', true, prepareSlave);
   	  com7.fixedQueryType = 'ann';
   }
    var st = getCookie('st');
    var sd = getCookie('sd');
    var sq = getCookie('sq');
     SetInitConfig();
    if(!isNullorEmpty(st))
    {
        setSearchTypeCheckbox(st);
    }
    else
    {
        setSearchTypeCheckbox(1);
    }
    if(sd == c_sC)
        document.getElementById('searchdefault-c').checked = true;
    else
        document.getElementById('searchdefault-b').checked = true;
    if(sq != null && sq != '' && sq != 'undefined')
        document.getElementById('search-q').value = sq;
    getUserLoginState();
}

function getUserLoginState()
{
    var dive = dojo.byId('login-result-div');
    dive.style.display = 'inline';
    
    var url = c_sUserGet + '&it=1&random=' + Math.random();
	var request = {
	    url:url,
	    handleAs:"json",
		load: function(ret, ioArgs){
			if(ret.Error != null) // error occurs
			{
			    dive.innerHTML = '<span class="anchor" onclick="doFPLogin();">' + c_sSignIn + '</span>';
			    alert(ret.Error);
			}
			else if(ret.User != null) 
			{
			    dive.style.display = 'inline';
			    dive.innerHTML = '<b><span>' + ret.User.Name + '</span></b>&nbsp;<span class="anchor"  onclick="doLogOff();">' + c_sSignOff + '</span>';
			}
			else
			{
			    dive.innerHTML = '<span class="anchor" onclick="doFPLogin();">' + c_sSignIn + '</span>';
			    doLoginFormCookie();
			}	    
		},
		error: function(error, ioArgs) { 
		    dive.innerHTML = '<span class="anchor" onclick="doFPLogin();">' + c_sSignIn + '</span>';
		    alert(error.message);
		}
	};         
    dojo.xhrGet(request);
}

function deleteLoginCookie()
{
    deleteCookie('id');
    deleteCookie('pwd');
}

function doLogOff()
{
    var dive = dojo.byId('login-result-div');
    dive.style.display = 'inline';
    dive.innerHTML = 'Waiting...';
    var url = c_sUserLogin + '&random=' + Math.random();
    var request = {
        url:url,
        handleAs: 'json',
		load: function(response, ioArgs){
		    dive.innerHTML = '<span class="anchor" onclick="doFPLogin();">' + c_sSignIn + '</span>';
		    deleteLoginCookie();
		},
		error: function(error,ioArgs) { 
		    dive.innerHTML = '<span class="anchor" onclick="doFPLogin();">' + c_sSignIn + '</span>';
		}
	};         
    dojo.xhrGet(request);
}

function doLoginFormCookie()
{
    var id = getCookie('id');
    var pwd = getCookie('pwd');
    if(id != null && id != '' && pwd != null && pwd != '')
    {
        var dive = dojo.byId('login-result-div');
        dive.style.display = 'inline';
        dive.innerHTML = 'Waiting...';
        var url = c_sUserLogin + '&sid=' + id + '&spwd=' + pwd + '&random=' + Math.random();
        var request = {
            url:url,
            handleAs: 'json',
		    load: function(ret, ioArgs){
			    if(ret.Error != null)
			    {
			        dive.innerHTML = '<span class="anchor" onclick="doFPLogin();">' + c_sSignIn + '</span>';
			    }
			    else
			    {
			        dive.innerHTML = '<b><span>' + ret.User.Name + '</span></b>&nbsp;<span class="anchor" onclick="doLogOff();">' + c_sSignOff + '</span>';
			    }  	    
		    },
		    error: function( error,ioArgs) { 
		        dive.innerHTML = '<span class="anchor" onclick="doFPLogin();">' + c_sSignIn + '</span>';
		    }
	    };         
        dojo.xhrGet(request);
    }
    else
    {
        var dive = dojo.byId('login-result-div');
        dive.innerHTML = '<span class="anchor" onclick="doFPLogin();">' + c_sSignIn + '</span>';
        dive.style.display = 'inline';
        
    }
}

function doSearchHelpSelect(obj)
{
    var popupDiv = dojo.byId('popupdiv-searchhelp');
    popupDiv.comObject.selectRowFunction(obj);
}

function doSelectSearchHelpRow(rowobj)
{
    var popupDiv = dojo.byId('popupdiv-searchhelp');
    popupDiv.comObject.enterRowFunction(rowobj, popupDiv.comObject.selectedRowIndex);
}

//function getSearchTypeValue()
//{
//    return dojo.byId('searchtype-select').value;
//}

function setHomePage(obj){ 
    try{
       obj.style.behavior='url(#default#homepage)';
       obj.setHomePage('http://patentics.vicp.net');
    }
    catch(e){
       if(window.netscape) {
         try {
          netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
         }
         catch (e) {
          alert("此操作被浏览器拒绝！\n请在浏览器地址栏输入“about:config”并回车\n然后将[signed.applets.codebase_principal_support]设置为'true'");
         }
         var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
         prefs.setCharPref('browser.startup.homepage','http://patentics.vicp.net');
        }
    }
} 

function ListFiles()
{
    var request = {
        url:'invokexml.do?sf=ListFiles&ramdon='+Math.random(),
        handleAs:'text',
        load: function(ret, ioArgs){
            dojo.byId("fileList-div").innerHTML = XSLTtrans(ret,'ListFile.xslt');
        },
        error: function( error,ioArgs) { 
        }
    };         
    dojo.xhrGet(request);
}
