<?
header("Access-Control-Allow-Origin: *");

/*
		PROCESSS 1 of 2:
		THIS IS THE FILE THAT RECIEVES INITIAL LOGIN DETAILS
	
*/


///#########################################################
###/// this is the ape for the PAYYAP login process call
///#########################################################

### DO THIS FIRST:
require_once("/BANGK!/master_config.php");
require_once($master_config_root_path . "shared/functions.shared");
$active_user_session_timeout = "OFF"; // no session timeout on this page
require_once($master_config_root_path . "shared/session.shared");

//logger3("_SESSION['template']['company']",$_SESSION['template']['company']);
//logger3("0_SESSION['support_action']",$_SESSION['support_action']);
//logger3("_GET['password']",$_GET['password']);
//logger3("_SESSION['template']['company']['file_path']",$_SESSION['template']['company']['file_path']);

### START SESSION VERIFICATION (ALWAYS LAST B4 REST OF PAGES):
$verified_member = "no";
$verified_business = "no";
$verified_transaction = "no";
$verified_banned = "no";
$verified_acccess = "no";
$secured_server = "no"; //force https
require_once($_SESSION['template']['company']['file_path'] . "shared/start_verified_session.shared");
if(!stristr($_SESSION['template']['company']['domain'],"intelitruth.com")) {
	$master_filename_prefix = "IEW_";
}
#
#
#
log_traffic_stats();



$incoming_vars = "";
$incoming_vars = array();
if($_POST) $incoming_vars = $_POST;
if(empty($incoming_vars)) $incoming_vars = $_GET;


logger3("















########################################################################################
########################################################################################
########################################################################################
########################################################################################
########################################################################################
########################################################################################
########################################################################################
########################################################################################
### NEW SESSION:  [" . $_SERVER['SCRIPT_NAME'] . "]
########################################################################################
########################################################################################

",$incoming_vars);
#
#
#
### START: SESSIONS & STUFF:


unset($_SESSION['intelitruth']);
$_SESSION['intelitruth'] = "";


/*  example call:
	
//https://gateway.payyap.network/nsdbAPP_account_access.gate
?
PAYYAP_device_IP=210.1.246.66
&PAYYAP_sim_serial_number=89014103211118510720
&PAYYAP_device_id=000000000000000
&PAYYAP_device_telephone_number=15555215554
&PAYYAP_version=5.3
&emailaddress=shahid1%40corp.nsdb.com
member_hash=
&PAYYAP_device_type=iPhone | iPad | Mobile | Tablet
$incoming_vars['whitelabel_business_account_hash']

// SITE_SCHEMA == http://ipxps.intelitruth.com/

*/



##############################################
##############################################
### START: FIX SITE_SCHEMA...


# $new_SITE_SCHEMA = explode("//",$incoming_vars['SITE_SCHEMA']);
# logger3("new_SITE_SCHEMA",$new_SITE_SCHEMA);
# 
# if($new_SITE_SCHEMA[1]) {
# 	
# 	$new_SITE_SCHEMA = explode(".",$new_SITE_SCHEMA[1]);
# 	logger3("new_SITE_SCHEMA",$new_SITE_SCHEMA);
# 	
# 	$incoming_vars['SITE_SCHEMA'] = $new_SITE_SCHEMA[0];
# 	logger3("incoming_vars['SITE_SCHEMA']",$incoming_vars['SITE_SCHEMA']);
# 	
# 	$platform_SCHEMA = "DESKTOP";
# 
# } else {
# 	
# 	$platform_SCHEMA = "APP";
# 
# }

### END: FIX SITE_SCHEMA...!
##############################################
##############################################



####start: function #########################################################
function replace_invalid_byte_sequence($str)
{
    return UConverter::transcode($str, 'UTF-8', 'UTF-8');
}

function replace_invalid_byte_sequence2($str)
{
    return (new UConverter('UTF-8', 'UTF-8'))->convert($str);
}
function replace_invalid_byte_sequence3($str)
{
    return htmlspecialchars_decode(htmlspecialchars($str, ENT_SUBSTITUTE, 'UTF-8'));
}
####end: function #########################################################


##############################################
##############################################
### START: GET POSSIBLE WHITELABEL OWNER...
logger3("WHITELABEL :: whitelabel_business_account_hash",$incoming_vars['whitelabel_business_account_hash']);
$tmp_sql = "SELECT * 
			FROM accounts 
			WHERE hash = '". $incoming_vars['whitelabel_business_account_hash'] ."'
			;";
logger3("WHITELABEL :: tmp_sql",$tmp_sql);
$whitelabel_business_account_details_array = object_to_array_v2(readTHECASHIER($tmp_sql));

$_SESSION['intelitruth']['whitelabel_business_account_details'] = $whitelabel_business_account_details_array;

logger3("WHITELABEL :: whitelabel_business_account_details_array",$whitelabel_business_account_details_array);
### END: GET POSSIBLE WHITELABEL OWNER...!
##############################################
##############################################





$_XXXXX_whitelabel_iframe_callback_url = $whitelabel_business_account_details_array['intelitruth_iframe_callback_url'];
//test("------ _SERVER ---- ",$_SERVER);




$user_platform = "Desktop";
$what_device = what_device();
if(!stristr($what_device,"DESKTOP")) $user_platform = "Mobile";


$set_customer_ip = $incoming_vars['PAYYAP_device_IP'];
if($incoming_vars['CUSTOMER_IP']) $set_customer_ip = $incoming_vars['CUSTOMER_IP'];
	


$account_hash = "";
$existing_account_hash = "";
$_XXXXX_trim_incoming_emailaddress = $trim_incoming_emailaddress = trim($incoming_vars['emailaddress']);


/// MOBILE NUMBER UPDATE
if(!stristr($trim_incoming_emailaddress,"@")) {
	$possible_mobile_number = explode("/", $trim_incoming_emailaddress);
	if($possible_mobile_number[1]) {
		$mobile_number_country_calling_code_iso2 = $possible_mobile_number[0];
		$mobile_number_country_calling_code_iso3 = geo_data($mobile_number_country_calling_code_iso2,"iso2","iso3");
		$mobile_number_country_calling_code = geo_data($mobile_number_country_calling_code_iso2,"iso2","calling_code");
		$mobile_number = $possible_mobile_number[1];
	}

} else {
	
	$trim_incoming_emailaddress_exploded = explode("/", $trim_incoming_emailaddress);
	if($trim_incoming_emailaddress_exploded[1]) {
		$trim_incoming_emailaddress = $incoming_vars['emailaddress'] = $trim_incoming_emailaddress_exploded[1];	
	}
}

//$tmp_sql = "SELECT creator_memberid FROM accounts WHERE emailaddress = '". $trim_incoming_emailaddress ."';";
//logger3("tmp_sql",$tmp_sql);

//$existing_creator_memberid = getTHECASHIER($tmp_sql);
//logger3("existing_account_hash",$existing_account_hash);

logger3("mobile_number",$mobile_number);

if(!$mobile_number) {
	
	
	
	
	
	$tmp_sql = "SELECT * 
				FROM members 
				WHERE emailaddress = '". addslashes($trim_incoming_emailaddress) ."'
				AND whitelabel_business_account_hash = '". $_SESSION['intelitruth']['whitelabel_business_account_details']['hash'] ."'
				ORDER BY created DESC
				LIMIT 1 
				;";
	logger3("1-member_hash_tmp_sql",$tmp_sql);
	
	
	### this is a patch because BLINGK is a brand that is on the intelitruth server///
	if(stristr($_SERVER['HTTP_HOST'],".blingk.net")) {
		
		$FORCE_template_company_hash = "133d0a9f43c9465c8f716ce32628e126";
		$tmp_sql = "SELECT * 
				FROM members 
				WHERE emailaddress = '". addslashes($trim_incoming_emailaddress) ."'
				AND template_company_hash = '". addslashes($FORCE_template_company_hash) ."'
				ORDER BY created DESC
				LIMIT 1 
				;";
		logger3("2-member_hash_tmp_sql",$tmp_sql);
		
	}
	
	
	
	
	
	

} else {

	/// new mobile number verification
	$tmp_sql = "SELECT * 
				FROM phone_numbers 
				WHERE calling_code = '". $mobile_number_country_calling_code ."'
				AND number = '". $mobile_number ."'
				AND (status = 'VERIFIED' OR sponsor_business_account_hash != '')
				AND whitelabel_business_account_hash = '". $_SESSION['intelitruth']['whitelabel_business_account_details']['hash'] ."'
				ORDER BY updated DESC
				LIMIT 1
				;";
	logger3("2-member_hash_tmp_sql",$tmp_sql);
}

$existing_phone_number_verified = object_to_array_v2(readTHECASHIER($tmp_sql));
logger3("3-existing_phone_number_verified",$existing_phone_number_verified);

$tmp_sql = "SELECT hash 
			FROM members 
			WHERE memberid = '". $existing_phone_number_verified['memberid'] ."'
			;";
logger3("tmp_sql",$tmp_sql);
$existing_phone_number_member_hash = getTHECASHIER($tmp_sql);
logger3("existing_phone_number_member_hash",$existing_phone_number_member_hash);


//// RESEND SMS BASED ON TIME-OUT SESSION:
$time_of_last_login = strtotime($existing_phone_number_verified['updated']);
//$time_of_last_login = time();
logger3("time_of_last_login",$time_of_last_login);



$current_time = time();
logger3("current_time",$current_time);

$time_different_seconds = ($current_time - $time_of_last_login)/60;
logger3("time_different_seconds",$time_different_seconds);

$time_different_minutes = number_format($time_different_seconds,0,".",".","");
logger3("time_different_minutes",$time_different_minutes);

logger3("_SESSION['template']['company']['sms_verification_session_time_limit_minutes']",$_SESSION['template']['company']['sms_verification_session_time_limit_minutes']);

if($_SESSION['template']['company']['sms_verification_session_time_limit_minutes'] > $time_different_minutes) {
	$existing_member_hash = $existing_phone_number_member_hash;
}


logger3("qqq-existing_member_hash",$existing_member_hash);





if(empty($existing_member_hash)) {
	
	
	
	$tmp_sql = "SELECT *
				FROM members
				WHERE emailaddress = '". addslashes(trim($incoming_vars['emailaddress'])) ."'
				AND whitelabel_business_account_hash = '". addslashes(trim(['whitelabel_business_account_hash'])) ."'
				ORDER BY created DESC
				LIMIT 1
				;";
	logger3("qqq-tmp_sql",$tmp_sql);
	
	
	
	### this is a patch because BLINGK is a brand that is on the intelitruth server///
	if(stristr($_SERVER['HTTP_HOST'],".blingk.net")) {
		
		$FORCE_template_company_hash = "133d0a9f43c9465c8f716ce32628e126";
		
		$tmp_sql = "SELECT * 
				FROM members 
				WHERE emailaddress = '". addslashes($trim_incoming_emailaddress) ."'
				AND template_company_hash = '". addslashes($FORCE_template_company_hash) ."'
				ORDER BY created DESC
				LIMIT 1 
				;";
		logger3("2-member_hash_tmp_sql",$tmp_sql);
		
	}
	
	
	$member_does_exist = object_to_array_v2(readTHECASHIER($tmp_sql));
	
	logger3("qqq-member_does_exist",$member_does_exist);
	
	$existing_member_hash = $member_does_exist['hash'];
	
	logger3("qqq-existing_member_hash",$existing_member_hash);
				
}





$_COMMON_template_company_hash = $_SESSION['template']['company']['hash'];
if($FORCE_template_company_hash) $_COMMON_template_company_hash = $FORCE_template_company_hash;











/// confirm USER AGENT DETAILS:

logger3("___existing_member_hash",$existing_member_hash);
if($existing_member_hash) {
	
	$AND_HTTP_USER_AGENT = "AND (
									(HTTP_USER_AGENT_REQUESTED = '". $_SERVER['HTTP_USER_AGENT'] ."')
									OR (HTTP_USER_AGENT_VERIFIED = '". $_SERVER['HTTP_USER_AGENT'] ."')
								)";
	
	$AND_HTTP_USER_AGENT = "";
	
	$tmp_sql = "SELECT * 
				FROM token_login
				WHERE member_hash = '". $existing_member_hash ."'
				AND STATUS = 'VERIFIED'
				$AND_HTTP_USER_AGENT
				;";
	logger3("tmp_sql",$tmp_sql);
	$verification_details = object_to_array_v2(readTHECASHIER($tmp_sql));
	logger3("verification_details",$verification_details);
	
	/// if the verified id does not exist, delete this known meber
	$verified_SMS = FALSE;
	$verified_USER_AGENT = "FALSE";
	if($verification_details['verification_hash']) {
		$verified_SMS = TRUE;
		$verified_USER_AGENT = "TRUE";
	}
	
	
	/// FORCES NEW AUTHORIZTION 
	$verification_details['verification_hash'] = "";
	$verified_SMS = FALSE;
	$verified_USER_AGENT = "FALSE";
	
	
	
	
	
}
logger3("verified_USER_AGENT",$verified_USER_AGENT);




