$(function()
{
    if (typeof(yapyap) == 'undefined')
    {
        if (typeof(console) != 'undefined' && typeof(console.log) == 'function')
        {
            console.log("Warning: yapyap.lang.js was included without or before yapyap.js");
        }
        yapyap = {};
    }

    if (typeof(yapyap.lang) == 'undefined')
    {
        yapyap.lang =
        {
            _curLang: 'russian',

            getCurrentLanguage: function ()
            {
                return yapyap.lang._curLang;
            },

            _updateCurrentLanguage: function ()
            {
                yapyap.lang._curLang = $.cookie('lang') ? $.cookie('lang') : 'russian';
            },

            _toString: function ()
            {
                if (typeof(this) == 'string')
                {
                    return this;
                }
                switch (yapyap.lang._curLang)
                {
                    case 'english':
                    {
                        return this.en;
                    }
                    case 'russian':
                    {
                        return this.ru;
                    }
                    default:
                    {
                        return this.ru;
                    }
                }
            }
        };

        yapyap.lang.init = function ()
        {
            yapyap.lang._updateCurrentLanguage();

            // TODO@gbezyuk: refactor this method
            for (var i in yapyap.lang)
            {
                var words = yapyap.lang[i];
                if (typeof(words) != 'object')
                {
                    continue;
                }
                for (j in words)
                {
                    var word = words[j];
                    if (typeof(word) != 'object')
                    {
                        continue;
                    }
                    word.toString = yapyap.lang._toString;
                }
            }

            delete yapyap.lang.contacts.fieldnames.toString;

            for (var i in yapyap.lang.contacts.fieldnames)
            {
                var words = yapyap.lang.contacts.fieldnames[i];
                if (typeof(words) != 'object')
                {
                    continue;
                }
                for (j in words)
                {
                    var word = words[j];
                    if (typeof(word) != 'object')
                    {
                        continue;
                    }
                    word.toString = yapyap.lang._toString;
                }
            }
        };

        yapyap.lang.basic =
        {
            welcome:
            {
                ru: 'добро пожаловать',
                en: 'welcome'
            }
        };

        yapyap.lang.contacts =
        {
            fieldnames:
            {
                Phones_Mobile_Private:
                {
                    short:
                    {
                        ru: 'Мобильный',
                        en: 'Mobile'
                    },
                    full:
                    {
                        ru: 'Мобильный (личный)',
                        en: 'Mobile private'
                    }
                },
                Phones_Fixed_Private:
                {
                    short:
                    {
                        ru: 'Стационарный',
                        en: 'Fixed'
                    },
                    full:
                    {
                        ru: 'Стационарный (личный)',
                        en: 'Fixed private'
                    }
                },
                Phones_SIP_Private:
                {
                    short:
                    {
                        ru: 'SIP-телефон',
                        en: 'SIP'
                    },
                    full:
                    {
                        ru: 'SIP-телефон (личный)',
                        en: 'SIP private'
                    }
                },
                Faxes_Private:
                {
                    short:
                    {
                        ru: 'Факс',
                        en: 'Fax'
                    },
                    full:
                    {
                        ru: 'Факс (личный)',
                        en: 'Fax (private)'
                    }
                },
                PagerNumbers_Private:
                {
                    short:
                    {
                        ru: 'Пейджер',
                        en: 'Pager'
                    },
                    full:
                    {
                        ru: 'Пейджер (личный)',
                        en: 'Pager private'
                    }
                },
                Phones_Mobile_Business:
                {
                    short:
                    {
                        ru: 'Мобильный',
                        en: 'Mobile'
                    },
                    full:
                    {
                        ru: 'Мобильный (рабочий)',
                        en: 'Mobile business'
                    }
                },
                Phones_Fixed_Business:
                {
                    short:
                    {
                        ru: 'Стационарный',
                        en: 'Fixed'
                    },
                    full:
                    {
                        ru: 'Стационарный (рабочий)',
                        en: 'Fixed business'
                    }
                },
                Phones_SIP_Business:
                {
                    short:
                    {
                        ru: 'SIP-телефон',
                        en: 'SIP'
                    },
                    full:
                    {
                        ru: 'SIP-телефон (рабочий)',
                        en: 'SIP business'
                    }
                },
                Faxes_Business:
                {
                    short:
                    {
                        ru: 'Факс',
                        en: 'Fax'
                    },
                    full:
                    {
                        ru: 'Факс (рабочий)',
                        en: 'Fax private'
                    }
                },
                PagerNumbers_Business:
                {
                    short:
                    {
                        ru: 'Пейджер',
                        en: 'Pager'
                    },
                    full:
                    {
                        ru: 'Пейджер (рабочий)',
                        en: 'Pager business'
                    }
                },
                Pictures_Private:
                {
                    short:
                    {
                        ru: 'Фотография',
                        en: 'Photo'
                    },
                    full:
                    {
                        ru: 'Фотография (личная)',
                        en: 'Photo'
                    }
                },
                System_AvatarFsId:
                {
                    short:
                    {
                        ru: 'Фотография',
                        en: 'Avatar'
                    },
                    full:
                    {
                        ru: 'Фотография (Аватара)',
                        en: 'Avatar'
                    }
                },
                FullName:
                {
                    short:
                    {
                        ru: 'Имя',
                        en: 'Full name'
                    },
                    full:
                    {
                        ru: 'Имя',
                        en: 'Full name'
                    }
                },
                FirstName:
                {
                    short:
                    {
                        ru: 'Имя',
                        en: 'Name'
                    },
                    full:
                    {
                        ru: 'Имя',
                        en: 'Name'
                    }
                },
                LastName:
                {
                    short:
                    {
                        ru: 'Фамилия',
                        en: 'Lastname'
                    },
                    full:
                    {
                        ru: 'Фамилия',
                        en: 'Lastname'
                    }
                },
                MiddleName:
                {
                    short:
                    {
                        ru: 'Отчество',
                        en: 'Middlename'
                    },
                    full:
                    {
                        ru: 'Отчество',
                        en: 'Middlename'
                    }
                },
                NickName:
                {
                    short:
                    {
                        ru: 'Никнейм',
                        en: 'Nickname'
                    },
                    full:
                    {
                        ru: 'Никнейм',
                        en: 'Nickname'
                    }
                },
                Dates_Birthday:
                {
                    short:
                    {
                        ru: 'Дата рождения',
                        en: 'Birthday'
                    },
                    full:
                    {
                        ru: 'Дата рождения',
                        en: 'Birthday'
                    }
                },
                Dates_Anniversary:
                {
                    short:
                    {
                        ru: 'Годовщина',
                        en: 'Anniversary'
                    },
                    full:
                    {
                        ru: 'Годовщина',
                        en: 'Anniversary'
                    }
                },
                Addresses_Private:
                {
                    short:
                    {
                        ru: 'Домашний адрес',
                        en: 'Address'
                    },
                    full:
                    {
                        ru: 'Домашний адрес',
                        en: 'Address private'
                    }
                },
                Addresses_Private_PostalCode:
                {
                    short:
                    {
                        ru: 'Индекс',
                        en: 'Postal code'
                    },
                    full:
                    {
                        ru: 'Индекс (домашний адрес)',
                        en: 'Postal code (private address)'
                    }
                },
                Addresses_Private_Country:
                {
                    short:
                    {
                        ru: 'Страна',
                        en: 'Country'
                    },
                    full:
                    {
                        ru: 'Страна (домашний адрес)',
                        en: 'Country (private address)'
                    }
                },
                Addresses_Private_City:
                {
                    short:
                    {
                        ru: 'Город',
                        en: 'City'
                    },
                    full:
                    {
                        ru: 'Город (домашний адрес)',
                        en: 'City (private address)'
                    }
                },
                Addresses_Private_State:
                {
                    short:
                    {
                        ru: 'Область',
                        en: 'State'
                    },
                    full:
                    {
                        ru: 'Область (домашний адрес)',
                        en: 'State (private address)'
                    }
                },
                Addresses_Private_Street:
                {
                    short:
                    {
                        ru: 'Улица, дом, корпус, квартира',
                        en: 'Street, house etc'
                    },
                    full:
                    {
                        ru: 'Улица, дом, корпус, квартира (домашний адрес)',
                        en: 'Street, house etc (private address)'
                    }
                },
                Addresses_Business:
                {
                    short:
                    {
                        ru: 'Рабочий адрес',
                        en: 'Business address'
                    },
                    full:
                    {
                        ru: 'Рабочий адрес',
                        en: 'Business address'
                    }
                },
                Addresses_Business_PostalCode:
                {
                    short:
                    {
                        ru: 'Индекс',
                        en: 'Postal code'
                    },
                    full:
                    {
                        ru: 'Индекс (рабочий адрес)',
                        en: 'Postal code (business address)'
                    }
                },
                Addresses_Business_Country:
                {
                    short:
                    {
                        ru: 'Страна',
                        en: 'Country'
                    },
                    full:
                    {
                        ru: 'Страна (рабочий адрес)',
                        en: 'Country (business address)'
                    }
                },
                Addresses_Business_City:
                {
                    short:
                    {
                        ru: 'Город',
                        en: 'City'
                    },
                    full:
                    {
                        ru: 'Город (рабочий адрес)',
                        en: 'City (business address)'
                    }
                },
                Addresses_Business_State:
                {
                    short:
                    {
                        ru: 'Область',
                        en: 'State'
                    },
                    full:
                    {
                        ru: 'Область (рабочий адрес)',
                        en: 'State (business address)'
                    }
                },
                Addresses_Business_Street:
                {
                    short:
                    {
                        ru: 'Улица, дом, корпус, квартира',
                        en: 'Street, house etc'
                    },
                    full:
                    {
                        ru: 'Улица, дом, корпус, квартира (рабочий адрес)',
                        en: 'Street, house etc (business address)'
                    }
                },
                Addresses_Other:
                {
                    short:
                    {
                        ru: 'Дополнительный адрес',
                        en: 'Other address'
                    },
                    full:
                    {
                        ru: 'Дополнительный адрес',
                        en: 'Other address'
                    }
                },
                Addresses_Other_PostalCode:
                {
                    short:
                    {
                        ru: 'Индекс',
                        en: 'Postal code'
                    },
                    full:
                    {
                        ru: 'Индекс (дополнительный адрес)',
                        en: 'Postal code (other address)'
                    }
                },
                Addresses_Other_Country:
                {
                    short:
                    {
                        ru: 'Страна',
                        en: 'Country'
                    },
                    full:
                    {
                        ru: 'Страна (дополнительный адрес)',
                        en: 'Country (other address)'
                    }
                },
                Addresses_Other_City:
                {
                    short:
                    {
                        ru: 'Город',
                        en: 'City'
                    },
                    full:
                    {
                        ru: 'Город (дополнительный адрес)',
                        en: 'City (other address)'
                    }
                },
                Addresses_Other_State:
                {
                    short:
                    {
                        ru: 'Область',
                        en: 'State'
                    },
                    full:
                    {
                        ru: 'Область (дополнительный адрес)',
                        en: 'State (other address)'
                    }
                },
                Addresses_Other_Street:
                {
                    short:
                    {
                        ru: 'Улица, дом, корпус, квартира',
                        en: 'Street, house etc'
                    },
                    full:
                    {
                        ru: 'Улица, дом, корпус, квартира (дополнительный адрес)',
                        en: 'Street, house etc (other address)'
                    }
                },
                Emails_Private:
                {
                    short:
                    {
                        ru: 'E-mail',
                        en: 'E-mail'
                    },
                    full:
                    {
                        ru: 'E-mail (личный)',
                        en: 'E-mail (private)'
                    }
                },
                WebPages_Private:
                {
                    short:
                    {
                        ru: 'Веб-сайт',
                        en: 'Website'
                    },
                    full:
                    {
                        ru: 'Веб-сайт (личный)',
                        en: 'Website (private)'
                    }
                },
                IMAddresses_Private_XMPP:
                {
                    short:
                    {
                        ru: 'XMPP',
                        en: 'XMPP'
                    },
                    full:
                    {
                        ru: 'XMPP (личный)',
                        en: 'XMPP (private)'
                    }
                },
                IMAddresses_Private_ICQ:
                {
                    short:
                    {
                        ru: 'ICQ',
                        en: 'ICQ'
                    },
                    full:
                    {
                        ru: 'ICQ (личный)',
                        en: 'ICQ (private)'
                    }
                },
                IMAddresses_Private_Skype:
                {
                    short:
                    {
                        ru: 'Skype',
                        en: 'Skype'
                    },
                    full:
                    {
                        ru: 'Skype (личный)',
                        en: 'Skype (private)'
                    }
                },
                IMAddresses_Private_LiveMessenger:
                {
                    short:
                    {
                        ru: 'MSN',
                        en: 'MSN'
                    },
                    full:
                    {
                        ru: 'MSN (личный)',
                        en: 'MSN (private)'
                    }
                },
                IMAddresses_Private_Yahoo:
                {
                    short:
                    {
                        ru: 'Yahoo',
                        en: 'Yahoo'
                    },
                    full:
                    {
                        ru: 'Yahoo (личный)',
                        en: 'Yahoo (private)'
                    }
                },
                Emails_Business:
                {
                    short:
                    {
                        ru: 'E-mail',
                        en: 'E-mail'
                    },
                    full:
                    {
                        ru: 'E-mail (рабочий)',
                        en: 'E-mail (business)'
                    }
                },
                WebPages_Business:
                {
                    short:
                    {
                        ru: 'Веб-сайт',
                        en: 'Website'
                    },
                    full:
                    {
                        ru: 'Веб-сайт (рабочий)',
                        en: 'Веб-сайт (business)'
                    }
                },
                IMAddresses_Business_XMPP:
                {
                    short:
                    {
                        ru: 'XMPP',
                        en: 'XMPP'
                    },
                    full:
                    {
                        ru: 'XMPP (рабочий)',
                        en: 'XMPP (business)'
                    }
                },
                IMAddresses_Business_ICQ:
                {
                    short:
                    {
                        ru: 'ICQ',
                        en: 'ICQ'
                    },
                    full:
                    {
                        ru: 'ICQ (рабочий)',
                        en: 'ICQ (business)'
                    }
                },
                IMAddresses_Business_Skype:
                {
                    short:
                    {
                        ru: 'Skype',
                        en: 'Skype'
                    },
                    full:
                    {
                        ru: 'Skype (рабочий)',
                        en: 'Skype (business)'
                    }
                },
                IMAddresses_Business_LiveMessenger:
                {
                    short:
                    {
                        ru: 'MSN',
                        en: 'MSN'
                    },
                    full:
                    {
                        ru: 'MSN (рабочий)',
                        en: 'MSN (business)'
                    }
                },
                IMAddresses_Business_Yahoo:
                {
                    short:
                    {
                        ru: 'Yahoo',
                        en: 'Yahoo'
                    },
                    full:
                    {
                        ru: 'Yahoo (рабочий)',
                        en: 'Yahoo (business)'
                    }
                },
                Pictures_Business:
                {
                    short:
                    {
                        ru: 'Картинка',
                        en: 'Picture'
                    },
                    full:
                    {
                        ru: 'Картинка',
                        en: 'Picture (business)'
                    }
                },
                CompanyName:
                {
                    short:
                    {
                        ru: 'Компания',
                        en: 'Company'
                    },
                    full:
                    {
                        ru: 'Компания',
                        en: 'Company'
                    }
                },
                Department:
                {
                    short:
                    {
                        ru: 'Департамент',
                        en: 'Department'
                    },
                    full:
                    {
                        ru: 'Департамент',
                        en: 'Department'
                    }
                },
                BusinessRole:
                {
                    short:
                    {
                        ru: 'Род деятельности',
                        en: 'Business role'
                    },
                    full:
                    {
                        ru: 'Род деятельности',
                        en: 'Business role'
                    }
                },
                Business_Role:
                {
                    short:
                    {
                        ru: 'Род деятельности',
                        en: 'Business role'
                    },
                    full:
                    {
                        ru: 'Род деятельности',
                        en: 'Business role'
                    }
                },
                JobTitle:
                {
                    short:
                    {
                        ru: 'Должность',
                        en: 'Job title'
                    },
                    full:
                    {
                        ru: 'Должность',
                        en: 'Job title'
                    }
                },
                Description:
                {
                    short:
                    {
                        ru: 'Описание',
                        en: 'Description'
                    },
                    full:
                    {
                        ru: 'Описание',
                        en: 'Description'
                    }
                },
                Notes:
                {
                    short:
                    {
                        ru: 'Заметки',
                        en: 'Notes'
                    },
                    full:
                    {
                        ru: 'Заметки',
                        en: 'Notes (business)'
                    }
                },
                Groups:
                {
                    short:
                    {
                        ru: 'Группы',
                        en: 'Groups'
                    },
                    full:
                    {
                        ru: 'Группы',
                        en: 'Groups (business)'
                    }
                },
                System_YotaUID:
                {
                    short:
                    {
                        ru: 'Связь',
                        en: 'Link'
                    },
                    full:
                    {
                        ru: 'Связан с пользователем',
                        en: 'Linked to user'
                    }
                }
            }
        };

        yapyap.lang.init();
    }

});