<script>
	get_gets();
	
	var siteareaid=18;	//18
	var api_url='https://abbasheart.com/utilities/api.php'; //https://abbasheart.com/utilities/api.php
	var user_api_token='o3LXyoiB5LdgMexxCopciHkW7';
	var utility_api_token='E23ZSCWIpmgB8YIcmMKS4mU4T';
	var form_api_token='MBubrAvFtJAJD2BhYuvj283fO';
	var system_langs=[];

	var redirect="./";
	if ($_GET['r']!=undefined){
		if ( ($_GET['r']!=null) && ($_GET['r']!="") ){
			redirect=$_GET['r'];
		}
	}	
	
	var reset_key="";
	if ($_GET['reset_key']!=undefined){
		if ( ($_GET['reset_key']!=null) && ($_GET['reset_key']!="") ){
			reset_key=$_GET['reset_key'];
		}
	}
	
	var reset_u="";
	if ($_GET['reset_u']!=undefined){
		if ( ($_GET['reset_u']!=null) && ($_GET['reset_u']!="") ){
			reset_u=$_GET['reset_u'];
		}
	}
		
		
	function display_register_form(r){
		document.getElementById("register_form").innerHTML=r.form_html;
		
		add_script_to_head(r.form_scripts);			
	}
	
	function build_register_form(){
		
		var settings={};
		//settings.action='javascript:void(0);';
		settings.action='javascript:register_form_submitted();';
		settings.id='register_form';
		//settings.js_error_location='popin';
		//settings.js_error_class='';
		var i, j, k;
		var fields=[], field={}, field_values=[], field_value={};
		var display={};
		
		//first name
		field={};
		field.type='text';
		field.name='first_name';
		field.id='register_first_name';
		field.value='';
		field.placeholder='First Name'
		field.description='<div style=\"margin: 10px;\">First Name:</div>';
		field.size=30;
		field.class='form-control margin5';
		field.js_docheck=true;
		field.js_minLength=1;
		field.js_invalidMessage='<div class=\'alert alert-danger padding3 margintop10\'>First Name required</div>';
		fields.push(field);

		//last name
		field={};
		field.type='text';
		field.name='last_name';
		field.id='register_last_name';
		field.value='';
		field.placeholder='Last Name'
		field.description='<div style=\"margin: 10px;\">Last Name:</div>';
		field.size=30;
		field.class='form-control margin5';
		field.js_docheck=true;
		field.js_minLength=1;
		field.js_invalidMessage='<div class=\'alert alert-danger padding3 margintop10\'>Last Name required</div>';
		fields.push(field);
				
		
		//email
		field={};
		field.type='email';
		field.name='email';
		field.id='register_email';
		field.placeholder='Email'
		field.description='<div style=\"margin: 10px;\">Email:</div>';
		field.size=30;
		field.class='form-control margin5';
		field.js_docheck=true;
		field.js_minLength=1;
		field.js_emailCheck=true;
		field.js_invalidMessage='<div class=\'alert alert-danger padding3 margintop10\'>Enter a valid email</div>';
		fields.push(field);
		
		//password
		field={};
		field.type='password';
		field.name='password';
		field.id='register_password';
		field.placeholder='Password'
		field.description='<div style=\"margin: 10px;\">Password:</div>';
		field.size=30;
		field.class='form-control margin5';
		field.js_docheck=true;
		field.js_minLength=6;
		field.js_equalToOtherInput='register_password_confirm';
		field.js_invalidMessage='<div class=\'alert alert-danger padding3 margintop10\'>Please enter a password and confirm below</div>';
		fields.push(field);
		
		//confirm password
		field={};
		field.type='password';
		field.name='password_confirm';
		field.id='register_password_confirm';
		field.placeholder='Password'
		field.description='<div style=\"margin: 10px;\">Password Confirm:</div>';
		field.size=30;
		field.class='form-control margin5';
		field.js_docheck=true;
		field.js_minLength=6;
		field.js_invalidMessage='';
		fields.push(field);
		
		if ("no"=="yes"){
			field_values=[];
			if (system_langs instanceof Array){
				for (i=0;i<system_langs.length;i++) {
					field_values.push({description: system_langs[i].lang_native_name+'/'+system_langs[i].lang_english_name, value: system_langs[i].lang_id});
				}
			}
			
			field={};
			field.type='select';
			field.name='user_lang';
			field.id='user_lang';
			field.values=field_values;
			field.description='<div style=\"margin: 10px;\">Language:</div>'
			field.class='form-control margin5';
			fields.push(field);
			
		}
		
		//submit
		field={};
		field.type='submit';
		field.name='create_account_submit';
		field.id='create_account_submit';
		field.value='Create Account';
		field.class='btn btn-success margin5';
		field.htmlAfterFormItem='<br><div id="create_account_error"></div>';
		fields.push(field);			
		
		var api_vars=[{name: 'function', value: 'form_build'}];
		api_vars.push({name: 'siteareaid', value: siteareaid});
		api_vars.push({name: 'settings', value: encodeURIComponent(JSON.stringify(settings))});
		api_vars.push({name: 'fields', value: encodeURIComponent(JSON.stringify(fields))});
		api_vars.push({name: 'display', value: encodeURIComponent(JSON.stringify(display))});
	
		swcm_api(api_url, form_api_token, 'form', api_vars, 1, display_register_form);
				
	}
	
	function display_login_form(r){
		
		document.getElementById("login_form").innerHTML=r.form_html;
		
		add_script_to_head(r.form_scripts);		
	}

	function build_login_form(){
		
		var settings={};
		settings.action='javascript:login_form_submitted();';
		settings.id='login_form';
		settings.method='post';
		//settings.js_error_location='popin';
		//settings.js_error_class='';
		
		var fields=[], field={}, field_values=[], field_value={};		
		var display={};
		
		//email
		field={};
		field.type='text';
		field.name='email';
		field.id='login_email';
		field.placeholder='Email'
		field.description='<div style=\"margin: 10px;\">Email:</div>';
		field.size=30;
		field.class='form-control margin5';
		field.js_docheck=true;
		field.js_minLength=1;
		field.js_invalidMessage='<div class=\'alert alert-danger padding3 margintop10\'>Enter a valid email</div>';
		fields.push(field);
		
		//password
		field={};
		field.type='password';
		field.name='password';
		field.id='login_password';
		field.placeholder='Password'
		field.description='<div style=\"margin: 10px;\">Password:</div>';
		field.size=30;
		field.class='form-control margin5';
		field.js_docheck=true;
		field.js_minLength=1;
		field.js_invalidMessage='<div class=\'alert alert-danger padding3 margintop10\'>Enter a password</div>';
		fields.push(field);
		
		//submit
		field={};
		field.type='submit';
		field.name='login_submit';
		field.id='login_submit';
		field.value='Sign In';
		field.htmlAfterFormItem='<br><div id="login_failed"></div><br><a href="javascript:show_forgot_password();" class=\"btn btn-default\">forgot your password?</a>';
		field.class='btn btn-success margin5';
		fields.push(field);					
		
		var api_vars=[{name: 'function', value: 'form_build'}];
		api_vars.push({name: 'siteareaid', value: siteareaid});
		api_vars.push({name: 'settings', value: encodeURIComponent(JSON.stringify(settings))});
		api_vars.push({name: 'fields', value: encodeURIComponent(JSON.stringify(fields))});
		api_vars.push({name: 'display', value: encodeURIComponent(JSON.stringify(display))});
	
		swcm_api(api_url, form_api_token, 'form', api_vars, 1, display_login_form);
	}

	function register_complete_check(r){
		if ( (r!=null) && (r!=0) ){
			window.location.href=redirect;
		}else{
			document.getElementById("create_account_error").innerHTML="<strong>There was an error creating your account.<br>Please try again.</strong>";
		}
	}

	function register_form_uname_check(r){
		if (r==true){
			//user name already exists
			document.getElementById("create_account_error").innerHTML="<strong>An account exists with that email</strong>";
			
		}else{
			//create new user account
			var api_vars=[{name: 'function', value: 'create_user'}];


			api_vars.push({name: 'siteareaid', value: siteareaid});
			api_vars.push({name: 'uname', value: document.getElementById("register_email").value});
			api_vars.push({name: 'password', value: document.getElementById("register_password").value});
			api_vars.push({name: 'first_name', value: document.getElementById("register_first_name").value});
			api_vars.push({name: 'last_name', value: document.getElementById("register_last_name").value});
			if ("no"=="yes"){
				api_vars.push({name: 'user_lang', value: document.getElementById("user_lang").options[document.getElementById("user_lang").selectedIndex].value});
				//user_lang
			}
	
			swcm_api(api_url, user_api_token, 'user', api_vars, 1, register_complete_check);
		}
	}

	function register_form_submitted(){

		
		var api_vars=[{name: 'function', value: 'uname_exists'}];
		api_vars.push({name: 'uname', value: document.getElementById("register_email").value});
	
		swcm_api(api_url, user_api_token, 'user', api_vars, 1, register_form_uname_check);
		
	}
	
	function login_check(r){
		if (r==true){
			//login passed
			window.location.href=redirect;
		}else{
			var failed_message="";
			//login failed
			switch(r) {
				case '4':
				case 4:
					//4, too many attempts
					failed_message="<strong>Too many failed attempts. Please try again later.</strong>";
					break;
				case '100':
				case 100:
					//100, unknown device
					failed_message="<strong>Unknown Device. We have sent an email to the account owner for verification of this new device.</strong>";
					break;
				default:
					failed_message="<strong>Login incorrect. Please try again.</strong>";
			}
			
			
			document.getElementById("login_failed").innerHTML=failed_message;
			
			
		}
	}
	
	function login_form_submitted(){

		var api_vars=[{name: 'function', value: 'login'}];
		api_vars.push({name: 'uname', value: document.getElementById("login_email").value});
		api_vars.push({name: 'password', value: document.getElementById("login_password").value});
	
		swcm_api(api_url, user_api_token, 'user', api_vars, 1, login_check);
		
	}
	
	function password_form_submit_check(r){
				
		if (r==true){
			//reset passed
			document.getElementById("forgot_password_message").innerHTML="We have sent you an email with reset instructions.";
		}else{
			//reset failed			
			document.getElementById("forgot_password_message").innerHTML="We were unable to find an account for the input email.";
		}		
		
	}
	
	function password_form_submitted(){

		var api_vars=[{name: 'function', value: 'request_password_reset'}];
		api_vars.push({name: 'siteareaid', value: siteareaid});
		api_vars.push({name: 'uname', value: document.getElementById("forgot_password_email").value});
		api_vars.push({name: 'source_link', value: escape(window.location.href)});
	
		swcm_api(api_url, user_api_token, 'user', api_vars, 1, password_form_submit_check);
	}	
	
	function display_forgot_password_form(r){
		
		document.getElementById("forgot_password_form").innerHTML=r.form_html;
		
		add_script_to_head(r.form_scripts);		
	}

	function build_forgot_password_form(){
		
		var settings={};
		settings.action='javascript:password_form_submitted();';
		settings.id='forgot_password_form';
		settings.method='post';
		
		var fields=[], field={}, field_values=[], field_value={};		
		var display={};
		
		//email
		field={};
		field.type='text';
		field.name='email';
		field.id='forgot_password_email';
		field.placeholder='Email'
		field.description='<div style=\"margin: 10px;\">Email:</div>';
		field.size=30;
		field.class='form-control margin5';
		field.js_docheck=true;
		field.js_minLength=1;
		field.js_invalidMessage='<div class=\'alert alert-danger padding3 margintop10\'>Enter a valid email</div>';
		fields.push(field);
		
		//submit
		field={};
		field.type='submit';
		field.name='forgot_password_submit';
		field.id='forgot_password_submit';
		field.value='Continue';
		field.class='btn btn-success margin5';
		fields.push(field);					
		
		var api_vars=[{name: 'function', value: 'form_build'}];
		api_vars.push({name: 'siteareaid', value: siteareaid});
		api_vars.push({name: 'settings', value: encodeURIComponent(JSON.stringify(settings))});
		api_vars.push({name: 'fields', value: encodeURIComponent(JSON.stringify(fields))});
		api_vars.push({name: 'display', value: encodeURIComponent(JSON.stringify(display))});
	
		swcm_api(api_url, form_api_token, 'form', api_vars, 1, display_forgot_password_form);
	}
		
	function show_forgot_password(){
		_setVisible("forgot_password_div");
		document.getElementById("forgot_password_email").value=document.getElementById("login_email").value;
	}


	function reset_password_form_submit_check(r){
		if (r==1){
			//reset passed
			window.location.href=redirect;
		}else{
			//reset failed			
			document.getElementById("reset_password_error").innerHTML="<strong>Password reset failed. Please verify your information and try again.</strong>";
		}
	}

	function reset_password_form_submitted(){				
		
		var api_vars=[{name: 'function', value: 'password_reset'}];
		api_vars.push({name: 'siteareaid', value: siteareaid});
		api_vars.push({name: 'uname', value: reset_u});
		api_vars.push({name: 'password', value: document.getElementById("reset_password_password").value});
		api_vars.push({name: 'reset_key', value: document.getElementById("reset_password_reset_key").value});
	
		swcm_api(api_url, user_api_token, 'user', api_vars, 1, reset_password_form_submit_check);
				
	}

	function display_reset_password_form(r){
		document.getElementById("reset_password_form_div").innerHTML=r.form_html;
		
		add_script_to_head(r.form_scripts);			
	}
	
	function build_reset_password_form(){
		
		var settings={};
		//settings.action='javascript:void(0);';
		settings.action='javascript:reset_password_form_submitted();';
		settings.id='reset_password_form';
		
		var fields=[], field={}, field_values=[], field_value={};
		var display={};
		
		
		//email
		field={};
		field.type='text_display';
		field.name='email';
		field.id='reset_password_email';
		field.description='Email  ';
		field.htmlAfterFormItem=reset_u;
		fields.push(field);
		
		
		//reset key
		field={};
		field.type='text';
		field.name='reset_key';
		field.id='reset_password_reset_key';
		field.placeholder=''
		field.description='<div style=\"margin: 10px;\">Reset Key:</div>';
		field.size=30;
		field.class='form-control margin5';
		field.value=reset_key;
		field.js_docheck=true;
		field.js_minLength=1;
		field.js_invalidMessage='<div class=\'alert alert-danger padding3 margintop10\'>Enter a reset key</div>';
		fields.push(field);
						
		//password
		field={};
		field.type='password';
		field.name='password';
		field.id='reset_password_password';
		field.placeholder='Password'
		field.description='<div style=\"margin: 10px;\">Password:</div>';
		field.size=30;
		field.class='form-control margin5';
		field.js_docheck=true;
		field.js_minLength=6;
		field.js_equalToOtherInput='reset_password_password_confirm';
		field.js_invalidMessage='<div class=\'alert alert-danger padding3 margintop10\'>Enter a password and confirm below</div>';
		fields.push(field);
		
		//confirm password
		field={};
		field.type='password';
		field.name='password_confirm';
		field.id='reset_password_password_confirm';
		field.placeholder='Password'
		field.description='<div style=\"margin: 10px;\">Password Confirm:</div>';
		field.size=30;
		field.class='form-control margin5';
		field.js_docheck=true;
		field.js_minLength=6;
		field.js_invalidMessage='';
		fields.push(field);
		
		//submit
		field={};
		field.type='submit';
		field.name='reset_password_submit';
		field.id='reset_password_submit';
		field.value='Reset Password';
		field.class='btn btn-success margin5';
		field.htmlAfterFormItem='<br><div id="reset_password_error"></div>';
		fields.push(field);			
		
		var api_vars=[{name: 'function', value: 'form_build'}];
		api_vars.push({name: 'siteareaid', value: siteareaid});
		api_vars.push({name: 'settings', value: encodeURIComponent(JSON.stringify(settings))});
		api_vars.push({name: 'fields', value: encodeURIComponent(JSON.stringify(fields))});
		api_vars.push({name: 'display', value: encodeURIComponent(JSON.stringify(display))});
	
		swcm_api(api_url, form_api_token, 'form', api_vars, 1, display_reset_password_form);
				
	}

	function get_languages_done(r){
		system_langs=r;
		build_login_form();
		build_register_form();
		build_forgot_password_form();
		
	}

	function get_languages(){
		
		if ("no"=="yes"){
			var api_vars;
			api_vars=[{name: 'function', value: 'get_languages'}];
			swcm_api(api_url, utility_api_token, 'utility', api_vars, 1, get_languages_done);
		}else{
			build_login_form();
			build_register_form();
			build_forgot_password_form();
		}
		
	}

	function page_load(){
		if (reset_key!=""){
			_setHidden("user_login_register");
			build_reset_password_form();
		}else{
			_setHidden("user_reset_password");
			_setHidden("forgot_password_div");
			get_languages();
		}

	}
	swcm_onload_add("page_load()");


