var j = jQuery.noConflict();

var count = 0;


var Profiler={flickr:function(){j('.flickr .image').bind('click',function(){var target={'src':j(this).attr('rel'),'href':j(this).attr('href')}
Flickr(target);return false;});},construct:function(){var Layer=new Windows();Layer.close('.close');Layer.open('.user-profile',function(){var id=j(Layer.openElement).attr('rel');j.ajax({url:'/request/profile/view/'+id+'/window/',cache:false,success:function(content){Layer.init(content);}});},function(){j('.wpublic .list dt').bind('click',function(){j(this).toggleClass('active').next().slideToggle(300);});Scroller('.flickr');Profiler.flickr();});j('.spy .email').click(function(){return false;})
j('.rss').attr('target','_blank');j('.spy .email').click(function(){var type=j(this).attr('rel');var self=this;j.getJSON('/poradnik/sledzenieprzezemail/'+type,function(data){if(data.result==0)
alert('Musisz się zalogować aby śledzić dyskusję przez e-mail');else
j(self).toggleClass('follow').find('em').toggle();})
return false;})}};

var imagebox = {
    show: function() {
        imagebox.display(j(this).attr('href'));
        return false;
    },

    open: function(target) {
        imagebox.display(target);
    },
    
    display: function(target) {
        var source = {src: target, 'title': 'Kliknij aby zamknąć zdjęcie.'};
        var content = j('<div id="image_window" class="wimage"></div>');
        content.append('<div class="content"><a class="image" href="" title=""></a></div><div class="close"><a class="terminate" href="#"></a></div>');
        var values = {'height' : j('body').height(), 'width'  : j('body').width()};
        j('<div id="image_overlay"></div>').animate({opacity: 0}, 0).prependTo('body').css(values).animate({opacity: 0.6}, 180, function() {
            j(content).animate({opacity: 0}, 0).prependTo('body').animate({opacity: 1}, 260, function() {
                new Loader(source, '#image_window');
                imagebox.bind();
            }).center();
        });
        return false;
    },
    
    addition: function() {
        var target = this;
        jQuery.ajax({
            url: j(target).attr('href'),
            cache: false,
            success: function(content){
                j('<div id="overlay"></div>').animate({opacity: 0}, 0).prependTo('body').css({'width': j('body').width(), 'height': j('body').height()}).animate({'opacity': 0.6}, 180, function() {
                    j(content).animate({opacity: 0}, 0).prependTo('body').animate({opacity: 1}, 260, function() {
                        Cufon.replace('#guide h1', {fontFamily: 'GlasgowPl RR ExtraBold'});
                        Cufon.replace('#guide h3 span', {fontFamily: 'GlasgowPl RR Light'});
                        imagebox.bind();                    
                    }).center();
                });
            }
        });
        return false;
    },
    
    flash: function(target) {
        jQuery.ajax({
            url: j(target).attr('href'),
            cache: false,
            success: function(content){
                j('body').append(content);
                var w = {'width': j('#windowsize').width(), 'height': j('#windowsize').height()};
                j('#image_overlay').animate({opacity: 0}, 0).css({'width': j('body').width(), 'height': j('body').height()}).animate({'opacity': 0.6}, 180, function() {
                    j('#image_window').css({'marginLeft': - (w.width / 2), 'width': w.width, 'height': w.height, 'visibility': 'visible'}).center();
                    imagebox.bind();                    
                });
            }
        });
        return false;
    },

    bind: function() {
        j('#image_overlay, #image_window .close, #image_window .image, #window .terminate, #overlay').click(imagebox.hide);
    },
    
    hide: function() {
        j('#image_window, #window').fadeOut('120', function() {
            j('#image_overlay, #overlay').fadeOut('60', function() {
                j('#image_window, #image_overlay, #overlay, #window').remove();
            });
        });
        return false;
    }
}

