//-- item value Boolen collection 
var itemsBools = {
isFirstNameValid : false,
isSurnameValid : false,
isEmailValid : false,
isCondfirmEmailValid : false,
isPasswordValid : false,
isConfirmPasswordValid : false,
isDateOfBirthValid : false,
isOver18Valid : false,
isAddressLine1Valid : false,
isCityValid : false,
isPostCodeValid : false,
isCountryValid : false,
isPlaceOfBrithValid : false,
isHomePhoneValid : false,
isCurrencyValid : false,
isSecurityCodeValid : false,
isPrivacyPolicySelected : false,
isTAndCSelected : false,
isCodiceFiscale : false
};




$(document).ready(function() {
    //--
    var requiredItems = "#" + txtFirstName +
    ",#" + txtSurname +
    ",#" + txtEmail +
    ",#" + txtConfirmEmail +
    ",#" + txtPassword +
    ",#" + txtConfirmPassword +
    ",#" + txtDateOfBirth +
    ",#" + txtAddressLine1 +
    ",#" + txtCity +
    ",#" + txtPostCode +
    ",#" + listCountry +
    ",#" + txtPlaceOfBrith +
    ",#" + txtHomePhone +
    ",#" + listCurrency +
    ",#" + txtCodiceFiscale +
    ",#" + txtCap +
    ",#" + MyOver18 +
    ",#" + MyPrivacy +
    ",#" + MyTAndC;
    //--
    AttachInputTips();
    //attatch event handler
    $('#' + Register).click(function(event) {
        return ValidateFormValues();
    });
    //$("#" + txtFirstName).focus();
    if (revalidate === true) {
        //$(requiredItems).focus();
        $(requiredItems).trigger('blur');
        $("#" + txtPassword).focus();        
    }
    else {
        $("#" + txtFirstName).focus();
    }

});