</script>

<div>
	<div class="container" id="user_login_register">
		<div class="row-fluid row">
			<div class="col-md-12 span12">
				<h1>Account Login / Registration</h1>
			</div>
		</div>

		<div class="row-fluid row">
			<div class="col-md-6 span6">
				<div class="btn-inverse checkoutheading">&nbsp;Sign In</div>
				<div class="padding10">
					Sign in using your existing account information:<br />
					&nbsp;
					<div class="form-group" id="login_form">&nbsp;</div>
					<div id="forgot_password_div">
						<div class="alert alert-info">
							<h4>Forgot Your Password?</h4>
							Enter the e-mail address associated with your account, then click the Continue button. We will email you a link to a page that will allow you to create a new password.<br />
							&nbsp;
							<div id="forgot_password_form">&nbsp;</div>
							<div id="forgot_password_message">&nbsp;</div>
						</div>
					</div>
				</div>
			</div>
			<div class="col-md-6 span6">
				<div class="btn-inverse checkoutheading">&nbsp;Create An Account</div>
				<div class="padding10">
					Create a new account:<br />
					&nbsp;
					<div class="form-group" id="register_form">&nbsp;</div>
				</div>
			</div>
		</div>
	</div>


	<div class="container" id="user_reset_password">
		<div class="row-fluid row">
			<div class="col-md-12 span12">
				<h1>Account Login / Reset Password</h1>
			</div>
		</div>

		<div class="row-fluid row">
			<div class="col-md-6 col-md-offset-3 span6 offset3">
				<div class="btn-inverse checkoutheading">&nbsp;Reset Your Password</div>
				&nbsp;
				<div id="reset_password_form_div">&nbsp;</div>
			</div>
		</div>
	</div>
</div>