var SakrareSex = {};
var ChatStartPublish = '';

SakrareSex.base = function () {
    return {
        init: function () {
            SakrareSex.base.searchNavigationHandlers();
            SakrareSex.base.showMoreListItemHandlers();
            SakrareSex.base.carouselHandlers();
            SakrareSex.base.modalHandlers();
            SakrareSex.base.chatHandlers();
            SakrareSex.base.mozFontFix();

            $('.ie .chat-banner').transform({ rotate: '-45deg' });

            $('.forum-start-table tbody tr:even').addClass('even'); //.css('background', '#dff2ff');
        },
        mozFontFix: function () {
            // Fix for category navigation in Mozilla Firefox
            if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
                $('.site-nav a .heading').each(function (index) {
                    var thisText = $(this).text();
                    $(this).html('<canvas id="canvasId' + index + '" width="' + $(this).width() + '" height="' + $(this).height() + '"></canvas>');
                    var canvas = document.getElementById('canvasId' + index);
                    if (canvas.getContext) {
                        var ctx = canvas.getContext('2d');
                        ctx.font = "bold 12px sans-serif";
                        ctx.fillStyle = "White";
                        ctx.textAlign = "center";
                        ctx.fillText(thisText, ($(this).width() / 2), 13);
                        ctx.fill();
                    }
                });
            }
        },
        chatHandlers: function () {
            if ($('#chatpage').length > 0) {
                SakrareSex.base.getChatList();
                var refreshChat = setInterval(function () {
                    SakrareSex.base.isChatUpdated();
                }, 30000);
            }
        },
        isChatUpdated: function () {
            $.ajax({
                url: 'http://' + location.host + '/Templates/SakrareSexWeb/AJAX/ChatHandler.ashx?type=updated&guid=' + chatGuid + '&date=' + ChatStartPublish + '&ver=' + new Date().getTime(),
                success: function (data) {
                    if (data == 'True') {
                        SakrareSex.base.getChatList();
                    }
                }
            });
        },
        getChatList: function () {
            $.ajax({
                url: 'http://' + location.host + '/Templates/SakrareSexWeb/AJAX/ChatHandler.ashx?type=list&guid=' + chatGuid + '&ver=' + new Date().getTime(),
                success: function (dataList) {
                    $('#chat-list').html('');
                    $.each(dataList, function (index, value) {
                        if (index == 0) {
                            ChatStartPublish = value.PublishDate;
                        }
                        $('#chat-list').append('<li class="chat-list-item"><span class="date">' +
                            value.Time +
                            '</span><p><strong class="question-name">' +
                            value.Name +
                            ': </strong></p><p>' +
                            value.Question +
                            '</p><p><strong class="answer-name">' +
                            value.ChatOwnerHeading +
                            '</strong></p>' +
                            value.Answer +
                            value.ChatOwnerGreeting +
                            '</li>');
                    });
                }
            });
        },
        searchNavigationHandlers: function () {
            $('.search-navigation-list > li').click(function () {
                var className = $(this).children('a').attr('id');
                $('.serp-item').hide();
                $('.' + className).show();
                $('.search-navigation-list > li').removeClass('active');
                $(this).addClass('active');
                return false;
            });

            $('.search-navigation-list li li').click(function () {
                var className = $(this).children('a').attr('id');
                $('.serp-item').hide();
                $('.' + className).show();
                $('.filter-list > li').removeClass('filter-active');
                $(this).addClass('filter-active');
                return false;
            });

            if ($('.search-navigation-list > .active').length > 0) {
                var className = $('.search-navigation-list > .active a').attr('id');
                $('.serp-item').hide();
                $('.' + className).show();
            }

            if ($('.search-navigation-item .filter-box').length > 0) {
                var minHeight = $('.search-navigation-item .filter-box').outerHeight();
                $('.serp-wrapper').css('min-height', minHeight + 'px');
            }
        },
        showMoreListItemHandlers: function () {
            var showMoreText = $('.more-list-link').text();
            $('.more-list-link').toggle(function () {
                $(this).parent('li').children('ul').children('.hide').show();
                $(this).text('Visa färre');
            },
		    function () {
		        $(this).parent('li').children('ul').children('.hide').hide();
		        $(this).text(showMoreText);
		    });

            var showMoreRelatedText = $('.more-related-list-link').text();
            $('.more-related-list-link').toggle(function () {
                $(this).parent('li').children('ul').children('.hide').show();
                $(this).text('Visa färre');
            },
		    function () {
		        $(this).parent('li').children('ul').children('.hide').hide();
		        $(this).text(showMoreRelatedText);
		    });

            var showMoreText2 = $('.underpage-list-show-more').text();
            $('.underpage-list-show-more').toggle(function () {
                $('.underpage-list .hide').show();
                $(this).text('Visa färre');
            }, function () {
                $('.underpage-list .hide').hide();
                $(this).text(showMoreText2);
            });


        },
        carouselHandlers: function () {
            $('#carousel').cycle({
                fx: 'fade', /*fade*/
                speed: 500,
                timeout: 0,
                pager: '#jcarousel-control',
                next: '#carousel-next',
                prev: '#carousel-prev'
            });

            $('.carousel').hover(function () {
                $('#carousel-next, #carousel-prev').fadeIn();
            },
			function () {
			    $('#carousel-next, #carousel-prev').fadeOut();
			});
        },
        modalHandlers: function () {
            $('.lightbox-link').colorbox({
                inline: true,
                href: '#fragaForm', //$(this).attr('href'),
                close: 'STÄNG'
            }, function () {
                $('#fragaForm textarea').val('');
                $('#fragaForm textarea').focus();
            });

            $('.lightbox-link-post').colorbox({
                inline: true,
                href: '#fragaFormPost', //$(this).attr('href'),
                close: 'STÄNG'
            }, function () {
                $('#fragaFormPost textarea').val('');
                $('#fragaFormPost textarea').focus();
            });


            $('#fraga-form-send-info').delay(6000).fadeOut(1000);
        }
    };
} ();
$(document).ready(SakrareSex.base.init);

