/***********************************************
* Show Hint script- c Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://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<hnts.length; i++) {
    // Attach event listeners 
    if (/ico/.test(hnts[i].className)) { 
      hnts[i].onmouseover = doHint;
      hnts[i].onmouseout = doHintOut;
    } else
    if (/lng/.test(hnts[i].className)) { 
      hnts[i].onmouseover = doHint;
      hnts[i].onmouseout = doHintOut;
    }
  }
  hnts = tbl.getElementsByTagName('span');
  for (i=0; i<hnts.length; i++) {
    // Attach event listeners 
    if (/hint/.test(hnts[i].className)) { 
      hnts[i].onmouseover = doHint;
      hnts[i].onmouseout = doHintOut;
    }
  }
}


function DoPopup() {
  if (! window.focus)return true;
  var href;
  href = this.href;
  if ((screen.width>=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<lnks.length; i++) {
    // Attach event listeners 
    if (/popup/.test(lnks[i].className))
      lnks[i].onclick = DoPopup;
  }
}
//-----------------------------------------------------------------

function ValidateRange(elementValue, min, max, allowEmpty){
  if (elementValue.length == 0) return allowEmpty;
  if ((elementValue.length >= 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 http://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<c.length;d++){a=c.charCodeAt(d);b+=f.charAt((a>>>4)&15)+f.charAt(a&15)}return b}function str2rstr_utf8(c){var b="";var d=-1;var a,e;while(++d<c.length){a=c.charCodeAt(d);e=d+1<c.length?c.charCodeAt(d+1):0;if(55296<=a&&a<=56319&&56320<=e&&e<=57343){a=65536+((a&1023)<<10)+(e&1023);d++}if(a<=127){b+=String.fromCharCode(a)}else{if(a<=2047){b+=String.fromCharCode(192|((a>>>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<a.length;c++){a[c]=0}for(var c=0;c<b.length*8;c+=8){a[c>>5]|=(b.charCodeAt(c/8)&255)<<(c%32)}return a}function binl2rstr(b){var a="";for(var c=0;c<b.length*32;c+=8){a+=String.fromCharCode((b[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<p.length;g+=16){var j=o;var h=n;var f=m;var e=l;o=md5_ff(o,n,m,l,p[g+0],7,-680876936);l=md5_ff(l,o,n,m,p[g+1],12,-389564586);m=md5_ff(m,l,o,n,p[g+2],17,606105819);n=md5_ff(n,m,l,o,p[g+3],22,-1044525330);o=md5_ff(o,n,m,l,p[g+4],7,-176418897);l=md5_ff(l,o,n,m,p[g+5],12,1200080426);m=md5_ff(m,l,o,n,p[g+6],17,-1473231341);n=md5_ff(n,m,l,o,p[g+7],22,-45705983);o=md5_ff(o,n,m,l,p[g+8],7,1770035416);l=md5_ff(l,o,n,m,p[g+9],12,-1958414417);m=md5_ff(m,l,o,n,p[g+10],17,-42063);n=md5_ff(n,m,l,o,p[g+11],22,-1990404162);o=md5_ff(o,n,m,l,p[g+12],7,1804603682);l=md5_ff(l,o,n,m,p[g+13],12,-40341101);m=md5_ff(m,l,o,n,p[g+14],17,-1502002290);n=md5_ff(n,m,l,o,p[g+15],22,1236535329);o=md5_gg(o,n,m,l,p[g+1],5,-165796510);l=md5_gg(l,o,n,m,p[g+6],9,-1069501632);m=md5_gg(m,l,o,n,p[g+11],14,643717713);n=md5_gg(n,m,l,o,p[g+0],20,-373897302);o=md5_gg(o,n,m,l,p[g+5],5,-701558691);l=md5_gg(l,o,n,m,p[g+10],9,38016083);m=md5_gg(m,l,o,n,p[g+15],14,-660478335);n=md5_gg(n,m,l,o,p[g+4],20,-405537848);o=md5_gg(o,n,m,l,p[g+9],5,568446438);l=md5_gg(l,o,n,m,p[g+14],9,-1019803690);m=md5_gg(m,l,o,n,p[g+3],14,-187363961);n=md5_gg(n,m,l,o,p[g+8],20,1163531501);o=md5_gg(o,n,m,l,p[g+13],5,-1444681467);l=md5_gg(l,o,n,m,p[g+2],9,-51403784);m=md5_gg(m,l,o,n,p[g+7],14,1735328473);n=md5_gg(n,m,l,o,p[g+12],20,-1926607734);o=md5_hh(o,n,m,l,p[g+5],4,-378558);l=md5_hh(l,o,n,m,p[g+8],11,-2022574463);m=md5_hh(m,l,o,n,p[g+11],16,1839030562);n=md5_hh(n,m,l,o,p[g+14],23,-35309556);o=md5_hh(o,n,m,l,p[g+1],4,-1530992060);l=md5_hh(l,o,n,m,p[g+4],11,1272893353);m=md5_hh(m,l,o,n,p[g+7],16,-155497632);n=md5_hh(n,m,l,o,p[g+10],23,-1094730640);o=md5_hh(o,n,m,l,p[g+13],4,681279174);l=md5_hh(l,o,n,m,p[g+0],11,-358537222);m=md5_hh(m,l,o,n,p[g+3],16,-722521979);n=md5_hh(n,m,l,o,p[g+6],23,76029189);o=md5_hh(o,n,m,l,p[g+9],4,-640364487);l=md5_hh(l,o,n,m,p[g+12],11,-421815835);m=md5_hh(m,l,o,n,p[g+15],16,530742520);n=md5_hh(n,m,l,o,p[g+2],23,-995338651);o=md5_ii(o,n,m,l,p[g+0],6,-198630844);l=md5_ii(l,o,n,m,p[g+7],10,1126891415);m=md5_ii(m,l,o,n,p[g+14],15,-1416354905);n=md5_ii(n,m,l,o,p[g+5],21,-57434055);o=md5_ii(o,n,m,l,p[g+12],6,1700485571);l=md5_ii(l,o,n,m,p[g+3],10,-1894986606);m=md5_ii(m,l,o,n,p[g+10],15,-1051523);n=md5_ii(n,m,l,o,p[g+1],21,-2054922799);o=md5_ii(o,n,m,l,p[g+8],6,1873313359);l=md5_ii(l,o,n,m,p[g+15],10,-30611744);m=md5_ii(m,l,o,n,p[g+6],15,-1560198380);n=md5_ii(n,m,l,o,p[g+13],21,1309151649);o=md5_ii(o,n,m,l,p[g+4],6,-145523070);l=md5_ii(l,o,n,m,p[g+11],10,-1120210379);m=md5_ii(m,l,o,n,p[g+2],15,718787259);n=md5_ii(n,m,l,o,p[g+9],21,-343485551);o=safe_add(o,j);n=safe_add(n,h);m=safe_add(m,f);l=safe_add(l,e)}return Array(o,n,m,l)}function md5_cmn(h,e,d,c,g,f){return safe_add(bit_rol(safe_add(safe_add(e,h),safe_add(c,f)),g),d)}function md5_ff(g,f,k,j,e,i,h){return md5_cmn((f&k)|((~f)&j),g,f,e,i,h)}function md5_gg(g,f,k,j,e,i,h){return md5_cmn((f&j)|(k&(~j)),g,f,e,i,h)}function md5_hh(g,f,k,j,e,i,h){return md5_cmn(f^k^j,g,f,e,i,h)}function md5_ii(g,f,k,j,e,i,h){return md5_cmn(k^(f|(~j)),g,f,e,i,h)}function safe_add(a,d){var c=(a&65535)+(d&65535);var b=(a>>16)+(d>>16)+(c>>16);return(b<<16)|(c&65535)}function bit_rol(a,b){return(a<<b)|(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;
}


