/*
Page Author				: Stefan Kruger
Page Created Date		: 09-Dec-2008
Page Modification Log	:
Person:							Date:		Description:
------------------------------------------------------------------------------------------------------
Stefan Kruger					09-Dec-2008	Created file

To Do:
------
*/
//////////////////////////////////////////////////////////////////////////////////////////////
//LOGIN FUNCTIONS
//////////////////////////////////////////////////////////////////////////////////////////////

//alert('login 2');

var processLogin = function(obj){
	try{
		EAFramework.currentUserID = obj.userid;
		EAFramework.userHomePageID = obj.userhomepageid;
		EAFramework.username = obj.username;
		setupLayout();
		loadHome();
	}
	catch (ex) {
		alert("Error: An error occured processing login information.\nSource: [processLogin]\nDetails:" + ex.message);
	}
	obj = null;
}

function checkLogin(formname, ComponentID, FormName){
	try {
	
	    var gotoafterwards = document.getElementById("gotoafterwards").value;
	    
		if (document.getElementById("signin").txtUsername.value != ""){
			if (document.getElementById("signin").txtPassword.value != ""){
				
                var AfterLoginCheck = function(responseText,loadIn,postLoad,extendedData)
                {
                    var result = responseText;
                    
                    if (isInteger(result)){
                        reloadhomepage();
                    }
                    else{
                        alert (result);
                        return;
                    }
                }

                //var data = "action=login&txtUsername=" + encodeURI(document.getElementById("txtUsername").value) + "&txtPassword=" + encodeURI(document.getElementById("txtPassword").value) + "&gotoafterwards=";  //extractFormData(formname);
                var data = extractFormData(formname);
                var page = "/modules/Login/login.aspx";
                ajaxRequest(page,data,null,null,AfterLoginCheck,null,null);
			}
			else {
				alert("Please enter a valid password");
			}
		}
		else {
			alert("Please enter a valid email address");
		}
	}
	catch (ex){
		alert("Error: Error occurred while loggin in.\nSource: [checkLogin]\nDetails:" + ex.message);
	}
}

//////////////////////////////////////////////////////////////////////////////////////////////
//LOGOFF FUNCTIONS
//////////////////////////////////////////////////////////////////////////////////////////////
var processLogoff = function(oXML){
	try {
		EAFramework.currentUserID = "";
		EAFramework.userHomePageID = "";
		EAFramework.username = "";
		contentHider();
		setupLayout();
		loadHome();
	}
	catch (ex) {
		alert("Error: An error occured processing logoff information.\nSource: [processLogoff]\nDetails:" + ex.message);
	}
	oXML = null;
}

function logoff(){
/*
		EAFramework.currentUserID = "";
		EAFramework.userHomePageID = "";
		EAFramework.username = "";
		
		delete_cookie("userid");
		delete_cookie("userhomepageid");
		delete_cookie("username");
		
	//var data = fetchInputFormData("frmLogoff");
	//hiddenSubmit(document.getElementById("frmLogoff").action,data,completedJSONLoad,1,null,null,true,processLogoff);
    //alert (document.getElementById("frmLogoff").action.value);
        document.getElementById("frmLogoff").submit();
    //return false;
    */
    
        var AfterLogoff = function(responseText,loadIn,postLoad,extendedData)
        {
            //alert (responseText);
            reloadhomepage();
        }

        var data = ""
        var page = "/modules/Login/logoff.aspx";
        ajaxRequest(page,data,null,null,AfterLogoff,null,null);
}

//////////////////////////////////////////////////////////////////////////////////////////////
//PASSWORD RECOVERY - WORK IN PROGRESS
//////////////////////////////////////////////////////////////////////////////////////////////
/*
function goToResetPassword(mailad,site) {
	var page = "include/resetpassword.asp";
	var data = "action=forgotpassword&email=" + mailad + "&site=" + site;
	genericSubmit(page,data,null,null,defaultoutputdiv,completedSingleLoad,regularloadingstring);
}

function checkReminderQuestion(){
	if (document.getElementById("frmForgotPassword").txtAnswer.value != ""){
		var page = "include/resetpassword.asp";
		var data = fetchInputFormData("frmForgotPassword");
		genericSubmit(page,data,null,null,defaultoutputdiv,completedSingleLoad,regularloadingstring);
	}
	else {
		alert("Please enter an answer before proceding.");
	}
}

function changePassword(){
	var form = document.frmForgotPassword;
	if (form) {
		if (form.txtNewPass.value.length >= 6){
			if (form.txtNewPass.value == form.txtConfirmPass.value){
				var updatePass = function (oXML) {
					var result = oXML.responseText.split(splitterregex);
					alert(result[1]);
					if (parseInt(result[0]) == 1) {
						getHomePage();
					}
					else {
						form.txtNewPass.value = "";
						form.txtConfirmPass.value = "";
					}
				}
				var page = "include/resetpassword.asp";
				var data = "action=updatepassword&userid=" + form.userid.value + "&password=" + form.txtNewPass.value 
				hiddenSubmit(page,data,updatePass,0,null,null,true);
			}
			else {
				alert("The new password and confirm password values differ. Please verify that you've typed both correctly and try again.");
			}
		}
		else {
			alert("The new password needs to be at least six (6) characters in length. Please select a different password.");
		}
	}
}
*/

