/*
	Lucid Creative Ltd,
	Creativestem.com

	Creativestem v 1.x

	Copyright (c) 2008 Lucid Creative Ltd. All rights 
	reserved. No portions of the code contained in this 
	file may be used without the explicit approval of 
	its sole rightholder, Lucid Creative Ltd.


	- CsHomePage.js
	Misc. scripts used on the home page.

*/


var CsLoginbox = 
{
	ToggleRedeem : function()
	{
		Hide('LoginBox');
		Hide('SignupBox');
		Hide('RegisterBox');
		
		Show('NewsBox');
		Show('RedeemBox');
		
		document.getElementById('RedeemSignup_Biglabel').innerHTML = 'Sign up now!';
		document.getElementById('RedeemSignup_Biglabel').href = 'javascript: CsLoginbox.ToggleSignup();';
		
		document.getElementById('RedeemSignup_Smalllabel').innerHTML = 'or <b>login</b>';
		document.getElementById('RedeemSignup_Smalllabel').href = 'javascript: CsLoginbox.ToggleLogin();';


	},
	
	ToggleSignup : function()
	{
		Hide('LoginBox');
		Show('SignupBox');
		Hide('RegisterBox');
		Hide('RedeemBox');
		
		Show('NewsBox');
		
		document.getElementById('RedeemSignup_Biglabel').innerHTML = 'Redeem invite';
		document.getElementById('RedeemSignup_Biglabel').href = 'javascript: CsLoginbox.ToggleRedeem();';
		
		document.getElementById('RedeemSignup_Smalllabel').innerHTML = 'or <b>login</b>';
		document.getElementById('RedeemSignup_Smalllabel').href = 'javascript: CsLoginbox.ToggleLogin();';
	},
	
	ToggleLogin : function()
	{
		Show('LoginBox');
		Hide('SignupBox');
		Hide('RedeemBox');
		
		Hide('RegisterBox');
		Show('NewsBox');
		
		document.getElementById('SignupBox').style.display = 'none';
		document.getElementById('RegisterBox').style.display = 'none';
		document.getElementById('NewsBox').style.display = 'block';
		
		document.getElementById('RedeemSignup_Biglabel').innerHTML = 'Sign up now!';
		document.getElementById('RedeemSignup_Biglabel').href = 'javascript: CsLoginbox.ToggleSignup();';
		
		document.getElementById('RedeemSignup_Smalllabel').innerHTML = 'or <b>Redeem Invite</b>';
		document.getElementById('RedeemSignup_Smalllabel').href = 'javascript: CsLoginbox.ToggleRedeem();';
	}
};



function Show(id)
{
	document.getElementById(id).style.display = 'block';
}

function Hide(id)
{
	document.getElementById(id).style.display = 'none';
}




/// CsForm; could be interesting for future uses! 
function CsForm(Fields, TargetUrl, AjaxCallback)
{
	this.Fields = Fields;
	this.AjaxCallback = AjaxCallback;
	
	this.Submit = function()
	{	
		var url = TargetUrl;
		for(var i = 0; i < this.Fields.length; i++)
		{
			url += ((i == 0) ? "" : "&")+document.getElementById(this.Fields[i]).name+"="+document.getElementById(this.Fields[i]).value;
		}
		
		Ajax = new CsAjax(url, "POST", this.AjaxCallback);
		Ajax.Send();
	}
	
}



////////////////       Ajax Callbacks         //////////////////////////////////////////////////////////

function LoginBoxProc(response)
{
	//Process
	if(response == "true")
	{
		window.location = "/";
	}
	else
	{
		//Error;
		Show('AjaxResponseContainer');
		document.getElementById('AjaxResponse').innerHTML = "<p>"+response+"</p>";
	}
}

function SignupBoxProc(response)
{
	if(response == "true")
	{
		Hide('AjaxResponseContainer');
		Show('SuccessfulSignupContainer');
		CsLoginbox.ToggleLogin();
	}
	else
	{
		Show('AjaxResponseContainer');
		document.getElementById('AjaxResponse').innerHTML = response;
	}
}

function RedeemBoxProc(response)
{
	if(response != "true")
	{
		//Error;
		Show('AjaxResponseContainer');
		document.getElementById('AjaxResponse').innerHTML = "<p>We're sorry but there appears to be a problem with your invite code. Please make sure you have typed the code correctly and try again.</p>";
		return;
	}
	else
	{	
		Hide('AjaxResponseContainer');
		Hide('RedeemBox');
		Hide('NewsBox');
		Show('RegisterBox');
		
		document.getElementById('regemail').value = document.getElementById('redeememail').value;
	}
}

