var _listeners = [];
var _likeSID = '';
var _likeCID = '';
var _likeURL = '';
var _likeDL = '';
var _likeRoot = 'partner.like.com';
var _likeEnabled = true;

function _cancelBubble(_e) {
    if (!_e) return;

    if (_e.stopPropagation) {

        _e.stopPropagation();
        _e.preventDefault();

    } else if (typeof _e.cancelBubble != undefined) {

        _e.cancelBubble = true;
        _e.returnValue = false;

    } else {

        return false;
        _e = null;

    }    
}

function _observe(_element, _type, _fn) {
    if (_element.addEventListener) {
        _listeners.push([_element, _type, _fn]);

        _element.addEventListener(_type, _fn, false);
    } else if (_element.attachEvent) {
        _listeners.push([_element, _type, _fn]);

        _element.attachEvent('on' + _type, _fn);
    }
}

_observe(window, 'unload', function() {
        if (!_listeners) return;
        for (var _ii = 0; _ii < _listeners.length; _ii++) {
            var _element = _listeners[_ii][0];
            var _type = _listeners[_ii][1];
            var _fn = _listeners[_ii][2];

            if (_element.removeEventListener) {
                _element.removeEventListener(_type, _fn, false);
            } else {
                _element.detachEvent('on' + _type, _fn);
            }

            _element = null;
        }
    }
);

function _waitfor(_drawerButton) {
    if (!_drawerButton.complete) {
        var _imgwait = setTimeout(function() {
            _waitfor(_drawerButton)
        }, 250);

    } else {
        if (_drawerButton.width > 1 && _drawerButton.height > 1) {
            var _parentElm = document.getElementById('slideshow-container');
            _parentElm.style.position = 'relative';

            var _callbackIFrameElm = document.createElement('iframe');
            _callbackIFrameElm.style.display = 'none';
            _parentElm.appendChild(_callbackIFrameElm);

            var _absImgElm = document.createElement('img');
            _absImgElm.src = _drawerButton.src;
            _absImgElm.width = _drawerButton.width;
            _absImgElm.height = _drawerButton.height;

            with (_absImgElm.style) {
                position = 'absolute';
                top = '5px';
                right = '-35px';
                cursor = 'pointer';
            }
            _parentElm.appendChild(_absImgElm);

            var _iframeContainerElm = document.createElement('div');
            _iframeContainerElm.align = 'right';

            with (_iframeContainerElm.style) {
                position = 'absolute';
                top = '5px';
                right = '-273px';
                background = 'none';
                border = 'none';
                margin = '0px';
                padding = '0px';
                display = 'none';
                width = '273px';
                height = '575px';
                textAlign = 'right';
                border = '1px solid #9b9a9a';
                backgroundColor = '#afafaf';
            }
            _parentElm.appendChild(_iframeContainerElm);

            var _closeBtnElm = document.createElement('img');
            _closeBtnElm.src = 'http://' + _likeRoot + '/pictures/likesense/close.gif';
            _closeBtnElm.style.cursor = 'pointer';
            _iframeContainerElm.appendChild(_closeBtnElm);


            var _absIFrameElm = document.createElement('iframe');
            _absIFrameElm.src = 'http://' + _likeRoot + '/ls2/drawerframe?SID=' + _likeSID + '&CID=' + _likeCID + '&url=' + _likeURL + '&dl=' + _likeDL + '&r=' + Math.random();
            _absIFrameElm.id = 'likeDrawerFrame';

            with (_absIFrameElm) {
                frameBorder = 0;
                scrolling = 'no';
                width = 273;
                height = 550;
                marginWidth = 0;
                marginHeight = 0;
                topMargin = 0;
                leftMargin = 0;

                with (style) {
                    background = 'none';
                    border = 'none';
                    margin = '0px';
                    padding = '0px';
                    width = '273px';
                    height = '550px';
                }
            }
            _iframeContainerElm.appendChild(_absIFrameElm);

            _observe(_absImgElm, 'mouseover', function(_e) {
                    if( _likeEnabled ) {
                        _absImgElm.style.display = 'none';
                        _iframeContainerElm.style.display = 'block';

                        _callbackIFrameElm.src = 'http://' + _likeRoot + '/ls2/mouseover?SID=' + _likeSID + '&CID=' + _likeCID + '&url=' + _likeURL + '&dl=' + _likeDL + '&r=' + Math.random();
                    }
                }
            );

            _observe(_absImgElm, 'click', function(_e) {
                    _cancelBubble(_e);

                    _absImgElm.style.display = 'none';
                    _iframeContainerElm.style.display = 'block';

                    _callbackIFrameElm.src = 'http://' + _likeRoot + '/ls2/mouseover?SID=' + _likeSID + '&CID=' + _likeCID + '&url=' + _likeURL + '&dl=' + _likeDL + '&r=' + Math.random();
                }
            );

            _observe(_closeBtnElm, 'click', function(_e) {
                    _likeEnabled = false;

                    _cancelBubble(_e);

                    setTimeout(function() {
                            _likeEnabled = true;

                        }, 1000
                    );

                    _absImgElm.style.display = 'block';
                    _iframeContainerElm.style.display = 'none';
                }
            );
        }
    }
}

setTimeout(function() {
        if (typeof likeParams == 'undefined') {
            return;
        }

        _likeSID = likeParams[0];
        _likeCID = likeParams[1];

        if (likeParams.length > 2) {
            _likeRoot = likeParams[2];
        }

        _likeURL = escape(location.href);
        _likeDL = _likeURL.replace(/show_my_gallery2/gi, 'xmlproxy');

        var _drawerButton = new Image();
        _drawerButton.src = 'http://' + _likeRoot + '/ls2/drawerbutton?SID=' + _likeSID + '&CID=' + _likeCID + '&url=' + _likeURL + '&dl=' + _likeDL + '&r=' + Math.random();

        _waitfor(_drawerButton);

    }, 1000
);
