var g_selHTML='';
var g_selText='';
var g_spancontext=false;
var g_enteredsetMenuItemVisibility=false;
var g_pabdate = '';
var g_infdate = '';
var g_queryfilter = '';
var g_pns = '';
var currentFocusInput = '';

var menuitemArray = new Array(
    'subrsconcept',
    'subrsboolean',
    'subrsan',
    'subrsin',
    'subrsttl',
    'subrsccl',
    'subrsicl',
    'subrsabst',
    'subrsaclm',
    'subrsspec',
    'subnsconcept',
    'subnsboolean',
    'subnsan',
    'subnsin',
    'subnsttl',
    'subnsccl',
    'subnsicl',
    'subnsabst',
    'subnsaclm',
    'subnsspec',
    'subrsrank',
    //'subnsrank',
    'ptmenuitem'
    );
    
function getQueryString(type, value, parentquery, conj)
{
    
    value = dojo.string.trim(value.replace(/"/g," "));
    if(type == 'CCL')
    {
        var pos = value.indexOf(' ');
        if(pos != -1)
            value = value.substring(0, pos);
    }
    if(value.indexOf(" ") != -1 || type == 'ANN')
        value = '"' + value + '"';
    if(isNullorEmpty(conj))
        conj = 'and';
    if(isNullorEmpty(parentquery))
        return type + '/' + value;
    else
        return parentquery + ' ' + conj + ' ' + type + '/' + value;
}

function getQueryTypeMatcher(type, wordtype) //wordtype means that 'w' maps to c_sCONCEPT or c_sBOOL or c_sRANK
{
    if(isNullorEmpty(wordtype))
        wordtype = 'C';
    else if(wordtype == c_sCONCEPT)
        wordtype = 'C';
    else if(wordtype == c_sBOOL)
        wordtype = 'B';
    else if(wordtype == c_sRANK)
        wordtype = 'R';
    switch(type)
    {
        case 'a':
            return 'ANN';
        case 'i':
            return 'IN';
        case 'w':
            return wordtype;
        case 'c':
            return 'CCL';
        case 'l':
            return 'ICL';
        case 'k':
            return 'IW';
        case 'kwk':
            return 'IWK';
        case 'r':
            return 'R';
        default:
            alert('undefined type: ' + type);
            return '';
    }
}

function normalizeQueryStr(htmlStr, field)
{
    var queryterm;
    if(field != null && field != '')
        field = field.toUpperCase()
    var decodedHTMLStr = dojo.string.trim(htmlDecode(htmlStr));
    if(field == 'CCL')
    {
        var i = decodedHTMLStr.indexOf('(');
        if(i != -1)
            decodedHTMLStr = decodedHTMLStr.substring(0, i);
        decodedHTMLStr = '"' + decodedHTMLStr + '"';
    }
    if((decodedHTMLStr.indexOf(' ') == -1 && decodedHTMLStr.indexOf('<SUB>') == -1 && decodedHTMLStr.indexOf('<SUP>') == -1) || decodedHTMLStr.substring(0, 1) == '"')
    {
        if(field != null && field != '')
            queryterm = field + '/' + decodedHTMLStr;
        else
            queryterm = decodedHTMLStr;
    }
    else
    {
        if(field != null && field != '')
            queryterm = field + '/"' + decodedHTMLStr + '"';
        else
            queryterm = '"' + decodedHTMLStr + '"';
    }
    var reg0 = /<\/?(SUB|SUP)>/ig;
	var reg1 = /<\/?.*?>/ig;
	var reg2 = /[\n\r]+/ig;
	queryterm = queryterm.replace(reg2,' ').replace(reg0,' ').replace(reg1,'');
	return queryterm;
}

function prepareSelection()
{
    var sel = false;
	if (document.selection)
	{
		g_selText = document.selection.createRange().text;
		g_selHTML = document.selection.createRange().htmlText;
	}
	else if (window.getSelection)
	{
		g_selText = window.getSelection().toString();
		if (dojo.render.html.ie)
		{
		    var df = window.getSelection().getRangeAt(0).cloneContents();
		    g_selHTML = textContentToSearch(df);
		}
		else
		    g_selHTML = window.getSelection().toString();
	}
	else if (document.getSelection)
	{
		g_selText = document.getSelection().toString();
		if (dojo.render.html.ie)
		{
		    var df = document.getSelection().getRangeAt(0).cloneContents();
		    g_selHTML = textContentToSearch(df);
		}
		else
		    g_selHTML = document.getSelection().toString();
	}
	if (g_selText != '')
	{
	    g_selText = dojo.string.trim(g_selText);
	    g_selHTML = dojo.string.trim(g_selHTML);
	    return true;
	}
	else
	    return false;
}

function setMenuItemVisibility(obj, type)
{
    
    var select = false;
    select = prepareSelection();
    g_enteredsetMenuItemVisibility = true;
    currentFocusInput='';
    var menuItemToEnable = new Array();
    switch(type)
    {
        case 'a':
            menuItemToEnable[menuItemToEnable.length] = 'subrsan';
            menuItemToEnable[menuItemToEnable.length] = 'subnsan';
            break;
        case 'i':
            menuItemToEnable[menuItemToEnable.length] = 'subrsin';
            menuItemToEnable[menuItemToEnable.length] = 'subnsin';
            break;
        case 'c':
            menuItemToEnable[menuItemToEnable.length] = 'subrsccl';
            menuItemToEnable[menuItemToEnable.length] = 'subnsccl';
            break;
        case 'l':
            menuItemToEnable[menuItemToEnable.length] = 'subrsicl';
            menuItemToEnable[menuItemToEnable.length] = 'subnsicl';
            break;
        case 'p':
            menuItemToEnable[menuItemToEnable.length] = 'subrsconcept';
            menuItemToEnable[menuItemToEnable.length] = 'subnsconcept';
            menuItemToEnable[menuItemToEnable.length] = 'subrsrank';
            //menuItemToEnable[menuItemToEnable.length] = 'subnsrank';
            break;
    }
    var clsMenuItem = dojo.widget.byId('clsmenuitem');
    if(clsMenuItem != null)
    {
        if(type == 'cls_1' || type == 'cls_2' || type == 'cls_0') //cls_1:personal cls_2:global cls_0:icl¡¢ccl
        {
            g_classSpanObj = obj;
            var objclass = obj.getAttribute('NodeType');
            
            /*if(obj!=null)
            {
                var objclass = obj.getAttribute('NodeType');
                if(objclass == 'class')
                {
                    dojo.widget.byId('iscmenuitem').setDisabled(true);
                    dojo.widget.byId('uccmenuitem').setDisabled(true);
                    dojo.widget.byId('dccmenuitem').setDisabled(false);
                    dojo.widget.byId('imscmenuitem').setDisabled(true);
                    dojo.widget.byId('eccmenuitem').setDisabled(true);
                }*/
            
            clsMenuItem.setDisabled(false);
            dojo.widget.byId('iscmenuitem').setDisabled(type != 'cls_1'|| (objclass=='class'||objclass=='icl'||objclass=='ccl'||objclass=='locarno'));
            dojo.widget.byId('uccmenuitem').setDisabled(type != 'cls_1'||(objclass=='class'||objclass=='icl'||objclass=='ccl'||objclass=='locarno'));
            
            if(dojo.byId('classinfo-type-radio-4').checked)
                 dojo.widget.byId('dccmenuitem').setDisabled(type!='cls_1'&&!(objclass=='class'||objclass=='icl'||objclass=='ccl'||objclass=='locarno'));
            else
                dojo.widget.byId('dccmenuitem').setDisabled(true);
            dojo.widget.byId('imscmenuitem').setDisabled(type != 'cls_1'||(objclass=='class'||objclass=='icl'||objclass=='ccl'||objclass=='locarno'));
            dojo.widget.byId('eccmenuitem').setDisabled(false||(objclass=='class'||objclass=='icl'||objclass=='ccl'||objclass=='locarno'));
            dojo.widget.byId('ecumenuitem').setDisabled(!(type =='cls_0'&& (objclass=='class'||objclass=='icl'||objclass=='ccl'||objclass=='locarno')));
            
        }
        else
            clsMenuItem.setDisabled(true);
    }   
	var nsMenuItem = dojo.widget.byId('nsmenuitem');
	var rsMenuItem = dojo.widget.byId('rsmenuitem');
	if(nsMenuItem == null || rsMenuItem == null)
	    return;
	var webMenuItem = dojo.widget.byId('webmenuitem');
	var wrsMenuitem = dojo.widget.byId('wrsmenuitem');
    nsMenuItem.setDisabled(true);
    rsMenuItem.setDisabled(true);
    if(webMenuItem != null)
        webMenuItem.setDisabled((type != 'w' && type != 'a' && type != 'i' && type != 't' && type != 'cls_2' && type != 'cls_1'));
    if(wrsMenuitem != null)
        wrsMenuitem.setDisabled(true);
    var addcommentMenuitem = dojo.widget.byId('addcommentmenuitem');
    if(addcommentMenuitem != null)
    {
        addcommentMenuitem.setDisabled(type != 'cd');
        if(type == 'cd')
        {
            var imgobj = findSiblingAfter(obj, 'img', 1);
            g_currentSectionID = imgobj.id.substring(14, imgobj.id.length);
        }
    }
    var addnoteMenuitem = dojo.widget.byId('addnotemenuitem');
    if(addnoteMenuitem != null)
    {
        addnoteMenuitem.setDisabled(type != 'cd');
        if(type == 'cd')
        {
            var imgobj = findSiblingAfter(obj, 'img', 1);
            g_currentSectionID = imgobj.id.substring(14, imgobj.id.length);
        }
    }
    dojo.widget.byId('ptmenuitem').setDisabled(true);
    
    g_selHTML = dojo.string.trim(obj.innerHTML);
    var tempSelHTML = g_selHTML;
    g_selText = dojo.string.trim(dojo.dom.textContent(obj));
    var tempSelText = g_selText;
    if(!isNullorEmpty(g_selText))
    {
        nsMenuItem.setDisabled(false);
        rsMenuItem.setDisabled(false);
        if(wrsMenuitem != null)
            wrsMenuitem.setDisabled(false);
        var enablept = false;
        g_spancontext = false;
        if(menuItemToEnable.length > 0)
        {
            for(var i = 0; i < menuitemArray.length; i++)
                dojo.widget.byId(menuitemArray[i]).setDisabled(true);
            for(var i = 0; i < menuItemToEnable.length; i++)
                dojo.widget.byId(menuItemToEnable[i]).setDisabled(false);
            enablept = (type != 'i');
            g_spancontext = true;
        }
        else if(type == 'w' || ((type != 'cls_2' || type != 'cls_1' || type == 't' || type == 'cd' || type == 'cd1' || type == 'tab') && !prepareSelection()))
        {
            g_selHTML = tempSelHTML;
            g_selText = tempSelText;
            var splits = g_selText.split(RegExp("(?=\\b)", 'ig'));
            var containChinese = strContainChinese(g_selText);
            if(type != 't' && ((!containChinese && splits.length > 40) || containChinese && g_selText.length > 40))
            {
                menuItemToEnable[menuItemToEnable.length] = 'subrsconcept';
                menuItemToEnable[menuItemToEnable.length] = 'subnsconcept';
                menuItemToEnable[menuItemToEnable.length] = 'subrsrank';
                //menuItemToEnable[menuItemToEnable.length] = 'subnsrank';
                for(var i = 0; i < menuitemArray.length; i++)
                    dojo.widget.byId(menuitemArray[i]).setDisabled(true);
                for(var i = 0; i < menuItemToEnable.length; i++)
                    dojo.widget.byId(menuItemToEnable[i]).setDisabled(false);
                if(webMenuItem != null)
                    webMenuItem.setDisabled(true);
            }
            else
            {
                /*for(var i = 0; i < menuitemArray.length; i++)
                {
                    if(menuitemArray[i] != 'subrsan' && menuitemArray[i] != 'subrsin' && menuitemArray[i] != 'subrsccl' && menuitemArray[i] != 'subnsan' && menuitemArray[i] != 'subnsin' && menuitemArray[i] != 'subnsccl' && menuitemArray[i] != 'subnsicl' && menuitemArray[i] != 'subrsicl' && menuitemArray[i] != 'ptmenuitem')
                        dojo.widget.byId(menuitemArray[i]).setDisabled(false);
                    else
                        dojo.widget.byId(menuitemArray[i]).setDisabled(true);
                }*/
                for(var i = 0; i < menuitemArray.length; i++)
                {
                    if(menuitemArray[i] == 'subrsconcept' || menuitemArray[i] == 'subnsconcept'|| menuitemArray[i] == 'subrsrank')
                        dojo.widget.byId(menuitemArray[i]).setDisabled(false);
                    else
                        dojo.widget.byId(menuitemArray[i]).setDisabled(true);
                }
            }
            if(type == 'w')
                enablept = true;
            else // type == 'cd'
            {
                var arrays = g_selText.match(RegExp("[0-9]+\.", 'ig'));
                if(arrays != null && arrays.length > 0 && g_selText.indexOf(arrays[0]) == 0)
                    g_selText = g_selText.substring(arrays[0].length);
                if(g_selText.indexOf('Abstract') == 0)
                    g_selText = g_selText.substring(8);
                g_selText = dojo.string.trim(g_selText);
            }
            g_spancontext = true;
        }
        if(enablept)
        {
            dojo.widget.byId('ptmenuitem').setDisabled(false);
            dojo.byId('ptmenuitem').msg = g_selText;
            dojo.byId('ptmenuitem').type = type;
            g_curImgObj = obj;
        }
    }
}

function prepareContextMenu(evt)
{
    wait1s(null);
    evt = evt ? evt : (window.event ? window.event : null);
    var obj=null;
    var radio3 = dojo.byId('classinfo-type-radio-4');
    if(radio3 !=null)
    {
        if(radio3.checked)
        {
            obj = evt.srcElement;
            while(obj != null && obj.id != 'classinfo-div' ) 
                  obj = obj.parentElement; 
            if(obj==null)
            {
    	        if(dojo.byId('classinfo-div').style.display=='')
    	        {
    		        obj = dojo.byId('classinfo-div');
    	        }
            }
        }
    }
    dojo.widget.byId('cpmenuitem').setDisabled(false);
    dojo.widget.byId('pastemenuitem').setDisabled(false);
   /* if(type == null && currentFocusInput=='')
    {
        dojo.widget.byId('pastemenuitem').setDisabled(true);
    }
    /*if(obj!=null)
    {
    	var clsMenuItem = dojo.widget.byId('clsmenuitem');
    	if(clsMenuItem != null)
    	{
    		clsMenuItem.setDisabled(false);
    		dojo.widget.byId('armenuitem').setDisabled(false);
    		dojo.widget.byId('ifmenuitem').setDisabled(false);
    		dojo.widget.byId('iscmenuitem').setDisabled(true);
            dojo.widget.byId('uccmenuitem').setDisabled(true);
            dojo.widget.byId('dccmenuitem').setDisabled(true);
            dojo.widget.byId('imscmenuitem').setDisabled(true);
            dojo.widget.byId('eccmenuitem').setDisabled(true);
    		
    	}
    }*/
    if(!g_enteredsetMenuItemVisibility)
    {
        var addcommentMenuitem = dojo.widget.byId('addcommentmenuitem');
        if(addcommentMenuitem != null)
            addcommentMenuitem.setDisabled(true);
            
        var classtMenuitem = dojo.widget.byId('clsmenuitem');
        if(obj==null&&classtMenuitem != null)
            classtMenuitem.setDisabled(true);
        g_classSpanObj = null;
        
    }
    else
        g_enteredsetMenuItemVisibility = false;
    if(g_spancontext)
    {
        g_spancontext = false;
       /* if(obj!=null)
        {
        	var clsMenuItem = dojo.widget.byId('clsmenuitem');
    	if(clsMenuItem != null)
    	{
    		clsMenuItem.setDisabled(false);
    		//dojo.widget.byId('armenuitem').setDisabled(true);
    		//dojo.widget.byId('ifmenuitem').setDisabled(true);
    		dojo.widget.byId('iscmenuitem').setDisabled(false);
            dojo.widget.byId('uccmenuitem').setDisabled(false);
            dojo.widget.byId('dccmenuitem').setDisabled(false);
            dojo.widget.byId('imscmenuitem').setDisabled(false);
            dojo.widget.byId('eccmenuitem').setDisabled(false);
          }
        }*/
        return;
        
       
    }
    dojo.widget.byId('ptmenuitem').setDisabled(true);
    var nsMenuItem = dojo.widget.byId('nsmenuitem');
    var rsMenuItem = dojo.widget.byId('rsmenuitem');
	var webMenuItem = dojo.widget.byId('webmenuitem');
	var wrsMenuitem = dojo.widget.byId('wrsmenuitem');
	var select;
    if(select = prepareSelection())
    {
    	
        nsMenuItem.setDisabled(false);
        rsMenuItem.setDisabled(false);
        if(webMenuItem != null)
            webMenuItem.setDisabled(false);
        if(wrsMenuitem != null)
            wrsMenuitem.setDisabled(false);
            
        var splits = g_selText.split(RegExp("(?=\\b)", 'ig'));
        if(splits.length > 40)
        {
            var menuItemToEnable = new Array();
            menuItemToEnable[menuItemToEnable.length] = 'subrsconcept';
            menuItemToEnable[menuItemToEnable.length] = 'subnsconcept';
            menuItemToEnable[menuItemToEnable.length] = 'subrsrank';
            //menuItemToEnable[menuItemToEnable.length] = 'subnsrank';
            for(var i = 0; i < menuitemArray.length; i++)
                dojo.widget.byId(menuitemArray[i]).setDisabled(true);
            for(var i = 0; i < menuItemToEnable.length; i++)
                dojo.widget.byId(menuItemToEnable[i]).setDisabled(false);
            if(webMenuItem != null)
                webMenuItem.setDisabled(true);
        }
        else
        {
            for(var i = 0; i < menuitemArray.length; i++)
            {
                if(menuitemArray[i] != 'subrsan' && menuitemArray[i] != 'subrsin' && menuitemArray[i] != 'subrsccl' && menuitemArray[i] != 'subnsan' && menuitemArray[i] != 'subnsin' && menuitemArray[i] != 'subnsccl' && menuitemArray[i] != 'ptmenuitem' && menuitemArray[i] != 'subrsicl' && menuitemArray[i] != 'subnsicl' && menuitemArray[i] != 'ptmenuitem')
                    dojo.widget.byId(menuitemArray[i]).setDisabled(false);
                else
                    dojo.widget.byId(menuitemArray[i]).setDisabled(true);
            }
        }
    }
    else
    {
        nsMenuItem.setDisabled(true);
        rsMenuItem.setDisabled(true);
        if(webMenuItem != null)
            webMenuItem.setDisabled(true);
        if(wrsMenuitem != null)
            wrsMenuitem.setDisabled(true);
        dojo.widget.byId('cpmenuitem').setDisabled(true);
    }
    if(obj!=null&&!select)
    {
    		var clsMenuItem = dojo.widget.byId('clsmenuitem');
    	if(clsMenuItem != null)
    	{
    		clsMenuItem.setDisabled(false);
    		//dojo.widget.byId('armenuitem').setDisabled(false);
    		//dojo.widget.byId('ifmenuitem').setDisabled(false);
    		dojo.widget.byId('iscmenuitem').setDisabled(false);
            dojo.widget.byId('uccmenuitem').setDisabled(true);
            dojo.widget.byId('dccmenuitem').setDisabled(true);
            dojo.widget.byId('imscmenuitem').setDisabled(false);
            dojo.widget.byId('eccmenuitem').setDisabled(true);
          }
    }else if(obj!=null&&select)
    	{
    		var clsMenuItem = dojo.widget.byId('clsmenuitem');
    	if(clsMenuItem != null)
    	{
    		clsMenuItem.setDisabled(false);
    		//dojo.widget.byId('armenuitem').setDisabled(true);
    		//dojo.widget.byId('ifmenuitem').setDisabled(true);
    		dojo.widget.byId('iscmenuitem').setDisabled(false);
            dojo.widget.byId('uccmenuitem').setDisabled(false);
            dojo.widget.byId('dccmenuitem').setDisabled(false);
            dojo.widget.byId('imscmenuitem').setDisabled(false);
            dojo.widget.byId('eccmenuitem').setDisabled(false);
          }
    	}
    	
    	
 
  
    	
    	
    	
    	
    
    
}

function overtest(event)
{
	
	alert("e");
}

function GetAbsoluteLocationEx(element) 
				{ 
				    if ( arguments.length != 1 || element == null ) 
				    { 
				        return null; 
				    } 
				    var elmt = element; 
				    var offsetTop = elmt.offsetTop; 
				    var offsetLeft = elmt.offsetLeft; 
				    //alert("abs"+offsetLeft);
				    var offsetWidth = elmt.offsetWidth; 
				    var offsetHeight = elmt.offsetHeight; 
				    while( elmt = elmt.offsetParent ) 
				    { 
				          
				         if(elmt.id == 'wrap')
				         {
				         
				         		
				        }
				    
				        if ( elmt.style.position == 'absolute' || elmt.style.position == 'relative'  
				            || ( elmt.style.overflow != 'visible' && elmt.style.overflow != '') ) 
				        { 
				            break; 
				        }  
				        
				    
				        offsetTop += elmt.offsetTop; 
				        offsetLeft += elmt.offsetLeft; 
				    } 
				    return { absoluteTop: offsetTop, absoluteLeft: offsetLeft, 
				        offsetWidth: offsetWidth, offsetHeight: offsetHeight }; 
				}



function doMark(obj, suffix, ischinese)
{
    var div = dojo.byId('queryrelated-importantwords' + suffix);
    if(div == null)
        return;
    var words = div.getElementsByTagName('span');
    if(words == null || words.length == 0)
        return;
    var hl = new highlight();
    for(var i = 0; i < words.length; i++)
        hl.mark(words[i].innerHTML, '0', obj, '#c6cee7', 'black', false, ischinese, 9999, null, onHighlightFontDoNothing, null, null, null, null);	
}

function onHighlightFontDoNothing()
{
}

function doMarkByObj(word, targetObj, pn)
{
    if(targetObj == null)
        return;
    var hl = new highlight();
    hl.mark(word, '0', targetObj, '', '', true, (pn >= 200000000 && pn < 400000000), 9999, '1px dashed #0000ff', null, onQueryTagMouseOver, null, null, dojo.dom.textContent(targetObj), pn);	
}

function prepareMaster()
{
    prepareMasterSearch(null, -1, -1, null, null, null);
}

function prepareSlave()
{
    prepareSlaveSearch(null, -1, null, null, null, null);
}

//function doMarkTagWords(obj, pn, rankterm)
//{
//    var url = c_sQuerytagJson + '&spn=' + pn;
//    var request =  new dojo.io.Request(url, 'text/json', null, false);
//    dojo.lang.mixin(request, {
//        encoding: g_encoding,
//        load: function(typ, evaldObj){
//            var ret = eval(evaldObj);
//            if(ret.Error != null)
//                return;
//            else
//            {
//                var hl = new highlight();
//                for(var i = 0; i < ret.TagList.length; i++)
//                {
//                    var taglist = ret.TagList[i];
//                    if(taglist.length > 0)
//                    {
//                        var max = (i == 0 ? 3 : 1);
//                        for(var j = 0; j < max; j++)
//                        {
//                            var word = taglist[j].OriginalWord;
//                            hl.mark(word, '1', obj, '#ffffcc', 'black', true, (pn >= 200000000 && pn < 400000000), 1, null, null, null, null, null, rankterm, pn);	
//                        }
//                    }
//                }
//            }
//        }
//    });
//    dojo.io.bind (request);
//}

function doMarkTagWords(obj, pn, rankterm)
{
    if(obj.getAttribute('marked') == 1)
        return;
    var url = c_sQuerytagJson + '&spn=' + pn + '&random=' + Math.random();
    
    var form = document.createElement('form');
    var inputsq = document.createElement('input');
    inputsq.name = 'st';
    inputsq.value = rankterm;
    form.appendChild(inputsq);
    var request =  new dojo.io.Request(url, 'text/json', null, false);
    dojo.lang.mixin(request, {
        encoding: g_encoding,
        method: 'post',
        formNode: form,
        load: function(typ, evaldObj){
            var ret = eval(evaldObj);
            if(ret.Error != null)
                return;
            else
            {
                var hl = new highlight();
                var wordArray = new Array();
                var wordcount = 0;
                if(ret.TagList == null)
                    return;
                for(var i = 0; i < ret.TagList.length; i++)
                {
                    var taglist = ret.TagList[i];
                    if(taglist != null && taglist.length > 0)
                    {
                        var word = taglist[0].OriginalWord;
                        wordArray[wordcount++] = word;      
                    }
                }
                var currentIndex = 0;
                var tagedWordArray = new Array();
                for(var j = 0; j < wordArray.length; j++)
                {
                    var maxlength = 0;
                    var maxpos = -1;
                    for(var i = 0; i < wordArray.length; i++)
                    {
                        if(wordArray[i] != '' && wordArray[i].length > maxlength)
                        {
                            maxlength = wordArray[i].length;
                            maxpos = i;
                        }
                    }
                    if(maxpos != -1)
                    {
                        var word = wordArray[maxpos];
                        wordArray[maxpos] = '';
                        maxpos = -1;
                        var existIndex = new Array();
                        for(var k = 0; k < tagedWordArray.length; k++)
                        {
                            if(tagedWordArray[k] != null && tagedWordArray[k].indexOf(word) != -1)
                                existIndex[existIndex.length] = k;
                        }
                        //var marked = hl.mark(word, currentIndex, obj, null, 'black', true, (pn >= 200000000 && pn < 400000000), 1, '1px dashed #0000ff', null, null, null, existIndex, rankterm, pn);	
                        //var marked = hl.mark(word, currentIndex, obj, '#ffffcc', 'black', true, (pn >= 200000000 && pn < 400000000), 1, null, null, null, null, existIndex, rankterm, pn);	
                        var marked = hl.mark(word, currentIndex, obj, '#ffffcc', 'black', true, (pn >= 200000000), 1, null, null, null, null, existIndex, rankterm, pn);	
                        if(marked)
                        {
                            tagedWordArray[currentIndex] = word;
                            currentIndex++;
                        }                        
                    }
                }
                obj.setAttribute('marked', 1);
            }
        },
		error: function(type, error) { alert(error.message); }
    });
    dojo.io.bind (request);
}

function onBodyMouseMove(evt)
{
    
    evt = evt ? evt : (window.event ? window.event : null);
    
    if(dojo.byId('search-master-import-img') != null && dojo.byId('search-master-import-img').style.display!='none')
    {
        var input = document.getElementById('importpatents_input');
        var pos = getElementPos('search-master-import-img');
        if(input!=null &&pos!=null)
        {
            input.style.top = pos.y-5 + 'px';
            input.style.left = pos.x-32 +'px';
        }
    }
    
   if(evt.srcElement && evt.srcElement.id )
   {
        if(evt.srcElement.id == 'search-master-import-img')
        {
             moveinputtoimportpatents('search-master-import-img','importpatents_input');
        }
        else{
            moveinputout('search-master-import-img','importpatents_input');
        }
   }
    var popupdiv = dojo.byId('popupdiv-highlightword');
   
    if(popupdiv.style.visibility == 'visible')
    {
        var margin = 20;
        var top = calculateOffset(popupdiv,'offsetTop');
        var left = calculateOffset(popupdiv,'offsetLeft');// + " " + evt.clientY);
        var right = popupdiv.offsetWidth + left;
        var bottom = popupdiv.offsetHeight + top;
        var cursorX = evt.clientX;
        var cursorY = evt.clientY;
        if(cursorX > right + margin || cursorX < left - margin || cursorY > bottom + margin || cursorY < top - margin)
        {
           hideHighlightPopupDiv();
        }
    }
    
  // moveinputout('search-master-import-img','importpatents_input');
    
        
}

function handleescapekey(evt)
{
    evt = evt ? evt : (window.event ? window.event : null);
    var KEYCODE_ESCAPE = 27;
    if(evt.keyCode == KEYCODE_ESCAPE)
    {
        if(dojo.byId('popupdiv-searchhelp') != null)
            dojo.byId('popupdiv-searchhelp').style.visibility = 'hidden';
        if(dojo.byId('search-popupdiv') != null)
            dojo.byId('search-popupdiv').style.visibility = 'hidden';
        if(dojo.byId('search-inputtipsdiv') != null)
            dojo.byId('search-inputtipsdiv').style.visibility = 'hidden';
        if(dojo.byId('search-bookmark-popupdiv') != null)
            dojo.byId('search-bookmark-popupdiv').style.visibility = 'hidden';
    }
}

function setSearchTypeCheckBoxLOCARNO()
{
    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 j = dojo.byId('searchtype-j');//JP
    var o = dojo.byId('searchtype-o');//WO
    
    var w = dojo.byId('searchtype-w');//Web
    var s = dojo.byId('searchtype-s');//Schoolor
    
    var d = dojo.byId('searchtype-d');//User Document
    var database = new Array(p,a,c,r,e,j,o,d,w,s);
    var dn_num = DESIGN_DATABASE.length;
    p.checked=false;
    a.checked=false;
    e.checked=false;
    j.checked=false;
    o.checked=false;    
    c.checked=false;
    r.checked=false;
    d.checked=false;
   
    var t=0;
    for( var i = 0 ; i < dn_num; i++)
    {
        database[DESIGN_DATABASE[i]].checked = true;
        t = t | (1<<DESIGN_DATABASE[i]);
        //setSearchTypeCheckBoxClickStatus(1<<DESIGN_DATABASE[i]);
    }
    setSearchTypeSpan(t);
}
function setSearchTypeCheckBoxClickStatus(id)
{
    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 j = dojo.byId('searchtype-j');//JP
    var o = dojo.byId('searchtype-o');//WO
    
    var w = dojo.byId('searchtype-w');//Web
    var s = dojo.byId('searchtype-s');//Schoolor
    
    var d = dojo.byId('searchtype-d');//User Document
    var database = new Array(p,a,c,r,e,j,o,w,s,d);
    if(id < 0)
    {
        p.checked=false;
        a.checked=false;
        e.checked=false;
        j.checked=false;
        o.checked=false;    
        c.checked=false;
        r.checked=false;
        d.checked=false;
        if(w != null)
            w.checked = (id == -1);
        if(s != null)
            s.checked = (id == -2);
    }
    else
    {
        if(w != null)
            w.checked = false;
        if(s != null)
            s.checked = false;
	var cn_num = CN_DATABASE.length;
        var en_num = EN_DATABASE.length;
        var dn_num = DESIGN_DATABASE.length;
        var databasegroup = getDatabaseGroup(id);
        if(databasegroup == 0)
        {
            for( var i = 0 ; i < cn_num; i++)
            {
                database[CN_DATABASE[i]].checked = false;
            }
        }
        else if(databasegroup == 1)
        {
            for( var i = 0 ; i < en_num; i++)
            {
                database[EN_DATABASE[i]].checked = false;
            }
        }
  
/*        if (id == 4 || id == 8)
        {
            p.checked=false;
            a.checked=false;
            e.checked=false;
            j.checked=false;
            o.checked=false;    
        }
        else if(id != 128)
        {
            c.checked=false;
            r.checked=false;
        }*/
    }
}

//function setSearchTypeCheckBoxClickStatus2()
//{
//    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 j = dojo.byId('searchtype-j');//JP
//    var o = dojo.byId('searchtype-o');//WO
//    if(p.checked || a.checked || e.checked || j.checked || o.checked)
//    {
////        p.disabled = false;
////        a.disabled = false;
//        c.checked = false;
////        c.disabled = true;
//        r.checked = false;
// //       r.disabled = true;
// //       e.disabled = false;
////      j.disabled = false;
////      o.disabled = false;
//        if(w != null)
//        {
//            w.checked = false;
//            //w.disabled = true;
//        }
//        if(s != null)
//        {
//            s.checked = false;
//            //s.disabled = true;
//        }
//    }
//    else if(c.checked || r.checked)
//    {
////        c.disabled = false;
////        r.disabled = false;
//        p.checked = false;
////       p.disabled = true;
//        a.checked = false;
////        a.disabled = true;
//        e.checked = false;
////        e.disabled = true;
//        j.checked = false;
////        j.disabled = true;
//        o.checked = false;
////        o.disabled = true;
//        if(w != null)
//        {
//            w.checked = false;
//            //w.disabled = true;
//        }
//        if(s != null)
//        {
//            s.checked = false;
//            //s.disabled = true;
//        }
//    }
//    else if((w != null && w.checked) || (s != null && s.checked))
//    {
//        p.checked = false;
////        p.disabled = true;
//        a.checked = false;
////        a.disabled = true;
//        e.checked = false;
////        e.disabled = true;
//        c.checked = false;
////        c.disabled = true;
//        r.checked = false;
////        r.disabled = true;
//        j.checked = false;
////        j.disabled = true;
//        o.checked = false;
////        o.disabled = true;
//        if(w.checked)
//        {
//           // w.disabled = false;
//            s.checked = false;
//            //s.disabled = true;
//        }
//        else
//        {
//            //s.disabled = false;
//            w.checked = false;
//            //w.disabled = true;
//        }
//    }
//    else
//    {
//        p.checked = false;
//  //      p.disabled = false;
//        a.checked = false;
//  //      a.disabled = false;
//        c.checked = false;
//  //      c.disabled = false;
//        r.checked = false;
//  //      r.disabled = false;
//        e.checked = false;
//  //      e.disabled = false;
//        j.checked = false;
//  //      j.disabled = false;
//        o.checked = false;
//  //      o.disabled = false;
//        if(w != null)
//        {
//            w.checked = false;
//            //w.disabled = false;
//        }
//        if(s != null)
//        {
//            s.checked = false;
//            //s.disabled = false;
//        }
//    }
//}

function setSearchTypeCheckBoxByType(type)
{
    var searchtype = parseInt(type);
    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 j = dojo.byId('searchtype-j');//JP
    var o = dojo.byId('searchtype-o');//WO
    
    var d = dojo.byId('searchtype-d');//User Document
    
    if(type == -1 || type == -2)
    {
        p.checked = false;
        a.checked = false;
        c.checked = false;
        r.checked = false;
        e.checked = false;
        j.checked = false;
        o.checked = false;
        d.checked = false;
        if(w != null && type == -1)
            w.checked = true;
        else if(s != null && type == -2)
            s.checked = true;
    }
    else
    {
        p.checked = ((searchtype & 1) == 1);
        a.checked = ((searchtype & 2) == 2);
        c.checked = ((searchtype & 4) == 4);
        r.checked = ((searchtype & 8) == 8);
        e.checked = ((searchtype & 16) == 16);
        j.checked = ((searchtype & 32) == 32);
        o.checked = ((searchtype & 64) == 64);
        d.checked = ((searchtype & 128) == 128);
        if(w != null)
            w.checked = false;
        if(s != null)
            s.checked = false;
    }
    //setSearchTypeCheckBoxClickStatus();
}

function getSearchTypeValue()
{
    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 j = dojo.byId('searchtype-j');//JP
    var o = dojo.byId('searchtype-o');//WO
    
    var d = dojo.byId('searchtype-d');//User Document
    
    if(w != null && w.checked)
        return -1;
    else if(s != null && s.checked)
        return -2;
    else
    {
        var searchtype = 0;
        if(p.checked)
            searchtype |= 1;
        if(a.checked)
            searchtype |= 2;
        if(c.checked)
            searchtype |= 4;
        if(r.checked)
            searchtype |= 8;
        if(e.checked)
            searchtype |= 16;
        if(j.checked)
            searchtype |= 32;
        if(o.checked)
            searchtype |= 64;
        if(d.checked)
            searchtype |= 128;
        return searchtype;
    }
}

function setSearchTypeSpan(type)
{
    var span = dojo.byId('searchtype-span');
    span.typevalue = type;
    //var searchtype = parseInt(type);
    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 j = dojo.byId('searchtype-j');//JP
    var o = dojo.byId('searchtype-o');//WO
    
    var d = dojo.byId('searchtype-d');//User Document
    
    var spantext = '';
    if(p.checked)
        spantext += ((spantext == '') ? '' : ' & ') + p.getAttribute('displaytext');
    if(a.checked)
        spantext += ((spantext == '') ? '' : ' & ') + a.getAttribute('displaytext');
    if(c.checked)
        spantext += ((spantext == '') ? '' : ' & ') + c.getAttribute('displaytext');
    if(r.checked)
        spantext += ((spantext == '') ? '' : ' & ') + r.getAttribute('displaytext');
    if(e.checked)
        spantext += ((spantext == '') ? '' : ' & ') + e.getAttribute('displaytext');
    if(j.checked)
        spantext += ((spantext == '') ? '' : ' & ') + j.getAttribute('displaytext');
    if(o.checked)
        spantext += ((spantext == '') ? '' : ' & ') + o.getAttribute('displaytext');
    if(d.checked)
        spantext += ((spantext == '') ? '' : ' & ') + d.getAttribute('displaytext');
    if(w != null && w.checked)
        spantext += ((spantext == '') ? '' : ' & ') + w.getAttribute('displaytext');
    if(s != null && s.checked)
        spantext += ((spantext == '') ? '' : ' & ') + s.getAttribute('displaytext');
    span.innerHTML = spantext;
}

function onSearchTypeDivMouseOut(evt) 
{
    var targetdiv = dojo.byId('search-selecttype-div');
	evt = evt ? evt : (window.event ? window.event : null);
	var e = evt.toElement;
	while (e != null && e != targetdiv)
	   e = e.parentNode;
	if (e != null)
	   return;
	if (targetdiv != null)
	{
	    targetdiv.style.visibility = "hidden";
	    var searchtype = getSearchTypeValue();
	    if(searchtype == 0)
	    {
	        dojo.byId('searchtype-p').checked = true;
	        searchtype = 1;
	        setSearchTypeCheckBoxByType(searchtype);
	    }
	    setSearchTypeSpan(searchtype);
	}
}

function onSearchTypeMouseOver(obj)
{
    obj.nextSibling.src = 'img/combobox-arrow-active.gif';
}

function onSearchTypeMouseOut(obj)
{
    obj.nextSibling.src = 'img/combobox-arrow.gif';
}

function onSearchTypeClick(obj)
{
    var popupdiv = dojo.byId('search-selecttype-div');
    if(popupdiv.style.visibility == 'visible')
    {
        popupdiv.style.visibility = 'hidden';
        return;
    }
    popupdiv.style.visibility = 'visible';
    var left = calculateOffset(obj,'offsetLeft');
    var top =  calculateOffset(obj,'offsetTop');
    var scroll = calculateOffset(obj, 'scrollTop');
    popupdiv.style.left = (parseInt(left) - 2) + "px";
    var height = popupdiv.style.height.substring(0, popupdiv.style.height.length - 2);
    height = top - scroll + 17;
    if(height < 0)
        height = 0;
    popupdiv.style.top = height + "px";
}



function moveinputout(posid,inputid)
{
    var pos = dojo.byId(posid);
    if(pos!=null){
    pos.src='img/uploadpatent.gif';
    var input = dojo.byId(inputid);
    //input.style.top = '-100px';
    //input.style.left = '-200px';
    input.style.visibility = 'hidden';
    }
}


