(function () {
  if (!("console" in window) || !("firebug" in console)) {
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group"
                   , "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
    window.console = {};
    for (var i = 0; i < names.length; ++i) window.console[names[i]] = function () { };
  }

  jQuery(function ($) {
    // Make enter key on input elements fire the click event of the closest submit button.
    $('input:not(.nosubmit),select:not(.nosubmit),textarea:not(.nosubmit),fieldset:not(.nosubmit)').live('keydown', function (e) {
      if (e.which != 13) return true;
      if (this.tagName && this.tagName == 'TEXTAREA') return true;

      var root = $(this);
      while (root.length > 0) {
        var button = root.find(':submit,:button');
        if (button.length > 0) {
          button[0].click();
          return false;
        }
        root = root.parent();
      }
    });

    //Arrows
    $('#navigation .middle ul li a').arrowAfter();
    $('.rootLink a').arrowBefore();
    $('.faqCategory li a').arrowAfter();
    $('a.showBars').arrowAfter();
    $('a.showLines').arrowAfter();

    $("#main-nav ul li:last").addClass('last');
    $("#colPortlet2 .list-portlet li:last").addClass('last');
    $("#contentWrapper .commentWrapper li:last").addClass('last');

    $('form.noscript').removeClass('noscript');

    // start - toggle page hidden heading area
    $(".brandName").hide();
    $('ul li a').bind("mouseenter", function () {
      $(this).children(".brandName").slideDown(300);
    }).bind("mouseleave", function () {
      $(this).children(".brandName").slideUp(300);
    });

    /* faq */
    $(".faqAnswer").hide();
    $(".faqItem a.faqQuestion").click(function () {
      if ($(this).hasClass("minus")) {
        $(this).siblings(".faqAnswer").slideUp("slow");
        $(this).removeClass("minus");
      } else {
        $(this).siblings(".faqAnswer").slideDown("slow");
        $(this).addClass("minus");
      }
      return false;
    });

    $(".siteComments .paging-buttons span.page-number").wrapInner("<span></span>");

    /* validate */
    $("fieldset.validate button").click(function () {
      $("#aspnetForm").validate();
    });

    // Animate the anchor links
    $('a[href*=#]:not(a[href=#])').click(function () {
      if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
        var $target = $(this.hash);
        $target = $target.length && $target || $('[name=' + this.hash.slice(1) + ']');
        if ($target.length) {
          var targetOffset = $target.offset().top;
          var documentHeight = $(document).height();
          var windowHeight = $(window).height();
          if ((targetOffset + windowHeight) > documentHeight) {
            targetOffset = documentHeight - windowHeight;
          }
          $('html,body').animate({ scrollTop: targetOffset }, { duration: 600, easing: 'easeInOutQuad' }, "swing");
          return false;
        }
      }

      return true;
    });

    //Puts width on image wrappers that have image and text
    $(".rightImage img").each(function () {
      var imageWidth = $(this).width();
      $(this).parent(".rightImage").css("width", "" + imageWidth + "px");
    });
    $(".leftImage img").each(function () {
      var imageWidth = $(this).width();
      $(this).parent(".leftImage").css("width", "" + imageWidth + "px");
    });

    // Setup slideshows
    $(".x-portlet ul.slideshow").each(function () {
      $(this)
        .children('li').addClass('hide')
        .children(':not(.colorbox)').hide();
      $(this).children('li:first').addClass('first-item');
      var title = $(this).children('li:first').children('.colorbox').attr("title");
      var number = $(this).children('li').size();


      $(this).parent('.x-portlet').append("<div class='imageNumber'>Bild 1/" + number + "</div>");
      $(this).parent('.x-portlet').append("<div class='imageSlideshowText'>" + title + "</div>");

    });

    $('ul.slideshow .colorbox').colorbox({
      maxWidth: "80%",
      maxHeight: "100%",
      current: "Bild {current} av {total}",
      title: function () {
        var text = "";
        $(this).siblings().each(function () {
          text += "<" + this.nodeName + ">" + $(this).html() + "</" + this.nodeName + ">";
        });
        return text;
      }
    });

    //IE6
    if ($.browser.msie && $.browser.version == "6.0") {
      $("body").addClass("ieSix");
      $("#pagewrapper").before("<div class='iesixDiv'>Du anv&auml;nder en webbl&auml;sare som denna sida ej &auml;r utvecklad f&ouml;r, vi ber er d&auml;rf&ouml;r anv&auml;nda en senare <a href='http://www.microsoft.com/downloads/details.aspx?FamilyId=9AE91EBE-3385-447C-8A30-081805B2F90B&displaylang=en'>version</a> av denna webbl&auml;sare eller en annan typ av <a href='http://www.mozilla.com/sv-SE/'>webbl&auml;sare</a></div>");
    }

    $(".movieList ul li:odd").addClass('odd');
    $("#comments ul li li:even").addClass('even');


    // Calendar
    if ($(".calendarView").length == 0) {
      $(".dynamicCalendar .gradient").hide();
    } else {
      $(".dynamicCalendar .less").hide();
      $(".listView").hide();

      $(".dynamicCalendar a.more").click(function () {
        $(this).hide();
        $(this).siblings(".less").show();
        $(this).parent(".gradient").siblings(".listView").slideDown("slow");
      });
      $(".dynamicCalendar a.less").click(function () {
        $(this).hide();
        $(this).siblings(".more").show();
        $(this).parent(".gradient").siblings(".listView").slideUp("slow");
      });
    }

    $(".dynamicCalendar td a.events").each(function () {
      $(this).parent("td").addClass("eventWrapper");
    });

    // Flash install message on top
    var deviceAgent = navigator.userAgent.toLowerCase();
    var agentID = deviceAgent.match(/(iphone|ipod|ipad)/);
    if (agentID) {
      //do something with i-devices
    } else {
      if (!FlashDetect.installed || !FlashDetect.versionAtLeast(7)) {
        $("#noflash").addClass("active");
      }
    }

    //Brand page
    $('.sectionTitle').click(function () {
      $(this).toggleClass('closed');
      $(this).next('div').slideToggle({ duration: 1000, easing: 'easeOutQuad' });
    });

    // Fix external links
    externalLinks();
    setupSiteMessage();
  });

  var setupSiteMessage = function () {
    $(document).ready(function () {
      var siteMessgeHeight = $('#message').height();
      var siteMessgeHeightStyleValue = '-' + siteMessgeHeight + 'px';
      $('#message').css('margin-top', siteMessgeHeightStyleValue);
      $('#message').animate({ marginTop: '0px' }, { duration: 1500, easing: 'easeOutQuad' });

      $('#message .mClose a').click(function (e) {
        e.preventDefault();
        var siteMessgeHeight = $('#message').height();
        var siteMessgeHeightStyleValue = '-' + siteMessgeHeight + 'px';
        $('#message').animate({ marginTop: siteMessgeHeightStyleValue }, { duration: 1500, easing: 'easeOutQuad', complete: function () {
          var closeLinkHref = $('#message .mClose a').attr('href');
          $.post(closeLinkHref);
        }
        });
      });
    });
  }


  var externalLinks = function () {
    var anchors = document.getElementsByTagName("a");

    for (var i = 0; i < anchors.length; i++) {
      var anchor = anchors[i];
      var href = anchor.getAttribute("href");
      if (href != null) {
        if (IsIE()) {
          AddMailtoClass(anchor, href);
        }
        var rel = anchor.getAttribute("rel");
        var email = IsEmailLink(href);
        var file = IsFileLink(href, rel);
        var external = IsExternalLink(href, rel);
        if (!email && (external || file)) {
          if (anchor.target != null) {
            anchor.target = "_blank";
            if (IsIE()) {
              if (file) {
                anchor.className += " file";
                AddExtensionClass(anchor, href);
              } else {
                anchor.className += " external";
              }
            }
          }
        }
      }
    }
  };

  var IsIE = function () {
    var agt = navigator.userAgent.toLowerCase();
    return ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
  };

  var AddMailtoClass = function (anchor, href) {
    if (IsEmailLink(href))
      anchor.className += " mailto";
  };

  this.AddExtensionClass = function (anchor, href) {
    var index = href.lastIndexOf(".");
    if (index > 0) {
      anchor.className += " ext-" + href.slice(index + 1);
    }
  };

  var IsEmailLink = function (href) {
    return href.indexOf("mailto:") == 0;
  };

  var IsFileLink = function (href, rel) {
    var extension = "";
    var dotIndex = href.lastIndexOf(".");
    var questionIndex = href.indexOf("?");
    if (dotIndex > 0 && questionIndex < 0) {
      extension = href.slice(dotIndex + 1);
      var slashIndex = extension.indexOf("/");
      if (slashIndex > 0) {
        extension = "";
      }
      var hashIndex = extension.indexOf("#");
      if (hashIndex > 0) {
        extension = extension.substring(0, hashIndex);
      }
    }
    return (rel == "file" || (extension != "" && extension != "htm" && extension != "html" && extension != "aspx" && extension != "asp" && extension != "jsp" && extension != "php"));
  };

  var IsExternalLink = function (href, rel) {
    if (document.location.pathname != null) {
      if (jQuery.parseUri(href).host == document.location.hostname) {
        return false;
      }
    }
    var s = href.substring(0, 1);
    return (rel == "external" || (s != "/" && s != "#"));
  }

  $.fn.arrowBefore = function () {
    if (this.size() > 0) {
      this.each(function () {
        $(this).prepend("<span class='arrow'>&laquo;&nbsp;</span>");
      });
    }
  };
  $.fn.arrowAfter = function () {
    if (this.size() > 0) {
      this.each(function () {
        $(this).append("<span class='arrow'>&nbsp;&raquo;</span>");
      });
    }
  };

  var FlashDetect = new function () {
    var self = this; self.installed = false; self.raw = ""; self.major = -1; self.minor = -1; self.revision = -1; self.revisionStr = ""; var activeXDetectRules = [{ "name": "ShockwaveFlash.ShockwaveFlash.7", "version": function (obj) { return getActiveXVersion(obj); } }, { "name": "ShockwaveFlash.ShockwaveFlash.6", "version": function (obj) {
      var version = "6,0,21"; try { obj.AllowScriptAccess = "always"; version = getActiveXVersion(obj); } catch (err) { }
      return version;
    }
    }, { "name": "ShockwaveFlash.ShockwaveFlash", "version": function (obj) { return getActiveXVersion(obj); } }]; var getActiveXVersion = function (activeXObj) {
      var version = -1; try { version = activeXObj.GetVariable("$version"); } catch (err) { }
      return version;
    }; var getActiveXObject = function (name) {
      var obj = -1; try { obj = new ActiveXObject(name); } catch (err) { obj = { activeXError: true }; }
      return obj;
    }; var parseActiveXVersion = function (str) { var versionArray = str.split(","); return { "raw": str, "major": parseInt(versionArray[0].split(" ")[1], 10), "minor": parseInt(versionArray[1], 10), "revision": parseInt(versionArray[2], 10), "revisionStr": versionArray[2] }; }; var parseStandardVersion = function (str) { var descParts = str.split(/ +/); var majorMinor = descParts[2].split(/\./); var revisionStr = descParts[3]; return { "raw": str, "major": parseInt(majorMinor[0], 10), "minor": parseInt(majorMinor[1], 10), "revisionStr": revisionStr, "revision": parseRevisionStrToInt(revisionStr) }; }; var parseRevisionStrToInt = function (str) { return parseInt(str.replace(/[a-zA-Z]/g, ""), 10) || self.revision; }; self.majorAtLeast = function (version) { return self.major >= version; }; self.minorAtLeast = function (version) { return self.minor >= version; }; self.revisionAtLeast = function (version) { return self.revision >= version; }; self.versionAtLeast = function (major) { var properties = [self.major, self.minor, self.revision]; var len = Math.min(properties.length, arguments.length); for (i = 0; i < len; i++) { if (properties[i] >= arguments[i]) { if (i + 1 < len && properties[i] == arguments[i]) { continue; } else { return true; } } else { return false; } } }; self.FlashDetect = function () { if (navigator.plugins && navigator.plugins.length > 0) { var type = 'application/x-shockwave-flash'; var mimeTypes = navigator.mimeTypes; if (mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description) { var version = mimeTypes[type].enabledPlugin.description; var versionObj = parseStandardVersion(version); self.raw = versionObj.raw; self.major = versionObj.major; self.minor = versionObj.minor; self.revisionStr = versionObj.revisionStr; self.revision = versionObj.revision; self.installed = true; } } else if (navigator.appVersion.indexOf("Mac") == -1 && window.execScript) { var version = -1; for (var i = 0; i < activeXDetectRules.length && version == -1; i++) { var obj = getActiveXObject(activeXDetectRules[i].name); if (!obj.activeXError) { self.installed = true; version = activeXDetectRules[i].version(obj); if (version != -1) { var versionObj = parseActiveXVersion(version); self.raw = versionObj.raw; self.major = versionObj.major; self.minor = versionObj.minor; self.revision = versionObj.revision; self.revisionStr = versionObj.revisionStr; } } } } } ();
  }; FlashDetect.JS_RELEASE = "1.0.4";
})();

