var xmlHTTP_VERSIONS = new Array('MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHttp');
var xml_text;
var ajax_output;
var strHref = window.location.href;
var ajax_path;

if (strHref.indexOf("www") > -1 )
		{
				ajax_path="http://www.iahperd.org/handout/";
		}
	else
		{
				ajax_path="http://iahperd.org/handout/";
		}	

var ERR_IMG = '<img src=' + ajax_path + 'images/error.gif' + ' border=0 title="Error" align="absbottom" style="vertical-align: bottom" >';
var EXP_IMG = '<img src=' + ajax_path + 'images/expired.gif' + ' border=0 style="vertical-align: bottom" align="absbottom" >';
var OK_IMG = '<img src=' + ajax_path + 'images/ok.gif' + ' border=0 title="Ok/Saved" style="vertical-align: bottom" align="absbottom">';
var DUP_IMG = '<img src=' + ajax_path + 'images/dup.gif' + ' border=0 style="vertical-align: bottom" align="absbottom">';
var WRK_IMG = '<img src=' + ajax_path + 'images/working.gif' + ' border="0" style="vertical-align: bottom" align="absbottom">';
var LOADING_IMG = '<img src=' + ajax_path + 'images/loading.gif' + ' border=0 style="vertical-align: bottom" align="absbottom">';
var VALIDATE_IMG = '<img src=' + ajax_path + 'images/validate.gif' + ' border=0 style="vertical-align: bottom" align="absbottom">';
var SEARCHING_IMG = '<img src=' + ajax_path + 'images/searching.gif' + ' border=0 style="vertical-align: bottom" align="absbottom">';


ERROR_ON_PAGE = false;
// #####################################################################################################################################
// Initializes XMLHttpRequest Object ###################################################################################################
function GetXmlHttpObject()
{
	var xmlHttp=null;		
	try
	 {
	        xmlHttp = new XMLHttpRequest();
	 }

	catch(e)
	 {
	        for(var i=0; i<xmlHTTP_VERSIONS.length && !xmlHttp; ++i)
		 {
		        try
		        {
		        	xmlHttp = new ActiveXObject(xmlHTTP_VERSIONS[i]);
		        }
                        catch(e) {}
		 }
	 }

	 if(!xmlHttp)
	  {
	        alert('Error creating the XMLHttpRequest Object');
	        return;
	  }
	 else
	  {
	        return xmlHttp;
	  }
}
// ####################################################################################################################################
// PHP Ref#: Program/ajax_form_validate_email.php
function ajax_ValidateMembership()
     {
		xmlHttp_ValidateMembership=GetXmlHttpObject();
		if (xmlHttp_ValidateMembership==null)
	  	{
	  		alert ("Your browser does not support AJAX!");
	  		return;
	  	}
		
		var _id = document.getElementById('membership_id').value;
		var _email = document.getElementById('email').value;
		
		if(_email.length == 0)
		 {
			alert('Please enter a valid email address');
			return;
		 }
		
		if(ERROR_ON_PAGE)
		 {
			alert('There is one or more error, please fix then try again.');
			return;
		 }
		
		var url= ajax_path + "wrk/doValidateMembership.php?id=" +encodeURIComponent(_id) + "&email=" + encodeURIComponent(_email) + "&sid="+Math.random();

		xmlHttp_ValidateMembership.onreadystatechange= function() { state_ValidateMembership(_email) }; 
		xmlHttp_ValidateMembership.open("GET",url,true);
		xmlHttp_ValidateMembership.send(null);
     }

     function state_ValidateMembership(_email)
      {
		switch(xmlHttp_ValidateMembership.readyState)
		 {

			case 1:
			case 2:
			case 3:
				document.getElementById('div_membershipvalidationstat').innerHTML = WRK_IMG + "<br> Please wait ... ";
			break;

			case 4:
				var text_xml = xmlHttp_ValidateMembership.responseText;
				switch(text_xml)
				 {
					case "INVALID":
						document.getElementById('div_membershipvalidationstat').innerHTML = ERR_IMG + " Invalid membership number.";
					break;
					
					case "OK":
						document.getElementById('div_membershipvalidationstat').innerHTML = OK_IMG + " Thank you, an activation link was sent to your  " + _email + " email address.";
					break;
					
					case "ACTIVATED":
						document.getElementById('div_membershipvalidationstat').innerHTML = ERR_IMG + " Membership was previously activated.";
					break;
				 }
			break;
		 }

      }
