/**
 * @author jlowman
 */


function cleanInp(strToClean)
{
	//alter
	strToClean = strToClean.replace(/\'/g, '`');
	
	//remove
	strToClean = strToClean.replace(/\%/g, '');
	strToClean = strToClean.replace(/\#/g, '');
	strToClean = strToClean.replace(/\&/g, '');
	strToClean = strToClean.replace(/\*/g, '');
	
	return(strToClean);
}

function doLogin()
{
	showFloater('Loading');
	//set Vars
	var Email = cleanInp(document.getElementById('lgnEmail').value);
	var Pass = cleanInp(document.getElementById('lgnPwd').value);
	
	//Make sure there aren't any blanks
	if(Email == '' || Pass == '')
	{
		alert('Both Email and Password must be filled out.');
		hideFloater('Loading');
		return(false);
	}

	//validate Email Address
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (!filter.test(Email))
	{
		alert("Please input a valid email address.")
		hideFloater('Loading');
		return(false);
	}
	
	var res = checkCred(Email, Pass);
	
	if(res != 'OK')
	{
		alert(res);
		hideFloater('Loading');
		return(false);
	}
	hideFloater('Loading');
}

function checkCred(Email, Pass)
{
	var LeadID = getLeadID(Email);

	var strSearchUrl = '';
	strSearchUrl += 'checks.asp';
	strSearchUrl += '?mode=Cred'
	strSearchUrl += '&email=' + Email;
	strSearchUrl += '&pass=' + Pass;
	var res = sjaxCall(strSearchUrl);
	
	var ret = '';
	
	switch (res)
	{
		case 'InactiveEvent':
			ret = 'That Password is not active.';
			break;
		case 'InactiveUser':
			ret = 'That Account is not active.';
			break;
		case 'NewUser':
			ret = 'OK';
			if(!logVisit(Email, Pass, LeadID, 'Initial Login')) ret = 'Error: Login Failed.  Please try again later.';
			if(!saveLead('Insert', Email)) ret = 'Error: Login Failed.  Please try again later.';
			if(ret == 'OK')
			{
				LeadID = getLeadID(Email);
				if(LeadID != 'DNE')
				{
					if(!saveLeadXEvent(LeadID, Pass)) ret = 'Error: Login Failed.  Please try again later.';
				}
				else
				{
					ret = 'Error: Login Failed. Please try again later.';
				}
				
				if (ret == 'OK') 
				{
					document.getElementById('infoLeadID').value = LeadID;
					document.getElementById('infoEmail').value = Email;
					showFloater('InfoForm');
				}
			}
			break;
		case 'RetUserNewEvent':
			ret = 'OK';
			if(!logVisit(Email, Pass, LeadID, 'User Returning for New Event')) ret = 'Error: Login Failed.  Please try again later.';
			if(!saveLeadXEvent(LeadID, Pass)) ret = 'Error: Login Failed.  Please try again later.';
			if (isMissingInfo(LeadID)) 
			{
				document.getElementById('infoLeadID').value = LeadID;
				document.getElementById('infoEmail').value = Email;
				showFloater('InfoForm');
			}
			else
			{
				window.location = 'Main.html?lid=' + LeadID;
			}
			break;
		case 'RetUserRetEvent':
			ret = 'OK';
			if(!logVisit(Email, Pass, LeadID, 'User Returning for Existing Event')) ret = 'Error: Login Failed.  Please try again later.';
			if (isMissingInfo(LeadID)) 
			{
				document.getElementById('infoLeadID').value = LeadID;
				document.getElementById('infoEmail').value = Email;
				showFloater('InfoForm');
			}
			else
			{
				window.location = 'Main.html?lid=' + LeadID;
			}
			break;
		default : ret = 'Invalid Login.';
	}
	return(ret);
}

function submitLeadForm()
{
	if(!checkLeadForm()) return(false);
	if(!saveLead('update', '')) return(false);
	window.location = 'Main.html?lid=' + document.getElementById('infoLeadID').value;
}

function checkLeadForm()
{
		var err = false;
		var msg = '';

		var LeadID = cleanInp(document.getElementById('infoLeadID').value);
		var Email = cleanInp(document.getElementById('infoEmail').value);
		var FirstName = cleanInp(document.getElementById('infoFirstName').value);
		var LastName = cleanInp(document.getElementById('infoLastName').value);
		var Position = cleanInp(document.getElementById('infoPosition').value);
		var Responsibility = cleanInp(document.getElementById('infoResponsibility').value);
		var Agency = cleanInp(document.getElementById('infoAgency').value);
		var State = cleanInp(document.getElementById('infoState').value);
		var OtherCountry = cleanInp(document.getElementById('infoOtherCountry').value);
		var Phone = cleanInp(document.getElementById('infoPhone').value.replace(/-/g, ''));
		var OkToContact = document.getElementById('infoOkToContact').value;
		
		if(LeadID == '')
		{
			//something is wrong
			alert('An error has occured with the website.  Please try again later.');
			return(false);
		}
		
		//check for empty fields
		if(isBlank(FirstName)) msg += 'First Name, ';
		if(isBlank(LastName)) msg += 'Last Name, ';
		if(isBlank(Position)) msg += 'Position, ';
		if(isBlank(Responsibility)) msg += 'Responsibility, ';
		if(isBlank(Agency)) msg += 'Agency, ';
		if(isBlank(State) && isBlank(OtherCountry)) msg += 'State or Other Country, ';
//		if(isBlank(Phone)) msg += 'Phone, ';
		
		if (msg.length > 0) 
		{
			msg = Left(msg, msg.length - 2);
			msg = msg + ' are required fields.  Please enter them in order to proceed.';
			err = true;
			alert(msg);
		}
		
		//check for incorrect inputs
		if( (Phone.length > 0) && (isNaN(Phone) || Phone.length != 10) )
		{
			err = true;
			alert('Please enter a valid Phone # using only nubers and dashes.');
		}
		
		if(err) return(false);
		
		return(true);
}

function isBlank(Item)
{
	Item = Item.split(' ').join('');
	if(Item == '')
	{
		return(true);
	}
	return(false);
}

function isMissingInfo(LeadID)
{
	var strSearchUrl = '';
	strSearchUrl += 'checks.asp';
	strSearchUrl += '?mode=InfoMissing';
	strSearchUrl += '&leadid=' + LeadID;
	var res = sjaxCall(strSearchUrl);
	if(res != 'OK') return(true);
	return(false);
}

function getLeadID(Email)
{
	var LeadID = '';
	var strSearchUrl = '';
	strSearchUrl += 'checks.asp';
	strSearchUrl += '?mode=GetLeadID';
	strSearchUrl += '&email=' + Email;
	LeadID = sjaxCall(strSearchUrl);
	LeadID = LeadID.replace('{', '');
	LeadID = LeadID.replace('}', '');
	return(LeadID);
}

function saveLead(Mode, Email)
{
	//Kill Invalid calls.
	if(Mode == '') return(false);

	var strSearchUrl = '';
	strSearchUrl += 'saveLead.asp';
	strSearchUrl += '?mode=' + Mode;
	
	if(Mode == 'Insert' || Mode == 'insert')
	{
		if(Email == '') return(false);
		strSearchUrl += '&email=' + Email;
	}
	else if(Mode == 'update')
	{
		var LeadID = cleanInp(document.getElementById('infoLeadID').value);
		//var Email = cleanInp(document.getElementById('infoEmail').value);
		var FirstName = cleanInp(document.getElementById('infoFirstName').value);
		var LastName = cleanInp(document.getElementById('infoLastName').value);
		var Position = cleanInp(document.getElementById('infoPosition').value);
		var Responsibility = cleanInp(document.getElementById('infoResponsibility').value);
		var Agency = cleanInp(document.getElementById('infoAgency').value);
		var State = cleanInp(document.getElementById('infoState')[document.getElementById('infoState').selectedIndex].value);
		var OtherCountry = cleanInp(document.getElementById('infoOtherCountry').value);
		var Phone = cleanInp(document.getElementById('infoPhone').value.replace(/-/g, ''));
		var OkToContact = document.getElementById('infoOkToContact').checked;
		
		if(OkToContact)
		{
			OkToContact = 1;
		}
		else
		{
			OkToContact = 0;
		}

		//set up inputs
		strSearchUrl += '&leadid=' + LeadID;
		strSearchUrl += '&email=' + '';
		strSearchUrl += '&firstname=' + FirstName;
		strSearchUrl += '&lastname=' + LastName;
		strSearchUrl += '&position=' + Position;
		strSearchUrl += '&responsibility=' + Responsibility;
		strSearchUrl += '&agency=' + Agency;
		strSearchUrl += '&state=' + State;
		strSearchUrl += '&othercountry=' + OtherCountry;
		strSearchUrl += '&phone=' + Left(Phone, 3) + '-' + Right(Left(Phone, 6), 3) + '-' + Right(Phone, 4);
		strSearchUrl += '&oktocontact=' + OkToContact;
		
	}
	
	var res = sjaxCall(strSearchUrl);
	if(res > 0)
	{
		return(true);
	}
	else
	{
		return(false);
	}
}

function saveLeadXEvent(LeadID, Pass)
{
	var strSearchUrl = '';
	strSearchUrl += 'saveLeadXEvent.asp';
	strSearchUrl += '?mode=insert';
	strSearchUrl += '&leadid=' + LeadID;
	strSearchUrl += '&eventid=' + Pass;
	
	var res = sjaxCall(strSearchUrl);
	if(res > 0)
	{
		return(true);
	}
	else
	{
		return(false);
	}
}

function logVisit(Email, EventID, LeadID, Action)
{
	var strSearchUrl = '';
	strSearchUrl += 'saveLogVisit.asp';
	strSearchUrl += '?mode=visit';
	strSearchUrl += '&email=' + Email;
	strSearchUrl += '&eventid=' + EventID;
	strSearchUrl += '&leadid=' + LeadID;
	strSearchUrl += '&action=' + Action;
	
	var res = sjaxCall(strSearchUrl);
	if(res > 0)
	{
		return(true);
	}
	else
	{
		return(false);
	}
}

//for Main.html Only!
function Main()
{
	var LeadID = '';
	LeadID = querySt('lid');
	document.getElementById('leadInfoID').value = LeadID;
	if(isMissingInfo(LeadID)) window.location = 'Login.html';
	TabClick('mnuMain');
}

function LoadHome()
{
	ClearContent();
}

function LoadPatent()
{
	ClearContent();
	var strHtml = '<iframe src="/mda/lesi_patent_announcement.pdf" frameborder="0" style="width:100%;height:540px;float:left;padding-top:10px;"></iframe>';
	document.getElementById('cntPatent').innerHTML = strHtml;
}

function LoadOphqReports()
{
	ClearContent();
	var strHtml = '<iframe src="/mda/onlinephq_reports.pdf" frameborder="0" style="width:100%;height:540px;float:left;padding-top:10px;"></iframe>';
	document.getElementById('cntOphqReports').innerHTML = strHtml;
}

function LoadPHQArticle()
{
	ClearContent();
	var strHtml = '<iframe src="/mda/PHQArticle.pdf" frameborder="0" style="width:100%;height:540px;float:left;padding-top:10px;"></iframe>';
	document.getElementById('cntPHQArticle').innerHTML = strHtml;
}

function LoadWalkthrough()
{
	var strHtml = '<iframe src="/mda/phqdemo.swf" frameborder="0" style="width:100%;height:540px;float:left;vertical-align:top;padding-top:10px;"></iframe>';
	document.getElementById('cntWalk').innerHTML = strHtml;
}

function ClearContent()
{
	document.getElementById('cntWalk').innerHTML = '';
}

function colorChange(element)
{
	var cName = element.className;
	if(Right(cName, 3) == 'Alt')
	{
		element.className = Left(cName, cName.length - 3);
	}
	else
	{
		element.className = cName + 'Alt';
	}
}

function TabClick(tabID)
{
	var element = document.getElementById('MainContent');
	for (var i=0;i<element.childNodes.length;i++) 
	{
		if(Left(element.childNodes[i].id,3) == 'cnt')
		{
			if(tabID.replace('mnu','cnt') == element.childNodes[i].id)
			{
				element.childNodes[i].style.height=window.screen.height + 'px';
				element.childNodes[i].style.width="100%";
				element.childNodes[i].style.visibility="visible";
				document.getElementById('TitleLabel').innerHTML = document.getElementById(tabID).innerHTML;
			}
			else
			{
				element.childNodes[i].style.height="0px";
				element.childNodes[i].style.width="0px";
				element.childNodes[i].style.visibility="hidden";
			}
		}
	}
}
