// ACS SURVEY RELATED VARIABLES

var ACS_FREQUENCY = 0;
var ACS_COOKIE = 'ACSsurvey';
var ACS_SURVEY_URL = '';
var ACS_COOKIE_DAYS = 130;
var ACS_SESSION_ID = 'unknown';
var ACS_LOCALE = 'en-us';
var ACS_COOKIE_EXTRA = '; domain=.agilent.com';
//var ACS_DEBUG = '';

var UR__DO_ACS = false;
var UR_IS_PARTNER = false;
var UR_DO_OFFSRVR = false;

var UR_PROXY_NAMES = "";
var UR_LEAVE_PAGE = "";

function UR_InitOffServer( proxyNames, leavePage )
{
    UR_DO_OFFSRVR = true;

    UR_PROXY_NAMES = proxyNames;
    UR_LEAVE_PAGE = leavePage;
}


function UR_InitPartner( bIsPartner )
{
    UR_IS_PARTNER = bIsPartner;
}

function UR_InitACS( nFrequency, sSessionId, sSurveyUrl, nCookieDays )
{
    if( nFrequency > -1 )
    {
        ACS_FREQUENCY = nFrequency;
    }
    if( sSessionId != null && sSessionId != '' )
    {
        ACS_SESSION_ID = sSessionId;
    }
    if( sSurveyUrl != null && sSurveyUrl != '' )
    {
        ACS_SURVEY_URL = sSurveyUrl;
    }
    if( nCookieDays > -1 )
    {
        ACS_COOKIE_DAYS = nCookieDays;
    }
    if( location.pathname.length > 6 )
    {
        ACS_LOCALE = location.pathname.substring( 1, 6 );
    }
    
//    ACS_DEBUG = 'Locale: ' + ACS_LOCALE + '\nCookie Name: ' + ACS_COOKIE + '\nSession ID: ' + ACS_SESSION_ID + '\nSurvey URL: ' + ACS_SURVEY_URL + '\nCookie days valid: ' + ACS_COOKIE_DAYS + '\n';

    if( ACS_IsSessionSelected() && ACS_IsUserElegible() && ACS_SupportsCookies() )
    {
        UR__DO_ACS = true;//ActivateSurveyTriggers();
    }
    
//    alert( ACS_DEBUG );
}

function ACS_IsSessionSelected( )
{
    var nDenominator = 100000;
    var nRandomizer = Math.floor( Math.random() * nDenominator ) + 1;

//    ACS_DEBUG += 'Frequency:' + ACS_FREQUENCY + '\nRandom: ' + nRandomizer + '\n';

    if( nRandomizer < ACS_FREQUENCY )
    {
        return true;
    }
    return false;
}

function ACS_IsUserElegible( )
{
    var allcookies = document.cookie;

//    ACS_DEBUG += 'Already cookied?: ' + (allcookies.indexOf( ACS_COOKIE ) > -1) + '\n';

    if (allcookies.indexOf( ACS_COOKIE ) < 0)
    {
        return true;
    }
    return false;
}

function ACS_SupportsCookies( )
{
    var expdate = new Date();     

    expdate.setTime( expdate.getTime() + (1000 * 60 * 1 * 1 * 1) ); 

    SetSurveyCookieValue( 'cookie_test', 'true', expdate); 

    var persistentCookieEnabled = ( GetSurveyCookieValue( 'cookie_test' ) == 'true' )? true : false;

//    ACS_DEBUG += '\nPersistant Cookies: ' + persistentCookieEnabled + '\n';
    
    return persistentCookieEnabled;
}



function DoSurveyClick( evt )
{
    if( ! ACS_IsUserElegible() )
    {
        return true;
    }
    var eventInfo = GetCrossBrowserEventInfo( evt );

    var sTargetHref = eventInfo[1].href;

    if( sTargetHref == null || sTargetHref == '' )
    {
        sTargetHref = eventInfo[1].parentNode.href;

        if( sTargetHref == null || sTargetHref == '' )
        {
            sTargetHref = eventInfo[1].parentNode.parentNode.href;

            if( sTargetHref == null || sTargetHref == '' )
            {
                return true;
            }
        }
    }
    eventInfo[0].cancelBubble = true;
    eventInfo[0].returnValue = false;
 
    var expirationDate = new Date();

    expirationDate.setTime( expirationDate.getTime() + 1000 * 60 * 60 * 24 * ACS_COOKIE_DAYS );

    SetSurveyCookieValue( ACS_COOKIE, '1', expirationDate );

    var sSurveyUrlFinal = 'BU=lsca&LOCALE=' + ACS_LOCALE + '&Session=' + ACS_SESSION_ID + '&REF_URL='+ escape( sTargetHref );

    if( ACS_SURVEY_URL.indexOf('?') > -1 )
    {
        sSurveyUrlFinal = ACS_SURVEY_URL + '&' + sSurveyUrlFinal;
    }
    else
    {
        sSurveyUrlFinal = ACS_SURVEY_URL + '?' + sSurveyUrlFinal;
    }
    
//    alert( sSurveyUrlFinal );
    
    location.href = sSurveyUrlFinal;
    
    return false;
}

