/*********************************************** * Show Hint script- c Dynamic Drive (www.dynamicdrive.com) * This notice MUST stay intact for legal use * Visit https://www.dynamicdrive.com/ for this script and 100s more. ***********************************************/ var horizontal_offset="9px"; //horizontal offset of hint box from anchor link /////No further editting needed var vertical_offset="0"; //horizontal offset of hint box from anchor link. No need to change. var ie=document.all; var ns6=document.getElementById&&!document.all; function getposOffset(what, offsettype){ var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop; var parentEl=what.offsetParent; while (parentEl!=null){ totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop; parentEl=parentEl.offsetParent; } return totaloffset; } function iecompattest(){ return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body; } function clearbrowseredge(obj, whichedge){ var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1; if (whichedge=="rightedge"){ var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40; dropmenuobj.contentmeasure=dropmenuobj.offsetWidth; if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure) edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset); } else { var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18; dropmenuobj.contentmeasure=dropmenuobj.offsetHeight; if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure); edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight; } return edgeoffset } function showhint(menucontents, obj, e, tipwidth){ if ((ie||ns6) && document.getElementById("hintbox")){ dropmenuobj=document.getElementById("hintbox"); dropmenuobj.innerHTML=menucontents; dropmenuobj.style.left=dropmenuobj.style.top=-500; if (typeof tipwidth !== 'undefined'){ dropmenuobj.widthobj=dropmenuobj.style; dropmenuobj.widthobj.width=tipwidth; } dropmenuobj.x=getposOffset(obj, "left"); dropmenuobj.y=getposOffset(obj, "top"); dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px"; dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px"; dropmenuobj.style.visibility="visible"; obj.onmouseout=hidetip; } } function hidetip(e){ dropmenuobj.style.visibility="hidden"; dropmenuobj.style.left="-500px"; } function createhintbox(){ var divblock=document.createElement("div"); divblock.setAttribute("id", "hintbox"); document.body.appendChild(divblock); } //if (window.addEventListener) //window.addEventListener("load", createhintbox, false) //else if (window.attachEvent) //window.attachEvent("onload", createhintbox) //else if (document.getElementById) //window.onload=createhintbox //----------------------------------------------------------------- function DoSearch() { var search = document.search; var url = '/'; } function OnSearchTypeChange(st) { //document.search.only.value = st; // resetting page number document.search.action = "/" + st + "/"; document.search.submit(); return false; } function OnOrderByChange(to_value) { document.search.orderby.value = to_value; document.search.submit(); return false; } function OnCategoryChange() { document.search.action = "/all/"; // resetting page number document.search.submit(); return false; } // Attach event listeners function FindHints() { createhintbox(); var tbl, hnts, i; tbl = document.getElementById('maintable'); hnts = tbl.getElementsByTagName('b'); for (i=0; i=1024) && (screen.height>=768)) window.open(href, '', 'width=850,height=550,scrollbars=yes'); else window.open(href, ''); return false; } // Attach event listeners function FindPopups() { var tbl, hnts, i; tbl = document.getElementById('maintable'); lnks = tbl.getElementsByTagName('a'); for (i=0; i= min)&&(elementValue.length <= max)) return true; else return false; }; function ValidateURL(elementValue, allowEmpty){ if (elementValue.length == 0) return allowEmpty; if ((elementValue.length >= 3)&&(elementValue.length <= 150)) return true; else return false; }; function ValidateEmail(elementValue){ var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; return emailPattern.test(elementValue); }; function ValidateAuthor(elementValue, allowEmpty){ if (elementValue.length == 0) return allowEmpty; if ((elementValue.length >= 3)&&(elementValue.length <= 60)) return true; else return false; }; //------------- /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet * Distributed under the BSD License * See https://pajhome.org.uk/crypt/md5 for more info. */ var hexcase=0;function hex_md5(a){return rstr2hex(rstr_md5(str2rstr_utf8(a)))}function hex_hmac_md5(a,b){return rstr2hex(rstr_hmac_md5(str2rstr_utf8(a),str2rstr_utf8(b)))}function md5_vm_test(){return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72"}function rstr_md5(a){return binl2rstr(binl_md5(rstr2binl(a),a.length*8))}function rstr_hmac_md5(c,f){var e=rstr2binl(c);if(e.length>16){e=binl_md5(e,c.length*8)}var a=Array(16),d=Array(16);for(var b=0;b<16;b++){a[b]=e[b]^909522486;d[b]=e[b]^1549556828}var g=binl_md5(a.concat(rstr2binl(f)),512+f.length*8);return binl2rstr(binl_md5(d.concat(g),512+128))}function rstr2hex(c){try{hexcase}catch(g){hexcase=0}var f=hexcase?"0123456789ABCDEF":"0123456789abcdef";var b="";var a;for(var d=0;d>>4)&15)+f.charAt(a&15)}return b}function str2rstr_utf8(c){var b="";var d=-1;var a,e;while(++d>>6)&31),128|(a&63))}else{if(a<=65535){b+=String.fromCharCode(224|((a>>>12)&15),128|((a>>>6)&63),128|(a&63))}else{if(a<=2097151){b+=String.fromCharCode(240|((a>>>18)&7),128|((a>>>12)&63),128|((a>>>6)&63),128|(a&63))}}}}}return b}function rstr2binl(b){var a=Array(b.length>>2);for(var c=0;c>5]|=(b.charCodeAt(c/8)&255)<<(c%32)}return a}function binl2rstr(b){var a="";for(var c=0;c>5]>>>(c%32))&255)}return a}function binl_md5(p,k){p[k>>5]|=128<<((k)%32);p[(((k+64)>>>9)<<4)+14]=k;var o=1732584193;var n=-271733879;var m=-1732584194;var l=271733878;for(var g=0;g>16)+(d>>16)+(c>>16);return(b<<16)|(c&65535)}function bit_rol(a,b){return(a<>>(32-b))}; //------------- function GetFingerprint() { try { var result = ''; if (navigator.plugins) { var numPlugins = navigator.plugins.length; for (var i = 0; i < numPlugins; i++) { var plugin = navigator.plugins[i]; result += plugin.name + "|" + plugin.description + "|" + plugin.filename; } } var date = new Date(); result += "|" + date.getTimezoneOffset(); } catch(e) { return '' } return hex_md5(result); } function CreateCookie(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 SetFNG() { CreateCookie('fng', GetFingerprint(), 365); } function CheckContactForm() { var form = document.forms.contact_form; var field; field = form.user_name; if (!ValidateAuthor(field.value, true)) { field.style.background = '#FF9999';field.focus();return false; } else field.style.background = '#FFFFFF'; field = form.user_organization; if (!ValidateRange(field.value, 2, 100, true)) { field.style.background = '#FF9999';field.focus();return false; } else field.style.background = '#FFFFFF'; field = form.user_email; if (!ValidateEmail(field.value)) { field.style.background = '#FF9999';field.focus();return false; } else field.style.background = '#FFFFFF'; field = form.recaptcha_response_field;; if (field.value=='') { field.style.background = '#FF9999';field.focus();return false; } else field.style.background = '#FFFFFF'; form.action = '/contact.php?js=1&fng=' + GetFingerprint(); return true; } function CheckCommentForm() { var form = document.forms.commentform; var field; field = form.author; if (!ValidateAuthor(field.value, false)) { field.style.background = '#FF8888';field.focus();return false; } else field.style.background = '#FFFFFF'; field = form.email; if (!ValidateEmail(field.value)) { field.style.background = '#FF8888';field.focus();return false; } else field.style.background = '#FFFFFF'; field = form.comment; if (!ValidateRange(field.value, 0, 1000, false)) { field.style.background = '#FF8888';field.focus();return false; } else field.style.background = '#FFFFFF'; field = form.recaptcha_response_field; if (field.value=='') { field.style.background = '#FF8888';field.focus();return false; } else field.style.background = '#FFFFFF'; form.action = '/site_comments_post.php?js=1&fng=' + GetFingerprint(); return true; } function CheckSiteForm() { var form = document.forms.site_form; var field; field = form.user_name; if (!ValidateAuthor(field.value, true)) { field.style.background = '#FF9999';field.focus();return false; } else field.style.background = '#FFFFFF'; field = form.user_email; if (!ValidateEmail(field.value)) { field.style.background = '#FF9999';field.focus();return false; } else field.style.background = '#FFFFFF'; field = form.title; if (!ValidateRange(field.value, 3, 150, false)) { field.style.background = '#FF9999';field.focus();return false; } else field.style.background = '#FFFFFF'; field = form.site_url; if (!ValidateURL(field.value, false)) { field.style.background = '#FF9999';field.focus();return false; } else field.style.background = '#FFFFFF'; // field = form.sbm_url; // if (!ValidateURL(field.value, false)) { field.style.background = '#FF975F';field.focus();return false; } // else field.style.background = '#FFFFFF'; field = form.recaptcha_response_field; if (field.value=='') { field.style.background = '#FF9999';field.focus();return false; } else field.style.background = '#FFFFFF'; form.action = '/suggest_a_site.php?js=1&fng=' + GetFingerprint(); return true; }