﻿/* STH: 2011-10-18 Added poll related fix */
jQuery(function() {
  jQuery('.poll').each(function() {
    var $this = jQuery(this);
    var h1 = jQuery('h1', $this);
    var module = jQuery('.module', $this);
    var iDiff = h1.height()-21;
    if (iDiff>0) {
     module.css('height', (module.height()-iDiff)+'px')
    };
  })
})

/* STH: 2008-11-27, Various utilities */
var iAddtobaskedUsingThisPageID = 17018;
var iBasketPageID = 17018;

function addToBasketAndGotoPageBasket(sProductId, iQuantity, sVariantID) {

  // old URL: /default.aspx?id=17018&amp;productid=<!--@Ecom:Product.ID-->&amp;cartcmd=add&amp;quantity=1
  var sData = '';
  sData += 'cartcmd=add';
  sData += '&id=' + iBasketPageID;
  sData += '&productid=' + sProductId;
  sData += '&quantity=' + ((typeof iQuantity != 'undefined') ? iQuantity : 1);
  sData += ((typeof sVariantID != 'undefined') ? '&variantid=' + variantid : '');

  $.ajax({
    type: 'POST',
    url: '/default.aspx',
    data: sData,
    async: false,
    beforeSend: function() {
      window.status = 'Lægger i kurv...';
    },
    success: function(msg) {
      document.location = '/default.aspx?id=' + iBasketPageID;
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
      alert('Kunne ikke lægge produkt i kurv!\n' + textStatus);
    },
    complete: function() {
      window.status = 'Færdig!';
    }
  });
}

// Example of empty value: <ShopProductSpecific_ImgUnderviser4_small></ShopProductSpecific_ImgUnderviser4_small>
var oShopProductSpecificField = new RegExp('<ShopProductSpecific_.*></ShopProductSpecific_.*>', 'ig');
function isShopProductSpecificFieldEmpty(sValue) {
  return (sValue.indexOf('<ShopProductSpecific') > -1)
  //return oShopProductSpecificField.test(sValue);
}

// STH: 2008-12-03, Sæt min profil til at vise brugers profil
function changeMyProfileURL() {
  if (window.sDW_extranet_AccessUserID.indexOf('<!--') == -1 && window.sDW_extranet_AccessUserID != '') {
    $('a[href=\'Default.aspx?ID=17041\'], a[href=\'/Default.aspx?ID=17041\']').each(function() {
      var sOldURL = $(this).attr('href');
      $(this).attr('href', sOldURL + '&Presentation=Normal&Type=AccessUser&EmpID=' + window.sDW_extranet_AccessUserID)
    });
  }
}


var oRe_AllLocations = /(http)/ig;
var sLocation = document.location + '';

/* STH: 2008-12-04
Removes a specified param (sAHrefParam) from a HREF on pages with a location that matches a regular expression (oReLocationMatch)
*/
function removeParamFromURL(oReLocationMatch, sAHrefParam) {
  try {
    var oReParam = new RegExp('(' + sAHrefParam + ')', 'ig');
    if (sLocation.match(oReLocationMatch).length) {
      $("a[href*='" + sAHrefParam + "']").each(function() {
        $(this).attr('href', $(this).attr('href').replace(oReParam, ''))
      })
    }
  } catch (e) {
    window.status = 'removeParamFromURL(' + oReLocationMatch + ', ' + sAHrefParam + ') - ' + e.message;
  }
}


function debug() {
  debugger;
}

function executeOnLoad() {
  try {
    if (extranetUserName == 'Morten Bengtson') {
      //debug();
      document.getElementById('debugarea').style.display = 'block';
    }
    changeMyProfileURL();

    // Eksempel: http://danskeadvokater.net.dynamicweb.dk/Default.aspx?ID=12215&M=Calender&CalenderEventID=503
    removeParamFromURL(/(MonthNow)|(YearNow)/ig, '&M=Calender');

    // Eksempel: http://danskeadvokater.net.dynamicweb.dk/Default.aspx?ID=5403&PID=9832&M=forum&ReplyID=1777
    removeParamFromURL(oRe_AllLocations, '&M=forum');

  } catch (e) {
    window.status = 'executeOnLoad() - ' + e.message;
  }
}

