		var singleSubscribe = false;
		var paramsToResend = "";

        function getEl(id){
            return document.getElementById(id);
        }
        
        function displayNone(id){
			getEl(id).style.display =  "none";            
        }

		function process(postId, subscribePublication, emailFormField){
		    var subscriptions = "";
            var email = "";
            
			if(postId != null && postId != false){
				email = getEl(emailFormField).value;
				subscriptions = subscribePublication;
				getEl("email-field").value = email;
				singleSubscribe = true;
				window.scrollTo(0,0);
			} else {
			    postId = '';
                var popupEmailField = "email-field";
                if(!validateEmail(popupEmailField))
                    return;

				email = getEl(popupEmailField).value;				
				NUMBER_OF_PUBLICATIONS = parseInt(getEl("publication_count").value);

				for(i=0;i<NUMBER_OF_PUBLICATIONS;i++){
				    var pubCheckBox = getEl("publication" + i);
					if(pubCheckBox.checked){
						//if the daily reckoning
						if(i==1){
							subscriptions += getEl("dr").value + ",";
						} else {
							subscriptions += pubCheckBox.value + ",";
						}
					}
				}
                
				subscriptions = subscriptions.substring(0, subscriptions.length-1);
				singleSubscribe = false;
			}

            paramsToResend = 'email=' + email + '&subscriptions=' + subscriptions + '&postid=' + postId + '&referrer=' + location.href;
			ajaxpack.postAjaxRequest('/process_subscribe2.php', paramsToResend, respond, 'xml');
		}

        function doNothing(){
        }

		function respond(myajax){
		    var subResponseEl = getEl('subscribe-response');
			subResponseEl.innerHTML += myajax.responseText;
			subResponseEl.style.display = "block";

			if(!singleSubscribe){
				delayThenFade(1200);
			} else {
				showPopUp('subscribe-dialog');
				subResponseEl.innerHTML += "<br/><b style=\"font-size: 18px;\">Please take a moment to consider our other newsletters</b>";
				removeThankYou(5000);
			}
			
			ajaxpack.postAjaxRequest('/process_form_registrations.php', paramsToResend, doNothing, 'xml');
		}

		function removeThankYou(time_remaining){
			if(time_remaining==0){
				getEl('subscribe-response').innerHTML = "";
				displayNone('subscribe-response');
			}

			time_remaining -= 100;
			setTimeout("removeThankYou(" + time_remaining + ")",100);		
		}
		
		function setOpacity(id, value) {
		    var obj = getEl(id);
        	obj.style.opacity = value/10;
        	obj.style.filter = 'alpha(opacity=' + value * 10 + ')';
        }


		function delayThenFade(time_remaining){
			var opacity = 6;

			if(time_remaining==0)
				setTimeout("lowerOpacity(" + opacity + ")",100);

			time_remaining -= 100;
			setTimeout("delayThenFade(" + time_remaining + ")",100);
		}

		function lowerOpacity(opacity){
			if(opacity < .4){
			    closePopUp('subscribe-dialog');
				return;
			}

            setOpacity('subscribe-cover', opacity);
            setOpacity('subscribe-dialog', opacity);
			opacity -= 0.5;
			setTimeout("lowerOpacity(" + opacity + ")",100);
		}

		function showPopUp(el) {
			var cvr = getEl("subscribe-cover");
			var dlg = getEl(el);

            var htmlheight = document.body.parentNode.clientHeight;
    		var bodyheight = document.body.clientHeight;
    		var cvrheight = htmlheight > bodyheight ? htmlheight : bodyheight;
			cvr.style.height = cvrheight + "px";
			
			cvr.style.display = "block";
			dlg.style.display = "block";
			
			dlg.style.left = (0.5 * screen.width - 300) + "px";
			
			if (document.body.style.overflow == "hidden") {
				cvr.style.width = screen.width;
			}
		}
		
		function closePopUp(el) {
		    displayNone("subscribe-cover");
			displayNone(el);
			setOpacity('subscribe-cover', 6);
			setOpacity(el, 10);
		}
		
		function validateEmail(emailField){
		    var emailEl = getEl(emailField);
		    var email = emailEl.value;
		    
		    if(email == null || email.length == 0){
		        alert('Please enter an email address into the field to subscribe');
		        emailEl.focus();
		        return false;
		    }

            var isValid = (email.search(/\./) > 0)&&(email.indexOf("@") > 0) && (email.indexOf(" ") < 0);
            if(!isValid){
		        alert('The email address you entered is invalid.  Please enter a valid email address into the field to subscribe.');
		        emailEl.focus();
		        return false;
            }
            
            return true;
		}
		
		function validateAndProcess(postId, subscribePublication, emailFormField){
    		if(validateEmail(emailFormField)){
			
			
    		    process(postId, subscribePublication, emailFormField);
				// added by Ken for multivariate testing success. 
				if ( subscribePublication ==1 || subscribePublication ==64){ // is contrarian ( dont know what pub # 64 is, but I left it here anyways!
								
					try {
					_uacct = 'UA-2249730-10';
					urchinTracker("/2975118544/goal");
					} catch (err) { }

							
				}
    		}
		}
		
		