/*XSearch version5.0 http://www.twicefun.com/just4fun   */

var searchname = 'search.htm';

var usebannercode = true;

var ButtonCode = "<img src='searchbutton.gif' border=0>";

function templateBody() { document.write('<html><head><title>Welcome to SoftWorks Limited - Softworks Search</title>');
  document.write('<meta http-equiv="Content-Type" content="text/html; harset=iso-8859-1"><link rel="stylesheet" href="script/telnetIntranet.css"></head>');
  document.write('<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">');
  document.write('<script language="JavaScript1.2" src="../script/sample_data.js"></script>');
  document.write('<script language="JavaScript1.2" src="../script/dqm_script.js"></script>');
  document.write('<table width="800" cellspacing="0" cellpadding="0"><tr><td><table width="100%" cellspacing="0" cellpadding="0">');
  document.write('<tr><td width="23%" valign="top" height="448"><table width="100%" cellspacing="0" cellpadding="0"><tr>');
  document.write('<td><img src="../images/toppix.gif" width="184" height="146"></td></tr> <tr valign="top"><td>'); 
  document.write('<table width="100%" cellspacing="0" cellpadding="0"><tr> ');
  document.write('<td width="86%" valign="top"> <table width="100%" cellspacing="0" cellpadding="0" border="1">');
  document.write('<tr bordercolor="#666666" bgcolor="#D7dadf" valign="top" align="left"><td> <p><br>');
  document.write('<table width="100%" cellspacing="0" cellpadding="0"><tr> <td><a href="../asp/enquiries.asp"><img src="../images/enquiry.gif" width="110" height="21" border="0"></a></td>');
  document.write('</tr><tr><td><a href="../asp/login.asp"><img src="../images/support.gif" width="110" height="21" border="0"></a></td>');
  document.write('</tr><tr><td><a href="../download/download.htm"><img src="../images/downloads.gif" width="110" height="21" border="0"></a></td>');
  document.write('</tr><tr> <td><a href="../sitemap/map.htm"><img src="../images/sitemap.gif" width="110" height="21" border="0"></a></td></tr></table><p><br></p>');
  document.write('<p>&nbsp;</p><p>&nbsp;</p><p><br></p></td></tr>'); 
  document.write('</td></tr><tr bordercolor="#666666" bgcolor="#D7dadf" valign="top" align="left"><td>&nbsp;<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p></p></p></td>');
  document.write('</tr></table></td><td width="14%">&nbsp;</td></tr></table></td></tr></table></td><td width="77%" valign="top"><table width="100%" cellspacing="0" cellpadding="0">');
  document.write('<tr align="right" bgcolor="#5677ca"><td height="66"><img src="../images/logo.gif" width="201" height="55"></td>');
  document.write('</tr><tr bgcolor="#000000" valign="top"><td height="13"><layer id="lyrMenu" left="200" width="435" height="115" above="" top="-3"> ');
  document.write('<p><a href="../default.asp"><img src="../images/home.gif" width="66" height="15" border="0"></a> '); 
  document.write('<img src="images/company.gif" width="63" height="15" name="menu0" id="menu0" onMouseOver="showMenu(event)" onMouseOut="hideMenu(event)"> ');  
  document.write('<img src="images/service.gif" width="52" height="15" name="menu1" id="menu1" onMouseOver="showMenu(event)" onMouseOut="hideMenu(event)"><img src="images/partners.gif" width="56" height="15" name="menu2" id="menu2" onMouseOver="showMenu(event)" onMouseOut="hideMenu(event)"><img src="images/career.gif" width="48" height="15" name="menu3" id="menu3" onMouseOver="showMenu(event)" onMouseOut="hideMenu(event)"><a href="../ContactInformation/contactus.htm" ><img src="../images/contactus.gif" width="67" height="15" border="0"></a></p>'); 
  document.write('</layer></td></tr><tr valign="top"><td height="360"><table width="100%" cellspacing="0" cellpadding="0">');
  document.write('<tr><td width="96%"><table width="99%" cellspacing="0" cellpadding="0"><tr valign="top"><td height="13"><p><br>');
}

function templateEnd()
{
	document.write ('</p></td></tr><tr><td><hr size="1"></td></tr><tr><td>&nbsp;</td></tr><tr align="center"><td><font face="Arial, Helvetica, sans-serif" size="1" color="#996666">&copy;Copyright2001. SoftWorks Limited. All rights reserved </font></td>');
    document.write ('</tr><tr align="center"><td><font face="Arial, Helvetica, sans-serif" size="1" color="#996666">Comments &amp; Questions</font><a href="mailto:webmaster@softworksng.com"><font face="Arial, Helvetica, sans-serif" color="#996666" size="1">:Webmaster</font></a></td>');
    document.write ('</tr></table></td><td width="1%">&nbsp;</td><td width="3%" align="center">&nbsp;</td></tr><table>');
    document.write ('</td></tr></table></td></tr></table></td></tr></table></body></html>');

}

