﻿/* hanover scriptoids ------ *
 * 
 * jared at type3digital.com 
 * ------------------------- */



// init
$(document).ready(function() {
    initLinks();
    if ($(".enquiry").length) { 
        initForms();
        initEnquiry();
    }
    $('#gallery a').lightBox({fixedNavigation:true});
});

initLinks = function() {

    // target blank
    $(".aBlank").click(function() { 
        // log click to analytics
        var url = this.href;
        url = url.slice(url.lastIndexOf("://") + 3);
        if(typeof(pageTracker) != "undefined")
            pageTracker._trackPageview(location.pathname + "external/" + url);
            
        // open new window
        window.open(this.href); return false; 
    });
}

// common form configuration
initForms = function() {
	
	$(".pnlComplete").hide();
	
    //custom validation rules - initial value
    $.validator.addMethod("initialValue", 
        function(value, element) {
           return $(element).attr("title") != value;
        }, "Required"
    );
    
    // on focus, clear text
    $(".initial").focus(function() {
        if ($(this).val() == $(this).attr("title"))
            $(this).val("");
    });
    
    // on blur, add default text if empty
    $(".initial").blur(function() {
        if ($(this).val() == "")
            $(this).val($(this).attr("title"));
    });
}

initEnquiry = function() {
    
    // validate form
    $("#fEnquiry").validate({
        onfocusout: false,
        onkeyup: false,
        errorClass: "invalid",      
        wrapper: "li",
        errorLabelContainer: "#fEnquiry .messageBox",
        debug: false,
        rules: {
            LastName: { required: true, initialValue: true },
            Email: { required: true, email: true, initialValue: true },
            Text: { required: true, initialValue: true }
        },
        messages: {
            LastName: val_Required_LastName,
            Email: { required: val_Required_Email, email: val_Invalid_Email },
            Text: val_Required_Text
        }
    });
    
    // cancel form bubble for javascript
    $("#fEnquiry").submit(function() { return false; });
    
    // submit button
    $("#btnEnquiry_Submit").click(function() {
        submitEnquiry();
    });
    
    // enter key
    $("#txtEnquiry_Text").bind("keypress", function(e) {
	    var code = (e.keyCode ? e.keyCode : e.which);
	    if (code == 13) {
	        submitEnquiry();
	    }
    });
}

submitEnquiry = function() {

    if ($("#fEnquiry").valid()) {
        var obj = new Object();
        obj.LastName = $("#txtEnquiry_LastName").val();
        obj.Email = $("#txtEnquiry_Email").val();
        obj.Company = $("#txtEnquiry_Company").val();
        obj.Text = $("#txtEnquiry_Text").val();

        ajaxRequest("submitEnquiry",
            JSON.stringify(obj),
            function(output) {
                if (output == true) {

                    // log to google
                    if(typeof(pageTracker) != "undefined")
                        pageTracker._trackPageview(location.pathname + "enquiry_submitted/");
                    
                    $(".pnlForm").fadeOut(500, function() {
                        $(".pnlComplete").fadeIn(500);
                    });
                }
            });
    }
}

// Call asp.net HttpHandler to process js requests
ajaxRequest = function(query, data, callback) {
    $.ajax({ 
        type: "POST",
        url: "/x.processor.ashx",   
        cache: false,
        data: { qry: query, data: data },
        dataType: "json",
        success: function(output) {
                callback(output);
        },
        error: function(xmlhr, status, err){
            console.error(err);
            var response = eval("("+xmlhr.responseText+")");
            console.log(response);
		}
    });
}