/***
÷òîáû ïîìåñòèòü èíôîðìàöèþ â äèâ èñïîëüçóåì ñëåäóþùèé øàáëîí:
httpRequest(URI+"WidgetRegistry.ajax", "wgName="+wgName, setDIV, wg.Add_Inc, 'getResult');
httpRequest("/genet/interface/templates/widgetsbar.html", "id="+id, setDIV, wg.divWithText, 'DIV');	
ò.å. âûçûâàåì ôóíêöèþ ÑÅÒÄÈÂ ïåðåäàåì ïàðàìåòðû. òîæå ñàìîå äåëàåì åñëè íàì íóæíî ïðîñòî âûçâàòü êàêóþ-òî ôóíêöèþ
ïî îêí÷àíèþ ðàáîòû
***/
function httpRequest(url, parameters, onComplete, package, flag) {

    var http_request = false;
    try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e1) {
        try {
            http_request= new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e2) {
            http_request = new XMLHttpRequest();
        }
    }

    if (!http_request) {
    	
      alert('Cannot create XMLHTTP instance');
      return false;
    }

    completeListener = function() {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
            	if (flag == 'DIV' || flag == 'getResult') {
                		onComplete(http_request, package, flag)
                } else {
                		if (onComplete != "null")
               			onComplete(package);
                }
            }
        }
    };

    http_request.onreadystatechange = completeListener;

    http_request.open('POST', url + "?" + parameters, true);

    http_request.send(null);
}

function setDIV(http_request, dataPackage, flag) {
    request_result = http_request.responseText;
    if (flag == 'getResult') {
    	    dataPackage(request_result);
    } else {
          var divElement = document.getElementById(dataPackage);
          divElement.innerHTML = request_result;             
    }
}

function Class() { };

Class.prototype.construct = function() { };

Class.extend = function(def) {

    var classDef = function() {
        if (arguments[0] !== Class) {
            this.construct.apply(this, arguments);
        }
    };

    var proto = new this(Class);
    var superClass = this.prototype;

    for (var n in def) {
        var item = def[n];
        if (item instanceof Function) item.$ = superClass;
                else classDef[n] = item;
        proto[n] = item;
    }

    classDef.prototype = proto;
    classDef.extend = this.extend;

    return classDef;
};

var URI = window.location.pathname.match(/^(.*)\/|$|\/$|\?/ )[1]+"/";

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

var mynavigator = {IE:false, Opera: false, FireFox: false, Other: false};

if (window.execScript) {
	mynavigator.IE = true;
} else if (document.height == 0) {
	mynavigator.FireFox = true;
} else if (window.opera) {
	mynavigator.Opera = true;	
} else {
	mynavigator.Other = true;
}


function isArray()
{
  if (typeof arguments[0] == 'object')
  {  
    var criterion = arguments[0].constructor.toString().match(/array/i);
   return (criterion != null);  
  }
  return false;
}