// ####################################################################################################################################
function ajax_ActivateMembership()
     {
		xmlHttp_ActivateMembership=GetXmlHttpObject();
		if (xmlHttp_ActivateMembership==null)
	  	{
	  		alert ("Your browser does not support AJAX!");
	  		return;
	  	}
		
		var _id = document.getElementById('MEMBER_ID').value;
		var _email = document.getElementById('MEMBER_EMAIL').value;
		var _firstname = document.getElementById('MEMBER_FIRST_NAME').value;
		var _lastname = document.getElementById('MEMBER_LAST_NAME').value;

		if(_email.length == 0)
		 {
			 document.getElementById('div_membershipactivationstat').innerHTML = ERR_IMG + " Please enter a valid email address.";
			 return;
		 }

		if(_firstname.length == 0 || _lastname.length == 0)
		 {
			 document.getElementById('div_membershipactivationstat').innerHTML = ERR_IMG + " Please enter first and last name.";
			 return;
		 }

		var params = "MEMBER_ID=" + encodeURIComponent(_id) + "&MEMBER_EMAIL=" + encodeURIComponent(_email) + "&MEMBER_FIRST_NAME=" + encodeURIComponent(_firstname) + "&MEMBER_LAST_NAME=" + encodeURIComponent(_lastname) + "&sid=" + Math.random();


		var url= ajax_path + "wrk/doActivateMembership.php";

	    		xmlHttp_ActivateMembership.open("POST", url, true);
				xmlHttp_ActivateMembership.onreadystatechange=state_ActivateMembership;
				xmlHttp_ActivateMembership.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    		xmlHttp_ActivateMembership.setRequestHeader("Content-length", params.length);
	    		xmlHttp_ActivateMembership.setRequestHeader("Connection", "close");
				xmlHttp_ActivateMembership.send(params);
     }

     function state_ActivateMembership()
      {
		switch(xmlHttp_ActivateMembership.readyState)
		 {

			case 1:
			case 2:
			case 3:
				document.getElementById('div_membershipactivationstat').innerHTML = WRK_IMG + "<br> Please wait ... ";
			break;

			case 4:
				var text_xml = xmlHttp_ActivateMembership.responseText;
				switch(text_xml)
				 {
					case "OK":
						document.getElementById('div_membershipactivationstat').innerHTML = OK_IMG + " Your membership was activated. Your login username and password were sent to the email address above. You will be re-directed to the login page within 10 seconds.";	 
						setTimeout('window.location.href=\'http://iahperd.org/handout\'',10000);
					break;
					
					case "EXIST":
						document.getElementById('div_membershipactivationstat').innerHTML = ERR_IMG + " Email address already used by another user.";	 
					break;
					
					default:
						document.getElementById('div_membershipactivationstat').innerHTML = ERR_IMG + " An error occured while activating your memberhsip." +text_xml;	 
					break;
				 }
			break;
		 }

      }
// ####################################################################################################################################
// PHP Ref#: Program/ajax_form_validate_email.php
function ajax_ValidateEmail(_email)
{
		xmlHttp_ValidateEmail=GetXmlHttpObject();
		if (xmlHttp_ValidateEmail==null)
	  	{
	  		alert ("Your browser does not support AJAX!");
	  		return;
	  	}

		if(_email.value.length == 0)
		 {
			return false; 
		 }
		 
		var url= ajax_path + "wrk/doValidateEmail.php?email=" + encodeURIComponent(_email.value) +"&sid="+Math.random();

		xmlHttp_ValidateEmail.onreadystatechange=function() { state_ValidateEmail(_email.id) }; //state_ValidateEmail;
		xmlHttp_ValidateEmail.open("GET",url,true);
		xmlHttp_ValidateEmail.send(null);
}

