	
	function TabChanger(buttons, activeClassName, hiddenClassName, tabs, tabsPostfix) {
		if (!activeClassName) activeClassName = 'active';
		if (!hiddenClassName) hiddenClassName = 'hidden';
		if (!tabsPostfix) tabsPostfix = 'Tab';
		this.properties = { buttons: buttons, activeClassName: activeClassName, 
						    hiddenClassName: hiddenClassName, tabs: tabs, 
						    tabsPostfix:tabsPostfix };
		this.init();
	}
	
	TabChanger.prototype.init = function(){
		var TC = this.properties;
		$(function(){
			TC.buttons.find('a').click(function(){
				TC.buttons.removeClass(TC.activeClassName);
				$(this).parent().addClass(TC.activeClassName);
				TC.tabs.addClass(TC.hiddenClassName);
				$('#'+$(this).attr('id')+TC.tabsPostfix).removeClass(TC.hiddenClassName);
				return false;
			});
		});
	}

    function bindRefreshCaptcha(linkId, imageId) {
        var link = $('#'+linkId);
        var image = $('#'+imageId);
        if (link.size() * image.size() > 0) {
            link.click(function(){
                if (!image.data('path'))
                    image.data('path', image.attr('src'));
                image.attr('src', image.data('path')+'?'+Math.random()*10);
                return false;
            });
        }
    }

    function bindConfirmRedirect(elemId, message, link) {
    	
        $('#'+elemId).click(function(){
            if (confirm(message)) window.location = link;
            return false;
        });
    }

    function doProfileContainerRefresh(link, loadingSelector, contentSelector){
        $(loadingSelector).removeClass('hidden');
        var commentsContent = $(contentSelector);
        commentsContent.addClass('hidden');
        $.ajax({
            type: "GET",
            url: link,
            success: function(msg){
                $(loadingSelector).addClass('hidden');
                commentsContent.removeClass('hidden');
                commentsContent.html(msg);
                var pages = $(contentSelector+' .paginator li');
                var pageLinks = pages.find('a');
                var active = pages.filter('.active');

                var leftPages = 2;
                var rightPages = 2;
                var leftAdditionalPages = 0;
                pages.hide();
                active.show();
                var previous = active;
                for (i=1; i<=leftPages; i++) {
                    previous = previous.prev();
                    if (previous.size() > 0) previous.show();
                    else rightPages++;
                }
                var next = active;
                for (i=1; i<=rightPages; i++) {
                    next = next.next();
                    if (next.size() > 0) next.show();
                    else leftAdditionalPages++;
                }
                for (i=1; i<=leftAdditionalPages; i++) {
                    previous = previous.prev();
                    if (previous.size() > 0) previous.show();
                }

                pageLinks.click(function(){
                    doProfileContainerRefresh($(this).attr('href'), loadingSelector, contentSelector);
                    return false;
                });
            }
        });
    }

    function initToFavorites(urlRoot, curId, favTags) {
        $('.add_to_favorites a.close').click(function() {
            $(this).parent().hide();
            return false;
        })

        $("#fav_tags").autocomplete(favTags, {
            multiple: true,
            mustMatch: false,
            autoFill: true
        });


        $('.to_favorites').click(function(){
            var el = $('.add_to_favorites');
            if (el.is(':visible')) {
                el.hide();
            } else {
                var l = $(this).position().left;
                var t = $(this).position().top;
                el.css('left', l);
                el.css('top', t+25);
                $('.send_friend').hide();
                el.show();
            }
            return false;
        });


        $('.add_to_favorites #add_to_fav_form').submit(function(){
            var tags = $('#fav_tags').val();
            if (tags.length > 0) {
                var all = $('.add_to_favorites *');
                var message = $('.add_to_favorites .send_message');
                all.hide();
                message.text('Отправка...').show();
                $.ajax({
                    type: "POST",
                    url: urlRoot+"favorite/add/",
                    data: {id: curId, folder: tags},
                    success: function(msg){
                        var text = '';
                        switch(msg)
                        {
                            case 'ok':
                                text = 'Готово.';
                            break;
                            default:
                                text = 'Ошибка.';
                            break;
                        };
                        message.text(text);
                        $('.add_to_favorites .close, .add_to_favorites .close, .add_to_favorites .close *').show();
                    }
                });
            };
            return false;
        });

    }

    function initSendToFriend(urlRoot, curId) {
        /* Send to friend popup START */
        $('.send_friend a.close').click(function() {
            $(this).parent().hide();
            return false;
        })

        $('.send_to_friend').click(function(){
            var el = $('.send_friend');
            if (el.is(':visible')) {
                el.hide();
            } else {
                var l = $(this).position().left;
                var t = $(this).position().top;
                el.css('left', l);
                el.css('top', t+25);
                $('.add_to_favorites').hide();
                el.show();
            }
            return false;
        });
        /* Send to friend popup END */

        $('.send_friend #send_link_form').submit(function(){
            var email = $('#send_email').val();
            if (email.length > 0) {
                var all = $('.send_friend *');
                var message = $('.send_friend .send_message');
                all.hide();
                message.text('Отправка...').show();
                $.ajax({
                    type: "POST",
                    url: urlRoot+"contentobjects/sendtofriend/id/"+curId+"/email/"+email,
                    success: function(msg){
                        var text = '';
                        switch(msg)
                        {
                            case 'ok':
                            text = 'Готово.';
                        break;
                            case 'wrong_login':
                            text = 'Ошибка. Аторизируйтесь.';
                        break;
                            case 'wrong_email':
                            text = 'Ошибка. Неверный формат адреса.';
                        break;
                            default:
                            text = 'Ошибка.';
                        };
                        message.text(text);
                        $('.send_friend .close, .send_friend .close, .send_friend .close *').show();
                        $('.refresh_message, .refresh_message *').show();
                    }
                });
            };
            return false;
        });

        $('.refresh_message, .refresh_message a').click(function(){
            $('.send_friend *').show();
            $('.send_friend .send_message, .send_friend .refresh_message').hide();
            return false;
        });
    }

    function initPostComment() {
        $('#postComment').click(function(){
            return($('#commentText').val().length > 0);
        });
    }

    function initFontChange() {
        function uncheck_fonts(){
            $('.one').removeClass('active');
            $('.two').removeClass('active');
            $('.three').removeClass('active');
        }

        $('.one').click(function(){
            $('.text_page p,.text_page p strong, .text_page li, .text_page p b, .profile ul li, .profile ul li span, .profile ul li a').css('font-size', '14px');
            $('.text_page p,.text_page p strong, .text_page li, .text_page p b').css('line-height', '1.2em');
            $('.text_page td').css('font-size', '12px');
            $('.text_page h1 a').css('font-size', '24px');
            $('.text_page h2 a').css('font-size', '22px');
            $('.text_page h3 a').css('font-size', '20px');
            $('.text_page h4 a').css('font-size', '18px');
            uncheck_fonts();
            $(this).addClass('active');
            return false;
        })

        $('.two').click(function(){
            $('.text_page p,.text_page p strong, .text_page li, .text_page p b, .profile ul li, .profile ul li span, .profile ul li a').css('font-size', '16px');
            $('.text_page p,.text_page p strong, .text_page li, .text_page p b').css('line-height', '1.2em');
            $('.text_page td').css('font-size', '14px');
            $('.text_page h1 a').css('font-size', '26px');
            $('.text_page h2 a').css('font-size', '24px');
            $('.text_page h3 a').css('font-size', '22px');
            $('.text_page h4 a').css('font-size', '20px');
            uncheck_fonts();
            $(this).addClass('active');
            return false;
        })

        $('.three').click(function(){
            $('.text_page p,.text_page p strong, .text_page li, .text_page p b, .profile ul li, .profile ul li span, .profile ul li a').css('font-size', '18px');
            $('.text_page p,.text_page p strong, .text_page li, .text_page p b').css('line-height', '1.2em');
            $('.text_page td').css('font-size', '16px');
            $('.text_page h1 a').css('font-size', '28px');
            $('.text_page h2 a').css('font-size', '26px');
            $('.text_page h3 a').css('font-size', '24px');
            $('.text_page h4 a').css('font-size', '22px');
            uncheck_fonts();
            $(this).addClass('active');
            return false;
        })
    }

    $(function(){
        /* Print link START */
        $('.print_link').click(function(){
            window.print();
            return false;
        });
        /* Print link END */

        /* Medicine Popup menu START */
        $('.open_others').click(function(){
			var el = $(this).parent().find('.others');
			if (el.css('display') == 'none') {
					$('.others').each(function(){
						$(this).hide();
						})
					el.width(el.parent().width());
					el.show();
					$(this).parent().css('z-index', '2');
					$(this).parent().find('.open_others, a').each(function() {$(this).css('z-index', '10');})
					el.css('z-index', '9');
				} else {
					el.hide();
					$(this).parent().css('z-index', '1');
					$(this).parent().find('.open_others, a').each(function() {$(this).css('z-index', '2');})
					el.css('z-index', '1');
				}
            $('.breadcrumbs .others').each(function() {
                $(this).width($(this).width()-5);
            })
		});

        function makeUnselectable(elem) {
            if (typeof(elem) == 'string')
                elem = document.getElementById(elem);
            if (elem) {
                elem.onselectstart = function() { return false; };
                elem.style.MozUserSelect = "none";
                elem.style.KhtmlUserSelect = "none";
                elem.unselectable = "on";
            }
        }
        makeUnselectable('noselect')

		/* Medicine Popup menu END */

    });

    /* Interest and Geography selection START */
    function bindOneLevelVectorSelection(listContainerId, selectAllId) {
        var interestButtons = $('#'+listContainerId+' li[id!="'+selectAllId+'"]');
        if (interestButtons.size() > 0) {
            var interestInputs = $('#'+listContainerId+' li input');
            var allInterestsButton = $('#'+selectAllId);
            interestButtons.click(function(){
                var isActive = $(this).hasClass('active');
                if (isActive) {
                    $(this).find('input').val('0');
                    $(this).removeClass('active');
                } else {
                    $(this).find('input').val('1');
                    $(this).addClass('active');
                }
                if (interestButtons.filter('[class=""]').size() > 0) allInterestsButton.removeClass('active');
                else allInterestsButton.addClass('active');
                return false;
            });
            if (interestButtons.filter('[class=""]').size() == 0) allInterestsButton.addClass('active');
            allInterestsButton.click(function(){
                if (interestButtons.filter('[class=""]').size() > 0) {
                    interestButtons.addClass('active');
                    $(this).addClass('active');
                    interestInputs.val('1');
                } else {
                    interestButtons.removeClass('active');
                    $(this).removeClass('active');
                    interestInputs.val('0');
                }
                return false;
            });
        }
    }
    /* Interest and Geography selection END */

  /* left menu 
  function lastLi(){
			$("#left_menu li").each(function(){
				if (!($(this).find('ul:first').size() > 0)) {
					$(this).find('img:first').attr('src','{templatesRoot}images/minus.gif');
					}
				})
		};


	function openParents(el){
		if (el.find('ul:first').size() > 0){
			el.find('ul:first').show();
		}
		for (i=5; i>=0; i--){
			switch(el.parent().get(0).tagName)
			{
			case 'UL': {
				el.parent().show();
				el = el.parent();
				break;
			}
			case 'LI': {
				el.parent().addClass('active');
				el.parent().find('img:first').attr("src","{templatesRoot}images/arrow_down.gif");
				lastLi();
				el.show();
				el = el.parent();
				break;
				}
			}
			
			
		}
	}
	
		$(function(){
		$("#left_menu li ul").hide();
		$("#left_menu li").each(function(){
			if ($(this).hasClass('active')) {
				openParents($(this));
			}
			
		});
		
		
			$("#left_menu li a").click(function () { 
			 	if ($(this).hasClass('mname')) {
				} else {
					if ($(this).parent().hasClass('active')) {
						if ($(this).parent().find('ul:first').css('display')=='none'){
							$(this).parent().find('ul:first').show();
							$(this).parent().find('img:first').attr("src","{templatesRoot}images/arrow_down.gif");
							lastLi();
						} else {
							$(this).parent().removeClass('active');
							$(this).parent().find('img:first').attr("src","{templatesRoot}images/arrow_up.gif");
							lastLi();
							$(this).parent().find('ul:first').hide();
						}
					} else { if ($(this).parent().find('ul').size() > 0){
						$(this).parent().addClass('active');
						$(this).parent().find('img:first').attr("src","{templatesRoot}images/arrow_down.gif");
						lastLi();
						$(this).parent().find('ul:first').show();
						}
					}
					}
			     });
			}
		);*/

		
$(document).ready(function(){
	if($.browser.opera) $('body').addClass('opera');
});