﻿dojo.require("dojo.lang.common");
dojo.require("dojo.undo.browser");
dojo.require("dojo.io.*");
dojo.require("dojo.widget.ContentPane");
dojo.require("dojo.widget.SplitContainer");
dojo.require("dojo.widget.Menu2");
dojo.require("dojo.widget.ComboBox");
dojo.require("dojo.widget.Wizard");


var g_isLogin = false;

function Login2()
{
    var url = c_sUserLogin + '&random=' + Math.random();

	/*var sid = dojo.byId('login-sid');
	var spwd = dojo.byId('login-spwd');
	sid.disabled=true;
	spwd.disabled=true;*/
    var request = new dojo.io.Request(url, 'text/json', null, false);
	dojo.lang.mixin(request, {
		formNode: dojo.byId('login-form'),
		method: 'post',
		encoding: g_encoding,
		load: function(type, evaldObj){
			var ret = eval(evaldObj);
			if(ret.Error != null)
			{
			    alert(c_sERROR_LOGIN + ret.Error);
			}
			else
			{
			    var just_cn_html = getConfig(JUST_INDEX_HTML_CN);
			    if(just_cn_html)
			    {
			        url = 'searchcn.htm';
			    }
			    else
			    {
                    if(window.location.href.toLowerCase().indexOf('index2cn') != -1)
                        url = 'searchcn.htm';
                    else
                        url = 'search.htm';
                	}
			    if(dojo.byId('login-rememberme').checked)
			        setLoginCookie();
                window.location.href=url;  
			}
		},
		error: function(type, error) { 
		    divf.style.display = '';
		    dive.innerHTML = g_loginSpan;
		    //dive.style.display = 'none';
		    alert(c_sERROR_LOGIN + error.message);
		}
	});         
    dojo.io.bind (request);
}

function doOnload2()
{
	 var id = getCookie('id');
    var pwd = getCookie('pwd');
    if(!isNullorEmpty(id) && !isNullorEmpty(pwd))
     {
	var sid = dojo.byId('login-sid');
	var spwd = dojo.byId('login-spwd');
	var ckb = dojo.byId('login-rememberme');
	sid.value = id;
	spwd.value=pwd;
	sid.disabled=true;
	spwd.disabled=true;
	ckb.checked=true;
        var url = c_sUserLogin + '&sid=' + id + '&spwd=' + pwd + '&random=' + Math.random();
        var request = new dojo.io.Request(url, 'text/json', null, false);
	    dojo.lang.mixin(request, {
	        encoding: g_encoding,
		    load: function(type, evaldObj){
			    var ret = eval(evaldObj);
			    if(ret.Error != null)
			     {
				sid.disable=false;
				spwd.disable=false;
			    	alert(c_sERROR_LOGIN + ret.Error);
			     }
			    else
				window.location.href='searchcn.htm';
		    },
		    error: function(type, error) { 		        
				sid.disable=false;
				spwd.disable=false;
		    }
	    });         
        dojo.io.bind (request);
    }
}
function Login()
{
//    var divf = dojo.byId('login-form-div');
//    divf.style.display = 'none';
    var dive = dojo.byId('login-result-div');
//    dive.style.display = '';
//    dive.innerHTML = 'Waiting...';
    dojo.byId('login-form-div-table1').style.display = 'none';
    dojo.byId('login-form-div-table2').style.display = '';
    var url = c_sUserLogin + '&random=' + Math.random();

    var request = new dojo.io.Request(url, 'text/json', null, false);
	dojo.lang.mixin(request, {
		formNode: dojo.byId('login-form'),
		method: 'post',
		encoding: g_encoding,
		load: function(type, evaldObj){
			var ret = eval(evaldObj);
			if(ret.Error != null)
			{
			    //divf.style.display = '';
			    dojo.byId('login-form-div-table1').style.display = '';
                dojo.byId('login-form-div-table2').style.display = 'none';
			    //dive.innerHTML = g_loginSpan;
			    alert(c_sERROR_LOGIN + ret.Error);
			}
			else
			{
			    //divf.style.display = 'none';
			    closeLogin();
			    dive.innerHTML = '<b><span class="querylist-a" onmouseout="onQueryTableMouseOut(this, &#39;a&#39;);" onmouseover="onQueryTableMouseOver(this, &#39;a&#39;);" onclick="prepareUpdateUserInfo()">' + ret.User.Name + '</span></b>&nbsp;<span class="header-menu-mouseover" onclick="doLogOff();">' + c_sSignOff + '</span>' + '&nbsp;' + g_versionSpan;
			    if(dojo.byId('login-rememberme').checked)
			        setLoginCookie();
			    
			    setPageInitState(true);

			    if(ret.User.Id=='admin')
			    {
	                    dojo.byId('header-menu-manage').style.display = '';
        	            dojo.byId('header-menu-sep8').style.display='';
			    }			    

			    if(funcBeforeLogin&&varsBeforeLoginArray)
			    {
			        funcBeforeLogin(varsBeforeLoginArray);
			    
			    }else if(funcBeforeLogin)
			    {
			        funcBeforeLogin();
			    
			    }

			    

			}
		},
		error: function(type, error) { 
		    divf.style.display = '';
		    dive.innerHTML = g_loginSpan;
		    //dive.style.display = 'none';
		    alert(c_sERROR_LOGIN + error.message);
		}
	});         
    dojo.io.bind (request);
}