function state_ValidateEmail(_obj)
{
	switch(xmlHttp_ValidateEmail.readyState)
	{
		case 1:
		case 2:
		case 3:
			document.getElementById(_obj).className= "validate";
		break;
	
		case 4:
			var xml_text = xmlHttp_ValidateEmail.responseText;
			if(xml_text == "ERR")
				{
					document.getElementById(_obj).className = "error";
					ERROR_ON_PAGE = true;
					alert('Invalid email address');
				}
			else
				{
					document.getElementById(_obj).className = "ok";
					ERROR_ON_PAGE = false;
				}
		break;
	}
}
// ####################################################################################################################################
// PHP Ref#: wrk/dosearch
function ajax_Search()
{
	xmlHttp_Search=GetXmlHttpObject();
	if (xmlHttp_Search==null)
		{
			alert ("Your browser does not support AJAX!");
			return;
		}

		var _search = $("#search_by").val();
		var _years = document.getElementById('years_list').value;
		if(_years.length == 0)
		 {
			alert('Please check year(s) you would like to search');
			return;
		 }
		
		
		var params = "SEARCH=" + encodeURIComponent(_search) + "&YEARS=" + encodeURIComponent(_years) + "&sid=" + Math.random();
		var url= ajax_path + "wrk/doSearch.php";
			xmlHttp_Search.open("POST", url, true);
			xmlHttp_Search.onreadystatechange= function() { state_Search("Search for " + _search + " in " + _years) }; //state_Search; //div_SearchParams
			xmlHttp_Search.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp_Search.setRequestHeader("Content-length", params.length);
			xmlHttp_Search.setRequestHeader("Connection", "close");
			xmlHttp_Search.send(params);
}

function state_Search(ser_param)
{
	switch(xmlHttp_Search.readyState)
		{
			case 1:
			case 2:
			case 3:
				//document.getElementById('search_results').innerHTML = SEARCHING_IMG;
				$('#search_results').html(SEARCHING_IMG);
			break;

			case 4:
				var text_xml = xmlHttp_Search.responseText;
				document.getElementById('search_results').innerHTML = text_xml;	 
				document.getElementById('div_SearchParams').innerHTML = ser_param;
				$('.ttip').tooltip({showURL: false, delay: 500});
			break;
		}
}

// ####################################################################################################################################
// PHP Ref#: wrk/dosearch
function ajax_InitSearch(_year)
{
	xmlHttp_InitSearch=GetXmlHttpObject();
	if (xmlHttp_InitSearch==null)
		{
			alert ("Your browser does not support AJAX!");
			return;
		}

		var params = "YEAR=" + encodeURIComponent(_year) + "&sid=" + Math.random();
		
		var url= ajax_path + "wrk/doInitSearch.php";
			xmlHttp_InitSearch.open("POST", url, true);
			xmlHttp_InitSearch.onreadystatechange=function() { state_InitSearch("Search results for " + _year) }; //state_Search; //div_SearchParams ;
			xmlHttp_InitSearch.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp_InitSearch.setRequestHeader("Content-length", params.length);
			xmlHttp_InitSearch.setRequestHeader("Connection", "close");
			xmlHttp_InitSearch.send(params);
}

function state_InitSearch(ser_param)
{
	switch(xmlHttp_InitSearch.readyState)
		{
			case 1:
			case 2:
			case 3:
				document.getElementById('search_results').innerHTML = SEARCHING_IMG;
			break;

			case 4:
				var text_xml = xmlHttp_InitSearch.responseText;
				document.getElementById('search_results').innerHTML = text_xml;	 
				document.getElementById('div_SearchParams').innerHTML = ser_param;
				$('.ttip').tooltip({showURL: false, delay: 500});
				$("#accordion").accordion({ header: "h3" });
			break;
		}
}
// ####################################################################################################################################
function ajax_Login()
{
		var _email = $("#membership_id").val();
		var _password = $('#membership_id_confirm').val();
		var params = "EMAIL=" + encodeURIComponent(_email) + "&PASSWORD=" + encodeURIComponent(_password) + "&sid=" + Math.random();

//alert(params);

		if(_email.length == 0 || _password.length == 0)
		 {
			 $('#div_membershiploginstat').html(ERR_IMG + " One or more missing field.");
			 return;
			 
		 }
	
		if(_email != _password)
		 {
			 $('#div_membershiploginstat').html(ERR_IMG + " Member id entries do not match.");
			 return;
		 }

		
		$('#div_membershiploginstat').html(WRK_IMG + " Please wait ....");
		var login = $.ajax({
								// Define ajax url
								
								url: "wrk/doLogin.php", 
								
								// Define ajax method
								type: "POST",
								
								// Prevent caching
								cache: false,
								
								// Pass paramaters to ajax object
								data: params,
								
								// Execute when ajax call was successful
								success: function(ajax)
											{
												  if(ajax == "OK")
												  {
														$('#div_membershiploginstat').html(OK_IMG + " Login was successfull.");	 
														setTimeout('window.location.href=\'http://iahperd.org/handout/wrk/search/search.php\'',3000);
	
												  }
												  else
												  {
													  $('#div_membershiploginstat').html(ERR_IMG + " Incorrect membership or inactive, please try again.");
												  }
											},
								// Execute when ajax call failed
								error: function(ajax)
											{
												alert('Error ' + ajax.responseText);	
											}
						});
}
// ####################################################################################################################################
function ajax_InitChangePassword()
{
		xmlHttp_InitChangePassword=GetXmlHttpObject();
		if (xmlHttp_InitChangePassword==null)
	  	{
	  		alert ("Your browser does not support AJAX!");
	  		return;
	  	}
			jsf_ShowObj('div_ChangePassword','yes'); 
			jsf_CenterObject('div_ChangePassword');
		var url = ajax_path + "wrk/doInitChangePassword.php";
			xmlHttp_InitChangePassword.open("GET", url, true);
			xmlHttp_InitChangePassword.onreadystatechange = state_InitChangePassword;
			xmlHttp_InitChangePassword.send(null);
}