function bannerCode()
{
}


var finds =0;
var sites =0;
var version = "v5.0"
var andresult = false;
var SortResults = true;
var display_start = 1;	
var displast = 10;

function searchAll(keyword)
{
	var timeA=new Date();
	var nw=1;
	finds=0;
	sites=0;

	var x = parseIt(keyword);
	if(x == -1)	return;
	total_keywords=x;

	document.open();
	document.clear();
	document.write('<link rel="stylesheet" href="xsearch.css">');
	AddBody();

	if (keyword.length>50) keyword=keyword.substring(0,60)+"...";

	results=new makeArray(records_count,1);
	order=new makeArray(records_count,1);
	for (q=1; q<=results.length; q++){
		results[q]=0;
		order[q]=q;
	}

	data=new makeRecordLinks(records_count);

	while(keywords[nw].length > 1)
	{
		search(data,keywords[nw]);
		nw++;
	} 

	if (andresult)
	{
		for (a=1; a<=results.length; a+=1)
		{
			if (results[a]>0)
			{
				if (results[a]<=(total_keywords-1)*2)
				{
					results[a]=0;
					sites-=1;
				}
			}
		}
	}

	var temp =0;

	if ((SortResults==true)&&(keywords!='[all]'))
	{
	 	for (a=results.length; a>=2; a-=1)
		{
			for (b=1; b<a; b+=1)
			{
				if (results[order[a]]>results[order[b]])
				{
					temp=order[b];
					order[b]=order[a];
					order[a]=temp;
				}
			}
		}
	} else {
		b=0;
	 	for (a=results.length; a>=2; a-=1)
		{
			if (results[a]>0)
			{
				order[b]=a;
				b++
			}
		}
	}

	// Now we build the output page
	displast=display_start+10;
	if (displast>sites) displast=sites+1;

	var timeB=new Date();

	document.write("<center><h3>Showing results <b>"+display_start+"-"+(displast-1)+"</b> of <b>"+sites+"</b> for <b>"+keyword+"</b>.</h3></center>");

	if (finds==0)
	{
		document.write("<h3><font color=green>no hits on <b>''"+keyword+"''</b></font></h3>"+
						"<p>Your search - <b>"+keyword+"</b> - did not match any documents in this database.</p>"+
						"<LI>Make sure all words are spelled correctly.</li>"+
						"<LI>Try using fewer words.</li>"+
						"<LI>Try using more general keywords.</li>"+
						"<LI>Try different keywords.</li></span>"+
						"</p>");
			
		DisplayXSearch();
		document.close();
		return
	}

	q2=display_start;
	q3=displast;
	for (q=display_start; q<q3;)
	{
		if (results[order[q]]>0)
		{
			document.write("<span class='xtitle'>"+data[order[q]].v1+"</span><br>");
			x1=v1[order[q]].indexOf('http://')+7;
			if (x1==6) x1=v1[order[q]].indexOf('href=')+5;
			x2=v1[order[q]].indexOf('>');
			if (x1>0 && x2>0)
			{
				tmp=v1[order[q]].substring(x1,x2);
				x2=tmp.indexOf(' ');
				if (x2>0) tmp=tmp.substring(0,x2);
				if (tmp.substring(0,1)=="'") tmp=tmp.substring(1,tmp.length-1);
				if (tmp.substring(0,1)=='"') tmp=tmp.substring(1,tmp.length-1);
				document.write("<table border=0 width=500><tr><td><span class='xresult'>"+v3[order[q]]+"</span></td></tr></table><span class='xlocation'>"+tmp+"</span><br><br>");
			}
			q2++;
   		}
		q+=1;
	}

	if (finds>10)
	{
		document.write("<BR>");
		pages=Math.round(finds/10);
		if (finds%10<6)	pages++;

		// Create the parameter string
		paramstring=searchname+"?keywords="+keyword+"&and="+andresult+"&sort="+SortResults;

		document.write("<center><span class='xsmall'>");
		if (display_start>1) document.write("<a href='"+paramstring+"&disp="+(display_start-10)+"'>previous page</a>");

		document.write("&nbsp;&nbsp;&nbsp;");

		for (i=1; i<=pages;){
			if ((((i-1)*10)+1)<=sites) {
				document.write("<a href='"+paramstring+"&disp="+(((i-1)*10)+1)+"'>"+i+"</a>&nbsp&nbsp ");
			}
			i++;
		}

		document.write("&nbsp;&nbsp;&nbsp;");

		if (displast<=sites) document.write("<a href='"+paramstring+"&disp="+(displast)+"'>Next page</a>");
		document.write("</span></center>");
	}

	DisplayXSearch();
	document.close();
}