function setLoginCookie()
{
    var id = dojo.byId('login-sid').value;
    var pwd = dojo.byId('login-spwd').value;
    addCookie('id', id, 24*30);
    addCookie('pwd', pwd, 24*30);
}

function deleteLoginCookie()
{
    deleteCookie('id');
    deleteCookie('pwd');
}

function doLoginFormCookie()
{
    var id = getCookie('id');
    var pwd = getCookie('pwd');
    if(!isNullorEmpty(id) && !isNullorEmpty(pwd))
    {
        var divf = dojo.byId('login-form-div');
        divf.style.display = 'none';
        var dive = dojo.byId('login-result-div');
        dive.style.display = '';
        dive.innerHTML = 'Waiting...';
        var url = c_sUserLogin + '&sid=' + id + '&spwd=' + pwd + '&random=' + Math.random();
        var request = new dojo.io.Request(url, 'text/json', null, false);
	    dojo.lang.mixin(request, {
	        encoding: g_encoding,
		    load: function(type, evaldObj){
			    var ret = eval(evaldObj);
			    if(ret.Error != null)
			    {
			        dive.innerHTML = g_loginSpan;
			        setPageInitState(false);
			    }
			    else
			    {
				
				var signoff_home = getConfig(SINGOFF_HOME_CONFIG);
				if(signoff_home)
				{
				    if(window.location.href.toLowerCase().indexOf('index.htm')!=-1)
					window.location.href='searchcn.htm';
				}
			        divf.style.display = 'none';
			        dive.innerHTML = '<b><span class="querylist-a" onmouseout="onQueryTableMouseOut(this, &#39;a&#39;);" onmouseover="onQueryTableMouseOver(this, &#39;a&#39;);" onclick="prepareUpdateUserInfo()">' + ret.User.Name + '</span></b>&nbsp;<span class="header-menu-mouseover" onclick="doLogOff();">' + c_sSignOff + '</span>' + '&nbsp;' + g_versionSpan;
			        setPageInitState(true);
			        var pageview = getConfig(PAGEVIEW_CONFIG);
			        if(pageview!='search')
			            setPageView(pageview);
			        //setQuickUserInfo(ret);
			    }  	    
		    },
		    error: function(type, error) { 
		        divf.style.display = '';
		        dive.innerHTML = g_loginSpan;
		        setPageInitState(false);
		    }
	    });         
        dojo.io.bind (request);
        //edit by seedy
        return true;
    }
    else
    {   
        var signoff_home = getConfig(SINGOFF_HOME_CONFIG);
        if(signoff_home)
        {
            if(window.location.href.toLowerCase().indexOf('index.htm')==-1)
                window.location.href='index.htm';
        }
        setPageInitState(false);
        return false;    
    }
}

