var PROFILE = 'default';
var NETMASK_HOST = 'http://75.101.224.31';
var NETMASK_DIR = '/netmask_profiles';
var NETMASK_NREQUESTS = 10;

var nrequests = 0;

var NetmaskEvent = 0;

function NetmaskScriptReq(fullUrl, no_cache) {
    this.fullUrl = fullUrl; 
    this.headLoc = document.getElementsByTagName("head").item(0);
    if (no_cache) {
	this.noCacheIE = '&noCacheIE=' + (new Date()).getTime();
	this.scriptId = 'YJscriptId' + NetmaskScriptReq.scriptCounter++;
    } else
	this.noCacheIE = this.scriptId = '';
}

NetmaskScriptReq.scriptCounter = 1;

NetmaskScriptReq.prototype.addScriptTag = function () {
    this.scriptObj = document.createElement("script");
    this.scriptObj.setAttribute("type", "text/javascript");
    this.scriptObj.setAttribute("src", this.fullUrl + this.noCacheIE);
    if (this.scriptId)
	this.scriptObj.setAttribute("id", this.scriptId);
    this.headLoc.appendChild(this.scriptObj);
}
 
NetmaskScriptReq.prototype.removeScriptTag = function () {
    this.headLoc.removeChild(this.scriptObj);  
}

function NetmaskLoadScript(url) {
  var obj = new NetmaskScriptReq(NETMASK_HOST+NETMASK_DIR+url, false);
  try {
    obj.addScriptTag();
  } catch(e) {
  }
}

function description_retrieve(text) {
  NetmaskLoadScript('scripts?text='+escape(text));
}

var NetmaskInBuf = 0, NetmaskBuf = '';
var NetmaskNMozUniqs = -1, NetmaskMozUniqs = null;

if (document.uniqueID == undefined || document.uniqueID.length < 1)
  NetmaskMozUniqs = new Array();

function NetmaskFlush() {
if (++nrequests <= NETMASK_NREQUESTS)
  if (NetmaskInBuf) {
    NetmaskLoadScript(NetmaskBuf);
    NetmaskInBuf = 0;
  }
}

function NetmaskBufAdd(text, par, ind) {
    var counter = String.fromCharCode(65+NetmaskInBuf)+'=';

    if (NetmaskInBuf)
	NetmaskBuf += '&';
    else
	NetmaskBuf = '/scripts?P='+PROFILE+'&';
    if (NetmaskMozUniqs && par.uniqueID == undefined)
	NetmaskMozUniqs[par.uniqueID = ++NetmaskNMozUniqs] = par;
    NetmaskBuf += 'i'+counter+ind+'&p'+counter+par.uniqueID+'&t'+counter+text;
    if (++NetmaskInBuf >= NetmaskMaxTooltipReq || NetmaskBuf.length >= NetmaskLargestTooltipReq)
	NetmaskFlush();
}

function my_escape(str) {
return str.replace(/%/g,'%25').replace(/&/g,'%26').replace(/\u2019/g,'%92').replace(/\u2026/g,'%85').replace(/\u2013/g,'%96').replace(/\u201C/g,'%93').replace(/\u201D/g,'%94').replace(/\240/g, '%26nbsp;').replace(/\u2014/g,'%26%238212;').replace(/#/g,'%23');
}

function NetmaskScriptParams(text, par, ind) {
/*
  NetmaskLoadScript('/scripts?ind='+ind+'&parent='+par.uniqueID+'&text='+escape(text));
*/
text = ' '+text+' ';
//  text = my_escape(' '+text+' ');
//  text = ' '+escape(text).replace(/%E/g, '%u00E').replace(/%F/g, '%u00F')+' ';
  if (NetmaskBuf.length+text.length+par.length+20 > NetmaskLargestTooltipReq)
    NetmaskFlush();
  NetmaskBufAdd(text, par, ind);
}

function _NetmaskRecurs(node, ind, parent) {
    if (node && node.parentNode == parent)
	return NetmaskRecurs(node, ind);
    return 0;
}

function NetmaskRecurs(node, ind) {
  if (node.offsetTop > 10000)
    return;
  if (node.nodeType == 3 && node.nodeValue.match(NetmaskTextNodeFilter))
    NetmaskScriptParams(node.nodeValue, node.parentNode, ind);
  else if (node.nodeType == 1 && node.tagName != 'SCRIPT') {
    var i, len = node.childNodes.length;
    if (len) {
      for (i = 0; i < NetmaskTagNodeFilter.length; i += 3)
	if (node.tagName == NetmaskTagNodeFilter[i]) {
/*
	  if (NetmaskTagNodeFilter[i+1].length > 0)
	    alert(NetmaskTagNodeFilter[i+1][0]);
*/
	  return;
	}
      for (i = 0; i < len; ++i)
	_NetmaskRecurs(node.childNodes[i], i, node);
    }
  }
}

var isSafari = navigator.userAgent.toLowerCase().indexOf("khtml") != -1;
var isSafari3 = isSafari && navigator.userAgent.toLowerCase().search("version/[3456789]")!= -1;
if (!isSafari || isSafari3)
NetmaskLoadScript('/../../../netmask_profiles/'+PROFILE+'/mine.js');

function NetmaskMineIsReady() {
  if (NetmaskLibraries != undefined && NetmaskLibraries.length > 0)
    for (var i = 0; i < NetmaskLibraries.length; ++i)
      NetmaskLoadScript(NetmaskLibraries[i]);
  NetmaskRecurs(document.body,0);
  NetmaskFlush();
}
