
/*
Mental Health Connections Inc. 2007
Lexington, MA mhc@mhc.com
 Written by Robert Patterson
    THE GENERAL APPROACH:
	All windows are in subscrData.html. Which window to display is determined by searching in the rules in subscrRules.js. Facts can be passed in as parameters. Facts are added as windows are completed. When a window is closed it gets processed by process() in this file. All facts are kept in the subscr object created by subscriberObject().
*/	 
var subscr;
var previousShowing;
var currentShowing;
//var serverAddress = 'http://mhc.daytondcs.com:8080/ddiD/';
var serverAddress = '../registration/';
var xmlHttp;
var keyHandlerStatus = true;
var qsParm = new Array();
var debugging = false;
var passwordWasChanged = false;

function setup()
{
	subscr = new subscriberObject();
	qs();
	if(qsParm["id"])
		subscr.id =  qsParm["id"];
	if(qsParm["email"])
		subscr.email =  qsParm["email"];
	if(qsParm["goal"])
		subscr.goal =  qsParm["goal"];
	if(qsParm["password"])
		subscr.password =  qsParm["password"];
	if(qsParm["catagory"])
		subscr.catagory =  qsParm["catagory"];
	createXMLHttpRequest();
	showGoal('Registraion / Subscription');
	findDoNextTask();
	isPageEmbedded();	
}

function subscriberObject(_0,_1,_2 ,_3)
{
	this.goal = _0;
	this.email = _1;
	var emailAsked;
	this.password = _2;
	this.pswdMatched = _3;
	var demoQualificationAsserted;
	var id;
	var type;
	var amount;
	var quantityToPurchase;
	var itemToPurchase;
	var registDataUpdated;
	var registDataIn;
	var firstName;
	var lastName;
	var address1;
	var address2;
	var city;
	var state;
	var postcode;
	var country;
	var telephone;	
	var profession;
	var professionText;
	var learnedFrom;
	var learnedFromDetails;	
	var	type;
	var daysLeft;
	var subscrType; 
	var set;
	var histAr = new Array();
	var purchaseSelected;
	var purchaseConfirmed;
	var newDaysLeft;
	var catagory;
	var tentativeEmail;
	var affiliateOrgName;
	var affiliationAsserted;
	var showAffilPage;
	var demoEstablished;
	var passwordFailedReported;
	var noDemoText;
	var okForDemo;
	var studentQualificationAsserted;
	var schoolName;
	var schoolLocation;
	var graduationTime;
	var studentRegistered;
	var passwordSent;
	var catagoryRechecked;
	var referal__name;
	var referal_email;
	var referrerName;
	var referrerID;
	var updateDone;
	var groupSubscription;
	var finalizeOrder;
	var labID;
	var labPassword;
	var dnaLogIn;
	var nmPrices;
	var nmRegist;
	var warningNM;
	var promoCodeSuccess = false;
	this.fact = function() 
	{
		var fac = '';
		if (this.id){fac = fac + '<br>id = ' + this.id;}
		if(this.goal){fac = fac + '<br>goal = ' + this.goal}
	if (this.email){fac = fac + '<br>email = ' + this.email;}
	if (this.password){fac = fac + '<br>password = ' + this.password}
	if (this.pswdMatched){fac = fac + '<br>pswdMatched = ' + this.pswdMatched;}
	if (this.demoQualificationAsserted){fac = fac + '<br>demoQualificationAsserted = ' + this.demoQualificationAsserted;}
	if (this.type){fac = fac + '<br>type = ' + this.type;}
	if (this.amount){fac = fac + '<br>amount = ' + this.amount;}
	if (this.quantityToPurchase){fac = fac + '<br>quantityToPurchase = ' + this.quantityToPurchase;}
	if (this.itemToPurchase){fac = fac + '<br>itemToPurchase = ' + this.itemToPurchase;}
	if (this.registDataUpdated){fac = fac + '<br>registDataUpdated = ' + this.registDataUpdated;}
	if (this.registDataIn){fac = fac + '<br>registDataIn = ' + this.registDataIn;}
	if (this.firstName){fac = fac + '<br>firstName = ' + this.firstName;}
	if (this.lastName){fac = fac + '<br>lastName = ' + this.lastName;}
	if (this.address1){fac = fac + '<br>address1 = ' + this.address1;}
	if (this.address2){fac = fac + '<br>address2 = ' + this.address2;}
	if (this.city){fac = fac + '<br>city = ' + this.city;}
	if (this.state){fac = fac + '<br>state = ' + this.state;}
	if (this.postcode){fac = fac + '<br>postcode = ' + this.postcode;}
	if (this.country){fac = fac + '<br>country = ' + this.country;}
	if (this.telephone){fac = fac + '<br>telephone = ' + this.telephone;}	
	if (this.profession){fac = fac + '<br>profession = ' + this.profession;}
	if (this.professionText){fac = fac + '<br>professionText = ' + this.professionText;}
	if (this.learnedFrom){fac = fac + '<br>learnedFrom = ' + this.learnedFrom;}
	if (this.learnedFromDetails){fac = fac + '<br>learnedFromDetails = ' + this.learnedFromDetails;}	
	if (this.daysLeft){fac = fac + '<br>daysLeft = ' + this.daysLeft;}
	if (this.subscrType){fac = fac + '<br>subscrType = ' + this.subscrType;} 
	if (this.set){fac = fac + '<br>set = ' + this.set;}
	if (this.histAr){fac = fac + '<br>histAr= ' + this.histAr;}
	if (this.purchaseSelected){fac = fac + '<br>purchaseSelected = ' + this.purchaseSelected;}
	if (this.purchaseConfirmed){fac = fac + '<br>purchaseConfirmed = ' + this.purchaseConfirmed;}
	if (this.newDaysLeft){fac = fac + '<br>newDaysLeft = ' + this.newDaysLeft;}
	if (this.catagory){fac = fac + '<br>catagory = ' + this.catagory;}
	if (this.tentativeEmail){fac = fac + '<br>tentativeEmail = ' + this.tentativeEmail;}
	if (this.affiliateOrgName){fac = fac + '<br>affiliateOrgName = ' + this.affiliateOrgName;}
	if (this.affiliationAsserted){fac = fac + '<br>affiliationAsserted = ' + this.affiliationAsserted;}
	if (this.showAffilPage){fac = fac + '<br>showAffilPage = ' + this.showAffilPage;}
	if (this.demoEstablished){fac = fac + '<br>demoEstablished = ' + this.demoEstablished;}
	if (this.passwordFailedReported){fac = fac + '<br>passwordFailedReported = ' + this.passwordFailedReported;}
	if (this.noDemoText){fac = fac + '<br>noDemoText = ' + this.noDemoText;}
	if (this.okForDemo){fac = fac + '<br>okForDemo = ' + this.okForDemo;}
	if (this.studentQualificationAsserted){fac = fac + '<br>studentQualificationAsserted = ' + this.studentQualificationAsserted;}
	if (this.schoolName){fac = fac + '<br>schoolName = ' + this.schoolName;}
	if (this.schoolLocation){fac = fac + '<br>schoolLocation= ' + this.schoolLocation;}
	if (this.graduationTime){fac = fac + '<br>graduationTime = ' + this.graduationTime;}
	if (this.studentRegistered){fac = fac + '<br>studentRegistered = ' + this.studentRegistered;}
	if (this.passwordSent){fac = fac + '<br>passwordSent = ' + this.passwordSent;}
	if (this.catagoryRechecked){fac = fac + '<br>icatagoryRecheckedd = ' + this.catagoryRechecked;}
	if (this.referal__name){fac = fac + '<br>referal__name = ' + this.referal__name;}
	if (this.referal_email){fac = fac + '<br>referal_email = ' + this.referal_email;}
	if (this.referrerName){fac = fac + '<br>referrerName = ' + this.referrerName;}
	if (this.referrerID){fac = fac + '<br>referrerID = ' + this.referrerID;}
	if (this.updateDone){fac = fac + '<br>updateDone = ' + this.updateDone;}
	if (this.groupSubscription){fac = fac + '<br>groupSubscription = ' + this.groupSubscription;}
	if (this.finalizeOrder){fac = fac + '<br>finalizeOrder = ' + this.finalizeOrder;}
	if (this.labID){fac = fac + '<br>labID = ' + this.labID;}
	if (this.labPassword){fac = fac + '<br>labPassword = ' + this.labPassword;}
	if (this.dnaLogIn){fac = fac + '<br>dnaLogIn = ' + this.dnaLogIn;}
	if (this.nmPrices){fac = fac + '<br>nmPrices = ' + this.nmPrices;}
	if (this.nmRegist){fac = fac + '<br>nmRegist = ' + this.nmRegist;}
	if (this.warningNM){fac = fac + '<br>warningNM = ' + this.warningNM;}
	if (this.promoCodeSuccess){fac = fac + '<br>promoCodeSuccess = ' + this.promoCodeSuccess;}
		return fac;
	}
}

