   var returnURL;  //global variable

   function setFrameSrcLogin(frame, key) {
      if (document.getElementById(frame)) {
         if (returnURL != null) { // this is a global variable
            document.getElementById(frame).src = returnURL+"&securityKey="+key;
            returnURL = null;
         } else {
           url = document.getElementById(frame).src;
           // if the frame src already has a security key replace with the new security key
           if (url.match("securityKey")) {
              //if the frame src already has a security key replace with the new security key
              newsrc = url.replace(/(securityKey=.*)/, "securityKey="+key);
              document.getElementById(frame).src = newsrc;
            } else {
              document.getElementById(frame).src = url+"&securityKey="+key;
            }
         }
      }
   }

   function setFrameSrcLogout(frame) {
      if (document.getElementById(frame)) {
         url = document.getElementById(frame).src;

         host = url.match(/http[s]?:\/\/.*\//);
         querystring = url.split('?');
         parameters = querystring[1].split('&');

         newsrc = host + 'explore.do?' + parameters[0] + '&' + parameters[1] + '&securityKey=kill';
         //host = url.match(/http[s]?:\/\/.*\/country\=..&language\=../);
         //newsrc = host + "&securityKey=kill";
         //set securityKey to kill
         //if (url.match("securityKey")) {
         //   newsrc = url.replace(/(securityKey=.*)/, "securityKey=kill");
         //} else {
         //   newsrc = url + "securityKey=kill";
         //}
         document.getElementById(frame).src = newsrc;
      }
   }

   function killSecurityKey() {
      setFrameSrcLogout("iframe1");
   }

   function requestSecurityKey() {

      if (window.XMLHttpRequest)
      { // code for all new browsers
         xmlhttp=new XMLHttpRequest();
      }
      else if (window.ActiveXObject)
      {// code for IE5 and IE6
         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      if (xmlhttp!=null)
      {
         xmlhttp.onreadystatechange = function() {  //function to handle the xml response

      	    if(xmlhttp.readyState!=4) return;
      	    if(xmlhttp.status!=200)
      	    {
      	       alert("Problem retrieving XML data");
      	       return;
      	    }
      	    statusNode=xmlhttp.responseXML.documentElement.getElementsByTagName("status");
      	    statusValue =  statusNode[0].firstChild.nodeValue;
      	    if (statusValue == "success") {
      	       keyNode=xmlhttp.responseXML.documentElement.getElementsByTagName("securityKey");
               setFrameSrcLogin("iframe1", keyNode[0].firstChild.nodeValue);
      	    } else {
      	       msgNode=xmlhttp.responseXML.documentElement.getElementsByTagName("errorMessage");
      	    }                

         }
         xmlhttp.open("GET","../designtheworldacoke/GetToken.jsp",true);
         xmlhttp.send(null);
      }
      else
      {
         alert("Your browser does not support XMLHTTP.");
      }
   }   

   function sendMessage(evt) {
      message = evt.event;
      sender = 'Outer Sender - ';
      //message = 'successfulLogin';
      switch (message){
      case 'successfulLogin' :
         requestSecurityKey();
         break;
      case 'successfulRegistration' :
         requestSecurityKey();
         break;
      case 'doLogout' :
         killSecurityKey();
         break;
      case '' :
         alert(sender + 'no message sent');
         break;
      default : 
         alert(sender + 'unknown message: '+message);
      }
   }
  dojo.event.topic.subscribe('successfulLogin', this, 'sendMessage');
  dojo.event.topic.subscribe('successfulRegistration', this, 'sendMessage');
  dojo.event.topic.subscribe('doLogout', this, 'killSecurityKey');
  dojo.event.topic.subscribe('successfulRegistration', window, 'trackOlympicsRegistrations');  
  dojo.event.topic.subscribe('successfulLogin', window, 'trackOlympicsLogins');  

	var olympicsNuggetId = '49868';  
	function trackOlympicsRegistrations() {  
		//if it's an olympics registration, call member nugget service
		if (getUrlParam('site').indexOf('designtheworldacoke') != -1) {  
			callMemberNuggetServiceV40(olympicsNuggetId,'REG');  
		}   
	}  
	function trackOlympicsLogins() {  
		//if it's an olympics login, call member nugget service
		if (getUrlParam('site').indexOf('designtheworldacoke') != -1) {  
			callMemberNuggetServiceV40(olympicsNuggetId,'LOGIN');  
		}   
	}
	function getUrlParam( 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];  
		}
	}
