
var SearchEngineVariable = 'q';

function KeyWordIncludeReferrer()
{
   try
   {
      var ref = document.referrer.toUpperCase();
      if (ref.indexOf('YAHOO') > 0) { SearchEngineVariable = 'p'; return true; }      
      if (ref.indexOf('GOOGLE') > 0) { SearchEngineVariable = 'q'; return true; }
      if (ref.indexOf('MSN') > 0) { SearchEngineVariable = 'q'; return true; }  
      if (ref.indexOf('ASK') > 0) { SearchEngineVariable = 'q'; return true; }    
      if (ref.indexOf('ALLTHEWEB') > 0) { SearchEngineVariable = 'q'; return true; }     
      if (ref.indexOf('ALTAVISTA') > 0) { SearchEngineVariable = 'q'; return true; }                          
      if (ref.indexOf('LOCALHOST') > 0) { SearchEngineVariable = 'q'; return true; }
      if (ref.indexOf('EDREAM.ORG') > 0) { SearchEngineVariable = 'q'; return true; }       
      if (ref.indexOf('HOTBOT') > 0) { SearchEngineVariable = 'query'; return true; }   
      if (ref.indexOf('AOL') > 0) { SearchEngineVariable = 'query'; return true; }   
      if (ref.indexOf('LYCOS') > 0) { SearchEngineVariable = 'query'; return true; }          

      
   }
   catch (exception) { KeyWordProcessError('KeyWordIncludeReferrer',exception); }
   return false;
}


function KeyWordIncludeUrl()
{
    var Href = document.location.href.toUpperCase();
 
    try
    {
      if (Href.indexOf('/myfoldertoinclude/') > -1 ) { return true; }
      if (Href.indexOf('LOCALHOST') > -1 ) { return true; }	
      if (Href.indexOf('WWW.EDREAM.ORG') > -1 ) { return true; }	
      if (Href.indexOf('EDREAM.ORG') > -1 ) { return true; }            
    }
    catch (exception) { KeyWordProcessError('KeyWordIncludeUrl',exception); }
    return false;
}



function KeyWordGetColor(idx)
{
    var color = '#CCCCCC';

    switch (idx)
    {
       case 0:
	       color='#99FF99'; break;
       case 1:
               color='yellow'; break;
       case 2:
               color='#FFCCFF'; break;
       case 3:
               color='#CC99FF'; break;
       case 4:
               color='#99CCFF'; break;
       case 5:
               color='#FFCC99'; break;
       case 6:
               color='#CCCCFF'; break;
       case 7:
               color='#66CCFF'; break;
       default:
               break;
    }
    return color;
}


 function KeyWordExcludePhrase(keyword)
 {

    var ret = false;

    switch (keyword.toUpperCase())
    {
      case 'AND' :                         return true;
      case 'OR' :                          return true;
      case 'A' :                          return true;         
      case 'THE' :                          return true;      
      case 'SITE:EDREAM.ORG' :        return true;
      case 'SITE:WWW.EDREAM.ORG' :    return true;
      case '' :                            return true;
    }
	     
    return false;
 }

  

function KeyWordGetKeyWordsFromQueryString()
{

   if (KeyWordIncludeReferrer() == false) { return true; }

   var keywords = new Array();
   var ref = document.referrer;
   var pair;
   var qIndex = 0;
   var qs;
   var prm;

   try
   {

    
     qIndex = ref.indexOf('?');

     if (qIndex < 1) { return keywords; }
     
     ref = KeyWordReplace(ref,'%22','');

     qs = ref.substring(qIndex + 1,ref.length);

     prm = qs.split('&');

     for (i=0;i<prm.length;i++)
     {

       pair = prm[i].split('=');

       temp = unescape(pair[0]).split('+');
       name = temp.join(' ');

       if (name != SearchEngineVariable) { continue; }

       temp = unescape(pair[1]).split('+');
         
       for(k=0;k<temp.length;k++)
       {
         if (KeyWordExcludePhrase(temp[k]) == true) { continue; }
         keywords.push(temp[k]);
       }
		
     }

   }
   catch (exception) { KeyWordProcessError('KeyWordGetKeyWordsFromQueryString',exception); }
   return keywords;
}




function KeyWordHiLite()
{ 
 
  if (KeyWordIncludeUrl() == false) { return true; }
 
  var Links;
  var rng;
  var before = '&nbsp;<font style="color: #000000;text-decoration:none;background-color: ';
  var after = '</b>&nbsp;</font>&nbsp;';

  try
  {
     
    keywords = KeyWordGetKeyWordsFromQueryString();

    if (keywords.length < 1) { return true; }
 
    Links = KeyWordGetLinks();

    for(k=0;k<keywords.length;k++)
    {

      rng = document.body.createTextRange();  
  
      for (i=0;rng.findText(keywords[k])!=false; i++)
      { 
 
        try       { rng.pasteHTML(before + KeyWordGetColor(k) + ';">&nbsp;<b>' +  rng.text + after);   }
        catch (e) { KeyWordProcessError('KeyWordHiLite Text Range',e);    }	
        finally   { rng.collapse(false); }
      
      }

      rng.collapse(true);
    }

    KeyWordCleanLinks(Links);
        
  }
  catch (exception) { KeyWordProcessError('KeyWordHiLite',exception); }
  
}



function KeyWordGetLinks()
{

   var Links = new Array();
   
   for (i=0;i<document.body.getElementsByTagName('A').length;i++)
   {
	  Links[i] = new Array (document.body.getElementsByTagName('A')[i].href, document.body.getElementsByTagName('A')[i].innerHTML); 
   }

   return Links;
}



function KeyWordCleanLinks(Links)
{
  for (i=0;i<document.body.getElementsByTagName('A').length;i++)
  { 
    document.body.getElementsByTagName('A')[i].href = Links[i][0]; 
    document.body.getElementsByTagName('A')[i].innerHTML = Links[i][1];
  }
}


function KeyWordProcessError(functionName,e)
{
  if (e.description == null)
  {
//	  alert(functionName + ' ' + e.message); 
  }
  else
  { 
	//  alert(functionName + ' ' + e.description);
  }
}

function KeyWordReplace(OrgVal,SearchVal,ReplaceVal)
{
  var Val;
  var RegExp = eval("/" + SearchVal + "/g");
  if (OrgVal.indexOf(SearchVal) <1) {  return OrgVal; }
  Val = OrgVal.replace(RegExp,ReplaceVal);
  return Val;
}

 