//global variables

var testInfo = null;
var textName = null;
var textOrg = null;
var textAddress1 = null;
var textAddress2 = null;
var textTown = null;
var textPostcode = null;
var textEmail = null;
var dvdQuantity = null;
var checked = null;
var htmlbtnRequest = null;
var nameInfo = null;
var address1Info = null;
var townInfo = null;
var postcodeInfo = null;
var emailInfo = null;
var quantityInfo = null;
var confirmInfo = null;
var dvdhealthboard = null;
var dvdhealthboardinfo = null;

$(document).ready(function() {
    HideWizard();

    textName = $("input[id$=txtName]");
    textOrg = $("input[id$=txtOrganisation]");
    textAddress1 = $("input[id$=txtAddress1]");
    textAddress2 = $("input[id$=txtAddress2]");
    textTown = $("input[id$=txtTown]");
    textPostcode = $("input[id$=txtPostcode]");
    textEmail = $("input[id$=txtEmail]");
    dvdQuantity = $("select[id$=ddlQuantity]");
    //checked = $("input[id$=cbConfirmDvdRequest]").attr("checked");
    nameInfo = $("#nameInfo");
    address1Info = $("#address1Info");
    townInfo = $("#townInfo");
    postcodeInfo = $("#postcodeInfo");
    emailInfo = $("#emailInfo");
    quantityInfo = $("#quantityInfo");
    htmlbtnRequest = $("input[id$=htmlbtnRequest]");
    dvdhealthboard = $("select[id$=ddlHealthboard]");
    dvdhealthboardinfo = $("#healthboardinfo");	
		

});

$(function() {
    //on blur
    textName.blur(ValidateName);
    textAddress1.blur(ValidateAddress);
    textTown.blur(ValidateTown);
    textPostcode.blur(ValidatePostcode);
    textEmail.blur(ValidateEmail);
    dvdQuantity.blur(ValidateQuantity);
    dvdhealthboard.blur(ValidateSelectedHealthboard);	

    //on keypress
    textName.keyup(ValidateName);
    //textAddress1.keyup(ValidateAddress);
    //textTown.keyup(ValidateTown);

    //onclick
    htmlbtnRequest.click(ValidateDVDForm);

});

function ValidateName() {
    //if it's not valid
    var textVal = textName.val();
    if (textVal == null || textVal == "") {
        textName.addClass("error");
        nameInfo.text("*");
        nameInfo.addClass("error");
        return false;

    }
    //if it's valid
    else {
        textName.removeClass("error");
        nameInfo.text("");
        nameInfo.removeClass("error");
        return true;
    }
}
function ValidateSelectedHealthboard()
{
	//if it's not valid
	var selectedValue = dvdhealthboard.val();
	if(selectedValue == '')
	{
		dvdhealthboard.addClass("error");
		dvdhealthboardinfo.text("*");
		dvdhealthboardinfo.addClass("error");
		return false;
	}
	else	//if it's valid
	{
		dvdhealthboard.removeClass("error");
		dvdhealthboardinfo.text("");
		dvdhealthboardinfo.removeClass("error");
		return true;
	}
	
}
function ValidateAddress() {
    //if it's not valid
    var textVal = textAddress1.val();
    if (textVal == null || textVal == "") {
        textAddress1.addClass("error");
        address1Info.text("*");
        address1Info.addClass("error");
        return false;

    }
    //if it's valid
    else {
        textAddress1.removeClass("error");
        address1Info.text("");
        address1Info.removeClass("error");
        return true;
    }
}
function ValidateTown() {
    //if it's not valid
    var textVal = textTown.val();
    if (textVal == null || textVal == "") {
        textTown.addClass("error");
        townInfo.text("*");
        townInfo.addClass("error");
        return false;

    }
    //if it's valid
    else {
        textTown.removeClass("error");
        townInfo.text("");
        townInfo.removeClass("error");
        return true;
    }
}
function HideWizard() {
    $('#wizardform').addClass("hide");
    $('#dvdconfirmbox').addClass("hide");

}
function ShowForm() {
    $('#wizardform').show('slow');
    $('#dvdconfirmbox').show('slow');
    $('#dvddescription').hide('slow');
    $('#whatsondvd').hide('slow');
    $('#btnOrderDVD').hide('slow');

}
$(function() {
    $('#btnOrderDVD').click(ShowForm);
//    $('#htmlbtnRequest').click(function(e) {
//        ValidateDVDForm();
//    });
    $("input:checkbox").click(function() {
        if ($(this).is(':checked')) {
            checked = true;
        }
        else {
            checked = false;
        }
    });
    $('#lnkWhy').click(function(e) {

        e.preventDefault();


    });
    $('#lnkWhy').aqLayer({ closeBtn: true, attach: 'ne' }).click(function() {
        $(this).aqLayer('we ask this because....')
    });
});

