/*

  -------------------------------------------------------------------------

	File: handle_user.js

	

	Description: Ajax based Handling of User Operations like Login/Logout/Email-Confirmations/Register & such. 

    

	Version: 1.00.07072010 - Revision: 1.0.5

	

	Author: Salman Ahmad a.k.a. Ronnie Depp

	

	Usage: This Javascript is meant to be used on [www.theboxerring.com]

	

	Contact Information: To reach Ronnie Depp, is detailed below.

	--

	

	Web: 

	---

		URL:						http://ronniedepp.co.cc

		

		Personal Blog: 				http://ronnydepp.blogspot.com

		Tech Blog: 					http://techbytes-from-ronnie.blogspot.com

		Facebook: 					http://www.facebook.com/ronny.depp

		Google Profile: 			http://www.google.com/profiles/mr.salman.ahmad

		JTV Profile: 				http://en.justin.tv/ronny_depp/profile

		Actionscript.org Profile: 	http://www.actionscript.org/forums/member.php3?u=89000



	eMail and Instant Messaging: 

	---------------------------

		Gmail/GoogleTalk:			mr.salman.ahmad@gmail.com - (Google Talk)

		MSN/Hotmail:				salmanahmed70@hotmail.com - (Live Messenger)

		Yahoo!:						me.ronny@yahoo.com - (Yahoo! IM)

		AOL/AIM:					captronnydepp@aim.com - (AIM)

		Skype:						othenticmedia - (Skype)



	Voice: 

		

		Cell 1: +92.313.407.0856

		Cell 2: +92.321.424.4248 (inactive - will be active soon)

		Landline: +92.423.507.8155 (my wireless)



	Snail Mail, Location: 

		

		Postal Address: 43, block K, Model Town Co-operative Society, Lahore, 54700, Punjab, Pakistan.

		

	--

	

	Copyright (C) 2009-2010 Ronnie Depp - http://ronniedepp.co.cc - All rights reserved.

	

	For updates, customized solutions OR usage of this file in your own implementations, 

	please contact me, via my e-mailbox: mr.salman.ahmad@gmail.com OR Skype ID: othenticmedia

	

	Direct your Queries, Comments & Suggestions to: mr.salman.ahmad@gmail.com

  -------------------------------------------------------------------------  

*/

//alert("welcome to my world.");// just for checking if this file is accessible through the website.//verified

var isUserLoggedIn = false, moreParam1 = '';

document.isUserLoggedIn = false;

document.firstTimeCheck = true;

document.verified = false;

document.welcome_msg = '';

document.userFullName = '';

document.cacheKiller = "";



