// ***
// *** MemberMax AJAX Client Library
// *** (c)2008 Scott Muller, National Shoe Retailers Association
// ***

// <script src="/js/prototype.js" type="text/javascript"></script>
// <script src="/js/scriptaculous.js" type="text/javascript"></script>

var mmURL = 'http://www.nsra.org';
var mmDir = '/lib/';
var mmRenewLink = 'http://www.nsra.org/page2.php?i=join/Intro.html';

var mmLoggedIn = 0;
var mmOnResp = "";
var mmResponse = new Object();
	mmResponse.validLogin == 'false';
	mmResponse.sAuth = sA;
var mmUID = sUID;
var mmPWD = sPWD;
var mmRedirIF = "";
var mmDebug = "";
var mmLoginDiv = new Object();
var mmNameDiv = new Object();
var mmLoginFormDiv = new Object();
var mmIFRAME = document.createElement('iframe');

var isMO = 0;
var MODiv = new Object();
var MOqry = "";

var loginSubmitted = false;

// ***
// *** Add CSS
// ***

var headID = document.getElementsByTagName("head")[0];
var cssNode = document.createElement('link');
cssNode.type = 'text/css';
cssNode.rel = 'stylesheet';
cssNode.href = mmURL + mmDir + 'mm_ajax.css';
cssNode.media = 'screen';
headID.appendChild(cssNode);

function addMODiv(divid, divpage)
{
	isMO = 1;
	MODiv = document.getElementById(divid);
	MOqry = divpage;
	updateMODiv();

}

function updateMODiv()
{
	if (isMO == 0) return;
	
	var tmpr = mmURL + mmDir + "mm_fetch_mo.php?uid=" + mmUID + "&pwd=" + mmPWD + "&a=" + mmResponse.sAuth  + "&" + location.search.substring(1);
	tmpr = tmpr.split(" ").join("");
	//alert(location.search.substring(1));
	
	var r = new Ajax.Request(tmpr,
	{
		method: "get",
		onSuccess: parseMODivAjaxResponse,
		onFailure: mmAJAXFail,
		onException: mmAJAXFail
	});	
	//alert(mmURL + mmDir + "/mm_fetch_mo.php?uid=" + mmUID + "&pwd=" + mmPWD + "&a=" + mmResponse.sAuth + "&" + MOqry);
}

function parseMODivAjaxResponse(transport)
{
	var r = transport.responseText;
	MODiv.innerHTML = r;
	//alert("update");

}

function insertLoginDiv(lDiv)
{
	mmLoginDiv = document.getElementById(lDiv);
	mmLoginDiv.className = "mmLoginDiv";
	updateLoginDiv();
	
}

function insertNameDiv(nDiv)
{
	mmNameDiv = document.getElementById(nDiv);
	mmNameDiv.className = "mmNameDiv";
	updateNameDiv();
	
}

function updateNameDiv()
{
	if (!(isLoggedIn()))
		mmNameDiv.innerHTML = "";
	else
	{
		
		var innerh = "";
		
		innerh = "<p class='mmNameDiv'>" + mmResponse.Name;
		
		if (mmResponse.CompanyName != '')
			innerh += "&nbsp;-&nbsp;" + mmResponse.CompanyName;
		
		innerh += "<br>" + getMemberExp() + "</p>";
		mmNameDiv.innerHTML = innerh;
		
	}
	updateMODiv();

}

function getMemberExp()
{
	
	if (mmResponse.Expires)
	{
	var d = mmResponse.Expires;
	var today = new Date();
	var oneday = 1000 * 60 * 60 * 24;
	var datediff = d.getTime() - today.getTime();
	var diffdays = Math.round(datediff / oneday);
	if (diffdays <= 30)
	{
		// 30 Days left before expiration!
				
		return "<span style='color: #f70404;text-decoration: bold;'>Membership expires in <b>" +
			diffdays + " days!</b></span>&nbsp;&nbsp;<a class='mmNameDiv' href='" + mmRenewLink + "'>" +
			"Click here to renew</a>";
	}
	else
	{
		return "Membership expires in <i>" +
			diffdays + " days</i>. <a class='mmNameDiv' href='" + mmRenewLink + "'>" +
			"Click here to renew</a>";
	}
	}
	else
	{
		return "<b>MEMBERSHIP EXPIRED!</b>&nbsp;&nbsp;&nbsp;<a class='mmNameDiv' href='" + mmRenewLink + "'>" +
			"Click here to renew</a>";
	}
	
}

