function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// this function will pull the CampaignId from the redirect url
// format of url would be something like http://solutions.3m.com/wps/portal/3M/en_WW/ScotchgardAutoProtection/Home/AutoDealerships/Home/?WT.mc_id=nada2008 

function getCampaignID() {
	var myURL = document.URL;
	var position = myURL.indexOf('WT.mc_id=');
	// check to see if we found 'WT.mc_id='
	if (!(position == -1)) {
		// we did find 'WT.mc_id=' so grab the CampaignID
		var myCampaignID = myURL.substring(position+9);
		// now write the campaignID to a cookie so we can read it later
		writeCampaignIDCookie(myCampaignID);
	}
}

// this function will write the Campaign ID to a cookie.  Cookie will be set to expire in 30 days.
function writeCampaignIDCookie(campaignID) {
	var expdate = new Date ();
	// 30 days from now
	expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 30)); 
	SetCookie('campaignID', campaignID , expdate , "/");
}

// Cookie Functions -- "Toss Your Cookies" Version (22-Mar-96) 
//
// Written by: Bill Dortch, hIdaho Design
// The following functions are released to the public domain.
// MODIFIED for Volition 6/26/98 
//
// The fix code for DeleteCookie recalibrates the date prior to 
// deleting the cookie.
//
// ***** HERE IS THE FIX FUNCTION. DO NOT DELETE IT!!! ***** 

function FixCookieDate (date) {
	var base = new Date(0);
	var skew = base.getTime(); 
	// dawn of (Unix) time - should be 0 if (skew > 0) 
	// Except on the Mac - ahead of its time 
	date.setTime (date.getTime() - skew);
}

// ***** END OF FIX FUNCTION *****

// The first two parameters are required. The others, if supplied, must 
// be passed in the order listed above. To omit an unused optional field, 
// use null as a place holder. For example, to call SetCookie using name, 
// value and path, you would code:
//
//      SetCookie ("myCookieName", "myCookieValue", null, "/");
//

function SetCookie (name, value) {
	var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false;
    if  (expires!=null) FixCookieDate(expires);
    	document.cookie = name + "=" + escape (value) + 
        ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : (";  path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
}

// "Internal" function to return the decoded value of a cookie 
function getCookieVal (offset) {
	var endstr = document.cookie.indexOf (";", offset); if (endstr == -1)
	endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

// Function to return the value of the cookie specified by "name". 
// name - String object containing the cookie name. 
// returns - String object containing the cookie value, or null if 
//      the cookie does not exist.

function GetCookie (name) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg) 
		return getCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break;
	}
	return null;
}