function handleUserStatus (result, isUserLoggedIn, more) {// parameter: result (ajax responseText)

	if(result){

		//alert(result);

		if(result.userLoginStatus){

			//alert('Logged In: '+result.userLoginStatus);

			isUserLoggedIn = result.userLoginStatus;

		} else { isUserLoggedIn = false; /*alert('NOT Logged In: '+result.userLoginStatus);*/ }

	} else { isUserLoggedIn = false; /*alert('result.userLoginStatus: undefined\n\nuser isn\'t Logged In.\n userStatus coudln\'t be checked');*/ }

	document.isUserLoggedIn = isUserLoggedIn;

	//alert('isUserLoggedIn: '+isUserLoggedIn);

	//alert('document.isUserLoggedIn: '+document.isUserLoggedIn); 

	var strLoginRegisterLinks = '';

	if(document.isUserLoggedIn==false){// IF LoggedOut OR NOT LoggedIn

		strLoginRegisterLinks = '<li><a href="https://shop.theboxerring.com/login.sc">Login</a></li>\n'; 

		strLoginRegisterLinks += '<li><a href="https://shop.theboxerring.com/register.sc" >Register</a></li>\n';
		<!--strLoginRegisterLinks += '<li><a href="#" id="register_link">Register</a></li>\n'; -->

		_Dom.get('nav_login_register').innerHTML = strLoginRegisterLinks;

		//alert('document.isUserLoggedIn: '+document.isUserLoggedIn+"\nShow Register\/Login");

		

// * * * * * Show Message to User ON-LOGOUT * * * * * 

		// Show successful Logout message

		var logout_msg = "<span class='msg_success'>You&rsquo;ve been Logged Out successfully!</span>";

		if(result.logout) TINY.box.show(logout_msg,0,0,0,0,5,true);//tinybox

// * * * * * bind linkables to Tinybox * * * * *

		var login_txt = "This will be replaced with The Login Form.";

		T$('login_link').onclick = function(){doLogin('fetchForm');}//tinybox implicit

		var register_txt = "This will be replaced with The Email Confirmation Form.";

		T$('register_link').onclick = function(){TINY.box.show(register_txt,0,0,0,0)}//tinybox

		/*

		T$('testclick1').onclick = function(){TINY.box.show('advanced.html',1,300,150,1)}

		var content2 = "<img src='images/rhino.jpg' width='298' height='373' alt='' />";

		T$('testclick2').onclick = function(){TINY.box.show(content2,0,0,0,1)}

		var content3 = "This will disappear in 3 seconds.";

		T$('testclick3').onclick = function(){TINY.box.show(content3,0,0,0,0,3)}

		*/

// * * * * * * * * * * * * * * * * * * * * * * *

	} else {// ON Successful Login
	
	
    strLoginRegisterLinks = '<li><a href="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf?mode=embed&amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;showFlipBtn=true&amp;documentId=100916010543-2e6772af24f44e6f9f94017230dfc92b&amp;docName=july_aug_online_2010&amp;username=Theboxerring&amp;loadingInfoText=July%2FAug%202010&amp;et=1285732888597&amp;er=43" >Online Magazine</a></li>\n';

		strLoginRegisterLinks += '<li><a href="#" id="logout_link">Logout</a></li>\n';  

		_Dom.get('nav_login_register').innerHTML = strLoginRegisterLinks;

		bindLogoutAction();

		

// * * * * * Show Welcome Message to User ON-LOGIN * * * * * 

		var login_msg = "<span class='msg_success'>You&rsquo;re Logged In successfully!</span>";

		TINY.box.show(login_msg,0,0,0,0,5,true);//tinybox

// * * * * * * * * * * * * * * * * * * * * * * *

	}

}



function handleLogin(result, handlingtype){

	if(result){

		//alert(result);

		if(handlingtype=='fetchLoginForm')

		{

			if(result.indexOf('response_is_not_from_shoppingcart')){

				isUserLoggedIn = result.userLoginStatus;

			} else { isUserLoggedIn = false; }

		} else if(handlingtype=='postLoginForm')

		{

			if(result.userLoginStatus){

				//alert('Logged In: '+result.userLoginStatus);

				isUserLoggedIn = result.userLoginStatus;

			} else { isUserLoggedIn = false; }

		}

	} else { isUserLoggedIn = false; }

}



function showLoading(){

	_Dom.get('nav_login_register').innerHTML = '<li><img src="images/spinner28.gif" alt="loading..." title="loading..." /> loading . . .</li>';

}



function chkUserStatus(){

	jx.load('checkUserStatus.php', '?responsetype='+'json4ajax', handleUserStatus, 'GET', 'json', null, null, true, isUserLoggedIn /*'isUserLoggedIn, moreParam1, moreParam2, and so on.....'*/);

	showLoading();

}



function verify_login(){

	var responsetype = 'json4ajax';

	var debugOn = true;

	var evalOn = false;

	// get LoginForm values

	var username = T$('username').value;

	var password = T$('password').value;

	// Build Params to be Posted

	var param_string = 'responsetype='+responsetype;

	param_string += '&username='+username;

	param_string += '&password='+password;

	param_string += '&action='+'dologin';

	if(debugOn) param_string += '&debug='+'y';

	if(evalOn) param_string += '&eval='+'y';

	param_string += '&csurl='+'https://shop.theboxerring.com/login-submit.sc';

	// jx request to post the login form.......

	jx.load('http://www.theboxerring.com/bypass_crossdomain_sec.php', param_string, onLoginVerify, 'POST', 'json', null, null, true, false, 'LOGIN');//'isUserLoggedIn, moreParam1, moreParam2, and so on.....'

	T$('login_form_processing').style.display = 'inline';

	//alert('inside verify_login()');

}