function Cat()
{
	document.open();
	document.clear();
	document.write('<link rel="stylesheet" href="xsearch.css">');
	AddBody();
	DisplayXSearch();
	document.close();
}


function makeArray(n,vartype) {
	this.length = n;
	for (var k = 1; k <= n; k++) {
		if (vartype==0){
			this[k] = "";
		} else {
			this[k] = 0;
		}
	}
	return this;
}               

function stripInput(key)
{
	while(key.substring(0,1) == ","  || key.substring(0,1) == " " ) key = key.substring(1,key.length);
	while(key.substring(key.length-1,key.length) == "," || key.substring(key.length-1,key.length) == " ") key = key.substring(0,key.length-1);
	return key;
}

function parseIt(key) {
	key = stripInput(key)+" ";
	var y = 1;

	while(key.indexOf(" ") > 0)
	{
		if (key.substring(0,1)=='"')
		{
			var pos=key.indexOf('"',2);
			keywords[y]=key.substring(1,pos);
			keywords[y]=stripInput(keywords[y]);
			y++;
			key=key.substring(pos+1,key.length);
		} else {
			var pos=key.indexOf(' AND ');
			if ((pos>0) && (key.indexOf(' ')>=pos))
			{
				pos=key.indexOf(' ',pos+5);
				keywords[y]=key.substring(0,pos);
				keywords[y]=stripInput(keywords[y]);
				y++;
				key=key.substring(pos+1,key.length);
				if (key.substring(0,4)=='AND ')
				{
					pos=keywords[y-1].indexOf(' ')+5;
					key=keywords[y-1].substring(pos,keywords[y-1].length)+' '+key;
				}
			} else {
		  		var pos=key.indexOf(' OR ');
		  		if ((pos>0) && (key.indexOf(' ')>=pos))
				{
					pos=key.indexOf(' ');
					keywords[y]=key.substring(0,pos);
					keywords[y]=stripInput(keywords[y]);
					if (keywords[y]!=keywords[y-1])	y++;
					key=key.substring(pos+1,key.length);
					pos=key.indexOf('OR ');
					key=key.substring(pos+3,key.length);
					pos=key.indexOf(' ');
					keywords[y]=key.substring(0,pos);
					keywords[y]=stripInput(keywords[y]);
					y++;
					key=key.substring(pos+1,key.length);
					if (key.substring(0,3)=='OR ') key=keywords[y-1]+' '+key;
				} else {
					var pos = key.indexOf(" ");
					keywords[y]=key.substring(0,pos);
					keywords[y] = stripInput(keywords[y]); 
					y++;
					if(y > 50) return -1
					key=key.substring(pos+1,key.length);
				}
			}
		}
	}
	return y-1;
}


var keywords = new makeArray(50,0);
var results;
var foundword;
var data;
var order;
var total_keywords;

function dataEntry ()
{
        this.v1="";
        this.v2="";
        return this;
}

function makeRecordLinks(size)
{
	this.length = size;
	for (var r=1; r<= size; r++) 
	{
           this[r] = new dataEntry();
           this[r].v1 = v1[r];
           this[r].v2 = v2[r]; 
	}
	return this;
}

function AddBody()
{
	var keytext='"'+searchname+'?keywords="+';
	var andtext='"&and="+';

	document.write('<script>function doSearch(){'+
						'searchwords=document.searchform.searchwords.value; '+
						'while (searchwords.indexOf(" ")>-1){ pos=searchwords.indexOf(" ");'+
						'searchwords=searchwords.substring(0,pos)+"+"+searchwords.substring(pos+1); }'+
						'document.location='+keytext+' searchwords+'+andtext+'"0"}'+
						'<'+'/'+'script>'
						);

	templateBody();
	document.write("<form name='searchform' method='post' action='javascript:doSearch()'><table border='0' width='100%'><tr><td align='center'><font face='Arial, Helvetica, sans-serif' size='3'><input name='searchwords' type='text' size='30'>&nbsp;&nbsp;<a href='javascript:doSearch()'>"+ButtonCode+"</a></font></td></tr></table></form><hr size=1>");
	if (usebannercode) bannerCode();
}

function DisplayXSearch()
{
		templateEnd();
}

