    /**
     * Адаптер для работы с iframe
     * @author ilyabazhenov
     */
    var iframeAdapter = {

        /**
         * Метод ищет и возвращает элемент, в зависимости от того, где мы находимся (в основном документе или в iframe)
         * Селекторы нужно передвать в формате jquery
         * @param selector
         * @return JqueryObject
         * @author ilyabazhenov
         */
        getElement : function (selector) {
            if (iframeAdapter.checkIframe()) {
                var element = $('#contentFrame').contents().find(selector);
                //если нет во фрейме, ищем во всем документе.  
                if ($(element).length == 0) { 
                   return window.top.$(selector) 
                }
                return element;
            } 
            else return $(selector);
        },

        /**
         * Метод, являющийся некоторой прослойкой для перехода на другую страницу.
         * В случае, если мы находимся в iframe, то он перезагружает iframe с заданым url,
         * в обратном случае, просто загружает страницу с переданным url
         * @param url
         * @author ilyabazhenov
         */
        goTo : function(url) {
            if (iframeAdapter.checkIframe())
            {
                var add_str = new String();
                if (url.indexOf("?") == -1) add_str = '?'; else add_str = '&';
                //window.top.document.getElementById('contentFrame').contentDocument.location.href = url + add_str + 'iframe=true';
                //alert(url + add_str + 'iframe=true');
                //console.log(url + add_str + 'iframe=true'); return false;
                Pleer.frameLoad(url + add_str + 'iframe=true');
            }
            else
            {
                window.location.href = url;
            }
            return false;
        },

        /**
         * Метод, вызывает метод объекта, переданный в параметре object с переданными параметрами param
         * Перед вызовом происходит проверка, где сейчас мы находимся - в iframe или нет и подставляется нужный контекст
         * ВАЖНО! Не вызывайте у класса Auth метод Logout, т.к при выходе нужно перезагрузить все окно
         * @param object
         * @param param
         * @author ilyabazhenov
         */
        run : function (object, param)
        {
            
            
        },

        /**
         * Метод, возвращающий true, если мы уже в iframe
         * false - в обратном случае
         * @return bool
         * @author ilyabazhenov
         */
        checkIframe : function () {
            if (window.top.document.getElementById('contentFrame'))
            {
                return true;
            }
            return false;
        },
        
        /**
         * Изменяет размеры iframe
         * @return bool
         * @author r.voloboev
         */
        resizeIframe : function (x,y) {
            var iframe = window.top.$('#contentFrame');
            if (iframe) {                                
                iframe.width(iframe.width() + x);                  
                iframe.height(iframe.height() + y);                                
                return true;
            }
            return false;
        },
        /**
         * Смещает окно до элемента
         * @return bool
         * @author r.voloboev
         */
    scrollTo : function (selector, speed) {
        if (typeof(selector) == 'object') {
            var offset = selector.offset();
        } else {
            var offset = this.getElement(selector).offset();
        }            
        if (iframeAdapter.checkIframe()) {

            var iframeOffset = window.top.$('#contentFrame').offset();
            window.top.scroll( 0,parseInt(offset.top + iframeOffset.top));                
        }
        else {
            if(jQuery().scrollTo) {
                $.scrollTo(selector, speed); 
            } else {                     
                window.top.scroll( 0,parseInt(offset.top));
            }  
        } 
        return true;
    },
    /*
     * Вешает событие через JQuery.live
     * @param mixed selector
     * @param string event
     * @param function func
     * @author r.voloboev
     */
    live : function (selector, event, func){
        if (iframeAdapter.checkIframe()) {
               $(selector, window.top.$('#contentFrame')).live(event, func);
        }
        else {
            $(selector).live(event, func);
       }
       return true;
    }
        
    };