function show(what)  // Shows a page and hides previous page
{
	document.getElementById(what).className ="showIt";
	if(currentShowing != undefined && currentShowing != what)
		document.getElementById(currentShowing).className ="hideIt";
	previousShowing = currentShowing;
	currentShowing = what;	
}
/*
How It Works

In setup(), get parameters sent in and record as subscr.x. facts. Call findDoNextTask(). It finds a rule to fire by checking subscr.x facts. It may set up info in the page to be called. It calls show() to display the page. 
Show displays it and sets 'currentShowing' to proper page.
User clicks Next button when done calling next(). 
Next() uses currentShowing to know which page's data to process in process(). Process gets data and stores it. It can exit in various ways:

Process() can:
1. return false --  Something wrong in page input so alert and wait for fix. 
2. return true -- ok maybe done.
3. call findDoNextTask() -- next rule will fire
4. call parent program and leave this system
5. call sendAjax() -- makes transaction with server -->
		callback() may:
		1. call findDoNextTask() - the default.
		2. return -- 1.something went wrong, show alert and wait for fix by user. then page gets processed again.
					 2. Process was completed, page updated and now wait for more user input.

*/
function next()
{
	process(currentShowing);
//	if(!process(currentShowing))
//		alert('Process() returned false!');		
}

function back()
{
	alert('Don\'t go there!');
}

