$(document).ready(function () {
    $('#navigation li').hover(
		function () {
		    var sub = $(this).find('.dd:eq(0)');
		    if (sub.length == 0) return false;

		    sub.show();
		    var t = (parseInt(sub.css('top').replace('px', '')) - 5);
		    sub.hide();
		    var new_t = t + 5;

		    sub
				.css({ 'top': t + 'px' })
				.animate({ 'top': new_t + 'px', opacity: 'show' }, 0, function () {
				    $(this).css({ 'top': new_t + 'px' });
				});


		    $(this).find('a:eq(0)').addClass('hover');
		},
		function () {
		    var sub = $(this).find('.dd:eq(0)');

		    sub.hide();
		    $(this).find('a:eq(0)').removeClass('hover');
		}
	);


    $('.field')
		.focus(function () { $(this).addClass('field-focus'); })
		.blur(function () { $(this).removeClass('field-focus'); })


    /** Validation **/
    var form;
    var field, v, id, msg;
    var error;

    $('.validate-form').submit(function () {
        form = $(this);
        form.find('.required').removeClass('field-error');

        error = false;

        if (form.attr('name') == "contact") {
            form.find('.validate').each(function () {
                field = $(this);
                v = $(this).val();
                id = $(this).attr('id');

                if ($(this).hasClass('valid-email')) {
                    if (/^\w+([\+\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(v) == false) {
                        error = true;
                        return false;
                    }
                }

                if ($(this).hasClass('valid-name')) {
                    if (/^.{2,}$/.test(v) == false) {
                        error = true;
                        return false;
                    }
                }

                if ($(this).hasClass('valid-phone')) {
                    if (/^([0-9\(\)\+\-]){0,}$/.test(v) == false) {
                        error = true;
                        return false;
                    }
                }
            });
        }

        if (form.attr('name') == "registration_free" || form.attr('name') == "registration_pro3trial") {
            form.find('.validate').each(function () {
                field = $(this);
                v = $(this).val();
                id = $(this).attr('id');

                if ($(this).hasClass('valid-email')) {
                    if (/^\w+([\+\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(v) == false) {
                        error = true;
                        return false;
                    }
                }

                if ($(this).hasClass('valid-name')) {
                    if (/^.{2,}$/.test(v) == false) {
                        error = true;
                        return false;
                    }
                }
                if ($(this).hasClass('valid-phone')) {
                    if (/^([0-9\(\)\+\-]){0,}$/.test(v) == false) {
                        error = true;
                        return false;
                    }
                }

                if ($(this).hasClass('confirm-password')) {
                    if (v != form.find('#password-field').val()) {
                        error = true;
                        return false;
                    }
                }

            });
        }

        if (form.hasClass('network_trace')) {
            form.find('.validate').each(function () {
                field = $(this);
                v = $(this).val();
                id = $(this).attr('id');

                if ($(this).hasClass('valid-url')) {
                    if (/^(http[s]?:\/\/){0,1}(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}$/.test(v.replace(/\/$/, "")) == false) {
                        error = true;
                        return false;
                    }
                }

            });
        }

        if (!error) {
            form.find('.required').each(function () {
                field = $(this);
                v = $(this).val();
                id = $(this).attr('id');

                if (v == '') {
                    error = true;
                    return false;
                }
            });
        }

        if (error) {
            field.focus();
            field.removeClass('field-focus');
            field.addClass('field-error');
            msg = $("label[for='" + id + "']").attr('title');
            show_error(msg);

            if (form.hasClass('network_trace')) {
                var prm = Sys.WebForms.PageRequestManager.getInstance();
                if (prm.get_isInAsyncPostBack()) {
                    prm._request.get_executor().abort();
                }
            }

        } else {
            hide_error();
            if (form.hasClass('imacrostest') && $('#recaptcha_response_field').length == 0) {
                $('#divWait').delay(1000).fadeIn();
            }
            else {
                $('#divWait').show();
            }
            
            if (form.attr('name') == "tools") {
                $('#divChart').hide();
            }

            if (form.attr('name') == "tools_advanced") {
                hide_result();
            }

            var data = { source: form.attr('name') }

            form.find('.field').each(function () {
                data[$(this).attr('name')] = $(this).val();
            });

            if (form.attr('name') == "contact") {
                $.post('../Send.aspx', data, function (return_data) {
                    submit_contact(return_data, form);
                });
            }

            if (form.attr('name') == "contact_de") {
                $.post('../../Send.aspx', data, function (return_data) {
                    submit_contact(return_data, form);
                });
            }

            if (form.attr('name') == "tools") {
                $.post('../../Send.aspx', data, function (return_data) {
                    submit_tools(return_data);
                });
            }

            if (form.attr('name') == "tools_advanced") {
                $.post('../../Send.aspx', data, function (return_data) {
                    submit_tools_advanced(return_data);
                });
            }

            if (form.attr('name') == "tools_de") {
                $.post('../../../Send.aspx', data, function (return_data) {
                    submit_tools(return_data);
                });
            }

            if (form.attr('name') == "registration_free" || form.attr('name') == "registration_pro3trial") {
                $.post('../Send.aspx', data, function (return_data) {
                    submit_registration(return_data)
                });
            }

            if (form.attr('name') == "registration_free_de" || form.attr('name') == "registration_pro3trial_de") {
                $.post('../../Send.aspx', data, function (return_data) {
                    submit_registration(return_data)
                });
            }
        }

        return false;
    });
});

function submit_registration(return_data) {
    if (return_data == "OK") {
        //show_thanks( form );
        $(location).attr('href', "thanks.aspx");
    }
    else {
        $('#divWait').hide();
        show_error(return_data);
    }
}

function submit_contact(return_data, form) {
    if (return_data == "OK") {
        show_thanks(form);
    }
    else {
        $('#divWait').hide();
        show_error(return_data);
    } 
}

function submit_tools(return_data) {
    if (return_data == "-2") {
        $('#divWait').hide();
        show_error("Invalid URL");

        return;
    }

    if (return_data == "-1") {
        $('#divWait').hide();
        show_error("The website is not reachable");

        return;
    }

    if (return_data == "0") {
        $('#divWait').hide();
        show_error("The website does not exist or is down");

        return;
    }
    //form.find('.field').attr({ 'value': '' });
    $('#divWait').hide();
    $('#imgChart').attr('src', return_data);
    $('#divChart').show();
}

function submit_tools_advanced(return_data) {
    $('#divWait').hide();
    show_result(return_data);
}

function show_result(message) {
    $('.divResult').html(message);
    $('.divResult').fadeIn();
}

function hide_result() {
    $('.divResult').hide();
}

function show_error( message ) {
	$('.msg-error span').html( message );
	$('.msg-error').fadeIn();
}

function hide_error() {
	$('.msg-error').hide();
}

function show_thanks( form ) {
    form.find('.msg-thanks').fadeIn(function(){
	    form.find('.field').attr({ 'value': '' });
	    form.find('.drop_subjects').attr({ 'value': 'General question or comment' });
	    $('#divWait').hide();
	    window.setTimeout(function(){
		    form.find('.msg-thanks').fadeOut();
	    }, 7000);
		
    });
}

$.urlParam = function(name) {
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (!results) { return 0; }
    return results[1] || 0;
}