function state_InitChangePassword()
{
	
	switch(xmlHttp_InitChangePassword.readyState)
		 {
			case 1:
			case 2:
			case 3:
				document.getElementById('div_ChangePassword').innerHTML = WRK_IMG + "<br> Loading Form ...";
			break;

			case 4:
	       		var xml_text = xmlHttp_InitChangePassword.responseText;
				document.getElementById('div_ChangePassword').innerHTML = xml_text;
			break;
		 }
}
// ####################################################################################################################################
function ajax_ChangePassword()
     {
		xmlHttp_ChangePassword=GetXmlHttpObject();
		if (xmlHttp_ChangePassword==null)
	  	{
	  		alert ("Your browser does not support AJAX!");
	  		return;
	  	}
		
		var _newpassword = document.getElementById('new_password').value;
		var _confirm_new_password = document.getElementById('confirm_new_password').value;


		if(_newpassword.length == 0 || _confirm_new_password.length == 0)
		 {
			 document.getElementById('div_password_stat').innerHTML = ERR_IMG + " Please enter new password.";
			 return;
		 }
		 
		 if(_newpassword != _confirm_new_password)
		  {
			 document.getElementById('div_password_stat').innerHTML = ERR_IMG + " Password entries do not match.";
			 return;
		  }
		  
		  if(_newpassword.length < 8)
		   {
			 document.getElementById('div_password_stat').innerHTML = ERR_IMG + " Password must be at least 8 charecters.";
			 return;
		   }

		var params = "PASSWORD=" + encodeURIComponent(_newpassword) + "&sid=" + Math.random();


		var url= ajax_path + "wrk/doChangePassword.php";

	    		xmlHttp_ChangePassword.open("POST", url, true);
				xmlHttp_ChangePassword.onreadystatechange=state_ChangePassword;
				xmlHttp_ChangePassword.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    		xmlHttp_ChangePassword.setRequestHeader("Content-length", params.length);
	    		xmlHttp_ChangePassword.setRequestHeader("Connection", "close");
				xmlHttp_ChangePassword.send(params);
     }

