
var sStartDate = getCookie('sStartDate');
var sEndDate = getCookie('sEndDate');


/*
    calcPremium
*/
function calcPremium(sStartDate, sEndDate, iDayPremium, iBasicPremium)
{
    var iDays = daysBetween(sStartDate, sEndDate) + 1;
    var iPremium;

    if (iDays > 0)
    {
        if (iDays > 30) iPremium = (iBasicPremium + iDayPremium * (iDays - 30))
        else iPremium = iBasicPremium;
        if (iPremium > 999) iPremium = numberFormat(iPremium); //tusentalsavskiljare
        return iPremium;
    }
}

/*
    showPremium
*/
function showPremium()
{
    var sMsg = '<strong>Ta Backup p&aring; din resa</strong><br /><div class="big">Teckna resef&ouml;rs&auml;kring<br />fr&aring;n 9 kr/dag!</div>';

    today = new Date();
    var datToday = today.getFullYear() + '-' + zeroPad(today.getMonth() + 1) + '-' + zeroPad(today.getDate());

    if (document.getElementById('_ctl0_controlMyPage__ctl0_dropDownListStartDateYear'))
        sStartDate = document.getElementById('_ctl0_controlMyPage__ctl0_dropDownListStartDateYear').value
        + '-'
        + document.getElementById('_ctl0_controlMyPage__ctl0_dropDownListStartDateMonth').value
        + '-'
        + document.getElementById('_ctl0_controlMyPage__ctl0_dropDownListStartDateDay').value;

    if (document.getElementById('_ctl0_controlMyPage__ctl0_dropDownListEndDateYear'))
        sEndDate = document.getElementById('_ctl0_controlMyPage__ctl0_dropDownListEndDateYear').value
        + '-'
        + document.getElementById('_ctl0_controlMyPage__ctl0_dropDownListEndDateMonth').value
        + '-'
        + document.getElementById('_ctl0_controlMyPage__ctl0_dropDownListEndDateDay').value;

    if
    (
        typeof(sStartDate) == 'string'
        && sStartDate.length == 10 && sEndDate.length == 10
        && isValidDate(sStartDate) &&  isValidDate(sEndDate)
        && daysBetween(datToday, sStartDate) > 0 &&  daysBetween(datToday, sEndDate) > 0
        && daysBetween(sStartDate, sEndDate) > 0
        && daysBetween(sStartDate, sEndDate) < 365
    )
    {
        sMsg = 'Resef&ouml;rs&auml;kring mellan<br/>' + sStartDate + ' och ' + sEndDate
             + '<br/><div class="big">Backup Basic <span class="alert">'
             + calcPremium(sStartDate, sEndDate, 9, 265)
           //  + ' kr</span><br />Backup Extended <span class="alert">'
           //  + calcPremium(sStartDate, sEndDate, 15, 450)
             + ' kr</span></div>';

        setCookie('sStartDate', sStartDate);
        setCookie('sEndDate', sEndDate);
    }
    else
    {
        sStartDate = '';
        sEndDate = '';

        deleteCookie('sStartDate');
        deleteCookie('sEndDate');
    }
    if (document.getElementById('msg')) document.getElementById('msg').innerHTML = sMsg;
}

/*
    zeroPad

    Lägger till en nolla framför ensiffriga dagar och månader
*/
function zeroPad(dayOrMonth)
{
     if (dayOrMonth < 10) return '0' + dayOrMonth;
     else return dayOrMonth;
}

/*
    numberFormat
*/
function numberFormat(i)
{
    i+='';
    var s = i.substr(0,1) + ' ' + i.substr(1);
    return s;
}

/*
    numbersOnly

    Rensar alla tecken i strängen som inte är siffror
*/
function numbersOnly(s)
{
    var re = /\D+/g
    return s.replace(re,"");
}

/*
    daysBetween

    Returnerar antal dagar mellan angivna datum på formen åååå-mm-dd
*/
function daysBetween(d1, d2)
{
    var date1 = stringToDate(d1);
    var date2 = stringToDate(d2);
    var oneDay = 1000*60*60*24;
    return Math.round((date2-date1)/(oneDay));
}

/*
    stringToDate
*/
function stringToDate(s)
{
    s = numbersOnly(s);

    century = (s.substring(0,2) < 9)? '20' : '19'

    if (s.length == 6) s = century + s //lägg till århundrade på datum av formen ååmmdd

    var year = s.substr(0,4);
    var month = s.substr(4,2) - 1; // första månaden är 0
    var day = s.substr(6,2);

    return Date.UTC(year, month, day);
}

/*
    isValidDate

    Kontrollerar om ett givet datum på formen åååå-mm-dd är ett giltigt datum.
*/
var daysOfMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var daysOfMonthLeapYear = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

function isValidDate(d)
{
    var year = d.substr(0,4);
    var month = d.substr(5,2) - 1;
    var day = d.substr(8,2);

    if
    ((isLeapYear(year) && (day > daysOfMonthLeapYear[month]))
    ||
    (!isLeapYear(year) && (day > daysOfMonth[month])))
    { return false; }
    else return true;
}

/*
    isLeapYear

    Kontrollerar om angivet årtal representerar ett skottår
*/
function isLeapYear(year)
{
    if ((year/4)   != Math.floor(year/4))   return false;
    if ((year/100) != Math.floor(year/100)) return true;
    if ((year/400) != Math.floor(year/400)) return false;
    return true;
}

/*
    setCookie
*/
function setCookie(name, value, expires, path, domain, secure)
{
    var curCookie = name + '=' + escape(value) +
        ((expires) ? '; expires=' + expires.toGMTString() : '') +
        ((path) ? '; path=' + path : '') +
        ((domain) ? '; domain=' + domain : '') +
        ((secure) ? '; secure' : '');
    document.cookie = curCookie;
}

/*
    getCookie
*/
function getCookie(name)
{
    var dc = document.cookie;
    var prefix = name + '=';
    var begin = dc.indexOf('; ' + prefix);
    if (begin == -1)
    {
      begin = dc.indexOf(prefix);
      if (begin != 0) return null;
    }
    else
      begin += 2;
      var end = document.cookie.indexOf(';', begin);
    if (end == -1) end = dc.length;
    return unescape(dc.substring(begin + prefix.length, end));
}

/*
    deleteCookie
*/
function deleteCookie(name, path, domain)
{
    if (getCookie(name))
    {
      document.cookie = name + '=' +
      ((path) ? '; path=' + path : '') +
      ((domain) ? '; domain=' + domain : '') +
      '; expires=Thu, 01-Jan-70 00:00:01 GMT';
    }
}
