﻿



$(window).load(function () {

    //remove empy text links, with disqus.
    $('a.disqus').each(function () {
        if ($(this).text() == "") {          
            $(this).remove();
        }
    });
}
);
    


$(document).ready(function () {




//    if ($('.ArticleBannerColumn ').length) {
//    }
//    else {
//        $("div:empty").hide();
//    }




    //    $(".header-interview-scoller").jCarouselLite({
    //        vertical: true,
    //        hoverPause: true,
    //        visible: 1,
    //        auto: 5000,
    //        speed: 1000
    //    });

    $('#tagcloud .paloma-name').watermark('Namn');
    $('#tagcloud .paloma-email').watermark('Epost');

    $(".paloma-button").bind("click", function (event) {
        
        var validationError = false;
        // for each field test it
        $("input, select, textarea", '#tagcloud').each(function () {
            if ($(this).attr("class")) {
                if (!validateField(this))
                    validationError = true;
            }
        });
        if (validationError) {
            return false;
        }

        $.fancybox.showActivity();

        var name = $('#tagcloud .paloma-name').val();
        var email = $('#tagcloud .paloma-email').val();
        var listid = $("[id$=_hdnListID]").val();
        var secondarylistid = $("[id$=_hdnSecondaryListID]").val();
        var registersecondary = $(".paloma-secondary").find(":checkbox").is(":checked");

        $.ajax({
            type: "POST",
            cache: false,
            url: "/handlers/RegisterToEmailList.ashx",
            data: { name: name, email: email, listid: listid, secondarylistid: secondarylistid, registersecondary: registersecondary },
            success: function (data) {

                $.fancybox($('#thankyoutext').text());
            },
            error: function () {
                $.fancybox('Det uppstod ett fel, vänligen kontakt supporten för mer information!');
            }
        });

        event.preventDefault();
        return false;
    });


    $(".supplier-guide-scroller").jCarouselLite({
        vertical: true,
        hoverPause: true,
        visible: 3,
        auto: 3500,
        speed: 1000
    });

    // Rss feed box
    $('#rssFeed > ul').tabs();

    // Article slider
    $('#coda-slider-1').codaSlider();



    function validateField(field) {
       
        var error = false;

        // required fields
        if ($(field).attr("class").indexOf("required") != -1) {
            if (!$(field).val().length)
                error = true;
        }
        // numeric fields
        if ($(field).attr("class").indexOf("numeric") != -1) {
            if (!/^[0-9]*$/.test($(field).val()))
                error = true;
        }
        // characters (letters)
        if ($(field).attr("class").indexOf("character") != -1) {
            if (!/^[a-zA-ZöÖäÄåÅ]*$/.test($(field).val()))
                error = true;
        }
        // emails
        if ($(field).attr("class").indexOf("email") != -1) {
            if (!/^[a-zA-Z0-9]{1}([\._a-zA-Z0-9-]+)(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+){1,3}$/.test($(field).val()))
                error = true;
        }

        if (error) {
            $(field).addClass("error");
        } else {
            $(field).removeClass("error");
        }

        return !error;
    }



    $.fn.stickySidebar = function (opts) {
        
        var stickyboxes = []
      , $window = $(window)
      , settings = $.extend({
          speed: 350 // animation duration
        , easing: "linear" // use easing plugin for more options
        , padding: 10
      }, opts);

        this.each(function () {

            var _self = $(this);
            this.offs = {}; // our parents offset
            this.orig = { // cache for original css
                top: _self.css("top")
        , left: _self.css("left")
        , position: _self.css("position")
        , marginTop: _self.css("marginTop")
        , marginLeft: _self.css("marginLeft")
        , offset: _self.offset()
            };

            this.setPositions = function () {
                // set position according to nearest postioned container
                var currOff = _self.offset();
                this.offs = findPositionedParent();
                _self.css({
                    position: "absolute"
          , top: currOff.top - this.offs.top + "px"
          , left: currOff.left - this.offs.left + "px"
          , margin: 0
          , width: _self.width()
                });
                this.moveIntoView();
            }

            this.moveIntoView = function (ev) {
                var elem = _self.get(0)
          , sTop = $window.scrollTop() - elem.offs.top
          , currOffs = _self.offset()
          , origTop = elem.orig.offset.top - elem.offs.top;
                // scrolled down out of view
                if (origTop < sTop) {
                    _self
            .stop()
            .animate(
                { top: sTop + settings.padding + "px" }
              , settings.speed
              , settings.easing
            );
                }
                // scolled back up past original offset
                else if (currOffs.top > origTop)
                    _self
            .stop()
            .animate(
                { top: origTop }
              , settings.speed
              , settings.easing
            );
            }

            var findPositionedParent = function () {
                // start with current parent
                var $parent = _self.parent()
          , parentOffs = $parent.offset();
                // go up the tree until we find an elem to position from
                while (parentOffs && "top" in parentOffs
          && $parent.css("position") == "static") {
                    $parent = $parent.parent();
                    parentOffs = $parent.offset();
                }
                if (parentOffs) // found a postioned ancestor
                    return parentOffs;
                else return { top: 0, left: 0 }; // ooops went to far set to doc
            }

            this.reset = function () {
                _self.css({
                    position: this.orig.position
          , marginTop: this.orig.marginTop
          , marginLeft: this.orig.marginLeft
          , left: this.orig.left
          , top: this.orig.top
                });
            }

            this.setPositions();
            stickyboxes[stickyboxes.length] = this;

        });

        $window.bind("resize", function () {
            for (var i = 0, sbl = stickyboxes.length; i < sbl; ++i)
                stickyboxes[i].reset();
            for (i = 0; i < sbl; ++i)
                stickyboxes[i].setPositions();
        });
        $window.bind("scroll", function () {
            for (var i = 0, sbl = stickyboxes.length; i < sbl; ++i)
                stickyboxes[i].moveIntoView();
        });

        return this;

    };

    $('.sticky').stickySidebar({ speed: 400, padding: 20 });


    $(".question input:radio").live("click", function () {

        var p = $(this).parent().attr("title");

        var a = $(this).val()

        $.fancybox.showActivity();

        $(this).parent().find("input:radio").attr('disabled', true);
       
        $.ajax({
            type: "GET",
            cache: false,
            url: "/Handlers/Vote.ashx?p=" + p + "&a=" + a,
            data: '',
            success: function (data) {
               
                $.fancybox(data);
            }
        });
       
        return false;
    })


    $(".view-result").click(function () {
       
        var p = $(this).prev().find(".alternatives").attr("title");

        $.fancybox.showActivity();

        $.ajax({
            type: "GET",
            cache: false,
            url: "/Handlers/Vote.ashx?p=" + p,
            data: '',
            success: function (data) {
                $.fancybox(data);
                
            }
        });
       
        return false;
    });

});