#### DOES AN EXISTING "BUSINESS ACCOUNT" exist for this user?  (appears in APP ACCOUNT MENU OPTIONS)
logger3("existing_member_hash",$existing_member_hash);
if($existing_member_hash) {
	
	$verified_member_details = $existing_member = member($existing_member_hash);
	logger3("0.existing_member",$existing_member);
	
	$tmp_sql = "SELECT hash 
				FROM accounts 
				WHERE accountid = '". $existing_member['accounts']['business'][0] ."'
				;";
	$verified_account_business_hash = $existing_account_hash = getTHECASHIER($tmp_sql);
	logger3("existing_account_hash",$existing_account_hash);
	
	$tmp_sql = "SELECT hash 
				FROM accounts 
				WHERE accountid = '". $existing_member['accounts']['personal'] ."'
				;";
	$verified_account_personal_hash = $existing_account_hash = getTHECASHIER($tmp_sql);
	logger3("verified_account_personal_hash",$verified_account_personal_hash);
}	



##############################################################################
### RETURNING USER "LOGIN":
##############################################################################
logger3("existing_account_hash",$existing_account_hash);
if($existing_account_hash) {
	
	$member_hash = $returning_member_hash = trim($existing_member_hash);
	logger3("returning_member_hash",$returning_member_hash);
	
	$account_hash = $returning_account_hash = trim($existing_account_hash);
	logger3("returning_account_hash",$returning_account_hash);
	
	
	
}





