function vote_for_post(post_id,rating) {
	new Ajax.Request('/ajax/vote_for_post?post_id='+post_id+'&rating='+rating+'&v='+Math.random(),
	  {
	    method:'get',
	    onSuccess: function(transport){
	      var response = transport.responseText ||  document.getElementById('rating_'+post_id).innerHTML;	      
	      document.getElementById('rating_'+post_id).innerHTML = response;
	    },
	    onFailure: function(){  }
	  });
	return false;
}
function hide(el) {
  if (document.getElementById) {
    document.getElementById(el).style.display='none';
  }
  else if(document.all) {
    document.all(el).style.display='none';
  }
}
function show(el) {
  if (document.getElementById) {
    document.getElementById(el).style.display='';
  }
  else if(document.all) {
    document.all(el).style.display='';
  }
}
function toggle(el) {
  if (document.getElementById) {
    document.getElementById(el).style.display=(document.getElementById(el).style.display=='none')?'':'none';
  }
  else if(document.all) {
    document.all(el).style.display=(document.all(el).style.display=='none')?'':'none';
  }
}
function toggleLayers(tL) {
  cnt=tL.length;
  if(cnt>0) {
    tL=tL.split(",");
    cnt=tL.length;
    for(i=0;i<cnt;i++) {
      toggle(tL[i]);
    }
  }
}
function showHideLayers(sL,hL) {
  cnt=sL.length;
  if(cnt>0) {
    sL=sL.split(",");
    cnt=sL.length;
    for(i=0;i<cnt;i++) {
      show(sL[i]);
    }
  }
  cnt=hL.length;
  if(cnt>0) {
    hL=hL.split(",");
    cnt=hL.length;
    for(i=0;i<cnt;i++) {
      hide(hL[i]);
    }
  }
}
function toggleCategoryTreeNode(el, linkel) {
	toggle('category_tree_node_'+el);
	
	
		document.getElementById('category_tree_image_'+el).src = (document.getElementById('category_tree_image_'+el).src.search("/img/category_down.png") == -1) ? "/img/category_down.png" : "/img/category_up.png";
		save_uncollapsed(el, (document.getElementById('category_tree_node_'+el).style.display == "none") ? false : true);		
	

	return false;
}




function set_cookie(name, value, expires)
{
	document.cookie = name + '=' + escape(value) + '; path=/' + (typeof expires != 'undefined' ? '; expires=' + expires.toGMTString() : '');
}


function delete_cookie(name)
{
	document.cookie = name + '=' + '; expires=Thu, 01-Jan-70 00:00:01 GMT' +  '; path=/';
}


function fetch_cookie(name)
{
	cookie_name = name + '=';
	cookie_length = document.cookie.length;
	cookie_begin = 0;
	while (cookie_begin < cookie_length)
	{
		value_begin = cookie_begin + cookie_name.length;
		if (document.cookie.substring(cookie_begin, value_begin) == cookie_name)
		{
			var value_end = document.cookie.indexOf (';', value_begin);
			if (value_end == -1)
			{
				value_end = cookie_length;
			}
			var cookie_value = unescape(document.cookie.substring(value_begin, value_end));
			return cookie_value;
		}
		cookie_begin = document.cookie.indexOf(' ', cookie_begin) + 1;
		if (cookie_begin == 0)
		{
			break;
		}
	}
	return null;
}


function save_uncollapsed(objid, adduncollapsed)
{
	var uncollapsed = fetch_cookie('uncollapse');
	var tmp = new Array();

	if (uncollapsed != null)
	{
		uncollapsed = uncollapsed.split('\n');

		for (var i in uncollapsed)
		{
			if (uncollapsed[i] != objid && uncollapsed[i] != '' && !(typeof(uncollapsed[i]) == 'function'))
			{
				tmp[tmp.length] = uncollapsed[i];
			}
		}
	}
	if (adduncollapsed)
	{
		tmp[tmp.length] = objid;
	}

	expires = new Date();
	expires.setTime(expires.getTime() + (1000 * 86400 * 365));
	set_cookie('uncollapse', tmp.join('\n'), expires);
}


function min_all()
{ 
			
	
	var uncollapsed = fetch_cookie('uncollapse');
	
	if (uncollapsed == null) return true;	
	if ((uncollapsed != ''))
	{
		uncollapsed = uncollapsed.split('\n');

		for (var i in uncollapsed )
		{
			if(!(typeof(uncollapsed[i]) == 'function')) {
				document.getElementById('category_tree_node_'+uncollapsed[i]).style.display = "";
				document.getElementById('category_tree_image_'+uncollapsed[i]).src = '/img/category_up.png';
				document.getElementById('category_tree_image_'+uncollapsed[i]).src = '/img/category_up.png';
		}
		} 
			
		} else {
				  }
			
}
	





// creates select HTML from a name string and an array of options
function toSelect(name, options, selected) {
        str = "<select name=\"" + name + "\">\n";
        var n = options.length;
        for (i=0; i<n; i++) {
                arrKeyVal = options[i].split(':');
                optionSelected = (selected == arrKeyVal[0]) ? " selected" : "";
                str += "<option value=\"" + arrKeyVal[0] + "\"" + optionSelected + ">" + arrKeyVal[1] + "</option>\n";
        }
        str += "</select>\n";
        return str;
}

function subSelect(url,el,selected) {
        document.getElementById('container_'+el).innerHTML ='Подождите, идет загрузка...';
        var myAjax = new Ajax.Request(url,
                {
                method: "get",
                onSuccess: function transResult (response) {
                        options = response.responseText.split("|");
                        document.getElementById('container_'+el).innerHTML = toSelect(el, options, selected);
                },
                onFailure: function(){  }
                }
        );
        return false;
}

