//Copyright 2013 //Version: 1.0.2.4 //Create: May 30 2012 //Modify: November 4 2015 String.prototype.TrimLeft=function() { return this.replace(/^(\s|\xA0| )*/,""); }; String.prototype.TrimRight=function() { return this.replace(/(\s|\xA0| )*$/,""); }; String.prototype.trim = String.prototype.Trim=function() { return this.TrimLeft().TrimRight(); }; String.prototype.toLower = function () { return this.toLowerCase(); }; String.prototype.Format = function() { var obj = arguments[0]; var s = this; if (typeof obj == "object") for (i in obj) { var reg = new RegExp("\\\{" + i + "\\\}", "g"); s = s.replace(reg, obj[i]); } else for(var i=0;i len? str.substring(0, len) + (len > 3? "...": ""): str; } function InitFormValue(f, v) { switch(f.type) { case "file": break; case "select-one": for(var j = 0; j < f.options.length; j++) { if(f.options[j].value == v) { f.options[j].selected = true; break; } } break; case "checkbox": f.checked = v; break; case "radio": f.checked = v; break; default: f.value=value; break; } } function defined(a) { var ret = (typeof(a)=="undefined"); if (ret == true) return false; if (typeof(a) == "string" && a=="") return false; return (a!=null); } function isOk(a) { return defined(a); } function GetViewWidth(full) { if(!jQuery) return null; return full ? Math.max(jQuery(document).width(), jQuery(window).width()) : jQuery(window).width(); } function GetViewHeight(full) { if(!jQuery) return null; return full ? Math.max(jQuery(document).height(), jQuery(window).height()) : jQuery(window).height(); } function addStyle(name, rules) { var node = document.createElement("style"); node.setAttribute("type", "text/css"); var text = "{0}{{1}}".Format(name, rules); var isIE = /msie/i.test(navigator.userAgent); if(!isIE) node.appendChild(document.createTextNode(text)); document.getElementsByTagName("head")[0].appendChild(node); if(isIE && document.styleSheets && document.styleSheets.length > 0) { var lastStyle = document.styleSheets[document.styleSheets.length - 1]; if(typeof(lastStyle.addRule) == "object") lastStyle.addRule(name, rules); } } function _trace(obj) { window.sabis = window.sabis ? window.sabis : {}; var sabis = window.sabis; if (!sabis.debContainer) { sabis.debContainer = $("
"); $(document.body).append(sabis.debContainer); } var el = $("
"); if ((typeof obj == typeof ("")) || (typeof obj == typeof (1))) el.html(obj); /* else { for (i in obj) { deb("" + i + ""); deb(obj[i]); } } */ sabis.debContainer.prepend(el); } function inArray(array, obj) { return (array.indexOf(obj) != -1); } function compare(obj1, obj2, datatype) { var greaterThan = ">"; var lessThan = "<"; var equal = "="; obj1 = obj1 ? obj1 : ""; obj2 = obj2 ? obj2 : ""; switch (datatype.toLowerCase()) { case "number": case "integer": case "decimal": case "float": case "int": var val1 = parseFloat(obj1.toString()); var val2 = parseFloat(obj2.toString()); if (val1 > val2) return greaterThan; if (val1 < val2) return lessThan; return equal; break; case "date": var val1 = Date.parse(obj1.toString()); var val2 = Date.parse(obj2.toString()); if (val1 > val2) return greaterThan; if (val1 < val2) return lessThan; return equal; break; case "string": var val1 = obj1.toString(); var val2 = obj2.toString(); if (val1 > val2) return greaterThan; if (val1 < val2) return lessThan; return equal; break; default: var val1 = obj1.toString().length; var val2 = obj2.toString().length; if (val1 > val2) return greaterThan; if (val1 < val2) return lessThan; return equal; break; } } var lwUtils = { version: "1.0.2.2", createDate: "May 30 2012", modifiedDate: "January 16 2013", _an: 0, an: function () { return ++sabis.utils._an; }, dimension: Dimension, isOk: isOk, trace: _trace, compare: compare, inArray: inArray, initFormValue: InitFormValue, trankate: Trank, viewWith: GetViewWidth, viewHeight: GetViewHeight, passwordScorrer: function (password) { var score = 0; var len = password.length; if (len >= 21) { score = 7; } else if (len >= 16) { score = 6; } else if (len >= 13) { score = 5; } else if (len >= 10) { score = 4; } else if (len >= 8) { score = 3; } else if (len >= 5) { score = 2; } //lower case char if (passwd.match(/[a-z]/)) score += 1; //upper case char if (passwd.match(/[A-Z]/)) score += 5; // NUMBERS if (passwd.match(/\d+/)) score += 5; if (passwd.match(/(.*[0-9].*[0-9].*[0-9])/)) score += 5; // SPECIAL CHAR if (passwd.match(/.[!,@,#,$,%,^,&,*,?,_,~]/)) score += 5; if (passwd.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)) score += 5; // COMBOS //lower and upper case if (passwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) score += 2; // letters, numbers if (passwd.match(/([a-zA-Z])/) && passwd.match(/([0-9])/)) score += 2; // letters, numbers, and special characters if (passwd.match(/([a-zA-Z0-9].*[!,@,#,$,%,^,&,*,?,_,~])|([!,@,#,$,%,^,&,*,?,_,~].*[a-zA-Z0-9])/)) score += 2; //below 16 weak, above 45 strong a meter can be created from 16(0%) to 45(95%) return score; }, equals: function (a, b, ignoreCase) { if (ignoreCase) { return a.toLowerCase() === b.toLowerCase(); } return a === b; }, fieldMask: function (field, val) { if (!isOk(field)) return; field.bind("focus", function () { if (field.val() == val) { field.val(""); field.removeClass("empty"); } }); field.bind("blur", function () { if (field.val() == "") { field.val(val); field.addClass("empty"); } }); }, stripOutHtmlTags: function (s) { if (s == null) return ""; var r = new RegExp("<[^>]+>"); return s.replace(r, ""); }, trankate: function (s, l, end) { end = "..." || end; s = sabis.utils.stripOutHtmlTags(s); if (s.length > l) { s = s.substring(0, l - 3); var r = new RegExp("\\s([a-z_0-9.&;])*$", "i"); return sabis.utils.sup(s.replace(r, end)); } return s; }, sup: function (s) { return s.replace(/&reg;<\/sup>/ig, "®") .replace(/®<\/sup>/ig, "®") .replace(/\&reg;/ig, "®") .replace(/\®/ig, "®") .replace(/®/ig, "®"); }, relative_time: function (parsed_date) { parsed_date = typeof parsed_date === "string" ? Date.parse(parsed_date) : parsed_date; var relative_to = (arguments.length > 1) ? arguments[1] : new Date(); var delta = parseInt((relative_to.getTime() - parsed_date) / 1000); //delta = delta + (relative_to.getTimezoneOffset() * 60); if (delta < 60) { return 'less than a minute ago'; } else if(delta < 120) { return 'about a minute ago'; } else if(delta < (60*60)) { return (parseInt(delta / 60)).toString() + ' minutes ago'; } else if(delta < (120*60)) { return 'about an hour ago'; } else if(delta < (24*60*60)) { return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago'; } else if(delta < (48*60*60)) { return '1 day ago'; } else { return (parseInt(delta / 86400)).toString() + ' days ago'; } }, capitaliseFirstLetter: function(string) { return string.charAt(0).toUpperCase() + string.slice(1); }, toId: function (str, replacement) { if (!isOk(replacement)) replacement = "-"; str = str.toLowerCase(); str = str.replace("®", ""); var r = /\W/ig; var r1 = /\s+/g; var before = "àÀâÂäÄáÁéÉèÈêÊëËìÌîÎïÏòÒôÔöÖùÙûÛüÜçÇ’ñ/ó:"; var after = "aAaAaAaAeEeEeEeEiIiIiIoOoOoOuUuUuUcC-n-o "; var cleaned = str; for (i = 0; i < before.length; i++) { cleaned = cleaned.replace(before.charAt(i), after.charAt(i)); } cleaned = cleaned.replace(r, " "); cleaned = cleaned.replace(r1, " "); cleaned = cleaned.trim().replace(/ /g, replacement); return cleaned; }, request: function (key) { var _ = sabis.utils; if (!_.query) { _.query = {}; var temp = location.href.split("?"); if (temp.length == 0) return null; var hash = temp[1]; var arr = hash.split("&"); _.query = {}; for (var i = 0; i < arr.length; i++) { if (arr[i].Trim() != "") { var temp = arr[i].Trim().split("="); if (temp.length == 2) { _.query[temp[0].Trim()] = temp[1].Trim(); } } } } return _.query[key]; }, getTopZIndex: function (container) { var _ = sabis.utils; //if (_.maxIndex) // return _.maxIndex; container = "body" || container; var maxZ = 1; $(container + ' *').each(function (e, n) { var $this = $(this); if ($this.css('position') != 'static' && $this.css('z-index') != "auto") { maxZ = Math.max(maxZ, parseInt($this.css('z-index'))); } }); _.maxIndex = maxZ + 100; return _.maxIndex; }, getFromJsonArray: function (jSonArray, objectToTest) { //Use TAFFYDB var ret = null; for (var i = 0; i < jSonArray.length; i++) { var testOk = true; for (prop in objectToTest) { if (typeof prop == "string") { if (jSonArray[i][prop] !== objectToTest[prop]) { testOk = false; break; } } } if (testOk) { ret = jSonArray[i]; break; } } return ret; }, toURL: function (str, replacement) { if (!isOk(replacement)) replacement = "-"; str = str.toLowerCase(); var htmlRemover = new RegExp("<[^>]+>", "ig"); str = str.replace(htmlRemover, ""); str = str.replace(/\®/g, ""); var r = new RegExp("\\W", "ig"); var r1 = new RegExp("\\s+", "ig"); var before = "àÀâÂäÄáÁéÉèÈêÊëËìÌîÎïÏòÒôÔöÖùÙûÛüÜçÇ’ñ/ó:"; var after = "aAaAaAaAeEeEeEeEiIiIiIoOoOoOuUuUuUcC-n-o "; var cleaned = str; for (var i = 0; i < before.Length; i++) { cleaned = cleaned.replace(new RegExp(before[i], "ig"), after[i].ToString()); } cleaned = cleaned.replace(r1, " ").replace(r, " ").trim(); cleaned = cleaned.replace(/ /g, replacement); var r3 = new RegExp(replacement + "+", "ig"); return cleaned.replace(r3, replacement); } } this.sabis = this.sabis ? this.sabis : {}; this.sabis.utils = lwUtils; /* ============================================== Disable Scrolling =============================================== */ // left: 37, up: 38, right: 39, down: 40, // spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36 var keys = [37, 38, 39, 40]; function preventDefault(e) { e = e || window.event; if (e.preventDefault) e.preventDefault(); e.returnValue = false; } function keydown(e) { for (var i = keys.length; i--;) { if (e.keyCode === keys[i]) { preventDefault(e); return; } } } function wheel(e) { preventDefault(e); } function disable_scroll() { if (window.addEventListener) { window.addEventListener('DOMMouseScroll', wheel, false); } window.onmousewheel = document.onmousewheel = wheel; document.onkeydown = keydown; ///added to prevent drag scroll of the browser's native scrollbar var x = window.scrollX; var y = window.scrollY; window.onscroll = function () { window.scrollTo(x, y); }; } function enable_scroll() { if (window.removeEventListener) { window.removeEventListener('DOMMouseScroll', wheel, false); } window.onmousewheel = document.onmousewheel = document.onkeydown = null; ///added to undo the prevent drag scroll of the browser's native scrollbar window.onscroll = function () { }; } sabis.utils.enableScroll = enable_scroll; sabis.utils.disableScroll = disable_scroll;