/// /// /// /// var DateDiff = { inDays: function (d1, d2) { var t2 = d2.getTime(); var t1 = d1.getTime(); return parseInt((t2 - t1) / (24 * 3600 * 1000)); }, inWeeks: function (d1, d2) { var t2 = d2.getTime(); var t1 = d1.getTime(); return parseInt((t2 - t1) / (24 * 3600 * 1000 * 7)); }, inMonths: function (d1, d2) { var d1Y = d1.getFullYear(); var d2Y = d2.getFullYear(); var d1M = d1.getMonth(); var d2M = d2.getMonth(); return (d2M + 12 * d2Y) - (d1M + 12 * d1Y); }, inYears: function (d1, d2) { return d2.getFullYear() - d1.getFullYear(); } } var DateAdd = { Days: function (date, days) { if (isNaN(days)) throw "DataAdd: Days is not a number"; t1 = date.getTime(); t2 = days * 24 * 3600 * 1000 return new Date(parseInt(t1 + t2)); } }; var DateHelper = function () { var stripTime = function (date) { return new Date(date.getFullYear(), date.getMonth(), date.getDate()) }, between = function (beginDate, endDate, checkDate) { var c = DateHelper.NewDate(checkDate), b = DateHelper.NewDate(beginDate), e = DateHelper.NewDate(endDate); if (DateDiff.inDays(c, b) <= 0 && DateDiff.inDays(c, e) >= 0) { return true; } else { return false; } }, isDate = function (date) { var dt = parseISO8601(date) if (dt != "NaN" && dt != "Invalid Date") return true if (date == null || date == "" || (new Date(date) == "NaN") || dt == "Invalid Date") return false else return true }, formatDate = function (date) { var mm = "0" + (date.getMonth() + 1); var dd = "0" + date.getDate(); //return date.getFullYear() + "-" + mm.substr(mm.length - 2, 2) + "-" + dd.substr(dd.length - 2, 2); var dt = ""; switch (Global.CurrentCulture) { case "en": //Engelska och Franska case "fr": dt = dd.substr(dd.length - 2, 2) + "/" + mm.substr(mm.length - 2, 2) + "/" + date.getFullYear(); break; case "ty": //Tyska dt = dd.substr(dd.length - 2, 2) + "." + mm.substr(mm.length - 2, 2) + "." + date.getFullYear(); break; default: // Svenska yyyy-MM-dd dt = date.getFullYear() + "-" + mm.substr(mm.length - 2, 2) + "-" + dd.substr(dd.length - 2, 2); ; } return dt; }, newDate = function (dt) { /* var tmp = parseISO8601(dt); if (tmp != "NaN") return tmp else return new Date(dt) */ var yyyy, mm, dd, hh = 0, mi = 0, ss = 0, ms = 0; //Date switch (Global.CurrentCulture) { case "en": //Engelska och Franska case "fr": case "ty": //Tyska yyyy = dt.substring(6, 10); mm = dt.substring(3, 5) * 1 - 1 dd = dt.substring(0, 2) break; case "sv": yyyy = dt.substring(0, 4); mm = dt.substring(5, 7) * 1 - 1 dd = dt.substring(8, 10) break; default: throw "Invalid Culture"; } //Time if (dt.length > 10) { if (dt.length > 20) { ms = dt.substring(20); dt = dt.substring(0, 19); //Stip ms } switch (dt.length) { case 19: ss = dt.substring(17, 19); case 16: mi = dt.substring(14, 16); case 13: hh = dt.substring(11, 13); break; default: throw "Invalid time format"; } } return new Date(yyyy, mm, dd, hh, mi, ss, ms); }, /*toInternalDate = function (dt) { var internalDt = ""; switch ("dd/mm/yy") { case "dd/mm/yy": //Engelska och Franska internalDt = dt.substring(6) + "-" + dt.substring(3, 5) + "-" + dt.substring(0, 2); break; case "dd.mm.yy": //Tyska internalDt = dt.substring(6) + "-" + dt.substring(3, 5) + "-" + dt.substring(0, 2); break; default: internalDt = dt; } if (isDate(internalDt)) { return internalDt; } else { return ""; } },*/ /**Parses string formatted as YYYY-MM-DD to a Date object. * If the supplied string does not match the format, an * invalid Date (value NaN) is returned. * @param {string} dateStringInRange format YYYY-MM-DD, with year in * range of 0000-9999, inclusive. * @return {Date} Date object representing the string. */ parseISO8601 = function (dateStringInRange) { var isoExp = /^\s*(\d{4})-(\d\d)-(\d\d)\s*$/, date = new Date(NaN), month, parts = isoExp.exec(dateStringInRange); if (parts) { month = +parts[2]; date.setFullYear(parts[1], month - 1, parts[3]); if (month != date.getMonth() + 1) { date.setTime(NaN); } } return date; }, weekdays = function () { var weekday = new Array(7); weekday[0] = "S"; weekday[1] = "M"; weekday[2] = "Ti"; weekday[3] = "O"; weekday[4] = "To"; weekday[5] = "F"; weekday[6] = "L"; return weekday; } ; return { StripTime: stripTime, FormatDate: formatDate, IsDate: isDate, NewDate: newDate, Weekdays: weekdays, Between: between/*, ToInternalDate: toInternalDate*/ } } (); /********************************* *********************************/ var EventHelper = function () { var stopEventFromBubbleUp = function (e) { jQuery.event.fix(e).stopPropagation(); }; return { StopEventFromBubbleUp: stopEventFromBubbleUp } } (); /**************************************** ****************************************/ var CookiesHelper = function () { var read = function (cookieName) { var i, cookie, value, cookies = document.cookie.split(";"); for (i = 0; i < cookies.length; i++) { cookie = cookies[i].substr(0, cookies[i].indexOf("=")); value = cookies[i].substr(cookies[i].indexOf("=") + 1); cookie = cookie.replace(/^\s+|\s+$/g, ""); if (cookie == cookieName) { return unescape(value); } } return ""; }, write = function (cookieName, value, expire) { //sätter defult till 10 dagar expire. //Sättet att skriva på ger oss möjlighet att skicka in null expire = typeof expire !== 'undefined' ? expire : DateAdd.Days(new Date(), 10); var cookieValue = escape(value) + ((expire == null) ? "" : "; expires=" + expire.toUTCString()) + "; path=/"; document.cookie = cookieName + "=" + cookieValue; }; return { Write: write, Read: read }; } (); String.prototype.replaceAt = function (index, char) { return this.substr(0, index) + char + this.substr(index + char.length); } String.prototype.startsWith = function (str, caseInsnsitive) { if (this.length == 0 && str.length > 0) return false; if (caseInsnsitive) { return (this.toLowerCase().match("^" + str.toLowerCase()) == str.toLowerCase()) } else { return (this.match("^" + str) == str) } } String.prototype.endsWith = function (str, caseInsnsitive) { if (this.length == 0 && str.length > 0) return false; if (caseInsnsitive) { return (this.toLowerCase().match(str.toLowerCase() + "^") == str.toLowerCase()) } else { return (this.match(str + "^") == str) } } var loadingGUI = function () { createOverlay = function (container) { var newDate = new Date; var overlayId = "overlay_" + newDate.getTime(); $("#"+overlayId).remove() container.before('
Loading…
'); $("#" + overlayId).css({ height: container.outerHeight(), width: container.outerWidth() }); var lodingDiv = $("div.Loding", "#" + overlayId); lodingDiv.css({ left: ((container.outerWidth() / 2) - (lodingDiv.outerWidth() / 2)) }); return overlayId }; return{ CreateOverlay: createOverlay } } (); /*************************************** ****************************************/ (function ($) { //re-set all client validation given a jQuery selected form or child $.fn.resetValidation = function () { var $form = this.closest('form'); //reset jQuery Validate's internals $form.validate().resetForm(); //reset unobtrusive validation summary, if it exists $form.find("[data-valmsg-summary=true]") .removeClass("validation-summary-errors") .addClass("validation-summary-valid") .find("ul").empty(); //reset unobtrusive field level, if it exists $form.find("[data-val=true]") .removeClass("input-validation-error") .addClass("valid"); $form.find("[data-valmsg-replace]") .removeClass("field-validation-error") .addClass("field-validation-valid") .empty(); return $form; }; //reset a form given a jQuery selected form or a child //by default validation is also reset $.fn.formReset = function (resetValidation) { var $form = this.closest('form'); $form[0].reset(); if (resetValidation == undefined || resetValidation) { $form.resetValidation(); } return $form; } })(jQuery);