##############################################################################
### NEW USER "REGISTRATION":
##############################################################################
logger3("existing_account_hash",$existing_account_hash);
if(!$existing_account_hash) {
	
	
	
	$registration_datetime = $_SESSION['authorization']['timestamp'] = datetime();
	logger3("registration_datetime",$registration_datetime);
	
	logger3("mobile_number",$mobile_number);
	
	if(!$mobile_number) {
		
		$_SESSION['session']['registration']['emailaddress'] = $trim_incoming_emailaddress;
		logger3("_SESSION['session']['registration']['emailaddress']",$_SESSION['session']['registration']['emailaddress']);
		//$tmp_email_user = explode("@",$trim_incoming_emailaddress);
		//$_SESSION['session']['registration']['lastname'] = ucwords(strtolower(preg_replace("/[^a-zA-Z0-9]/", "", $tmp_email_user[1])));
		//$_SESSION['session']['registration']['firstname'] = ucwords(strtolower(preg_replace("/[^a-zA-Z0-9]/", "", $tmp_email_user[0])));
	
	
	} else {
		
		/// new mobile number validation process:
		$_SESSION['session']['registration']['emailaddress'] = $mobile_number_country_calling_code . "." . $mobile_number . "@" . $_SESSION['template']['company']['domain'];
		
		$_SESSION['session']['registration']['country_iso3'] = $_SESSION['session']['registration']['timezone']['country_iso3'] = geo_data($mobile_number_country_calling_code_iso2,"iso2","iso3");
		$_SESSION['session']['registration']['dayphone'] =  $mobile_number_country_calling_code . "/" . $mobile_number;
		
		
		
		
		
	}
	
	$_SESSION['session']['registration']['business_category'] = "";
	$_SESSION['session']['registration']['business_subcategory'] = "";
	$_SESSION['session']['registration']['business_type'] = "";
	$_SESSION['session']['registration']['business_name'] = strtolower($tmp_email_user[0]);
	
	
	logger3("_SESSION['session']['registration']",$_SESSION['session']['registration']);
	
	
	
	
	
	
	
	
	
	logger3("################################################################################################
	################################################################################################
	################################################################################################
	################################################################################################
	################################################################################################
	################################################################################################
	### START :: REGISTER ACCOUNT:  PERSONAL
	################################################################################################","");
	
	$_XXXXX_member_hash = $set_member_hash = $member_hash = make_hash();
	
	
	
	$_XXXXX_sponsor_accountid = $_COOKIE['sponsor_accountid'];
	logger3("_XXXXX_sponsor_accountid",$_XXXXX_sponsor_accountid);
	
	
	if($incoming_vars['agent_account_hash']) $_XXXXX_sponsor_accountid = $incoming_vars['agent_account_hash'];
	
	logger3("_XXXXX_sponsor_accountid",$_XXXXX_sponsor_accountid);
	
	
	
	
	
	///IFRAME:
	if($_COOKIE['PROFILE_UUID']) {
		$_XXXXX_UUID_for_member_from_client = $_COOKIE['PROFILE_UUID'];
	}
	
	
	
	
	
	
	
	
	###  FIRST, CREATE A MEMBER:
	$test_sql = "INSERT into members (
		`memberid`,
		`hash`,
		
		`template_company_hash`,
		
		
		
		`sponsor_accountid`,
		`sponsor_terms`,
		`salutation`,
		`firstname`,
		`lastname`,
		`emailaddress`,
		`password`,
		`birthdate`,
		`country_iso3`,
		`timezone`,
		`authorization_voice`,
		`type`,
		`coupon_used_to_register`,
		
		`app_version`,
		
		`whitelabel_business_account_hash`,
		`UUID_for_member_from_client`,
		
		
		`created`,
		`updated`) 
	
	VALUES ('" . $blank_memberid . "',
		'" . $set_member_hash . "',
		
		'" . $_COMMON_template_company_hash . "',
		
		'" . $_XXXXX_sponsor_accountid . "',
		'" . $_COOKIE['sponsor_terms'] . "',
		'" . str_replace("'","\'",$_SESSION['session']['registration']['saluation']) . "',
		'" . str_replace("'","\'",$_SESSION['session']['registration']['firstname']) . "',
		'" . str_replace("'","\'",$_SESSION['session']['registration']['lastname']) . "',
		'" . str_replace("'","\'",$_SESSION['session']['registration']['emailaddress']) . "',
		'" . str_replace("'","\'",$_SESSION['session']['registration']['password']) . "',
		'" . $_SESSION['session']['registration']['birth_year'] . "-" . $_SESSION['session']['registration']['birth_month'] . "-" . $_SESSION['session']['registration']['birth_day'] . "',
		'" . $_SESSION['session']['registration']['timezone']['country_iso3'] . "',
		'" . $_SESSION['session']['registration']['timezone']['offset'] . "',
		'" . $master_config_authorization_voice . "',
		'" . $member_type . "',
		'" . $_SESSION['session']['registration']['coupon'] . "',
		
		'" . $incoming_vars['PAYYAP_version'] . "',
		
		'" . $incoming_vars['whitelabel_business_account_hash'] . "',
		'" . $_XXXXX_UUID_for_member_from_client . "',
		
		'" . $registration_datetime . "',
		'" . $registration_datetime . "')";
	
	logger3("test_sql",$test_sql);
	$memberid = insertTHECASHIER($test_sql);
	logger3("memberid",$memberid);
	//exit;
	
	

	
	
	
	$tmp_full_name = $_SESSION['session']['registration']['firstname'] . " " . $_SESSION['session']['registration']['lastname'];
	$personal_account_hash = hash_me();
	
	### CREATE A PERSONAL ACCOUNT:
	$tmp_sql = "INSERT into accounts (
		`accountid`,
		`hash`,
		
		`template_company_hash`,
		
		`accounttype`,
		`accountname`,
		
		`streetaddress1`,
		`streetaddress2`,
		
		`city`,
		`state`,
		
		`region`,
		`postalcode`,
		
		`country_iso3`,
		`dayphone`,
		
		`eveningphone`,
		`faxphone`,
		
		`mobilephone`,
		`customer_support_phone_number_1`,
		
		`emailaddress`,
		`agreement`,
		
		`currency_translation`,
		`currency_0_country`,
		
		`currency_0_iso3`,
		`currency_country_1`,
		
		`currency_code_1`,
		`currency_country_2`,
		
		`currency_code_2`,
		`product_type`,
		
		`transaction_fee_total`,
		`transaction_fee_my`,
		
		`retry_fee`,
		`sponsor_fee`,
		
		`status_payments`,
		`sponsor_accountid`,
		
		`sponsor_terms`,
		`data_GB`,
		
		`whitelabel_business_account_hash`,
		
		
		`creator_memberid`,
		`creator_member_hash`,
		
		`created`,
		`updated`
	) VALUES (
		'" . $blank_accountid . "',
		'" . $personal_account_hash . "',
		
		'" . $_COMMON_template_company_hash . "',
		
		'Personal',
		'" . str_replace("'","\'",$tmp_full_name) . "',
		
		'" . str_replace("'","\'",$_SESSION['session']['registration']['streetaddress1']) . "',
		'" . str_replace("'","\'",$_SESSION['session']['registration']['streetaddress2']) . "',
		
		'" . str_replace("'","\'",$_SESSION['session']['registration']['city']) . "',
		'" . str_replace("'","\'",$_SESSION['session']['registration']['state']) . "',
		
		'" . str_replace("'","\'",$_SESSION['session']['registration']['region']) . "',
		'" . str_replace("'","\'",$_SESSION['session']['registration']['postalcode']) . "',
		
		'" . str_replace("'","\'",$_SESSION['session']['registration']['country_iso3']) . "',
		'" . str_replace("'","\'",$_SESSION['session']['registration']['dayphone']) . "',
		
		'" . str_replace("'","\'",$_SESSION['session']['registration']['eveningphone']) . "',
		'" . str_replace("'","\'",$_SESSION['session']['registration']['faxphone']) . "',
		
		'" . str_replace("'","\'",$_SESSION['session']['registration']['mobilephone']) . "',
		'".$preregister['voice_authorization']['calling_code']."/".$preregister['voice_authorization']['phone_number']."',
		
		'" . str_replace("'","\'",$_SESSION['session']['registration']['emailaddress']) . "',
		'" . str_replace("'","\'",$_SESSION['session']['registration']['agreement']) . "',
		
		'" .  $currency_translation . "',
		'USA',
		
		'USD',
		'" .  $_SESSION['session']['registration']['country_iso3'] . "',
		
		'" .  $currency_code . "',
		'" .  $blank_currency_country_2 . "',
		
		'" . $product_type_blank . "',
		'" . $product_type_blank . "',
		
		'" . $master_config_personal_transaction_fee . "',
		'" . $master_config_personal_transaction_fee . "',
		
		'" . $master_config_retry_fee_BLANK_FOR_PERSONAL_ACCOUNTS . "',		
		'" . $sponsor_fee_todo . "',
		
		'ON',
		'" . $_XXXXX_sponsor_accountid . "',
		
		'" . $_COOKIE['sponsor_terms'] . "',
		'1',
		
		'" . $incoming_vars['whitelabel_business_account_hash'] . "',
		
		'" . $memberid . "',
		'" . $set_member_hash . "',
		
		
		'" . $registration_datetime . "',
		
		'" . $registration_datetime . "'
		);";
	logger3("tmp_sql",$tmp_sql);
	$accountid = $personal_accountid = insertTHECASHIER($tmp_sql);
	logger3("accountid",$accountid);
	
	
	
	### GET IPID:
	/*
	$_XXXXX_sponsor_account_hash = $_XXXXX_sponsor_accountid;
	$_XXXXX_status = "";
	$tmp_query = "INSERT into ips (
		`ipid`,
		`memberid`,
		`member_hash`,
		`ip`,
		`status`,
		`sponsor_account_hash`,
		`created`,
		`updated`
	) VALUES (
		'" . $ipid . "',
		'" . $memberid . "',
		'" . $set_member_hash . "',
		'" . $_SERVER['REMOTE_ADDR'] . "',
		'". $_XXXXX_status ."',
		'" . $_XXXXX_sponsor_account_hash . "',
		'" . $registration_datetime . "',
		'" . $registration_datetime . "')";	
	logger3("tmp_query",$tmp_query);		
	$ipid = insertTHECASHIER($tmp_query);
	logger3("ipid",$ipid);
	*/
	
	
	
	
	$_XXXXX_ipid = "";
	$_XXXXX_hash = hash_me();
	$_XXXXX_template_company_hash = $_COMMON_template_company_hash;
	$_XXXXX_whitelabel_business_account_hash = $incoming_vars['whitelabel_business_account_hash'];
	$_XXXXX_memberid = $memberid;
	$_XXXXX_member_hash = $_XXXXX_member_hash;
	$_XXXXX_PROFILE_UUID = $_COOKIE['PROFILE_UUID'];
	$_XXXXX_ip = $_SERVER['REMOTE_ADDR'];
	$_XXXXX_city = "";
	$_XXXXX_region = "";
	$_XXXXX_postal_code = "";
	$_XXXXX_country_name = "";
	$_XXXXX_country_iso3 = "";
	$_XXXXX_longitude = "";
	$_XXXXX_latitude = "";
	$_XXXXX_timezone = "";
	$_XXXXX_proxy_port = "";
	$_XXXXX_status = "";
	$_XXXXX_sponsor_account_hash = $_XXXXX_sponsor_accountid;
	$_XXXXX_created = $registration_datetime;
	$_XXXXX_updated = $registration_datetime;
	$tmp_sql = "INSERT INTO `ips`
				(
					`ipid`
					, `hash`
					, `template_company_hash`
					, `whitelabel_business_account_hash`
					, `memberid`
					, `member_hash`
					, `PROFILE_UUID`
					, `ip`
					, `city`
					, `region`
					, `postal_code`
					, `country_name`
					, `country_iso3`
					, `longitude`
					, `latitude`
					, `timezone`
					, `proxy_port`
					, `status`
					, `sponsor_account_hash`
					, `created`
					, `updated`
				) VALUES (
					'". $_XXXXX_ipid . "'
					, '". $_XXXXX_hash . "'
					, '". $_XXXXX_template_company_hash . "'
					, '". $_XXXXX_whitelabel_business_account_hash . "'
					, '". $_XXXXX_memberid . "'
					, '". $_XXXXX_member_hash . "'
					, '". $_XXXXX_PROFILE_UUID . "'
					, '". $_XXXXX_ip . "'
					, '". $_XXXXX_city . "'
					, '". $_XXXXX_region . "'
					, '". $_XXXXX_postal_code . "'
					, '". $_XXXXX_country_name . "'
					, '". $_XXXXX_country_iso3 . "'
					, '". $_XXXXX_longitude . "'
					, '". $_XXXXX_latitude . "'
					, '". $_XXXXX_timezone . "'
					, '". $_XXXXX_proxy_port . "'
					, '". $_XXXXX_status . "'
					, '". $_XXXXX_sponsor_account_hash . "'
					, '". $_XXXXX_created . "'
					, '". $_XXXXX_updated . "'
				);";
	$ipid = insertTHECASHIER($tmp_sql);
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	//// INSERT INTO TRACKING:
	$_XXXXX_trackingid = "";
	$_XXXXX_tracking_hash = hash_me();
	
	$_XXXXX_sponsor_type = "Campaign";
	if($incoming_vars['agent_account_hash']) $_XXXXX_sponsor_type = "Agent";
	
	$_XXXXX_sponsor_accountid = $_XXXXX_sponsor_accountid;
	$_XXXXX_campaign_name = "";
	$_XXXXX_ip = $_SERVER['REMOTE_ADDR'];
	$_XXXXX_ip_country_iso3 = "";
	$_XXXXX_city_state = "";
	$_XXXXX_SYSTEM = "";
	$_XXXXX_HTTP_HEADERS = "";
	$_XXXXX_HTTP_REFERER = "";
	$_XXXXX_member_account_hash = $member_hash;
	$_XXXXX_telephone_country_code = "";
	$_XXXXX_telephone_number = "";
	$_XXXXX_device = "";
	$_XXXXX_status = "";
	$_XXXXX_datetime_created = datetime();
	
	$tmp_sql = "INSERT INTO `tracking`
	(
	`trackingid`
	, `tracking_hash`
	, `sponsor_type`
	, `sponsor_accountid`
	, `campaign_name`
	, `ip`
	, `ip_country_iso3`
	, `city_state`
	, `SYSTEM`
	, `HTTP_HEADERS`
	, `HTTP_REFERER`
	, `member_account_hash`
	, `telephone_country_code`
	, `telephone_number`
	, `device`
	, `status`
	, `datetime_created`
	) VALUES (
	'". $_XXXXX_trackingid ."'
	,'". $_XXXXX_tracking_hash ."'
	,'". $_XXXXX_sponsor_type ."'
	,'". $_XXXXX_sponsor_accountid ."'
	,'". $_XXXXX_campaign_name ."'
	,'". $_XXXXX_ip ."'
	,'". $_XXXXX_ip_country_iso3 ."'
	,'". $_XXXXX_city_state ."'
	,'". $_XXXXX_SYSTEM ."'
	,'". $_XXXXX_HTTP_HEADERS ."'
	,'". $_XXXXX_HTTP_REFERER ."'
	,'". $_XXXXX_member_account_hash ."'
	,'". $_XXXXX_telephone_country_code ."'
	,'". $_XXXXX_telephone_number ."'
	,'". $_XXXXX_device ."'
	,'". $_XXXXX_status ."'
	,'". $_XXXXX_datetime_created ."'
	)";
	logger3("tmp_sql",$tmp_sql);
	$insert_results = insertTHECASHIER($tmp_sql,"ad_campaigns");
	logger3("insert_results",$insert_results);
	
	
	
	$new_account_balance = "0.00";
	
	### NOW SET PERSONAL ACCOUNT BALANCE:
	$tmp_sql = "INSERT into balances 
				(
				`balanceid`,
				`platform`,
				`currency_iso3`,
				`accountid`,
				`account_balance`,
				`approved`,
				`sponsor_balance`,
				`available`,
				`created`) 
			VALUES 	
				(
				'" . $balanceid . "',
				'" . echo_platform() . "',
				'" . $_SESSION['template']['company']['currency1'] . "',
				'" . $accountid . "',
				'". $new_account_balance ."',
				'0.00',
				'0.00',
				'0.00',
				'" . $registration_datetime . "');";
	logger3("tmp_sql",$tmp_sql);	
	$balanceid = insertTHECASHIER($tmp_sql);
	logger3("balanceid",$balanceid);	
	
	
	### NOW TIE IT ALL TOGETHER AND SET THE PERMISSIONS:
	//$permissionsid = insertTHECASHIER("INSERT into permissions (`permissionsid`,`memberid`,`accountid`,`permissions`,`created`) VALUES ('" . $permissionsid . "','" . $memberid . "','" . $accountid . "','MASTER','" . $registration_datetime . "')");
	
	### SET PERMISSIONS: ############################
	$set_permissionsid = null;
	$set_hash = hash_me();
	$set_memberid = $memberid;
	$set_accountid = $accountid;
	$set_accounttype = "Personal";
	$set_permissions = "MASTER";
	$set_admin =null;
	$set_login_biometric_verification = "OFF";
	$set_status = "ACTIVE";
	$set_notification_firstname = null;
	$set_notification_lastname = null;
	$set_creator_memberid = $memberid;
	$set_created = null;
	$set_datetime_created = $registration_datetime;
	$set_datetime_updated = $registration_datetime;
	
	$tmp_sql = "INSERT into permissions (
		`permissionsid`,
		`hash`,
		`memberid`,
		`accountid`,
		`accounttype`,
		`permissions`,
		`admin`,
		`login_biometric_verification`,
		`status`,
		`notification_firstname`,
		`notification_lastname`,
		`creator_memberid`,
		`created`,
		`datetime_created`,
		`datetime_updated`
	) VALUES (
		'" . $set_permissionsid . "',
		'" . $set_hash . "',
		'" . $set_memberid . "',
		'" . $set_accountid . "',
		'" . $set_accounttype . "',
		'" . $set_permissions . "',
		'" . $set_admin . "',
		'" . $set_login_biometric_verification . "',
		'" . $set_status . "',
		'" . $set_notification_firstname . "',
		'" . $set_notification_lastname . "',
		'" . $set_creator_memberid . "',
		'" . $set_created . "',
		'" . $set_datetime_created . "',
		'" . $set_datetime_updated . "');";
	logger3("tmp_sql",$tmp_sql);
	$permissionsid = insertTHECASHIER($tmp_sql);
	logger3("permissionsid",$permissionsid);
	###################################################  
	
		
	


	
	
	### NOW UPDATE SESSIONS:
	#unset($preregister);
	$_SESSION['member'] = $member = member($memberid);
	$_SESSION['account'] = $account = account($accountid);
	
	
	
	$_XXXXX_HTTP_USER_AGENT = addslashes($_SERVER['HTTP_USER_AGENT']);
	
	
	### START: SET THE DEVICE ID
	$_XXXXX_member_devices_id = "";
	$_XXXXX_member_hash = $_SESSION['member']['hash'];
	
	$_XXXXX_device_id = $incoming_vars['PAYYAP_device_id'];
	if(!$_XXXXX_device_id) $_XXXXX_device_id = $_XXXXX_HTTP_USER_AGENT;
	
	$_XXXXX_sim_serial_number = $incoming_vars['PAYYAP_sim_serial_number'];
	$_XXXXX_telephone_number = $incoming_vars['PAYYAP_device_telephone_number'];
	$_XXXXX_status = "";
	$_XXXXX_datetime_created = $registration_datetime;
	$_XXXXX_datetime_updated = $registration_datetime;
	
	
	$tmp_sql = "SELECT member_devices_id FROM member_devices 
	WHERE member_hash = '". $_XXXXX_member_hash ."'
	AND device_id = '". $_XXXXX_device_id ."'
	AND sim_serial_number = '". $_XXXXX_sim_serial_number ."'
	AND telephone_number = '". $_XXXXX_telephone_number ."'
	;";
	logger3("tmp_sql",$tmp_sql);
	$member_devices_id_exists = "";
	$member_devices_id_exists = getTHECASHIER($tmp_sql);
	logger3("member_devices_id_exists",$member_devices_id_exists);
	
	// keep profiles unique
	
	if(!$member_devices_id_exists) {
		
		$tmp_sql = "INSERT INTO `member_devices`(
		`member_devices_id`
		, `member_hash`
		, `device_id`
		, `sim_serial_number`
		, `telephone_number`
		, `status`
		, `datetime_created`
		, `datetime_updated`
		) VALUES (
		'". $_XXXXX_member_devices_id ."'
		,'". $_XXXXX_member_hash ."'
		,'". $_XXXXX_device_id ."'
		,'". $_XXXXX_sim_serial_number ."'
		,'". $_XXXXX_telephone_number ."'
		,'". $_XXXXX_status ."'
		,'". $_XXXXX_datetime_created ."'
		,'". $_XXXXX_datetime_updated ."'
		);
		";
		logger3("tmp_sql",$tmp_sql);
		$member_devices_id = insertTHECASHIER($tmp_sql);
		logger3("member_devices_id",$member_devices_id);
	}
	
	### END: SET THE DEVICE ID
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	### ############################################################
	### ### NOW SEND SOME EMAIL:
	### $email_receipt = "registration_personal_photobangk";
	### 
	### 
	### $dear_who = "";
	### $dear_who = $_SESSION['member']['salutation'] . " " . $_SESSION['member']['firstname'] . " " . $_SESSION['member']['lastname'];
	### $transaction_timestamp = $_SESSION['authorization']['timestamp'];
	### // include($_SESSION['template']['company']['file_path'] . "shared/email_receipts.shared");
	### ############################################################
	
	################################################################################################
	### END :: REGISTER ACCOUNT:  PERSONAL
	################################################################################################
	
		

		
		
	################################################################################################
	### START :: REGISTER ACCOUNT:  BUSINESS
	################################################################################################
	
	
	### E-BUSINESS SPECIFIC
	
	//$_SESSION['session']['registration']['business_category'] = "SERVICES"; // i.e., pc / tech support 
	//$_SESSION['session']['registration']['business_subcategory'] = $_SESSION['session']['registration']['business_subcategory']; // "7379"; // i.e., pc / tech support 
	
	
	
	
	$_SESSION['session']['registration']['city'] = $_SESSION['session']['geo']['city'];
	$_SESSION['session']['registration']['state'] = $_SESSION['session']['geo']['region'];
	$_SESSION['session']['registration']['region'] = $_SESSION['session']['geo']['region'];
	$_SESSION['session']['registration']['region'] = $_SESSION['session']['geo']['region'];
	$_SESSION['session']['registration']['postalcode'] = $_SESSION['session']['geo']['cityid'];
	$_SESSION['session']['registration']['country_iso3'] = $_SESSION['session']['geo']['iso3'];
	
	
	$_SESSION['session']['registration']['agreement'] = "YES";
	
	$_SESSION['session']['registration']['transaction_fee'] = $master_config_creditcard_fee_GSP;
	
	$tmp_local_currency = geo_data($_SESSION['session']['geo']['iso3'],"iso3","currency_code");
	
	
	$tmp_system_country = "USA";
	
	if(stristr($tmp_local_currency,$_SESSION['template']['company']['currency1'])) {
		$currency_tranlsation = "Off";
	} else {
		$currency_tranlsation = "On";
	}
	
	$currency_0_country = $tmp_system_country;
	$currency_0_iso3 = $_SESSION['template']['company']['currency1'];
	$country_iso3 = $_SESSION['session']['registration']['country_iso3'];
	$currency_code = $tmp_local_currency;
	$blank_currency_country_2 = "";
	$blank_currency_code_2 = "";
	
	$tmp_gateway_profile = $master_config_default_gateway;
	
	$data_GB = "1";	
	
	
	$always_do_this = true;
	if($always_do_this) {

		$gallery_GB = "";
		
		$gallery_photo_limit = $master_config_photoBANGK_registration_free_gallery;	
		$photoBANGK_background_color = ""; //$master_config_photoBANGK_background_color;
		$photoBANGK_highlight_color = ""; //$master_config_photoBANGK_highlight_color;
		$photoBANGK_frame_color = ""; //$master_config_photoBANGK_gallery_frame_color;
		$photoBANGK_frame_style = ""; //$master_config_photoBANGK_frame_style;
		$photoBANGK_frame_width = ""; //$master_config_photoBANGK_frame_width;
		$photoBANGK_frame_color = ""; //$master_config_photoBANGK_frame_color;
		$photoBANGK_text_color = ""; //$master_config_photoBANGK_text_color;
		$photoBANGK_style_background = ""; //$master_config_photoBANGK_style_background;
		$photoBANGK_style_bg_opacity = ""; //$master_config_photoBANGK_style_bg_opacity;
		$photoBANGK_style_text_color = ""; //$master_config_photoBANGK_style_text_color;
		$photoBANGK_font_size = ""; //$master_config_photoBANGK_font_size;
		$photoBANGK_font_family = ""; //$master_config_photoBANGK_font_family;
		$photoBANGK_font_weight = ""; //$master_config_photoBANGK_font_weight;


		
		if(!empty($_SESSION['session']['registration']['coupon'])) {
		
			$tmp_sql = "SELECT * FROM coupons WHERE coupon = '". $_SESSION['session']['registration']['coupon'] ."';";
			$coupon_details = readTHECASHIER($tmp_sql);
			
			if(
			($coupon_details->free_gallery_space > 0) &&
			(
			($coupon_details->expiration == "0") ||
			($coupon_details->expiration >= $coupon_details->used)
			)
			) {
				$gallery_photo_limit = $coupon_details->free_gallery_space;
				
				$new_used = $coupon_details->used + 1;
				$tmp_sql = "
				UPDATE coupons 
				SET 
				used = '$new_used',
				datetime_updated = '". $registration_datetime ."'
				WHERE coupon = '". $_SESSION['session']['registration']['coupon'] ."';
				";
				$coupon_update = updateTHECASHIER($tmp_sql);
			}

			
		}
	}
	
	
	if($_SESSION['session']['registration']['business_customer_support_emailaddress'] == "@") {
		$_SESSION['session']['registration']['business_customer_support_emailaddress'] = "";
	}
	
	
	$account_hash = $business_account_hash = hash_me();
	### CREATE A BUSINESS ACCOUNT:
	$tmp_sql = "INSERT into accounts (
		`accountid`,
		`hash`,
		
		`template_company_hash`,
		
		`accounttype`,
		`business_category`,
		
		`business_subcategory`,
		`descriptor`,
		
		`accountname`,
		`business_type`,
		
		`department`,
		`streetaddress1`,
		
		`streetaddress2`,
		`city`,
		
		`state`,
		`region`,
		
		`postalcode`,
		`country_iso3`,
		
		`dayphone`,
		`eveningphone`,
		
		`faxphone`,
		`mobilephone`,
		
		`emailaddress`,
		`agreement`,
		
		`photoBANGK_background_color`,
		`photoBANGK_highlight_color`,
		
		`photoBANGK_frame_color`,
		`photoBANGK_text_color`,
		
		`photoBANGK_style_background`,
		`photoBANGK_style_bg_opacity`,
		`photoBANGK_style_text_color`,
		
		`photoBANGK_font_size`,
		`photoBANGK_font_family`,
		`photoBANGK_font_weight`,
		
		
		`currency_translation`,
		
		`currency_0_country`,
		`currency_0_iso3`,
		
		`currency_country_1`,
		`currency_code_1`,
		
		`currency_country_2`,
		`currency_code_2`,
		
		`product_type`,
		`transaction_fee_total`,
		
		`transaction_fee_my`,
		`retry_fee`,
		
		`gateway_profile`,
		
		`sponsor_fee`,
		
		`status_payments`,
		`sponsor_accountid`,
		
		`sponsor_terms`,
		`data_GB`,
		
		`gallery_GB`,
		`gallery_photo_limit`,
		
		`whitelabel_business_account_hash`,
		
		`creator_memberid`,
		`creator_member_hash`,
		
		`created`,
		`updated`
	) VALUES (
		'" . $blank_accountid . "',
		'" . $business_account_hash . "',
		
		'" . $_SESSION['template']['company']['hash'] . "',
		
		'Business',
		'" . addslashes($_SESSION['session']['registration']['business_category']) . "',
		
		'" . addslashes($_SESSION['session']['registration']['business_subcategory']) . "',
		'" . addslashes($_SESSION['session']['registration']['unique_descriptor']) . "',
		
		'" . addslashes($_SESSION['session']['registration']['business_name']) . "',
		'" . addslashes($_SESSION['session']['registration']['business_type']) . "',
		
		'" . addslashes($_SESSION['session']['registration']['department']) . "',
		'" . addslashes($_SESSION['session']['registration']['streetaddress_1']) . "',
		
		'" . addslashes($_SESSION['session']['registration']['streetaddress_2']) . "',
		'" . addslashes($_SESSION['session']['registration']['city']) . "',
		
		'" . addslashes($_SESSION['session']['registration']['state']) . "',
		'" . addslashes($_SESSION['session']['registration']['region']) . "',
		
		'" . addslashes($_SESSION['session']['registration']['postalcode']) . "',
		'" . addslashes($country_iso3) . "',
		
		'" . addslashes($_SESSION['session']['registration']['phone_primary']) . "',
		'" . addslashes($_SESSION['session']['registration']['phone_secondary']) . "',
		
		'" . addslashes($_SESSION['session']['registration']['phone_fax']) . "',
		'" . addslashes($_SESSION['session']['registration']['mobilephone']) . "',
		
		'" . addslashes($_SESSION['session']['registration']['business_customer_support_emailaddress']) . "',
		'" . addslashes($_SESSION['session']['registration']['agreement']) . "',
		
		'". $photoBANGK_background_color ."',
		'". $photoBANGK_highlight_color ."',
		
		'". $photoBANGK_frame_color ."',
		'". $photoBANGK_text_color ."',
		
		
		'". $photoBANGK_style_background ."',
		'". $photoBANGK_style_bg_opacity ."',
		'". $photoBANGK_style_text_color ."',

		
		
		
		
		
		'". $photoBANGK_font_size ."',
		'". $photoBANGK_font_family ."',
		
		'". $photoBANGK_font_weight ."',
		'" . $currency_tranlsation . "',
		
		'" . $currency_0_country . "',
		'" . $currency_0_iso3 . "',
		
		'" . $country_iso3 . "',
		'" . $currency_code . "',
		
		'" . $blank_currency_country_2 . "',
		'" . $blank_currency_code_2 . "',
		
		'" . $blank_product_type . "',
		'" . $_SESSION['session']['registration']['transaction_fee'] . "',
		
		'" . $_SESSION['session']['registration']['transaction_fee'] . "',
		'" . $master_config_retry_fee . "',
		
		'" . $tmp_gateway_profile . "',
		'" . $tmp_sponsor_fee . "',
		'ON',
		
		'" . $_SESSION['member']['sponsor_accountid'] . "',
		'" . $_SESSION['member']['sponsor_terms'] . "',
		
		'" . $data_GB . "',
		'" . $gallery_GB . "',
		'" . $gallery_photo_limit . "',
		
		'" . $incoming_vars['whitelabel_business_account_hash'] . "',
		
		'" . $_SESSION['member']['memberid'] . "',
		'" . $_SESSION['member']['hash'] . "',
		
		'" . $registration_datetime . "',
		
		'" . $registration_datetime . "'
		);";
	logger3("tmp_sql",$tmp_sql);
	$tmp_accountid = $business_accountid = insertTHECASHIER($tmp_sql);
	logger3("business_accountid",$tmp_accountid);
	//exit;
	
	
	### SET OPENING ACCOUNT BALANCE
	$new_account_balance = "0.00";
	
	
	### NOW SET AN ACCOUNT BALANCE:
	$tmp_sql = "INSERT into balances (
		`balanceid`,
		`platform`,
		`currency_iso3`,
		`accountid`,
		`account_balance`,
		`approved`,
		`sponsor_balance`,
		`available`,
		`created`
	) VALUES (
		'" . $blank_balanceid . "',
		'" . echo_platform() . "',
		'" . $_SESSION['template']['company']['currency1'] . "',
		'" . $tmp_accountid . "',
		'". $new_account_balance ."',
		'0.00',
		'0.00',
		'0.00',
		'" . $registration_datetime . "');";
	logger3("tmp_sql",$tmp_sql);
	$tmp_balanceid = insertTHECASHIER($tmp_sql);
	logger3("tmp_balanceid",$tmp_balanceid);
	
	
	
	### SET PERMISSIONS: ############################
	
	$set_permissionsid = "";
	$set_hash = make_hash();
	$set_memberid = $_SESSION['member']['memberid'];
	$set_accountid = $tmp_accountid;
	$set_accounttype = "Business";
	$set_permissions = "MASTER";
	$set_admin = "";
	$set_login_biometric_verification = "OFF";
	$set_status = "ACTIVE";
	$set_notification_firstname = "";
	$set_notification_lastname = "";
	$set_creator_memberid = $_SESSION['member']['memberid'];
	$set_created = ""; // legacy
	$set_datetime_created = $registration_datetime;
	$set_datetime_updated = $registration_datetime;
	
	$tmp_sql = "INSERT into permissions (
		`permissionsid`,
		`hash`,
		`memberid`,
		`accountid`,
		`accounttype`,
		`permissions`,
		`admin`,
		`login_biometric_verification`,
		`status`,
		`notification_firstname`,
		`notification_lastname`,
		`creator_memberid`,
		`created`,
		`datetime_created`,
		`datetime_updated`
	) VALUES (
		'" . $set_permissionsid . "',
		'" . $set_hash . "',
		'" . $set_memberid . "',
		'" . $set_accountid . "',
		'" . $set_accounttype . "',
		'" . $set_permissions . "',
		'" . $set_admin . "',
		'" . $set_login_biometric_verification . "',
		'" . $set_status . "',
		'" . $set_notification_firstname . "',
		'" . $set_notification_lastname . "',
		'" . $set_creator_memberid . "',
		'" . $set_created . "',
		'" . $set_datetime_created . "',
		'" . $set_datetime_updated . "');";
	logger3("tmp_sql",$tmp_sql);
	$permissionsid = insertTHECASHIER($tmp_sql);
	logger3("permissionsid",$permissionsid);
	
	
	
	### SET IDS: ############################
	
	$set_idid = "";
	$set_hash = make_hash();
	//$set_filename = addslashes($_SESSION['session']['registration']['government_id']['filename']);
	$set_memberid = $_SESSION['member']['memberid'];
	$set_accountid = $tmp_accountid;
	$set_status = ($_SESSION['session']['registration']['do_this_later_checkbox']=='yes') ? "Active" : "Later";
	$set_datetime_created = $registration_datetime;
	$set_datetime_updated = $registration_datetime;
	
	# COPY ID FILE:
	//$tmp_extension = explode(".",$_SESSION['session']['registration']['government_id']['filename']);
	$count_extension = count($tmp_extension) - 1;
	$file_extension = $tmp_extension[$count_extension];
	$new_filename = $set_hash . "." . $file_extension;
	//copy("ids/" . $_SESSION['session']['registration']['government_id']['filename'],"ids/" . $new_filename);
	$set_status = "";
	
	$tmp_sql = "INSERT into ids (
		`idid`,
		`hash`,
		`filename`,
		`memberid`,
		`accountid`,
		`status`,
		`datetime_created`,
		`datetime_updated`
	) VALUES (
		'" . $set_idid . "',
		'" . $set_hash . "',
		'" . $set_filename . "',
		'" . $set_memberid . "',
		'" . $set_accountid . "',
		'" . $set_status . "',
		'" . $set_datetime_created . "',
		'" . $set_datetime_updated . "');";
	logger3("tmp_sql",$tmp_sql);
	$idid = insertTHECASHIER($tmp_sql);
	logger3("idid",$idid);
	###################################################
	
	
	
	
	
	
	if(!$mobile_number) {
		### GET EMAILADDRESSID
		$tmp_emailaddress = $_SESSION['session']['registration']['emailaddress'];
		$tmp_memberid = $memberid;
		$tmp_accountid = $accountid;
		
		$tmp_member_hash = $member_hash;
		$tmp_account_hash = $personal_account_hash;
		$tmp_account_hash_personal = $personal_account_hash;
		$tmp_account_hash_business = $business_account_hash;
		
		$tmp_status = "SUBMITTED";
		
		
		
		
		$tmp_permissionsid = $permissionsid;
		$tmp_creator_memberid = $memberid;
		
		$_XXXXX_whitelabel_business_account_hash = $incoming_vars['whitelabel_business_account_hash'];
		$_XXXXX_sponsor_business_account_hash = $incoming_vars['sponsor_business_account_hash'];		

		
		$set_datetime_created = $registration_datetime;
		$set_datetime_updated = $registration_datetime;
		
		$tmp_query = "INSERT into email_addresses (
			`emailaddressesid`,
			`emailaddress`,
			`memberid`,
			`accountid`,
			
			`member_hash`,
			`account_hash`,
			`account_hash_personal`,
			`account_hash_business`,
			
			`status`,
			
			

			
			`permissionsid`,
			`creator_memberid`,
			
						
			`whitelabel_business_account_hash`,
			`sponsor_business_account_hash`,
			
						
			
			`datetime_created`,
			`datetime_updated`
		) VALUES (
			'" . $tmp_emailaddressesid . "',
			'" . $tmp_emailaddress . "',
			'" . $tmp_memberid . "',
			'" . $tmp_accountid . "',
			
			'" . $tmp_member_hash . "',
			'" . $tmp_account_hash . "',
			'" . $tmp_account_hash_personal . "',
			'" . $tmp_account_hash_business . "',

			
			'" . $tmp_status . "',
			

		
			
			
			'" . $tmp_permissionsid . "',
			'" . $tmp_creator_memberid . "',
			
			
			'". $_XXXXX_whitelabel_business_account_hash ."',
			'". $_XXXXX_sponsor_business_account_hash ."',				
			
			'" . $set_datetime_created . "',
			'" . $set_datetime_updated . "');";
		logger3("tmp_query",$tmp_query);
		$emailaddressesid = insertTHECASHIER($tmp_query);
		logger3("emailaddressesid",$emailaddressesid);
	
	} else {
		
		### GET PHONENUMBERID
		$_XXXXX_phonenumberid = "";
		$_XXXXX_hash = $phone_number_hash = hash_me();
		$_XXXXX_memberid = $memberid;
		$_XXXXX_member_hash = $member_hash;
		$_XXXXX_account_hash = $personal_account_hash;
		
		$_XXXXX_account_hash_personal = $personal_account_hash;
		$_XXXXX_account_hash_business = $business_account_hash;
		
		$_XXXXX_whitelabel_business_account_hash = $incoming_vars['whitelabel_business_account_hash'];
		
		$_XXXXX_sponsor_business_account_hash = $_XXXXX_sponsor_accountid;
		
		
		$_XXXXX_country_iso3 = $mobile_number_country_calling_code_iso3;
		$_XXXXX_calling_code = $mobile_number_country_calling_code;
		$_XXXXX_number = $mobile_number;
		$_XXXXX_description = "MOBILE";
		$_XXXXX_status = "SUBMITTED";
		$_XXXXX_sponsor_accountid = $_XXXXX_sponsor_accountid;
		$_XXXXX_created = datetime();
		$_XXXXX_updated = $_XXXXX_created;
		$tmp_sql = "INSERT INTO `phone_numbers`
					(
						`phonenumberid`
						, `hash`
						, `memberid`
						, `member_hash`
						, `account_hash`
						
						, `account_hash_personal`
						, `account_hash_business`
						
						, `country_iso3`
						, `calling_code`
						, `number`
						, `description`
						, `status`
						
						
						, `whitelabel_business_account_hash`
						, `sponsor_business_account_hash`
						
						
						, `sponsor_accountid`
						, `created`
						, `updated`
					) VALUES (
						'". $_XXXXX_phonenumberid ."'
						,'". $_XXXXX_hash ."'
						,'". $_XXXXX_memberid ."'
						,'". $_XXXXX_member_hash ."'
						,'". $_XXXXX_account_hash ."'
						
						,'". $_XXXXX_account_hash_personal ."'
						,'". $_XXXXX_account_hash_business ."'
						
						,'". $_XXXXX_country_iso3 ."'
						,'". $_XXXXX_calling_code ."'
						,'". $_XXXXX_number ."'
						,'". $_XXXXX_description ."'
						,'". $_XXXXX_status ."'
						
						,'". $_XXXXX_whitelabel_business_account_hash ."'
						,'". $_XXXXX_sponsor_business_account_hash ."'
						
						,'". $_XXXXX_sponsor_accountid ."'
						,'". $_XXXXX_created ."'
						,'". $_XXXXX_updated ."'
					);
					";
		logger3("tmp_sql",$tmp_sql);
		$phonenumberid = insertTHECASHIER($tmp_sql);
		logger3("phonenumberid",$phonenumberid);
		
		
	}

	
	
	
	
	
	
	
	
	
	
	
	
	
	### NOW UPDATE SESSIONS:
	$tmp_memberid = $_SESSION['member']['memberid']; //$memberid;
	$_SESSION['member'] = $member = "";
	$_SESSION['member'] = $member = member($tmp_memberid);
	//logger3("_SESSION['member']",$_SESSION['member']);
	
	$tmp_accountid = $personal_accountid;
	$_SESSION['account'] = $account = "";
	$_SESSION['account'] = $account = account($tmp_accountid); // shoudl be no account
	//logger3("_SESSION['account']",$_SESSION['account']);
	
	
		
	### NOW CREATE AN EMAIL ACCOUNT FOR THE BUSINESS ACCOUNT:
	
	
	$make_a_new_business_email_account = FALSE;
	if($make_a_new_business_email_account == TRUE) {
		
		logger3("business_accountid",$business_accountid);
		make_a_new_business_email_account($business_accountid=$business_accountid);
	}
	
	### now set the account business address if empty (i.e., not required for registration):
	if(
		(empty($_SESSION['session']['registration']['business_customer_support_emailaddress']))
	) {
		
		$tmp_account_details = account($business_accountid);
		
		if(
			(!empty($tmp_account_details[email_account_address]))
			&& ($tmp_account_details[email_account_address] != "@")
		) {
			$tmp_sql = "UPDATE accounts SET emailaddress = '". $tmp_account_details[email_account_address] ."' WHERE accountid = '". $business_accountid ."';";
			updateTHECASHIER($tmp_sql);
		}
	}
	
	
	
	### BUSINESS LINE MAKER:
	$business_line_extension_maker = FALSE;
	if($business_line_extension_maker == TRUE) {
		business_line_extension_maker($business_accountid=$business_accountid,$DID_to_check="");
	}
	
	
	
	//exit;
	
	
	
	############################################################
	### NOW SEND SOME EMAIL:
	############################################################
	### TO NEW: ACCOUNT HOLDER
	############################################################
	
	### $gallery_URL = "https://photo.BANGK.com/". $_SESSION['session']['registration']['business_customer_support_emailaddress'];
	### 
	### 
	### if(!$_SESSION['session']['registration']['business_customer_support_emailaddress']) {
	###   $tmp_account_details = account($business_accountid);
	###   $gallery_URL = "https://photo.BANGK.com/". $tmp_account_details['emailaddress'];
	### }
	### 
	### $email_receipt = "registration_business_photobangk";
	### $dear_who = "";
	### if($_SESSION['member']['salutation']) {
	###   $dear_who = $_SESSION['member']['salutation'] . " ";
	### }
	### $dear_who = $dear_who . $_SESSION['member']['firstname'] . " " . $_SESSION['member']['lastname'];
	### $transaction_timestamp = $_SESSION['authorization']['timestamp'];
	### // include($_SESSION['template']['company']['file_path'] . "shared/email_receipts.shared");
	
	
	###################################################################
	###################################################################
	### START: UPDATE AD CAMPAIGN TRACKING:
	
	
	$tmp_sql = "UPDATE tracking SET
	member_account_hash = '". $_SESSION['member']['hash'] ."'
	,status = 'Downloaded'
	 WHERE tracking_hash = '". $_COOKIE['tracking_hash'] ."'
	";
	logger3("tmp_sql",$tmp_sql);
	$update_results = updateTHECASHIER($tmp_sql,"ad_campaigns");
	logger3("update_results",$update_results);

	
	
	### END: UPDATE AD CAMPAIGN TRACKING
	###################################################################
	###################################################################
	
	
	

}