function process(page)
{
	switch(page)
	{
		case 'd_0.5':
			document.getElementById('buttonDiv').className = 'showIt';
			return true;  
		case "d_1":
//		alert(1234);
			var len = document.forms['d_1Form'].goal_.length;
//			alert('len = ' + len);
//			for(i in document.forms['d_1Form'].goal_)  //i=0;i<len;i++) //
			for(i=0;i<len;i++)  // in document.forms['d_1Form'].goal_)  //i=0;i<len;i++) //
			{
	//		alert('i= ' + i);
				if(document.forms['d_1Form'].goal_[i].checked  == true)
				{
					var goal = document.d_1Form.goal_[i].value;		
			//		if(goal == 'demoNm' || goal == 'buyExtNm' || goal == 'preregisteredNm')
			//		{
			//			alert('Function not in use yet');
			//			return;
			//		}
					subscr.goal = goal;
					showGoal(subscr.goal);
					if(subscr.goal != 'demo' && subscr.goal != 'demoNm')
						getParentLoginInfo();  // Get email and password from parent if possible.
				
					if(parent.guestUser == false && parent.logInDone && (subscr.goal == 'demo' || subscr.goal == 'demoNm'))
					{
						alert('I cannot create a trial subscription since you are already logged in.');
						subscr.goal = undefined;
						return false;
					}
					findDoNextTask();
					return true;  //changed 17th
				}
			}
			return false;
		case 'd_2':  // Check the email
			subscr.email = document.getElementById('emailInput').value;
			if(subscr.email.length < 5)
			{
				alert('I don\'t see any email address.');
				return false;
			}			
			show('d_3');   /// Please Wait screen
			document.getElementById('buttonDiv').className = 'hideIt';
			var param = 'email=' + subscr.email;
			var b = 'false';
			if(subscr.goal == 'demo')
				b = 'true';
			param = param + '&demo=' + b;
			subscr.tentativeEmail = subscr.email;
			sendAjax('checkEmail',param);
			return true;
		case 'd_4':  // Check the password
			subscr.password = document.getElementById('password').value;
			if(subscr.password.length < 5)
			{
				alert('I don\'t see any password.');
				return false;
			}			
			show('d_5');
			document.getElementById('buttonDiv').className = 'hideIt';
			var param = 'email=' + subscr.email + '&password=' + subscr.password;
			sendAjax('checkPswd',param);
			return true;
		case 'd_6':   // pasword did not match
			subscr.password = undefined;
			subscr.pswdMatched = undefined;
			document.getElementById('password').value = '';
			findDoNextTask();
			return;
	//		alert('no match processed');
	//		return true;			
		case 'd_7':  // got registration info maybe also card address
			if(validate('formToCheck'))
			{
				subscr.firstName = document.getElementById('firstName').value;
				subscr.lastName = document.getElementById('lastName').value;
				subscr.address1 = document.getElementById('address1').value;
				subscr.address2 = document.getElementById('address2').value;
				subscr.city = document.getElementById('city').value;
				subscr.state = document.getElementById('state').value;
				subscr.postcode = document.getElementById('postcode').value;
				subscr.country = document.getElementById('country').value;
				subscr.telephone = document.getElementById('telephone').value;
				subscr.email = document.getElementById('email1').value;
			}
			else
				return false;
			if(passwordWasChanged)
				//	if(document.getElementById('newPassword').value.length > 4)   // User has changed his password
			{
				subscr.password = document.getElementById('newPassword').value;
			}				
			if(!subscr.id) // Person is new
			{
				if(!passwordWasChanged)
				{
					alert('You need to enter a password.');
					return false;
				}		
					//subscr.password = document.getElementById('newPassword').value;
				subscr.professionText = document.getElementById('professionText').value;
				var detal = document.getElementById('learnedFromDetails').value;
				if(detal != 'Details here please.' && detal != '')
					subscr.learnedFromDetails = detal;
			}
			subscr.registDataUpdated = true;

			if(subscr.goal == 'buyExt' || subscr.goal == 'buyExtNm' )  // Almost ready to go to card company
			{
			// We need to check credit card info. Hide page and display credit card info
				show('d_7a');
				document.getElementById('promoCodeinForm').value = document.getElementById('promoCode').value;
			//	document.getElementById('d_7a').className = 'showIt';
				return true;
			}

// ---------------- STUDENT FREE SUBSCR -------------------------------------------

			if(subscr.studentQualificationAsserted)  // Ready to do stuent subscription
			{
					var newR = 'no';
				if(!subscr.id) // A new person
					newR = 'yes';	
				param = 'newRegistration=' + newR +
				'&password=' + subscr.password + 
				'&email=' + subscr.tentativeEmail + 
				'&firstName=' + subscr.firstName + 
				'&lastName=' + subscr.lastName + 
				'&address1=' + subscr.address1 + 
				'&address2=' + subscr.address2 + 
				'&telephone=' + subscr.telephone + 
				'&city=' + subscr.city + 
				'&state=' + subscr.state + 
				'&country=' + subscr.country + 
				'&postcode=' + subscr.postcode +
	//			'&catagory=' + subscr.catagory +
				'&afil_org=' + subscr.affiliateOrgName +
				'&schoolName=' + subscr.schoolName +
			 	'&schoolLocation=' + subscr.schoolLocation +
				'&graduationTime=' + subscr.graduationTime;
				if(newR == 'yes')
				{
					param = param +
			//		'&prof=' + subscr.prof + 
		//			'&professionText=' + subscr.professionText + 
					'&learnedFrom=' + subscr.learnedFrom + 
					'&learnedFromDetails=' + subscr.learnedFromDetails;
				}
	//			alert(param);	
				sendAjax('studentSubscr',param);
			}
//------------------------------------------ UPDATE REGISTRATION INFO ---------------------------------------------------
	//		alert('upd Password = ' + subscr.password);
			if(subscr.goal == 'update')  // Ready to do student subscription
			{	
				param = 'password=' + subscr.password + 
				'&email=' + subscr.email + 
				'&id=' + subscr.id +
				'&firstName=' + subscr.firstName + 
				'&lastName=' + subscr.lastName + 
				'&address1=' + subscr.address1 + 
				'&address2=' + subscr.address2 + 
				'&telephone=' + subscr.telephone + 
				'&city=' + subscr.city + 
				'&state=' + subscr.state + 
				'&country=' + subscr.country + 
				'&postcode=' + subscr.postcode;
	//			alert('send update ' + param);	
				sendAjax('update',param);
			}

//----------------------------------------------------------------------------------------------------------------------
			
			if(subscr.goal == 'demo')  // Medical including students: ready to send data to server and get password
			{
				var newR = 'no';
				if(!subscr.id) // A new person
					newR = 'yes';
				param = 'newRegistration=' + newR +
				'&password=' + subscr.password + 
				'&email=' + subscr.tentativeEmail + 
				'&firstName=' + subscr.firstName + 
				'&lastName=' + subscr.lastName + 
				'&address1=' + subscr.address1 + 
				'&address2=' + subscr.address2 + 
				'&telephone=' + subscr.telephone + 
				'&city=' + subscr.city + 
				'&state=' + subscr.state + 
				'&country=' + subscr.country + 
				'&postcode=' + subscr.postcode +
				'&catagory=' + subscr.catagory +
				'&afil_org=' + subscr.affiliateOrgName;
				if(newR == 'yes')
				{
					param = param +
					'&profession=' + subscr.profession + 
					'&professionText=' + subscr.professionText + 
					'&learnedFrom=' + subscr.learnedFrom + 
					'&learnedFromDetails=' + subscr.learnedFromDetails;
				}
				sendAjax('completeDemo',param);
			}
			
			return true;
			
			break;
		case 'd_7a':				
				if(!validateCardAddress())
					return false;			
				if(subscr.state == 'wa' || subscr.state == 'WA')
				{
					var amount = subscr.amount;
					if(!amount)
						alert('No amount info');
				//	var len = amount.length;
					amount = (amount * 1.095);
					amount = amount.toString();
					var ar = amount.split(".");
					var cents = ar[1].substring(0,2);
					subscr.amount = ar[0] + '.' + cents;
				}			
				document.getElementById("newDaysLeft").value= subscr.newDaysLeft;
				document.getElementById('x_email').value = subscr.email;
				document.getElementById("x_amount").value = subscr.amount; 
				document.getElementById("x_description").value = subscr.itemToPurchase + ' GeneMedRx subscription(s) Quantity ' + subscr.quantityToPurchase;
				document.getElementById("catagory").value = subscr.catagory;
				if(subscr.referrerID)
					document.getElementById("referrerID").value = subscr.referrerID;
				if(subscr.groupSubscription)
					document.getElementById('groupSubscription').value = subscr.groupSubscription;
				// Save the data before card processing
				var newR = 'no';
				if(!subscr.id) // A new person
					newR = 'yes';
				param = 'newRegistration=' + newR +
				'&password=' + subscr.password + 
				'&email=' + subscr.email + 
				'&firstName=' + subscr.firstName + 
				'&lastName=' + subscr.lastName + 
				'&address1=' + subscr.address1 + 
				'&address2=' + subscr.address2 + 
				'&telephone=' + subscr.telephone + 
				'&city=' + subscr.city + 
				'&state=' + subscr.state + 
				'&country=' + subscr.country + 
				'&postcode=' + subscr.postcode +
				'&catagory=' + subscr.catagory +
				'&afil_org=' + subscr.affiliateOrgName; // Not only for new registrants
				if(newR == 'yes')   // A new registrant
				{
					param = param +
					'&profession=' + subscr.profession + 
					'&professionText=' + subscr.professionText + 
					'&learnedFrom=' + subscr.learnedFrom + 
					'&learnedFromDetails=' + subscr.learnedFromDetails;
				}
				else  // not a new registrant
				{
					param = param + 
					'&id=' +  subscr.id
				}
	//			alert('line 483' + param);
				sendAjax('buyExt',param);  // on callback it will send data to authorize.net
			return true;
			
			
		case 'd_8':
			subscr.passwordFailedReported = true;
			return true;
		case 'd_9':
			subscr.membershipChecked = true;
			findDoNextTask();
			return true;
		case 'd_11':   // price page
//			for(i in document.d_11Form.item)
			var len = document.d_11Form.item.length;
			for(i=0;i<len;i++)  //  in document.d_11Form.item)
			{
				if(document.d_11Form.item[i].checked)
				{
					var price;
					var pc = document.getElementById('promoCode').value;
					if(pc.length > 0 && !subscr.promoCodeSuccess)
					{
						alert('Have you clicked the \'Validate Code\' button? If not, please click it now. If you have but will not be using a code, please delete the text in the Promotional Code box');
						return;
					}					
					subscr.newDaysLeft = subscr.newDaysLeft -0;
					var refBonusDays = 0;
					var remDays = subscr.daysLeft -0;
					if(remDays < 0)   // If subscription ran out some time ago restart subscription now. 
						remDays = 0;
					if(subscr.subscrType != '0') // Throw out remaining subscr days if its not a paid subscription.
						remDays = 0;
					if(subscr.referrerID)  // Add 90 days bc he was referred by a subscriber
						refBonusDays = 90;
					i = i + '';		
					switch(i)
					{
						case '0':
							subscr.price = document.getElementById('oneYearPrice').innerHTML;
							var index = document.getElementById('oneYearSelect').selectedIndex;
							var num = document.getElementById('oneYearSelect').options[index].value;
							subscr.itemToPurchase = 'One year';
							subscr.quantityToPurchase = num;
							subscr.amount = subscr.price * num;
							subscr.newDaysLeft = remDays + 366 + refBonusDays;
							break;
						case '1':
							subscr.price = document.getElementById('twoYearPrice').innerHTML;
							var index = document.getElementById('twoYearSelect').selectedIndex;
							var num = document.getElementById('twoYearSelect').options[index].value;
							subscr.itemToPurchase = 'Two year';
							subscr.quantityToPurchase = num;							
							subscr.amount = subscr.price * num;
							subscr.newDaysLeft = remDays + 732 + refBonusDays;
							break;														
						case '2':
							subscr.price = 149;
							var index = document.getElementById('fivePlusSelect').selectedIndex;
							var num = document.getElementById('fivePlusSelect').options[index].value;
							subscr.itemToPurchase = 'Discounted price (5-10 copies)';
							subscr.quantityToPurchase = num;
							subscr.groupSubscription = '5-10';
							subscr.amount = 149 * num;
							subscr.newDaysLeft = 366;
							break;
						case '3':
							subscr.itemToPurchase = 'Discounted price (11-20 copies)';
							subscr.quantityToPurchase = 1;
							subscr.groupSubscription = '11-20';
							subscr.price = '1599';
							subscr.amount = '1599';
							subscr.newDaysLeft = 366;
							break;
						case '4':
							subscr.amount = '2599';
							subscr.price = '2599';
							subscr.itemToPurchase = 'Discounted price (21-49 copies)';
							subscr.quantityToPurchase = 1;
							subscr.groupSubscription = '21-49';
							subscr.newDaysLeft = 366;																								
							break;
					}
					subscr.purchaseSelected = true;
					findDoNextTask();
					return true;
				}						
			}
			alert('I don\'t see any item selected.');
			return true;
			
		case 'd_13':
			subscr.showAffilPage = undefined;
			if(document.getElementById('affiliationConfirmed').checked)
			{
				subscr.affiliationAsserted = true;
				recordCatagory();
			}
			else
			{
				subscr.affiliationAsserted = false;
				document.getElementById(subscr.affiliateOrgName).checked = false;
				subscr.catagory = undefined;
				subscr.affiliateOrgName = undefined;
			}
			subscr.catagoryRechecked = true;
			findDoNextTask();
			return true;
		case 'd_16':  // Trial for medical prof.
			if(validateMedProf())
			{
				subscr.demoQualificationAsserted = true;
		//		subscr.prof = profChecked; //document.getElementById('prof').value;
				subscr.professionText = document.getElementById('professionText').value;
				subscr.oraganization  = document.getElementById('oraganization').value;
		//		subscr.learnedFrom = learnedFromChecked;  //document.getElementById('learnedFrom').value;
				subscr.learnedFromDetails = '';
				var d  = document.getElementById('learnedFromDetails').value;
				if(d != 'Details here please.')
					subscr.learnedFromDetails = d;
				findDoNextTask();
				return true;
			}
			else
				return false;
		case 'd_17':
				var labID =  document.getElementById('labID').value;
				if(labID.length < 3)
				{
					alert('That lab ID number seems wrong.');
					return;
				}
				var pw =  document.getElementById('ptPassword').value;
				if(pw.length < 4)
				{
					alert('That password seems wrongx.');
					return;
				}
				var userPassword;
				var eml;
				if(!subscr.email || !subscr.password)  // We already have it
				{
					var nameF =  document.getElementById('nameF_17').value;
					if(name.length < 5)
					{
						alert('That name seems too short.');
						return;
					}
					var nameL =  document.getElementById('nameL_17').value;
					if(name.length < 5)
					{
						alert('That name seems too short.');
						return;
					}
					eml =  document.getElementById('email_17').value;
					userPassword =  document.getElementById('userPassword').value;
					if(!(userPassword.length > 4 && userPassword.length < 17 ))
					{
						alert('Please enter password of 5 and 16 characters. Letters and numbers are OK.');
						return;
					}
					if(eml.length < 5)
					{
						alert('That email seems too short.');
						return;
					}
					var index =  document.getElementById('profSelect_17').selectedIndex;
					var profession = document.getElementById('profSelect_17').value;
					if(index == 0 && subscr.goal == 'activateMed')
					{
						alert('Please indicate your profession.');
						return;
					}
				}
				else
				{
						userPassword = subscr.password;
						eml = subscr.email;
				}
				
				if(index == 0 && subscr.goal != 'activateMed')
					profession = 'not medical';
				var dnaProfessionText = document.getElementById('dnaProfessionText').value;				
				var attM =  document.getElementById('dnaAttestMedical').checked;
				if(!attM && subscr.goal == 'activateMed')
				{
					alert('Please check the box asserting you are authorized to access the information.');
					return;
				}				
				var att =  document.getElementById('dnaAttest').checked;
				var att2 =  document.getElementById('dnaAttestMedical').checked;
				if(!att && !att2)
				{
					alert('Please check the box asserting you are authorized to access the information.');
					return;
				}								
				param = 'labID=' + labID + '&ptPassword=' + pw + '&password=' + userPassword + '&nameF=' + nameF + '&nameL=' + nameL + '&email=' + eml + '&gmrxType=dnaTest' + '&profession=' + profession + '&professionText=' + dnaProfessionText;
				sendAjax('dnaRegist',param);				
				findDoNextTask();
				return true;
		case 'd_18':
			if(!validateStudent())
				return false;
			findDoNextTask();
			return true;
		case 'd_19':
			document.formA.submit();
		//	findDoNextTask();
			return true;
		case 'd_22':
			if(!document.getElementById('assertStillMember').checked)
				subscr.catagory = undefined;
			subscr.catagoryRechecked = true;
			findDoNextTask();
			return true;
		case 'd_24':
	//		alert('processing d_24');
			parent.document.getElementById('mainDiv').className= 'showIt';
			parent.document.getElementById('regDiv').className= 'hideIt';
			parent.makeVisible('drugLists');
			parent.showDNATestPt = true;
			parent.getRecordsList();    // gets ptRecords and bc there is a DNA test pt it switches to drug lists page and opens record.
			parent.Go();
			break;
		case 'd_25':   // Individual/Family price page
			if(document.getElementById('d_25_3').checked)
			{
				if(parent.logInDone)
					parent.select_1(30);
				else
					alert('If you are a current subscriber you can log in now and send the "Tell a friend" email. To purchase a subscription choose one of the other options.');	
				return;	
			}	
			if(!subscr.amount)  // Amount is set when subscription type is chosen
			{
				alert('Please choose a subscription plan. The Family plan also requires the number of family members');
				return;
			}
			subscr.nmPrices = true;
		//	subscr.newDaysLeft = 0; //subscr.newDaysLeft -0;
			if(!subscr.daysLeft)
				subscr.daysLeft = 0;
			var remDays = subscr.daysLeft -0;
			if(remDays < 0)   // If subscription ran out some time ago restart subscription now. 
				remDays = 0;
			subscr.newDaysLeft = remDays + 366;	
			 ////// Amount, groupSubscription and catagory are set when subscription type is chosen ************
			findDoNextTask();
			return true;
		case 'd_26':
			parent.setupTour();
			break;
		case 'd_27':
			var index =  document.getElementById('whereSelect_27').selectedIndex;
			var where = document.getElementById('whereSelect_27').value;
			if(index == 0)
			{
				alert('Please indicate where you learned about us.');
				return;
			}		
			subscr.learnedFrom = where;
			if(document.getElementById('dnaWarningCheckboxNM').checked != true)
			{
				alert('Please read and check the warning box');					
				return;
			}
			subscr.warningNM = true;
			findDoNextTask();	
			break;				
	}
	return false;
}