var Librarian = {
    Start: function() {
        j('img').addClass('library-image');
        this.Images();
        this.Selection();
        this.Topic();
        this.Header();
    },
    
    Video: function(value) {
        if (typeof logged === 'undefined') {
            alert('Musisz się zalogować aby oznaczyć materiał jako obejrzany.');
        } else {
            j.get('/obejrzany/' + value);
        }
        return false;
    },
    
    Flash: function(value) {
        j.get('/request/flash/add/' + value + '/json/');
    },

    Selection: function() {
        var range = true;
        var time = 0;
        var fade = 500;
        j(cloud.content.handler).mouseup(function(e) {
            function removeThumbler() {
                clearTimeout(time);
                j('.cloud-text').hide().remove();
            }
            removeThumbler();
            j(cloud.content.handler + ':not(.cloud)').bind('click', removeThumbler);
            var userSelection;
            var selection = '';
            if (window.getSelection) {
                userSelection = window.getSelection();
                if (userSelection.getRangeAt) {
                    try {
                        selection = userSelection.getRangeAt(0);
                    } catch(e) {}
                } else {
                    userSelection = document.selection.createRange();
                    userSelection.setStart(userSelection.anchorNode,userSelection.anchorOffset);
                    userSelection.setEnd(userSelection.focusNode,userSelection.focusOffset);
                    selection = userSelection;
                }
            } else if (document.selection && document.selection.createRange) {
                var range = document.selection.createRange();
                selection = range.text;
            }
            selection = '' + selection;
            // alert(alert(selection.length));
            if (selection.length > 3) {
                var date = new Date();
                var id = 'selection' + date.getTime();
                var css = {
                    'top' : e.pageY + 15,
                    'left': e.pageX + 15
                }
                j(cloud.content.structure).appendTo('body').css(css).attr('id', id).click(function() {
                    var self = j(this);
                    var data = 'data[Snippet][source_section]=tutorials&data[Snippet][source_id]='
                            + encodeURIComponent(tutorial_id)
                            + '&data[Snippet][contents]='
                            + encodeURIComponent(selection);
                    var url = "/snippets/addToLibrary/";
                    j.post(url, data, function(data) {
                        self.addClass('cloud-text-added');
                        time = setTimeout(function() {
                            self.hide();
                        }, 600);
                    }, "text");
                });
            }

            time = setTimeout(function() {
                j('#' + id).hide();
            }, 30000);
        });
    },

    Images: function() {
        var range = true;
        var time = 0;
        var fade = 500;
        j(cloud.image.handler).not('.disabled').mouseover(function() {
            var rel = j(this).attr('rel');
            var thumbler = 'thumbler' + rel;
            if (document.getElementById(thumbler)) {
                var thumbler = j('#' + thumbler);
                if (!(thumbler.hasClass('cloud-image-added')))
                    thumbler.show();
            } else {
                j(cloud.image.structure).insertAfter(this).attr('id', thumbler);
                var thumbler = j('#' + thumbler);
                thumbler.hover(
                    function() {
                        range = false;
                    }, function() {
                        range = true;
                    }
                );
                thumbler.click(function() {
                    var self = j(this);
                    self.addClass('cloud-image-added');
                    j.get('/illustrations/addToLibrary/' + rel, function() {
                        time = setTimeout(function() {
                            self.hide();
                        }, 600);
                    });
                    return false;
                })
            }
        });
        j(cloud.image.handler).mouseout(function() {
            var rel = j(this).attr('rel');
            time = setTimeout(function() {
                if (range) {
                    var thumbler = 'thumbler' + rel;
                    j('#' + thumbler).hide();
                }
            }, 600);
        });
    },
    
    Header: function() {
        var range = true;
        var time = 0;
        var fade = 500;
        j(cloud.header.handler).mouseover(function() {
            var element = this;
            var thumbler = 'thumbler-header';
            if (document.getElementById(thumbler)) {
                var thumbler = j('#' + thumbler);
                if (!(thumbler.hasClass('cloud-header-added')))
                    thumbler.show();
            } else {
                j(cloud.header.structure).appendTo(j(element).parent()).attr('id', thumbler);
                var thumbler = j('#' + thumbler);
                thumbler.hover(
                    function() {
                        range = false;
                    }, function() {
                        range = true;
                    }
                );
                thumbler.click(function() {
                    var self = j(this);
                    self.addClass('cloud-header-added');
                    j.get('/tutorials/ajaxAddToLibrary/' + tutorial_id, function() {
                        time = setTimeout(function() {
                            self.hide();
                        }, 600);
                    });
                    return false;
                })
            }
        });
        j(cloud.header.handler).mouseout(function() {

            time = setTimeout(function() {
                if (range) {
                    j('#thumbler-header').hide();
                }
            }, 600);
        });
    },

    Topic: function () {
        j('#contentbigbutton .button').click(function() {
            if ((typeof logged === 'undefined') == false) {
                j.get('/przeczytany/' + tutorial_id, function() {
                    j('#topicunknown').css({backgroundPosition: 'bottom center'});
                }, "html");
            }
            return false;
        });
    }
}

j(document).ready(function() {
    j('.image-zoom').click(imagebox.show);
    j('.flash-zoom').click(function() {
        imagebox.flash(this);
        return false;
    });
    
    j('.additions').click(imagebox.addition);

    if ((typeof logged === 'undefined') == false) { Librarian.Start(); }

    var Layer = new Windows();
    Layer.close('.terminate');
    Layer.open('.helper',
        function() {
            j.ajax({
                url: Layer.handler,
                cache: false,
                success: function(content){
                    Layer.init(content);
                }
            });
        }
    );
    j('.photo-zoom').click(function() {
        var source = {
            src: j(this).attr('href'),
            'title': 'Kliknij aby zamknąć zdjęcie.'
        };

        var content = j('<div id="image_window" class="wimage"></div>');
        content.append('<div class="content"><a class="image" href="" title=""></a></div>');
        content.append('<div class="close"><a class="terminate" href="#"></a></div>');
        var values = {
            'height' : j('body').height(),
            'width'  : j('body').width()
        };
        j('<div id="image_overlay"></div>').animate({opacity: 0}, 0).prependTo('body').css(values).animate({opacity: 0.6}, 180, function() {
            j(content).animate({opacity: 0}, 0).prependTo('body').animate({opacity: 1}, 260, function() {
                new Loader(source, '#image_window');
                j('#image_window .image').click(function() {
                    j('#image_window').fadeOut('120', function() {
                        j('#image_overlay').fadeOut('60', function() {
                            j('#image_window').remove();
                            j('#image_overlay').remove();
                        });
                    });
                    return false;
                })
                Close();
            }).center();
        });
        return false;
    });
    Profiler.construct();
    Discussion.start();
    Cufon.replace('#tutorial h5.colored > strong, #tutorial-header h1, h4, h4 > strong, h2 > strong, h2 > span > strong, h5.sub > strong, , .promotion strong', {fontFamily: 'GlasgowPl RR ExtraBold'});
    Cufon.replace('#tutorial h5.colored > span, #tutorial-header h2 strong, h2 span, h4 > span, h5.sub, .promotion span', {fontFamily: 'GlasgowPl RR Light'});
    Cufon.replace('h2 > strong, h2 > span > strong', {fontFamily: 'GlasgowPl RR ExtraBold'});
});