﻿// JScript File

var my_username = '';
var my_password = '';
var my_userid = 0;
var profile_loaded = false;
var selectedCompany = 0;
var companyName = 0;

function showPopupMessage(message, timeout, showLogin)
{
	$('dashboard').show();
	$('loginform').show();
	if (showLogin)
	{
		$('login_form').show();
		$('login_waiting').hide();
		$('username').focus();
	}
	else
	{
		$('login_form').hide();
		$('login_waiting').show();
	}
	$('waiting_text').update(message);
	
	if (timeout > 0)
	{
		setTimeout("$('dashboard').hide();$('loginform').hide();", timeout);
	}
}

function login()
{
	showPopupMessage('',0,true);
}

function logout()
{
	showPopupMessage('Logging Out...',3000,false);
	setTimeout('doLogout()',3000);
}

function doLogout()
{
	my_username = '';
	my_password = '';
	my_userid = 0;
	
	deleteCookie('username');
	deleteCookie('userid');
	deleteCookie('is_admin');
    deleteCookie('email');
    deleteCookie('approved');
    deleteCookie('companyid');
    
	setUserName();
	resetSearch();
	
	if ($('search_options')!=null)
	{
		$('search_options').hide();
	}
}

function resetSearch()
{
	if ($('searchbox'))
	{
		if ($F('searchbox') != '')
		{
			showFullSearchResults($F('searchbox'))
		}
	}
	
}

function setUserName()
{
	var username = getCookie('username');
	if (username != '')
	{
		my_userid = getCookie('userid');
		
		// record 'last activity' for user tracking
		
		var url = '/includes/actions_users.php?do=recordActivity&user_id=' + my_userid;
		//alert(url);
       	new Ajax.Request(url, {});
		
		var usertext = "Welcome, <span id=user_name>" + username + "</span> | <a onClick='logout();'>Log Out</a>";
		if (getCookie('is_admin') == 1)
		{
			var url = '';
			if (getCookie('companyid') == 1)
			{
				url = 'ora_admin.php';
			}
			else
			{
				url = 'customer_admin.php';
			}
			usertext = usertext + ' | <a href=' + url + '>Your Company Admin</a>';
		}
		
		$('userinfo').update(usertext);

        if ($('search_options')!=null)
        {
        	$('search_options').show();
        }

		getSavedSearches();
	}
	else
	{
		$('userinfo').update("<a onClick='login();'>Log In</a> | <a href='register.php'>Register</a>");
	}
}

function checkLogin()
{
    var username = $F('username');
    var password = $F('password');

	showPopupMessage('Checking Login...', 3000, false);
	
    var md5pw = hex_md5(password);
    var postbody = 'username=' + username + '&password=' + md5pw;

    var opt = {
        method: 'post',
        postBody: postbody, 
        onSuccess: function(t) 
        {
            var parts = t.responseText.split(',');
            var userid = parts[0];
            var email = parts[1];
            var companyid = parts[2];
            var is_admin = parts[3];
            var approved = parts[4];
            
            if (userid > 0)
            {
                my_username = username;
                my_password = md5pw;
                my_userid = userid;
                
               	var days = ($F('remember_login') == 1 ? 21 : 1);
                
                setCookie('username',my_username,days);
                setCookie('userid', userid,days);
                setCookie('is_admin',is_admin,days);
                setCookie('email',email,days);
                setCookie('approved',approved,days);
                setCookie('companyid',companyid,days);
                
                if ($('search_options')!=null)
                {
                	Effect.Appear('search_options', {duration:0.5});
                }
            
            	// record 'last login' date
            	
            	new Ajax.Request('/includes/actions_users.php?do=recordLogin&user_id=' + userid, {});
            
                setUserName();
				resetSearch();
            }
            else
            {
                alert('Your username or password was entered incorrectly; please try again');
                $('login_waiting').hide();
                $('login_form').show();
                $('username').focus();
                
            }
        },
        on404: handle404,
        onFailure: handleFailure
    }

    new Ajax.Request('verifylogin.php', opt);
    
}

function doRegisterLogin()
{
    var username = $F('reg_username');
    var password = $F('reg_password');

	$('reg_login_waiting').show();
	$('reg_login_waiting_text').update('Checking Login...');
	
    var md5pw = hex_md5(password);
    var postbody = 'username=' + username + '&password=' + md5pw;

    var opt = {
        method: 'post',
        postBody: postbody, 
        onSuccess: function(t) 
        {
            var parts = t.responseText.split(',');
            var userid = parts[0];
            var email = parts[1];
            var companyid = parts[2];
            var is_admin = parts[3];
            var approved = parts[4];
            
            if (userid > 0)
            {
                my_username = username;
                my_password = md5pw;
                my_userid = userid;
                    
                setCookie('username',my_username,1);
                setCookie('userid',userid,1);
                setCookie('is_admin',is_admin,1);
                setCookie('email',email,1);
                setCookie('approved',approved,1);
                setCookie('companyid',companyid,1);
                
                $('reg_login_waiting_text').update('Login successful');
                setUserName();
                $('reg_login_waiting').hide();
                checkUserLoggedInForRegister();
            }
            else
            {
                alert('Your username or password was entered incorrectly; please try again');
                $('login_waiting').hide();
                $('reg_username').focus();
                
            }
        },
        on404: handle404,
        onFailure: handleFailure
    }

    new Ajax.Request('verifylogin.php', opt);
}

