// --------------------------------------------------------------------
// Visual HTML page enchansement
// version 0.1
// 2008-05-25
// home: http://udobnee.net/script/
// Copyright (c) 2008, Pavel Volyntsev, pavel.volyntsev@gmail.com
//
// --------------------------------------------------------------------
// 
// Instruction for use : http://udobnee.net/script/
//
//

var WaterSqueezer = Class.create();
WaterSqueezer.prototype = {
     	initialize: function(textId, level1Class, level2Class, level1StyleSheetId, level2StyleSheetId) {
		this.target = $(textId);
		if (!this.target) return;

		this.level1_className = level1Class||"level1"
		this.level2_className = level2Class||"level2"

		this.level1_styleSheet = $(level1StyleSheetId)
		this.level2_styleSheet = $(level2StyleSheetId)

		this.level1_styleSheet.disabled = false;
		this.level1_styleSheet.disabled = true;
		this.level2_styleSheet.disabled = false;
		this.level2_styleSheet.disabled = true;


		var L0 = this.target.innerHTML.length;
		var L1 = this.count_length(this.target, this.level1_className);
		var L2 = this.count_length(this.target, this.level2_className);
		if (L0==0 || (L1==0 && L2==0)) return;
		L1 = parseInt((L1 + L2) / L0 * 100 );
		L2 = parseInt(L2 / L0 * 100 );
		L0 = 100;

		var selectors = document.createElement("DIV");
		selectors.className = "watersqueezer";
		selectors.innerHTML = '<div class="caption">Фильтр важности:</div>';

		this.selector0 = document.createElement("DIV");
		this.selector0.innerHTML = '<span>Всё: </span><span>' + L0 + '%</span>';
		this.selector0.className = "selector level0";

		var pp0 = document.createElement("DIV")
		pp0.style.width = L0 + "%";
		pp0.className = "background";
		this.selector0.appendChild(pp0);

		this.selector1 = document.createElement("DIV");
		this.selector1.innerHTML = '<span>Сжато: </span><span>' + L1 + '%</span>';
		this.selector1.className = "selector level1";

		var pp1 = document.createElement("DIV")
		pp1.style.width = L1 + "%";
		pp1.className = "background";
		this.selector1.appendChild(pp1);

		this.selector2 = document.createElement("DIV");
		this.selector2.innerHTML = '<span>Кратко: </span><span>' + L2 + '%</span>';
		this.selector2.className = "selector level2";

		var pp2 = document.createElement("DIV")
		pp2.style.width = L2 + "%";
		pp2.className = "background";
		this.selector2.appendChild(pp2);

		selectors.appendChild(this.selector0);
		selectors.appendChild(this.selector1);
		selectors.appendChild(this.selector2);

		var footer = document.createElement("DIV");
		footer.innerHTML = "<a href='http://udobnee.net/script/#watersqueezer'>Что это такое?</a>";
		footer.className = "footer";
		selectors.appendChild(footer);
		

		this.target.insertBefore(selectors,this.target.firstChild);
		Event.observe(this.selector0,"click",this.selector0_click.bindAsEventListener(this))
		Event.observe(this.selector1,"click",this.selector1_click.bindAsEventListener(this))
		Event.observe(this.selector2,"click",this.selector2_click.bindAsEventListener(this))

	},
	count_length : function(o, className) {
		var L=0;
		for(var i=0; i<o.childNodes.length; i++)
		{
		   if (o.childNodes[i].className==className)
			{
				L += o.childNodes[i].innerHTML.length;
			}
		   else if (o.childNodes[i].hasChildNodes())
		   {
			L += this.count_length(o.childNodes[i],className);
		   }
		   else
		   {
			if (o.childNodes[i].className==className)
			{
				L++;
			}
		   }
		}
		return L;
	} ,
	selector0_click : function(e) {
		this.selector0.className = "selector level0 enabled"
		this.selector1.className = "selector level1"
		this.selector2.className = "selector level2"
		this.level1_styleSheet.disabled = true;
		this.level2_styleSheet.disabled = true;
	},
	selector1_click : function(e) {
		this.selector0.className = "selector level0"
		this.selector1.className = "selector level1 enabled"
		this.selector2.className = "selector level2"
		this.level1_styleSheet.disabled = false;
		this.level2_styleSheet.disabled = true;
	},
	selector2_click : function(e) {
		this.selector0.className = "selector level0"
		this.selector1.className = "selector level1"
		this.selector2.className = "selector level2 enabled"
		this.level1_styleSheet.disabled = false;
		this.level2_styleSheet.disabled = false;
	}
}