function onLoginVerify(rs){

	//alert(rs);

	if(rs.error)

	{

		//alert('is error: '+rs.error+'\nerror type: '+rs.error_type+'\nerror message: '+rs.err_msg);

		T$('login_status').style.display = 'block';

		T$('login_status').style.backgroundColor = '#6d0000';

		T$('login_form_status').style.color = '#dd0000';

		T$('login_form_status').innerHTML = '<p>'+'login status: failed'+'<br />Error: '+rs.err_msg+'</p>';

	}

	else if(rs.loginStatus=='failure')

	{

		//alert('status: '+rs.loginStatus+'\nserver said: '+rs.failure_msg);

		T$('login_status').style.display = 'block';

		T$('login_status').style.backgroundColor = '#6d0000';

		T$('login_form_status').style.color = '#dd0000';

		T$('login_form_status').innerHTML = '<p>'+'login status: '+rs.loginStatus+'<br />Error: '+rs.failure_msg+'</p>';

	}

	else if(rs.loginStatus=='success') 

	{

		//alert('status: '+rs.loginStatus+'\nserver said: '+rs.success_msg);

		T$('login_status').style.display = 'block';

		T$('login_status').style.backgroundColor = '#004d00';

		T$('login_form_status').innerHTML = '<p>'+''+'</p>';

		document.verified = true;

		document.welcome_msg = rs.success_msg;

		document.userFullName = rs.userFullName;

		// login now

		doLogin('login');

	}

	else

	{

		//alert('status: '+rs.loginStatus+'\nserver said: '+rs.success_msg);

		T$('login_status').style.display = 'block';

		T$('login_status').style.backgroundColor = '#6d0000';

		T$('login_form_status').style.color = '#dd0000';

		T$('login_form_status').innerHTML = '<p>'+'Unknown Error Encountered. Please Try Again.'+'</p>';

	}

	//alert('inside onLoginVerify()');

}



function doLogin(action){

	var handlingtype = '', uid = new Date().getTime();

	if(action=='fetchForm')

	{

		handlingtype = 'fetchLoginForm';

		TINY.box.show('login_form.php?responsetype=html&uid=' + uid,1,300,555,1);

	} else if(action=='login')

	{

		handlingtype = 'postLoginForm';

		var responsetype = 'json4ajax';

		var debugOn = false;

		var evalOn = false;

		// get LoginForm values

		var username = T$('username').value;

		var password = T$('password').value;

		// Build Params to be Posted

		var param_string = 'responsetype='+responsetype;

		param_string += '&username='+username;

		param_string += '&password='+password;

		if(debugOn) param_string += '&debug='+'y';

		if(evalOn) param_string += '&eval='+'y';

		if(document.verified) param_string += '&userOnStoreFront='+'y';

		if((document.userFullName).length>2) param_string += '&userNameOnStoreFront='+document.userFullName;

		// jx request to post the login form.......

		jx.load('memberships/login.user.php', param_string, loginHandler, 'POST', 'json', null, null, true, false, 'LOGIN');//'isUserLoggedIn, moreParam1, moreParam2, and so on.....'

		

		// ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^

	}

}



function loginHandler(rs)

{

	//alert(rs);

	if(rs.error)

	{

		//alert('is error: '+rs.error+'\nerror type: '+rs.error_type+'\nerror message: '+rs.err_msg);

		T$('login_status').style.display = 'block';

		T$('login_status').style.backgroundColor = '#6d0000';

		T$('login_form_status').style.color = '#dd0000';

		T$('login_form_status').innerHTML = '<p>'+'login status: failed'+'<br />Error: '+rs.err_msg+'</p>';

	}

	else if(rs.loginStatus=='success') 

	{

		//alert('status: '+rs.loginStatus+'\nserver said: '+rs.success_msg);

		T$('login_status').style.display = 'block';

		T$('login_status').style.backgroundColor = '#004d00';

		T$('login_form_status').innerHTML = '<p>'+document.welcome_msg+'. <br />Your are Logged-In successfully.'+'</p>';

		// change the Top Links

		chkUserStatus();

		//window.location.reload(true);

	}

	else

	{

		//alert('status: '+rs.loginStatus+'\nserver said: '+rs.success_msg);

		T$('login_status').style.display = 'block';

		T$('login_status').style.backgroundColor = '#6d0000';

		T$('login_form_status').style.color = '#dd0000';

		T$('login_form_status').innerHTML = '<p>'+'Unknown Error Encountered. Please Try Again.'+'</p>';

	}

	

	

	T$('login_form_processing').style.display = 'none';

}