function AttachInputTips() {

    //validate first name
    $("#" + txtFirstName).inputTip({
       	goodText: "",
       	badText: "",
    	tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                callback(1);
                itemsBools.isFirstNameValid = true;
            }
            else {
                callback(3); 
                itemsBools.isFirstNameValid = false;
            }
        },
        // True if the validation should be performed on every key/up event (false by default)
        validateInRealTime: true
    });

    //validate surname
    $("#" + txtSurname).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                callback(1);
                itemsBools.isSurnameValid = true;
            }
            else {
                callback(3);
                itemsBools.isSurnameValid = false;
            }
        }
    });

    //validate email
    $("#" + txtEmail).inputTip({
        goodText: "",
        badText: "",
        badText1: $("#JS_EmailError1").val(),
        badText2: $("#JS_EmailError2").val(),
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                //checking if email is valid
                var regex = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
                if (regex.test(inputValue)) {

                    //checking if email already registered
                    $.get('../HttpHandlers/Registration.ashx', { email: inputValue }, function(data) {
                        if (data === "false") {
                            callback(5);
                            itemsBools.isEmailValid = false;
                        }
                        else {
                            callback(1);
                            itemsBools.isEmailValid = true;
                        }
                    });
                }
                else {
                    callback(4);
                    itemsBools.isEmailValid = false;
                }
            }
            else {
                callback(3);
                itemsBools.isEmailValid = false;
            }
        },
		validateInRealTime: true
    });


    //validate confirm email
    $("#" + txtConfirmEmail).inputTip({
        goodText: "",
        badText: "",
        badText1: $("#JS_EmailError1").val(),
        badText2: $("#JS_EmailError3").val(),
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                //checking if email is valid
                var regex = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
                if (regex.test(inputValue)) {
                    callback(1);
                    itemsBools.isCondfirmEmailValid = true;

                    //comparing if email values
                    var email = $("#" + txtEmail).val();
                    if (inputValue != email) {
                        callback(5);
                        itemsBools.isCondfirmEmailValid = false;
                    }
                    else {
                        callback(1);
                        itemsBools.isCondfirmEmailValid = true;
                    }

                }
                else {
                    callback(4);
                    itemsBools.isCondfirmEmailValid = false;
                }
            }
            else {
                callback(3);
                itemsBools.isCondfirmEmailValid = false;
            }
        },
		 validateInRealTime: true
    });


    //validate password
    $("#" + txtPassword).inputTip({
        goodText: "",
        badText: "",
        badText1: $("#JS_PasswordError1").val(),
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                //checking if email is valid
                var regex = /^\b[a-zA-Z0-9]{6,10}\b$/
                if (regex.test(inputValue)) {
                    callback(1);
                    itemsBools.isPasswordValid = true;

                }
                else {
                    callback(4);
                    itemsBools.isPasswordValid = false;
                }
            }
            else {
                callback(3);
                itemsBools.isPasswordValid = false;
            }
        },
		 validateInRealTime: true
    });

    //validate confirm password
    $("#" + txtConfirmPassword).inputTip({
        goodText: "",
        badText: "",
        badText1: $("#JS_PasswordError1").val(),
        badText2: $("#JS_PasswordError2").val(),
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                //checking if email is valid
                var regex = /^\b[a-zA-Z0-9]{6,10}\b$/
                if (regex.test(inputValue)) {
                    callback(1);
                    itemsBools.isConfirmPasswordValid = true;

                    //comparing if email values
                    var password = $("#" + txtPassword).val();
                    if (inputValue != password) {
                        callback(5);
                        itemsBools.isCondfirmEmailValid = false;
                    }
                    else {
                        callback(1);
                        itemsBools.isCondfirmEmailValid = true;
                    }

                }
                else {
                    callback(4);
                    itemsBools.isConfirmPasswordValid = false;
                }
            }
            else {
                callback(3);
                itemsBools.isConfirmPasswordValid = false;
            }
        },
		validateInRealTime: true
    });

    //validate date of birth
    $("#" + txtDateOfBirth).inputTip({
        goodText: "",
        badText: "",
        badText1: $("#JS_DOBError1").val(),
        badText2: $("#JS_Over18Error1").val(),
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                //checking if dob is valid
                var regex = new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4}$");
                if (regex.test(inputValue)) {

                    //check if date is valid
                    $.get('../HttpHandlers/Registration.ashx', { dob: inputValue }, function(data) {
                        if (data === "false") {
                            callback(3);
                            itemsBools.isDateOfBirthValid = false;
                        }
                        else {

                            //check if client is 18 years
                            $.get('../HttpHandlers/Registration.ashx', { agedob: inputValue }, function(data) {
                                if (data === "false") {
                                    callback(5);
                                    itemsBools.isDateOfBirthValid = false;
                                }
                                else {
                                    callback(1);
                                    itemsBools.isDateOfBirthValid = true;
                                }
                            });
                        
                        }
                    });
                }
                else {
                    callback(4);
                    itemsBools.isDateOfBirthValid = false;
                }
            }
            else {
                callback(3);
                itemsBools.isDateOfBirthValid = false;
            }
        },
		 validateInRealTime: true
    });


    //validate bonuscode
    $("#" + txtBonusCode).inputTip({
        goodText: "",
        badText1: $("#JS_BonuscodeError1").val(),
        badText2: $("#JS_BonuscodeError2").val(),
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the bonus code is valid
            if (inputValue.length > 0) {

                //check if bonus code is valid
                $.get('../HttpHandlers/Registration.ashx', { bonuscode: inputValue }, function(data) {
                    if (data === "false") {
                        callback(4);
                        itemsBools.isBonusCodeValid = false;
                    }
                    else {
                        itemsBools.isBonusCodeValid = true;
                    }
                    
                    if (isBonusCodeValid === true)
                    {
                        //check if bonus code is expired
                        $.get('../HttpHandlers/Registration.ashx', { promotioncode: inputValue }, function(data) {
                            if (data === "false") {
                                callback(5);
                                itemsBools.isBonusCodeValid = false;
                            }
                            else {
                                callback(2);
                                itemsBools.isBonusCodeValid = true;
                            }
                        });
                    }
                });
            }
            else {
                callback(2);
                itemsBools.isBonusCodeValid = true;
            }
            
        },
		 validateInRealTime: true
    });
    
    //validate addressline1
    $("#" + txtAddressLine1).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                callback(1);
                itemsBools.isAddressLine1Valid = true;
            }
            else {
                callback(3);
                itemsBools.isAddressLine1Valid = false;
            }
        },
		 validateInRealTime: true
    });

    //validate town/city
    $("#" + txtCity).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                callback(1);
                itemsBools.isCityValid = true;
            }
            else {
                callback(3);
                itemsBools.isCityValid = false;
            }
        },
		 validateInRealTime: true
    });

    //validate postcode
    $("#" + txtPostCode).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                callback(1);
                itemsBools.isPostCodeValid = true;
            }
            else {
                callback(3);
                itemsBools.isPostCodeValid = false;
            }
        },
		 validateInRealTime: true
    });

    //validate country
    $("#" + listCountry).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback){
            // Checking if the input field contains text.
            if (inputValue >-1) {
                callback(1);
                itemsBools.isCountryValid = true;
            }
            else {
                callback(3);
                itemsBools.isCountryValid = false;
            }
        },
		 validateInRealTime: true
    });

    //validate placeofbirth
    $("#" + txtPlaceOfBrith).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                callback(1);
                itemsBools.isPlaceOfBrithValid = true;
            }
            else {
                callback(3);
                itemsBools.isPlaceOfBrithValid = false;
            }
        },
		 validateInRealTime: true
    });

    //validate homephone
    $("#" + txtHomePhone).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                callback(1);
                itemsBools.isHomePhoneValid = true;
            }
            else {
                callback(3);
                itemsBools.isHomePhoneValid = false;
            }
        },
		 validateInRealTime: true
    });

    //validate currency
    $("#" + listCurrency).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue > -1) {
                callback(1);
                itemsBools.isCurrencyValid = true;
            }
            else {
                callback(3);
                itemsBools.isCurrencyValid = false;
            }
        },
		 validateInRealTime: true
    });

    //validate Codice Fiscale
    $("#" + txtCodiceFiscale).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {
                callback(1);
                itemsBools.isCodiceFiscale = true;
            }
            else {
                callback(3);
                itemsBools.isCodiceFiscale = false;
            }
        },
		 validateInRealTime: true
    });

    //validate securitycode
    $("#" + txtCap).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue.length > 0) {

                callback(0);
                itemsBools.isSecurityCodeValid = true;
            }
            else {
                callback(0);
                itemsBools.isSecurityCodeValid = false;
            }
        },
		 validateInRealTime: true
    });
