   function setCookie(name,value,days) {      if (days) {         var date = new Date();         date.setTime(date.getTime()+(days*24*60*60*1000));         var expires = "; expires="+date.toGMTString();      }      else var expires = "";      document.cookie = name+"="+value+expires+"; path=/";   }   function getCookie(name) {      var nameEQ = name + "=";      var ca = document.cookie.split(';');      for(var i=0;i < ca.length;i++) {         var c = ca[i];         while (c.charAt(0)==' ') c = c.substring(1,c.length);         if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);      }      return null;   }      function show(elemId)   {      elem = document.getElementById(elemId);      if (elem.style.display == "block") {         elem.style.display = "none"      }      else {         elem.style.display = "block"      }   }      function dateSelect() {      var UTF8 = {          encode: function(s){              for(var c, i = -1, l = (s = s.split("")).length, o = String.fromCharCode; ++i < l;                  s[i] = (c = s[i].charCodeAt(0)) >= 127 ? o(0xc0 | (c >>> 6)) + o(0x80 | (c & 0x3f)) : s[i]              );              return s.join("");          },          decode: function(s){              for(var a, b, i = -1, l = (s = s.split("")).length, o = String.fromCharCode, c = "charCodeAt"; ++i < l;                  ((a = s[i][c](0)) & 0x80) &&                  (s[i] = (a & 0xfc) == 0xc0 && ((b = s[i + 1][c](0)) & 0xc0) == 0x80 ?                  o(((a & 0x03) << 6) + (b & 0x3f)) : o(128), s[++i] = "")              );              return s.join("");          }      }      var dateSelect={         firstLoad: true,         date:new Date(),         weekday:new Array(UTF8.decode("Må"),"Ti","On","To","Fr",UTF8.decode("Lö"),UTF8.decode("Sö")),         updateDate:function(obj){            year = obj['year'][obj['year'].selectedIndex].value;            month = obj['month'].selectedIndex;            this.date.setFullYear(year,month);            this.createCal();         },         setNewDate:function(day){            year = this.date.getFullYear();            month = this.date.getMonth()+1;            this.date.setFullYear(year, month-1, day);            setCookie("lastSelectedYear", year);            setCookie("lastSelectedMonth", month-1);            setCookie("lastSelectedDate", day);            this.writeDate(this.date);            this.createCal();            show('datePicker');         },         writeDate:function() {            year = this.date.getFullYear();            month = this.date.getMonth()+1;            day = this.date.getDate();            document.getElementById("dateView").value = year+((month<10)?"-0":"-")+month+((day<10)?"-0":"-")+day;         },         createYearList:function(){            d = new Date();            yearList = "<select name=\"year\" onchange=\"dateSelect.updateDate(this.form);\" style=\"float: left;\">";            for(var i=d.getFullYear()-1;i<d.getFullYear()+10;i++){               yearList = yearList + "<option value=\""+i+"\" "+((this.date.getFullYear()==i)?"selected=\"selected\"":"")+">"+i+"</option>";            }            yearList = yearList + "</select>";            return yearList;         },         createMonthList:function(){            monthList = "<select name=\"month\" onchange=\"dateSelect.updateDate(this.form);\" style=\"float: left;\">";            for(var i=1;i<=12;i++){               monthList = monthList + "<option value=\""+((i<10)?"0":"")+i+"\" "+((this.date.getMonth()+1==i)?"selected=\"selected\"":"")+">"+((i<10)?"0":"")+i+"</option>";            }            monthList = monthList + "</select>";            return monthList;         },         myGetDay:function(d){            dayNumber=d.getDay()-1;            if (dayNumber==-1) {               dayNumber=6;            }            return dayNumber;         },         createCal:function(){            if (this.firstLoad && getCookie("lastSelectedYear")) {               this.date.setFullYear(getCookie("lastSelectedYear"), getCookie("lastSelectedMonth"), getCookie("lastSelectedDate"));               this.writeDate();               this.firstLoad = false;            }            picker = "\               <table class=\"datePicker\">\                  <tr class=\"yearMonth\"><td colspan=7>"+                     this.createYearList()+                     this.createMonthList()+"\                     <a href=\"javascript:show('datePicker')\"><img src=\"images/close.png\" style=\"float: right; margin-top: 2px;\"></a>\                  </td></tr>\                  <tr class=\"dayNames\">";            for(var i=0;i<=6;i++){               picker = picker + "\                     <td style=\"text-align: center;\">"+this.weekday[i]+"</td>";            }            picker = picker + "\                  </tr>";            d = new Date(this.date.getFullYear(), this.date.getMonth(), 1);            first = this.myGetDay(d);            picker = picker + "\                  <tr>";            for (var i=0; i<first; i++) {               picker = picker + "\                     <td class=\"emptyDate\"> </td>";            }            for(var i=1;i<=new Date(this.date.getFullYear(),this.date.getMonth()+1,0).getDate();i++){               d = new Date(this.date.getFullYear(), this.date.getMonth(), i);               dayNumber = this.myGetDay(d);               picker = picker +                   ((dayNumber==0)?"<tr>":"") +                  ((this.date.getDate()==i)?                     "<td class=\"daySelected\" onclick=\"javascript:dateSelect.setNewDate('"+i+"');\">":                     "<td class=\"day\" onclick=\"javascript:dateSelect.setNewDate('"+i+"');\">") +                  i +                  "</td>" +                  ((dayNumber==6)?"</tr>":"");            }            for (var i=dayNumber; i<6; i++) {               picker = picker + "\                  <td class=\"emptyDate\"></td>";            }            picker = picker + "\               </table>";            document.getElementById("datePicker").innerHTML = picker;         }      }      dateSelect.createCal();      return dateSelect;   }