###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################
###################################################################








logger3("000000 incoming_vars['agent_account_hash']",$incoming_vars['agent_account_hash']);
logger3("000000 account_hash",$account_hash);
logger3("000000 member_hash",$member_hash);
logger3("000000 existing_account_hash",$existing_account_hash);



///// START AGENT REGISTRATION / LOGIN:
if(
	isset($account_hash)
	&& isset($incoming_vars['agent_account_hash'])
) {
	
	//$tmp_login_message = "You may now please complete the on-boarding process for your merchant...";
	$tmp_login_message = "";
	$agent_return['login_message'] = $tmp_login_message;
	$agent_return['member_hash'] = $member_hash;
	$agent_return['account_hash'] = $account_hash;
	echo json_encode($agent_return);
	exit;
	
}
///// END AGENT REGISTRATION / LOGIN!

logger3("9900-verified_member_details",$verified_member_details);
if($verified_member_details) {
	
	logger3("9901-verified_member_details",$verified_member_details);

	#########################################################
	#########################################################
	### START:  PROFILE CALLBACK
	
	
	$_XXXXX_member_hash = $verified_member_details['hash'];
	if(!$_XXXXX_member_hash) $_XXXXX_member_hash = $login_string['member_hash'];
	
	
	
	//// START: PROFILE_UUID ////

	$_XXXXX_PROFILE_UUID = $_COOKIE['PROFILE_UUID'];
	
	if(!$_XXXXX_PROFILE_UUID) {
		$_XXXXX_PROFILE_UUID = $verified_member_details['UUID_for_member_from_client'];
	}
	
	logger3("_XXXXX_PROFILE_UUID",$_XXXXX_PROFILE_UUID);
	
	
	/// check previously cached first
	logger3("_SESSION['incoming_vars']['PROFILE_UUID']",$_SESSION['incoming_vars']['PROFILE_UUID']);
	if(strlen($_SESSION['incoming_vars']['PROFILE_UUID'])>1) {
		$_XXXXX_PROFILE_UUID = $_SESSION['incoming_vars']['PROFILE_UUID'];
	}
	
	
	logger3("_XXXXX_PROFILE_UUID",$_XXXXX_PROFILE_UUID);
	
	logger3("_SESSION['intelitruth']['PROFILE_UUID']",$_SESSION['intelitruth']['PROFILE_UUID']);
	
	if(strlen($_SESSION['intelitruth']['PROFILE_UUID'])>1) {
		$_XXXXX_PROFILE_UUID = $_SESSION['intelitruth']['PROFILE_UUID'];
	}
	
	logger3("_XXXXX_PROFILE_UUID",$_XXXXX_PROFILE_UUID);
	
	//// END: PROFILE_UUID ////

	
	$tmp_callback_url = "";
	$tmp_callback_url .= $_XXXXX_whitelabel_iframe_callback_url;
	$tmp_callback_url .= "?";
	$tmp_callback_url .= "PROFILE_UUID=". $_XXXXX_PROFILE_UUID;
	$tmp_callback_url .= "&";
	$tmp_callback_url .= "MEMBER_ID=". $_XXXXX_member_hash;
	$tmp_callback_url .= "&";
	$tmp_callback_url .= "PROFILE_STATUS=LOGIN";
	$file_get_contents_results = file_get_contents($tmp_callback_url);
	logger3("file_get_contents_results",$file_get_contents_results);
	
	
	### END:  PROFILE CALLBACK
	#########################################################
	#########################################################
	
	
	//$tmp_login_message = "You may now please complete the on-boarding process for your merchant...";
	//$tmp_login_message = "SUCCESS";
	//$agent_return['login_message'] = $tmp_login_message;
	
	
	
	$incoming_vars['whitelabel_business_account_hash'] = $incoming_vars['whitelabel_business_account_hash'];
	$registration_login_security_process = INTELI_get_registration_login_security_process($whitelabel_account_hash);
	
	
	if($registration_login_security_process == "verified_email_address") {
	
	
	
		$_XXXXX_member_hash = $verified_member_details['hash'];
		$_XXXXX_account_hash = $verified_account_business_hash;
		if(empty($_XXXXX_account_hash)) $_XXXXX_account_hash = $_SESSION['account']['hash'];
		
		$_XXXXX_whitelabel_business_account_hash = $whitelabel_business_account_hash = $incoming_vars['whitelabel_business_account_hash'];
		$_XXXXX_verification_hash = hash_me();
		
		$_XXXXX_verification_PIN = $verification_PIN = random_number_string(4);
		
		$_XXXXX_status = $status = "";
		$_XXXXX_platform_schema = $platform_schema = $incoming_vars['SITE_SCHEMA']; //$platform_SCHEMA;
		$_XXXXX_common_datetime = $datetime = datetime();
		
		$_XXXXX_user_device = $what_device;
		$_XXXXX_HTTP_USER_AGENT = addslashes($_SERVER['HTTP_USER_AGENT']);
		
		$tmp_sql = "INSERT INTO `token_login` (
			
						`verificationid`,
						`hash`, 
						`whitelabel_business_account_hash`, 
						`member_hash`,
						`account_hash`,
						`emailaddress`,
						`verification_hash`,
						`verification_PIN`, 
						`status`, 
						`platform_schema`,
						`user_device`,
						`HTTP_USER_AGENT`,
						`HTTP_USER_AGENT_REQUESTED`, 
						`datetime_created`, 
						`datetime_updated`
		
					) VALUES (
					
					'". $blank_verificationid ."',
					'". hash_me() ."',
					'". $_XXXXX_whitelabel_business_account_hash ."',
					'". $_XXXXX_member_hash ."',
					'". $_XXXXX_account_hash ."',
					'". addslashes($_XXXXX_trim_incoming_emailaddress) ."',
					'". $_XXXXX_verification_hash ."',
					'". $_XXXXX_verification_PIN ."',
					'". $_XXXXX_status ."',
					'". $_XXXXX_platform_schema ."',
					'". $_XXXXX_user_device ."',
					'". $_XXXXX_HTTP_USER_AGENT ."',
					'". $_XXXXX_HTTP_USER_AGENT ."',
					'". $_XXXXX_common_datetime ."',
					'". $_XXXXX_common_datetime ."'
				);
				";	
		logger3("token_login_tmp_sql",$tmp_sql);
		$insert_results = insertTHECASHIER($tmp_sql);
		logger3("1-token_login_insert_results",$insert_results);
		
		
		
		$bmail_to = $_XXXXX_trim_incoming_emailaddress;
		logger3("bmail_to",$bmail_to);
		
		
		$subject_account_name = replace_invalid_byte_sequence3($whitelabel_business_account_details_array['accountname']);
		logger3("bmail_subject",$bmail_subject);
		
		
		$bmail_subject = $subject_account_name . " Verification PIN";
		logger3("bmail_subject",$bmail_subject);
		
			
		//logger3("bmail_message",$bmail_message);
		
		//bmail($bmail_to,$bmail_subject,$bmail_message);
		
		
		
		
		$_XXXXX_whitelabel_account_name = $whitelabel_business_account_details_array['accountname'];
		if($whitelabel_business_account_details_array['business_type']) {
			$_XXXXX_whitelabel_account_name .= " ". $whitelabel_business_account_details_array['business_type']; 
		}
		$_XXXXX_whitelabel_emailaddress = $whitelabel_business_account_details_array['emailaddress_customer_support'];
		if(!$_XXXXX_whitelabel_emailaddress) $_XXXXX_whitelabel_emailaddress = $whitelabel_business_account_details_array['emailaddress'];
	
		
		$bmail_message = "
		<p>Hello!</p>
		<p>Your One-Time Password (SECURITY PIN): <b>". $verification_PIN ."</b></p>
		<br>
		<p>". $_XXXXX_whitelabel_account_name . "</p>
		<p>". $_XXXXX_whitelabel_emailaddress . "</p>
		";
	
		logger3("got here:",6);
		//bmail($bmail_to,$bmail_subject,$bmail_message);
		$to_name = $bmail_to;
		logger3("EMAIL (to_name)",$to_name);
		
		$to_emailaddress = $bmail_to;
		logger3("EMAIL (to_emailaddress)",$to_emailaddress);
		
		$subject = $bmail_subject;
		logger3("EMAIL (subject)",$subject);
		
		$html_message = $bmail_message;
		logger3("EMAIL (3-html_message)",$html_message);
		
		$from_name = $_XXXXX_whitelabel_account_name;
		logger3("EMAIL (from_name)",$from_name);
		
		$from_email_address = $_XXXXX_whitelabel_emailaddress;
		logger3("EMAIL (from_email_address)",$from_email_address);
		
		mailer_intelitruth_registration($to_name,$to_emailaddress,$subject,$html_message,$from_name,$from_email_address);
	
	
	
	
	
	
	
	
		
		
		
		
		
		
		$agent_return['login_message'] = "\nSUCCESS!\n\nA 4-Digit Verification PIN has been sent to [". $_XXXXX_trim_incoming_emailaddress ."].\n\nPlease check your INBOX (or SPAM folder), and then return to this LOGIN screen to confirm the Verification PIN.";
		
		
		$agent_return['member_hash'] = $verified_member_details['hash'];
		$agent_return['account_hash'] = $verified_account_business_hash;
		
		$json_encode_echo = json_encode($agent_return);
		logger3("verified-json_encode_echo",$json_encode_echo);
		echo $json_encode_echo;
		exit;
	
	
	} /// end verifie email only
	
	
}



	