//-------------------------------------------------------------
//-------------------------------------------------------------
	$("#" + MyOver18+",#" + MyPrivacy+",#" + MyTAndC).click(
															
		function(){
			$(this).focus();
		
		///alert($(this).val());
		});
//-----------------------------------------------00000
    //validate over 18 selected

    $("#" + MyOver18).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
			// Checking if the input field contains text.
			//alert(inputValue);
		if (inputValue === true ) {
				
				callback(1);
				itemsBools.isOver18Valid = true;
				
            }
            else {
                callback(3);
                itemsBools.isOver18Valid = false;
			}
        },
		validateInRealTime: true
    });
//-------------------------------------------------------------

    //validate private policy selected
    $("#" + MyPrivacy).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue === true) {
                callback(1);
                itemsBools.isPrivacyPolicySelected = true;
            }
            else {
                callback(3);
                itemsBools.isPrivacyPolicySelected = false;
            }
        },
		 validateInRealTime: true
    });
//-------------------------------------------------------------
    //validate private policy selected
    $("#" + MyTAndC).inputTip({
        goodText: "",
        badText: "",
        tipText: "",
        validateText: function(inputValue, callback) {
            // Checking if the input field contains text.
            if (inputValue === true) {
                callback(1);
                itemsBools.isTAndCSelected = true;
            }
            else {
                callback(3);
                itemsBools.isTAndCSelected = false;
            }
        },
		 validateInRealTime: true
    });