function sendAjax(task,params)
{	
	var url = serverAddress + 'registAjax.php?task=' + task + '&' + params;
//	alert(url);
	xmlHttp.open("GET",url,true);
	xmlHttp.onreadystatechange = callback;
	xmlHttp.send(null);
}

function callback()
{
	if(xmlHttp.readyState == 4)
	{
		if(xmlHttp.status == 200)
		{
	//FOR DEBUGGING///		document.getElementById('callbackDisplay').innerHTML = xmlHttp.responseText;
			var resp = xmlHttp.responseText;
			switch (getKeyValue('callBackID',resp))
			{
				case 'checkEmail':
					if(getKeyValue('email',resp) == 'yes')
					{
						subscr.id = getKeyValue('id',resp);
					//	subscr.email = 
						if(getKeyValue('okForDemo',resp) == 'yes')
							subscr.okForDemo = true;	
						else
						{
							var text = getKeyValue('noDemoText',resp);
							if(text != 'allow')
							{
								subscr.noDemoText = 'Our records show that you have already had a 30-day free trial. Please call Kristine Ashcraft at 877-431-4362 x 2857, or click back and select another option.';
							}
						}						
					}
					else  // email not recognized
					{
						subscr.okForDemo = true;
						//subscr.email = subscr.tentativeEmail;
					}
					subscr.emailAsked = true;
			//		alert('tent email');
					subscr.email = subscr.tentativeEmail;
			//		alert(subscr.email + 'xxx' + subscr.tentativeEmail);
					document.getElementById('buttonDiv').className = 'showIt';
					break;
				case 'checkPswd':
				//	alert('WILL SET: callback check pswd ' + getKeyValue('pswdMatched',resp));
					subscr.pswdMatched = getKeyValue('pswdMatched',resp);
					subscr.id = getKeyValue('id',resp);  // If data passed in we won't have got id from checking email
					document.getElementById('buttonDiv').className = 'showIt';
					break;
				case 'sendPassword':
					subscr.passwordSent = true;
					break;
				case 'registration':
					subscr.firstName = document.getElementById('firstName').value = getKeyValue('firstName',resp);
					subscr.lastName = document.getElementById('lastName').value = getKeyValue('lastName',resp);
					subscr.address1 = document.getElementById('address1').value = getKeyValue('address1',resp);
					subscr.address2 = document.getElementById('address2').value = getKeyValue('address2',resp);
					subscr.city = document.getElementById('city').value = getKeyValue('city',resp);
					subscr.state = document.getElementById('state').value = getKeyValue('state',resp);
					subscr.postcode = document.getElementById('postcode').value = getKeyValue('postcode',resp);
					subscr.country = document.getElementById('country').value = getKeyValue('country',resp);
					subscr.telephone = document.getElementById('telephone').value = getKeyValue('telephone',resp);
					document.getElementById('email1').value = subscr.email;
					document.getElementById('email2').value = subscr.email;
					subscr.subscrType = getKeyValue('subscrType',resp);
					subscr.daysLeft = getKeyValue('daysLeft',resp);   // May be demo, subscr or student subscr.!
					subscr.catagory = getKeyValue('catagory',resp);
					subscr.registDataIn = true;
					document.getElementById('buttonDiv').className = 'showIt';
					break;
				case 'completeDemo':
					subscr.id= getKeyValue('id',resp);
					subscr.demoEstablished = true;
					if(parent.document.title == 'GeneMedRx – A Tool to Improve Drug Safety')  //document.getElementById('email').value;  // we are inside GeneMedRx
					{
						document.getElementById('demoEstablished').innerHTML = "Thank you for trying the GeneMedRx program.<br><br>To start using GeneMedRx just <strong>click on Log In</strong> in the upper right corner of the screen. We have placed your email address and the password there.<br><br>Begin to enjoy the benefits of GeneMedRx!";
					}
					else
					{ 
						document.getElementById('demoEstablished').innerHTML = 'Now you can go to GeneMedRx and log in with your email and password.<br><br><form action="http://mhc.daytondcs.com:8080/cgi-bin/ddiD4" method="GET" name="form0"><input type="submit" value="Open GeneMedRx Program"><input type="hidden" name="task" value="getDrugList"/></form>';					
					}					
					break;
				case 'studentSubscr':
					subscr.id= getKeyValue('id',resp);
					subscr.studentRegistered = true;
					break;
				case 'buyExt':
					subscr.id = getKeyValue('id',resp);
					document.getElementById("x_cust_id").value = subscr.id;
					subscr.finalizeOrder = true;
					findDoNextTask();
					return;
					break;
				case 'referalName':
					var referrer = getKeyValue('referrer',resp);
					if(referrer != -1)
					{
						subscr.referrerName = referrer;
						subscr.referrerID = getKeyValue('refID',resp);
						document.getElementById('referredBy').className = 'hideIt';
						document.getElementById('referredResult').innerHTML = '<br>We found ' + subscr.referrerName + ' who referred you. We will extend each subscription 90 days.';
						document.getElementById('oneYearRefExt').className = 'save';
						document.getElementById('twoYearRefExt').className = 'save';
						return;
					}
					else
					{
						alert('We could not find that email address or name in our database.');
						return;
					}
					break;
				case 'update':
					subscr.updateDone = true;
					break;
				case 'dnaRegist':   // The only return is a failure - success goes to log in
					var mes = getKeyValue('message',resp)
					alert(mes);
					return;
					break;
				case 'logIn':   // logIn returns here only for dnaTest registrations
		//			var status = getKeyValue('status',resp);
	//			if(status == 'good' || status == 'dnaUser')
	//			{
					parent.document.getElementById("loginDiv").className="hideIt";
					parent.document.getElementById("logoutDiv").className="right";
					parent.document.getElementById("logInText").innerHTML = getKeyValue('logInText',resp);
					parent.sessionNumber = getKeyValue('sessionNumber',resp);
		//			makeVisible('drugLists');
		//			getRecordsList();    // gets ptRecords and bc there is a dan test pt it switches to drug lists oage and opens record.
					if(parent.getCookie('examplesWindow') != 'no')
						parent.exampleSetup();
					parent.logInDone = true;
					var email = parent.document.getElementById('email').value;
					var thisstuff = parent.document.getElementById('password').value;
					if(parent.getCookie('loginPreference') != 'yes' && parent.document.getElementById('saveLoginInfo').checked)
					{
						parent.setCookie('new',thisstuff,1500);
						parent.setCookie('email',email,1500);
					}
	//					parent.doCallBackWork(resp);
					subscr.dnaLogIn = true;
		//				alert('in subscrDat.html login');
					break;
				case 'promotionCode':
				//		alert(getKeyValue('status',resp));
					if(getKeyValue('status',resp) == 'good')
					{
				//		alert('in');
						var priceData = getKeyValue('priceData',resp);
						var elAr = getKeyValue('priceData',resp).split('^');
				//		alert(document.getElementById("oneYearPrice").innerHTML);
						document.getElementById("oneYearPrice").innerHTML = elAr[0];
						document.getElementById("oneYearSaving").innerHTML = elAr[1];
						document.getElementById("twoYearPrice").innerHTML = elAr[2];
						document.getElementById("twoYearSaving").innerHTML = elAr[3];
						document.getElementById("priorityCodeText").innerHTML = getKeyValue('priorityCodeText',resp);
						subscr.promoCodeSuccess = true;
						return;
					}
					else
					{
						document.getElementById("priorityCodeText").className = 'hideIt';
						alert(getKeyValue('message',resp));
						subscr.promoCodeSuccess = false;
						return;
					}
			}
			findDoNextTask();
		}
	}	
}


