﻿/* Popup
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function tmSizedPopup(url,winName,w,h) {	
    var useScroll = arguments[4] == undefined?0:arguments[4];
	popWin = window.open(url,winName,'fullscreen=0,width='+w+',height='+h+',toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars='+useScroll+',resizable=1');
}


/* Email-protection
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function ShowEmail(i_where, i_beforeAt, i_afterAt, i_afterDot, i_additional, i_middle) {
    if (i_additional == null)
        i_additional = "";
    builtStr = i_beforeAt + "@" + i_afterAt + "." + i_afterDot;
    if (i_middle != null) {
        if (i_middle != "")
            firstName = i_middle;
        else
            firstName = builtStr;
    }
    else {
        splitByDot = i_beforeAt.split('.');
        firstLetter = splitByDot[0].toUpperCase().charAt(0);
        firstName = firstLetter + splitByDot[0].substring(1);
        lastName = "";
        if (splitByDot.length > 1) {
            firstLetter = splitByDot[1].toUpperCase().charAt(0);
            lastName = firstLetter + splitByDot[1].substring(1);
            firstName += " " + lastName;
        }
    }
    i_where = i_where.replace("#", "");
    
    $("#" + i_where).append(i_additional + '<a href="mailto:' + builtStr + '">' + firstName + '</a>');
}


/* Login
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
var OneClickLogin = {
    _keyPressCount: 0,
    init: function () {
        $(document).bind("keyup", OneClickLogin.eventHandler);
    },

    eventHandler: function (ev) {
        ev = (typeof (ev) == "undefined") ? window.event : ev;
        if (ev.type == "keyup")
            return OneClickLogin.keyHandler(ev);
    },

    keyHandler: function (ev) {
        var kc = ev.keyCode || ev.which;

        if ($("#ocAdminLogin").length > 0 && kc == 27)
            $("#ocAdminLogin").remove();


        if (kc == 17 || kc == 32)
            this._keyPressCount++;

        else
            this._keyPressCount = 0;

        if (this._keyPressCount > 2) {
            window.scrollTo(0, 0);
            this.addLoginBox();
            this._keyPressCount = 0;
            this.cancelEvListener(ev);
            return false;
        }
    },

    cancelEvListener: function (ev) {
        if (typeof (ev.preventDefault) != "undefined") {
            ev.preventDefault();
        }
        ev.returnValue = false;
        ev.cancelBubble = true;
    },

    addLoginBox: function () {
        if ($("#ocAdminLogin").length != 0 || $("#ocAdminToolbar").length != 0)
            return;

        var $loginContainer = $('<div />').attr('id', 'ocAdminLogin');
        var $loginIframe = $('<iframe />').attr({
            scrolling: 'no',
            frameborder: 'no',
            src: this.loginUrl + '?redirect=' + this.scriptName() + "&random=" + new Date().getTime()
        });
        $("body").prepend($loginContainer);
        $loginContainer.append($loginIframe);
    },

    scriptName: function () {
        var l = location.href;
        if (l.indexOf('http://') == 0)
            l = l.substring(7);
        l = l.substring(l.indexOf("/"));
        
        //Dennis.
        //Fix, att länknigen blir rätt efter inloggningen.
        var fixed = l.replace("&", "%tim;");

        return fixed;
    }

}
OneClickLogin.loginUrl = "/admin/OneClick_loginbox/OneClick_login.aspx";
OneClickLogin.init();


/* Navigation alignment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function navAlignment() {

  if ($.browser.msie) {
    $('#nav .active li:last-child a').css('borderRight', '0');
  }
  
  var maxWidthBeforeAdjustments = 0; // Ignore first and last menuitem
  var current = $('#nav').find('.active ul'),
      currentWidth = current.outerWidth()
      currentIndex = $('#nav').find('.active').prevAll().length,
      topNodes = $('#nav > li').length;

  for (var i = currentIndex; i < topNodes; i++) {
    maxWidthBeforeAdjustments += parseInt($($('#nav > li')[i]).outerWidth('true'));
  }
  maxWidthBeforeAdjustments += 7;
  
  if (currentWidth && (currentIndex > 0 && currentIndex < 5)) { // Dont do stuff with first and last menuitem
    if (currentWidth > maxWidthBeforeAdjustments) {
      var totalWidth = 0;
      for (var i = 0; i < current.find('li').length; i++) {
        totalWidth += parseInt($(current.find('li')[i]).outerWidth());
      }
      var diff = totalWidth - maxWidthBeforeAdjustments;
      current.css('marginLeft', '-' + diff + 'px');
    }
  }
}


/* Document Ready
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
$(function () {

  navAlignment();

  /* Hide content-area controls for non ie users. Display them on content-area hover instead */
  if (!$.browser.msie) {
    $('.oc-controls').css({ display: 'none' });
  }

  /* FIX submenu padding. remove it if active link dont have a submenu */
  if ($('#nav').find('.active ul').length <= 0) {
    $('#nav').find('.active').css('paddingBottom', '0');
  }

  /* ADD class last on last li-item in tompenu */
  $('#nav > li:last-child').addClass('last');

  /* STYLE Select-box */
  $('.advanced-search select').each(function () {

    var original_select = $(this),
			stylable_select;

    original_select.wrap('<span class="stylable-select-wrap" />');

    stylable_select = $('<div />', {
      'class': 'stylable-select',
      text: original_select.find(':selected').text()
    }).prependTo(original_select.parent());

    original_select
			.css('opacity', '0')
			.addClass('invisible-select')
			.bind('change', function () {
			  stylable_select.text(original_select.find(':selected').text());
			});

    // Fix width/height issues
    $('.stylable-select-wrap').each(function () {
      $(this).css({
        width: $(this).find('select').outerWidth()
      })
			.find('.stylable-select')
			.css({
			  width: parseInt($(this).find('select').outerWidth()) - 50 + 'px'
			});
    });

    /* TODO THIS doesnt work completely, guess selectboxes look different in safari depending on OS */

    // Add extra margin to 2 specific wrappers
    $('.advanced-search .type').add('.advanced-search .size-from').closest('.stylable-select-wrap').css('marginRight', '3px');

    // Add grey text to 2 specific select-overlays
    $('.advanced-search .size-from').closest('.stylable-select-wrap').find('.stylable-select').html('YTA / <em>FRÅN</em>');
    $('.advanced-search .size-to').closest('.stylable-select-wrap').find('.stylable-select').html('YTA / <em>TILL</em>');

  });

  /* Auto-empty searchfield */
  function supports_input_placeholder() {
    var i = document.createElement('input');
    return 'placeholder' in i;
  }
  if (supports_input_placeholder()) {
    $('.basic-search .sw').attr('placeholder', 'Sök').removeAttr('value');
  }
  else {
    $('.basic-search .sw')
			.bind('focus', function () {
			  if ($(this).val() == 'Sök') {
			    $(this).val('');
			  }
			})
			.bind('blur', function () {
			  if ($(this).val() == '') {
			    $(this).val('Sök');
			  }
			});
  }

});