///// START DYNAMIC REGISTRATION / LOGIN:

$tmp_sql = "SELECT * 
			FROM onboarding_preferences
			WHERE whitelabel_business_account_hash = '". $incoming_vars['whitelabel_business_account_hash'] ."'
			AND form_name = 'DEFAULT'
			;";
logger3("000000 tmp_sql",$tmp_sql);
$whitelabel_business_account_onboarding_preferences = object_to_array_v2(readTHECASHIER($tmp_sql,"intelitruth"));
logger3("000000 whitelabel_business_account_onboarding_preferences",$whitelabel_business_account_onboarding_preferences);




logger3("000000 account_hash",$account_hash);
logger3("000000 whitelabel_business_account_onboarding_preferences['onboarding_account_registration_process']",$whitelabel_business_account_onboarding_preferences['onboarding_account_registration_process']);






if(
	isset($account_hash)
	&& stristr($whitelabel_business_account_onboarding_preferences['onboarding_account_registration_process'],"unverified")
) {
	
	
	
	
	#########################################################
	#########################################################
	### START:  PROFILE CALLBACK
	
	
	$_XXXXX_member_hash = $_XXXXX_member_hash;
	if(!$_XXXXX_member_hash) $_XXXXX_member_hash = $login_string['member_hash'];
	if(!$_XXXXX_member_hash) $_XXXXX_member_hash = $existing_phone_number_member_hash;
	
	
	
	//// START: PROFILE_UUID ////

	$_XXXXX_PROFILE_UUID = $_COOKIE['PROFILE_UUID'];
	
	if(!$_XXXXX_PROFILE_UUID) {
		$_XXXXX_PROFILE_UUID = $_SESSION['member']['UUID_for_member_from_client'];
	}
	
	logger3("_XXXXX_PROFILE_UUID",$_XXXXX_PROFILE_UUID);
	
	
	/// check previously cached first
	logger3("_SESSION['incoming_vars']['PROFILE_UUID']",$_SESSION['incoming_vars']['PROFILE_UUID']);
	if(strlen($_SESSION['incoming_vars']['PROFILE_UUID'])>1) {
		$_XXXXX_PROFILE_UUID = $_SESSION['incoming_vars']['PROFILE_UUID'];
	}
	
	
	logger3("_XXXXX_PROFILE_UUID",$_XXXXX_PROFILE_UUID);
	
	logger3("_SESSION['intelitruth']['PROFILE_UUID']",$_SESSION['intelitruth']['PROFILE_UUID']);
	
	if(strlen($_SESSION['intelitruth']['PROFILE_UUID'])>1) {
		$_XXXXX_PROFILE_UUID = $_SESSION['intelitruth']['PROFILE_UUID'];
	}
	
	logger3("_XXXXX_PROFILE_UUID",$_XXXXX_PROFILE_UUID);
	
	//// END: PROFILE_UUID ////

	
	$tmp_callback_url = "";
	$tmp_callback_url .= $_XXXXX_whitelabel_iframe_callback_url;
	$tmp_callback_url .= "?";
	if($_XXXXX_PROFILE_UUID) {
		$tmp_callback_url .= "PROFILE_UUID=". $_XXXXX_PROFILE_UUID;
		$tmp_callback_url .= "&";
	}
	$tmp_callback_url .= "MEMBER_ID=". $_XXXXX_member_hash;
	$tmp_callback_url .= "&";
	$tmp_callback_url .= "PROFILE_STATUS=LOGIN";
	
	logger3("tmp_callback_url",$tmp_callback_url);
	
	$file_get_contents_results = file_get_contents($tmp_callback_url);
	logger3("file_get_contents_results",$file_get_contents_results);
	
	
	### END:  PROFILE CALLBACK
	#########################################################
	#########################################################
	
	
	
	
	
	//$tmp_login_message = "You may now please complete the on-boarding process for your merchant...";
	$tmp_login_message = "SUCCESS";
	$agent_return['login_message'] = $tmp_login_message;
	$agent_return['member_hash'] = $member_hash;
	$agent_return['account_hash'] = $account_hash;
	
	$json_encode_echo = json_encode($agent_return);
	logger3("UN-verified-json_encode_echo",$json_encode_echo);
	echo $json_encode_echo;
	exit;

	
}
///// END AGENT REGISTRATION / LOGIN!