function updateLoginDiv()
{
	
	if (isLoggedIn())
		mmLoginDiv.innerHTML =
			"<a class='mmLoginDiv' href='#' onclick='loginClicked();'>Click here to logout</a>";
	else
		mmLoginDiv.innerHTML =
			"<a class='mmLoginDiv' href='#' onclick='loginClicked();'>Click here to login <span style='font-size: 8pt;'<i>(Members Only)</i></span></a>";
	updateNameDiv();
	
}

function loginClicked()
{
	if (isLoggedIn())
	{
		mmLogout();
		
		
	}
	else
	{
		showLoginForm();
	}

}

function mmLogout()
{
	mmRedir=1

	mmIFRAME.src = "";
	
	var tmpdate = new Date();
	
	mmIFRAME.src = "http://secure.nsra.org/4DCGI/logon/remotelogoff.html?" +
		"ReferenceURL=" + mmURL + mmDir + "mm_php_logoff.php";
	mmLoggedIn=0;
	mmResponse = new Object();
	mmResponse.validLogin = 'false';
	mmUID="";
	mmPWD="";
	sUID="";
	sPWD="";
	sA="";
	
}

function submitenter(myfield,e)
{
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;
	
	if (keycode == 13)
	{
		mmLoginSubmit();
		return false;
	}
	else
		return true;
		

}

function insertLoginFormDiv(lfDiv)
{
	mmLoginFormDiv = document.getElementById(lfDiv);
	mmLoginFormDiv.style.backgroundImage =  "url(http://www.nsra.org/images/NSRA_NEWWEB_fLogin.png)";
	mmLoginFormDiv.innerHTML =
		"<br><form id='mmLoginForm' action='#'>" +
		"<table class='mmLoginFormDiv' cellpadding=0 cellspacing=0>" +
		"<tr style='padding: 0px 0px 0px 0px;height: 25px;'><td align=left width=100>Username:</td><td><input type='text' id='mmLoginFormName' size='25' style='margin: 0px 0px 0px 0px;'></td></tr>" +
		"<tr style='padding: 0px 0px 0px 0px;height: 25px;'><td align=left>Password:</td><td><input type='password' id='mmLoginFormPass' size='25' style='margin: 0px 0px 0px 0px;' onKeyPress='return submitenter(this,event);'></td></tr>" +
		"<tr valign=top style='padding: 0px 0px 0px 0px;'><td valign=top colspan=2 align=left><br><a class='Forgot' href='#' onclick='showForgot();'>" +
		"<img src='/images/Forgot_Button.png' style='border-style: none;' align=left></a><a href='#' onclick='mmLoginSubmit();' class='Forgot'><img style='border-style: none;' src='http://www.nsra.org/images/Logon_Button.png'></a>" +
		"  <a href='#' onclick='mmLoginCancel();' class='Forgot'><img style='border-style: none;' src='http://www.nsra.org/images/Cancel_Button.png'></a>" +
		"</td></tr></table></form>";
	Position.clone(mmLoginDiv.id, mmLoginFormDiv.id,{setWidth: false, setHeight: false, 
		offsetTop: 25, offsetLeft: 0});	

}
function mmLoginCancel()
{
	clearLoginForm();
	hideLoginForm();
}
function mmLoginSubmit()
{
	
	loginSubmitted = true;
	
	mmSendAJAX(document.getElementById('mmLoginFormName').value,document.getElementById('mmLoginFormPass').value);
	mmLoginCancel();
	

}
function showForgot()
{
window.open('http://secure.assocadmin.com/fetch_login.php','', 
	'height=405,width=505,resizeable=no;menubar=no,status=no,toolbar=no');
	
}
function clearLoginForm()
{
	document.getElementById('mmLoginForm').reset();
}

function showLoginForm()
{
	new Effect.SlideDown(mmLoginFormDiv.id);
	
	//mmLoginFormDiv.style.display = 'block';
}
function hideLoginForm()
{
	new Effect.SlideUp(mmLoginFormDiv.id);
	
	//mmLoginFormDiv.style.display = 'none';
}
function isLoggedIn()
{
	var valid = new String(mmResponse.ValidLogin).split(" ").join("");		
	if (valid == "true")
		return true;
	else
		return false;
}