function createXMLHttpRequest()
{
	if(window.ActiveXObject)
	{
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if(window.XMLHttpRequest){
		xmlHttp = new XMLHttpRequest();
	}		
}

function getKeyValue(key,inputString)
{
	var keyArray = inputString.split('*,*');
	for(i in keyArray)
	{
		var kv = keyArray[i].split('*=*');
		if(kv[0] == key){
			return kv[1];
		}
	}
	return -1;
}

function showRule(val)
{
	if(debugging)
		document.getElementById('logicDisplay').innerHTML = 'Fired rule:  ' + val;
}

//-------------------------------------------------------------------------------------------------------------

function validate()
{
			var formToCheck = document.forms.formToCheck;
		
			if(formToCheck.firstName.value.length < 1)
			{
				alert('A first name is necessary.');
				return false;
			} 
			if(formToCheck.lastName.value.length < 2)
			{
				alert('A last name is necessary.');
				return false;
			} 
			if(formToCheck.address1.value.length < 2)
			{
				alert('An address is necessary.');
				return false;
			} 
			if(formToCheck.city.value.length < 3)
			{
				alert('A city is necessary.');
				return false;
			} 
			if(formToCheck.state.value.length < 2)
			{
				alert('A state is necessary.');
				return false;
			} 
			if(formToCheck.country.value.length < 2)
			{
				alert('A country is necessary.');
				return false;
			}
			if(formToCheck.postcode.value.length < 2)
			{
				alert('A postal code is necessary.');
				return false;
			}			
		if(document.getElementById('pwInstruct').className == 'hideIt')

		{
			if(!passwordWasChanged || formToCheck.newPassword.value.length < 5 || formToCheck.newPassword.value.length > 16)
			{
				alert('Your password must be between 5 and 16 characters long.');
				return false;
			}
		}
			if(formToCheck.email1.value != formToCheck.email2.value || formToCheck.email1.value.length < 5)

			{
				alert('The two entries of your email address are required and must be the same. Please correct them.');
				return false;
			}

			return true;																
}

//	var profChecked = '';
//	var learnedFromChecked = '';
function validateMedProf()
{	
			for(i=0;i <document.formMedProf.prof.length;i++)
			{
				if(document.formMedProf.prof[i].checked == true)
				{
					subscr.profession = document.formMedProf.prof[i].value;					
					break;
				}						
			}
			if(!subscr.profession)
			{
				alert('Please provide information about your profession.');
				return false;
			}
			
			for(i=0;i<document.formMedProf.learnedFrom.length;i++)
			{
				if(document.formMedProf.learnedFrom[i].checked)
				{
					subscr.learnedFrom = document.formMedProf.learnedFrom[i].value;
					break;
				}						
			}
			if(!subscr.learnedFrom)
			{
				alert('Please provide information about how you learned about GeneMedRx.');
				return false;
			}
			if(!document.formMedProf.attestMedical.checked)
			{
				alert('You have not affirmed your intended use of the trial subscription. (Last item on the page.)');
				return false;
			}			
	return true;
}
//---------------------------------------------------------------------

	function validateCardAddress()
		{
			var formToCheck = document.forms.formA;
			if(formToCheck.patientFirstName.value.length < 1)
			{
				alert('A first name is necessary.');
				return false;
			} 
			if(formToCheck.patientLastName.value.length < 1)
			{
				alert('A last name is necessary.');
				return false;
			} 			
			if(formToCheck.x_address.value.length < 2)
			{
				alert('An address is necessary.');
				return false;
			} 
			if(formToCheck.billingCity.value.length < 3)
			{
				alert('A city is necessary.');
				return false;
			} 
			if(formToCheck.billingState.value.length < 2)
			{
				alert('A state abbreviation is necessary.');
				return false;
			}
			if(formToCheck.billingZip.value.length < 2)
			{
				alert('A Zip code (postal code) is necessary.');
				return false;
			}
			if(formToCheck.x_phone.value.length < 7)
			{
				alert('A telephone number is necessary.');
				return false;
			}
			if(formToCheck.billingCountry.value.length < 2)
			{
				alert('A country is necessary.');
				return false;
			}				
			return true;																
		}

var qsParm = new Array();

function infoSame()
{
	document.getElementById('patientFirstName').value = subscr.firstName = document.getElementById('firstName').value;
	document.getElementById('patientLastName').value = subscr.lastName = document.getElementById('lastName').value;
	document.getElementById('x_address').value = document.getElementById('address1').value + ' ' + document.getElementById('address2').value;
	document.getElementById('billingCity').value = subscr.city = document.getElementById('city').value;
	document.getElementById('billingState').value = subscr.state = document.getElementById('state').value;
	document.getElementById('billingZip').value = subscr.postcode = document.getElementById('postcode').value;
	document.getElementById('billingCountry').value = subscr.country = document.getElementById('country').value;
	document.getElementById('x_phone').value = subscr.telephone = document.getElementById('telephone').value;
	document.getElementById('patientFirstName').focus();	
}

function sendEmail()
{
		window.location.href ="mailto:KAshcraft@genelex.com?subject=GeneMedRx registration problem";
}

function setupPricePage()
{
		show('d_11');   // price list
//		show('d_11');   // price list
//		alert('price page showing??');
		var memText = '';
		var oneYearPrice = '199.00';
		var twoYearPrice = '348.00';
		var twoYearSaving = 'Save $50 per person over one year price!';
		var oneYearSaving = '';
		switch(subscr.catagory)
		{
			case 'AAPN':
				memText = '<br>As a member of the ' + interpretCatagory() + ' you save 25% on a one year subscription - more on a two year. A regular one year subscription is $' + oneYearPrice;
				oneYearPrice = '149.00';
				oneYearSaving = 'Save $50.00 per person!';
				twoYearPrice = '261.00';
				twoYearSaving = 'Save $137.00 per person!';
			break;
			case 'alaskaNurses':
				memText = '<br>As a member of the ' + interpretCatagory() + ' you save 25% on a one year subscription - more on a two year. A regular one year subscription is $' + oneYearPrice;
				oneYearPrice = '149.00';
				oneYearSaving = 'Save $50.00 per person!';
				twoYearPrice = '261.00';
				twoYearSaving = 'Save $137.00 per person!';
			break;
			case 'labelMe':
				memText = '<br>As a client of ' + interpretCatagory() + ' you save over 12% on a one or two year subscription. A regular one year subscription is $' + oneYearPrice;
				oneYearPrice = '175.00';
				oneYearSaving = 'Save $24.00 per person!';
				twoYearPrice = '330.00';
				twoYearSaving = 'Save $68.00 per person!';
			break;
			case 'DrBill':
				memText = '<br>As a client of ' + interpretCatagory() + ' you save over 12% on a one or two year subscription. A regular one year subscription is $' + oneYearPrice;
				oneYearPrice = '175.00';
				oneYearSaving = 'Save $24.00 per person!';
				twoYearPrice = '330.00';
				twoYearSaving = 'Save $68.00 per person!';
			break;

}
		if(subscr.subscrType == '0')
			document.getElementById('referSpan').className = 'hideIt';
	//	document.getElementById('membershipText').innerHTML = memText;
		document.getElementById('oneYearPrice').innerHTML = oneYearPrice;
		document.getElementById('oneYearSaving').innerHTML = oneYearSaving;
		document.getElementById('p1').value = oneYearPrice;
		document.getElementById('twoYearPrice').innerHTML = twoYearPrice;
		document.getElementById('twoYearSaving').innerHTML = twoYearSaving;
		document.getElementById('p2').value = twoYearPrice;
		if(subscr.daysLeft && subscr.daysLeft > 0)
			document.getElementById('daysLeft').innerHTML = 'Your subscription has ' + subscr.daysLeft + ' days left. Choose the renewal type you prefer.<br>';
}

function affiliate(id)
{
	if(document.getElementById(id).checked)
	{
		subscr.affiliateOrgName = id;
		subscr.showAffilPage = true;
		document.getElementById('groups').className = 'hideIt';
		findDoNextTask();
	}
	else
	{
		subscr.affiliateOrgName = undefined;
		subscr.affiliationAsserted = undefined;
		subscr.catagory = undefined;
		findDoNextTask();
	}
}

function recordCatagory()
{
	switch(subscr.affiliateOrgName)
	{
			case "Association of Advanced Practice Nurses":
				subscr.catagory = 'AAPN';
				break;
			case "Alaska Nurse Practioner Association":
				subscr.catagory = 'alaskaNurses';
				break;
			case "Label Me Sane":
				subscr.catagory = 'labelMe';
				break;
			case "Dr Bill Code: Understanding Brain Recovery":
				subscr.catagory = 'DrBill';
				break;
			default:
				subscr.catagory = undefined;
	}
/*	if(subscr.affiliateOrgName == "Association of Advanced Practice Nurses")
	{
		subscr.catagory = 'AAPN';
		return;
	}
	if(subscr.affiliateOrgName == "Alaska Nurse Practioner Association")
	{
		subscr.catagory = 'alaskaNurses';
		return;
	}
	if(subscr.affiliateOrgName == "Label Me Sane")
	{
		subscr.catagory = 'labelMe';
		return;
	}
//	if(subscr.affiliateOrgName == undefined)
	subscr.catagory = undefined;
*/
}
function interpretCatagory()
{
	switch(subscr.catagory)
	{
		case 'AAPN':
			return "Association of Advanced Practice Nurses";
			break;
		case 'alaskaNurses':
			return "Alaska Nurse Practioner Association";
			break;			
		case 'labelMe':
			return "Label Me Sane";
			break;
		case 'DrBill':
			return "Dr Bill Code: Understanding Brain Recovery";
			break;
	}	
	return false;
}

function logInSetup()
{
	if(parent.guestUser){
	parent.document.getElementById('loginDiv').className= 'right c2';
	parent.document.getElementById('logInText').innerHTML = '';	
	parent.document.getElementById('logoutDiv').className = 'hideIt c2';
	parent.guestUser=false;
	}
	parent.document.getElementById('email').value = subscr.email;
	parent.document.getElementById('password').value = subscr.password;
	parent.document.getElementById('saveLoginInfo').checked = true;  // Insure saving of log in info
	parent.setCookie('loginPreference','no',1500);  // Insure saving of log in info
	parent.gettingStartedSuite(true);  // New User windows
}

function getParentLoginInfo()
{
	if(!parent.logInDone)
		return;
	try
	{
		subscr.email = parent.document.getElementById('email').value;
		subscr.password = parent.document.getElementById('password').value;
	}
	catch(e)
	{
		;
	}
}

function med_nonMed(type)
{
	if(type == 'non')
	{
		document.getElementById('non-medicalGoals').className = 'showIt';
		document.getElementById('medicalGoals').className = 'hideIt';
		
		}
	else
	{
		document.getElementById('non-medicalGoals').className = 'hideIt';
		document.getElementById('medicalGoals').className = 'showIt';
	}	
} 

function validateStudent()
{
	var nme = document.getElementById('school').value;
	if(nme.length < 4)
	{
		alert('The name of your school is required.');
		return false;
	}
	subscr.schoolName = nme;
	
	var loc = document.getElementById('schoolLocation').value;
	if(loc.length < 2)
	{
		alert('The location of your school is required.');
		return false;
	}
	subscr.schoolLocation = loc;
	var yr = document.getElementById('schoolYear').value;
	var yrN = yr -0;
	if(yrN < 07 || yrN > 15)
	{
		alert('The year of your anticipated graduation seems wrong.');
		return false;
	}
	var mo = document.getElementById('schoolMonth').value;		
	if(mo -0 < 1 || mo -0 > 12)
	{
		alert('The month of your anticipated graduation seems wrong.');
		return false;
	}
	if(mo.length < 2)
		mo = '0' + mo;
	subscr.graduationTime = mo + '20' + yr;

	for(i=0;i<document.studentForm.learnedFromStudent.length;i++)
	{
		if(document.studentForm.learnedFromStudent[i].checked)
		{
			subscr.learnedFrom = document.studentForm.learnedFromStudent[i].value;
			break;
		}						
	}
	if(!subscr.learnedFrom)
	{
		alert('Please provide information about how you learned about GeneMedRx.');
		return false;
	}
	if(!document.studentForm.attestMedical.checked)
	{
		alert('You have not affirmed status as a student. (Last item on the page.)');
		return false;
	}
	subscr.studentQualificationAsserted = true;
	return true;
}

document.onkeypress = keyhandler;
function keyhandler(e)
{
    if(!keyHandlerStatus)
    {
        return;
    }
     var browserName=navigator.appName;
     if (browserName=="Microsoft Internet Explorer")
    {
        key = window.event.keyCode;
    }
    else
    {
        key = e.which;
    }
    if(key == 13)
    {
		next();
     	return false;   // Keeps return from performaing delete if delete button is highlighted when Enter is hit.
    }
}

function qs() 
{
        var query = window.location.search.substring(1);
        var parms = query.split('&');
        for (var i=0; i<parms.length; i++) 
        {
                var pos = parms[i].indexOf('=');
                if (pos > 0) 
                {
                        var key = parms[i].substring(0,pos);
                        var val = parms[i].substring(pos+1);
                        qsParm[key] = val;
                }
        }
}

function warningRead(span)  // called by _15 _20 student and med demo 
{
	if(parent.exTask == 'medDem') // || parent.exTask == 'dnaTestingFin')
	{
//		alert('in warning inner');
		parent.document.getElementById('loginDiv').className= 'right c2';
//		alert(parent.document.getElementById('gmxMenu').className);
//		Loadd = 0;
//		parent.document.getElementById('gmxMenu').className= 'showIt';
//		alert(parent.document.getElementById('gmxMenu').className);
		document.getElementById(span).className = 'showIt';	
//		parent.Go();
		return;
	}
	document.getElementById(span).className = 'showIt';	
//	Go();
	logInSetup();
}

function validateReferal()
{
	var name = document.getElementById('referal_name').value;
	var email = document.getElementById('referal_email').value;
	if(name == '' && email == '')
		return false;
	subscr.referal_first_name = name;
	subscr.referal_email = email;		
	return true;
}

function processReferred()
{
	var fname = document.getElementById('referal_first_name').value;
	var lname = document.getElementById('referal_last_name').value;
	var email = document.getElementById('referal_email').value;
	if(lname == '' && email == '')
	{
		alert('I don\'t see a name or email of the referring person.');
		return;
	}
//	subscr.referal__name = name;
//	subscr.referal_email = email;
	var param = 'referringEmail=' + email + '&referal_first_name=' + fname + '&referal_last_name=' + lname +'&referal_email=' + email;			
	sendAjax('referalName',param);
}

function showGoal(goal)
{
	var text;
	switch(goal)
	{
		case 'buyExt':
			text = 'Buy or Extend a Subscription';
			break;
		case 'studentMedical':
			text = 'Free Medical Student Subscription';
			break;		
		case 'studentNursing':
			text = 'Free Nursing Student Subscription';
			break;		case 'studentRedident':
		case 'studentPharmacy':
			text = 'Free Pharmacy Student Subscription';
			break;
		case 'update':
			text = 'Update Registration Information';
			break;
		case 'demo':
			text = 'Get a Trial Subscription';
			break;
		case 'LMS':
			text = 'Register Label Me Sane Client';
			break;
		case 'activateMed':
			text = 'Activate DNA Testing Subscription';
			break;
		case 'activateNonMed':
			text = 'Activate Subscription';
			break;			
		case 'tour':
			text = 'Tour Program, See Examples';
			break;
		case 'buyExtNm':
			text = 'Purchase Subscription';
			break;			
			default:
			text = 'Learn What\'s Wanted';
			

	}
	document.getElementById('goalDiv').innerHTML = '<h2>Current Task: ' + text + '</h2>';
}	
	
function getIFrameDoc(id) 
{			
    var iframe =  document.getElementById(id);
	var  doc = (iframe.contentWindow || iframe.contentDocument || iframe.document);
    if (doc.document) {
                doc = doc.document;
    }
    return  doc;	
}
	
function isPageEmbedded()
{
//	alert(parent.document.title);
	if(parent.document.title == 'GeneMedRx – A Tool to Improve Drug Safety')   // Relay needs to know if we ran from inside GeneMedRx
		document.getElementById('insideGmrx').value = 'yes';
}

function showHideFlipFlop(what)
{
	if(document.getElementById(what).className == 'showIt')	
		document.getElementById(what).className = 'hideIt';
	else
		document.getElementById(what).className = 'showIt';
}

function showFacts()
{
	if(debugging)
	{
		document.getElementById('fxAsertTxt').className = 'showIt';
		document.getElementById("factsDiv").innerHTML = subscr.fact();
	}	
}

function fxPlanNumberSelect()
{
	document.getElementById('d_25_2').checked = true;	
	var index = document.getElementById('familyPlan').selectedIndex;
	var num = document.getElementById('familyPlan').options[index].value;
	if(num < 2)
	{
		document.getElementById('dnaTestExt_Fx').innerHTML = '';
		return;
	}
	var total = (num -1) * 17.95;
	total += 23.95;
	total = total.toFixed(2);
	subscr.amount = total;
	total = ' Total $' + total;
	document.getElementById('dnaTestExt_Fx').innerHTML = total;	
	subscr.itemToPurchase = 'Family plan one year';
	subscr.quantityToPurchase = num;
	subscr.groupSubscription = num;
	subscr.catagory = 'fxGrp';							
	subscr.newDaysLeft = 366;
}

function setIndivSubscr()
{
	subscr.amount = 23.95;
	document.getElementById('familyPlan').selectedIndex = 0;
	document.getElementById('dnaTestExt_Fx').innerHTML = '';
	subscr.itemToPurchase = 'Individual subscription';
	subscr.quantityToPurchase = 1;							
	subscr.newDaysLeft = 366;
	subscr.catagory = 'IndNM';	
}

function passwordChanged()
{
	passwordWasChanged = true;
}

function validatePriorityCode()
{
	var pc = document.getElementById('promoCode').value;
	if(pc == '')
	{
		alert('It appears that you have not entered a code.');
		return;
	}
	var param = 'codeValue=' + pc;
	sendAjax('priorityCode',param);
	document.getElementById('priorityCodeText').className = 'save';
}