$tmp_sql = "SELECT *
			FROM email_addresses
			WHERE emailaddress = ''
			AND whitelabel_business_account_hash = '". $incoming_vars['whitelabel_business_account_hash'] ."'
			AND status = 'VERIFIED'
			ORDER BY datetime_created DESC
			LIMIT 1
			";
logger3("tmp_sql",$tmp_sql);
			
$verified_email_exists = object_to_array_v2(readTHECASHIER($tmp_sql));
logger3("verified_email_exists",$verified_email_exists);


logger3("returning_account_hash",$returning_account_hash);



if(
	isset($returning_account_hash)
	&& stristr($verified_email_exists['status'],"VERIFIED")
	&& stristr($whitelabel_business_account_onboarding_preferences['onboarding_account_registration_process'],"verified_email_address")
) {
	$login_string = "";
	$login_string = array();
	$login_string['member_hash'] = $returning_member_hash;
	$login_string['account_hash'] = $returning_account_hash;
	logger3("login_string",$login_string);
	
	$login_string_json = json_encode($login_string);
	
	echo $login_string_json;
	
	exit;
}
///// END AGENT REGISTRATION / LOGIN!

			
			
			
			
			
logger3("9-account_hash",$account_hash);



/// received either by way of registration or login (above):
if($account_hash) {
	
	
	
	
	
	#########################################################
	#########################################################
	### START:  PROFILE CALLBACK
	
	
	$_XXXXX_member_hash = $_XXXXX_member_hash;
	if(!$_XXXXX_member_hash) $_XXXXX_member_hash = $login_string['member_hash'];
	
	
	
	//// START: PROFILE_UUID ////

	$_XXXXX_PROFILE_UUID = $_COOKIE['PROFILE_UUID'];
	
	if(!$_XXXXX_PROFILE_UUID) {
		$_XXXXX_PROFILE_UUID = $_SESSION['member']['UUID_for_member_from_client'];
	}
	
	logger3("_XXXXX_PROFILE_UUID",$_XXXXX_PROFILE_UUID);
	
	
	/// check previously cached first
	logger3("_SESSION['incoming_vars']['PROFILE_UUID']",$_SESSION['incoming_vars']['PROFILE_UUID']);
	if(strlen($_SESSION['incoming_vars']['PROFILE_UUID'])>1) {
		$_XXXXX_PROFILE_UUID = $_SESSION['incoming_vars']['PROFILE_UUID'];
	}
	
	
	logger3("_XXXXX_PROFILE_UUID",$_XXXXX_PROFILE_UUID);
	
	logger3("_SESSION['intelitruth']['PROFILE_UUID']",$_SESSION['intelitruth']['PROFILE_UUID']);
	
	if(strlen($_SESSION['intelitruth']['PROFILE_UUID'])>1) {
		$_XXXXX_PROFILE_UUID = $_SESSION['intelitruth']['PROFILE_UUID'];
	}
	
	logger3("_XXXXX_PROFILE_UUID",$_XXXXX_PROFILE_UUID);
	
	//// END: PROFILE_UUID ////

	
	$tmp_callback_url = "";
	$tmp_callback_url .= $_XXXXX_whitelabel_iframe_callback_url;
	$tmp_callback_url .= "?";
	$tmp_callback_url .= "PROFILE_UUID=". $_XXXXX_PROFILE_UUID;
	$tmp_callback_url .= "&";
	$tmp_callback_url .= "MEMBER_ID=". $_XXXXX_member_hash;
	$tmp_callback_url .= "&";
	$tmp_callback_url .= "PROFILE_STATUS=LOGIN";
	$file_get_contents_results = file_get_contents($tmp_callback_url);
	logger3("file_get_contents_results",$file_get_contents_results);
	
	
	### END:  PROFILE CALLBACK
	#########################################################
	#########################################################
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	$_SESSION['account'] = account($account_hash);
	
	logger3("_SESSION['account']",$_SESSION['account']);
	
	# photoblast://deeplink/verifyemail?account_hash=f4ea4d1dac692ad15d3ecddf19100256&account_name=Shahid
	
	
	
	$whitelabel_business_account_hash = $incoming_vars['whitelabel_business_account_hash'];
	$verification_hash = hash_me();
	
	$verification_PIN = random_number_string(4);
	
	$status = "";
	$platform_schema = $incoming_vars['SITE_SCHEMA']; //$platform_SCHEMA;
	$datetime = datetime();
	
	$_XXXXX_user_device = $what_device;
	$_XXXXX_HTTP_USER_AGENT = addslashes($_SERVER['HTTP_USER_AGENT']);
	
	$tmp_sql = "INSERT INTO `token_login` (
					`verificationid`, 
					`hash`, 
					`whitelabel_business_account_hash`, 
					`member_hash`,
					`account_hash`,
					`emailaddress`,
					`verification_hash`,
					`verification_PIN`, 
					`status`, 
					`platform_schema`,
					
					`user_device`,
					`HTTP_USER_AGENT`,
					
					`HTTP_USER_AGENT_REQUESTED`, 
					
					`datetime_created`, 
					`datetime_updated`
	
				) VALUES (
	
					'$blank_verificationid',
					'". hash_me() ."',
					'$whitelabel_business_account_hash',
					'$member_hash',
					'$account_hash',
					
					'". $trim_incoming_emailaddress ."',
					
					'$verification_hash',
					
					'". $verification_PIN ."',
					
					'$status',
					'$platform_schema',
					'". $_XXXXX_user_device ."',
					'". $_XXXXX_HTTP_USER_AGENT ."',
					'". $_XXXXX_HTTP_USER_AGENT ."',
					'$datetime',
					'$datetime'
				);
			";	
	logger3("token_login_tmp_sql",$tmp_sql);
	$insert_results = insertTHECASHIER($tmp_sql);
	logger3("2-token_login_insert_results",$insert_results);
	//$_SESSION['account']['hash']