function mmLogin()
{
	//if(mmLoginDiv != Object())
	//{
	//	if(sUID != "" && sPWD != "")
	//	mmSendAJAX(sUID,sPWD);
	//}
//		eval(fFalse+"();");
//		
//

	

//	if (location.substring(1) != "")
//		;
	if (sUID != '' && sPWD != '')
		mmSendAJAX(sUID,sPWD);

	checkAutoLogin(location.search.substring(0,5));
}

function checkAutoLogin(l)
{
	var qry = location.search.substring(1);
	if (qry.substring(0,5) != "alogn")
		return;
		
	var q = qry.split(":");
		
	var qq = q[1].split("!");
	
	var uid = qq[0];
	var pwd = qq[1];
	
	mmSendAJAX(uid,pwd);

}

function mmSendAJAX(uid,pwd)
{
	// ***
	// *** function mmSendAJAX(uid, pwd, f, i)
	// *** uid 	= 	MemberMax Web Login
	// *** pwd 	= 	MemberMax Web Password
	// *** f	=	Function to execute on AJAX response...
	// ***			---	function((Object) Response)
	// ***			-------	Response->
	// ***			-----------	.ValidLogin ["true" or "false"]	
	// ***			-----------	.SessionID
	// ***			-----------	.RecordID
	// ***			-----------	.Name
	// ***			-----------	.MemberType
	// ***			-----------	.MemberTypeCode
	// ***			-----------	.BuyerType
	// ***			-----------	.BuyerTypeCode
	// ***			-----------	.Expires [Date()]
	// ***			-----------	.CompanyName
	// ***			-----------	.IsCompMember
	// ***			-----------	.Committees ...
	// ***			---------------	.length 	
	// ***			---------------	[].Name
	// ***			---------------	[].Key
	// ***
	
	
	//alert("updateLoginDiv();");
	mmUID = uid;
	mmPWD = pwd;
	
	if(document.getElementById('mmif') == null)
	{
		document.body.appendChild(mmIFRAME);
		mmIFRAME.style.display = "none";
		//mmIFRAME.setAttribute('onload','mmIFrameLoaded();');
		mmIFRAME.setAttribute('id','mmif');
		mmIFRAME.src = "";
		
		Event.observe($('mmif'),'onload', function (event) { mmIFrameLoaded(); });
		
	}
	
	mmIFRAME = document.getElementById('mmif');
	
	rec = new Ajax.Request("http://www.nsra.org/mm_soap_logon.php?lfor=Person&uid="+uid+"&pwd="+pwd,
	{
		method: "get",
		onSuccess: parseAjaxResponse
	});
}
	
function parseAjaxResponse(transport)
{
	//alert("parseAjaxResponse(transport)");
	
	mmResponse = new Object();
	
	response = transport.responseXML;
	var docroot = response.getElementsByTagName('LogonResponseDetail')[0];
		
	mmResponse.ValidLogin = docroot.getElementsByTagName('ValidLogin')[0].firstChild.data;
	
	
	
	if (mmResponse.ValidLogin == ' false ' && loginSubmitted == true)
	{
		alert('Invalid Login or Password');
		loginSubmitted = false;
		//mmResponse = null;
		
		exit;
	}
	
	if (docroot.getElementsByTagName('ExpiredDate')[0].firstChild.data != null)
	{
		var exptmp = docroot.getElementsByTagName('ExpiredDate')[0].firstChild.data;
		exptmp = exptmp.split(" ").join("");
		mmResponse.Expires = new Date(exptmp.slice(4,8),exptmp.slice(0,2),exptmp.slice(2,4));

		var now = new Date();
		
		if (loginSubmitted == true && mmResponse.Expires < now)
		{
			alert('Membership Expired');
			loginSubmitted = false;
			//mmResponse = null;
			exit;
		}
	}
	
	mmResponse.SessionID = docroot.getElementsByTagName('SessionID')[0].firstChild.data;
	mmResponse.RecordID = docroot.getElementsByTagName('RecordID')[0].firstChild.data;
	mmResponse.Name = docroot.getElementsByTagName('MemberName')[0].firstChild.data;
	mmResponse.MemberType = docroot.getElementsByTagName('MemberType')[0].firstChild.data;
	mmResponse.MemberTypeCode = docroot.getElementsByTagName('MemberTypeCode')[0].firstChild.data;
	mmResponse.BuyerType = docroot.getElementsByTagName('BuyerType')[0].firstChild.data;
	mmResponse.BuyerTypeCode = docroot.getElementsByTagName('BuyerTypeCode')[0].firstChild.data;
	mmResponse.IsCompMember = docroot.getElementsByTagName('IsCompMember')[0].firstChild.data;
		mmResponse.CompanyName = docroot.getElementsByTagName('CompanyName')[0].firstChild.data;
	mmResponse.sAuth = docroot.getElementsByTagName('SessionAuth')[0].firstChild.data;
	
	
	var tmp = docroot.getElementsByTagName('CommitteeInfo')[0].childNodes;
	var item = new Object();
	var objtmp = new Object();
	
	mmResponse.Committees = new Object();
	mmResponse.Committees.length = 0;
		
	for(var x = 0; x < tmp.length;x++)
	{
		mmResponse.Committees[mmResponse.Committees.length] = new Object();
			
		try {
			mmResponse.Committees[mmResponse.Committees.length].Name =
			tmp[x].getElementsByTagName('CommitteeName')[0].firstChild.data;
			mmResponse.Committees[mmResponse.Committees.length].Key =
			tmp[x].getElementsByTagName('CommitteeKey')[0].firstChild.data;
			mmResponse.Committees.length++;
			} catch(e) {} finally {}
		
		
			
	}
	
	
	mmLoginIFrame();
	
}