function state_ChangePassword()
{
	switch(xmlHttp_ChangePassword.readyState)
		{
			case 1:
			case 2:
			case 3:
				document.getElementById('div_password_stat').innerHTML = WRK_IMG + "<br> Please wait ... ";
			break;
	
			case 4:
			var text_xml = xmlHttp_ChangePassword.responseText;
			switch(text_xml)
				{
					case "OK":
						document.getElementById('div_password_stat').innerHTML = OK_IMG + " Password was successfully changed.";	 
						setTimeout('jsf_ShowObj(\'div_ChangePassword\', \'no\')', 3000);
										
					break;
	
					case "ERR":
						document.getElementById('div_password_stat').innerHTML = ERR_IMG + " An error occured while attempting to change password. Please try again.";	 
					break;
				}
			break;
	}
}
// ####################################################################################################################################
// PHP Ref#: wrk/dosearch
function ajax_SubmitFeedback()
{
	xmlHttp_SubmitFeedback=GetXmlHttpObject();
	if (xmlHttp_SubmitFeedback==null)
		{
			alert ("Your browser does not support AJAX!");
			return;
		}

		var member_id = document.getElementById('member_id').value;
		var member_email = document.getElementById('member_email').value;
		var member_notes = document.getElementById('member_notes').value;
		
		if(member_id.length == 0 || member_email.length == 0 || member_notes.length == 0)
		 {
			document.getElementById('div_feedback').innerHTML = ERR_IMG + " Please fill out all fields."
			return;
		 }
		
		
		var params = "member_id=" + encodeURIComponent(member_id) + "&member_email=" + encodeURIComponent(member_email) + "&member_notes=" + encodeURIComponent(member_notes) + "&sid=" + Math.random();

		var url= ajax_path + "wrk/doSubmitFeedback.php";
			xmlHttp_SubmitFeedback.open("POST", url, true);
			xmlHttp_SubmitFeedback.onreadystatechange= state_SubmitFeedback; //div_SubmitFeedbackParams
			xmlHttp_SubmitFeedback.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			xmlHttp_SubmitFeedback.setRequestHeader("Content-length", params.length);
			xmlHttp_SubmitFeedback.setRequestHeader("Connection", "close");
			xmlHttp_SubmitFeedback.send(params);
}

function state_SubmitFeedback()
{
	switch(xmlHttp_SubmitFeedback.readyState)
		{
			case 1:
			case 2:
			case 3:
				document.getElementById('div_feedback').innerHTML = " Please wait ...";
			break;

			case 4:
				var text_xml = xmlHttp_SubmitFeedback.responseText;
				document.getElementById('div_feedback').innerHTML = text_xml;
				if(text_xml == "OK")
				 {
					document.getElementById('div_feedback').innerHTML = " Thank you. Your notes were successfully received. A response will be sent to your email within the next 12-24 hours.";
					document.getElementById('member_id').value = "";
					document.getElementById('member_email').value = "";
					document.getElementById('member_notes').value = "";
				 }
				else
				 {
					document.getElementById('div_feedback').innerHTML = " An error occured while attempting to process request ...";
					document.getElementById('member_id').value = "";
					document.getElementById('member_email').value = "";
				 }
			break;
		}
}
// ####################################################################################################################################
function ajax_RetrivePassword()
{
	xmlHttp_RetrivePassword=GetXmlHttpObject();
	if (xmlHttp_RetrivePassword==null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	var _id = document.getElementById('recover_member_id').value;
	var _email = document.getElementById('recover_member_email').value;
	
	
	if(_email.length == 0 || _id.length == 0)
	 {
		alert('Please enter a valid email address and membership number.');
		return;
	 }

	var url= ajax_path + "wrk/doRetrivePassword.php?MEMBER_ID=" +encodeURIComponent(_id) + "&MEMBER_EMAIL=" + encodeURIComponent(_email) + "&sid="+Math.random();
	
	xmlHttp_RetrivePassword.onreadystatechange= state_RetrivePassword;
	xmlHttp_RetrivePassword.open("GET",url,true);
	xmlHttp_RetrivePassword.send(null);
}

function state_RetrivePassword()
{
switch(xmlHttp_RetrivePassword.readyState)
 {

	case 1:
	case 2:
	case 3:
		document.getElementById('div_password_recovery').innerHTML = WRK_IMG + "<br> Please wait ... ";
	break;

	case 4:
		var text_xml = xmlHttp_RetrivePassword.responseText;
		switch(text_xml)
		 {
			case "INVALID":
				document.getElementById('div_password_recovery').innerHTML = ERR_IMG + " Invalid membership number.";
			break;
			
			case "OK":
				document.getElementById('div_password_recovery').innerHTML = OK_IMG + " Thank you, your password was sent to your email.";
			break;
			
			case "INACTIVE":
				document.getElementById('div_password_recovery').innerHTML = ERR_IMG + " Your mambership has not been activated, therefore your password is not assigned yet. Please click on \"Register\" above to activate your membership.";
			break;
		 }
	break;
 }

}