function doUpdateInfoClick()
{
    window.location.href = 'signup.htm?action=userupdate';
}

function doModifyPasswordClick()
{
    window.location.href = 'passwordupdate.htm';
}

function setPageInitState(islogin)
{
    g_isLogin = islogin;
    if(dojo.byId('search-master-addtocase-img') != null)
        dojo.byId('search-master-addtocase-img').style.display = islogin ? '' : 'none';
    if(dojo.byId('search-slave-addtocase-img') != null)
        dojo.byId('search-slave-addtocase-img').style.display = islogin ? '' : 'none';
    if(islogin)
    {
        dojo.byId('history-quick-historylist').style.display = 'none';
//        loadBookmarkCombobox('search-bookmark-select', null, 2);
        SetSystemDynamicDisplayByFuncArray('UserLogin', null);
//        dojo.byId('project-quick-projectlist').style.display = '';
//        dojo.byId('bookmark-quick-bookmarklist').style.display = '';
//        dojo.byId('search-master-searchfilter-span').style.display = '';
//        loadQuickProject();
//        initProjectIdColorPair();
//        loadPreference();
        var viewtoswitch = g_currentView;
        if(g_currentView == 'login' && g_previousView != null)
        {
            viewtoswitch = g_previousView;
            setPageViewDisplay(g_previousView);
        }
        //var viewtoswitch = (g_currentView == 'login' ? g_previousView : g_currentView);
        switch(viewtoswitch)
        {
            case 'search':
            case 'login':
            case 'signup':
                if(g_currentView != 'search')
                    setPageView('search', false);
                break;
            case 'statistic':
                if(g_statValue == null)
                    initGlobalVal();
                break;
            case 'analysis':
                loadDocument();
                break;
            case 'history':
                dojo.byId('history-historytype-radio-h').checked = true;
                loadHistorylist();
                break;
            case 'project':
                loadProject();
                break;
            case 'preference':
                loadPreference();
                break;         
        }
    }
    else
    {
        dojo.widget.byId('ptmenuitem').setDisabled(true);
        dojo.byId('login-form').sid.value = '';
        dojo.byId('login-form').spwd.value = '';
        dojo.byId('project-quick-projectlist').style.display = 'none';
        dojo.byId('bookmark-quick-bookmarklist').style.display = 'none';
        dojo.byId('search-bookmark-select').style.display = 'none';
        dojo.byId('history-quick-historylist').style.display = '';
        dojo.byId('search-master-searchfilter-span').style.display = 'none';
        clearClipboardPN();
        resetPreference();
        //dojo.byId('signup-userinfo-div').style.display = 'none';
        switch(g_currentView)
        {
            case 'search':
                break;
            case 'statistic':
//                if(g_statValue == null)
//                    initGlobalVal();
                g_previousView = g_currentView;
                setPageViewDisplay('login');
                break;
            case 'history':
                dojo.byId('history-historylist').style.display = 'none';
                dojo.byId('history-historylist-unlogin').style.display = '';
                dojo.byId('history-historylist-unlogin').innerHTML = '';//'<center>You are not authorized to view it.Please login.</center>';
                g_previousView = g_currentView;
                setPageViewDisplay('login');
                break;
            case 'project':
                dojo.byId('project-projectlist').innerHTML = '';//'<center>You are not authorized to view it.Please login.</center>';
                g_previousView = g_currentView;
                setPageViewDisplay('login');
                break;  
            case 'preference':
                g_previousView = g_currentView;
                setPageViewDisplay('login');
                break;  
            case 'class':
               // dojo.byId('classinfo-div').innerHTML = '';
                g_previousView = g_currentView;
                setPageViewDisplay('login');
                break;  
            case 'analysis':
                dojo.byId('document-documentlist').innerHTML = '';//'<center>You are not authorized to view it.Please login.</center>';
                g_previousView = g_currentView;
                setPageViewDisplay('login');
                break;  
            case 'login':
                break;     
            case 'signup':
                break;               
        }
    }
}

