
 /* -------------------------------------------------- 
 
     javascript code for checking the referer  for 
     
     displaying error pages .
     
     author: Rajesh chandran(chandan_rajesh@emc.com)
    ---------------------------------------------------*/
    
    
 var _Referer=document.referrer;

 var _Fromwhom=null;

 var _Requrl=_Referer.toLowerCase();
   
 var _SEngine=null;
 
 var _SeText=null;	

 var _Expbuilder=null;

 var _Counter=null;
 
 var timer =null;
 
 var  _element=null;

 var state = null;
 
checkReferer();


function checkReferer(){


  if(_Referer=='')
  {
    _Fromwhom=1;
  
  }
  else if(_Referer!='' && _Requrl.indexOf("emc.com")!=-1)
  {
    
     _Fromwhom=2;
  }else if( _Referer!='' && searchEngines())
  {
    
   _Fromwhom=3;
  }else
  {
     _Fromwhom=4;
  }
  _element="error"+_Fromwhom;

  timer = setInterval(checkReadyState, 100);
 
}

//Make sure that document is loaded fully .So that when using document.getElementById will not cause any error
function checkReadyState() {

  state = document.readyState;

    if (state =="complete" || document.getElementById("content")!=null) {
       clearInterval(timer);

       for(var id=1;id<=4;id++)
       	
       	 {
       
       		if(id==parseInt(_Fromwhom))
       		  {
				  if(document.getElementById(_element))
        			document.getElementById(_element).style.display="block";
       
       		}
       	  }

       	      	if(_element=="error3")
                 {
            if(document.getElementById("searchengine"))
       			document.getElementById("searchengine").innerText=_SEngine;
       		if(document.getElementById("searchtext"))
       		document.getElementById("searchtext").innerText=_Expbuilder;
	  }
       
    }
}

// function for finding out the search Engine from which the reference came

function searchEngines()
{

	var _Engines= new Array("google.com","yahoo.com","msn.com","aol.com","ask.com");
	
	for(incr in _Engines)
	{
          
		if(_Requrl.indexOf(_Engines[incr])!=-1)
		{
			
			_SEngine=_Engines[incr];
			   
			   _Counter=incr;
	         }
	         
	   }      
	
		_Counter=parseInt(_Counter);
		switch(_Counter)
			{
				case 0:
					
					_Expbuilder=_Referer.match(/q=([^&;]+)/)[1].replace(/\+/g,"");
					 
					
				 break

			   case 1:
			   		
					_Expbuilder=_Referer.match(/p=([^&;]+)/)[1].replace(/\+/g,"");
					 
               			break

			     case 2:
					_Expbuilder=_Referer.match(/q=([^&;]+)/)[1].replace(/\+/g,"");
					
              			 break


			     case 3:
					_Expbuilder=_Referer.match(/query=([^&;]+)/)[1].replace(/\+/g,"");
					
              			 break

			     case 4:
					_Expbuilder=_Referer.match(/q=([^&;]+)/)[1].replace(/\+/g,"");
					
              			 break
            
		}

      
		if(_Counter!=null)return 1;
}



