﻿jQ = jQuery;
var formsServer = "Enquiry.aspx"; 

function sendFormAJAX(url, data, callBackSuccess, callBackFail) {
    jQ.ajax({
        type: "POST", url: url, data: data, dataType: "html",
        success: function(result) { callBackSuccess(result); },
        error: function(result) { callBackFail(result); }
    });
}

function validateForm(vals) {
    if (!vals || vals.length < 1) return false;

    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    var retVal = '';
    
    for (var j = 0; j < vals.length; j++) {
        if (vals[j].Options == null) continue;

        if (vals[j].Options.Required === true && vals[j].Value.length == 0)
            retVal += "<li>" + vals[j].Field + " is required</li>";
        else if (vals[j].Options.Email === true && vals[j].Value != null && !filter.test(vals[j].Value))
            retVal += "<li>Invalid email address</li>";
    }

    if (retVal.length == 0) return true;
    return "<ul>" + retVal + "</ul>";
}

function processForm(vals, fnSuccess, fnFail, postBackUrl) {

    var validationResult = validateForm(vals);
    if (validationResult !== true) {
        fnFail(validationResult);
        return;
    }

    var data = '';
    for (var j = 0; j < vals.length; j++) data += (data.length > 0 ? '&' : '') + vals[j].Field + '=' + vals[j].Value;

    sendFormAJAX(postBackUrl, data, fnSuccess, fnFail);
}

function contactUs() {
    var vals = new Array();
    vals[0] = { Field: 'Company', Value: jQ('#txtCompany').val(), Options: { Required: true} };
    vals[1] = { Field: 'FirstName', Value: jQ('#txtFirstName').val(), Options: { Required: true} };
    vals[2] = { Field: 'LastName', Value: jQ('#txtLastName').val(), Options: { Required: true} };
    vals[3] = { Field: 'Email', Value: jQ('#txtEmail').val(), Options: { Required: true, Email: true} };
    vals[4] = { Field: 'Phone', Value: jQ('#txtPhone').val(), Options: {} };
    vals[5] = { Field: 'Referrer', Value: jQ('#cboReferrer').val(), Options: {} };
    vals[6] = { Field: 'Enquiry', Value: jQ('#txtEnquiry').val(), Options: {} };
    vals[7] = { Field: 'Code', Value: jQ('#txtCode').val(), Options: {} };
    vals[8] = { Field: 'WebSource', Value: 'RiskShield.net', Options: {} };
    vals[9] = { Field: 'Purpose', Value: 'General Enquiry', Options: {} };
    vals[10] = { Field: 'FromUrl', Value: window.location.href, Options: {} };

    processForm(vals, contactUsSuccess, contactUsFail, formsServer);    
}
function contactUsSuccess(message) {
    if (message != "General Enquiry Sent") { contactUsFail(message); return; }
    jQ('#divContactUsFormError').hide();
    jQ('#divContactUsForm').html("Thank you for your enquiry, we will get back to you shortly.");
}
function contactUsFail(message) { jQ('#divContactUsFormError').show().html("There were problems sending your enquiry:<br/>" + message); }


function pixeonSubscription() {
    var vals = new Array();
    vals[0] = { Field: 'Company', Value: jQ('#txtCompany').val(), Options: { Required: true} };
    vals[1] = { Field: 'FirstName', Value: jQ('#txtFirstName').val(), Options: { Required: true} };
    vals[2] = { Field: 'LastName', Value: jQ('#txtLastName').val(), Options: { Required: true} };
    vals[3] = { Field: 'Email', Value: jQ('#txtEmail').val(), Options: { Required: true, Email: true} };
    vals[4] = { Field: 'Code', Value: jQ('#txtCode').val(), Options: {} };
    vals[5] = { Field: 'WebSource', Value: 'Pixeon.com.au', Options: {} };
    vals[6] = { Field: 'Purpose', Value: 'Pixeon Subscription', Options: {} };
    vals[7] = { Field: 'FromUrl', Value: window.location.href, Options: {} };

    processForm(vals, pixeonSubSuccess, pixeonSubFail, formsServer);
}
function pixeonSubSuccess(message) {
    if (message != "Pixeon Subscription Sent") { pixeonSubFail(message); return; }
    jQ('#divPixeonSubscriptionError').hide();
    jQ('#divPixeonSubscription').html("Pixeon Newsletter Subscription has been successful, thank you for signing up to Pixeon."); 
}
function pixeonSubFail(message) { jQ('#divPixeonSubscriptionError').show().html("There were problems submitting your subscription:<br/>" + message); }