$(function() {
    var lang = get_lang()['lang'];
    
    $('#site_logo').click(function () { window.location = '/' + lang });
    
    if ($('div.fancybox_gallery').length) {
        $('div.fancybox_gallery a').fancybox();
    }
    
    if ($('#jwplayer_container').length) {
        var jwplayer_settings = {
            file: $('#jwplayer_container').attr('class').match(/jwplayer_file_(.+?)\s/)[1],
            width: $('#jwplayer_container').attr('class').match(/jwplayer_width_(\d+)/)[1],
            height: $('#jwplayer_container').attr('class').match(/jwplayer_height_(\d+)/)[1]
        };
        
        jwplayer('jwplayer_container').setup({
            'flashplayer': 'http://www.silverspoon.ee/jwplayer/player.swf',
            'file': 'http://www.silverspoon.ee/video/' + jwplayer_settings.file,
            'image': 'http://www.silverspoon.ee/video/video_logo.jpg',
            'provider': 'http',
            'screencolor': '11063a',
            'stretching': 'none',
            'controlbar': 'bottom',
            'width': jwplayer_settings.width,
            'height': jwplayer_settings.height,
        });
    }
    
    $('#container_right div.bnr a').attr('target', '_blank').click(function () {
        $.post('/bnrs.php', 'id=' + $(this).find('img').attr('src').substring($(this).find('img').attr('src').lastIndexOf('/') + 1));
    });
    
    $('#fb_box a').attr('target', '_blank').click(function () {
        $.post('/bnrs.php', 'id=Silverspoon @ Facebook');
    });
            
    $('h3.rules').click(function () {
        $(this).hasClass('open') ? $('#container_rules').slideUp(300, function () { $('h3.rules').removeClass('open') }) : $('#container_rules').slideDown(300, function () { $('h3.rules').addClass('open') });
    });
            
    $.get('/hl_reeglid_2011.html', function(data) {
        $('#container_rules').html(data);
    });
    
    if ($('#reg_form').length) {
        (function () {
            var get_question_image_error_count = 0,
            langs = {
                et: {
                    company: 'Ettevõte',
                    com_name: 'Toitlustuskoha nimi',
                    address: 'Aadress',
                    name: 'Kontaktisik',
                    phone: 'Telefon',
                    email: 'E-post',
                    website: 'Veebisait',
                    note: 'Märkus',
                    note_req_fields: '* Tärniga märgitud tekstiväljad on kohustuslikud',
                    note_spam: '(vajalik spämmi vältimiseks)',
                    confirmation: 'Olen nõus reeglitega',
                    btn_send: 'Saada taotlus',
                    ajax_tech_error: 'Taotluse saatmine ebaõnnestus! Tehniline viga. Palun proovige hiljem uuesti.'
                },
                en: {
                    company: 'Company',
                    com_name: 'Commercial Name',
                    address: 'Address',
                    name: 'Contact person',
                    phone: 'Phone #',
                    email: 'E-mail',
                    website: 'Website',
                    note: 'Annotation',
                    note_req_fields: '* Text fields marked with asterisk are mandatory',
                    note_spam: '(required to avoid spam)',
                    confirmation: 'I agree with rules',
                    btn_send: 'Send Application',
                    ajax_tech_error: 'Failed to send application. Technical error. Please try again later.'
                }
            };
            
            $('#reg_form').html('<div class="msg"></div><form method="post"><div class="row note">' + langs[lang].note_req_fields + '</div><div class="row"><div class="ls"><label for="reg_form_firm">' + langs[lang].company + ' *</label></div><div class="rs"><input id="reg_form_firm" type="text" name="firm" value="" /></div></div><div class="row"><div class="ls"><label for="reg_form_commercial_name">' + langs[lang].com_name + ' *</label></div><div class="rs"><input id="reg_form_commercial_name" type="text" name="commercial_name" value="" /></div></div><div class="row"><div class="ls"><label for="reg_form_address">' + langs[lang].address + ' *</label></div><div class="rs"><input id="reg_form_address" type="text" name="address" value="" /></div></div><div class="row"><div class="ls"><label for="reg_form_name">' + langs[lang].name + ' *</label></div><div class="rs"><input id="reg_form_name" type="text" name="name" value="" /></div></div><div class="row"><div class="ls"><label for="reg_form_phone">' + langs[lang].phone + ' *</label></div><div class="rs"><input id="reg_form_phone" type="text" name="phone" value="" /></div></div><div class="row"><div class="ls"><label for="reg_form_email">' + langs[lang].email + ' *</label></div><div class="rs"><input id="reg_form_email" type="text" name="email" value="" /></div></div><div class="row"><div class="ls"><label for="reg_form_website">' + langs[lang].website + '</label></div><div class="rs"><input id="reg_form_website" type="text" name="website" value="" /></div></div><div class="row"><div class="ls"><label for="reg_form_note">' + langs[lang].note + '</label></div><div class="rs"><textarea id="reg_form_note" name="note" cols="28" rows="4"></textarea></div></div><div id="reg_form_question_row" class="row hidden"><div class="ls"></div><div class="rs"><input id="reg_form_answer" type="text" name="answer" value="" /><span class="note">' + langs[lang].note_spam + '</span></div></div><div class="row confirmation"><label><input id="reg_form_confirmation" name="reg_form_confirmation" type="checkbox" value="1" />&nbsp;&nbsp;' + langs[lang].confirmation + '</label></div><div class="row submit"><input id="btn_submit_reg_form" type="button" name="submit" disabled="disabled" value="' + langs[lang].btn_send + '" /></div></form>');
            
            $('#reg_form_firm').focus();
            
            $('#reg_form_answer').attr('autocomplete', 'off').blur(function () {
                $(this).val($(this).val().replace(/\D/g, ''));
            });
            
            jQuery.show_message = (function () {
                var queue = [];
                
                return function (msg, msg_class, secs) {
                    queue[queue.length] = {
                        'msg': msg,
                        'msg_class': (msg_class !== undefined) ? msg_class : '',
                        'secs': (secs !== undefined) ? secs * 1000 : 5000
                    };
                    
                    if (queue.length === 1) {
                        display();
                    }
                    
                    function display() {
                        $('#reg_form div.msg').html(queue[0]['msg']) .
                            addClass(queue[0]['msg_class']) .
                            removeClass('hidden') .
                            fadeIn(400, function () {});
                        
                        setTimeout(function() {
                            $('#reg_form div.msg').fadeOut(500, function () {
                                $('#reg_form div.msg').removeAttr('class').attr('class', 'msg hidden').removeAttr('style').html('');
                                
                                queue.splice(0, 1);
                                if (queue.length > 0) display();
                            });
                        }, queue[0]['secs']);
                    };
                };
            })();
            
            function get_question_image() {
                $.ajax({
                    type: 'POST',
                    url: '/registration_form.php',
                    data: {
                        action: 'get_question_image'
                    },
                    cache: false,
                    timeout: 5000,
                    dataType: 'text',
                    success: function (json_obj) {
                        var response = JSON.parse(json_obj);
                        
                        if (response.status) {
                            if ($('#reg_form_question').length > 0) {
                                $('#reg_form_question').remove();
                            }
                            $('#reg_form_question_row div.ls').append('<img id="reg_form_question" src="/img/tmp/reg_form/' + response.img + '" alt="" />');
                        }
                        else {
                            $.show_message(response.msg, 'error', 10);
                        }
                    },
                    error: function (jqXHR, textStatus) {
                        if (get_question_image_error_count < 5) {
                            get_question_image_error_count ++;
                            get_question_image();
                        }
                    }
                });
            }
            
            $('#reg_form_firm').change(function () {
                if ($('#reg_form_question').length == 0 && $('#reg_form_firm').val() != '') {
                    $('#reg_form_question_row').removeClass('hidden');
                    get_question_image();
                }
            });
            
            $('#reg_form_confirmation').change(function () {
                $('#reg_form_confirmation:checked').length ? $('#btn_submit_reg_form').removeAttr('disabled') : $('#btn_submit_reg_form').attr('disabled', 'disabled');
            });
            
            $('#btn_submit_reg_form').click(function () {
                
                var data = {
                    firm: $('#reg_form_firm').val().trim(),
                    commercial_name: $('#reg_form_commercial_name').val().trim(),
                    address: $('#reg_form_address').val().trim(),
                    name: $('#reg_form_name').val().trim(),
                    phone: $('#reg_form_phone').val().trim(),
                    email: $('#reg_form_email').val().trim(),
                    website: $('#reg_form_website').val().trim(),
                    note: $('#reg_form_note').val().trim(),
                    question: $('#reg_form_question').attr('src').substring($('#reg_form_question').attr('src').lastIndexOf('/') + 1),
                    answer: $('#reg_form_answer').val().trim(),
                    lang: lang
                }
                
                if (data.firm != '' && data.commercial_name != '' && data.name != '' && data.phone != '' && data.email != '' && data.answer != '') {
                    
                    $(this).attr('disabled', 'disabled');
                    
                    $.ajax({
                        type: 'POST',
                        url: '/registration_form.php',
                        data: {
                            action: 'save_registration',
                            data: data
                        },
                        cache: false,
                        timeout: 5000,
                        dataType: 'text',
                        success: function (json_obj) {
                            var response = JSON.parse(json_obj);
                            
                            if (response.status) {
                                $.show_message(response.msg, 'ok');
                                
                                setTimeout(function () {
                                    $('#reg_form div.rs input, #reg_form div.rs textarea').val('');
                                    $('#reg_form_question_row').addClass('hidden');
                                    $('#reg_form_question').remove();
                                    $('#reg_form_confirmation').removeAttr('checked');
                                }, 5000);
                            }
                            else if (response.action == 1) {
                                $.show_message(response.msg, 'error');
                                
                                get_question_image();
                                
                                $('#reg_form_answer').val('').focus();
                                
                                $('#btn_submit_reg_form').removeAttr('disabled');
                            }
                            else {
                                $.show_message(response.msg, 'error');
                                
                                $('#btn_submit_reg_form').removeAttr('disabled');
                            }
                        },
                        error: function (jqXHR, textStatus) {
                            $.show_message(langs[lang].ajax_tech_error, 'error', 10);
                            
                            $('#btn_submit_reg_form').removeAttr('disabled');
                        }
                    });
                }
                
                return false;
            });
        })();
    }
});
