﻿// JScript File
var G_REFERRALTYPE_INBOUND = 1;
var G_REFERRALTYPE_OUTBOUND = 2;

var G_OUTBOUNDSOURCE = "Drive";

function FixOutboundLinks(outboundSource,tag) {
	var pagetag = document.title;
	
	if (tag !=null && tag != '' && tag !='PageName') {
		pagetag=tag;
	}

	
	var myLinks = document.links;
    var b=0;
    if (window.attachEvent) {
        b=1;
    } else if (window.addEventListener) {
        b=2;
    }
    for(var i=0;i < myLinks.length;i++) {
        
		if (ShouldLogReferral(myLinks[i].href.toString())) {
//        if(myLinks[i].href.toString().indexOf("http:") != -1) {
            switch (b) {
                case 1:
                    myLinks[i].attachEvent("onclick", (function(value) { return function() { LogReferral(pagetag,document.links[value].href.toString()); } } )(i));
                    break;
                case 2:					
                    myLinks[i].setAttribute("onclick","return LogReferral('"+pagetag+"','"+ myLinks[i].href.toString()+"');");
                    break;
                default:
                    //do nothing
            } 
        }
    } 

}

function ShouldLogReferral(destUrl) {
	// we should log all the socialization links
	if(destUrl.indexOf("www.facebook.com/sharer.php?u=") != -1 || destUrl.indexOf("twitter.com/home?status=add") != -1
		|| destUrl.indexOf("digg.com/submit/?url=") != -1 
		|| destUrl.indexOf("www.linkedin.com/shareArticle?mini=true&url=")!= -1) 
		return true;
	else
		return (destUrl.indexOf("drive.subaru.com") == -1) &&
	       (destUrl.indexOf("drivesubaru.com") == -1) &&
	       (destUrl.indexOf("drivesubaru.net") == -1) &&
		   (destUrl.indexOf("mypersonaldrive.com") == -1) &&
		   (destUrl.indexOf("subarudrive.com") == -1) &&
		   (destUrl.indexOf("preprod.") == -1) &&
		   (destUrl.indexOf("http:") != -1);
}
function CheckForReferral() 
{
    try
    {
	    var sURL = window.document.URL.toString();
    	
	    if (sURL.indexOf("?") > 0)	
	    {
	        var sourceVal = null;
	        var tagVal = null;
    	    
		    var arrParams = sURL.split("?");			
		    var arrURLParams = arrParams[1].split("&");
    				
		    var i = 0;
		    for (i=0; i<arrURLParams.length; i++)
		    {
			    var sParam = arrURLParams[i].split("=");
    			
		        if(sParam[0].toLowerCase() == "rsource" && sParam[1] != "")		        
		        {	
		            if(sParam[1].indexOf("#") != -1)
		            {
		                sParam[1] = sParam[1].substring(0, sParam[1].indexOf("#"));
		            }
		            
			        sourceVal = sParam[1];
			    }
			    else if(sParam[0].toLowerCase() == "rtag" && sParam[1] != "")
			    {
			        if(sParam[1].indexOf("#") != -1)
		            {
		                sParam[1] = sParam[1].substring(0, sParam[1].indexOf("#"));
		            }
		            
			        tagVal = sParam[1];
			    }
		    }	
    		
		    if(sourceVal != null)
		    {
		        SubmitReferral(sourceVal, tagVal, G_REFERRALTYPE_INBOUND)
		    }
	    }	
	}catch(err){}
}

function LogReferral(tag, destUrl)
{	
    try
    {
        SubmitReferral(G_OUTBOUNDSOURCE, tag, G_REFERRALTYPE_OUTBOUND, destUrl);
    }catch(err){}
}

function SubmitReferral(sourceVal, tagVal, typeVal, destUrlVal)
{
    try
    {
		if(zXmlHttp.isSupported())
		{
		var oXmlHttp = zXmlHttp.createRequest();	
			var url = "/Subscribe/Referral.aspx?rSource=" + sourceVal;			

			if(tagVal != null){ url += "&rTag=" + tagVal; }			    
			url += "&rType=" + typeVal;
			if(destUrlVal != null){ url += "&rUrl=" + escape(destUrlVal); }


			oXmlHttp.open("get", url, true);		

			oXmlHttp.send(null);
		}
	}catch(err){}
}