function mmLoginIFrame()
{
	//alert("mmLoginIFrame()");
	
	mmIFRAME.src = "";
	
	var tmpdate = new Date();
	
	mmIFRAME.src =
		"http://secure.nsra.org/4DCGI/logon/soaplogon_new.html?Action=SoapRedirect" + 
		"&SessionID=" + 
		mmResponse.SessionID.split(" ").join("") + "&RememberMe=Yes&Time=" + tmpdate.getTime();
	//alert(mmDebug);
	
	//mmLogonCompany();
	mmRedirIF = 1;
	
	
	
}

function mmIFrameLoaded()
{
	//alert("mmIFrameLoaded()");
	//alert(mmDebug);
	var tmpdate = new Date();
	
	//if (isLoggedIn())
	//mmIFRAME.src = mmDir + 'mm_set_php_session.php?uid=' + mmUID + '&pwd=' + mmPWD + '&Time=' + tmpdate.getTime();
	if (mmRedirIF != "")
	{
		mmIFRAME.src = mmURL + mmDir + 'mm_set_php_session.php?uid=' + mmUID + '&pwd=' + mmPWD + '&Time=' + tmpdate.getTime();
		mmRedirIF = "";
	}
	else
	{
		
		updateLoginDiv();
	}
	
}


function mmLogonCompany ()
{
	mmDebug = "mmLogonCompany()";
	
	rec2 = new Ajax.Request("http://www.nsra.org/mm_soap_gate_con.php?uid="+mmUID+"&pwd="+mmPWD,
	{
		method: "get",
		onSuccess: parseAjaxResponseC,
		onFailure: mmAJAXFail,
		onException: mmAJAXFail
	});	

	
}

function mmAJAXFail(transport) { alert("ERROR:" + mmDebug); eval(mmOnResp); }
	
function parseAjaxResponseC(transport)
{
	mmDebug = "parseAjaxResponseC(transport)";
	
	response = transport.responseXML;
	var docroot = response.getElementsByTagName('Response')[0];
		
	cUID = docroot.getElementsByTagName('WebLogon')[0].firstChild.data;
	cPWD = docroot.getElementsByTagName('WebPassword')[0].firstChild.data;
	
	
	recc = new Ajax.Request("http://www.nsra.org/mm_soap_logon.php?lfor=Company&uid="+cUID+"&pwd="+cPWD,
	{
		method: "get",
		onSuccess: mmCLoginResp,
		onFailure: mmAJAXFail,
		onException: mmAJAXFail
	});
	
}
function mmCLoginResp(transport) 
{ 
	tmpdate = new Date();
	mmDebug = "mmCLoginResp(transport)";
	
	response = transport.responseXML;
	
	var docroot = response.getElementsByTagName('LogonResponseDetail')[0];
		
	mmResponse.CSessionID = docroot.getElementsByTagName('SessionID')[0].firstChild.data;
	mmIFRAME.src = "http://secure.nsra.org/4DCGI/logon/soaplogon_new.html?Action=SoapRedirect" + 
		"&SessionID=" + 
		mmResponse.CSessionID.split(" ").join("") + "&RememberMe=Yes&Time=" + tmpdate.getTime();
			
}


