// $Id: tiki-js.js 25818 2010-03-02 19:56:57Z pkdille $ // // Locally edited version by Greg Jackson 5/12/2010 for IE compatibility // See START LOCAL and END LOCAL comments // var feature_no_cookie = 'n'; function browser() { var b = navigator.appName; if (b == "Netscape") { this.b = "ns"; } else { this.b = b; } this.version = navigator.appVersion; this.v = parseInt(this.version, 10); this.ns = (this.b=="ns" && this.v>=5); this.op = (navigator.userAgent.indexOf('Opera')>-1); this.safari = (navigator.userAgent.indexOf('Safari')>-1); this.op7 = (navigator.userAgent.indexOf('Opera')>-1 && this.v>=7); this.ie56 = (this.version.indexOf('MSIE 5')>-1||this.version.indexOf('MSIE 6')>-1); /* ie567 added by Enmore */ this.ie567 = (this.version.indexOf('MSIE 5')>-1||this.version.indexOf('MSIE 6')>-1||this.version.indexOf('MSIE 7')>-1); this.iewin = (this.ie56 && navigator.userAgent.indexOf('Windows')>-1); /* iewin7 added by Enmore */ this.iewin7 = (this.ie567 && navigator.userAgent.indexOf('Windows')>-1); this.iemac = (this.ie56 && navigator.userAgent.indexOf('Mac')>-1); this.moz = (navigator.userAgent.indexOf('Mozilla')>-1); this.moz13 = (navigator.userAgent.indexOf('Mozilla')>-1 && navigator.userAgent.indexOf('1.3')>-1); this.oldmoz = (navigator.userAgent.indexOf('Mozilla')>-1 && navigator.userAgent.indexOf('1.4')>-1 || navigator.userAgent.indexOf('Mozilla')>-1 && navigator.userAgent.indexOf('1.5')>-1 || navigator.userAgent.indexOf('Mozilla')>-1 && navigator.userAgent.indexOf('1.6')>-1); this.ns6 = (navigator.userAgent.indexOf('Netscape6')>-1); this.docom = (this.ie56||this.ns||this.iewin||this.op||this.iemac||this.safari||this.moz||this.oldmoz||this.ns6||this.iewin8); } function getElementById(id) { // actually gets element by name too... if (typeof document.getElementById == "function") { var el = document.getElementById(id); if (el) { return el; } } if (typeof document.getElementsByName == "function") { var arr = document.getElementsByName(id); if (arr.length > 0) { return arr[0]; } } for (i=0;i k; ++k ) { if( lines[k].length !== 0 ) { newString += replaceString.replace(toBeReplaced, lines[k]); } if( k != lines.length - 1 ) { newString += "\n"; } } } else { if (replaceSelection) { newString = replaceString; } else if (replaceString.match(toBeReplaced)) { newString = replaceString.replace(toBeReplaced, textarea.value.substring(selectionStart, selectionEnd)); } else { newString = replaceString + '\n' + textarea.value.substring(selectionStart, selectionEnd); } } textarea.value = textarea.value.substring(0, selectionStart) + newString + textarea.value.substring(selectionEnd); setSelectionRange(textarea, selectionStart, selectionStart + newString.length); } else { // insert at caret textarea.value = textarea.value.substring(0, selectionStart) + replaceString + textarea.value.substring(selectionEnd); setCaretToPos(textarea, selectionStart + replaceString.length); } textarea.scrollTop=scrollTop; if (hiddenParents.length) { hiddenParents.hide(); } } function setUserModuleFromCombo(id, textarea) { document.getElementById(textarea).value = document.getElementById(textarea).value + document.getElementById(id).options[document.getElementById(id).selectedIndex].value; //document.getElementById('usermoduledata').value='das'; } function show(foo,f,section) { document.getElementById(foo).style.display = "block"; if (f) { setCookie(foo, "o", section); } } function hide(foo,f, section) { if (document.getElementById(foo)) { document.getElementById(foo).style.display = "none"; if (f) { var wasnot = getCookie(foo, section, 'x') == 'x'; setCookie(foo, "c", section); if (wasnot) { history.go(0); } } } } function flip_multi(foo,style) { showit = 'show_' + escape(foo); if (style === undefined) { style = 'block'; } if (this.iewin && style == 'table-cell') { style = 'block'; } //FIXME elements = document.getElementsByName(foo); for (i=0 ; i < elements.length; i++) { if (elements[i].style.display == "none") { elements[i].style.display = style; setSessionVar(showit,'y'); } else { if (elements[i].style.display == style) { elements[i].style.display = "none"; setSessionVar(showit, 'n'); } else { elements[i].style.display = style; setSessionVar(showit, 'y'); } } } } function flip(foo,style) { showit = 'show_' + escape(foo); if (style === undefined) { style = 'block'; } /* iewin changed to iewin7 by Enmore */ if (this.iewin7 && style == 'table-cell') { style = 'block'; } if (document.getElementById(foo).style.display == "none") { document.getElementById(foo).style.display = style; setSessionVar(showit,'y'); } else { if (document.getElementById(foo).style.display == style) { document.getElementById(foo).style.display = "none"; setSessionVar(showit, 'n'); } else { document.getElementById(foo).style.display = style; setSessionVar(showit, 'y'); } } } function toggle(foo) { if (document.getElementById(foo).style.display == "none") { show(foo, true, "menu"); } else { if (document.getElementById(foo).style.display == "block") { hide(foo, true, "menu"); } else { show(foo, true, "menu"); } } } function setopacity(obj,opac){ if (document.all && !is.op){ //ie obj.filters.alpha.opacity = opac * 100; }else{ obj.style.MozOpacity = opac; obj.style.opacity = opac; } } function flip_thumbnail_status(id) { var elem = document.getElementById(id); if ( elem.className == 'thumbnailcontener' ) { elem.className += ' thumbnailcontenerchecked'; } else { elem.className = 'thumbnailcontener'; } } function flip_class(itemid, class1, class2) { var elem = document.getElementById(itemid); if (elem && typeof elem != 'undefined') { elem.className = elem.className == class1 ? class2 : class1; setCookie('flip_class_' + itemid, elem.className); } } function tikitabs(focus,max) { var didit = false, didone = false; for (var i = 1; i <= max; i++) { var tabname = 'tab' + i; var content = 'content' + i; if (document.getElementById(tabname) && typeof document.getElementById(tabname) != 'undefined') { if (i == focus) { //show(tabname); show(content); setCookie('tab',focus); document.getElementById(tabname).className = 'tabmark'; document.getElementById(tabname).className += ' tabactive'; didit = true; } else { //hide(tabname); hide(content); document.getElementById(tabname).className = 'tabmark'; document.getElementById(tabname).className += ' tabinactive'; } if (!didone) { didone = true; } } } if (didone && !didit) { show('content1'); setCookie('tab',1); document.getElementById('tab1').className = 'tabmark'; document.getElementById('tab1').className += ' tabactive'; } } function setfoldericonstate(foo) { if (getCookie(foo, "menu", "o") == "o") { src = "ofolder.png"; } else { src = "folder.png"; } document.getElementsByName('icn' + foo)[0].src = document.getElementsByName('icn' + foo)[0].src.replace(/[^\\\/]*$/, src); } /* foo: name of the menu * def: menu type (e:extended, c:collapsed, f:fixed) * the menu is collapsed function of its cookie: if no cookie is set, the def is used */ function setfolderstate(foo, def, img, status) { if (!status) { status = getCookie(foo, "menu", "o"); } if (!img) { if (document.getElementsByName('icn' + foo)[0] && document.getElementsByName('icn' + foo)[0].src.search(/[\\\/]/)) { img = document.getElementsByName('icn' + foo)[0].src.replace(/.*[\\\/]([^\\\/]*)$/, "$1"); } else { img = 'folder.png'; } } var src = img; // default if (status == 'c') { hide(foo); } else { show(foo); } if (status == 'c' && def != 'd') { /* need to change the open icon to a close one*/ src = src.replace(/^o/, ''); } else if (status != 'c' && def == 'd') { /* need to change the close icon to an open one */ src = 'o' + img; } if (document.getElementsByName('icn' + foo)[0]) document.getElementsByName('icn' + foo)[0].src = document.getElementsByName('icn' + foo)[0].src.replace(/[^\\\/]*$/, src); } function setheadingstate(foo) { var status = getCookie(foo, "showhide_headings"); if (status == "o") { show(foo); collapseSign("flipper" + foo); } else /*if (status == "c")*/ { if (!document.getElementById(foo).style.display == "none") { hide(foo); expandSign("flipper" + foo); } } } function setsectionstate(foo, def, img, status) { if (!status) { status = getCookie(foo, "menu", "o"); } if (status == "o") { show(foo); if (img) { src = "o" + img; } } else if (status != "c" && def != 'd') { show(foo); if (img) { src = "o" + img; } } else /*if (status == "c")*/ { hide(foo); if (img) { src = img; } } if (img && document.getElementsByName('icn' + foo).length) { document.getElementsByName('icn' + foo)[0].src = document.getElementsByName('icn' + foo)[0].src.replace(/[^\\\/]*$/, src); } } function icntoggle(foo, img) { if (!img) { if (document.getElementsByName('icn' + foo)[0].src.search(/[\\\/]/)) { img = document.getElementsByName('icn' + foo)[0].src.replace(/.*[\\\/]([^\\\/]*)$/, "$1"); } else { img = 'folder.png'; } } if (document.getElementById(foo).style.display == "none") { show(foo, true, "menu"); document.getElementsByName('icn' + foo)[0].src = document.getElementsByName('icn' + foo)[0].src.replace(/[^\\\/]*$/, 'o' + img); } else { hide(foo, true, "menu"); img = img.replace(/(^|\/|\\)o(.*)$/, '$1$2'); document.getElementsByName('icn' + foo)[0].src = document.getElementsByName('icn' + foo)[0].src.replace(/[^\\\/]*$/, img); } } // Initialize a cross-browser XMLHttpRequest object. // The object return has to be sent using send(). More parameters can be // given. // callback - The function that will be called when the response arrives // First parameter will be the status // (HTTP Response Code [200,403, 404, ...]) // method - GET or POST // url - The URL to open function getHttpRequest( method, url, async ) { if( async === undefined ) { async = false; } var request; if( window.XMLHttpRequest ) { request = new XMLHttpRequest(); } else if( window.ActiveXObject ) { try { request = new ActiveXObject( "Microsoft.XMLHTTP" ); } catch( ex ) { request = new ActiveXObject("MSXML2.XMLHTTP"); } } else { return false; } if( !request ) { return false; } request.open( method, url, async ); return request; } // name - name of the cookie // value - value of the cookie // [expires] - expiration date of the cookie (defaults to end of current session) // [path] - path for which the cookie is valid (defaults to path of calling document) // [domain] - domain for which the cookie is valid (defaults to domain of calling document) // [secure] - Boolean value indicating if the cookie transmission requires a secure transmission // * an argument defaults when it is assigned null as a placeholder // * a null placeholder is not required for trailing omitted arguments function setSessionVar(name,value) { var request = getHttpRequest( "GET", "tiki-cookie-jar.php?" + name + "=" + escape(value)); request.send(''); tiki_cookie_jar[name] = value; } function setCookie(name, value, section, expires, path, domain, secure) { if (!expires) { expires = new Date(); expires.setFullYear(expires.getFullYear() + 1); } if (feature_no_cookie == 'y') { var request = getHttpRequest( "GET", "tiki-cookie-jar.php?" + name + "=" + escape( value ) ); try { request.send(''); //alert("XMLHTTP/set"+request.readyState+request.responseText); tiki_cookie_jar[name] = value; return true; } catch( ex ) { setCookieBrowser(name, value, section, expires, path, domain, secure); return false; } } else { setCookieBrowser(name, value, section, expires, path, domain, secure); return true; } } function setCookieBrowser(name, value, section, expires, path, domain, secure) { if (section) { valSection = getCookie(section); name2 = "@" + name + ":"; if (valSection) { if (new RegExp(name2).test(valSection)) { valSection = valSection.replace(new RegExp(name2 + "[^@;]*"), name2 + value); } else { valSection = valSection + name2 + value; } setCookieBrowser(section, valSection, null, expires, path, domain, secure); } else { valSection = name2+value; setCookieBrowser(section, valSection, null, expires, path, domain, secure); } } else { var curCookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); document.cookie = curCookie; } } // name - name of the desired cookie // section - name of group of cookies or null // * return string containing value of specified cookie or null if cookie does not exist function getCookie(name, section, defval) { if( feature_no_cookie == 'y' && (window.XMLHttpRequest || window.ActiveXObject) && typeof tiki_cookie_jar != "undefined" && tiki_cookie_jar.length > 0) { if (typeof tiki_cookie_jar[name] == "undefined") { return defval; } return tiki_cookie_jar[name]; } else { return getCookieBrowser(name, section, defval); } } function getCookieBrowser(name, section, defval) { if (section) { var valSection = getCookieBrowser(section); if (valSection) { var name2 = "@"+name+":"; var val = valSection.match(new RegExp(name2 + "([^@;]*)")); if (val) { return unescape(val[1]); } else { return null; } } else { return defval; } } else { 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)); } } // name - name of the cookie // [path] - path of the cookie (must be same as path used to create cookie) // [domain] - domain of the cookie (must be same as domain used to create cookie) // * path and domain default if assigned null or omitted if no explicit argument proceeds function deleteCookie(name, section, expires, path, domain, secure) { if (section) { valSection = getCookieBrowser(section); name2 = "@" + name + ":"; if (valSection) { if (new RegExp(name2).test(valSection)) { valSection = valSection.replace(new RegExp(name2 + "[^@;]*"), ""); setCookieBrowser(section, valSection, null, expires, path, domain, secure); } } } else { // if( !setCookie( name, '', 0, path, domain ) ) { // if (getCookie(name)) { document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT"; // } } } // date - any instance of the Date object // * hand all instances of the Date object to this function for "repairs" function fixDate(date) { var base = new Date(0); var skew = base.getTime(); if (skew > 0) { date.setTime(date.getTime() - skew); } } // // Expand/collapse lists // function flipWithSign(foo) { if (document.getElementById(foo).style.display == "none") { show(foo, true, "showhide_headings"); collapseSign("flipper" + foo); } else { hide(foo, true, "showhide_headings"); expandSign("flipper" + foo); } } // set the state of a flipped entry after page reload function setFlipWithSign(foo) { if (getCookie(foo, "showhide_headings", "o") == "o") { collapseSign("flipper" + foo); show(foo); } else { expandSign("flipper" + foo); hide(foo); } } function expandSign(foo) { document.getElementById(foo).firstChild.nodeValue = "[+]"; } function collapseSign(foo) { document.getElementById(foo).firstChild.nodeValue = "[-]"; } // flipWithSign() // // Check / Uncheck all Checkboxes // function switchCheckboxes(tform, elements_name, state) { // checkboxes need to have the same name elements_name // e.g. , will arrive as Array in php. for (var i = 0; i < tform.length; i++) { if (tform.elements[i].name == elements_name) { tform.elements[i].checked = state; } } return true; } // // Set client timezone // Added 7/25/03 by Jeremy Jongsma (jjongsma@tickchat.com) // Updated 11/04/07 by Nyloth to get timezone name instead of timezone offset // var expires = new Date(); var local_date = expires.toLocaleString(); var local_tz = local_date.substring(local_date.lastIndexOf(' ') + 1); expires.setFullYear(expires.getFullYear() + 1); setCookie("local_tz", local_tz, null, expires, "/"); // function added for use in navigation dropdown // example : // function go(o) { if (o.options[o.selectedIndex].value !== "") { location = o.options[o.selectedIndex].value; o.options[o.selectedIndex] = 1; } return false; } // function: targetBlank // desc: opens a new window, XHTML-compliant replacement of the "TARGET" tag // added by: Ralf Lueders (lueders@lrconsult.com) // date: Sep 7, 2003 // params: url: the url for the new window // mode='nw': new, full-featured browser window // mode='popup': new windows, no features & buttons function targetBlank(url,mode) { var features = 'menubar=yes,toolbar=yes,location=yes,directories=yes,fullscreen=no,titlebar=yes,hotkeys=yes,status=yes,scrollbars=yes,resizable=yes'; switch (mode) { // new full-equipped browser window case 'nw': break; // new popup-window case 'popup': features = 'menubar=no,toolbar=no,location=no,directories=no,fullscreen=no,titlebar=no,hotkeys=no,status=no,scrollbars=yes,resizable=yes'; break; default: break; } blankWin = window.open(url,'_blank',features); } // function: confirmTheLink // desc: pop up a dialog box to confirm the action // added by: Franck Martin // date: Oct 12, 2003 // params: theLink: The link where it is called from // params: theMsg: The message to display function confirmTheLink(theLink, theMsg) { // Confirmation is not required if browser is Opera (crappy js implementation) if (typeof(window.opera) != 'undefined') { return true; } var is_confirmed = confirm(theMsg); //if (is_confirmed) { // theLink.href += '&is_js_confirmed=1'; //} return is_confirmed; } /** \brief: modif a textarea dimension * \elementId = textarea idea * \height = nb pixels to add to the height (the number can be negative) * \width = nb pixels to add to the width * \formid = form id (needs to have 2 input rows and cols **/ function textareasize(elementId, height, width, formId) { textarea = $jq(getElementById(elementId))[0]; form1 = textarea.form; if (textarea && height !== 0 && textarea.rows + height > 5) { textarea.rows += height; if (form1.rows) { form1.rows.value = textarea.rows; } } if (textarea && width !== 0 && textarea.cols + width > 10) { textarea.cols += width; if (form1.cols) { form1.cols.value = textarea.cols; } } } /** \brief: insert img tag in textarea * */ function insertImgFile(elementId, fileId, oldfileId,type,page,attach_comment) { textarea = getElementById(elementId); fileup = getElementById(fileId); oldfile = getElementById(oldfileId); prefixEl = getElementById("prefix"); prefix = "img/wiki_up/"; if (!textarea || ! fileup) { return; } if ( prefixEl) { prefix= prefixEl.value; } filename = fileup.value; oldfilename = oldfile.value; if (filename == oldfilename || filename === "" ) { // insert only if name really changed return; } oldfile.value = filename; if (filename.indexOf("/")>=0) { // unix dirs = filename.split("/"); filename = dirs[dirs.length-1]; } if (filename.indexOf("\\")>=0) { // dos dirs = filename.split("\\"); filename = dirs[dirs.length-1]; } if (filename.indexOf(":")>=0) { // mac dirs = filename.split(":"); filename = dirs[dirs.length-1]; } // @todo - here's a hack: we know its ending up in img/wiki_up. // replace with dyn. variable once in a while to respect the tikidomain if (type == "file") { str = "{file name=\""+filename + "\""; var desc = getElementById(attach_comment).value; if (desc) { str = str + " desc=\"" + desc + "\""; } str = str + "}"; } else { str = "{img src=\"img/wiki_up/" + filename + "\" }\n"; } insertAt(elementId, str); } /* add new upload image form in page edition */ var img_form_count = 2; function addImgForm() { var new_text = document.createElement('span'); new_text.setAttribute('id','picfile' + img_form_count); new_text.innerHTML = '
'; document.getElementById('new_img_form').appendChild(new_text); needToConfirm = true; img_form_count ++; } /* * opens wiki 3d browser */ function wiki3d_open (page, width, height) { window.open('tiki-wiki3d.php?page='+page,'wiki3d','width='+width+',height='+height+',scrolling=no'); } /* some little email protection */ function protectEmail(nom, domain, sep) { return ''+nom+sep+domain+''; } browser(); // This was added to allow wiki3d to change url on tiki's window window.name = 'tiki'; /* Function to add image from filegals in non wysiwyg editor */ /* must be here when ajax is activated */ function SetMyUrl(area,url) { var str, myurl = url.replace(/.*\/([^\/]*)$/, '$1'); /* make relative path from the absolute url */ var fileId = myurl.match(/display(\d*)$/); // sefurl if (!fileId || fileId.length < 2 || !fileId[1]) { fileId = myurl.match(/fileId=(\d*)/); // normurl } if (fileId && fileId.length > 1) { fileId = fileId[1]; str = "{img fileId=\""+fileId+"\" thumb=\"y\" alt=\"\" rel=\"box[g]\"} "; } else { str = "{img src=\""+myurl+"\" alt=\"\" link=\""+myurl+"\" rel=\"box[g]\"} "; } insertAt(area, str); window.focus(); } if (typeof fgals_window == "undefined") { fgals_window = null; } function openFgalsWindow(filegal_manager_url, area_name) { if(fgals_window && typeof fgals_window.document != "undefined" && typeof fgals_window.document != "unknown") { fgals_window.open(); fgals_window.focus(); } else { fgals_window=window.open(filegal_manager_url,'_blank','menubar=1,scrollbars=1,resizable=1,height=500,width=800,left=50,top=50'); } } /* Count the number of words (spearated with space) */ function wordCount(maxSize, source, cpt, message) { var formcontent = source.value; str = formcontent.replace(/^\s+|\s+$/g, '') ; formcontent = str.split(/[^\S]+/); if (maxSize > 0 && formcontent.length > maxSize) { alert(message); source.value = source.value.substr(0, source.value.length-1); } else { document.getElementById(cpt).value = formcontent.length; } } function charCount(maxSize, source, cpt, message) { var formcontent = source.value; if (maxSize > 0 && formcontent.length > maxSize) { alert(message); source.value = source.value.substr(0, maxSize); } else { document.getElementById(cpt).value = formcontent.length; } } function show_plugin_form( type, index, pageName, pluginArgs, bodyContent ) { var target = document.getElementById( type + index ); var content = target.innerHTML; var form = build_plugin_form( type, index, pageName, pluginArgs, bodyContent ); target.innerHTML = ''; target.appendChild( form ); } /* wikiplugin editor */ function popup_plugin_form( area_name, type, index, pageName, pluginArgs, bodyContent, edit_icon ) { if ($jq.ui) { return popupPluginForm( area_name, type, index, pageName, pluginArgs, bodyContent, edit_icon ); } var container = document.createElement( 'div' ); container.className = 'plugin-form-float'; var minimize = document.createElement( 'a' ); var icon = document.createElement( 'img' ); minimize.appendChild( icon ); minimize.href = 'javascript:void(0)'; container.appendChild( minimize ); icon.src = 'pics/icons/cross.png'; icon.style.position = 'absolute'; icon.style.top = '5px'; icon.style.right = '5px'; icon.style.border = 'none'; if (!index) { index = 0; } if (!pageName) { pageName = ''; } if (!pluginArgs) { pluginArgs = {}; } if (!bodyContent) { if (document.getSelection) { bodyContent = document.getSelection(); } else if (window.getSelection) { bodyContent = window.getSelection(); } else if (document.selection) { bodyContent = document.selection.createRange().text; } else { bodyContent = ''; } } var form = build_plugin_form( type, index, pageName, pluginArgs, bodyContent ); form.onsubmit = function() { var meta = tiki_plugins[type]; var params = []; var edit = edit_icon; for(i=0; i= 90: Very Secure >= 80: Secure >= 70: Very Strong >= 60: Strong >= 50: Average >= 25: Weak >= 0: Very Weak */ // Settings // -- Toggle to true or false, if you want to change what is checked in the password var m_strUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var m_strLowerCase = "abcdefghijklmnopqrstuvwxyz"; var m_strNumber = "0123456789"; var m_strCharacters = "!@#$%^&*?_~"; // Check password function checkPassword(strPassword) { // Reset combination count var nScore = 0; // Password length // -- Less than 4 characters if (strPassword.length < 5) { nScore += 5; } // -- 5 to 7 characters else if (strPassword.length > 4 && strPassword.length < 8) { nScore += 10; } // -- 8 or more else if (strPassword.length > 7) { nScore += 25; } // Letters var nUpperCount = countContain(strPassword, m_strUpperCase); var nLowerCount = countContain(strPassword, m_strLowerCase); var nLowerUpperCount = nUpperCount + nLowerCount; // -- Letters are all lower case if (nUpperCount === 0 && nLowerCount !== 0) { nScore += 10; } // -- Letters are upper case and lower case else if (nUpperCount !== 0 && nLowerCount !== 0) { nScore += 20; } // Numbers var nNumberCount = countContain(strPassword, m_strNumber); // -- 1 number if (nNumberCount == 1) { nScore += 10; } // -- 3 or more numbers if (nNumberCount >= 3) { nScore += 20; } // Characters var nCharacterCount = countContain(strPassword, m_strCharacters); // -- 1 character if (nCharacterCount == 1) { nScore += 10; } // -- More than 1 character if (nCharacterCount > 1) { nScore += 25; } // Bonus // -- Letters and numbers if (nNumberCount !== 0 && nLowerUpperCount !== 0) { nScore += 2; } // -- Letters, numbers, and characters if (nNumberCount !== 0 && nLowerUpperCount !== 0 && nCharacterCount !== 0) { nScore += 3; } // -- Mixed case letters, numbers, and characters if (nNumberCount !== 0 && nUpperCount !== 0 && nLowerCount !== 0 && nCharacterCount !== 0) { nScore += 5; } return nScore; } // Runs password through check and then updates GUI function runPassword(strPassword, strFieldID) { // Check password var nScore = checkPassword(strPassword); // Get controls var ctlBar = document.getElementById(strFieldID + "_bar"); var ctlText = document.getElementById(strFieldID + "_text"); if (!ctlBar || !ctlText) { return; } // Set new width ctlBar.style.width = nScore + "%"; // Color and text // -- Very Secure if (nScore >= 90) { var strIcon = "Very Secure"; var strText = "Very Secure"; var strColor = "#0ca908"; } // -- Secure else if (nScore >= 80) { strIcon = "Secure"; strText = "Secure"; vstrColor = "#0ca908"; } // -- Very Strong else if (nScore >= 70) { strIcon = "Very Strong"; strText = "Very Strong"; strColor = "#0ca908"; } // -- Strong else if (nScore >= 60) { strIcon = "Strong"; strText = "Strong"; strColor = "#0ca908"; } // -- Average else if (nScore >= 40) { strIcon = " "; strText = "Average"; strColor = "#e3cb00"; } // -- Weak else if (nScore >= 25) { strIcon = "Weak"; strText = "Weak"; strColor = "#ff0000"; } // -- Very Weak else { strIcon = "Very weak"; strText = "Very Weak"; strColor = "#ff0000"; } ctlBar.style.backgroundColor = strColor; ctlText.innerHTML = "" + strIcon + " Strength: " + strText + ""; } // Checks a string for a list of characters function countContain(strPassword, strCheck) { // Declare variables var nCount = 0; for (i = 0; i < strPassword.length; i++) { if (strCheck.indexOf(strPassword.charAt(i)) > -1) { nCount++; } } return nCount; } function checkPasswordsMatch(in1, in2, el) { if ($jq(in1).val().length && $jq(in1).val() == $jq(in2).val()) { $jq(el).html("SecurePasswords match"); return true; } else { $jq(el).html(""); return false; } } /** * Adds an Option to the quickpoll section. */ function pollsAddOption() { var newOption = $jq( '').attr('type', 'text').attr('name', 'options[]'); $jq('#tikiPollsOptions').append($jq('
').append(newOption)); } /** * toggles the quickpoll section */ function pollsToggleQuickOptions() { $jq( '#tikiPollsQuickOptions' ).toggle(); } /** * toggles div for droplist with Disabled option */ function hidedisabled(divid,value) { if(value=='disabled') { document.getElementById(divid).style.display = 'none'; } else { document.getElementById(divid).style.display = 'block'; } } /* for filegals */ function adjustThumbnails() { var i,j,h = 0; var t = document.getElementById("thumbnails").childNodes; for ( i = 0; i < t.length; i++ ) { if ( t[i].className == "thumbnailcontener" ) { var t2 = t[i].childNodes; for ( j = 0; j < t2.length; j++ ) { if ( t2[j].className == "thumbnail" ) { t2[j].style.height = "100%"; t2[j].style.overflow = "visible"; } } if ( t[i].offsetHeight >= h ) { h = t[i].offsetHeight; t[i].style.height = h+"px"; } else if ( t[i].offsetHeight < h ) { t[i].style.height = h+"px"; } } } for ( i = 0; i < t.length; i++ ) { if ( t[i].className == "thumbnailcontener" ) { if ( t[i].offsetHeight <= h ) { t[i].style.height = h+"px"; } else { break; } } } }