function search(records, keyword)
{
	var hit=0;
	var addcomplete=0;
	
	for (q=1; q<=records.length; q++) {
	addcomplete=0;
	search_parm=records[q].v2.toLowerCase()+" "+v3[q].toLowerCase();
	
	if (keyword.indexOf(' AND ')>0)
	{
		firstword=keyword.substring(0,keyword.indexOf(' '));
		lastword=keyword.substring(keyword.indexOf(' AND ')+5,keyword.length);
		if ((search_parm.indexOf(" "+firstword+" ") != -1) && (search_parm.indexOf(" "+lastword+" ")!= -1 ))
		{
			hit++;
			finds++;
			if(hit < 2)
			{ 
				if (results[q]==0) sites++;
				results[q] +=2;
			} 
		}
	} else {
		keyword=keyword.toLowerCase();
		if ((search_parm.indexOf(" "+keyword+" ") != -1) ||(keyword=="[all]"))
		{
			hit++;
			finds++;
			if(hit<2)
			{ 
				if (results[q]==0) sites++;
				results[q]+=2;
			} 
		} else {
			// check for a half hit (ie. search:share find:SHAREware)
			if (search_parm.indexOf(keyword) != -1)
			{
				hit++;
				finds++;
				if(hit < 2)
				{
					if (results[q]==0) sites++;
					results[q]+=1;
					x=search_parm.indexOf(keyword)+keyword.length;
					pos=search_parm.substring(1,x-keyword.length);
					while (pos.indexOf(" ")!=-1)
					{
						y=pos.indexOf(" ");
						pos=pos.substring(y+1,pos.length);
					}
					if (pos.length<=2) addcomplete++;

					pos=search_parm.substring(x,search_parm.length);
					fullresult=search_parm.substring(x,x+pos.indexOf(" "));
					
					if (fullresult.length<=2) addcomplete++;
					if (addcomplete>1) results[q]+=1;
				}
			}
		}
	}
	hit=0;
	} 
}                                       

var searchwords = '';
var newload = true;

function countParams(text)
{
	pos=-1;
	tmp = "";
	if (text=='') return 0;
	text=text+'&';
	i=0;
	while (text.length>0)
	{
		pos=text.indexOf('&',0);
		tmp=text.substring(pos+1);
		text=tmp;
		i++;
	}
	return i;
}	

function getCommand(text,val)
{
	pos=-2;
	tmp = "";
	text=text+'&';
		
	for (i=0; i<=val;)
	{
		pos2=pos+2;
		pos=text.indexOf('&',pos2);
		tmp=text.substring(pos,pos2-1);
		i++;
	}
	text=tmp;
	pos=text.indexOf('=',0);
	if (pos!=-1) tmp=text.substring(pos,0);
	tmp=tmp.toLowerCase();
	return tmp;
}

function getValues(text,val)
{
	pos=-2;
	tmp = "";
	text=text+'&';
	for (i=0; i<=val;)
	{
		pos2=pos+2;
		pos=text.indexOf('&',pos2);
		tmp=text.substring(pos,pos2-1);
		i++;
	}
	text=tmp;
	pos2=text.indexOf('=',0)+1;
	if (pos2!=-1)
	{
		tmp=text.substring(pos2);
	} else { 
		tmp='' 
	}
	
	pos=-2;
	text=tmp;	
	if (text.indexOf('%20')>0)
	{
		pos=text.indexOf('%20',0);
		tmp=text.substring(0,pos2-4)+' '+text.substring(pos2-1,text.length);
		text=tmp;
	}
	return tmp;
}		

function initXsearch()
{
	if (searchwords!='')
	{
		searchAll(searchwords);
	} else {
		if (newload) Cat();
	}
}

function doParamStuff(findw)
{
	Myparams=countParams(findw);
	if (Myparams>0)
	{
		for (cnt=0; cnt<Myparams;)
		{
			tempw=getCommand(findw,cnt);
			tempv=getValues(findw,cnt);

			if (tempw=='keywords')
			{
				searchwords=getValues(findw,cnt);
				origsearchwords=searchwords;
				while (searchwords.indexOf('+')>-1)
				{
					pos=searchwords.indexOf('+');
					searchwords=searchwords.substring(0,pos)+' '+searchwords.substring(pos+1);
				}
			}
			if (tempw=='sort')
			{
				if ((tempv=='0')||(tempv=='false'))
				{
					SortResults=false;
				} else {
					SortResults=true;
				}
			}
					
			if (tempw=='and')
			{
				if ((tempv=='1')||(tempv=='true'))
				{
					andresult=true;
				} else {
					andresult=false;
				}
			}

			if (tempw=='disp') display_start=parseInt(tempv);
			cnt +=1;
		}
	}
}

findw=document.location.search;
findw="&"+findw.substring(1,findw.length);

while (findw.indexOf('%20')>0)
{
	pos2=findw.indexOf('%20',0);
	tmp=findw.substring(0,pos2)+' '+findw.substring(pos2+3,findw.length);
	findw=tmp;
}

doParamStuff(findw);
