//*******************************************************************************
// CONSTANTS
//*******************************************************************************
// site specific pages
var site_google = "UA-3724738-12";
var site_homePage = "index.asp";

var site_registerPage = "register.asp";
var site_loginPage = "login.asp";

var site_surveyPage = "survey.asp";
var site_thankYouPage = "play.asp";

var site_optOutConfirmPage = "optout-confirm.asp";

var img_waiting = "<center><img src='image/waiting.gif' border='0'></center>";

// pages
var pg_login = 1;
var pg_logout = 2;
var pg_forgotpassword = 3;
var pg_errormessage = 4;
var pg_forgotpasswordconfirm = 5;
var pg_register = 6;
var pg_invitefriend = 7;
var pg_invitefriendthankyou = 8;
var pg_coupon = 9;
var pg_redeemcoupon = 10;
var pg_printcoupon = 11;
var pg_thankyou = 12;
var pg_profile = 13;
var pg_editaccount = 14;
var pg_welcome = 15;

var pg_retailerform = 16;

var pg_weeklyquestion = 17;
var pg_weeklyquestion_only = 18;
var pg_weeklyquestionanswers_only = 19;
var pg_weeklyquestionresults = 20;

var pg_scratchoff = 21;
var pg_vitamindprofile = 22;
var pg_viewblog = 23;
var pg_prize = 24;
var pg_optout = 25;

//*******************************************************************************
// VARIABLES
//*******************************************************************************
// core variables
var url_site = "http://" + window.location.hostname + "/sys/";
var ajax_url = url_site + "ajaxcalls/";
var api_url = url_site + "apicalls/";

// page array
var pageArray;

// browser width and heigth
var winW;
var winH;

// DIV objects
var div_login, div_error, div_user, div_invite, div_coupon, div_results, div_thankyou;
var div_winner, div_profile, div_rewards, div_welcome;
var div_people, div_howitworks, div_videos, div_rate, div_ratings, div_retailer;
var div_blog, div_person, div_article, div_articleimage, div_contact;
var div_question, div_answers, div_results, div_scratchoff;
var div_optout;

// overlay flags
var overlayVisible = false;
var errorVisible = false;


// api retrun data
var api_results; 

// system ready flag
var systemReady = false;

// XML return data
var rp_XMLDoc;
var rp_RootNode;
var rp_ResultCode;
var rp_ResultMessage;
var rp_CookiesEnabled;
var rp_CookiesErrorDisplayed = false;


//*******************************************************************************
// INITIALIZATION calls
//*******************************************************************************
//***********************************************
// initSystem
//***********************************************
function initSystem()
{
	if (!systemReady)
	{
		// load the google analytic's code
		loadGoogleCode();

		// get the browser resolution
		getBrowserResolution();

		// setup the system page array
		setupPageArray();

		// set window resize event handle
		window.onresize= windowResized;

		// set system flag
		systemReady = true;
	}
	else
	{
	  alert("System is MOT ready!");
	}
	
	// check cookie
	if (!checkCookiesAreEnabled())
	{
		showCookieErrorMessage();
		return false;
	}

	// return success
	return true;
}




//*******************************************************************************
// COOKIE calls
//*******************************************************************************
//***********************************************
// checkCookiesAreEnabled
//***********************************************
function checkCookiesAreEnabled()
{
  setCookie("CookieTest","Enabled");
  rp_CookiesEnabled = false;

  var allcookies = document.cookie;
  var pos = allcookies.indexOf("CookieTest=");
  if (pos != -1) 
  {
    if (readCookie("CookieTest") == "Enabled")
    {
      rp_CookiesEnabled = true;
    }
  }

  return rp_CookiesEnabled;
}  
//***********************************************
// showCookieErrorMessage
//***********************************************
function showCookieErrorMessage()
{
  if (!rp_CookiesErrorDisplayed)
  {
    showErrorMessage("Cookies must be enabled in order to access this site!");
    rp_CookiesErrorDisplayed = true;
  }
}
//***********************************************
// showCookies
//***********************************************
function showCookies() 
{
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) 
	{
    alert(ca[i]);
	}
}
//***********************************************
// clearCookie
//***********************************************
function clearCookies() 
{
  // set cookies
  document.cookie = "rp_userid=; path=/;";
  document.cookie = "rp_keycode=; path=/;";
}
//***********************************************
// readCookie
//***********************************************
function readCookie(name) 
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) 
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0)
		{
		  return c.substring(nameEQ.length,c.length);
    }
	}

	// cookie does not exist
	return "";
}
//***********************************************
// setCookie
//***********************************************
function setCookie(name,value) 
{
  document.cookie = name + "=" + value + "; path=/; domain=" + window.location.hostname + ";";
}





