﻿    var ViewPointLeadID = "";
    //var ViewPointAcctID = "";                       
    var ViewPoint_SessID;
    var vp_exp = 2020;
    var tmpLeadID;
    
    var statsURL = "http://www.leadviewpoint.com/Analyze/Analyze2.aspx"; //MODIFY ACCORDING TO LOCATION.
    var thumpURL = "http://www.leadviewpoint.com/Analyze/thump.aspx";    
    
    var req;        
    var tracked=false;
    
    var vp_clickedDomain="";
   
    function generateGuid()
    {
        var result, i, j;
        result = '';
        for(j=0; j<32; j++)
        {
            if( j == 8 || j == 12|| j == 16|| j == 20)
            result = result + '-';
            i = Math.floor(Math.random()*16).toString(16).toUpperCase();
            result = result + i;
        }
        return result
    }    
   
    function getParam( name )
    {
      name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
      var regexS = "[\\?&]"+name+"=([^&#]*)";
      var regex = new RegExp( regexS );
      var results = regex.exec( window.location.href );
      if( results == null )
        return "";
      else
        return results[1];
    }   
        
    function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
    {
      var cookie_string = name + "=" + escape ( value );
      if ( exp_y )
      {
        var expires = new Date ( exp_y, exp_m, exp_d );
        cookie_string += "; expires=" + expires.toGMTString();
      }

      if ( path )
            cookie_string += "; path=" + escape ( path );

      if ( domain )
            cookie_string += "; domain=" + escape ( domain );
      
      if ( secure )
            cookie_string += "; secure";
      
      document.cookie = cookie_string;
    }       
    
    function get_cookie ( cookie_name )
    {
      var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

      if ( results )
        return ( unescape ( results[2] ) );
      else
        return null;
    }       
    function delete_cookie ( cookie_name )
    {
      var cookie_date = new Date ( );  // current date & time
      cookie_date.setTime ( cookie_date.getTime() - 1 );
      document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
    }
          
    function LoadPage()
    {
        tmpLeadID = get_cookie('vp_tlid');
    
        ViewPointLeadID = getParam("vp_lid");            
        if (ViewPointLeadID.length > 0)
        {                
            //set a cookie identifying this lead so all subsequent vists are tracked.
            set_cookie("vp_lid", ViewPointLeadID, vp_exp, 1, 1);
        }
        else
        {
            //try to read a previously written cookie
            ViewPointLeadID = get_cookie("vp_lid");
        }                      
        
        if (ViewPointLeadID == null) 
        { 
            ViewPointLeadID = "";
            if (tmpLeadID == null)
            {
                tmpLeadID = generateGuid();
                set_cookie('vp_tlid', tmpLeadID, vp_exp, 1, 1);
            }               
        }       
        else
        {
            delete_cookie("vp_tlid"); 
        }
        
        ViewPoint_SessID = generateGuid();       

        if (tmpLeadID == null) 
        {
            tmpLeadID = "";
        }   
        
        var img = document.createElement('img');
        var params = "?SessionID=" + ViewPoint_SessID;               
        params = params + "&AccountID=" + ViewPointAccountID;
        params = params + "&Action=LoadPage";        
        params = params + "&LeadID=" + ViewPointLeadID;        
        params = params + "&Location=" + escape(document.location.href);
        params = params + "&TempLeadID=" + tmpLeadID;
        params = params + "&PageTitle=" + document.title;
        params = params + "&Referrer=" + escape(document.referrer);
        img.src = statsURL + params;
        document.getElementsByTagName('head')[0].appendChild(img);
                
        //store our previous session. As long as the user is working within the
        //same domain as the rest of the tracking, all tracking will work.
        //when they navigate off site, or close their browser, the unload event will finalize any other 
        //tracking.
        var prevSessID = get_cookie("vp_prevsessid");
        //alert(prevSessID);
        if (prevSessID != null)
        {
            var img=document.createElement('img');
            var params = "?SessionID=" + prevSessID;
            params = params + "&Action=UpdatePrevious"; 
            img.src = statsURL + params;
           document.getElementsByTagName('head')[0].appendChild(img);
        }
        
        set_cookie("vp_prevsessid", ViewPoint_SessID, vp_exp, 1, 1);      
    }

    
    function heartBeat()
    {
        if (ViewPoint_SessID.length > 0)
        {       
            var img = document.getElementsByName('vp_hbsr')[0];
           
            var eParam = "&wgdda=" + generateGuid();
            img.src = thumpURL + "?SessionID="+ViewPoint_SessID + eParam;
         }
    }
    
    function InitLVP()
    {                        
        if (window.attachEvent)
        {            
            //window.attachEvent('onunload', LeavePage);
            //window.attachEvent('onbeforeunload', LeavePage);
            window.attachEvent('onload', LoadPage);                      
        }
        else
        {
            //window.addEventListener('beforeunload', LeavePage, false);
           window.addEventListener('load', LoadPage, false);                 
        }        
        
        var img = document.createElement('img');
        img.id = 'vp_hbsr';
        img.name = 'vp_hbsr';
        document.getElementsByTagName('head')[0].appendChild(img);
        setInterval(heartBeat, 5000); //may need to play with this value.
     }            
     
    
    InitLVP();     