function reg_RegisterUser(FormName, ComponentID){

//alert (document.getElementById("selProvince").options[document.getElementById("selProvince").selectedIndex].value);
//return;
var submit = false;
var action = document.getElementById("txtAction").value;

if ($.trim(document.getElementById("txtFirstname").value) != "") {
    if ($.trim(document.getElementById("txtLastname").value) != "") {
        if (isValidEmail(document.getElementById("txtEmail").value)) {
            if ($.trim(document.getElementById("txtContactNo").value) != "") {
                if ($.trim(document.getElementById("selMarketing").value) != "0") {
                    if ($.trim(document.getElementById("txtDelivery1").value) != "") {
                        if ($.trim(document.getElementById("txtSuburb").value) != "") {
                            if (isInteger(document.getElementById("txtPostalCode").value)) {
                                if ($.trim(document.getElementById("txtUserLName").value) != "") {
                                    if ($.trim(document.getElementById("txtPw").value) != "") {
                                        if (document.getElementById("txtPw").value.length >= 6) {
                                            submit = true;
                                        }
                                        else {
                                            alert("Please make sure your password is @least 6 characters long");
                                            document.getElementById("txtPw").focus();
                                            return;
                                        }
                                    }
                                    else {
                                        alert("Please enter a valid password (@least 6 characters long)");
                                        document.getElementById("txtPw").focus();
                                        return;
                                    }
                                }
                                else {
                                    alert("Please enter a valid user name");
                                    document.getElementById("txtUserLName").focus();
                                    return;
                                }
                            }
                            else {
                                alert("Please enter a valid postal code");
                                document.getElementById("txtPostalCode").focus();
                                return;
                            }
                        }
                        else {
                            alert("Please enter a valid suburb");
                            document.getElementById("txtSuburb").focus();
                            return;
                        }
                    }
                    else {
                        alert("Please enter a valid delivery address");
                        document.getElementById("txtDelivery1").focus();
                        return;
                    }
                }
                else {
                    alert("Please specify where you heard about us");
                    document.getElementById("selMarketing").focus();
                    return;
                }
            }
            else {
                alert("Please enter a valid cellphone number");
                document.getElementById("txtContactNo").focus();
                return;
            }
        }
        else {
            alert("Please enter a valid email address");
            document.getElementById("txtEmail").focus();
            return;
        }
    }
    else {
        alert("Please enter a valid last name");
        document.getElementById("txtLastname").focus();
        return;
    }
}
else {
    alert("Please enter a valid first name");
    document.getElementById("txtFirstname").focus();
    return;
}
    
    if (submit)
    {
        var AfterCheck = function(responseText,loadIn,postLoad,extendedData)
        {
        // use action here:
        
            var result = responseText;
            if (result.substr(0,5).toLowerCase() == "error")
                {
                    var arr = result.split("|");
                    alert(arr[1]);
                    return;
                }
            else
                {
                    alert ("You have been successfully registered");
                    var data = "";
                    
                    if (action == 'backtocart'){
                        getAction("View Cart",ComponentID,data);
                        setElementText(document.getElementById("s_login"), "Logoff");
                        var a_login = document.getElementById("a_login");
                        a_login.setAttribute("onclick","logoff()"); 
                        a_login.setAttribute("class", "top_link");
                        a_login.setAttribute("className", "top_link");
                    }
                    else{
                        reloadhomepage();
                    }
                }
        }

        var data = extractFormData(FormName);        
        var page = "/modules/Login/RegisterCheck.aspx";
        ajaxRequest(page,data,null,null,AfterCheck,null,null);
    }
}

function gotoRegistrationForm(ComponentID, afteraction){
    
    var data = "action=" + afteraction;
    try{
        $(".signin").removeClass("menu-open");
        $("fieldset#signin_menu").hide();
        getAction("Register",ComponentID,data);
    }
    catch(ex){
        //alert (ex.message);
        // do nothing at this stage
    }			
    
}

function gotoForgotPassword(ComponentID, afteraction){
    var data = "action=" + afteraction;
    //alert (ComponentID);
    try{
        $(".signin").removeClass("menu-open");
        $("fieldset#signin_menu").hide();
        getAction("Forgot Password",ComponentID,data);
    }
    catch(ex){
        //alert (ex.message);
        // do nothing at this stage
    }			
    
}

function resetPassword(ComponentID){
try{
        var AfterReset = function(responseText,loadIn,postLoad,extendedData)
        {
            alert (responseText);
            return;
        }

        var email = encodeURI(document.getElementById("frmForgotPassword").txtEmail.value);
//        alert (email);
//    return;
    
        var data = "action=reset&txtEmail=" + encodeURI(email);
        
        //alert (data);
        var page = "/modules/Login/RegisterCheck.aspx";
        ajaxRequest(page,data,null,null,AfterReset,null,null);
    }
    catch(ex){
        alert (ex.message);
    }
}


function setCookie(c_name,value,expiredays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function delete_cookie ( cookie_name )
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}
