$.ajaxSetup({
    error: function(x, e) {
        if (x.status == 0) {
            alert('You are offline!!\n Please Check Your Network.');
        } else if (x.status == 404) {
            alert('Requested URL not found.');
        } else if (x.status == 500) {
            alert('Internal Server Error. ' + x.responseText);
        } else if (e == 'parsererror') {
            alert('Error.\nParsing JSON Request failed.');
        } else if (e == 'timeout') {
            alert('Request Time out.');
        } else {
            alert('Unknow Error.\n' + x.responseText);
        }
    }
});

var objLeadForm = {
	
	options : {
		submitCompleteBehavior : 'redirect'
	},
	
	submitComplete : function(arr_response){
		if(objLeadForm.options['submitCompleteBehavior'] == 'redirect'){
			location.href = '/web/content/thankyou/page.asp';
		} else if(objLeadForm.options['submitCompleteBehavior'] == 'show_response'){
			$("#divLeadForm").html(arr_response[1]);
		}
	},

    showForm: function () {
        $.get('/lib/ajax/leadform_ajax.asp',
            {
                callMethod: 'showForm'
            },
            function (vResponse) {
                arrResponse = vResponse.split('||');
                if (arrResponse[0] == '1') {
                    $('#divLeadForm').html(arrResponse[1]);

					var tz_info = jstz.determine_timezone();
			        var response_text = 'No timezone found for ' + tz_info.key;
			        if (typeof(tz_info.timezone) == 'undefined') {
			            response_text = 'No timezone found for ' + tz_info.key;
			        }
			        else {
			            response_text = tz_info.timezone.utc_offset + '::' + tz_info.timezone.olson_tz; 
			        }

			        $("#timezone_info").val(response_text);

                } else {
                    alert(arrResponse[1]);
                }
            }
        );
    },

    submitForm: function () {
        vError = '';
        if ($('#frmLeadForm input[name=fldContact]').val() == '') { vError = vError + '- Missing Your Name\n'; }
        if ($('#frmLeadForm input[name=fldName]').val() == '') { vError = vError + '- Missing Your Organization\n'; }
        if ($('#frmLeadForm input[name=fldPhone]').val() == '') { vError = vError + '- Missing Phone Number\n'; }
		//if ($('#frmLeadForm input[name=fldEmail]').val() == '') { vError = vError + '- Missing Your Email\n'; }
		if (!verifyEmail($('#frmLeadForm input[name=fldEmail]').val())) { vError = vError + '- Missing or Invalid Email\n'; }
		
        if (vError == '') {
            var objDate = new Date();
            $('#frmLeadForm input[name=fldTimeZone]').val(convertToTimeZone(objDate.getTimezoneOffset()));
            $.post('/lib/ajax/leadform_ajax.asp', $('#frmLeadForm').serialize(),
                function (vResponse) {
                    arrResponse = vResponse.split('||');
                    if (arrResponse[0] == '1') {
                        //$('#divLeadForm').html(arrResponse[1]);
                        //setTimeout('location.href=\'http://www.netministry.com\'', 3000);
						objLeadForm.submitComplete(arrResponse);
                    } else {
                        alert(arrResponse[1]);
                    }
                }
            );
        } else {
            alert('The following errors were found when trying to process your inquiry:\n\n' + vError + '\nPlease correct these items and try submitting your information again.');
        }
    }

}

var objQualify = {

    requestContact: function () {
        $.get('/lib/ajax/leadform_ajax.asp', { callmethod: 'requestContact' }, function (vResponse) {
            alert(vResponse);
            location.href = 'http://www.christiancms.com/';
        });
    },

    likePackage: function (vPackage) {
        $.get('/lib/ajax/leadform_ajax.asp', { callmethod: 'likePackage', package: vPackage }, function (vResponse) {
            alert(vResponse);
        });
    }

}

function convertToTimeZone(vTimeOffset) {
    switch(vTimeOffset) {
        case 240:
            return 'EST';
            break;
        case 300:
            return 'CST';
            break;
        case 360:
            return'MST';
            break;
        case 420:
            return 'PST';
            break;
        default:
            return ('GMT ' + (0-vTimeOffset/60));
            break;
    }
}

function verifyEmail(strval){
	var status = false;     
	var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	if (strval.search(emailRegEx) == -1) {
	} else {
		status = true;
	}
	return status;
}