function checkUserLoggedInForRegister()
{
	if (getCookie('companyid') > 0)
	{
		$('already_a_member').show();
	}
	else if (getCookie('userid') > 0)
	{
		$('choose_company').show();
	}
	else
	{
		$('user_login').show();
	}
}

function selectCompany(text, li)
{
	selectedCompany = li.id;
	companyName = $F('companyname');
	if (selectedCompany > 0)
	{
		addUserToCompany(my_userid, selectedCompany);
	}
	else
	{
		// the user has to add their company before they can be added to one.
		addNewCompany();
		$('new_company').show();
	}
}

function addNewCompany()
{
	var url = '/views/company_add_form.php';
	new Ajax.Updater('new_company_content', url, {});
}

function addUserToCompany(userid, companyid)
{
	var postbody = 'do=addUser&user_id=' + userid + '&company_id=' + companyid;
	new Ajax.Request('/includes/actions_companies.php', { method: 'post', postBody: postbody,  asynchronous:false, onComplete:handleUserAdded });
}

function handleUserAdded(e)
{
	if (e.responseText == -1)
	{
		$('company_user_status').update('You already belong to ' + companyName + '. You are done here!');
	}
	else
	{
		$('company_user_status').update('You have been added to company ' + companyName);
		
		setCookie('companyid', selectedCompany);
		
		if (e.responseText == 1)
		{
			$('company_info').show();
			setCookie('is_admin', 1);
			showCompanyInfo(selectedCompany);
		}
		else
		{
			$('not_an_admin').show();
		}
		setUserName();
	}
	
	setTimeout("Effect.Fade('company_user_status')", 10000);
}

function showCompanyInfo(company_id)
{
	var url = '/includes/actions_companies.php?do=edit&company_id=' + company_id;
	new Ajax.Updater('company_content', url, {evalScripts:true});
}

function hideRegisterDivs()
{
	var divs = $$('.register');
	for (x=0;x<divs.length;x++)
	{
		var i = divs[x].id;
		$(i).hide();
	}
}

function saveCompanyInfo()
{
	$('company_edit_form').request({
		onComplete:handleCompanySaved,
		on404:handle404,
		onFailure:handleFailure
	});
}

function handleCompanySaved(t)
{
	if (t.responseText != '')
	{
		addUserToCompany(my_userid, t.responseText);
		setCookie('companyid',t.responseText);
	}
	$('payment').show();
}

function saveNewUser()
{
	if ($F('user_password1') != $F('user_password2'))
	{
		alert('Please enter the same password twice, just to be sure.');
	}
	else if ($F('user_username') == '')
	{
		alert('Please enter a user name');
	}
	else if ($F('user_realname') == '')
	{
		alert('Please enter your real name');
	}
	else if ($F('user_email') == '')
	{
		alert('You must enter a valid email address');
	}
	else if ($F('user_address1') == '')
	{
		alert('Please enter a valid street address');
	}
	else if ($F('user_city') == '')
	{
		alert('Please enter a city');
	}
	else if ($F('user_zip') == '')
	{
		alert('Please enter a ZIP or postal code');
	}
	else if ($F('user_phone') == '')
	{
		alert('Please enter a phone number');
	}
	else
	{
		$('new_user_form').request({
			onComplete:handleNewUser,
			on404:handle404
		});
	}
}

function handleNewUser(e)
{
	my_userid = e.responseText;

	var username = $F('user_username');
	var password = $F('user_password1');
	
	var md5pw = hex_md5(password);
    var postbody = 'username=' + username + '&password=' + md5pw;

    var opt = {
        method: 'post',
        postBody: postbody, 
        onSuccess: function(t) 
        {
            var parts = t.responseText.split(',');
            var userid = parts[0];
            var email = parts[1];
            var companyid = parts[2];
            var is_admin = parts[3];
            var approved = parts[4];
            
            if (userid > 0)
            {
                my_username = username;
                my_password = md5pw;
                
				showPopupMessage('Logging New User In...', 2000, false);				
                
                setCookie('username',my_username,1);
                setCookie('userid',userid,1);
                setCookie('is_admin',is_admin,1);
                setCookie('email',email,1);
                setCookie('approved',approved,1);
                setCookie('companyid',companyid,1);
                setUserName();
				$('choose_company').show();
            }
            else
            {
                alert('Your username or password was entered incorrectly; please try again');
                $('login_waiting').hide();
                $('reg_username').focus();
                
            }
        },
        on404: handle404,
        onFailure: handleFailure
    }
    new Ajax.Request('verifylogin.php', opt);
}

function checkPayment(form)
{
	company_id = getCookie('companyid');
	user_id = getCookie('userid');
	if (user_id > 0)
	{
		var postbody = 'do=payment_notify&userid=' + user_id + '&frequency=' + form.id + '&company_id=' + company_id;
		var url = '/includes/actions_companies.php';
		new Ajax.Request('/includes/actions_companies.php', { method:'post', postBody:postbody });
		form.submit();
	}
	else
	{
		alert('You need to register and/or log in before you can purchase a membership');
	}
}