function doLogOff()
{
    var divf = dojo.byId('login-form-div');
    divf.style.display = 'none';
    var dive = dojo.byId('login-result-div');
    dive.style.display = '';
    dive.innerHTML = 'Waiting...';
    var url = c_sUserLogin + '&random=' + Math.random();
    var request = new dojo.io.Request(url, 'text/json', null, false);
	dojo.lang.mixin(request, {
	    encoding: g_encoding,
		load: function(type, evaldObj){
		    dojo.byId('search-master-querylist').innerHTML = '';
		    deleteLoginCookie();
		    var signoff_home = getConfig(SINGOFF_HOME_CONFIG);
		    if(signoff_home)
		    {
		        window.location.href='index.htm'; 
		    }
		    else
		    {
			dojo.byId('header-menu-manage').style.display = 'none';
	                dojo.byId('header-menu-sep8').style.display='none';
		        dive.innerHTML = g_loginSpan;
		        setPageInitState(false);
		        setPageViewDisplay('search'); 
		    }  
		},
		error: function(type, error) { 
		    var signoff_home = getConfig(SINGOFF_HOME_CONFIG);
		    if(signoff_home)
		        window.location.href='index.htm'; 
		    else
		        dive.innerHTML = g_loginSpan;
		}
	});         
    dojo.io.bind (request);
}

function getUserLoginState()
{
    var divf = dojo.byId('login-form-div');
    divf.style.display = 'none';
    var dive = dojo.byId('login-result-div');
    dive.style.display = '';
    var url = c_sUserGet + '&it=1&random=' + Math.random();
    var request = new dojo.io.Request(url, 'text/json', null, false);
	dojo.lang.mixin(request, {
	    encoding: g_encoding,
		load: function(type, evaldObj){
			var ret = eval(evaldObj);
			if(ret.Error != null) // error occurs
			{
			    dive.innerHTML = g_loginSpan;
			    setPageInitState(false);
			    alert(ret.Error);
			}
			else if(ret.User != null) 
			{
			    divf.style.display = 'none';
			    dive.style.display = '';
			    dive.innerHTML = '<b><span class="querylist-a" onmouseout="onQueryTableMouseOut(this, &#39;a&#39;);" onmouseover="onQueryTableMouseOver(this, &#39;a&#39;);" onclick="prepareUpdateUserInfo()">' + ret.User.Name + '</span></b>&nbsp;<span class="header-menu-mouseover" onclick="doLogOff();">' + c_sSignOff + '</span>' + '&nbsp;' + g_versionSpan;
			    setPageInitState(true);
			   if(ret.User.Id=='admin')
			    {
	                    dojo.byId('header-menu-manage').style.display = '';
        	            dojo.byId('header-menu-sep8').style.display='';
			    }
			}
			else
			{
			    dive.innerHTML = g_loginSpan;
			    doLoginFormCookie();
			}	    
		},
		error: function(type, error) { 
		    dive.innerHTML = g_loginSpan;
		    setPageInitState(false);
		    alert(error.message);
		}
	});         
    dojo.io.bind (request);
}

function checkLoginMasterKey(evt)
{
    evt = evt ? evt : (window.event ? window.event : null);
    if (evt.keyCode == 13) 
        Login();

}

function checkLoginMasterKey2(evt)
{
    evt = evt ? evt : (window.event ? window.event : null);
    if (evt.keyCode == 13) 
        Login2();

}






