/******************************************************************************* * Title: Help Desk Software HESK * Version: 2.6.0 from 22nd February 2015 * Author: Klemen Stirn * Website: http://www.hesk.com ******************************************************************************** * COPYRIGHT AND TRADEMARK NOTICE * Copyright 2005-2015 Klemen Stirn. All Rights Reserved. * HESK is a registered trademark of Klemen Stirn. * The HESK may be used and modified free of charge by anyone * AS LONG AS COPYRIGHT NOTICES AND ALL THE COMMENTS REMAIN INTACT. * By using this code you agree to indemnify Klemen Stirn from any * liability that might arise from it's use. * Selling the code for this program, in part or full, without prior * written consent is expressly forbidden. * Using this code, in part or full, to create derivate work, * new scripts or products is expressly forbidden. Obtain permission * before redistributing this software over the Internet or in * any other medium. In all cases copyright and header must remain intact. * This Copyright is in full effect in any country that has International * Trade Agreements with the United States of America or * with the European Union. * Removing any of the copyright notices without purchasing a license * is expressly forbidden. To remove HESK copyright notice you must purchase * a license for this script. For more information on how to obtain * a license please visit the page below: * https://www.hesk.com/buy.php *******************************************************************************/ function hesk_insertTag(tag) { var text_to_insert = '%%'+tag+'%%'; hesk_insertAtCursor(document.form1.msg, text_to_insert); document.form1.message.focus(); } function hesk_insertAtCursor(myField, myValue) { if (document.selection) { myField.focus(); sel = document.selection.createRange(); sel.text = myValue; } else if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); } else { myField.value += myValue; } } function hesk_changeAll(myID) { var d = document.form1; var setTo = myID.checked ? true : false; for (var i = 0; i < d.elements.length; i++) { if(d.elements[i].type == 'checkbox' && d.elements[i].name != 'checkall') { d.elements[i].checked = setTo; } } } function hesk_attach_disable(ids) { for($i=0;$i 0) { combinations += 10; } if (hesk_contains(password, lowercase) > 0) { combinations += 26; } if (hesk_contains(password, uppercase) > 0) { combinations += 26; } if (hesk_contains(password, punctuation) > 0) { combinations += punctuation.length; } var totalCombinations = Math.pow(combinations, password.length); var timeInSeconds = (totalCombinations / 200) / 2; var timeInDays = timeInSeconds / 86400 var lifetime = 365000; var percentage = timeInDays / lifetime; var friendlyPercentage = hesk_cap(Math.round(percentage * 100), 98); if (friendlyPercentage < (password.length * 5)) { friendlyPercentage += password.length * 5; } var friendlyPercentage = hesk_cap(friendlyPercentage, 98); var progressBar = document.getElementById("progressBar"); progressBar.style.width = friendlyPercentage + "%"; if (percentage > 1) { // strong password progressBar.classList.remove('progress-bar-danger'); progressBar.classList.remove('progress-bar-warning'); progressBar.classList.add('progress-bar-success'); return; } if (percentage > 0.5) { // reasonable password progressBar.classList.remove('progress-bar-danger'); progressBar.classList.remove('progress-bar-success'); progressBar.classList.add('progress-bar-warning'); return; } if (percentage > 0.10 || percentage <= 0.10) { // weak password progressBar.classList.remove('progress-bar-warning'); progressBar.classList.remove('progress-bar-success'); progressBar.classList.add('progress-bar-danger'); return; } } function hesk_cap(number, max) { if (number > max) { return max; } else { return number; } } function hesk_contains(password, validChars) { count = 0; for (i = 0; i < password.length; i++) { var char = password.charAt(i); if (validChars.indexOf(char) > -1) { count++; } } return count; } function setCookie(name, value, expires, path, domain, secure) { document.cookie= name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); } 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)); } 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"; } }