//-------------------------------------------------------------

}
//----
function ValidateFormValues() {
	
if (itemsBools.isFirstNameValid === false) {
        $("#" + txtFirstName).focus();
        return false;
    }
    else if (itemsBools.isSurnameValid === false) {
        $("#" + txtSurname).focus();
        return false;
    }
    else if (itemsBools.isEmailValid === false) {
        $("#" + txtEmail).focus();
        return false;
    }
    else if (itemsBools.isCondfirmEmailValid === false) {
        $("#" + txtConfirmEmail).focus();
        return false;
    }
    else if (itemsBools.isPasswordValid === false) {
        $("#" + txtPassword).focus();
        return false;
    }
    else if (itemsBools.isConfirmPasswordValid === false) {
        $("#" + txtConfirmPassword).focus();
        return false;
    }
    else if (itemsBools.isDateOfBirthValid === false) {
        $("#" + txtDateOfBirth).focus();
        return false;
    }
    else if (itemsBools.isOver18Valid === false) {
		//-------------------------------------------------
        //$("#" + MyOver18).focus();
		$("#" + MyOver18).focus();
		
        return false;
		//-------------------------------------------------
    }
    else if (itemsBools.isAddressLine1Valid === false) {
        $("#" + txtAddressLine1).focus();
        return false;
    }
    else if (itemsBools.isCityValid === false) {
        $("#" + txtCity).focus();
        return false;
    }
    else if (itemsBools.isPostCodeValid === false) {
        $("#" + txtPostCode).focus();
        return false;
    }
    else if (itemsBools.isCountryValid === false) {
        $("#" + listCountry).focus();
        return false;
    }
    else if (itemsBools.isPlaceOfBrithValid === false) {
        $("#" + txtPlaceOfBrith).focus();
        return false;
    }
    else if (itemsBools.isHomePhoneValid === false) {
        $("#" + txtHomePhone).focus();
        return false;
    }
    else if (itemsBools.isCurrencyValid === false) {
        $("#" + listCurrency).focus();
        return false;
    } else if (itemsBools.isPrivacyPolicySelected === false) {
		//------------------------------------
        //$("#" + MyPrivacy).focus();
        $("#" + MyPrivacy).focus();
        return false;
		//------------------------------------
    }
    else if (itemsBools.isTAndCSelected === false) {
		//------------------------------------
        //$("#" + MyTAndC).focus();
        $("#" + MyTAndC).focus();
        return false;
		//------------------------------------
    }
    else if ($("#" + txtCodiceFiscale).Visible === true && isCodiceFiscale === false) {
        $("#" + txtCodiceFiscale).focus();
        return false;
    }
    else if (itemsBools.isSecurityCodeValid === false) {
        $("#" + txtCap).focus();
        return false;
    }
   return true;
}

//alert(inputValue);


//-------------------------------------------------------- ^

//--
function ClientValidateRules(source, arguments)
{
	arguments.IsValid = getElem("Rules").checked;
}
//--
function DisplayTerms(){  
	var iSelectedIndex=getElem("CountryDropDownList").selectedIndex;
	var selectedValue=getElem("CountryDropDownList").item(iSelectedIndex).value;	
	if (selectedValue > 0)
	{ window.open("../Registration/RegistrationTC.aspx",null,"height=820,width=660,toolbar=no,menubar=no,location=no,scrollbars=yes");
	} else {
		alert("You must select your country of residence to view your Terms and Conditions!");
		
	}
	
	return false;
}





function ClientValidateOver18(source, arguments)
{ arguments.IsValid = getElem("MyOver18").checked;
}
//--
function CheckValidate()
{  if (getElem("MyOver18").checked){
	  window.open("../../~ln~/asp/g_over18.asp",null,"height=220,width=560,toolbar=no,menubar=no,location=no");
	}
}
