//GLOBAL VARS
//FORM VALIDATION GLOBAL VARIABLES
var originalFormValues = new Array();
var originalValue = 'default';
var i = 0;
//IE6 CHECK
if (typeof(isIE6) == "undefined"){
	var isIE6 = false;
}
//LOGGED IN CHECK
if (typeof(loggedin) == "undefined"){
	var loggedin = false;
}
//DOM BEGINS
$(document).ready(function(){
	//CALL PRELOADER
	if (!loggedin) {
		preloader("../images", start);
	} else {
		$('head').append('<link rel="stylesheet" href="style.css" type="text/css" media="screen" />');
		start();	
	}
	//PREVENT ENTER KEY FROM SUBMITTING FORM
	$(window).keypress(
		function(event){ 
			if (event.keyCode == 13) {
				event.preventDefault();
			} 
		}
	);
});
//DOM ENDS
//start() - FUNCTION TO INITIATE THE PAGE
function start() {
	$.ajaxSetup({ cache:false });
	//Initial content
	$("#bodyWrapper").load("index_txt.php", function(){
		//FIRST LOAD
		$("#btn_home").addClass("current");
		loadContent("home");
		//NAVBAR
		navbar();
	});
}
//loadContent(page) - FUNCTION TO LOAD CONTENT
function loadContent(page) {
	$(".container").load(page + "_txt.php", function(){
		basics(page);												   
	});
}
//BASICS
function basics(page) {
	//INDIVIDUAL FUNCTIONS
	var current = $(".current").attr("id");
	//BACKGROUND COLOR - DEFAULT
	$("body").css({"background-Image":"url(images/layout/bg4.jpg)"});


	//HOME PAGE
	if (current == "btn_home" || page == "home") {
		//BACKGROUND COLOR - HOME
		$("body").css({"background-Image":"url(images/layout/bg3.jpg)"});
		//LOGIN
		login();
		//LOGOUT
		logout();
		//MENU BOTTOM
		menuBottom();
		//FORM PLUGIN
		//RESET FORM ARRAY
		i = 0;
		originalFormValues = [];
		//SET ORIGINAL FORM VALUES
		$('input').each(function(){
			//INCREASE COUNTER
			originalFormValues[i] = this.name;
			i++;
		});
		submitFormFunction("login", validateFormFunction, successFormFunction);
		
		//ENTER KEY
		$("input.inputbox").keypress(function(e) {
			if(e.which == 13) {
				$(this).blur();
				$("#loginForm").submit();
			}
		});
		
		//BANNER ANIMATION
		var imgArray = [
			{src:"images/layout/home_banner_1.jpg", name:"Welcome to Rimmel London Online Training"},				
			{src:"images/layout/home_banner_2.jpg", name:"Welcome to Rimmel London Online Training"}
		];
		animation_home(".column_home_1",imgArray);

	}
	//REGISTRATION PAGE
	if (page == "registration") {
		//USERNAME AVAILABILITY
		$("#email").change(function(){
			var user = $(this).val();
			var regEmail = new RegExp(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/);
			
			if (regEmail.test(user)) {
				if ($("#check_userAvailability").css("display") == "none") {
					$("#check_userAvailability").stop().slideDown("slow");
				}
				
				$("#userAvailability").html("checking availability...");
				$.ajax({
					type:"POST",
					url:"check.php",
					data:"user=" + user,
					success: function(data){$("#userAvailability").html(data); if (data.indexOf("not")!=-1){$("#email").val("");$("#email").focus();}},
					error: function(XMLHttpRequest,textStatus, errorThrown) {$("#errorLog").html("Status:<br/>" + textStatus + "<br/><br/>Error:<br/>" + errorThrown + "<br/><br/>Response:<br/>" + XMLHttpRequest.responseText);}
				});
			} else {
				if ($("#check_userAvailability").css("display") == "none") {
					$("#check_userAvailability").stop().slideDown("slow");
				}
				$("#userAvailability").html("<span style='color: red; font-size:8px;'><b>Email Format</b> is wrong.</span>");
			}
			
			$("#cemail").val('');
		});
		//EMAIL CHECK
		$("#cemail").change(function(){
			if($("#email").val() !== '') {
				if ($(this).val() != $("#email").val()) {
					setTimeout(function(){$('#cemail').focus()}, 10);
					if ($("#check_emailCheck").css("display") == "none") {
						$("#check_emailCheck").stop().slideDown("slow");	
					}
					$("#emailCheck").html("<span style='color: red; font-size:8px;'>Email do not match.</span>");
					$("#cemail").val("");
					$("#cemail").focus();
				} else {
					$("#emailCheck").html("<span style='color: green; font-size:8px;'>Match.</span>");
					$("#check_emailCheck").stop().slideUp("slow");	
				}
			}
		});
		//PASSWORD CHECK
		$("#cpwd").change(function(){
			if ($(this).val() != $("#pwd").val()) {
				if ($("#check_passwordCheck").css("display") == "none") {
					$("#check_passwordCheck").stop().slideDown("slow");	
				}
				$("#passwordCheck").html("<span style='color: red; font-size:8px;'>Password do not match.</span>");
				$("#cpwd").val("");
				$("#cpwd").focus();
			} else {
				$("#passwordCheck").html("<span style='color: green; font-size:8px;'>Match.</span>");
				$("#check_passwordCheck").stop().slideUp("slow");	
			}
		});
		//ACCOUNT HOLDER NUMBER - SHOW AND HIDE
		$("#check_accHolder").change(function(){
			var displayStatus = $("#tab_accHolder").css("display");
			if (displayStatus == "block") {
				$("#tab_accHolder").slideUp("slow");
			} else {
				$("#tab_accHolder").slideDown("slow");
			}
		});
		//ACCOUNT NUMBER CHECK
		$("#s_accnr").change(function(){
			var account = $(this).val();
			var regNumeric = new RegExp(/^[0-9 _]*$/);
			if (regNumeric.test(account)) {
				if ($("#check_accCheck").css("display") == "none") {
					$("#check_accCheck").stop().slideDown("slow");
				}
				
				$("#accCheck").html("<span style='color: blue; font-size:8px;'>checking availability...</span>");
				$.ajax({
					type:"POST",
					url:"check.php",
					data:"acc=" + account,
					success: function(data){$("#accCheck").html(data); if (data.indexOf("not")!=-1){$("#s_accnr").val("");$("#s_accnr").focus();}},
					error: function(XMLHttpRequest,textStatus, errorThrown) {$("#errorLog").html("Status:<br/>" + textStatus + "<br/><br/>Error:<br/>" + errorThrown + "<br/><br/>Response:<br/>" + XMLHttpRequest.responseText);}
				});
			} else {
				if ($("#check_accCheck").css("display") == "none") {
					$("#check_accCheck").stop().slideDown("slow");
				}
				$("#accCheck").html("<span style='color: red; font-size:8px;'><b>Account Number Format</b> is wrong.</span>");
				$("#s_accnr").val("");
				$("#s_accnr").focus();
			}
			
		});
		//DEIVERY DETAILS - SHOW AND HIDE
		$("#check_deladdrDif").change(function(){
			var displayStatus = $("#tab_deladdrDif").css("display");
			if (displayStatus == "block") {
				$("#tab_deladdrDif").slideUp("slow");
			} else {
				$("#tab_deladdrDif").slideDown("slow");
			}
		});
		//FORM
		submitFormFunction("account", valRegistration, succRegistration);
	}
	//MY ACCOUNT PAGE
	if (page == "account") {
		//LOADING FIELD VALUES
		accountDetails();
		//PASSWORD CHECK
		$("#cpwd").change(function(){
			if ($(this).val() != $("#pwd").val()) {
				if ($("#check_passwordCheck").css("display") == "none") {
					$("#check_passwordCheck").stop().slideDown("slow");	
				}
				$("#passwordCheck").html("<span style='color: red; font-size:8px;'>Password do not match.</span>");
				$("#cpwd").val("");
				$("#cpwd").focus();
			} else {
				$("#passwordCheck").html("<span style='color: green; font-size:8px;'>Match.</span>");
				$("#check_passwordCheck").stop().slideUp("slow");	
			}
		});
		//ACCOUNT HOLDER NUMBER - SHOW AND HIDE
		$("#check_accHolder").change(function(){
			var displayStatus = $("#tab_accHolder").css("display");
			if (displayStatus == "block") {
				$("#tab_accHolder").slideUp("slow");
			} else {
				$("#tab_accHolder").slideDown("slow");
			}
		});
		//ACCOUNT NUMBER CHECK
		$("#s_accnr").change(function(){
			var account = $(this).val();
			var regNumeric = new RegExp(/^[0-9 _]*$/);
			if (regNumeric.test(account)) {
				if ($("#check_accCheck").css("display") == "none") {
					$("#check_accCheck").stop().slideDown("slow");
				}
				
				$("#accCheck").html("<span style='color: blue; font-size:8px;'>checking availability...</span>");
				$.ajax({
					type:"POST",
					url:"check.php",
					data:"acc=" + account,
					success: function(data){$("#accCheck").html(data); if (data.indexOf("not")!=-1){$("#s_accnr").val("");$("#s_accnr").focus();}},
					error: function(XMLHttpRequest,textStatus, errorThrown) {$("#errorLog").html("Status:<br/>" + textStatus + "<br/><br/>Error:<br/>" + errorThrown + "<br/><br/>Response:<br/>" + XMLHttpRequest.responseText);}
				});
			} else {
				if ($("#check_accCheck").css("display") == "none") {
					$("#check_accCheck").stop().slideDown("slow");
				}
				$("#accCheck").html("<span style='color: red; font-size:8px;'><b>Account Number Format</b> is wrong.</span>");
				$("#s_accnr").val("");
				$("#s_accnr").focus();
			}
			
			//$("#s_accnr").val('');
		});
		//DEIVERY DETAILS - SHOW AND HIDE
		$("#check_deladdrDif").change(function(){
			var displayStatus = $("#tab_deladdrDif").css("display");
			if (displayStatus == "block") {
				$("#tab_deladdrDif").slideUp("slow");
			} else {
				$("#tab_deladdrDif").slideDown("slow");
			}
		});
		//LOGIN
		login();
		//FORM
		submitFormFunction("account", valRegistrationUpdate, succRegistration);
	}
	//RETRIEVE YOUR PASSWORD PAGE
	if (page == "pwdRecovery") {
		//EMAIL CHECK FOR RETRIEVING PASSWORD
		$("#email").change(function(){
			var user = $(this).val();
			var regEmail = new RegExp(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/);
			
			if (regEmail.test(user)) {
				if ($("#check_emailCheck").css("display") == "none") {
					$("#check_emailCheck").stop().slideDown("slow");
				}
				
				$("#emailCheck").html("<span style='color: black; font-size:8px;'>checking...</span>");
				$.ajax({
					type:"POST",
					url:"check.php",
					data:"email=" + user,
					success: function(data){$("#emailCheck").html(data);if (data.indexOf("not")!=-1){$("#email").val("").focus();}else{if($("#check_emailCheck").css("display") == "block"){$("#check_emailCheck").stop().slideUp("slow");}}},
					error: function(XMLHttpRequest,textStatus, errorThrown) {$("#errorLog").html("Status:<br/>" + textStatus + "<br/><br/>Error:<br/>" + errorThrown + "<br/><br/>Response:<br/>" + XMLHttpRequest.responseText);}
				});
			} else {
				if ($("#check_emailCheck").css("display") == "none") {
					$("#check_emailCheck").stop().slideDown("slow");
				}
				$("#emailCheck").html("<span style='color: red; font-size:8px;'><b>Email Format</b> is wrong.</span>");
			}
		});
		//LOGIN
		login();
		//FORM
		submitFormFunction("retrieve", valRetrievePassword, succRegistration);
	}
	//MY MODULES PAGE
	if (page == "modules") {
		//BANNER ANIMATION
		var imgArray = [
			{src:"images/modules/module_banner_1.jpg", name:"My Modules"},				
			{src:"images/modules/module_banner_2.jpg", name:"My Modules"}
		];
		animation_home(".column_modules",imgArray);
		//MODULE GALLERY
		moduleGallery();
	}
	//FEEDBACK PAGE
	if (page == "mktfeedback") {
		//SEND BUTTON HOVER STATE
		login();
		//ENTER KEY
		$("input#btn_submit").keypress(function(e) {
			if(e.which == 13) {
				$(this).blur();
				$("#feedbackForm").submit();
			}
		});
		//FORM
		submitFormFunction("feedback", valFeedback, successFormFeedbackFunction);
		//MENU BOTTOM
		menuBottom();
	}
	//CONTACT PAGE
	if (page == "contact") {
		//SEND BUTTON HOVER STATE
		login();
		//ENTER KEY
		$("input#btn_submit").keypress(function(e) {
			if(e.which == 13) {
				$(this).blur();
				$("#contactForm").submit();
			}
		});
		//FORM
		submitFormFunction("contact", valFeedback, successFormFeedbackFunction);
	}
	//FGOTO
	fgoto();
	//AGOTO
	agoto();
	//SGOTO
	sgoto();
	//CUFON
	cufonreplace();
	//LAST ONE - IFIXPNG
	if(typeof(isIE6) != 'undefined'){
		loadedCallbackFunction();
	}
}
//loadedCallbackFunction() - FUNCTION TO FIX PNG IN IE6
function loadedCallbackFunction(){	
	//FIX PNG IN IE6
	$('img').ifixpng();
	$('div, li').each(
		function(){
			if($(this).css("background-image").indexOf('png') != -1){
				$(this).ifixpng();
			}
		}
	);
}
//navbar() - FUNCTION TO INITIALIZE HOVER AND CLICK EVENT ON NAVBAR
function navbar() {
	//CURRENT STATE
	$(".current").addClass("hover");
	//HOVER EVENT
	$(".btn_navbar").hover(function(){
		if ($(this).hasClass("current"))
		{
		} else {
			$(this).addClass("hover");
				cufonreplace();
		}
	},function(){
		if ($(this).hasClass("current"))
		{
		} else {
			$(this).removeClass("hover");
				cufonreplace();
		}
	});
	//CLICK EVENT
	$(".btn_navbar").click(function(){		
		var href=$(this).attr("id").substring(4,$(this).attr("id").length);
		
		//CHANGING CURRENT STATE
		$(".btn_navbar").removeClass("current").removeClass("hover");
		$("#btn_" + href).addClass("current").addClass("hover");
		
		//LOAD CONTENT
		loadContent(href);
	});
}
//FORM VALIDATION ERROR FUNCTION
function pageError(fieldName, errorText, jqForm){
	$("#errorLog").html(errorText); 
	$("#errorLog").css('display', 'block');
	$(eval('jqForm[0].' + fieldName)).attr('value','');
	$(eval('jqForm[0].' + fieldName)).focus();
}
//FORM VALIDATION FUNCTION
function validateFormFunction(formData, jqForm, options){
	//REGEX DEFINITIONS
	var regEmail = new RegExp(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/);
	var regNumeric = new RegExp(/^[0-9 _]*$/);
	var regSpace = new RegExp(/^[\s]*$/);
	var regDate = new RegExp(/^\d{2}\/\d{2}\/\d{4}$/);
	var returnVar = true;
	//RESET ERROR
	$("#errorLog").css('display', 'none');
	//RESET COUNTER TO 0
	i = 0;
	//RUN VALIDATION FUNCTION
	$.each(formData, function(){
		if(this.value != 'LOGIN'){
			if(this.value == originalFormValues[i] || this.value == ''){
				pageError(this.name, 'Please fill in the <b>' + originalFormValues[i] + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} else if(regSpace.test(this.value)){
				pageError(this.name, 'Please check the <b>' + originalFormValues[i] + '</b> field begins with a letter or a number.', jqForm);
				returnVar = false;
				return false;
			} else if(this.name.toLowerCase().indexOf('email') > -1 && !regEmail.test(this.value)){
				pageError(this.name, 'Please enter a valid <b>' + originalFormValues[i] + '</b>.', jqForm);
				returnVar = false;
				return false;
			} else if((this.name.toLowerCase().indexOf('phone') > -1 || this.name.toLowerCase().indexOf('mobile') > -1) && !regNumeric.test(this.value)){
				pageError(this.name, 'Please remove any non numeric characters from the <b>' + originalFormValues[i] + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} else if(this.name.toLowerCase().indexOf('dob') > -1 && !regDate.test(this.value)){
				pageError(this.name, 'Please ensure the <b>' + originalFormValues[i] + '</b> field uses DD/MM/YYYY formatting.', jqForm);
				returnVar = false;
				return false;
			}
			
			//INCREASE COUNTER
			i++;
		}
	});
	if(returnVar == false){
		return false;
	}
}
//FORM SUCCESS FUNCTION
function successFormFunction(data) {
	if (data.indexOf("Rimmel")!=-1) {
		window.location.href = "index.php";
	} else {
		$("#errorLog").html(data); 
		$("#errorLog").css('display', 'block');
	}
}
//FORM SUBMISSION FUNCTION
function submitFormFunction(formID, val, succ){
	//FORM VARIABLE MODIFICATION
	formID = formID + 'Form';
	//FORM SUBMISSION
	var options = { 
		beforeSubmit: val,
		success: succ,
		formID: formID
	};
	//BIND FORM SUBMIT
	$('#' + formID).ajaxForm(options);
}
//CUFON REPLACE
function cufonreplace() {
	//var classes = ["btn_navbar","menuBottomContent","footer","header1","header2","header3","modHeader","modSubheader","modNavBar"];
	var classes = ["btn_navbar","menuBottomContent","header1","header2","header3","modHeader","modSubheader","modNavBar","questionlabel","errorMsg"];
	var str = "";
	$.each(classes, function(){
		str += "." + this + ",";					 
	});
	str = str.substring(0,str.length-1);
	Cufon.replace(str, {fontFamily:"Gotham"});
	$(".cufon-vml").css({"margin":"0px"});
}
//LOGIN HOVER EVENT
function login() {
	//HOVER EVENT
	$("#btn_submit").hover(function(){
		$(this).addClass("hover");							
	},function(){
		$(this).removeClass("hover");										 
	});
}
//LOGOUT
function logout() {
	//HOVER EVENT
	$("#btn_logout").hover(function(){
		$(this).addClass("hover");								  
	},function(){
		$(this).removeClass("hover");											
	});
	//CLICK EVENT
	$("#btn_logout").click(function(){
			$.ajax({  
				type:"POST",  
				url:"logout.php",  
				success:function(data){if (data.indexOf("Rimmel")!=-1){window.location.href = "index.php";}else{/*alert(data);*/}},
				error:function(XMLHttpRequest,textStatus, errorThrown){/*alert("Status" + textStatus + "Error:" + errorThrown + "<br/>Response:" + XMLHttpRequest.responseText);*/}
			});  
			return false;  
	});
}
//MENU BOTTOM - HOVER AND CLICK EVENTS
function menuBottom() {
	//HOVER EVENT
	$(".btn_menubottom").hover(function(){
		$(this).addClass("hover");				 
	},function(){
		$(this).removeClass("hover");							  
	});
	//CLICK EVENT
	$(".btn_menubottom").click(function(){
		var clicked = $(this).attr("id");
		if (clicked == "btn_myaccount") {
			if ($(".loginStatus").html().length >= 20) {
				//SESSION IN PROGRESS
				$("#btn_account").trigger("click");
			} else {
				//NO SESSION IN PROGRESS
				alert("Please log in before accessing your account.");
			}
		}
		if (clicked == "btn_mymodules") {
			if ($(".loginStatus").html().length >= 20) {
				$("#btn_modules").trigger("click");	
			} else {
				alert("Please log in before accessing your modules.");
			}
		}
		if (clicked == "btn_feedback") {
			$("#btn_mktfeedback").trigger("click");	
		}
	});
}
//VALIDATION - REGISTRATION FORM
function valRegistration(formData, jqForm, options) {
	nullFields = ["How did you hear about our training?","Store Phone Number","Rimmel Account Holder","Rimmel Account Number","Store Post Code","Different Delivery Address","Delivery Address","Delivery Suburb","Delivery State","Delivery Post Code"];
	//RESET COUNTER TO 0
	i = 0;
	//REGEX DEFINITIONS
	var regEmail = new RegExp(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/);
	var regNumeric = new RegExp(/^[0-9 _]*$/);
	var regSpace = new RegExp(/^[\s]*$/);
	var regDate = new RegExp(/^\d{2}\/\d{2}\/\d{4}$/);
	var returnVar = true;
	//RESET ERROR
	$("#errorLog").css('display', 'none');
	//RUN VALIDATION FUNCTION
	$.each(formData, function(){
		if(this.value != "REGISTER") {
			fieldLabel = $("#" + this.name).parent().attr("rel");
			if (this.value == "" && $.inArray(fieldLabel, nullFields) == -1) {
				pageError(this.name, 'Please fill in the <b>' + fieldLabel + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} else if (this.name.toLowerCase().indexOf('email') > -1 && !regEmail.test(this.value)){
				pageError(this.name, 'Please enter a valid <b>' + fieldLabel + '</b>.', jqForm);
				returnVar = false;
				return false;
			} else if ((this.name.toLowerCase().indexOf('phone') > -1 || this.name.toLowerCase().indexOf('mobile') > -1) && !regNumeric.test(this.value)){
				pageError(this.name, 'Please remove any non numeric characters from the <b>' + fieldLabel + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} 
			//INCREASE COUNTER
			i++;
		}
	});
	if(returnVar == false){
		return false;
	}
	if($('#check_accept').is(':checked') != true){
		$("#errorLog").html("You have to accept the <b>Terms and Conditions</b> before continue."); 
		$("#errorLog").css('display', 'block');
		return false;
	}
}
//SUCCESS - REGISTRATION
function succRegistration(data) {
	$(".formBox").html(data);
	//SGOTO
	sgoto();
}
//ACCOUNT DETAILS
function accountDetails() {
	//GETTING THE USER ID
	var user = $("#user").val();
	//RETRIEVING DATA FROM DB
	$.ajax({  
		url:'accountDetails.php',
		data:'u='+escape(user),
		type:'GET',
		cache:false,
		contentType:'application/json; charset=utf-8',
		dataType:"json",
		success:function(data){addValues(data);},
		error:function(XMLHttpRequest,textStatus, errorThrown) {$("#errorConsole").html("Status:<br/>" + textStatus + "<br/><br/>Error:<br/>" + errorThrown + "<br/><br/>Response:<br/>" + XMLHttpRequest.responseText);}
	});
	//INSERTING DATA TO INPUT FIELDS
	function addValues(data) {
		$("#fname").val(data[0].fname);
		$("#lname").val(data[0].lname);
		$("#email").val(data[0].email);
		$("#pwd").val(data[0].pwd);
		$("#hear").val(data[0].hear);
		$("#s_name").val(data[0].s_name);
		$("#s_manager").val(data[0].s_manager);
		$("#s_phone").val(data[0].s_phone);

		$("#s_accnr").val(data[0].s_accnr);

		$("#s_addr").val(data[0].s_addr);
		$("#s_suburb").val(data[0].s_suburb);
	//	$("#s_state").val(data[0].sponsor);
		$("#s_pcode").val(data[0].s_pcode);
		
		$("#d_addr").val(data[0].d_addr);
		$("#d_suburb").val(data[0].d_suburb);
	//	$("#d_state").val(data[0].speakers);
		$("#d_pcode").val(data[0].d_pcode);

		//SLIDING DOWN AND CHECKING BOX
		if ($("#s_accnr").val() != "") {
			$("#check_accHolder").trigger("click");
			$("#tab_accHolder").slideDown("slow");
		}
		//SLIDING DOWN AND CHECKING BOX
		if ($("#d_addr").val() !="" || $("#d_suburb").val() !="" || $("#d_pcode").val() !="") {
			$("#check_deladdrDif").trigger("click");
			$("#tab_deladdrDif").slideDown("slow");
		}
		//STORE STATE
		$("#s_state option").each(function(){
			if ($(this).text() == data[0].s_state) {
				$(this).attr("selected","selected");
			}
		});
		//DELIVERY STATE
		$("#d_state option").each(function(){
			if ($(this).text() == data[0].d_state) {
				$(this).attr("selected","selected");
			}
		});
	}
	
}
//VALIDATION - ACCOUNT UPDATE
function valRegistrationUpdate(formData, jqForm, options) {
	nullFields = ["How did you hear about our training?", "Store Phone Number", "Rimmel Account Holder", "Rimmel Account Number", "Store Post Code", "Different Delivery Address", "Delivery Address", "Delivery Suburb", "Delivery State", "Delivery Post Code"];
	//RESET COUNTER TO 0
	i = 0;
	//REGEX DEFINITIONS
	var regEmail = new RegExp(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/);
	var regNumeric = new RegExp(/^[0-9 _]*$/);
	var regSpace = new RegExp(/^[\s]*$/);
	var regDate = new RegExp(/^\d{2}\/\d{2}\/\d{4}$/);
	var returnVar = true;
	//RESET ERROR
	$("#errorLog").css('display', 'none');
	//RUN VALIDATION FUNCTION
	$.each(formData, function(){
		if(this.value != "UPDATE") {
			fieldLabel = $("#" + this.name).parent().attr("rel");
			if (this.value=="" && $.inArray(fieldLabel, nullFields) ==-1) {
				pageError(this.name, 'Please fill in the <b>' + fieldLabel + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} else if(this.name.toLowerCase().indexOf('email') > -1 && !regEmail.test(this.value)){
				pageError(this.name, 'Please enter a valid <b>' + fieldLabel + '</b>.', jqForm);
				returnVar = false;
				return false;
			} else if((this.name.toLowerCase().indexOf('phone') > -1 || this.name.toLowerCase().indexOf('mobile') > -1) && !regNumeric.test(this.value)){
				pageError(this.name, 'Please remove any non numeric characters from the <b>' + fieldLabel + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} 
			//INCREASE COUNTER
			i++;
		}
	});
	if(returnVar == false){
		return false;
	}
}
//VALIDATION - RETRIEVE PASSWORD
function valRetrievePassword(formData, jqForm, options) {
	var regEmail = new RegExp(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/);
	var returnVar = true;
	if (formData[0].value == "" || !regEmail.test(formData[0].value)) {
		pageError(this.name, 'Please enter a valid <b>Email</b>.', jqForm);
		returnVar = false;
		return false;
	}
	if(returnVar == false) {
		return false;
	}
}
//FGOTO
function fgoto() {
	$(".fgoto").click(function() {
//		var clicked = $(this).attr("id").substring(5,$(this).attr("id").length);
//		loadContent(clicked);
		var clicked = $(this).attr("rel");
		if (clicked.indexOf("btn")!=-1) {
			$("#" + clicked).trigger("click");
		} else {
			loadContent(clicked);
		}
	});	
}
//SGOTO
function sgoto() {
	$(".sgoto").click(function() {
		var clicked = $(this).attr("rel");
		if (clicked.indexOf("btn")!=-1) {
			$("#" + clicked).trigger("click");
		} else {
			loadContent(clicked);
		}
	});
}
//AGOTO
function agoto() {
	$(".agoto").click(function() {
		var clicked = $(this).attr("rel");
		if (clicked.indexOf("btn")!=-1) {
			$("#" + clicked).trigger("click");
		} else {
			loadContent(clicked);
		}
	});
}
//MODULE GALLERY
function moduleGallery() {
	var user = $("#user").val();
	//GETTING PENDING MODULES FOR USER - DB
	$.ajax({  
		url:'modulesList.php',
		data:'u='+escape(user),
		type:'GET',
		cache:false,
		contentType:'application/json; charset=utf-8',
		dataType:"json",
		success:function(data){rungal(data);},
		error:function(XMLHttpRequest,textStatus, errorThrown) {alert("Status:<br/>" + textStatus + "<br/><br/>Error:<br/>" + errorThrown + "<br/><br/>Response:<br/>" + XMLHttpRequest.responseText);}
	});
	//GENERATING MODULE GALLERY BASED ON RESULTS FROM DB
	function rungal(modules) {
		var reviewModuleAdded = false;
		var str = "";
		$.each(modules, function() {
			if (this.name.toUpperCase() == 'COMING SOON' && !reviewModuleAdded) {
				str += "<div id='module_module_R' class='moduleItem' rel='unlocked' style='background:url(images/modules/btn_module_R.jpg) no-repeat 0px 0px;'>";
				str += "	<div class='moduleImg'></div>";
		//		str += "	<div class='moduleImg'><img src='" + this.img + "' alt='" + this.name + "' title='" + this.name + "'/></div>";
				str += "	<div class='moduleBody'>";
				str += "		<div class='modulePadding2'>";
				str += "			<div class='moduleText'>";
				str += "				<div class='moduleID'></div>";
				str += "				<div class='moduleName'>PRODUCT REVIEW</div>";
				str += "				<div class='moduleGap'></div>";
				/*if (this.status.toUpperCase() == "COMPLETED") {
					str += "				<div class='moduleStatus' style='color:#01A315;'>" + this.status.toUpperCase() + "</div>";
				} else {
					str += "				<div class='moduleStatus'>" + this.status.toUpperCase() + "</div>";
				}*/
				str += "			</div>";
				str += "		</div>";
				str += "	</div>";
				str += "</div>";
				str += "<div class='moduleVgap'></div>";
				
				reviewModuleAdded = true;
			}
			
			str += "<div id='module_" + this.url + "' class='moduleItem' rel='" + this.lock + "' style='background:url(images/modules/" + this.img + ") no-repeat 0px 0px;'>";
			str += "	<div class='moduleImg'></div>";
	//		str += "	<div class='moduleImg'><img src='" + this.img + "' alt='" + this.name + "' title='" + this.name + "'/></div>";
			str += "	<div class='moduleBody'>";
			str += "		<div class='modulePadding2'>";
			str += "			<div class='moduleText'>";
			str += "				<div class='moduleID'>MODULE " + this.id + "</div>";
			str += "				<div class='moduleName'>" + this.name.toUpperCase() + "</div>";
			str += "				<div class='moduleGap'></div>";
			if (this.status.toUpperCase() == "COMPLETED") {
				str += "				<div class='moduleStatus' style='color:#01A315;'>" + this.status.toUpperCase() + "</div>";
			} else {
				str += "				<div class='moduleStatus'>" + this.status.toUpperCase() + "</div>";
			}
			str += "			</div>";
			str += "		</div>";
			str += "	</div>";
			str += "</div>";
			str += "<div class='moduleVgap'></div>";		
		});
		//PRINTING STR
		$(".moduleContainer").html(str);
		
		//CHANGING OPACITY TO LOCKED MODULES
		$(".moduleItem[rel=locked] .moduleImg").css({opacity:"0.50"});
		$(".moduleItem[rel=locked] .moduleBody .modulePadding2 .moduleText .moduleID").css({color:"#B3B3B3"});
		$(".moduleItem[rel=locked] .moduleBody .modulePadding2 .moduleText .moduleName").css({color:"#B3B3B3"});
		//CURSOR POINTER FOR UNLOCKED ONES
		$(".moduleItem[rel!=locked]").css({cursor:"pointer"});
		//HOVER EVENT FOR NON LOCKED
		$(".moduleItem[rel!=locked]").hover(function(){
			//$(this).css({"background-color":"#333333"});									 
			$(this).css({"backgroundPosition":"0px -138px"});									 
		}, function(){
			//$(this).css({"background-color":"#1A1A1A"});									 
			$(this).css({"backgroundPosition":"0px 0px"});									 
		});
		//CLICK EVENT FOR NON LOCKED
		$(".moduleItem[rel!=locked]").click(function(){
			var clicked = $(this).attr("id").substring(7);
			$(".column_modules").load(clicked + ".php", function(){
				moduleApp(clicked);				
			});
		});	
		
		//PREV AND NEXT BUTTON CLICK EVENT - GALLERY
		//PREVIOUS BUTTON HOVER EVENT
		var countThumb = modules.length+1;
		$(".moduleNext").hover(function() {
			var maxposX = (200 + 8) * countThumb - 840;
			$(".moduleContainer").stop().animate({left:"-" + maxposX + "px"}, 500, function(){});
		}, function() {
			$(".moduleContainer").stop();
		});
		//NEXT BUTTON HOVER EVENT
		$(".modulePrev").hover(function() {
			$(".moduleContainer").stop().animate({left:"5px"},500,function(){});							
		}, function() {
			$(".moduleContainer").stop();										  
		});
		
		function unlockModule(url) {
			$('#module_' +url).css({ opacity:1 });
			$('#module_' +url +' .moduleID').css({ color:'#ffffff' });
			$('#module_' +url +' .moduleName').css({ color:'#ffffff' });
			//CURSOR POINTER FOR UNLOCKED ONES
			$('#module_' +url).css({ cursor:'pointer' });
			//HOVER EVENT FOR NON LOCKED
			$('#module_' +url).hover(function() {
				//$(this).css({"background-color":"#333333"});									 
				$(this).css({ 'backgroundPosition':'0px -138px'});									 
			}, function() {
				//$(this).css({"background-color":"#1A1A1A"});									 
				$(this).css({ 'backgroundPosition':'0px 0px' });									 
			});
			//CLICK EVENT FOR NON LOCKED
			$('#module_' +url).click(function() {
				var clicked = $(this).attr('id').substring(7);
				$('.column_modules').load(clicked + '.php', function() {
					moduleApp(clicked);
				});
			});
		}
		
		//MODULES EVENTS
		function moduleApp(url) {
			$('.modTerms').die();
			$('.modStart').die();
			$('.modPrev').die();
			$('.modNext').die();
			$('.questionAnsw select').die();
			$('.questNext').die();
			$('.questPrev').die();
			// kill any leftover live event handlers - important, must call die() on each individually
			
			if (url == "module_1") {
				//BASIC SETTINGS
				var nrpages = parseFloat($("#NrPages").val());
				var questionaire = $("#questionaire").val();
				var currentPage = 1;
				//QUESTIONAIRE SETTINGS
				var	questNrpages = 2;
				var	questcurrpage = 1;
				var questions = [
					{q:"1. WHAT SHADE OF LIPSTICK IS KATE WEARING FOR LASTING FINISH LIPSTICK?", op1:"SHADE 010 RED N CHIC", op2:"SHADE 035 FIREY RED", op3:"SHADE 011 LASTING ROUGE", answ:"1"},
					{q:"2. WHO IS THE FACE OF THE GLAM'EYES DAY-2-NIGHT MASCARA?", op1:"KATE MOSS", op2:"ZOOEY DESCHANEL", op3:"SOPHIE ELLIS-BEXTOR", answ:"2"},
					{q:"3. HOW LONG DOES GLAM'EYES HD EYE SHADOWS LAST FOR?", op1:"WEARS UP TO 24 HOURS", op2:"WEARS UP TO 4 HOURS", op3:"WEARS UP TO 10 HOURS", answ:"3"},
					{q:"4. HOW MANY SHADES ARE AVAILABLE IN EACH PALLET FOR GLAM'EYES HD EYE SHADOWS?", op1:"5 VIBRANT COLOURS", op2:"8 INTENSE COLOURS", op3:"4 UNIQUE SHADES", answ:"3"},
					{q:"5. WHAT DOES GLAM'EYES DAY-2-NIGHT MASCARA DO FOR YOUR LASHES?", op1:"LENGTHENS AND DEFINES", op2:"ADDS CREASE PROOF COLOUR", op3:"THINS AND LIGHTENS", answ:"1"}
				];

				//DEFAULT PAGE - 1
				$(".modulebg").css({"background-image":"url('images/modules/module_1_1.jpg')"})
							  .append("<div class='modStart'></div><div class='modTerms'></div>");
				//BACKGROUND COLOR - DEFAULT
				$("body").css({"background-Image":"url(images/layout/bg2.jpg)"});
				
				//TERMS AND CONDITION FUNCTIONALITY
				$(".modTerms").live("click", function() {
					//alert("Terms and Conditions");
					$(this).parent().append("<a href='module1_terms.html' class='colorbox' style='display:none;'>&nbsp;</a>");
					$(".colorbox").colorbox({width:"800px", height:"1300px"}).trigger("click");
					
					return false;
				});
				//START MODULE BUTTON
				$(".modStart").live("click", function() {
					currentPage++;
					pagecontrol("add");
				});
				
				$(".modPrev").live("click", function() {
					currentPage--;
					pagecontrol("reduce");
				});

				$(".modNext").live("click", function() {
					currentPage++;
					pagecontrol("add");
				});

				function pagecontrol(action) {
					if (action == "add") {
						if (currentPage <= nrpages) {
							$(".modulebg").css({"background-image":"url('images/modules/module_1_" + currentPage + ".jpg')"})
										  .html("<div class='modPrev'></div><div class='modNext'></div>");
							/*if (currentPage == nrpages && questionaire != "TRUE") {
								$('.modNext').hide();
							} else {
								$('.modNext').show();								
							}*/										  
						} else if (questionaire == "TRUE") {
							questNrpages = 4;
							questcurrpage = 1;
							questionaire1();
						} else {
							$(".modulebg").css({"background-image":"url('images/modules/module_1_16.jpg')","cursor":"pointer"})
								.html("").one('click', function() { moduleApp('module_1'); });
						}
					} else if (action == "reduce") {
						if (currentPage == 1) {
							$(".modulebg").css({"background-image":"url('images/modules/module_1_1.jpg')"})
										  .html("<div class='modStart'></div><div class='modTerms'></div>");
						} else {
							$(".modulebg").css({"background-image":"url('images/modules/module_1_" + currentPage + ".jpg')"})
										  .html("<div class='modPrev'></div><div class='modNext'></div>");
						}
					}
					//CHECK COLOR OF BG 
					if (currentPage == 1) {
						$("body").css({"background-Image":"url(images/layout/bg2.jpg)"});
					} else if (currentPage == 2 || currentPage == 3 || currentPage == 4) {
						$("body").css({"background-Image":"url(images/layout/bg3.jpg)"});
					} else if (currentPage == 5 || currentPage == 6 || currentPage == 7 || currentPage == 8) {
						$("body").css({"background-Image":"url(images/layout/bg1.jpg)"});
					} else if (currentPage == 9 || currentPage == 10 || currentPage == 11 || currentPage == 12) {
						$("body").css({"background-Image":"url(images/layout/bg2.jpg)"});
					} else {
						$("body").css({"background-Image":"url(images/layout/bg2.jpg)"});						
					}
					
					return false;
				}
				//QUESTiONAIRE
				function questionaire1() {
					questionairePaging();
					
					//FUNCTIONS
					$(".questionAnsw select").live("change",function(){
						var rightansw = $(this).parent().attr("rel");
						var selected = $(this).val();
						if (selected != rightansw) {
							$(this).css("border","2px solid #DD0000");
						} else {
							$(this).css("border","1px solid #BBB");
						}
					});
					
					$(".questNext").live("click",function() {
						//CHECK ANSWERS	
						var NoErrors = true;
						var nrselects = $(".questionContainer .questionAnsw select").length;
						if(nrselects > 0) {
							$(".questionContainer .questionAnsw select").each(function(){
								var qa = $(this).parent().attr("rel");
								var sv = $(this).val();
								if (sv != qa) NoErrors = false;
							});
						} else {
							if ($("#mod1textarea").val() == "Enter your answer here..." || $("#mod1textarea").val().split(" ").length > 49 || $("#mod1textarea").val().split(".").length > 48) NoErrors = false;
						}
						if (NoErrors) {
							questcurrpage++;
							questionairePaging();
						} else {
							$(".modulebg").append("<div class='errorMsg'>You must select the correct answer to continue.</div>");
							//CUFON
							cufonreplace();
						}
						return false;
					});

					$(".questPrev").live("click",function() {
						questcurrpage--;
						questionairePaging();
						return false;
					});
					
					//TEXT AREA
					$("#mod1textarea").live("focus",function() {
						if ($(this).val() == "Enter your answer here...") {
							$(this).val("");
						}
					});
					$("#mod1textarea").live("blur",function() {
						if ($(this).val() == "") {
							$(this).val("Enter your answer here...");
						}
					});
					
					//FUNCTION QUESTIONAIREPAGING
					function questionairePaging() {
						if (questcurrpage == 1) {
							$(".modulebg").css({"background-image":"url('images/modules/module_1_13.jpg')"});
							var str = "<div class='questionContainer'>";
							for (var i=0; i<=2; i++) {
								str +="		<div class='questionlabel'>" + questions[i].q + "</div>";
								str +="		<div class='questionAnsw' rel='" + questions[i].answ + "'>";
								str +="			<select id='q" + i + "'>";
								str +="				<option value=''>Select your answer...</option>";
								str +="				<option value='1'>" + questions[i].op1 + "</option>";
								str +="				<option value='2'>" + questions[i].op2 + "</option>";
								str +="				<option value='3'>" + questions[i].op3 + "</option>";
								str +="			</select>";
								str +="		</div>";
							}
							str += "</div>";
							$(".modulebg").html(str + "<div class='modPrev'></div><div class='questNext'></div>");
							//CUFON
							cufonreplace();
						} else if (questcurrpage == 2) {
							$(".modulebg").css({"background-image":"url('images/modules/module_1_14.jpg')"});
							var str = "<div class='questionContainer'>";
							for (var i=3; i<=4; i++) {
								str +="		<div class='questionlabel'>" + questions[i].q + "</div>";
								str +="		<div class='questionAnsw' rel='" + questions[i].answ + "'>";
								str +="			<select id='q" + i + "'>";
								str +="				<option value=''>Select your answer...</option>";
								str +="				<option value='1'>" + questions[i].op1 + "</option>";
								str +="				<option value='2'>" + questions[i].op2 + "</option>";
								str +="				<option value='3'>" + questions[i].op3 + "</option>";
								str +="			</select>";
								str +="		</div>";
							}
							str += "</div>";
							$(".modulebg").html(str + "<div class='questNext'></div>");
							//CUFON
							cufonreplace();
						} else if (questcurrpage == 3) {
							//BACKGROUND
							$(".modulebg").css({"background-image":"url('images/modules/module_1_15.jpg')"})
										  .html("<div class='mod1_contest'><textarea id='mod1textarea'>Enter your answer here...</textarea></div><div class='questNext'></div>");
						} else if (questcurrpage == 4) {
							var answers = $("#mod1textarea").val();
							//BACKGROUND
							$(".modulebg").css({"background-image":"url('images/modules/module_1_16.jpg')"}).html("");
							//UPDATE DATABASE
							var user = $("#user").val();
							$.ajax({  
								url:'module_1.php',
								data:'c=1&u='+escape(user)+'&a='+escape(answers),
								type:'POST',
								cache:false,
								error:function(XMLHttpRequest,textStatus, errorThrown) {alert("Status:<br/>" + textStatus + "<br/><br/>Error:<br/>" + errorThrown + "<br/><br/>Response:<br/>" + XMLHttpRequest.responseText);},
								success:function(data){
									questionaire = "FALSE";
								}
							});
							
							//CHANGE MODULE 1 STATUS TO COMPLETED
							$("#module_module_1 .moduleBody .modulePadding2 .moduleText .moduleStatus").html("COMPLETED").css({color:"#01A315"});
						
							unlockModule('module_2');
							//UNLOCK MODULE 2 IF IT EXISTS
							
						}
						return false;
					}
					
				}
				
				return false;
				// end module_1
			}
			
			if (url == "module_2") {
				//BASIC SETTINGS
				var nrpages = parseFloat($("#NrPages").val());
				var questionaire = $("#questionaire").val();
				var currentPage = 1;
				//QUESTIONAIRE SETTINGS
				var	questNrpages = 2;
				var	questcurrpage = 1;
				var questions = [
					{q:"1. WHAT LOOK DOES SCANDALEYES MASCARA GIVE?", op1:"NATURAL LOOK", op2:"DRAMATIC FALSE LASH EFFECT", op3:"NATURAL, DEFINED LOOK", answ:"2"},
					{q:"2. MAXDENSITY BRUSH TECHNOLOGY _______ ?", op1:"HAS A SMOOTH CREAMY TEXTURE", op2:"SEPARATES, DEFINES &AMP; COVERS THE WHOLE LASH LINE", op3:"WEARS UP TO 10 HOURS", answ:"2"},
					{q:"3. WHAT DOES THE MAXDENSITY BRUSH DO?", op1:"CAPTURE &AMP; PLUMP LASHES WITHOUT CLUMPING", op2:"SEPARATE &AMP; DEFINE", op3:"COVER THE WHOLE LASH LINE", op4:"ALL OF THE ABOVE", answ:"1"},
					{q:"4. WHAT 2 INGREDIENTS DOES SCANDALEYES CONTAIN THAT PLUMP AND STRENGTHEN LASHES?", op1:"COLLAGEN &AMP; BIOTIN", op2:"KERATIN &AMP; BIOTIN", op3:"COLLAGEN &amp; KERATIN", answ:"3"},
					{q:"5. WHAT SHADE DOES SCANDALEYES COME IN?", op1:"SHADE 001 BLACK", op2:"SHADE 003 BROWN BLACK", op3:"SHADE 002 MIDNIGHT BLACK", answ:"1"},
					{q:"6. WHAT FORMULATION IS IT AVAILABLE IN?", op1:"WASHABLE", op2:"WATERPROOF", answ:"1"}
				];

				//DEFAULT PAGE - 1
				$('.modulebg').css({ 'background-image':'url(images/modules/module_2_1.jpg)' })
							  .append('<div class="modStart"></div><div class="modTerms"></div>');
				//BACKGROUND COLOR - DEFAULT
				$('body').css({ 'background-image':'url(images/layout/bg5.jpg)' });
				
				//TERMS AND CONDITION FUNCTIONALITY
				$('.modTerms').live('click', function(){
					$(this).parent().append('<a href="module2_terms.html" class="colorbox" style="display:none;">&nbsp;</a>');
					$('.colorbox').colorbox({ width:'800px', height:'1300px' }).trigger('click');
					return false;
				});
				
				//START MODULE BUTTON
				$('.modStart').live('click', function(){
					currentPage++;
					pagecontrol2('add');
				});
				
				$('.modPrev').live('click', function(){
					currentPage--;
					pagecontrol2('reduce');
				});

				$('.modNext').live('click', function(){
					currentPage++;
					pagecontrol2('add');				  
				});

				function pagecontrol2(action) {
					if (action == 'add') {
						if (currentPage <= nrpages) {
							$('.modulebg').css({ 'background-image':'url(images/modules/module_2_' + currentPage + '.jpg)' })
										  .html('<div class="modPrev"></div><div class="modNext"></div>');
							/*if (currentPage == nrpages && questionaire != "TRUE") {
								$('.modNext').hide();
							} else {
								$('.modNext').show();								
							}*/
						} else if (questionaire == 'TRUE') {
							questNrpages = 4;
							questcurrpage = 1;
							questionaire2();
						} else {
							$(".modulebg").css({"background-image":"url('images/modules/module_2_9.jpg')"})
								.html('<div class="modTerms mod2TermsEnd"></div><div class="modNext"></div>');
							$('.modNext').one('click', function() { moduleApp('module_2'); });
						}
					} else if (action == 'reduce') {
						if (currentPage == 1) {
							$('.modulebg').css({ 'background-image':'url(images/modules/module_2_1.jpg)' })
										  .html('<div class="modStart"></div><div class="modTerms"></div>');
						} else {
							$('.modulebg').css({ 'background-image':'url(images/modules/module_2_' + currentPage + '.jpg)' })
										  .html('<div class="modPrev"></div><div class="modNext"></div>');
						}
					}
					//CHECK COLOR OF BG 
					/*if (currentPage == 1) { $('body').css({ 'background-image':'url(images/layout/bg2.jpg)' }); }
					if (currentPage == 2 || currentPage == 3 || currentPage == 4) { $("body").css({"background-Image":"url(images/layout/bg3.jpg)"}); }
					if (currentPage == 5 || currentPage == 6 || currentPage == 7 || currentPage == 8) {$("body").css({"background-Image":"url(images/layout/bg1.jpg)"});}
					if (currentPage == 9 || currentPage == 10 || currentPage == 11 || currentPage == 12) {$("body").css({"background-Image":"url(images/layout/bg2.jpg)"});}*/
					$('body').css({ 'background-image':'url(images/layout/bg5.jpg)'});
					return false;
				}
				
				//QUESTiONAIRE
				function questionaire2() {
					questionairePaging2();
					
					//FUNCTIONS
					$(".questionAnsw select").live("change",function(){
						var rightansw = $(this).parent().attr("rel");
						var selected = $(this).val();						
						$(this).css('border', selected != rightansw ? '2px solid #DD0000' : '1px solid #BBB');
					});
					
					$(".questNext").live("click",function(){
						//CHECK ANSWERS	
						var NoErrors = true;
						var nrselects = $(".questionContainer .questionAnsw select").length;
						if(nrselects > 0) {
							$(".questionContainer .questionAnsw select").each(function(){
								var qa = $(this).parent().attr("rel");
								var sv = $(this).val();
								if (sv != qa) NoErrors = false;
							});
						} else {
							if ($("#mod2textarea").val() == "Enter your answer here..." || $("#mod2textarea").val().split(" ").length > 49 || $("#mod2textarea").val().split(".").length > 48) NoErrors = false;
						}
						if (NoErrors) {
							questcurrpage++;
							questionairePaging2();
						} else {
							$('.modulebg').append('<div class="errorMsg">You must select the correct answer to continue.</div>');
							//CUFON
							cufonreplace();
						}
						return false;
					});

					$(".questPrev").live("click",function(){
						questcurrpage--;
						questionairePaging2();
						return false;
					});
					
					//TEXT AREA
					$("#mod2textarea").live("focus",function(){
						if ($(this).val() == "Enter your answer here...") $(this).val("");
					});
					$("#mod2textarea").live("blur",function(){
						if ($(this).val() == "") $(this).val("Enter your answer here...");
					});
					
					//FUNCTION QUESTIONAIREPAGING
					function questionairePaging2() {
						if (questcurrpage == 1) {
							$(".modulebg").css({ "background-image":"url('images/modules/module_2_6.jpg')" });
							var str = "<div class='questionContainer'>";
							for (var i=0; i<=2; i++) {
								str +="		<div class='questionlabel'>" + questions[i].q + "</div>";
								str +="		<div class='questionAnsw' rel='" + questions[i].answ + "'>";
								str +="			<select id='q" + i + "'>";
								str +="				<option value=''>Select your answer...</option>";
								str +="				<option value='1'>" + questions[i].op1 + "</option>";
								str +="				<option value='2'>" + questions[i].op2 + "</option>";
								if (questions[i].op3) {
									str +="				<option value='3'>" + questions[i].op3 + "</option>";
								}
								if (questions[i].op4) {
									str +="				<option value='4'>" + questions[i].op4 + "</option>";
								}
								str +="			</select>";
								str +="		</div>";
							}
							str += "</div>";
							$(".modulebg").html(str + "<div class='modPrev'></div><div class='questNext'></div>");
							//CUFON
							cufonreplace();
						} else if (questcurrpage == 2) {
							$(".modulebg").css({ "background-image":"url('images/modules/module_2_7.jpg')" });
							var str = "<div class='questionContainer'>";
							for (var i=3; i<=5; i++) {
								str +="		<div class='questionlabel'>" + questions[i].q + "</div>";
								str +="		<div class='questionAnsw' rel='" + questions[i].answ + "'>";
								str +="			<select id='q" + i + "'>";
								str +="				<option value=''>Select your answer...</option>";
								str +="				<option value='1'>" + questions[i].op1 + "</option>";
								str +="				<option value='2'>" + questions[i].op2 + "</option>";
								if (questions[i].op3) {
									str +="				<option value='3'>" + questions[i].op3 + "</option>";
								}
								if (questions[i].op4) {
									str +="				<option value='4'>" + questions[i].op4 + "</option>";
								}
								str +="			</select>";
								str +="		</div>";
							}
							str += "</div>";
							$(".modulebg").html(str + "<div class='questNext'></div>");
							//CUFON
							cufonreplace();
						} else if (questcurrpage == 3) {
							//BACKGROUND
							$(".modulebg").css({"background-image":"url('images/modules/module_2_8.jpg')"})
										  .html("<div class='mod2_contest'><textarea id='mod2textarea'>Enter your answer here...</textarea></div><div class='questNext'></div>");
						} else if (questcurrpage == 4) {
							var answers = $("#mod2textarea").val();
							//BACKGROUND
							$(".modulebg").css({"background-image":"url('images/modules/module_2_9.jpg')"})
								.html('<div class="modTerms mod2TermsEnd"></div><div class="modNext"></div>');
							$('.modNext').one('click', function() {
								$('#questionaire').val('FALSE');
								moduleApp('module_2');
								return false;
							 });
							//UPDATE DATABASE
							var user = $("#user").val();
							$.ajax({ url:'module_2.php', data:'c=2&u='+escape(user)+'&a='+escape(answers), type:'POST', cache:false,
								error:function(XMLHttpRequest,textStatus, errorThrown) {alert("Status:<br/>" + textStatus + "<br/><br/>Error:<br/>" + errorThrown + "<br/><br/>Response:<br/>" + XMLHttpRequest.responseText);},
								success:function(data) {
									questionaire = "FALSE";
								}
							});
							
							//CHANGE MODULE 1 STATUS TO COMPLETED
							$("#module_module_2 .moduleBody .modulePadding2 .moduleText .moduleStatus").html("COMPLETED").css({color:"#01A315"});
							//UNLOCK MODULE 2 IF IT EXISTS
							
						}
						return false;
					}
					
				}
				
				return false;
				// end module_2
								
				/*$("body").css({"background-Image":"url(images/layout/bg4.jpg)"});
				$(".column_modules").html('<img src="images/modules/module_banner_1.jpg" alt="My Modules" title="My Modules">');
				//BANNER ANIMATION
				var imgArray = [
								
				{src:"images/modules/module_banner_1.jpg", name:"My Modules"},				
				{src:"images/modules/module_banner_2.jpg", name:"My Modules"}				
								
								];
				animation_home(".column_modules",imgArray);
				//$(".modulebg").css({"background-image":"url('images/modules/module_banner_1.jpg')"});
				return false;*/
			}
			
			if (url == "module_R") {
				//BASIC SETTINGS
				var nrpages = parseFloat($("#NrPages").val());
				var questionaire = $("#questionaire").val();
				var currentPage = 1;
				//QUESTIONAIRE SETTINGS
				var	questNrpages = 2;
				var	questcurrpage = 1;
				var questions = [ ];

				//DEFAULT PAGE - 1
				$('.modulebg').css({ 'background-image':'url(images/modules/module_R_1.jpg)' })
							  .append('<div class="modStart"></div>');
				//BACKGROUND COLOR - DEFAULT
				$('body').css({ 'background-image':'url(images/layout/bg6.jpg)' });
								
				//START MODULE BUTTON
				$('.modStart').live('click', function(){
					currentPage++;
					pagecontrolR('add');
				});
				
				$('.modPrev').live('click', function(){
					currentPage--;
					pagecontrolR('reduce');
				});

				$('.modNext').live('click', function(){
					currentPage++;
					pagecontrolR('add');				  
				});

				function pagecontrolR(action) {
					if (action == 'add') {
						if (currentPage <= nrpages) {
							$('.modulebg').css({ 'background-image':'url(images/modules/module_R_' + currentPage + '.jpg)' })
										  .html('<div class="modPrev"></div><div class="modNext"></div>');
							/*if (currentPage == nrpages && questionaire != "TRUE") {
								$('.modNext').hide();
							} else {
								$('.modNext').show();
							}*/
						} else if (questionaire == 'TRUE') {
						} else {
							$(".modulebg").css({"background-image":"url('images/modules/module_R_1.jpg')","cursor":"pointer"})
								.html("").one('click', function() { moduleApp('module_R'); });
						}
					} else if (action == 'reduce') {
						if (currentPage == 1) {
							$('.modulebg').css({ 'background-image':'url(images/modules/module_R_1.jpg)' })
										  .html('<div class="modStart"></div><div class="modTerms"></div>');
						} else {
							$('.modulebg').css({ 'background-image':'url(images/modules/module_R_' + currentPage + '.jpg)' })
										  .html('<div class="modPrev"></div><div class="modNext"></div>');
						}
					}
					//CHECK COLOR OF BG 
					/*if (currentPage == 1) { $('body').css({ 'background-image':'url(images/layout/bg2.jpg)' }); }
					if (currentPage == 2 || currentPage == 3 || currentPage == 4) { $("body").css({"background-Image":"url(images/layout/bg3.jpg)"}); }
					if (currentPage == 5 || currentPage == 6 || currentPage == 7 || currentPage == 8) {$("body").css({"background-Image":"url(images/layout/bg1.jpg)"});}
					if (currentPage == 9 || currentPage == 10 || currentPage == 11 || currentPage == 12) {$("body").css({"background-Image":"url(images/layout/bg2.jpg)"});}*/
					$('body').css({ 'background-image':'url(images/layout/bg6.jpg)'});
					return false;
				}
								
			}
			
			//MODULE 1 - PAGE
			if (url == "module1_txt") {
				//REPLACING BACKGROUND URL TILE X
				$("body").css({"background-Image":"url(images/layout/bg_purple_tileX.jpg)"});
				//CUFON
				cufonreplace();
				//ANIMATING CURRENT POSITION
				var index = $(".modNavBar ul li[class=current]").index();
				var newindex = index;
				currentAnimate(index,newindex);
				//HIDE ALL TABS AND SHOW THE CORRECT ONE
				$(".modulesBG").css("display","none");
				$("#module1_" + index).css("display","block");
				//PREV AND NEXT BUTTON
				$(".mgoto").click(function(){
					var clicked = $(this).attr("rel");
					if (clicked == "next") {
						if (index < $(".modNavBar ul li").length -1) {
							newindex++;
							currentAnimate(index, newindex);
							index = newindex;
							//HIDE ALL TABS AND SHOW THE CORRECT ONE
							$(".modulesBG").css("display","none");
							$("#module1_" + index).css("display","block");
						}
					} else {
						if (index > 0) {
							newindex--;
							currentAnimate(index, newindex);
							index = newindex;
							//HIDE ALL TABS AND SHOW THE CORRECT ONE
							$(".modulesBG").css("display","none");
							$("#module1_" + index).css("display","block");
						}
					}
				});
				//GETTING PREVIOUS ANSWERS FROM DB
				$.ajax({ 
					url:'modulesList.php',
					data:'a=1&e='+escape($("#user").val()),
					type:'GET',
					cache:false,
					success:function(data){updateform(data);},
					error:function(XMLHttpRequest,textStatus, errorThrown) {$("#errorConsole").html("Status:<br/>" + textStatus + "<br/><br/>Error:<br/>" + errorThrown + "<br/><br/>Response:<br/>" + XMLHttpRequest.responseText);}
				});
				
				//QUIZ FORM
				submitFormFunction("module1", valModule, succModule);
				
			}
			//ANIMATE INDEX
			function currentAnimate(index, newindex) {
				if (index == 0 && newindex == 0) {
					$(".modHighlight ul li").eq(index).stop().animate({"margin-left":"0px"},500,function(){});
				} else {
					$(".modHighlight ul li").eq(index).stop().animate({"margin-left":"-239px"},500,function(){});
					$(".modHighlight ul li").eq(newindex).stop().animate({"margin-left":"0px"},500,function(){});
				}
			}
			//UPDATE FORM
			function updateform(data) {
				var answersArray = data.split("|");
				var qNr = "";
				var aNr = "";
				for (var i=0; i<answersArray.length; i++) {
					qNr = answersArray[i].substring(0, answersArray[i].length - 1);
					aNr = answersArray[i].substring(answersArray[i].length - 1, answersArray[i].length);
					$("input[name='mod1_q" + qNr + "'][value='" + aNr + "']").attr("checked","true");
				}
			}
			//LAST ONE - IFIXPNG
			if(typeof(isIE6) != 'undefined') {
				loadedCallbackFunction();
			}
		}
	}
}
//VALIDATION MODULE SUBMIT
function valModule(formData, jqForm, options) {
	var returnVar = true;
	var count = 0;
	var unchecked = 0;
	//RESET ERROR
	$(".errorLog").css('display', 'none');
	$("#"+ options.formID + " input:radio").each(function() {
		count++;
		if (count % 3 == 0) {
			if($(this).attr("checked") == "undefined" || $(this).attr("checked") == false) {
				unchecked++;
			}
			count=0;
			if (unchecked > 2) {
				$(".errorLog").css('display', 'block').html("Please answer all questions before continue.");
				returnVar = false;
			} else {
				unchecked = 0;
				$(".errorLog").css('display', 'none').html("&nbsp;");
			}
		} else {
			if($(this).attr("checked") == "undefined" || $(this).attr("checked") == false) {
				unchecked++;
			}
		}

	});
	if(returnVar == false) {
		return false;
	}

}
//SUCCESS MODULE SUBMIT
function succModule(data) {
	//IF RESPONSE IS OK, DISPLAY NONE CURRENT FORM AND DISPLAY BLOCK NEXT ONE.
	//CHANGE CIRCLE IMAGE TO FULL FOR COMPLETED PAGE
	//IF ITS THE LAST ONE, REPLACE WHOLE CONTAINER WITH COMPLETION IMAGE.
	var user = $("#user").val();
	var dataParts = data.split("|");
	var module = dataParts[0];
	var totalmoduleNr = dataParts[1];
	var moduleNr = dataParts[2];

	var module2hide = parseInt(module);
	var module2show = module2hide + 1;
	
	if (module == totalmoduleNr) {
		//COMPLETION
		$(".column_modules").html("<img src='images/layout/bg_module" + moduleNr + "_completed.jpg' alt='Completed' title='Completed'/>");
		//CHANGING STATUS TO COMPLETED MODULE
		$("#module_module" + moduleNr + "_txt .moduleBody .modulePadding2 .moduleText .moduleStatus").html("COMPLETED").css({color:"#01A315"});
		$("#module_module" + moduleNr + "_txt").attr("rel","locked").css({cursor:"default"});
		//UPDATING DB
		$.ajax({
			url:'modulesList.php',
			data:'c=' + moduleNr + '&u='+escape(user),
			type:'POST',
			cache:false,
			success:function(data){},
			error:function(XMLHttpRequest,textStatus, errorThrown) {$("#errorConsole").html("Status:<br/>" + textStatus + "<br/><br/>Error:<br/>" + errorThrown + "<br/><br/>Response:<br/>" + XMLHttpRequest.responseText);}
		});
			
		//UNLOCKING NEXT MODULE IF AVAILABLE
		var nextModule = parseInt(moduleNr) + 1;
		$("#module_module" + nextModule + "_txt").attr("rel","unlocked");
		
		//CHANGING OPACITY TO LOCKED MODULES
		$(".moduleItem[rel!=locked] .moduleImg").css({opacity:"1"});
		$(".moduleItem[rel=locked] .moduleImg").css({opacity:"0.50"});
		$(".moduleItem[rel=locked] .moduleBody .modulePadding2 .moduleText .moduleID").css({color:"#B3B3B3"});
		$(".moduleItem[rel=locked] .moduleBody .modulePadding2 .moduleText .moduleName").css({color:"#B3B3B3"});
		//CURSOR POINTER FOR UNLOCKED ONES
		$(".moduleItem[rel!=locked]").css({cursor:"pointer"});
		
		//UNBINDING
		$(".moduleItem").unbind('mouseenter mouseleave').unbind("click");
		//HOVER EVENT FOR NON LOCKED
		$(".moduleItem[rel!=locked]").hover(function() {
			$(this).css({"background-color":"#333333"});									 
		}, function(){
			$(this).css({"background-color":"#1A1A1A"});									 
		});
		//CLICK EVENT FOR NON LOCKED
		$(".moduleItem[rel!=locked]").click(function() {
			var clicked = $(this).attr("id").substring(7);
			$(".column_modules").load(clicked + ".php", function() {
				moduleApp(clicked);
			});
		});
		
	} else {
		//CHANGE IMAGE TO THE CIRCLES
		$(".modCircles li").eq(module2hide-1).attr("class", "tt_completed");
		//HIDE ALL TABS AND SHOW THE CORRECT ONE
		$(".modulesBG").css("display", "none");
		$(".modulesBG[rel='quizPage_" + module2show + "']").css("display", "block");
		//QUIZ FORM
		submitFormFunction("module" + module2show, valModule, succModule);
	}
}

//VALIDATION - FEEDBACK FORM
function valFeedback(formData, jqForm, options) {
	nullFields = ["Annonymous","userID"];
	//RESET COUNTER TO 0
	i = 0;
	//REGEX DEFINITIONS
	var regEmail = new RegExp(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/);
	var regNumeric = new RegExp(/^[0-9 _]*$/);
	var regSpace = new RegExp(/^[\s]*$/);
	var regDate = new RegExp(/^\d{2}\/\d{2}\/\d{4}$/);
	var returnVar = true;
	//RESET ERROR
	$("#errorLog").css('display', 'none');
	//RUN VALIDATION FUNCTION
	$.each(formData, function() {
		if(this.value != "SEND") {
			fieldLabel = $("#" + this.name).parent().attr("rel");
			if (this.name == "userID") fieldLabel = "userID";
			if (this.value=="" && $.inArray(fieldLabel, nullFields) ==-1) {
				pageError(this.name, 'Please fill in the <b>' + fieldLabel + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} else if (this.name.toLowerCase().indexOf('email') > -1 && !regEmail.test(this.value)) {
				pageError(this.name, 'Please enter a valid <b>' + fieldLabel + '</b>.', jqForm);
				returnVar = false;
				return false;
			} else if ((this.name.toLowerCase().indexOf('phone') > -1 || this.name.toLowerCase().indexOf('mobile') > -1) && !regNumeric.test(this.value)) {
				pageError(this.name, 'Please remove any non numeric characters from the <b>' + fieldLabel + '</b> field.', jqForm);
				returnVar = false;
				return false;
			} 
			//INCREASE COUNTER
			i++;
		}
	});
	if (returnVar == false) {
		return false;
	}
}
//FORM SUCCESS - FEEDBACK 
function successFormFeedbackFunction(data) {
	if (data.indexOf("Thank")!=-1) {
		$("#formContainer").html(data);
	} else {
		$("#errorLog").html(data); 
		$("#errorLog").css('display', 'block');
	}
}

//VALIDATION - CONTACT FORM


//ANIMATION - HOME BANNER
function animation_home(elementString, productsArray) {
	var animateCounter = 1;
	//ANIMATE
	function animate(elementString) {
		$(elementString + ' img:first').css('zIndex', '2').after('<img src="' + productsArray[animateCounter].src + '" alt="' + productsArray[animateCounter].name + '" title="' + productsArray[animateCounter].name + '" />');
		$(elementString + ' img:first').animate({opacity:0}, 2000, function() {
			$(this).remove();
			if(animateCounter < (productsArray.length - 1)) {
				animateCounter++;
			} else {
				animateCounter = 0;
			}
			setTimeout(function(){animate(elementString)}, 4000);
		});
	}
	setTimeout(function(){animate(elementString)}, 2000);
}

