function showKShell(top,drop){
	var shell=getObject('kshell');
	setPosition(shell,getObject('pg'),1,getObject(top),drop);
	setKWCur();
	setUsed();
	shell.className='kshello';
}
function setPosition(e,le,l,te,t){
	e.style.left=(le.offsetLeft+l)+'px';
	e.style.top=(te.offsetTop+t)+'px';
}
function hideKShell(){
	getObject('kshell').className='kshellc';
}
function showK(task,top,drop){
	kTask(task);
	getKData(task);
	showKShell(top,drop);
	return false;
}
function kTask(task){
	if(task){
		getObject('ktask').innerHTML=task;
	}
	return getObject('ktask').innerHTML;
}

function submitKFilt(){
	var kw=getObject('kwcur').innerHTML;
	var kw=escape(kw.replace(/<[^>]*>/g,'').replace(/&nbsp;/g,' ')).replace(/\+/g,'%2B');
	d='&as=krep&kw='+kw+'&kc=2';
	editSearch(d);
}
function setKWCur(reset){
	var t=getObject('kwcur').innerHTML;
	if(reset||!t){
		getObject('kwcur').innerHTML=getObject('kworig').innerHTML.replace(/t_k/g,'k');
	}
}
function setUsed(reset){
	var t=getObject('kused').innerHTML;
	if(reset||!t){
		getObject('kused').innerHTML=getObject('korig').innerHTML;
	}
}
function resetKFilt(){
	setKWCur(1);
	var task=kTask();
	setUsed(1);
	getKData(task);	
}
function wordFromOrd(w,o){
	w=!w.length?getObject('korig').innerHTML.split(',')[o]:w;
	return w;
}
function getID(e){
	if(typeof e !='string'){
		e=e.id;
	}
	return e;
}
function addEmptyOpt(id,t,w){
	var oid='opt_'+id;
	var s='\n<div class="kopt" id="'+oid+'"><div></div></div>';
	s=((t!='f')&&(t!='u'))?s+'\n<div class="kbar" id="'+oid+'gen"><div>generating suggestions for <span class="bld">'+w+'</span>...</div><div class="genbar" id="'+oid+'bar"></div></div>':s;
	getObject('kc'+t).innerHTML+=s;
	return oid;
}
function srcDiv(t){
	t=(t=='h')?'p':t;
	return 'ks'+t;
}
function untasked(task){
	var tasked=getObject('tasked').innerHTML;
	var ret=1;
	if(tasked.indexOf(task)>-1){
		ret=0;
	}
	return ret;
}
function setTaskedMaxJ(task,j){
	var tasked=getObject('tasked').innerHTML;
	getObject('tasked').innerHTML=tasked+task;
	getObject('maxopt').innerHTML=j;
}
function clearTabs(){
	getObject('ktabs').innerHTML='';
}
function activateBar(id){
	var pid=id+'bar';
	var did=pid+'i';
	var img='<img src="http://images.jobcentral.com/jcv2/icons/blueslant15h.gif" align="absmiddle">';
	var div='<div id="'+did+'" style="margin-left:-45px">'+img+img+img+img+img+'</div>';
	getObject(pid).innerHTML=div;
	moveBar(did);
}
function moveBar(id){
	var e=getObject(id);
	if(e){
		var l=parseInt(e.style.marginLeft);
		l++;
		if(l>-15){
			l=-44;
		}
		e.style.marginLeft=l+'px';
		var t=setTimeout('moveBar(\''+id+'\')',100);
	}
}
function createOpts(curtask,task,t,j){
	var optword;
	var aUsed=new Array();
	if(curtask==task){
		var ks=getObject(srcDiv(t));
		if(ks){	
			var kss=ks.innerHTML;
			if(kss){				
				addTab(t);
				var aks=ks.innerHTML.split(',');			
				for(var i=0;i<aks.length;i++){
					optword=wordFromOrd('',aks[i]);
					if(t=='w'){
						if(aUsed.length>0){
							for(var k=0;k<aUsed.length;k++){
								if(aUsed[k]==optword.substr(0,4)){
									optword='';
									break;
								}
							}
						}
						//???
						//aUsed[aUsed.length]=aks[i].substr(0,4);	
						aUsed[aUsed.length]=wordFromOrd('',aks[i]).substr(0,4);					
					}
					if(optword){
						if(untasked(curtask)){
							var id=addEmptyOpt(j,t,optword);
							switch(t){
								case 's':
								case 'w':								
								case 'p':
								case 'h':
									activateBar(id);
									callKAjax(task,'opt_'+j,optword,t,1,aks[i]);
									break;
								case 'f':
								case 'u':				
									showForce(task,'opt_'+j,optword,aks[i]);
									break;	
							}
						}
						j++;
					}
				}
			}
		}
	}
	return j;
}
function removeTab(t){
	var e=getObject('kt'+t);
	e.innerHTML='&nbsp;';
	e.className='ktabb';	
}
function addTab(t){
	var e=getObject('ktabs');
	var m;
	var l1='<a href="#" onclick="return setKTab(\'';
	var l2='\');">';
	var l3='</a>';
	var cl='ktab';
	var id='kt';
	var sDiv=fillDiv('ktabf','&nbsp;','')
	switch (t){
		case 's':
			m='try similar/additional words';
			break;
		case 'w':
			m='add wildcards';
			break;
		case 'u':
			m='search the entire job';
			break;
		case 'p':
			m='try phrases instead of words';
			break;
		case 'h':
			m='block irrelevant phrases';
			break;
		case 'f':
			m='search just the job title';
			break;
		case 'c':
			var l1='';
			var l2='';
			var l3='';
			cl='c';
			m='';
			id='';
			t='';
			//sDiv='';
			break;
		case 'b':
			//blank
			var l1='';
			var l2='';
			var l3='';
			m='&nbsp;';
			cl='ktabb';
			id='';
			t='';
			break;
	}
	e.innerHTML+=sDiv+fillDiv(cl,l1+t+l2+m+l3,id+t);	
}
function getMaxOpt(){
	var e=getObject('maxopt');
	var j=e.innerHTML;
	return parseInt(j);
}
function getKData(task,e,w,t,p,o){
	if(e){ 			
		e=getID(e);
		w=wordFromOrd(w,o);		
		switch (t){
			case 's':							
			case 'w':								
			case 'p':
			case 'h':				
				callKAjax(task,e,w,t,p,o);
				break;	
			case 'f':
			case 'u':				
				showForce(task,e,w,o);
				break;	
		}	
				
	}else{
		var j=getMaxOpt();		
		j=j>0?j++:j;
		var oJ=j;
		var numtabs=0;			
		switch (task){
			case 'getmore':	
				getObject('ktitlerow').innerHTML='<span class="bld">Find More Jobs!</span> - Try some of these suggested changes to improve your search...';
				break;	
			case 'getbetter':
				getObject('ktitlerow').innerHTML='<span class="bld">Get more accurate results!</span> - Try some of these suggested changes to improve your search...';
				break;					
		}
		clearTabs();
		j=createOpts(task,'getmore','s',j);
		numtabs=(j>oJ)?numtabs+1:numtabs;
		oJ=j;		
		j=createOpts(task,'getmore','w',j);
		numtabs=(j>oJ)?numtabs+1:numtabs;
		oJ=j;	
		j=createOpts(task,'getmore','u',j);
		numtabs=(j>oJ)?numtabs+1:numtabs;
		oJ=j;

		j=createOpts(task,'getbetter','p',j);
		numtabs=(j>oJ)?numtabs+1:numtabs;
		oJ=j;
		j=createOpts(task,'getbetter','h',j);
		numtabs=(j>oJ)?numtabs+1:numtabs;
		oJ=j;
		j=createOpts(task,'getbetter','f',j);
		numtabs=(j>oJ)?numtabs+1:numtabs;
		for(var i=numtabs;i<3;i++){
			addTab('b');
		}
		addTab('c');
		setKTab();
		setTaskedMaxJ(task,j);
	}
	return false;	
}
function fillDiv(c,f,id,oc){
	var ids=id?' id="'+id+'"':'';	
	var ocs=oc?' onclick="'+oc+'"':'';
	return '<div'+ids+ocs+' class="'+c+'">'+f+'</div>';
}
function fillSpan(c,f){
	return '<span class="'+c+'">'+f+'</span>';
}
function showForce(task,elem,w,o){
	var divdesc='';	
	var divlinks='';
	switch (task){
		case 'getmore':
			divdesc=fillDiv('sp10','<div></div>')+fillDiv('kdesc','The word '+fillSpan('bld',w)+' is limited to search against the job title only ('+fillSpan('bld','title:'+w)+'). Unless it is a word that describes a "role" or is commonly contained in job descriptions unrelated to '+fillSpan('bld',w)+', you may consider allowing it to search against the entire job description : ');
			divlinks+=fillDiv('sp10','<div></div>')+fillDiv('kforce','Allow <a href="#" onclick="return adjKW(\'u\','+o+',this);">'+w+'</a> to search against the entire job');
			break;
		case 'getbetter':
			divdesc=fillDiv('sp10','<div></div>')+fillDiv('kdesc','The word '+fillSpan('bld',w)+' is set to search against the entire job description. If it is a word that describes a "role" (manager, Assistant, driver) or is commonly contained in job descriptions unrelated to '+fillSpan('bld',w)+', you may consider limiting it to search against only the job title ('+fillSpan('bld','title:'+w)+') : ');
			divlinks+=fillDiv('sp10','<div></div>')+fillDiv('kforce','Limit <a href="#" onclick="return adjKW(\'f\','+o+',this);">'+w+'</a> to search against only the job title');
			break;
	}	
	elem=showOpt(elem);
	elem.innerHTML=divdesc+divlinks;
}
function callKAjax(task,elem,w,t,p,o) {
	var ajax=createAjaxObj();
	var gurl='http://'+document.location.hostname+'/'+task+'.asp?';
	var nocache=new Date();
	//alert(gurl+'t='+t+'&w='+escape(w)+'&p='+p+'&nocache='+escape(nocache.getUTCSeconds()));
	ajax.open('GET', gurl+'t='+t+'&w='+escape(w)+'&p='+p+'&nocache='+escape(nocache.getUTCSeconds()),true);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4){
			if(ajax.status == 200) {
				//alert(ajax.responseText);
				var xml = ajax.responseXML;
				var divlinks='';
				var divlinks2='';
				var divinst='';	
				var divdesc='';	
				var divdesc2='';	
				var j=0;
				var dd='';
				var dd2='';
				var ddh='';
				var dd2h='';
				var di='';
				var dl='';
				var dlc='';
				var jl=0;
				var word='';
				var used=0;
				var bWrite=0;
				var bWrite2=0;
				//t=s,u,w,p,f	synonyms,unforces,wildcards,phrases,forces
				switch (t){
					case 's':
						bWrite=1;
						dd='Other users who searched for '+fillSpan('bld',w)+' also searched for : ';
						di='(Click each word above you would like to include in your search)';
						jl=3;
						dlc='ksyn';
						var words = xml.getElementsByTagName('word');	
						var numwords=words.length;
						var u=getObject('kused').innerHTML;
						var aUsed=u.split(',');	
						if(numwords>0&&p<=3){							
							for(var i=0;i<words.length;i++){
								word=words[i].childNodes[0].nodeValue;
								used=isUsed(word,aUsed,t);			
								if(used){
									divlinks+=fillDiv(dlc,fillSpan('gray',word));
								}else{
									divlinks+=fillDiv(dlc,'<a href="#" onclick="return adjKW(\''+t+'\','+o+',this);">'+word+'</a>');
								}						
								j++;
								if(j==jl){
									divlinks+=fillDiv('c','')+'\n';
									j=0;
								}			
							}
							if(numwords<20){
								if(j<jl-1){
									for(var i=j;i<jl-1;i++){
										divlinks+=fillDiv(dlc,'&nbsp;');
									}
								}
							}
							if(numwords==20&&p<3){
								divlinks+=fillDiv('kmore','<a href="#" onclick="return getKData(\''+task+'\',\''+elem+'\',\'\',\''+t+'\','+parseInt(p+1).toString()+','+o+');">get more keywords...</a>');
							}else{	
								divlinks+=fillDiv('kmore','<a href="#" onclick="return getKData(\''+task+'\',\''+elem+'\',\'\',\''+t+'\','+parseInt(p+1).toString()+','+o+');">enter more keywords...</a>');
							}
						}else{
							if(p>1){
								dd='Please enter other words similar to '+fillSpan('bld',w)+' to get more jobs. For example, if your word was '+fillSpan('bld','investments')+', then try entering '+fillSpan('bld','"financial services"')+' or '+fillSpan('bld','securities');				
							}else{
								dd='No users have used the word '+fillSpan('bld',w)+' in conjunction with another word.  Please enter other words similar to '+fillSpan('bld',w)+' to get more jobs. For example, if your word was '+fillSpan('bld','investments')+', then try entering '+fillSpan('bld','"financial services"')+' or '+fillSpan('bld','securities');				
							}
							di='(Click the search button below if you are finished, scroll down or move to another tab for more options)';							
							dlc='ksyn';
							for(var i=0;i<3;i++){
								divlinks+=fillDiv(dlc,'<input type="text" id="ki'+t+'_'+o+'_'+i+'" class="text" value="" width="140px" onkeyup="spanInput('+o+',\''+t+'\');">');
							}
						}
						divlinks+=fillDiv('c','')+'\n';	
						divlinks=fillDiv('sp10','<div></div>')+divlinks;																									
						break;
					case 'w':
						//words/stemwords/stemword/word
						//words/stemwords/stemword/stem
						//words/otherstems/otherstem/ostem
						//words/otherstems/otherstem/oword
						
						var stem='';
						var stw;
						var u=getObject('kused').innerHTML;
						var aUsed=u.split(',');	
						var stemwords = xml.getElementsByTagName('stemword');	
						var numstemwords=stemwords.length;
						var otherstems = xml.getElementsByTagName('otherstem');	
						var numotherstems=otherstems.length;
						jl=3;
						dlc='kstem';
						if(numstemwords>0){							
							stw=stemwords[0].childNodes;
							stem=stw[0].childNodes[0].nodeValue;
							if(numstemwords>1){
								used=isUsed(stem+'*',aUsed,t);
								if(!used){
									bWrite=1;								
									dd='Using the "stem" of the word ('+fillSpan('bld',stem)+') with a wild card ('+fillSpan('bld',"*")+') will retrieve all forms of the word.';							
									ddh='There are other forms of the word '+fillSpan('bld',w)+' that are often used in jobs. Using the "stem" of the word ('+fillSpan('bld',stem)+') with a wild card ('+fillSpan('bld',"*")+') will allow you to search for all forms of the word.';							
									divlinks+=fillDiv('sp5','<div></div>')+fillDiv('kdesc2','Search for '+fillSpan('kste','<a href="#" onclick="return adjKW(\''+t+'\','+o+',this);">'+stem+'*</a>')+' or choose individual words below :');								
									for(var i=0;i<stemwords.length;i++){
										stw=stemwords[i].childNodes;
										//alert(stw[1].childNodes.length);
										word=stw[1].childNodes[0].nodeValue;								
										used=isUsed(word,aUsed,t);							
										if(used){
											divlinks+=fillDiv(dlc,fillSpan('gray',word));
										}else{
											divlinks+=fillDiv(dlc,'<a href="#" onclick="return adjKW(\''+t+'\','+o+',this);">'+word+'</a>');
										}						
										j++;
										if(j==jl){
											divlinks+=fillDiv('c','')+'\n';
											j=0;
										}			
									}
									divlinks+=fillDiv('c','')+'\n';	
								}					
							}
							if(numotherstems>0){																							
								dd2='There may be other relevant words with "stems" similar to '+fillSpan('bld',w)+' ('+fillSpan('bld',stem)+') often used in jobs.';
								dd2h='There may be other relevant words with "stems" similar to '+fillSpan('bld',w)+' ('+fillSpan('bld',stem)+') often used in jobs. Using the "stem(s)" of these words with a wild card will allow you to search for all forms of the words.';
								for(var m=0;m<numotherstems;m++){
									stw=otherstems[m].childNodes;
									stem=stw[0].childNodes[0].nodeValue;
									used=isUsed(stem+'*',aUsed,t);
									if(!used){
										bWrite2=1;
										divlinks2+=fillDiv('sp5','<div></div>')+fillDiv('kdesc2','Search for '+fillSpan('kste','<a href="#" onclick="return adjKW(\''+t+'\','+o+',this);">'+stem+'*</a>')+' or choose individual words below :');								
										j=0;
										for(var i=1;i<stw.length;i++){
											word=stw[i].childNodes[0].nodeValue;
											used=isUsed(word,aUsed,t);				
											if(used){
												divlinks2+=fillDiv(dlc,fillSpan('gray',word));
											}else{
												divlinks2+=fillDiv(dlc,'<a href="#" onclick="return adjKW(\''+t+'\','+o+',this);">'+word+'</a>');
											}						
											j++;
											if(j==jl){
												divlinks2+=fillDiv('c','')+'\n';
												j=0;
											}			
										}
										divlinks2+=fillDiv('c','')+'\n';
									}	
								}
							}
							di='("Misspelled" words are included above as they come directly from actual jobs)';	
						}	
						break;	
					case 'p':
						jl=3;
						dlc='kphrase';
						var words = xml.getElementsByTagName('phrase');	
						var numwords=words.length;
						bWrite=1;
						di='(Click the search button below if you are finished, scroll down / click another tab for more options)';													
						var u=getObject('kused').innerHTML;
						var aUsed=u.split(',');	
						if(numwords>0&&p<=3){	
							dd='Other users used phrases containing '+fillSpan('bld',w)+' to limit the jobs returned : ';
							ddh=dd+'<br>The word '+fillSpan('bld',w)+' is commonly used in phrases that might be more specific to the type of job you want than '+fillSpan('bld',w)+' itself.  Browse through the phrases below clicking those that could possibly be contained in a job which would interest you.'						
							for(var i=0;i<words.length;i++){
								word=words[i].childNodes[0].nodeValue;
								used=isUsed(word,aUsed,t);			
								if(used){
									divlinks+=fillDiv(dlc,fillSpan('gray',word));
								}else{
									divlinks+=fillDiv(dlc,'<a href="#" onclick="return adjKW(\''+t+'\','+o+',this);">'+word+'</a>');
								}						
								j++;
								if(j==jl){
									divlinks+=fillDiv('c','')+'\n';
									j=0;
								}			
							}
							if(numwords<20){
								if(j<jl-1){
									for(var i=j;i<jl-1;i++){
										divlinks+=fillDiv(dlc,'&nbsp;');
									}
								}
							}
							if(numwords==20&&p<3){
								divlinks+=fillDiv('kmore','<a href="#" onclick="return getKData(\''+task+'\',\''+elem+'\',\'\',\''+t+'\','+parseInt(p+1).toString()+','+o+');">get more phrases...</a>');
							}else{	
								divlinks+=fillDiv('kmore','<a href="#" onclick="return getKData(\''+task+'\',\''+elem+'\',\'\',\''+t+'\','+parseInt(p+1).toString()+','+o+');">enter more phrases...</a>');
							}					
						}else{
							dd='Enter phrases containing '+fillSpan('bld',w)+' to limit the jobs returned : ';
							ddh=dd+'<br>If the word '+fillSpan('bld',w)+' is commonly used in phrases that might be more specific to the type of job you want than the word itself, enter them below. ';
							for(var i=0;i<3;i++){
								divlinks+=fillDiv(dlc,'<input type="text" id="ki'+t+'_'+o+'_'+i+'" class="text" value="" width="140px" onkeyup="spanInput('+o+',\''+t+'\');">');
							}
						}
						divlinks+=fillDiv('c','')+'\n';	
						divlinks=fillDiv('sp10','<div></div>')+divlinks;																									
						break;
					case 'h':
						jl=3;
						dlc='kphrase';						
						var words = xml.getElementsByTagName('phrase');	
						var numwords=words.length;
						bWrite=1;
						di='(Click the search button below if you are finished, scroll down / click another tab for more options)';													
						var u=getObject('kused').innerHTML;
						var aUsed=u.split(',');	
						if(numwords>0&&p<=3){	
							dd='Use the word "NOT" in combination with phrases containing '+fillSpan('bld',w)+' to block irrelevant jobs : ';
							ddh=dd+'<br>The word '+fillSpan('bld',w)+' is commonly used in the phrases below.  To narrow your results, you may choose to limit opportunities returned to those that do not contain certain phrases, while still matching '+fillSpan('bld',w)+'. Browse through the phrases below clicking those that would <u>never</u> be contained in a job which would interest you.';
							for(var i=0;i<words.length;i++){
								word=words[i].childNodes[0].nodeValue;
								used=isUsed(word,aUsed,t);			
								if(used){
									divlinks+=fillDiv(dlc,fillSpan('gray','NOT '+word));
								}else{
									divlinks+=fillDiv(dlc,'<a href="#" onclick="return adjKW(\''+t+'\','+o+',this);">NOT '+word+'</a>');
								}						
								j++;
								if(j==jl){
									divlinks+=fillDiv('c','')+'\n';
									j=0;
								}			
							}
							if(numwords<20){
								if(j<jl-1){
									for(var i=j;i<jl-1;i++){
										divlinks+=fillDiv(dlc,'&nbsp;');
									}
								}
							}
							if(numwords==20&&p<3){
								divlinks+=fillDiv('kmore','<a href="#" onclick="return getKData(\''+task+'\',\''+elem+'\',\'\',\''+t+'\','+parseInt(p+1).toString()+','+o+');">get more phrases...</a>');
							}else{	
								divlinks+=fillDiv('kmore','<a href="#" onclick="return getKData(\''+task+'\',\''+elem+'\',\'\',\''+t+'\','+parseInt(p+1).toString()+','+o+');">enter more phrases...</a>');
							}					
						}else{
							dd='Enter phrases containing '+fillSpan('bld',w)+' you would never expect to see in any job that might interest you : ';
							ddh=dd+'<br>If the word '+fillSpan('bld',w)+' is commonly used in phrases that might be totally irrelevant to the type of job you want than the word itself, enter them below. ';
							for(var i=0;i<3;i++){
								divlinks+=fillDiv(dlc,'<input type="text" id="ki'+t+'_'+o+'_'+i+'" class="text" value="" width="140px" onkeyup="spanInput('+o+',\''+t+'\');">');
							}
						}
						divlinks+=fillDiv('c','')+'\n';	
						divlinks=fillDiv('sp10','<div></div>')+divlinks;																									
						break;							
				}
				if(bWrite||bWrite2){
					if(bWrite){
						divdesc=fillDiv('sp10','<div></div>')+fillDiv('kdesc',dd,t+o+'_1i');
						divdesc+=ddh.length?fillDiv('kdesch',ddh,t+o+'_1h')+fillDiv('kdesce','?',t+o+'_1','return flipDesc(this);'):'';
						divdesc+=fillDiv('c','')+'\n';
					}
					if(bWrite2&&dd2){
						divdesc2=fillDiv('sp10','<div></div>')+fillDiv('kdesc',dd2,t+o+'_2i');
						divdesc2+=dd2h.length?fillDiv('kdesch',dd2h,t+o+'_2h')+fillDiv('kdesce','?',t+o+'_2','return flipDesc(this);'):'';
						divdesc2+=fillDiv('c','')+'\n';	
					}			
					divinst=fillDiv('kbdesc',di);
					elem=showOpt(elem);
					elem.innerHTML=divdesc+divlinks+divdesc2+divlinks2+divinst;
				}else{	
					var helem=elem;		
					elem=getObject(elem);
					var pe=elem.parentNode;
					pe.removeChild(elem);
					hideBar(helem);					
				}	
			}		
		}
	}
	ajax.send(null);
	var requestTimer = setInterval(function() {if(abort==true){ajax.abort();clearInterval(requestTimer)}},50);  	
}
function repSp(s){
	if(s.indexOf(' ')==0){
		s='&nbsp;'+s.substr(1);
	}
	return s;
}
function spanInput(o,t){		
	var w=wordFromOrd('',o);
	var w1=getObject('ki'+t+'_'+o+'_0').value;
	var w2=getObject('ki'+t+'_'+o+'_1').value;
	var w3=getObject('ki'+t+'_'+o+'_2').value;
	var ms='';
	var e=getObject('k'+t+'_i_'+o)
	switch (t){
		case 's':		
			ms=w1?ms+' OR '+w1:ms;
			ms=w2?ms+' OR '+w2:ms;
			ms=w3?ms+' OR '+w3:ms;
			ms=repSp(ms);
			e.innerHTML=ms;
			break;							
		case 'w':
			ms=w1?ms+' OR '+w1:ms;
			ms=w2?ms+' OR '+w2:ms;
			ms=w3?ms+' OR '+w3:ms;
			ms=repSp(ms);
			e.innerHTML=ms;								
		case 'p':	
			var isT=isTitled(o);
		
			w1=w1.length&&w1.substr(0,1)!='"'?'"'+w1:w1;
			w1=w1.length&&w1.substr(w1.length-1,1)!='"'?w1+'"':w1;
			w2=w2.length&&w2.substr(0,1)!='"'?'"'+w2:w2;
			w2=w2.length&&w2.substr(w2.length-1,1)!='"'?w2+'"':w2;
			w3=w3.length&&w3.substr(0,1)!='"'?'"'+w3:w3;
			w3=w3.length&&w3.substr(w3.length-1,1)!='"'?w3+'"':w3;			
			
			var ew1=w1.match(w,'i')?w1:'';
			var ew2=w2.match(w,'i')?w2:'';
			var ew3=w3.match(w,'i')?w3:'';

		//catch not phrase word
		//	if(w1&&!ew1){
		//
		//			}
			w1=ew1&&isT?'title:'+ew1:ew1;
			w2=ew2&&isT?'title:'+ew2:ew2;
			w3=ew3&&isT?'title:'+ew3:ew3;

			ms=w1?ms+' OR '+w1:ms;
			ms=w2?ms+' OR '+w2:ms;
			ms=w3?ms+' OR '+w3:ms;
			if(ms){
				ms=ms.substr(4);
			}
			e.innerHTML=ms;	
			break;	
		case 'h':	
			var isT=isTitled(o);
		
			w1=w1.length&&w1.substr(0,1)!='"'?'"'+w1:w1;
			w1=w1.length&&w1.substr(w1.length-1,1)!='"'?w1+'"':w1;
			w2=w2.length&&w2.substr(0,1)!='"'?'"'+w2:w2;
			w2=w2.length&&w2.substr(w2.length-1,1)!='"'?w2+'"':w2;
			w3=w3.length&&w3.substr(0,1)!='"'?'"'+w3:w3;
			w3=w3.length&&w3.substr(w3.length-1,1)!='"'?w3+'"':w3;	
		
			var ew1=w1.match(w,'i')?w1:'';
			var ew2=w2.match(w,'i')?w2:'';
			var ew3=w3.match(w,'i')?w3:'';

		//catch not phrase word
		//	if(w1&&!ew1){
		//
		//			}
			w1=ew1&&isT?'title:'+ew1:ew1;
			w2=ew2&&isT?'title:'+ew2:ew2;
			w3=ew3&&isT?'title:'+ew3:ew3;

			ms=w1?ms+' AND NOT '+w1:ms;
			ms=w2?ms+' AND NOT '+w2:ms;
			ms=w3?ms+' AND NOT '+w3:ms;
			ms=repSp(ms);			
			e.innerHTML=ms;	
			break;	
		case 'f':
		case 'u':
	}
	setParens(o);

	
}
function isTitled(o){
	var e=getObject('kr_'+o);
	var term=e.innerHTML;
	var ret=0;
	if(term.substr(0,6)=='title:'){
		ret=1;
	}
	return ret;	
}
function adjKW(t,o,nterm){
	//term is ordinal
	//nterm is object
	var term=wordFromOrd('',o);	
	if(nterm){
		nterm=getObject(nterm);
		aterm=nterm.innerHTML;
	}
	var nkw='';
	var e;
	var cn='';
	var cLink='';
	var pn;
	switch (t) {
		case 'u':
			e=getObject('kr_'+o);
			e.innerHTML=term;			
			nterm.parentNode.innerHTML=fillSpan('gray','Allowed '+term+' to search against the entire job');
			break;
		case 'f':
			e=getObject('kr_'+o);
			e.innerHTML='title:'+term;
			nterm.parentNode.innerHTML=fillSpan('gray','Limited '+term+' to search against only the job title');
			break;
		case 'p':
			var isT=isTitled(o);
			var rterm=isT?'title:'+aterm:aterm;
			e=getObject('kp_l_'+o);
			var ei=getObject('kp_i_'+o);
			nkw=e.innerHTML;
			var nkwi=ei.innerHTML;
			nkw=nkw?nkw+' OR '+rterm:rterm;
			nkw=nkwi?nkw+' OR ':nkw;
			//this ensures there's always an or on the irght if need be
			e.innerHTML=nkw;
			setParens(o);
			var links=document.links;	
			for(var i=links.length-1;i>=0;i--){
				pn=links[i].parentNode;
				if(pn){
					cn=pn.className;										
					if(cn=='kphrase'){
						cLink=links[i].innerHTML;
						if(cLink.replace('NOT ','')==aterm){
							pn.innerHTML=fillSpan('gray',cLink);
						}
					}
				}
			}
			document.getElementById('kused').innerHTML+=','+aterm;			
			break;
		case 'h':
			var isT=isTitled(o);
			aterm=aterm.replace('NOT ','');
			e=getObject('kh_l_'+o);
			nkw=e.innerHTML;
			var rterm=isT?'title:'+aterm:aterm;
			nkw+=repSp(' AND NOT '+rterm);
			e.innerHTML=nkw;
			setParens(o);				
			var links=document.links;	
			for(var i=links.length-1;i>=0;i--){
				pn=links[i].parentNode;
				if(pn){
					cn=pn.className;										
					if(cn=='kphrase'){
						cLink=links[i].innerHTML;
						if(cLink.replace('NOT ','')==aterm){
							pn.innerHTML=fillSpan('gray',cLink);
						}						
					}
				}
			}
			getObject('kused').innerHTML+=','+aterm;			
			break;
		case 's':		
			e=getObject('ks_l_'+o);
			nkw=e.innerHTML;
			nkw+=repSp(' OR '+aterm);
			e.innerHTML=nkw;
			setParens(o);
			var links=document.links;	
			for(var i=links.length-1;i>=0;i--){
				pn=links[i].parentNode;
				if(pn){
					cn=pn.className;										
					if((cn=='ksyn')||(cn.substr(0,4)=='kste')){
						cLink=links[i].innerHTML;
						if(cLink==aterm){
							pn.innerHTML=fillSpan('gray',aterm);
						}
					}
				}
			}
			getObject('kused').innerHTML+=','+aterm;
			break;
		case 'w':
			e=getObject('kw_l_'+o);
			nkw=e.innerHTML;
			nkw+=repSp(' OR '+aterm);
			e.innerHTML=nkw;
			setParens(o);
			var links=document.links;			
			var cTerm=aterm;
			var lenTerm=cTerm.length;
			var isWC=cTerm.substr(lenTerm-1,1)=='*'?1:0;
			if(isWC){
				cTerm=cTerm.substr(0,lenTerm-1);
				lenTerm--;
			}
			for(var i=links.length-1;i>=0;i--){
				pn=links[i].parentNode;
				if(pn){
					cn=pn.className;
					if((cn.substr(0,4)=='kste')||(cn=='ksyn')){						
						cLink=links[i].innerHTML;
						if(isWC){	
							if(cLink.substr(0,lenTerm)==cTerm){
								pn.innerHTML=fillSpan('gray',cLink);
							}
						}else{						
							if(cLink==cTerm){
								pn.innerHTML=fillSpan('gray',cLink);
							}
					
						}																
					}
				}
			}
			getObject('kused').innerHTML+=','+aterm;
			break;
	}			
	return false;
}
function setParens(o){
	var spe;
	var spei;
	var she;
	var shei;
	var sse;
	var ssei;
	var swe;
	var swei;
	var re=getObject('kr_'+o);
	var relp=getObject('kr_lp_'+o);
	var remp=getObject('kr_mp_'+o);
	var rerp=getObject('kr_rp_'+o);

	var pe=getObject('kp_l_'+o);
	var pei=getObject('kp_i_'+o);
	var pelp=getObject('kp_lp_'+o);
	var perp=getObject('kp_rp_'+o);	
	var he=getObject('kh_l_'+o);
	var hei=getObject('kh_i_'+o);
	var herp=getObject('kh_rp_'+o);

	var se=getObject('ks_l_'+o);
	var sei=getObject('ks_i_'+o);
	var we=getObject('kw_l_'+o);
	var wei=getObject('kw_i_'+o);



	if(pe){
		spe=pe.innerHTML; 
		spei=pei.innerHTML; 
		she=he.innerHTML; 
		shei=hei.innerHTML; 
	}
	if(se){
		sse=se.innerHTML; 
		ssei=sei.innerHTML; 
	}
	if(we){
		swe=we.innerHTML; 
		swei=wei.innerHTML;
	}
	relp.innerHTML='';
	remp.innerHTML='';
	rerp.innerHTML='';
	pelp.innerHTML='';
	perp.innerHTML='';
	herp.innerHTML='';
	var p=spe+spei+she+shei;
	var s=sse+ssei+swe+swei;
	if(p||s){
		rerp.innerHTML=')';
		if(p&&s){
			relp.innerHTML='((';
			remp.innerHTML=')';
		}else{
			relp.innerHTML='(';
		}		
		if(spe||spei){
			perp.innerHTML=')';
			if(she||shei){
				pelp.innerHTML=repSp(' AND ((');				
				herp.innerHTML=')';
			}else{
				pelp.innerHTML=repSp(' AND (');
			}				
		}		
	}

}
function flipDesc(e){
	var ho=getObject(e.id+'h');
	var so=getObject(e.id+'i');
	var s=ho.innerHTML;
	var h=so.innerHTML;
	so.innerHTML=s;
	ho.innerHTML=h;
	e.style.background=((e.style.background=='url("http://images.jobcentral.com/jcv2/icons/adown_jc.gif") no-repeat 50% 100%')||(e.style.background==''))?'url("http://images.jobcentral.com/jcv2/icons/aup_jc.gif") no-repeat 50% 100%':'url("http://images.jobcentral.com/jcv2/icons/adown_jc.gif") no-repeat 50% 100%';
	return false;
}
function setKTab(t){
	var aTabs=new Array('kts','ktw','ktu','ktp','kth','ktf');
	var e;
	var f;
	var isSet=0;
	var id;
	for(var i=0;i<aTabs.length;i++){
		f=getObject(aTabs[i].replace(/kt/,'kc'));
		f.className='kconth';		
		e=getObject(aTabs[i]);		
		if(e){			
			e.className=e.className!='ktabb'?'ktab':'ktabb';			
			if((!t&&!isSet)||(aTabs[i]=='kt'+t)){
				e.className='ktabc';
				isSet=1;
				f.className='kconts';
			}	
		}		
	}
	return false;
}
function isUsed(word,aUsed,t){
	var lenUsed=0;
	var lenWord=0;
	var cUsed='';
	var cWord='';
	var isUWC=0;
	var isWWC=0;

	cWord=word;
	lenWord=cWord.length;
	isWWC=cWord.substr(lenWord-1,1)=='*'?1:0;

	for(var i=0;i<aUsed.length;i++){
		cUsed=aUsed[i];
		lenUsed=cUsed.length;
		isUWC=cUsed.substr(lenUsed-1,1)=='*'?1:0;
		if(isWWC&&isUWC&&cWord==cUsed){				
			return 1;
			break;	
		}else{			
			if(isUWC){
				if(cUsed.substr(0,lenUsed-1)==cWord.substr(0,lenUsed-1)){
					return 1;
					break;		
				}
			}else{
				if(cUsed==cWord){
					return 1;
					break;
				}
			}
		}			
	}
	return 0;
}
function getObject(e){
	var o;
	if (typeof e == 'string') {
 		o=document.getElementById(e);
	}else{
		o=e;
	}
  	return o;
}
function showOpt(e){
	var pe=getObject(e);
	if(pe){
		pe.className='koptv';
		hideBar(e);
	}
	return pe;
}
function hideBar(e){
	var be=getObject(e+'gen');
	var del=1;
	if(be){
		var pe=be.parentNode;
		pe.removeChild(be);
		var nodes=pe.childNodes;		
		for(var i=0;i<nodes.length;i++){
			if(nodes[i].nodeName=='DIV'){
				del=0;
			}
		}
		if(del){
			setKTab();
			removeTab(pe.id.substr(2));
		}
	}
}