SakrareSex.ieFix = function () {
    return {
        init: function () {
            SakrareSex.ieFix.ieCampaignRotateFixes();
        },
        initTransformCard: function (rotateSelector, rotates) {
            $(rotateSelector).transform({ rotate: rotates });
        },
        hoverCampaignEventHandler: function (rotateSelector, rotates) {
            $(rotateSelector).hover(function () {
                $(this).transform({ rotate: '0deg' });
            }, function () {
                $(this).transform({ rotate: rotates });
            });
        },
        ieCampaignRotateFixes: function () {
            /* IE specific for rotate category teasers */
            var campaignNavRotates = ['3deg', '-2deg', '2deg', '-3deg', '-2deg', '-1deg', '2deg'];
            var campaignNavSelectors = ['.ie .site-nav .nav-item1 a', '.ie .site-nav .nav-item2 a',
										'.ie .site-nav .nav-item3 a', '.ie .site-nav .nav-item4 a',
										'.ie .site-nav .nav-item5 a', '.ie .site-nav .nav-item6 a',
										'.ie .site-nav .nav-item7 a'];

            var teaser5RotatesArray = ['-3deg', '7deg', '-4deg', '4deg', '-4deg'];
            var teaser7RotatesArray = ['-3deg', '6deg', '4deg', '-4deg', '-7deg', '4deg', '11deg'];

            var teaser5Selectors = ['.ie .teaser-5 .rotateMe1', '.ie .teaser-5 .rotateMe2',
									'.ie .teaser-5 .rotateMe3', '.ie .teaser-5 .rotateMe4',
									'.ie .teaser-5 .rotateMe5'];
            var teaser7Selectors = ['.ie .teaser-7 .rotateMe1', '.ie .teaser-7 .rotateMe2',
									'.ie .teaser-7 .rotateMe3', '.ie .teaser-7 .rotateMe4',
									'.ie .teaser-7 .rotateMe5', '.ie .teaser-7 .rotateMe6',
									'.ie .teaser-7 .rotateMe7'];

            for (var i = 0; i < campaignNavRotates.length; i++) {
                SakrareSex.ieFix.initTransformCard(campaignNavSelectors[i], campaignNavRotates[i]);
                SakrareSex.ieFix.hoverCampaignEventHandler(campaignNavSelectors[i], campaignNavRotates[i]);
            }
            for (var i = 0; i < teaser5RotatesArray.length; i++) {
                SakrareSex.ieFix.initTransformCard(teaser5Selectors[i], teaser5RotatesArray[i]);
                SakrareSex.ieFix.hoverCampaignEventHandler(teaser5Selectors[i], teaser5RotatesArray[i]);
            }
            for (var i = 0; i < teaser7RotatesArray.length; i++) {
                SakrareSex.ieFix.initTransformCard(teaser7Selectors[i], teaser7RotatesArray[i]);
                SakrareSex.ieFix.hoverCampaignEventHandler(teaser7Selectors[i], teaser7RotatesArray[i]);
            }
        }
    };
} ();
$(document).ready(SakrareSex.ieFix.init);