function GetCrossBrowserEventInfo( evt )
{
	// Define a variable to track the event source
    var obSource = null;

    // Handles Mozilla / Firefox eventing
    if( evt != null )
    {
        // Grab the event source
        obSource = evt.target;
    }
    else if( window.event != null )
    {
		evt = window.event;

		// Grab the event source (for IE)
        obSource = window.event.srcElement;
    }
	else
	{
		// Couldn't find an event source
		alert( 'DEBUG:  No event available' );
	}

	// Return the event and the source of the event to the caller
	return new Array( evt, obSource );
}

     
function SetSurveyCookieValue( name, value, expires ) 
{
    var sCookie = '';

    if( expires ) 
    {
         sCookie = name + '=' + escape( value ) + '; expires=' + expires.toGMTString() + '; path=/' + ACS_COOKIE_EXTRA;  
    }
    else
    { 
        sCookie = name + '=' + escape( value ) + '; path=/' + ACS_COOKIE_EXTRA;  
    }
    document.cookie = sCookie;
}
     
     
function GetSurveyCookieValue( name ) 
{
    var dcookie = document.cookie;
    var cname = name + '=';
    var clen = dcookie.length;        
    var cbegin = 0;
    
    while (cbegin < clen) 
    {           
        var vbegin = cbegin + cname.length;

        if (dcookie.substring(cbegin, vbegin) == cname) 
        {      
            var vend = dcookie.indexOf( ';', vbegin );           
            if (vend == -1)
                vend = clen;                        
            return unescape(dcookie.substring(vbegin, vend));   
        }                                                      
        cbegin = dcookie.indexOf(' ', cbegin) + 1;

        if (cbegin == 0)
            break;                                
    }                                                         
    return null;                                              
}


function ActivateSurveyTriggers( )
{
    for( var z=0; z < document.links.length; z++ )
    {
        var curLink = document.links[ z  ];
        
        if( curLink.onclick == null && curLink.href.length > 5 && curLink.href.substring(0,4) == 'http' )
        {
            curLink.onclick = DoSurveyClick
        }
    }
}

function UR_ProcessUrls( sDOMTarget )            
{
    var HOST_SERVER =  location.href.substring( 0, location.href.indexOf( '/', 10 ) ).toLowerCase();
    var PROXY_PAGE =  HOST_SERVER + UR_LEAVE_PAGE + "?target=";
    var SAFE_SERVER = "";

    var arrValid;
    
    if( UR_PROXY_NAMES != null )
    {
        arrValid = UR_PROXY_NAMES.toLowerCase().split( ';' );
    }
    
    if( UR_IS_PARTNER )
    {
        if( HOST_SERVER.indexOf( 'extranet' ) > -1 )
        {
            SAFE_SERVER = HOST_SERVER.replace( 'https:', 'http:' );
            SAFE_SERVER = SAFE_SERVER.replace( 'extranet.', 'www.' );
        }
    }
    var arrLinkCollection = null;
    
    if( sDOMTarget != "" && document.getElementById( sDOMTarget ) != null )
    {
        arrLinkCollection = document.getElementById( sDOMTarget ).getElementsByTagName( "a" );
    }
    else
    {
        arrLinkCollection = document.links;
    }

    for( var z=0; z < arrLinkCollection.length; z++ )
    {
        var curLink = arrLinkCollection[ z ];

        if( curLink.onclick == null && curLink.href.length > 5 && curLink.href.substring(0,4).toLowerCase() == 'http')
        {
            if( UR__DO_ACS )
            {
                curLink.onclick = DoSurveyClick
            }
        
            var curHref = curLink.href.toLowerCase();
            
            var sHostName = curHref.substring( curHref.indexOf( '://' ) + 3, curHref.indexOf( '/', 10 ) );

            if( UR_IS_PARTNER )
            {
                var sUrlPath = curHref.substring( curHref.indexOf( '/', 10 ) );

//              if( sUrlPath.indexOf( '-' ) == 3 && sHostName.indexOf( "chem.agilent.com" ) > -1 )
                if( sUrlPath.indexOf( '-' ) == 3 && location.hostname.toLowerCase() == sHostName && sUrlPath != UR_LEAVE_PAGE.toLowerCase() )     
                {
                    curLink.href = SAFE_SERVER + sUrlPath;
                    continue;
                }
            }
            
            if( curHref.indexOf( "cag_leavecag.asp?tourl=" ) > -1 )
            {
                var origText = curLink.innerHTML;
            
                curHref = "http:" + unescape( curHref.substring( curHref.indexOf( "tourl=" ) + 6 ) );
                curLink.href =  PROXY_PAGE + escape( curHref );
                
                if( origText.indexOf( '<' ) < 0 && curLink.innerText != null )
			    {
				    curLink.innerHTML = origText;
			    }
                
                curLink.target = "agilent_pop";
                continue;
            }

            if( location.hostname.toLowerCase() == sHostName )
            {
                continue;
            }

            if( UR_DO_OFFSRVR )
            {
                var bFoundExternalLink = true;

                for( var i=0; i < arrValid.length; i++ )
                {
                    if( sHostName.indexOf( arrValid[ i ] ) != -1 )
                    {
                        bFoundExternalLink = false;
                        break;
                    }
                }

                if( bFoundExternalLink )
                {
                                
                    var origHref = curLink.href;
                    var origText = curLink.innerHTML;
                
                    curLink.href =  PROXY_PAGE + escape( origHref );
                    
                    if( origText.indexOf( '<' ) < 0 && curLink.innerText != null )
				    {
					    curLink.innerHTML = origText;
				    }
                    
                    curLink.target = "agilent_pop";
                }
            }
        }
    }
}

function DoProxyRedirect( idUrl )
{
    if( location.search != null )
    {
        var qString = location.search.toLowerCase();

        if( qString.indexOf( 'target=' ) > -1 ) 
        {
            var urlTarget = unescape( location.search.substring( qString.indexOf( 'target=' ) + 7 ) );
            
            if( idUrl != null )
            {
                var obUrl = document.getElementById( idUrl );
                
                if( obUrl != null )
                {
                    obUrl.href = urlTarget;
                
                    obUrl.innerHTML = urlTarget;
                }
            }
            setTimeout( "location.href = '" + urlTarget + "';", 15000 );
        }
    }
}