///	<!--
///	<img src='http://". $_SESSION['template']['company']['host_images'] ."/button_click_here_validation.png' border='0'>/
///	<br>
///	-->
	
	
	// if the new parameters are in place...
	logger3("incoming_vars['emailaddress']",$incoming_vars['emailaddress']);
	logger3("mobile_number",$mobile_number);
	logger3("incoming_vars['PAYYAP_version']",$incoming_vars['PAYYAP_version']);
	if(
		(($incoming_vars['emailaddress']) || ($mobile_number))
		&& ($incoming_vars['PAYYAP_version'] >= 5.0)
		
	) {
		
		
		if(!$mobile_number) {
			### get email address details
			$tmp_sql = "SELECT * 
						FROM email_addresses 
						WHERE emailaddress = '". $incoming_vars['emailaddress'] ."';";
			logger3("tmp_sql",$tmp_sql);
			$email_address_details = readTHECASHIER($tmp_sql);
			logger3("email_address_details",$email_address_details);
			
			### get claimed member details
			$tmp_sql = "SELECT * 
						FROM members 
						WHERE emailaddress = '". $incoming_vars['emailaddress'] ."';";
			logger3("tmp_sql",$tmp_sql);
			$claimed_member_details = readTHECASHIER($tmp_sql);
			logger3("claimed_member_details",$claimed_member_details);
		
		} else { // new mobile number verification
			
			### get PHONENUMBER details
			$tmp_sql = "SELECT * FROM phone_numbers 
						WHERE calling_code = '". $mobile_number_country_calling_code ."'
						AND number = '". $mobile_number ."'
						ORDER BY updated DESC
						;";
			logger3("tmp_sql",$tmp_sql);
			$phone_numbers_details = readTHECASHIER($tmp_sql);
			logger3("phone_numbers_details",$phone_numbers_details);
			
			### get claimed member details
			$tmp_sql = "SELECT * 
						FROM members 
						WHERE hash = '". $phone_numbers_details->member_hash ."';";
			logger3("tmp_sql",$tmp_sql);
			$claimed_member_details = readTHECASHIER($tmp_sql);
			logger3("claimed_member_details",$claimed_member_details);
		}
		
		### get device id details
		$tmp_sql = "SELECT * 
					FROM member_devices 
					WHERE member_hash = '". $claimed_member_details->hash ."'
					AND device_id = '". $incoming_vars['PAYYAP_device_id'] ."'
					AND sim_serial_number = '". $incoming_vars['PAYYAP_sim_serial_number'] ."' 
					AND telephone_number = '". $incoming_vars['PAYYAP_device_telephone_number'] ."'
		;";
		logger3("tmp_sql",$tmp_sql);
		$member_devices_details = readTHECASHIER($tmp_sql);
		logger3("member_devices_details",$member_devices_details);
		
		
		if(!$member_devices_details) {
			### START: SET THE DEVICE ID
			$_XXXXX_member_devices_id = "";
			$_XXXXX_member_hash = $claimed_member_details->hash;
			$_XXXXX_device_id = $incoming_vars['PAYYAP_device_id'];
			$_XXXXX_sim_serial_number = $incoming_vars['PAYYAP_sim_serial_number'];
			$_XXXXX_telephone_number = $incoming_vars['PAYYAP_device_telephone_number'];
			$_XXXXX_status = "";
			$_XXXXX_datetime_created = $registration_datetime;
			$_XXXXX_datetime_updated = $registration_datetime;
			
			
				
			$tmp_sql = "INSERT INTO `member_devices`(
			`member_devices_id`
			, `member_hash`
			, `device_id`
			, `sim_serial_number`
			, `telephone_number`
			, `status`
			, `datetime_created`
			, `datetime_updated`
			) VALUES (
			'". $_XXXXX_member_devices_id ."'
			,'". $_XXXXX_member_hash ."'
			,'". $_XXXXX_device_id ."'
			,'". $_XXXXX_sim_serial_number ."'
			,'". $_XXXXX_telephone_number ."'
			,'". $_XXXXX_status ."'
			,'". $_XXXXX_datetime_created ."'
			,'". $_XXXXX_datetime_updated ."'
			);
			";
			logger3("tmp_sql",$tmp_sql);
			$member_devices_id = insertTHECASHIER($tmp_sql);
			logger3("member_devices_id",$member_devices_id);
		}
		
		### END: SET THE DEVICE ID










		
		
		
		
		
		logger3("email_address_details->status",$email_address_details->status);
		logger3("member_devices_details->member_hash",$member_devices_details->member_hash);
		logger3("claimed_member_details->hash",$claimed_member_details->hash);
		
		logger3("got here:",1);
		//if($incoming_vars['PAYYAP_sim_serial_number'] == '89014103211118510720') $member_device_details->member_hash = $claimed_member_details->hash
		
		
		$auto_login_status = "OFF"; // turn ON/OFF auto-login for PAYYAP users
		// this needs to be updates to that.. auto-login is available ONCE per email verification...
		
		
		if(!$mobile_number) {
			
			logger3("got here:",2);
			$verification_status = $email_address_details->status;
			
		} else {
			
			logger3("got here:",3);
			$verification_status = $phone_numbers_details->status;
			
		}
		
		
		logger3("verification_status",$verification_status);
		logger3("member_devices_details->member_hash",$member_devices_details->member_hash);
		logger3("auto_login_status",$auto_login_status);
		
		
		
		if(
			(
				stristr($verification_status,"ACTIVE") 
				|| stristr($verification_status,"VERIFIED")
			)
			&& ($member_devices_details->member_hash)
			&& ($auto_login_status == "ON")
		) {
			
			logger3("got here:",4);
			
			
			
			
			$_SESSION['member'] = member($claimed_member_details->hash);
			logger3("_SESSION['member']",$_SESSION['member']);
			
			$_SESSION['account'] = account($_SESSION['member']['accounts']['business']['0']);
			//logger("_SESSION['account']",$_SESSION['account']);
			
			$message = "
			<table style='width:100%;'>
			<tr>
			<td style='width:100%; font-size:18px; line-height:35px; border-color:#000088; border-style:ridge; border-width:0px; padding:20px;'>
			member name: ". $_SESSION['member']['firstname']. " ". $_SESSION['member']['lastname']. " (". $_SESSION['member']['emailaddress'] . ")
			<br>
			account_name: ". $_SESSION['account']['account_name']. " (". $_SESSION['account']['emailaddress'] . ")
			<br>
			account_hash: ". $_SESSION['account']['hash']. "
			<hr>
			HTTP_HOST / SERVER_ADDR: ". $_SERVER['HTTP_HOST'] . " [". $_SERVER['SERVER_ADDR'] ."]
			<br>
			SCRIPT_FILENAME: ". $_SERVER['SCRIPT_FILENAME'] . "
			<br>
			HTTP_REFERER: ". $_SERVER['HTTP_REFERER'] . "
			<br>
			IP COUNTRY (ISO3): ".$_SESSION['session']['geo']['ip']. " (".$_SESSION['session']['geo']['city'].", ".$_SESSION['session']['geo']['iso3'].")
			<br>
			HTTP_USER_AGENT: [". $_SERVER['HTTP_USER_AGENT'] ."]
			<br>
			HTTP_COOKIE: [". $_SERVER['HTTP_COOKIE'] ."]
			<hr>
			_SESSION['member']['memberid']: [". $_SESSION['member']['memberid'] ."]
			<br>
			_SESSION['account']['accountid']: [". $_SESSION['account']['accountid'] ."]
			</td>
			<tr>
			</table>
			";
			bmailalert($subject="App Verified LOGIN",$message);
			
			$login_string = "";
			$login_string = array();
			$login_string['login_message'] = "SUCCESS";
			$login_string['member_hash'] = $_SESSION['member']['hash'];
			$login_string['account_hash'] = $_SESSION['account']['hash'];
			$login_string_json = json_encode($login_string);
			
			
			
			logger3("_SESSION['member']['hash']",$_SESSION['member']['hash']);
			logger3("login_string_json",$login_string_json);
			
			
			echo $login_string_json;

			
			exit;
			//exit will prevent any further validation emails from getting through.
			/// this may cause problems ?
		}
	}
	
	logger3("got here:",5);
	
	
	
		
	////////// START: ADMIN EMAIL ALERT: ////////////////////

	/// whitelabel branding
	$tmp_name = $_SESSION['template']['company']['name'];
	if($whitelabel_business_account_details_array['accountname']) $tmp_name = $whitelabel_business_account_details_array['accountname'];

	
	
	//$subject_account_name = preg_replace("/[^A-Za-z0-9 ]/", '', $whitelabel_business_account_details_array['accountname']);
	$subject_account_name = replace_invalid_byte_sequence3($whitelabel_business_account_details_array['accountname']);
	
	
	$bmail_subject = $subject_account_name . " Validation Link";
	
	//if(!empty($incoming_vars['SITE_TITLE'])) $bmail_subject = strtoupper($incoming_vars['SITE_TITLE']) . " Validation Link";
	
	$bmail_message = "";
	
	
	$host_gateway_url = $_SESSION['template']['company']['host_gateway'] ."/";
	$host_gateway_url = $_SESSION['template']['company']['domain'] ."/link_gateway/";
	
	
	/*
		$bmail_message .= "
	<center>
	<a href='http://". $host_gateway_url ."nsdbAPP_account_validation.gate?verification_hash=". $verification_hash ."&SITE_SCHEMA=". $incoming_vars['SITE_SCHEMA'] ."' style='font-size:22px; font-weight:bold; text-decoration:none; line-height:30px; font-family:helvetica neue,verdana,arial;'>
		<span style='font-size:16px;'><b>". $tmp_name ."</b> Validation:</span>
		<br>
		<span style='font-size:18px;'><b>FIRST STEP (1 of 2):</b></span><br>
		<span style='font-size:16px;'><b><u>Click Here</u> to validate your Email Address</b></span><br>
		
	</a>
	</center>";
	
	
	$bmail_message .= "
	<center>
	<a href='http://". $host_gateway_url ."nsdbAPP_account_validation.gate?verification_hash=". $verification_hash ."&SITE_SCHEMA=". $incoming_vars['SITE_SCHEMA'] ."' style='font-size:22px; font-weight:bold; text-decoration:none; line-height:30px; font-family:helvetica neue,verdana,arial;'>
		<span style='font-size:16px;'><b>". $tmp_name ."</b> Validation:</span>
		<br>
		<span style='font-size:18px;'><b>FIRST STEP (1 of 2):</b></span><br>
		<span style='font-size:16px;'><b><u>Click Here</u> to validate your Email Address</b></span><br>
		
		
	</a>
	PIN: $verification_PIN
	</center>";
	*/
	
	$_XXXXX_whitelabel_account_name = $whitelabel_business_account_details_array['accountname'];
	if($whitelabel_business_account_details_array['business_type']) {
		$_XXXXX_whitelabel_account_name .= " ". $whitelabel_business_account_details_array['business_type']; 
	}
	$_XXXXX_whitelabel_emailaddress = $whitelabel_business_account_details_array['emailaddress_customer_support'];
	if(!$_XXXXX_whitelabel_emailaddress) $_XXXXX_whitelabel_emailaddress = $whitelabel_business_account_details_array['emailaddress'];

	
	$bmail_message = "
	<p>Hello!</p>
	<p>Your One-Time Password (SECURITY PIN): <b>". $verification_PIN ."</b></p>
	<br>
	<p>". $_XXXXX_whitelabel_account_name . "</p>
	<p>". $_XXXXX_whitelabel_emailaddress . "</p>
	";
	
	logger3("EMAIL (1-bmail_message)",$bmail_message);
	
	
	//$bmail_message = "test";
	//logger3("EMAIL (2-bmail_message)",$bmail_message);
	
	
	$bmail_to = $trim_incoming_emailaddress;
	
	if(!$mobile_number) {
	
		logger3("got here:",6);
		//bmail($bmail_to,$bmail_subject,$bmail_message);
		$to_name = $bmail_to;
		logger3("EMAIL (to_name)",$to_name);
		
		$to_emailaddress = $bmail_to;
		logger3("EMAIL (to_emailaddress)",$to_emailaddress);
		
		$subject = $bmail_subject;
		logger3("EMAIL (subject)",$subject);
		
		$html_message = $bmail_message;
		logger3("EMAIL (3-html_message)",$html_message);
		
		$from_name = $_XXXXX_whitelabel_account_name;
		logger3("EMAIL (from_name)",$from_name);
		
		$from_email_address = $_XXXXX_whitelabel_emailaddress;
		logger3("EMAIL (from_email_address)",$from_email_address);
		
		mailer_intelitruth_registration($to_name,$to_emailaddress,$subject,$html_message,$from_name,$from_email_address);
		
		
		
	
	} else {
		
		logger3("got here:",7);
		logger3("got here:",$mobile_number_country_calling_code);
		logger3("got here:",$mobile_number);
		logger3("got here:",$incoming_vars['SITE_SCHEMA']);
		/// SEND SMS:
		
		$country_code = $mobile_number_country_calling_code;
		$mobile_number = $mobile_number;
		$sms_message = "Click to activate your ". $whitelabel_business_account_details_array['accountname'] ." Account: https://". $_SESSION['template']['company']['host_sms'] ."/?verification=".$verification_hash;
		//$sms_message = "test";
		
		send_sms($country_code,$mobile_number,$sms_message);

	}
	////////// END: ADMIN EMAIL ALERT: ///////////////////
	
	
	logger3("got here:",6.1);
	


	$message = "
	<table style='width:100%;'>
	<tr>
	<td style='width:100%; font-size:18px; line-height:35px; border-color:#000088; border-style:ridge; border-width:0px; padding:20px;'>
	member name: ". $_SESSION['member']['firstname']. " ". $_SESSION['member']['lastname']. " (". $_SESSION['member']['emailaddress'] . ")
	<br>
	account_name: ". $_SESSION['account']['account_name']. " (". $_SESSION['account']['emailaddress'] . ")
	<br>
	account_hash: ". $_SESSION['account']['hash']. "
	<hr>
	HTTP_HOST / SERVER_ADDR: ". $_SERVER['HTTP_HOST'] . " [". $_SERVER['SERVER_ADDR'] ."]
	<br>
	SCRIPT_FILENAME: ". $_SERVER['SCRIPT_FILENAME'] . "
	<br>
	HTTP_REFERER: ". $_SERVER['HTTP_REFERER'] . "
	<br>
	IP COUNTRY (ISO3): ".$_SESSION['session']['geo']['ip']. " (".$_SESSION['session']['geo']['city'].", ".$_SESSION['session']['geo']['iso3'].")
	<br>
	HTTP_USER_AGENT: [". $_SERVER['HTTP_USER_AGENT'] ."]
	<br>
	HTTP_COOKIE: [". $_SERVER['HTTP_COOKIE'] ."]
	<hr>
	_SESSION['member']['memberid']: [". $_SESSION['member']['memberid'] ."]
	<br>
	_SESSION['account']['accountid']: [". $_SESSION['account']['accountid'] ."]
	</td>
	<tr>
	</table>
	";
	bmailalert($subject="App REGISTRATION",$message);
	
	logger3("got here:",6.2);
	
	$response_string_to_echo = "";
	
	
	
	if(
		( (stristr($incoming_vars['PAYYAP_device_type'],"iP")) &&  ($incoming_vars['PAYYAP_version'] >= "5.0") )
		|| ( (!stristr($incoming_vars['PAYYAP_device_type'],"iP")) && ($incoming_vars['PAYYAP_version'] >= "6.0") )
	) {
		
		logger3("got here:",6.3);
		/// msg to display in alert()
		
		if(!$mobile_number) {
			
			logger3("got here:",6.4);
			
			//$response_string_to_echo = "\nSUCCESS!\n\nA validation email has been sent to [".$trim_incoming_emailaddress."].\n\nPlease check your INBOX (or SPAM folder) and click on the validation link, and then return to this LOGIN screen to access your new account.";
			
			$response_string_to_echo = "\nSUCCESS!\n\nA 4-Digit Verification PIN has been sent to [".$trim_incoming_emailaddress."].\n\nPlease check your INBOX (or SPAM folder), and then return to this LOGIN screen to confirm the Verification PIN.";
		
		} else {
			
			logger3("got here:",6.5);
			
			$response_string_to_echo = "\nSUCCESS!\n\nA validation SMS has been sent to [". $mobile_number_country_calling_code ."/". $mobile_number ."].\n\nPlease check your SMS messages, click on the validation link, and then return to this LOGIN screen to access your new account.";
		}
		
		
		
		
		if(
			( (stristr($incoming_vars['PAYYAP_device_type'],"iP")) &&  ($incoming_vars['PAYYAP_version'] >= "7.9") )
			|| ( (!stristr($incoming_vars['PAYYAP_device_type'],"iP")) && ($incoming_vars['PAYYAP_version'] >= "9.5") )
		) {		
			
			logger3("got here:",6.6);
			$login_string = "";
			$login_string = array();
			
			$login_string['login_message'] = $response_string_to_echo;
			
			logger3("888-claimed_member_details->hash",$claimed_member_details->hash);
			
			$login_string['member_hash'] = $claimed_member_details->hash;
			$login_string['account_hash'] = $_SESSION['account']['hash'];
			
			$login_string_json = json_encode($login_string);
			
			logger3("_SESSION['member']['hash']",$_SESSION['member']['hash']);
			
			echo $login_string_json;
	
			return TRUE;
			
			exit;
			
			
			
			
		}
		
	} else {
		
		logger3("got here:",6.7);
		$response_string_to_echo = "OK";
	}
	
	logger3("response_string_to_echo",$response_string_to_echo);

	logger3("got here:",6.8);

	echo "<html>";
	echo "<head>";
	echo '
		<title><?=$company_name;?> Validation</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<!-- <META NAME="ROBOTS" CONTENT="INDEX,FOLLOW"> -->
		<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
		<meta charset="utf-8">
    	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<meta name="author" content="<?=$_SESSION[template][company][name_formal];?>">
		<meta name="copyright" content="2017+" />
		
		<link rel="icon" type="image/png" href="https://<?=$_SESSION[template][company][host_images];?>/<?=$_SESSION[template][company][favicon];?>?x=1"/>
		<link rel="shortcut icon" type="image/png" href="https://images.intelitruth.com/favicon_intelitruth.png?x=1"/>
		
    	<title><?=$_SESSION[template][company][slogan1];?></title>"
    	';
    echo "</head>";	
	echo $response_string_to_echo;
	echo "</html>";
	
	


}


logger3("got here:",6.9);







### END: SESSIONS & STUFF.
#
#
#
include($_SESSION['template']['company']['file_path'] . "shared/end_verified_session.shared");

?>