(function($){

    // Ready
    $(function() {

        // Rotator
        (function() {
            
            var graphics = $('ul#graphics');
            var captions = $('#captions');

            captions.children().first().nextAll().css('opacity', 0.4);

            graphics.cycle({
                fx: 'fade',
                before: function(currSlideElement, nextSlideElement, options, forwardFlag) {
                    var currOffset = $(currSlideElement).prevAll().size();
                    var nextOffset = $(nextSlideElement).prevAll().size();

                    if (currOffset === nextOffset) return;

                    captions.children().eq(currOffset).fadeTo(2000, 0.4);
                    captions.children().eq(nextOffset).fadeTo(2000, 1.0);
                }
            });

        })();

        // Contact us
        (function() {           

            var DEFAULT_NAME = 'Name',
                DEFAULT_EMAIL = 'E-mail',
                DEFAULT_COMMENTS = 'Comments';

            var form = $('#contact-us-form'),
                name = $('#contact-us-name'),
                email = $('#contact-us-email'),
                comments = $('#contact-us-comments'),
                submit = $('#contact-us-submit');

            $('.contact-us-link').click(function() {
                $.scrollTo(form, 1000, {
                    onAfter: function() {
                        form.fadeTo('slow', 0.1, function() {
                            form.fadeTo('normal', 1, function() {
                                form.fadeTo('slow', 0.1, function() {
                                    form.fadeTo('normal', 1);
                                })
                            });
                        });
                    }
                });
                return false;
            });

            var handleDefaultValue = function(el, defaultValue) {
                el.focus(function() {
                    var el = $(this);
                    if (el.val() === defaultValue) el.val('');
                }).blur(function() {
                    var el = $(this);
                    if (el.val() === '') el.val(defaultValue);
                });
            };

            handleDefaultValue(name, DEFAULT_NAME);
            handleDefaultValue(email, DEFAULT_EMAIL);
            handleDefaultValue(comments, DEFAULT_COMMENTS);

            var validateValue = function(el, defaultValue) {
                if (el.val() === defaultValue || el.val() === '') {
                    el.addClass("input-highlight");
                    return false;
                } else {
                    el.removeClass("input-highlight");
                    return true;
                }
            };
            
            form.submit(function() {
                var validated = !!(1
                    & validateValue(comments, DEFAULT_COMMENTS)
                    & validateValue(email, DEFAULT_EMAIL)
                    & validateValue(name, DEFAULT_NAME));

                if (!validated) return false;

                submit.val("Sending...");
                $.post(WP.url + "/contact-us-ajax", form.serialize(), function() {
                    submit.val("Contact Sent");
                    setTimeout(function() {
                        form.find(':input').val('').blur();
                        submit.val("Submit");
                    }, 5000);
                });

                return false;
            });

        })();

        // PayPal Form
        (function() {

            var form = $('#paypal-form'),
                title = form.find('input[name=title]'),
                firstName = form.find('input[name=first_name]'),
                lastName = form.find('input[name=last_name]'),
                company = form.find('input[name=company]'),
                custom = form.find('input[name=custom]');

            var validateValue = function(el) {
                if (el.val() === '') {
                    el.addClass("input-highlight");
                    return false;
                } else {
                    el.removeClass("input-highlight");
                    return true;
                }
            };

            form.submit(function() {
                var validated = !!(1
                    & validateValue(title)
                    & validateValue(firstName)
                    & validateValue(lastName)
                    & validateValue(company));

                if (!validated) return false;

                custom.val(phpUrlencode(phpSerialize({
                    title: title.val(),
                    company: company.val()
                })));

                return true;
            });

        })();

    });

})(jQuery);