function addBookmark(title, url) {
    if (window.sidebar) {
        window.sidebar.addPanel(title, url, "");
    } else if (document.all) {
        window.external.AddFavorite(url, title);
    } else if (window.opera && window.print) {
        return true;
    }
}

function ValidateQuantity() {
    var quantityVal = dvdQuantity.val();
    var isAnInt = true;
    if (Math.floor(quantityVal).toString() == quantityVal.toString()) {
        //it's an int
        isAnInt = true;
    }
    else {
        isAnInt = false;
    }
    if ((quantityVal == null || quantityVal == "") || isAnInt == false) {
        dvdQuantity.addClass("error");
        quantityInfo.text("*");
        quantityInfo.addClass("error");
        return false;

    }
 
    else {
        dvdQuantity.removeClass("error");
        quantityInfo.text("");
        quantityInfo.removeClass("error");
        return true;
    }
}

function ValidateConfirmChecked() {
    if (checked) {
        $("input[id$=cbConfirmDvdRequest]").removeClass("error");
        $("#confirmInfo").text("");
        $("#confirmInfo").removeClass("error");
        return true;

    }
    else {

        $("input[id$=cbConfirmDvdRequest]").addClass("error");
        $("#confirmInfo").text("please confirm");
        $("#confirmInfo").addClass("error");
        return false;
    }
}

function ValidateDVDForm() {

    if (ValidateConfirmChecked() & ValidateName() & ValidateAddress() & ValidateTown() & ValidatePostcode() & ValidateEmail() & ValidateQuantity() & ValidateSelectedHealthboard()) {

        var name = JSON.stringify(textName.val());
        var org = JSON.stringify(textOrg.val());
        var address1 = JSON.stringify(textAddress1.val());
        var address2 = JSON.stringify(textAddress2.val());
        var town = JSON.stringify(textTown.val());
        var postcode = JSON.stringify(textPostcode.val());
        var emailAddress = JSON.stringify(textEmail.val());
        var quantity = JSON.stringify(dvdQuantity.val());
	var healthboard = JSON.stringify(dvdhealthboard.val());

        $.ajax({
            type: "POST",
            url: "../Request.asmx/OrderDvDs",
            data: "{name: " + name + ", org: " + org + ", address1: " + address1 + ", address2: " + address2 + ", town: " + town + ", postcode: " + postcode + ", emailAddress: " + emailAddress + ", quantity: " + quantity + ", dvdhealthboard: " + healthboard + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(response) {
                $('#wizardform').hide("slow");
                $('#dvdconfirmbox').hide("slow");
                $('#successmessage').removeClass("successPanel");
                $('#successmessage').addClass("showsuccesspanel");
                $('#successmessage').show("slow");
                //$('#output').after('<span>' + response.d + '</span>');

            },
            failure: function(response) {
                $('#output').after("<span>There has been a problem with your request, please try again later</span>");
            }
        });
    }

}

function ValidateEmail() {

    var emailVal = textEmail.val();
    var hasEmail = true;
    //if it's not valid
    if (emailVal == null || emailVal == "") {
        hasEmail = false;
    }
    //if it's valid
    else {
        hasEmail = true;
    }
   
    
    var objRegExp =
 /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;

    //check for valid email
    if (objRegExp.test(emailVal)) {
        textEmail.removeClass("error");
        emailInfo.text("");
        emailInfo.removeClass("error");
        return true;
    }
    else {
        if (textEmail.val() != "" || hasEmail == false) {
            textEmail.addClass("error");
            emailInfo.text("*");
            emailInfo.addClass("error");
            return false;
        }
        else {
            textEmail.removeClass("error");
            emailInfo.text("");
            emailInfo.removeClass("error");
            return true;
        }
    }
}
function ValidatePostcode() {

    var objRegExp = /^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9][a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/;
    var postcodeVal = textPostcode.val();
    //check for valid postcode
    if (objRegExp.test(postcodeVal)) {
        textPostcode.removeClass("error");
        postcodeInfo.text("");
        postcodeInfo.removeClass("error");
        return true;

    }
    else {
        if (textPostcode.val() != "") {
            textPostcode.addClass("error");
            postcodeInfo.text("*");
            postcodeInfo.addClass("error");
            return false;
        }
        else {
            textPostcode.removeClass("error");
            postcodeInfo.text("");
            postcodeInfo.removeClass("error");
            return true;
        }
    }
}