/* Contact uses jQuery to Run. */

// Set the code that runs when the page is ready
$(document).ready(function () {
                      // Add events
                      BrowserDetect.init();
                      $('#next').click(sendFeedback);
                      $('#myrname').focus();
                  });

// This function validates the form data
function sendFeedback() {

    // Make sure we have the data we want
    var rName = $('#myrname').val();
    var uName = $('#myuname').val();
    var phone = $('#myphone').val();
    var email = $('#myemail').val();
    var contact = $('#mycontact').val();
    var comments = $('#mycomments').val();
    var browser = BrowserDetect.browser;
    var version = BrowserDetect.version;
    var os = BrowserDetect.OS;
    var session = $('#sessiondata').val();

    if (rName.length < 1) {
        showFaderMsg({msg: 'A Real Name is required. [GT_E0394]',
                      msgContainer: '#errMsg', msgIsErr: true, pauseDur:15000});
        $('#myrname').focus();
        return;
    }

    if (contact == 'email') {
        if (email.length < 1) {
            showFaderMsg({msg: 'An Email Address is required. [GT_E0395]',
                          msgContainer: '#errMsg', msgIsErr: true, pauseDur:15000});
            $('#myemail').focus();
            return;
        }
    } else {
        if (phone.length < 1) {
            showFaderMsg({msg: 'A Phone Number is required. [GT_E0396]',
                          msgContainer: '#errMsg', msgIsErr: true, pauseDur:15000});
            $('#myphone').focus();
            return;
        }
    }

    if (comments.length < 1) {
        showFaderMsg({msg: 'Please enter your comments. [GT_E0397]',
                      msgContainer: '#errMsg', msgIsErr: true, pauseDur:15000});
        $('#mycomments').focus();
        return;
    }

	//disable the send button
	$('#next').attr("disabled","disabled");
	$('#next').attr("value", "sending...");

    // Send the confirmation email
    jQuery.getJSON(BASEURL+'users/feedbackEmail',
                   {rname: rName, uname: uName, phone: phone, email: email, contact: contact,
                   comments: comments, browser: browser, version: version, os: os, session: session,
                   syn: SYN, ack: ACK, synlist:genS(['rname','phone','email','contact']),
                   acklist:genH(rName + phone + email + contact), rand: Math.random()},
                   function(data, textStatus) {
                       // Decode the JSON
                       results = data;

                       // Check to make sure there was no error
                       if (!results.success) {
                           // Show a message
                           showFaderMsg({msg: 'The Information could not be sent.&nbsp;[' + results.errorNumber + ']&nbsp;' + results.extendedText,
                                        msgContainer: '#errMsg', msgIsErr: true, pauseDur:15000});
							
							//send failed... reenable send button
							$('#next').removeAttr("disabled");
							$('#next').attr("value", "Send Information");
						   return;
                       }

                       // The email was sent.
					   
					   $('#myrname').attr("disabled","disabled");
					   $('#myuname').attr("disabled","disabled");
					   $('#myphone').attr("disabled","disabled");
					   $('#myemail').attr("disabled","disabled");
					   $('#mycontact').attr("disabled","disabled");
					   $('#mycomments').attr("disabled", "disabled");
					   	$('#next').attr("value", "Message Sent.");
					   
					   
                       showFaderMsg({msg: 'Your contact message has been sent, thank you.',
                                    msgContainer: '#errMsg', msgIsErr: false});
						
						
						
                       return;
                   });
}

var BrowserDetect = {
    init: function () {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
            || this.searchVersion(navigator.appVersion)
            || "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    },
    dataBrowser: [
        {   string: navigator.userAgent,
            subString: "OmniWeb",
            versionSearch: "OmniWeb/",
            identity: "OmniWeb"
        },
        {
            string: navigator.vendor,
            subString: "Apple",
            identity: "Safari"
        },
        {
            prop: window.opera,
            identity: "Opera"
        },
        {
            string: navigator.vendor,
            subString: "iCab",
            identity: "iCab"
        },
        {
            string: navigator.vendor,
            subString: "KDE",
            identity: "Konqueror"
        },
        {
            string: navigator.userAgent,
            subString: "Firefox",
            identity: "Firefox"
        },
        {
            string: navigator.vendor,
            subString: "Camino",
            identity: "Camino"
        },
        {       // for newer Netscapes (6+)
            string: navigator.userAgent,
            subString: "Netscape",
            identity: "Netscape"
        },
        {
            string: navigator.userAgent,
            subString: "MSIE",
            identity: "Explorer",
            versionSearch: "MSIE"
        },
        {
            string: navigator.userAgent,
            subString: "Gecko",
            identity: "Mozilla",
            versionSearch: "rv"
        },
        {       // for older Netscapes (4-)
            string: navigator.userAgent,
            subString: "Mozilla",
            identity: "Netscape",
            versionSearch: "Mozilla"
        }
    ],
    dataOS : [
        {
            string: navigator.platform,
            subString: "Win",
            identity: "Windows"
        },
        {
            string: navigator.platform,
            subString: "Mac",
            identity: "Mac"
        },
        {
            string: navigator.platform,
            subString: "Linux",
            identity: "Linux"
        }
    ]

};

