﻿/*
@Created By Balasaheb Wani (Enzigma software) October 8,2009
@This script is genereted for storing search engine information into cookie
@Cookie names HCST_SEARCH_ENGINE
@Cookie names HCST_SEARCH_KEYWORDS
@Cookie names PPC Key words
@
@
@
*/
function hc_tracking_start()
{
    var strPayPerclickParameter="";
    var refer ="";
    var domainCheck = /live.sf.orgplus.com|orgplus.com|humanconcepts.com|ondemand/;
  if(checkCookieExistorNot())
  {
    refer=GetRefererUrl();
    /*If there is no referer found then this is default string to use 
    @if(!refer)
    @var refer="http://www.google.co.in/search?hl=en&source=hp&q=orgchartBy BSWANI+software&meta=&aq=f&oq=";
    @Ends
    */
    if(checkDomainForExclude(refer,domainCheck))
    {
        GetSearchKeywords(refer);
    }
  }
}
/*
@Check is already cookie exist or Not
*/
function checkCookieExistorNot()
{
if(!readCookie("HCST_SEARCH_ENGINE") && !readCookie("HCST_SEARCH_KEYWORDS"))
    return true;
else
    return false;
}
/*
@It reads cookie from browser
@returns cookie value
@else null
*/
function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
/*
@Generate cookie
*/
function createCookie(name,value,days) 
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
/*
@This will give search engine and keywords information 
@On basis of different search engine we can access search string
@if you want to add any other search engine ,need to add domain and query parameter
@If no any search engine match it returns refereer domain
*/
function GetSearchKeywords(refer)
{
  var strSearchEng="";
  var strSearchString ="";
  if (refer.match(/yahoo.com/)) 
      {
          strSearchEng = "Yahoo";
          strSearchString =getURLParameters(refer,"p");
      }
   else if (refer.match(/google/))
        {
        strSearchEng = "Google";
        strSearchString =getURLParameters(refer,"q");
        }
  else if (refer.match(/search.com/))
        {
        strSearchEng = "Search.Com";
        strSearchString=getSpecialURLParameters(refer,"","?q=");
        }
  else if (refer.match(/altavista.com/))
        {
        strSearchEng = "Altavista";
        strSearchString =getURLParameters(refer,"q");
        }
  else if (refer.match(/lycos.com/))
        {
        strSearchEng = "Lycos.com";
        strSearchString =getURLParameters(refer,"query");
        }
  else if (refer.match(/alltheweb.com/))
        {
        strSearchEng = "Alltheweb.com";
        strSearchString =getURLParameters(refer,"q");
        }
 else if (refer.match(/search.yahoo.com/))
        {
        strSearchEng = "GO.com";
        strSearchString =getURLParameters(refer,"p");
        }
 else if (refer.match(/search.netscape.com/))
        {
        strSearchEng = "Netscape.com";
        strSearchString =getURLParameters(refer,"q");
        }
else if (refer.match(/search.aol.com/))
        {
        strSearchEng = "AOL.com";
        strSearchString =getURLParameters(refer,"q");
        }
else if (refer.match(/bing.com/))
        {
        strSearchEng = "Bing.com ";
        strSearchString =getSpecialURLParameters(refer,"&","?q=");
        }
 
  else if (refer.match(/metacrawler.com/))
        {
        strSearchEng = "Metacrawler.com";
        strSearchString =getSpecialURLParameters(refer,"/1/417/","/results/Web/");
        }
 else if (refer.match(/dogpile.com/))
        {
        strSearchEng = "Dogpile.com";
        strSearchString =getSpecialURLParameters(refer,"/1/417/","/results/Web/");
        }
 else if (refer.match(/excite.com/))
        {
        strSearchEng = "Excite.com";
        strSearchString =getSpecialURLParameters(refer,"/1/","/results/Web/");        
} 
else
{
       strSearchEng = getSpecialURLParameters(refer,"/","://");
       strSearchString = "UNKNOWN";
}
    if(strSearchEng!='')
       createCookie("HCST_SEARCH_ENGINE",strSearchEng);
    if(strSearchString!='')
       createCookie("HCST_SEARCH_KEYWORDS",strSearchString);
}
/*
@Returns search keywords string for Google
@yahoo etc
*/
function getURLParameters(url,param)
{
var url=unescape(url);
var count = 0;
var returnURL = decodeURIComponent(url);
var retParam="";
var arrParams = returnURL.split('&'); 
for (var iIndex = 0; iIndex < arrParams.length; ++iIndex) 
    {  
           if (arrParams[iIndex])
              {  
               var arrNameValue = arrParams[iIndex].split('=');                                
	       if (arrNameValue && arrNameValue.length == 2)
	          {  
                if( arrNameValue[0] == param)  
                retParam=arrNameValue[1];
               }
			}
      }
      return retParam.replace(/\+/g,' ');                 
}



/*
@will returns search keywords
@mainly used for Dogpile and Excite search engine
*/
function getSpecialURLParameters(refer,strRight,strLeft)
{
    if(!strRight)	
        var strRight="/1/417/";
    if(!strLeft)
        var strLeft="/results/Web/";
    var strReturn=" ";
    if(refer)
    {
	    var strTemp=refer.split(strLeft)[1];
        if(strTemp)
	        strTemp=strTemp.split(strRight)[0];
        if(strTemp)
	        strReturn=decodeURIComponent(strTemp);
        return strReturn.replace(/\+/g,' ');;
    }
    else
        return strReturn;
}
/*
@will exclude list of domains from cookie adding
@you can add more domains setereted by | 
*/
function checkDomainForExclude(refer,domainCheck)
{
    if(!refer.match(domainCheck))
        {
        return true;
        }
    else
        {
         return false;
        }
}
/*
@it returns referer url 
@mainly it is url of search engine's Earch String
*/
function GetRefererUrl()
{

    if(document.referrer !='')
		return refer=document.referrer;
	else if(window.opener && window.opener.location !='')
		return refer=window.opener.location;
	else
		return refer="";
}