function RegisterBoxProc(response)
{
		if(response == "true")
		{
			//Successfull account registration
			Hide('AjaxResponseContainer');
			Hide('RegisterBox');
			
			Show('SuccessfulRegistrationContainer');
			CsLoginbox.ToggleLogin();		
		}
		else
		{
			Show('AjaxResponseContainer');
			document.getElementById('AjaxResponse').innerHTML = "<p>"+response+"</p>";
			return;
		}
}

function ForgotPassProc(response)
{
		if(response == "true")
		{
			Hide('AjaxResponseContainer');
			document.getElementById('ForgotPassword').innerHTML = '<font color="#99af1f" style="font-size: 24px">Forgot password?</font>'+
				'<p><b>Your new password has been sent to your e-mail account.</b> Please follow the instructions provided.</p><br />'+
				'<div style="text-align: right;"><a href="javascript: Hide(\'ForgotPasswordContainer\');">Close</a></div>';
		}
		else
		{
			Show('AjaxResponseContainer');
			document.getElementById('AjaxResponse').innerHTML = "<p>The provided e-mail adress was not found.</p>";
		}
}

////////////////       Form validation         //////////////////////////////////////////////////////////
function ValidateLogin()
{
	var Error = false;
	
	if(document.getElementById('user').value == "")
	{
		Error = "Please enter a username.";
	}
	if(document.getElementById('pass').value == "")
	{
		Error = "Please enter a password.";
	}
	
	if(Error)
	{
		alert(Error);
		
		return false;
	}

	return true;	
}


function ValidateSignup()
{
	var Error = false;
	
	if((document.getElementById('signupmail').value == "") || (document.getElementById('signupmail').value.indexOf("@") == -1))
	{
		Error = "Please enter a valid e-mail adress.";
	}
	if(document.getElementById('motivation').value == "")
	{
		Error = "Please write a brief motivation.";
	}
	if(document.getElementById('signupurl').value == "")
	{
		Error = "Please provide a URL containing your portfolio.";
	}
	/*if((document.getElementById('signupimage').value == "") || (document.getElementById('signupimage').value == "Type what the image says here.."))
	{
		Error = "Please type in the validation code.";
	}*/
	if(Error)
	{
		alert(Error);
		
		return false;
	}

	return true;	
}

function ValidateRedeem()
{
	var Error = false;
	
	if((document.getElementById('redeememail').value == "") || (document.getElementById('redeememail').value.indexOf("@") == -1))
	{
		Error = "Please enter a valid e-mail adress.";
		document.getElementById('redeememail').focus();
	}
	if(document.getElementById('redeemcode').value == "")
	{
		Error = "Please provide a validation code.";
		document.getElementById('redeemcode').focus();
	}
	
	if(Error)
	{
		alert(Error);
		
		return false;
	}

	return true;	
}

function ValidateRegister()
{
	var Error = false;
	
	if(document.getElementById('reguser').value == "")
	{
		Error = "Please choose a username.";
	}
	if(document.getElementById('regname').value == "")
	{
		Error = "Please enter your full name.";
	}
	if((document.getElementById('regmonth').value == "") || (document.getElementById('regday').value == "") || (document.getElementById('regyear').value == ""))
	{
		Error = "Please enter your birthdate.";
	}
	if(document.getElementById('regpassw').value == "")
	{
		Error = "Please choose a password.";
	}
	if(document.getElementById('regpassw').value != document.getElementById('regreppassw').value)
	{
		Error = "The given passwords do not match each other.";
	}
	if(!document.getElementById('regagree').checked)
	{
		Error = "You must agree to the Terms of Service and the remaining policies of Creativestem in order to sign up!";
	}
	
	if(Error)
	{
		alert(Error);
		
		return false;
	}
	return true;	
}


////////////////       Homepage Forms         //////////////////////////////////////////////////////////
LoginBox = new CsForm(Array('user', 'pass'), "ajax/login/", "LoginBoxProc");
SignupBox = new CsForm(Array('signupmail', 'signupurl', 'motivation'), 'ajax/signup/', "SignupBoxProc");
RedeemBox = new CsForm(Array('redeememail', 'redeemcode'), 'ajax/redeem-invite/', "RedeemBoxProc");
RegisterBox = new CsForm(Array('reguser', 'regname', 'regmonth', 'regday', 'regyear', 'regpassw', 
			'regreppassw', 'regemail', 'regagree'), 'ajax/register/', "RegisterBoxProc");

ForgotPass = new CsForm(Array('forgotpassmail'), 'ajax/forgotpass/', 'ForgotPassProc');