var aUgedage = ['Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag', 'Søndag'];
var aMaaneder = ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'];
var sFullFormat = 'WEEKDAY den DATE. MONTH YEAR kl. HH:MM';
var sFullFormatTwoLines = 'WEEKDAY den DATE. MONTH YEAR<br />kl. HH:MM';
var sFormatOnlyTime = 'HH:MM';
function toFriendlyDateTime(sDateTime, sFormat) {
  // Eksempel på dato "11-03-2009 13:00:00"
  var sHTML = '';
  var oDato = toDate(sDateTime);
  var sWeekday = aUgedage[oDato.getDay() - 1];
  var sDate = oDato.getDate();
  var sMonth = aMaaneder[oDato.getMonth()];
  var sYear = oDato.getFullYear();
  var sHour = padToFixedLength(oDato.getHours(), 2, '0');
  var sMinutes = padToFixedLength(oDato.getMinutes(), 2, '0');

  sFormat = (typeof sFormat != 'undefined') ? sFormat : sFullFormat;
  var sResult = sFormat.replace('WEEKDAY', sWeekday);
  sResult = sResult.replace('DATE', sDate);
  sResult = sResult.replace('MONTH', sMonth);
  sResult = sResult.replace('YEAR', sYear);
  sResult = sResult.replace('HH', sHour);
  sResult = sResult.replace('MM', sMinutes);
  return sResult;
  return aUgedage[oDato.getDay() - 1] + ' den ' + oDato.getDate() + '. ' + aMaaneder[oDato.getMonth()] + ' ' + oDato.getFullYear() + ' kl. ' + padToFixedLength(oDato.getHours(), 2, '0') + ':' + padToFixedLength(oDato.getMinutes(), 2, '0')
}

/* STH: 25/8-2009 Smart dato periode visning */
function datoPeriodeVisning(sDateTime1, sDateTime2, sFormat1, sFormat2) {
  var oDate1 = toDate(sDateTime1);
  var oDate2 = toDate(sDateTime2);
  var sDate1 = toFriendlyDateTime(sDateTime1);
  var sDate2 = (typeof sFormat2 != 'undefined') ? toFriendlyDateTime(sDateTime2, sFormat2) : toFriendlyDateTime(sDateTime2);
  
  if (oDate1.getDate() == oDate2.getDate() && oDate1.getMonth() == oDate2.getMonth() && oDate1.getFullYear() == oDate2.getFullYear()) {
    // Hvis samme dag vises ikke fuld dato for sDateTime2 men kun tidspunkt
    var sDate1 = (typeof sFormat1 != 'undefined') ? toFriendlyDateTime(sDateTime1, sFormat1) : toFriendlyDateTime(sDateTime1);
    var sDate2 = (typeof sFormat2 != 'undefined') ? toFriendlyDateTime(sDateTime2, sFormat2) : toFriendlyDateTime(sDateTime2, sFormatOnlyTime);
    return sDate1 + ' til ' + sDate2;
  }
  return sDate1 + '&#160;til<br />' + sDate2;
}

function padToFixedLength(sString, iLength, sPadChar) {
  sString = sString + '';
  var _iLength = (sString + '').length;
  if (_iLength >= iLength) return sString;
  for (var i = 0; i < (iLength - _iLength); i++) {
    sString = sPadChar + sString;
  }
  return sString;
}

function toDate(sDate, sDateSeperator, sTimeSeperator) {
  ///	<summary>
  ///		1: toDate(sDate) - Converts a string to a Date object
  ///	</summary>
  ///	<param name="sDate" type="String">
  ///		1: string based datetime in the format of say "18-11-2008 11:35:00"
  ///	</param>
  ///	<param name="sDateSeperator" type="String">
  ///		1: typically a char which seperates the date information default "-"
  ///	</param>
  ///	<param name="sTimeSeperator" type="String">
  ///		1: typically a char which seperates the time information default ":"
  ///	</param>
  ///	<returns type="Date" />
  // Example format of date: 18-11-2008 11:35:00
  var aFormatMap = [2, 1, 0];
  var iTemp = sDate.indexOf(' ');
  var sDatePart = sDate.substr(0, iTemp);
  var sTimePart = sDate.substr(iTemp, sDate.length - iTemp);
  var aInputData = sDatePart.split((typeof sDateSeperator != 'undefined') ? sDateSeperator : '-');
  var aTimeData = sTimePart.split((typeof sTimeSeperator != 'undefined') ? sTimeSeperator : ':');
  return new Date(aInputData[aFormatMap[0]], aInputData[aFormatMap[1]] - 1, aInputData[aFormatMap[2]], aTimeData[0], aTimeData[1], aTimeData[2])
}
