$(function() {
    $.validator.addMethod("chars", function(value, element) {
        var element = $(element);

        return element.val() != element.attr('alt') && /^[a-zA-Zа-яА-Я]+$/.test(value);
    });

    $.validator.addMethod("phone", function(value, element) {
        element = $(element);

        return element.val() != element.attr('alt') && /^\+[0-9]+$/.test(value);
    });

    function attachCrop() {
        var _this = $(this);
        if(_this.width() > 120 && _this.height() > 120) {
            if(_this.width() > _this.height()) {
                _this.css('width', '120px');
            } else {
                _this.css('height', '120px');
            }
        }
        _this.Jcrop({
            onSelect: function(c) {
                $('#image_x').val(c.x);
                $('#image_y').val(c.y);
                $('#image_w').val(c.w);
                $('#image_h').val(c.h);
            },
            onChange: function(c) {
                $('#image_x').val(c.x);
                $('#image_y').val(c.y);
                $('#image_w').val(c.w);
                $('#image_h').val(c.h);
            },
            setSelect: [ 0, 0, 50, 50 ],
            aspectRatio: 1
        });
    }

    $('.register').click(function() {
        $('#tv, #index_banner_wrapper').hide();
        $.nyroModalManual({
            url            : '#register_form_container',
            showContent    : function(elts, settings, callback) {
                elts.full.addClass('register');
                elts.contentWrapper.css({
                    width      : settings.width+'px',
                    height     : settings.height+'px',
                    marginTop  : settings.marginTop+'px',
                    marginLeft : settings.marginLeft+'px'
                }).fadeIn(300);
                callback();
            },
            hideContent    : function(elts, settings, callback) {
                elts.contentWrapper.animate({
                    opacity: '0'
                }, {duration: 350, complete: function() {
                    elts.contentWrapper.hide();
                    $('#tv, #index_banner_wrapper').show();
                    callback();
                }});
            },
            endShowContent : function(elts) {
                var element;
                var form;

                $('#image_form').html('<input name="file_name" type="file" value="" size="1" class="file" /><div class="image"><div style="height: 50px;"></div><span>ФОТО</span></div>');

                $('input', elts.content).each(function() {
                	element = $(this);
                	element.val(element.attr('alt')).css('color', '#3A3935');
                });

                $('input', elts.content).focus(function() {
                    element = $(this);

                    if(element.val() == element.attr('alt')) {
                        element.val('');
                        if(element.attr('name') == 'phone') {
                            element.val('+7');
                        }
                        if(element.attr('name') == 'vkontakte') {
                            element.val('http://www.vkontakte.ru/');
                        }
                        if(element.attr('name') == 'facebook') {
                            element.val('http://www.facebook.com/');
                        }
                    }
                });

                $('input', elts.content).blur(function() {
                    element = $(this);

                    if(element.val() == '' || element.val() == '+7' || element.val() == 'http://www.vkontakte.ru/' || element.val() == 'http://www.facebook.com/') {
                        element.val(element.attr('alt'));
                    }
                });

                $('#register_form').validate({
                    rules: {
                        image_name: {
                            required : true
                        },
                        name: {
                            required : true,
                            chars    : true
                        },
                        surname: {
                            required : true,
                            chars    : true
                        },
                        phone: {
                            phone : true
                        },
                        email: {
                            required : true,
                            email    : true,
                            remote   : '/register/process.php'
                        }
                    },
                    messages: {
                        image_name: {
                            required: "Пожалуйста, загрузите картинку."
                        }
                    },
                    submitHandler: function(form) {
                        $(form).ajaxSubmit({
                            success: function(data) {
                                $(elts.content).html('<div class="success"><img src="/register/img/nyroModal/intro.png" /></div><div class="infobox"><p>ваша заявка принята!<br />подробная информация на вашем почтовом ящике!</p></div>');
                                setTimeout("$.nyroModalRemove();", 5000);
                            }
                        });
                    },
                    errorPlacement: function() {},
                    highlight: function(errorelement, errorClass, validClass) {
                        errorelement = $(errorelement);
                        if(errorelement.is('#image_name')) {
                            errorelement = $('#image_form span');
                        }
                        errorelement.css('color', 'red');
                    },
                    unhighlight: function(errorelement, errorClass, validClass) {
                        errorelement = $(errorelement);
                        if(errorelement.is('#image_name')) {
                            errorelement = $('#image_form span');
                        }
                        errorelement.css('color', '#3A3935');
                    }
                });

                $('#image_form').validate({
                    rules: {
                	    file_name: {
                            accept: "jpg"
                        }
                    },
                    errorElement: '',
                    highlight: function(errorelement, errorClass, validClass) {
                        $('#image_form span').css('color', 'red');
                    },
                    unhighlight: function(errorelement, errorClass, validClass) {
                        $('#image_form span').css('color', '#3A3935');
                    },
                    submitHandler: function(form) {
                        $(form).ajaxSubmit({
                            success: function(data) {
                                if(data != 'false') {
                                    $('#image_form div').html('<img src="' + data + '" />');
                                    $('#image_form div.image > img').load(attachCrop);
                                    $('#image_name').val(data);
                                    $('#image_form input:file').remove();
                                }
                            }
                        });
                    }
                });

                $('input:file', elts.content).change(function() {
                    $('#image_form').submit();
                });
            }
        });

        return false;
    });
});