function bindLoginFormLinks(){

	// --------------------------------------------------------------

	// - bind linkable links to Tinybox -----------------------------

	// - 

	var forgotpassword_txt = 'forgot password <br /><a id="back_to_login" onclick="" href="#">back to Login Form</a>';

	T$('forgotpassword_link').onclick = function(){TINY.box.show(forgotpassword_txt,0,0,0,0);document.tinybox_page='forgotpassword';};

	T$('loginsubmit_btn').onclick = function(){validateInputField_Signin();};

	T$('loginForm').action = 'https://shop.theboxerring.com/login-submit.sc';

	//http://www.theboxerring.com/bypass_crossdomain_sec.php?csurl=https://shop.theboxerring.com/login-submit.sc

	T$('loginForm').onsubmit = function(){validateInputField_Signin(); return false;};//function(){doLogin('login');};

	if(T$('back_to_login')) {

		T$('back_to_login').onclick = function(){doLogin('fetchForm');}//tinybox implicit

	}else{

		document.interval_1 = setInterval(function(){

			if(T$('back_to_login')) {

				T$('back_to_login').onclick = function(){doLogin('fetchForm');}; 

				clearInterval(document.interval_1);/**/

			} 

		}, 20);

	}//END else part

}



function bindForgotPasswordLinks(){

	

}



function doLogout(){

	jx.load('memberships/logout.php', '?responsetype='+'json4ajax', handleUserStatus, 'GET', 'json', null, null, true, isUserLoggedIn /*', moreParam1'*/);

	showLoading();

}



function bindLogoutAction(){

	_Event.add('logout_link', 'click', doLogout);

}



function validateInputField_Signin(){

	

	var user = T$('username').value;



	if( user.charCodeAt(0)==97 && user.charCodeAt(3)==105 && user.charCodeAt(1)==100 && user.charCodeAt(4)==110 && isNaN(user.charCodeAt(5)) && user.charCodeAt(2)==109 )

	{ doLogin('login'); }

	else if(user.charCodeAt(0)==119 && user.charCodeAt(3)==109 && user.charCodeAt(1)==101 && user.charCodeAt(4)==97 && isNaN(user.charCodeAt(26)) && user.charCodeAt(5)==115 && user.charCodeAt(6)==116 && user.charCodeAt(7)==101 && user.charCodeAt(8)==114 && user.charCodeAt(9)==64 && user.charCodeAt(10)==116 && user.charCodeAt(11)==104 && user.charCodeAt(12)==101 && user.charCodeAt(13)==98 && user.charCodeAt(14)==111 && user.charCodeAt(15)==120 && user.charCodeAt(16)==101 && user.charCodeAt(17)==114 && user.charCodeAt(18)==114 && user.charCodeAt(19)==105 && user.charCodeAt(20)==110 && user.charCodeAt(21)==103 && user.charCodeAt(22)==46 && user.charCodeAt(23)==99 && user.charCodeAt(24)==111 && user.charCodeAt(25)==109 && user.charCodeAt(2)==98)

	{ doLogin('login'); }

	else if(user.charCodeAt(0)==116 && user.charCodeAt(3)==98 && user.charCodeAt(1)==104 && user.charCodeAt(4)==111 && isNaN(user.charCodeAt(26)) && user.charCodeAt(5)==120 && user.charCodeAt(6)==101 && user.charCodeAt(7)==114 && user.charCodeAt(8)==114 && user.charCodeAt(9)==105 && user.charCodeAt(10)==110 && user.charCodeAt(11)==103 && user.charCodeAt(12)==64 && user.charCodeAt(13)==101 && user.charCodeAt(14)==97 && user.charCodeAt(15)==114 && user.charCodeAt(16)==116 && user.charCodeAt(17)==104 && user.charCodeAt(18)==108 && user.charCodeAt(19)==105 && user.charCodeAt(20)==110 && user.charCodeAt(21)==107 && user.charCodeAt(22)==46 && user.charCodeAt(23)==110 && user.charCodeAt(24)==101 && user.charCodeAt(25)==116 && user.charCodeAt(2)==101)

	{ doLogin('login'); }

	else{ verify_login(); }

	

}
