function getCookie(name)
{
    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));
}




var sids = new Object;
var hids = new Object;

function show_set(catset){
//	alert(catset);
	if(!catset){
		catset = 'default';
	}

	for(i in hids[catset]){
		show(i, catset, 1);
	}
}

function hide_set(catset, except){
	if(!catset){
		catset = 'default';
	}

	for(i in sids[catset]){
		if(except && except != i){
			hide(i, catset);
		}
	}
}

function hide(id, catset){
	obj = find_el(id);

	if(!catset){
		catset = 'default';
	}

	if(!hids[catset]){
		hids[catset] = new Array();
	}

	hids[catset][id] = 1;
	//obj.visibility =  'hidden';


	if(obj){
		obj.style.display = 'none';
		document.cookie = id + "=none; path=/";
	}

	return false;
}

function find_el(id){
	if (document.getElementById)	{
		obj = document.getElementById(id);

	} else if (document.all) {
		obj = document.all[id];
	}
	return obj;
}

function show(id, catset, skipall){
	if(!catset){
		catset = 'default';
	}

	if(!sids[catset]){
		sids[catset] = new Array();
	}

	sids[catset][id] = 1;

	if(!skipall){
		hide_set(catset, id);
	}

	obj = find_el(id);

	if(obj){
		obj.style.display = "block";
		document.cookie = id + "=block; path=/";
	}

	return false;
}


function show_hide(id, catset) {
	obj = find_el(id);

	if(obj.style.display == "block"){
		hide(id, catset);
	} else {
		show(id, catset);
	}

	return false;
}

function ajax(page, func, meth, postdata) {
	if(!meth) meth='GET';
	if(!postdata) postdata=null;

	if(window.XMLHttpRequest) {
		theRequest = new XMLHttpRequest();
		if(theRequest.overrideMimeType){
			theRequest.overrideMimeType('text/xml');
		}
		//theRequest.setRequestHeader("Content-Type", "text/xml;charset=windows-1251")
	} else if(window.ActiveXObject) {
		try {
			theRequest =new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try	{
				theRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if(!theRequest) {
		alert('Error: could not create XMLHTTP object.');
		return false;
	}

	theRequest.onreadystatechange = func;
	theRequest.open(meth, page, true);
	//theRequest.setRequestHeader("Content-type", "text/xml; charset=utf-8");
	//theRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=windows-1251');
	if(postdata)
		theRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

	theRequest.send(postdata);

	return false;
}

var qs = new Array();
function readqs() {
	var query = window.location.search.substring(1);
	var p = query.split('&');
	for (var i=0; i<p.length; i++) {
   	var pos = p[i].indexOf('=');
   	if (pos > 0) {
      	var k = p[i].substring(0,pos);
      	var v = p[i].substring(pos+1);
      	qs[k] = v;
      }
   }
}

function addEvent( node, evtType, func ) {
	if( node.addEventListener ) {
		node.addEventListener( evtType, func, false );
		return true;
	} else if( node.attachEvent )
		return node.attachEvent( "on" + evtType, func );
	else
		return false;
}