//*******************************************************************************
// GOOGLE Analytics
//*******************************************************************************
//***********************************************
// loadGoogleCode
//***********************************************
function loadGoogleCode()
{
  // load google analytic code - a method to alleviate the need to modify client sites
  if (site_google != "")
  {
    document.write(unescape("%3Cscript src='http://www.google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
  }
}
//***********************************************
// trackPageView
//***********************************************
function trackPageView(pg)
{
  if (site_google != "")
  {
    var pageTracker = _gat._getTracker(site_google);
    pageTracker._initData();
    pageTracker._trackPageview(pg);
    trackConversion(pg);
  }
}


//*******************************************************************************
// GOOGLE Adwords Converson tracking
//*******************************************************************************
//***********************************************
// trackConversion()
//***********************************************
function trackConversion(pg)
{
  if ( 
       (pg == "api_createacoount") || (pg == "api_storyregister") || (pg == "api_newsletterregister") || (pg == "api_expertregister") || 
       (pg == "api_loginuser") || (pg == "api_storyloginuser") || (pg == "api_newsletterloginuser") || (pg == "api_expertloginuser") || 
       (pg == "api_redeemcoupon")
     )
  {
    var str;
    str = "%3Cscript language='JavaScript' type='text/javascript'%3E var google_conversion_id=1060910399;var google_conversion_language='en_US'; var google_conversion_format='3'; var google_conversion_color='ffffff'; var google_conversion_label='zgxMCKOLehC_6vD5Aw'; %3C/script%3E %3Cscript language='JavaScript' src='http://www.googleadservices.com/pagead/conversion.js'%3E%3C/script%3E";
//alert(unescape(str));
    //document.write( unescape(str) );
  }
}


//*******************************************************************************
// PAGE ARRAYS
//*******************************************************************************
//***********************************************
// setupPageArray
//***********************************************
function setupPageArray()
{
	pageArray = new Array();

	// add page
	addPage(pg_login,"ajax_loginform","api_loginuser","div_user",div_user,0,0,"api_ProcessLogin","login_form");
	addPage(pg_logout,"","api_logoutuser","",null,0,0,"api_ProcessLogout","");
	addPage(pg_forgotpassword,"ajax_forgotpasswordform","api_forgotpassword","div_user",div_user,0,0,"api_ProcessPassword","forgotpassword_form");
	addPage(pg_errormessage,"ajax_errormessageform","","div_error",div_error, -1, -1,"","");
	addPage(pg_forgotpasswordconfirm,"ajax_forgotpasswordconfirmform","","div_user",div_user,0,0,"","");

	addPage(pg_register,"ajax_registerform","api_createaccount","div_user",div_user,0,0,"api_ProcessRegister","user_form");

	addPage(pg_invitefriend,"ajax_invitefriendform","api_invitefriend","div_invite",div_invite,0,0,"api_ProcessInviteFriend","invite_form");
	addPage(pg_invitefriendthankyou,"ajax_invitefriendthankyouform","api_invitefriend","div_invite",div_invite,0,0,"api_ProcessInviteFriend","invite_form");

	addPage(pg_coupon,"ajax_couponform","","div_coupon",div_coupon,0,0,"","");
	addPage(pg_redeemcoupon,"ajax_redeemcouponform","api_redeemcoupon","div_coupon",div_coupon,0,0,"api_ProcessRedeemCoupon","coupon_form");
	addPage(pg_printcoupon,"ajax_printcouponform","","div_scratchoff",div_scratchoff,0,0,"","");

	addPage(pg_thankyou,"ajax_thankyouform","api_memberentry","div_thankyou",div_thankyou,0,0,"api_ProcessMemberEntry","thankyou_form");

	addPage(pg_profile,"ajax_profileform","api_submitprofile","div_profile",div_profile,0,0,"api_ProcessSubmitProfile","profile_form");
	addPage(pg_editaccount,"ajax_editaccountform","api_editaccount","div_user",div_user,0,0,"api_ProcessEditAccount","user_form");

	addPage(pg_welcome,"ajax_welcome","","div_welcome",div_welcome,0,0,"","");

	addPage(pg_retailerform,"ajax_retailerform","","div_retailer",div_retailer,0,0,"","");

	addPage(pg_weeklyquestion,"ajax_weeklyquestion","api_submitweeklyquestion","div_question",div_question,0,0,"api_ProcessWeeklyQuestion","question_form");
	addPage(pg_weeklyquestion_only,"ajax_weeklyquestion_only","","div_question",div_question,0,0,"","");
	addPage(pg_weeklyquestionanswers_only,"ajax_weeklyquestionanswers_only","","div_answers",div_answers,0,0,"","");
	addPage(pg_weeklyquestionresults,"ajax_weeklyquestionresults","","div_results",div_results,0,0,"","");

	addPage(pg_scratchoff,"ajax_scratchoffform","","div_scratchoff",div_scratchoff,0,0,"","");

	addPage(pg_vitamindprofile,"ajax_vitamindprofileform","api_submitvitamindprofile","div_profile",div_profile,0,0,"api_ProcessSubmitVitaminDProfile","profile_form");

	addPage(pg_viewblog,"ajax_viewblogform","","div_blog",div_blog,0,0,"","");
	addPage(pg_prize,"ajax_prizeform","","div_scratchoff",div_scratchoff,0,0,"","");

	addPage(pg_optout,"ajax_optoutform","api_optout","div_optout",div_optout,0,0,"api_ProcessOptout","optout_form");
}
//***********************************************
// addPage
//***********************************************
function addPage(pg, ajax, api, divname, div, top, left, api_processor, form)
{
	var tmpObject;
	tmpObject = new Object();
	tmpObject.page = pg;
	tmpObject.ajax = ajax;
	tmpObject.api = api;
	tmpObject.div = div;
	tmpObject.divname = divname;
	tmpObject.top = top;
	tmpObject.left = left;
	tmpObject.http = null;
	tmpObject.api_processor = api_processor;
	tmpObject.form = form;
	pageArray.push(tmpObject);
}


//*******************************************************************************
// OBJECT CALLS
//*******************************************************************************
//***********************************************
// showObject
//***********************************************
function showObject(obj,x,y)
{
  // set the div properties
  if (document.layers)
  {
    obj.style.left = x;
    obj.style.top = y;
  }
  else 
  {
    obj.style.left = x + "px";
    obj.style.top = y + "px";  
  }

  // show the DIV
  obj.style.visibility = "visible";
}
//***********************************************
// hideObject
//***********************************************
function hideObject(obj)
{
  obj.style.visibility = "hidden";
}
//***********************************************
// getObject
//***********************************************
function getObject(objectId) 
{
  // cross-browser function to get an object's style object given its
  if(document.getElementById && document.getElementById(objectId)) 
  {
    // W3C DOM
    return document.getElementById(objectId);
  } 
  else if (document.all && document.all(objectId)) 
  {
    // MSIE 4 DOM
    return document.all(objectId);
  } 
  else if (document.layers && document.layers[objectId]) 
  {
    // NN 4 DOM.. note: this won't find nested layers
    return document.layers[objectId];
  } 
  else 
  {
    return false;
  }
} 




//*******************************************************************************
// HTTP CALLS
//*******************************************************************************
//***********************************************
// getHTTPObject
//***********************************************
function getHTTPObject()
{
	if (typeof(XMLHttpRequest)!='undefined')
	{
		return new XMLHttpRequest();
	}

	var axO=['Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'], i;
	for(i=0;i<axO.length;i++)
	{
		try
		{
			return new ActiveXObject(axO[i]);
		}
		catch(e)
		{
		}
	}
	return null;
}
//***********************************************
// redirectPage
//***********************************************
function redirectPage(newPage)
{
  location.href = newPage;
}
//***********************************************
// redirectParentPage
//***********************************************
function redirectParentPage(newPage)
{
  parent.location.href = newPage;
}
//***********************************************
// openPage
//***********************************************
function openPage(newPage)
{
  window.open(newPage);
}




//*******************************************************************************
// PAGE CALLS
//*******************************************************************************
//***********************************************
// getPageObject
//***********************************************
function getPageObject(pg)
{
	// make sure we are fully loaded
	if (!systemReady)
	{
		alert("System is NOT ready!");
		return;
	}

	// find page object
	var p;
	for (p = 0; p < pageArray.length; p++)
	{
		if (pageArray[p].page == pg)
		{
      // get the page
			getAjaxPage(p);
			return false;
		}
	}
  
  // end the call - page not found
	showErrorMessage("PAGE '" + pg + "' has not yet been implemented!");
  return false;
}
//***********************************************
// getAjaxPage
//***********************************************
function getAjaxPage(p) 
{
	// show loading object
	pageArray[p].div = getObject(pageArray[p].divname);
	pageArray[p].div.style.visibility = "visible";
	pageArray[p].div.innerHTML = img_waiting;
	showObject(pageArray[p].div,0,0);

  // get random number
  var rn;
  rn = Math.floor(Math.random()*99999);
  
	// get the page
  pageArray[p].http = getHTTPObject(); 
  pageArray[p].http.open("GET", ajax_url + pageArray[p].ajax + ".asp?rn=" + rn, true);
  pageArray[p].http.onreadystatechange = function()
	{
		processHTTP(pageArray[p].ajax,p);
	}
  pageArray[p].http.send(null);

	// return
	return false;
}





//*******************************************************************************
// AJAX PROCESSOR CALLS
//*******************************************************************************
//***********************************************
// processHTTP
//***********************************************
function processHTTP(name,p) 
{
  if (httpCallIsDone(pageArray[p].http.readyState) == true)
  {
    if (pageArray[p].http.status == 200)
    {
      pageArray[p].div.innerHTML = pageArray[p].http.responseText;
			if (pageArray[p].top == -1)
			{
				var sxy = new Array();
				sxy = getScrollXY();
        getBrowserResolution();
	      showObject(pageArray[p].div, ( ((winW-300) / 2) + sxy[0]) , ( ((winH-200) / 2) + sxy[1])  );
			}
			else
			{
		    showObject(pageArray[p].div, pageArray[p].top, pageArray[p].left);
			}
    }
    else
    {
			if (p != pg_errormessage)
			{
				showErrorMessage("Failed to load data for '" + name + "'");
			}
    }
  }
}
//***********************************************
// httpCallIsDone
//***********************************************
function httpCallIsDone(state) 
{
  if (state == 0)
  {
    window.status = "Connection established";
  }
  else if (state  == 1)
  {
    window.status = "Request received";
  }
  else if (state  == 3)
  {
    window.status = "Answer in process";
  }
  else if (state  == 4) 
  {
    window.status = "Call completed";
    return true;
  }
  return false;
}








//*******************************************************************************
// API CALLS
//*******************************************************************************
//***********************************************
// makeAPICall
//***********************************************
function makeAPICall(pg)
{
	// initialize parameter data
	var form;
	var paramData;
	paramData = "url=apicalls/" + pageArray[pg-1].api + ".asp" + 
	            "&data=userid=" + readCookie("rp_userid") + "||" + 
              "keycode=" + readCookie("rp_keycode") + "||";

  // record page with google
  trackPageView(pageArray[pg-1].api);

  // items already added
  var itemsAdded = new Array();
  
	// get the form variables
	if ( (document[pageArray[pg-1].form] != null) && (document[pageArray[pg-1].form] != "undefined") )
	{
	  form = document[pageArray[pg-1].form];

	  // get all of the necessary form elements
	  for(i = 0; i < form.elements.length; i++)
	  {

		  if ( (form.elements[i].type == "hidden") || (form.elements[i].type == "text") || (form.elements[i].type == "textarea") || (form.elements[i].type == "password") )
		  {
		    paramData = paramData + form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value) + "||";
		  }
		  else if (form.elements[i].type == "checkbox")
		  {
		    var fnd;
        fnd = false;
		    for (ia = 0; ia < itemsAdded.length; ia++)
		    {
		      if (itemsAdded[ia] == form.elements[i].name)
		      {
		        fnd = true;
		      }
		    }
		    if (!fnd)
		    {
          var tmpData;
          tmpData = "0";

          if (form[form.elements[i].name].length == null)
          {
            if (form[form.elements[i].name].checked)
            {
              paramData = paramData + form.elements[i].name + "=" + form.elements[i].value + "||";
            }
            else
            {
              paramData = paramData + form.elements[i].name + "=0||";
            }
          }
          else
          {
            for (v=0; v < form[form.elements[i].name].length; v++)
            {
              if (form[form.elements[i].name][v].checked)
              {
                if (tmpData != "")
                {
                   tmpData = tmpData + ","
                }
                tmpData = tmpData + form[form.elements[i].name][v].value;
              }
            }
 		        paramData = paramData + form.elements[i].name + "=" + tmpData + "||";
   		      itemsAdded.push(form.elements[i].name);
          }
	      }
//  		    paramData = paramData + form.elements[i].name + "=" + form.elements[i].value + "||";
//  		    paramData = paramData + form.elements[i].name + "=0||";
		  }
		  else if (form.elements[i].type == "radio")
		  {
			  if (form.elements[i].checked)
			  {
				  paramData = paramData + form.elements[i].name + "=" + form.elements[i].value + "||";
			  }
		  }
		  else if (form.elements[i].type == "select-one")
		  {
			  if (form.elements[i].selectedIndex == -1)
			  {
				  paramData = paramData + form.elements[i].name + "=-1" + "||";
			  }
			  else
			  {
				  paramData = paramData + form.elements[i].name + "=" + form.elements[i].options[form.elements[i].selectedIndex].value + "||";
			  }
		  }
		  else if (form.elements[i].type == "select-multiple")
		  {
			  for (var m = 0; m < form.elements[i].options.length; m++) 
			  {
				  if (form.elements[i].options[m].selected)
				  {
					  paramData = paramData + form.elements[i].name + "=" + form.elements[i].options[m].value + "||";
				  }
			  } 
		  }
	  }
  }
  
 	// setup and execute HTTP call
  pageArray[pg-1].http = getHTTPObject(); 
  pageArray[pg-1].http.open("POST", api_url + pageArray[pg-1].api + ".asp", true);
  pageArray[pg-1].http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  pageArray[pg-1].http.setRequestHeader("Content-length", paramData.length);
  pageArray[pg-1].http.setRequestHeader("Connection", "close");
  pageArray[pg-1].http.onreadystatechange = function()
	{
		processAPI(pageArray[pg-1].api,pg-1);
	}

/*
  // DEBUG
  if (pageArray[pg-1].api == "api_createaccount")
  {
    alert("DEBUG: " + paramData);
  }
*/

  pageArray[pg-1].http.send(paramData);
	return false;
}
//***********************************************
// processHTTP
//***********************************************
function processAPI(name,p) 
{
	// is the call done?
  if (httpCallIsDone(pageArray[p].http.readyState) == true)
  {

		// was the call successful?
    if (pageArray[p].http.status == 200)
    {
    
      // extract result code
      if (!extractResultData(pageArray[p].http.responseText))
			{
				showErrorMessage("Error extracting results '" + name + "'<br><br>Code=" + pageArray[p].http.status);
				return;
			}

      // did the call fail?
      if (rp_ResultCode != "0")
      {
				showErrorMessage(rp_ResultMessage);
        return;
      }

			// process LOGIN USER results
			if (pageArray[p].api_processor == pageArray[pg_login-1].api_processor)
			{
				api_ProcessLogin();
			}

			// process OPTOUT results
			if (pageArray[p].api_processor == pageArray[pg_optout-1].api_processor)
			{
				api_ProcessOptOut();
			}

			// process LOGOUT results
			if (pageArray[p].api_processor == pageArray[pg_logout-1].api_processor)
			{
				api_ProcessLogout();
			}

			// process FORGOT PASSWORD results
			if (pageArray[p].api_processor == pageArray[pg_forgotpassword-1].api_processor)
			{
				api_ProcessPassword();
			}

			// process REGISTER results
			if (pageArray[p].api_processor == pageArray[pg_register-1].api_processor)
			{
				api_ProcessRegister();
			}

			// process INVITE FRIEND results
			if (pageArray[p].api_processor == pageArray[pg_invitefriend-1].api_processor)
			{
				api_ProcessInviteFriend();
			}

			// process REDEEM COUPON results
			if (pageArray[p].api_processor == pageArray[pg_redeemcoupon-1].api_processor)
			{
				api_ProcessRedeemCoupon();
			}

			// process SUBMIT PROFILE results
			if (pageArray[p].api_processor == pageArray[pg_profile-1].api_processor)
			{
				api_ProcessSubmitProfile();
			}

			// process EDIT ACCOUNT results
			if (pageArray[p].api_processor == pageArray[pg_editaccount-1].api_processor)
			{
				api_ProcessEditAccount();
			}

			// process THANK YOU results
			if (pageArray[p].api_processor == pageArray[pg_thankyou-1].api_processor)
			{
				api_ProcessMemberEntry();
			}
		
			// process WEEKLY QUESTION results
			if (pageArray[p].api_processor == pageArray[pg_weeklyquestion-1].api_processor)
			{
				api_ProcessWeeklyQuestion();
			}

			// process SUBMIT VITAMIND PROFILE results
			if (pageArray[p].api_processor == pageArray[pg_vitamindprofile-1].api_processor)
			{
				api_ProcessSubmitVitaminDProfile();
			}
    }
    else
    {
			showErrorMessage("Failed to load API results for " + name + "<br><br>Code=" + pageArray[p].http.status);
    }
  }
}

//***********************************************
// extractResultData
//***********************************************
function extractResultData(str) 
{
  // store the results as an XML object
  storeResultsAsXML(str);

  // extract the result code and message - must be first child or success/failure
  rp_ResultCode = rp_rootNode.childNodes[0].attributes[0].value;
  rp_ResultMessage = rp_rootNode.childNodes[0].attributes[1].value;

	// return success
	return true;
}

//***********************************************
// storeResultsAsXML
//***********************************************
function storeResultsAsXML(str) 
{
  var doc;
  if (window.ActiveXObject)
  {
    rp_XMLDoc = new ActiveXObject("Microsoft.XMLDOM");
    rp_XMLDoc.async="false";
    rp_XMLDoc.loadXML(str);
  }
  else
  {
    var parser = new DOMParser();
    rp_XMLDoc = parser.parseFromString(str,"text/xml");
  }

  // get the root node
  rp_rootNode = rp_XMLDoc.documentElement;
}
//***********************************************
// api_ProcessLogin
//***********************************************
function api_ProcessLogin() 
{
  // get the root node
  var l = rp_rootNode.childNodes[1];
  
  // extract the userid
  node = l.childNodes[0];
  setCookie("rp_userid",node.childNodes[0].nodeValue);

  // extract the keycode
  node = l.childNodes[1];
  setCookie("rp_keycode",node.childNodes[0].nodeValue);

  // set thank you page
  setCookie("rp_thankyou","sweepstakes");

  // extract the profile status and redirect accordingly
  node = l.childNodes[2];
  if (node.childNodes[0].nodeValue == "0")
  {
    redirectPage(site_thankYouPage);
  }
  else
  {
    redirectPage(site_surveyPage);
  }
}
//***********************************************
// api_ProcessOptOut
//***********************************************
function api_ProcessOptOut() 
{
  redirectPage(site_optOutConfirmPage);
}
//***********************************************
// api_ProcessLogout
//***********************************************
function api_ProcessLogout() 
{
  // set cookies
  clearCookies();

  // show the login page
  redirectPage(site_homePage);
}
//***********************************************
// api_ProcessPassword
//***********************************************
function api_ProcessPassword() 
{
	getPageObject(pg_forgotpasswordconfirm);
}
//***********************************************
// api_ProcessRegister
//***********************************************
function api_ProcessRegister() 
{
  // get root node
  var l = rp_rootNode.childNodes[1];

  // extract the userid 
  var node = l.childNodes[0];
  setCookie("rp_userid",node.childNodes[0].nodeValue);

  // extract the keycode 
  node = l.childNodes[1];
  setCookie("rp_keycode",node.childNodes[0].nodeValue);

  // set thank you page
  setCookie("rp_thankyou","sweepstakes");

  // redirect to survey page
  redirectPage(site_surveyPage);
}
//***********************************************
// api_ProcessInviteFriend
//***********************************************
function api_ProcessInviteFriend() 
{
  // get the thank you message
  getPageObject(pg_invitefriendthankyou);
}
//***********************************************
// api_ProcessRedeemCoupon
//***********************************************
function api_ProcessRedeemCoupon() 
{
  // get data
  var l = rp_rootNode.childNodes[1];
  var u = l.childNodes[0];
  var ud = u.childNodes[0].nodeValue;

  // open the coupon print page
  redirectPage(unescape(ud));
}
//***********************************************
// api_ProcessSubmitProfile
//***********************************************
function api_ProcessSubmitProfile() 
{
  // go to the thank you page
  redirectParentPage(site_thankYouPage);
}
//***********************************************
// api_ProcessEditAccount
//***********************************************
function api_ProcessEditAccount() 
{
  // default
  redirectPage(site_thankYouPage);
}
//***********************************************
// api_ProcessMemberEntry
//***********************************************
function api_ProcessMemberEntry() 
{
  redirectPage(site_sweepstakesThankYouPage);
}
//***********************************************
// api_ProcessWeeklyQuestion
//***********************************************
function api_ProcessWeeklyQuestion() 
{
  // get root node
  var l = rp_rootNode.childNodes[1];

  // extract data
  var em = l.childNodes[0];
  var e = l.childNodes[1];
  var c = l.childNodes[2];

  // set cookie for correct/incorrect answer
  setCookie("rp_email", em.childNodes[0].nodeValue);
  setCookie("rp_correct", c.childNodes[0].nodeValue);

  // redirect to correct page    
  if (e.childNodes[0].nodeValue == "1")
  {
    redirectPage(site_loginPage);
  }
  else
  {
    redirectPage(site_registerPage);
  }
}
//***********************************************
// api_ProcessSubmitVitaminDProfile
//***********************************************
function api_ProcessSubmitVitaminDProfile() 
{
  // redirect to the thank you page
  redirectParentPage(site_thankYouPage);
}




//*******************************************************************************
// UTILITY CALLS
//*******************************************************************************
//***********************************************
// getBrowserResolution
//***********************************************
function getBrowserResolution() 
{
	if (parseInt(navigator.appVersion)>3) 
	{
		if (navigator.appName=="Netscape") 
		{
			winW = window.innerWidth;
			winH = window.innerHeight;
		}
		if (navigator.appName.indexOf("Microsoft")!=-1) 
		{
		  if (document.layers)
		  {
			  winW = document.body.offsetWidth;
			  winH = document.body.offsetHeight;
		  }
		  else
		  {
			  winW = document.body.clientWidth;
			  winH = document.body.clientHeight;
		  }
		}
	}
}
//***********************************************
// getScrollXY
//***********************************************
function getScrollXY() 
{
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) 
	{
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } 
	else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
	{
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } 
	else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
  {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}



//*******************************************************************************
// ERROR MESSAGE CALLS
//*******************************************************************************
//***********************************************
// showErrorMessage
//***********************************************
function showErrorMessage(msg)
{
  alert(msg);
}
//***********************************************
// hideErrorMessage
//***********************************************
function hideErrorMessage()
{
	// hide the error div
	var errorDiv 
	errorDiv = getObject("div_error");
	errorDiv.style.visibility = "hidden";

  // clear error message
  setCookie("error_message","");

	// set error flag
	errorVisible = false;

	// hide the overlay
	hideOverlay();
}





//*******************************************************************************
// OVERLAY CALLS
//*******************************************************************************
//***********************************************
//  showOverlay
//***********************************************
function showOverlay()
{
	var sxy = new Array();
	sxy = getScrollXY();

	// get the browser resolution
	getBrowserResolution();

	document.getElementById('overlay').style.display='block';
	document.getElementById('overlay').style.filter='alpha(opacity=50)';
	document.getElementById('overlay').style.width = winW + "px";			
	document.getElementById('overlay').style.height = winH  + "px";			

	// set overlay flag
	overlayVisible = true;
}
//***********************************************
// hideOverlay
//***********************************************
function hideOverlay()
{
  document.getElementById('overlay').style.display='none';

	// set overlay flag
	overlayVisible = false;
}
//***********************************************
// windowResized
//***********************************************
function windowResized()
{
	// adjust the width and height of the overlay
	if (overlayVisible)
	{
		showOverlay();
	}

	// adjust the width and height of the error
	if (errorVisible)
	{
		var sxy = new Array();
		sxy = getScrollXY();
    showObject(pageArray[pg_errormessage-1].div, ( ((winW-300) / 2) + sxy[0]) , ( ((winH-200) / 2) + sxy[1])  );
	}
}
//***********************************************
// scratchOffWon
//***********************************************
function scratchOffWon()
{
  getPageObject(pg_prize);
}
//***********************************************
// scratchOffLost
//***********************************************
function scratchOffLost()
{
  getPageObject(pg_printcoupon);
}
//***********************************************
// storeReferrerCode
//***********************************************
function storeReferrerCode(code)
{
  document.cookie = "referrer=" + code + "; path=/;";
}