Cufon.replace('h1, h2, h3, h4, h5, h6, .right_column .hd, .popupfrm .hd, .popupfrm .close, .add_nav .phone, .slide_right .hd', { fontFamily: 'myriad' });

(function ($){$(function (){
    
$(".top_nav li li:last-child").addClass('sub_lst');
$(".top_nav a").before('<div class="left_border"></div><div class="right_border"></div>');
$(".rounded").append('<div class="lt"></div><div class="rt"></div><div class="lb"></div><div class="rb"></div>');
Cufon.now();

function popupForm(){
    var oFrmSpec = $('.popupfrm');

    if(oFrmSpec.length < 1 || oFrmSpec.hasClass('not')){
        return;
    }
    
    var oFrmBg = $('.bgfrm');
    var cLang = oFrmSpec.find(':hidden[name=lang]').val().toLowerCase();
    
    function hideFrm(){
        
        oFrmSpec.fadeOut('normal', function(){
            
            oFrmSpec.remove();
            
            oFrmBg.fadeOut('normal', function (){
                
                oFrmBg.remove();
                
            });
            
        });
    }
    
    oFrmSpec.find(':text').focus(function (){
        
        var inp = $(this);
        var txt = '';
        
        switch(inp.attr('name')){
            case 'subsrc[name]' : txt = cLang == 'en' ? 'your name' : 'ваше имя';
            break;
            
            case 'subsrc[email]' : txt = cLang == 'en' ? 'your e-mail' : 'ваш e-mail';
            break;
        }
        
        if($.trim(inp.val().toLowerCase()) == txt){
            inp.val('');
        }
        
    }).blur(function (){
        
        var inp = $(this);
        var txt = '';
        
        switch(inp.attr('name')){
            case 'subsrc[name]' : txt = cLang == 'en' ? 'Your name' : 'Ваше имя';
            break;
            
            case 'subsrc[email]' : txt = cLang == 'en' ? 'Your E-mail' : 'Ваш E-mail';
            break;
        }
        
        if($.trim(inp.val()).length == 0){
            inp.val(txt);
        }
        
    }).end().find('.more').click(function (){
        
        
        
        var opt = {
            
            dataType : 'json',
            
            beforeSerialize : function (form){
                
                form.find(':hidden[name=data]').val(JSON.stringify({action:'subscr'}));
                
            },
            
            beforeSubmit : function (fields){
                
                var send = true;
                
                for(var a = 0; a < fields.length; a++){
                    
                    if($.inArray(fields[a].name, ['lang', 'data']) != -1){
                        continue;
                    }
                    
                    var txt = '';
                    
                    switch(fields[a].name){
                        case 'subsrc[name]' : txt = cLang == 'en' ? 'your name' : 'ваше имя';
                        break;
                        
                        case 'subsrc[email]' : txt = cLang == 'en' ? 'your e-mail' : 'ваш e-mail';
                        break;
                    }
                    
                    val = $.trim(fields[a].value.toLowerCase());
                    
                    if(val == txt || val.length < 1){
                        send = false;
                    }else if(fields[a].name == 'subsrc[email]' && send == true && /^[a-z0-9\-\_.]+@[a-z0-9\-\_]+\.[a-z]+$/i.exec(val) === null){
                        send = 'email';
                    }
                    
                }
                
                if(send == false){
                    alert(cLang == 'en' ? 'Fill in all fields' : 'Заполните все поля');
                    return false;
                }else if(send == 'email'){
                    alert(cLang == 'en' ? 'Incorrect E-mail' : 'Неправильный формат E-mail адреса');
                    return false;
                }
                
            },
            
            success : function (data){
                
                switch(data){
                    case 'error_no' : alert(cLang == 'en' ? 'Your E-mail added' : 'Ваш E-mail добавлен');
                        hideFrm();
                    break;
                    
                    case 'error_email' : alert(cLang == 'en' ? 'Incorrect E-mail' : 'Неправильный формат E-mail адреса');
                    break;
                    
                    case 'error_block' : alert(cLang == 'en' ? 'Bug subscriptions' : 'Ошибка подписки');
                    break;
                    
                    case 'error_isset' : alert(cLang == 'en' ? 'Your E-mail was added earlier' : 'Ваш E-mail был добавлен ранее');
                    break;
                }
                
            }
            
        };
        
        oFrmSpec.ajaxForm(opt).submit();
        
    });
    
    var oDoc = $(document);
    var oWin = $(window);
    
    var oSizeD = {
        w : oDoc.width(),
        h : oDoc.height()
    };
    
    var oSizeW = {
        w : oWin.width(),
        h : oWin.height()
    };
    
    var oSizeF = {
        w : oFrmSpec.width(),
        h : oFrmSpec.height()
    };
    
    oFrmSpec.css({
        'top' : (oSizeW.h - oSizeF.h) / 2 + oWin.scrollTop() + 'px',
        'left' : (oSizeW.w - oSizeF.w) / 2 + oWin.scrollLeft() + 'px'
    });
    
    oFrmBg.css({
        'width'  : oSizeD.w + 'px',
        'height' : oSizeD.h + 'px',
        'display' : 'block'
    }).fadeTo('normal', 0.8, function (){
        oFrmSpec.fadeIn('normal');
    });
    
    var oClose = oFrmSpec.find('.close').click(function (){
        
        $.post(
            '/subscribe',
            {
                data : JSON.stringify({
                    action : 'close'
                })
            }
        );
        
        hideFrm();
    });
    
    oWin.resize(function (){
        
        oFrmBg.css('width', 0);
        
        var iWWin = oWin.width();
        var iWDoc = oDoc.width();
        var width = iWWin;
        
        if(iWWin < iWDoc){
            width = iWDoc;
        }
        
        oFrmBg.css({
            'width'  : width + 'px'
        });
        
        
        oFrmSpec.css({
            'top'  : (oWin.height() - oSizeF.h) / 2 + oWin.scrollTop() + 'px',
            'left' : (iWWin - oSizeF.w) / 2 + oWin.scrollLeft() + 'px'
        });
        
    });
}

popupForm();

var oSlide = $('.slide_right');
var oLblSlide = $('.slide_label');

oLblSlide.hover(
    function (){
        //return;
        if(oSlide.attr('id') == 'open'){
            return;
        }
        
        oLblSlide.attr('id', 'animate').animate({right : '200px'}, 'normal', function (){
            oLblSlide.removeAttr('id');
            oSlide.attr('id', 'open');
        });
        
        oSlide.animate({width : '200px'}, 'normal');
    },
    function (){

    }
);

oSlide.hover(function (){}, function (){
    //return;
    if($.inArray(oSlide.attr('id'), ['close', 'stop']) != -1){
        return;
    }
    
    oSlide.animate({width : '0px'}, 'normal', function (){
        oSlide.attr('id', 'close');
    });
    oLblSlide.animate({right : '0px'}, 'normal');
});

var oSearch = oSlide.find('.search');
var oResult = oSlide.find('.result');
var oResDate = oSlide.find('.result_date');
var cLang = oSearch.find(':hidden[name=lang]').val().toLowerCase();

$.datepicker.setDefaults($.datepicker.regional[cLang == 'en' ? '' : 'ru']);

oSlide.find('#datepicker').datepicker({
    onSelect : function (text, inp){
        
        $.post(
            '/employees',
            {
                data : JSON.stringify({action : 'search_cal', cal : 1, bd : text})
            },
            function (data){
                
                oResDate.html('');
                
                if(data.length < 1){
                    return;
                }
                
                var txt = '';
                var postfix = '';
                
                if(cLang == 'en'){
                    postfix = '_en';
                }
                
                for(var i = 0; i < data.length; i++){
                    
                    var prop = data[i].properties;
                    
                    txt += '<p>' + '<strong>' +
                        prop['surname' + postfix].value + ' ' + prop['name' + postfix].value + ' ' +
                        prop['pat' + postfix].value + '</strong><br />' +
                        (cLang == 'en' ? 'Birthday' : 'День рождения') + ': ' +
                        data[i].timestamp + '<br />' +
                        (cLang == 'en' ? 'Company' : 'Организация') +': ' + prop['company' + postfix].value + 
                    '</p>';
                }
                
                oResDate.html(txt);
                
            },
            'json'
        );
        
    }
});

oSearch.find('#bd').datepicker({
    onClose: function(dateText, inst) {
        oSlide.attr('id', 'open');
}});

oSearch.find(':text').focus(function (){
    
    var inp = $(this);
    
    switch(inp.attr('name')){
        case 'search[surname]':
            var txt = cLang == 'en' ? 'surname' : 'фамилия';
        break;
        
        case 'search[bd]':
            var txt = cLang == 'en' ? 'birthday' : 'день рождения';
            oSlide.attr('id', 'stop');
        break;
    }
    
    var val = $.trim(inp.val().toLowerCase());
    
    if(val == txt){
        inp.val('');
    }
    
}).blur(function (){

    var inp = $(this);
    
    switch(inp.attr('name')){
        case 'search[surname]':
            var txt = cLang == 'en' ? 'surname' : 'фамилия';
        break;
        
        case 'search[bd]':
            var txt = cLang == 'en' ? 'birthday' : 'день рождения';
        break;
    }
   
    var val = $.trim(inp.val().toLowerCase());
    
    if(val == txt || val.length == 0){
        inp.val(txt);
    }
    
}).end().find('.more').click(function (){
    
    var oSubm = $(this);
    
    var opt = {
        dataType : 'json',
        
        beforeSerialize : function (form){
            form.find(':hidden[name=data]').val(JSON.stringify({action : 'search'}));
        },
        
        beforeSubmit : function (fields){
            
            var bSearch = false;
            
            for(var i = 0; i < fields.length; i++){
                
                if($.inArray(fields[i].name, ['data', 'lang']) != -1){
                    continue;
                }
                
                switch(fields[i].name){
                    case 'search[surname]':
                        var txt = cLang == 'en' ? 'surname' : 'фамилия';
                    break;
                    
                    case 'search[bd]':
                        var txt = cLang == 'en' ? 'birthday' : 'день рождения';
                    break;
                }
                
                var val = $.trim(fields[i].value.toLowerCase());
                
                if(val != txt && val.length > 0){
                    bSearch = true;
                }
            }
            
            return bSearch;
        },
        
        success  : function (data){
            
            oResult.html('');
            
            if(data.length < 1){
                oResult.html('<p>' + (cLang == 'en' ? 'Seeking employee is not found' : 'Искомый сотрудник не найден') + '.</p>');
                return;
            }
            
            var txt = '';
            var postfix = '';
            
            if(cLang == 'en'){
                postfix = '_en';
            }
            
            for(var i = 0; i < data.length; i++){
                
                var prop = data[i].properties;
                
                txt += '<p>' + (i+1) + '. <strong>' +
                    prop['surname' + postfix].value + ' ' + prop['name' + postfix].value + ' ' +
                    prop['pat' + postfix].value + '</strong><br />' +
                    (cLang == 'en' ? 'Birthday' : 'День рождения') + ': ' +
                    data[i].timestamp + '<br />' +
                    (cLang == 'en' ? 'Company' : 'Организация') +': ' + prop['company' + postfix].value + 
                '</p>';
            }
            
            oResult.html(txt);
        }
    };
    
    oSearch.ajaxForm(opt).submit().resetForm();
    
});

});})(jQuery);
