/** dynamiczna zmiana rozmiaru wybranych tekstow na stronie
 * @module aaa
 * @using YAHOO.util.Event,YAHOO.util.Dom,YAHOO.util.Cookie
 * @version 1.0.1
 * @example dla aaa.baseClassName = "textsize";aaa.upperClassIndex = 3;aaa.lowerClassIndex = -3;
 *	beda generowane klasy: textsize-plus-1;textsize-plus-2;textsize-plus-3;textsize-minus-1;textsize-minus-2;textsize-minus-3
 */
var aaa = function() {}
/* Config */
aaa.rootElementId = "page"; // id elementu do ktorego ma przypinac sie klasa
aaa.baseClassName = "textsize"; // bazowa nazwa klasy
aaa.upperClassIndex = 4; // maksymalny index klasy
aaa.lowerClassIndex = 0; // minimalny index klasy
/* End Config */
aaa.currentClassIndex = 0;

/**
 * @access private
 */
aaa.setCurrentClassIndex = function(v) {
	this.currentClassIndex = parseInt(v);
}
/**
 * @access private
 */
aaa.valid = function(idx) {
	if(idx == null) {return false;}
	if(idx < aaa.lowerClassIndex) {return false;}
	if(idx > aaa.upperClassIndex) {return false;}
	return true;
}

/**
 * @access private
 */
aaa.setState = function(idx) {
	if(this.valid(idx)){
		this.onChange();
		this.setCurrentClassIndex(idx);
		this.onChangeComplete();
		//alert(this.getActiveClassName());
		return true;
	}
	return false;
}

/**
 * @access private
 */
aaa.getState = function() {
	return this.currentClassIndex;
}
/**
 * @access private
 */
aaa.getCookie = function() {
	if(YAHOO.util.Cookie.exists('aaa')) {
		return YAHOO.util.Cookie.get('aaa');
	} else {
		return null;
	}
}
/**
 * @access private
 */
aaa.setCookie = function(idx) {
//	alert(idx);
	YAHOO.util.Cookie.set('aaa',idx)
}

aaa.plus = function() {
	if(this.currentClassIndex < this.upperClassIndex) {
		this.onChange();
		this.setCurrentClassIndex(this.currentClassIndex + 1);
		this.onChangeComplete();
	}
}
aaa.minus = function() {
	if(this.currentClassIndex > this.lowerClassIndex) {
		this.onChange();
		this.setCurrentClassIndex(this.currentClassIndex - 1);
		this.onChangeComplete();
	}
}
/**
 * @access private
 */
aaa.hasActiveClassName = function() {
	return this.currentClassIndex !== 0;
}
/**
 * @access private
 */
aaa.getActiveClassName = function() {
	if(this.currentClassIndex > 0) {
		return this.baseClassName+'-plus-'+this.currentClassIndex;
	} else if(this.currentClassIndex < 0) {
		return this.baseClassName+'-minus'+this.currentClassIndex;
	} else {
		return null;
	}
}
/**
 * @access private
 */
aaa.onChange = function() {
	if(this.hasActiveClassName()) {
		YAHOO.util.Dom.removeClass(document.getElementById(this.rootElementId),this.getActiveClassName());
	}
}
/**
 * @access private
 */
aaa.onChangeComplete = function() {
	if(this.hasActiveClassName()) {
		YAHOO.util.Dom.addClass(document.getElementById(this.rootElementId),this.getActiveClassName());
	}
	this.setCookie(this.getState());
}
aaa.init = function() {
	var cookie = this.getCookie();
	this.setState(cookie);
}
YAHOO.util.Event.onContentReady(aaa.rootElementId,function() {
	aaa.init();
});




