SZN.FormSwitcher = SZN.ClassMaker.makeClass({
	NAME:"SZN.FormSwitcher",
	VERSION:"1.0",
	CLASS:"class"
});

SZN.FormSwitcher.prototype.$constructor = function (activeForm) {
	this.forms = [SZN.gEl('pcr-form'), SZN.gEl('dissallowed-form'), SZN.gEl('help-form')];
	this.links = SZN.gEl('form-links').getElementsByTagName('a');
	this.ac = {};

	this.selectedFlag = SZN.cEl('span', null, 'blind');
	this.selectedFlag.innerHTML = 'vybráno: ';


	this.active = activeForm || null;

	for(var i = 0; i < this.forms.length; i++) {
		if (activeForm) {
			if (this.forms[i] != this.active) {
				SZN.Dom.addClass(this.forms[i], 'nodisplay');
			} else {
				SZN.Dom.addClass(this.links[i], 'active');
				this.links[i].parentNode.insertBefore(this.selectedFlag, this.links[i]);
			}
		} else {
			SZN.Dom.addClass(this.forms[i], 'nodisplay');
		}
		this.ac['link-' + i] = SZN.Events.addListener(this.links[i], 'click', this, this._change);
	}
};

SZN.FormSwitcher.prototype._change = function (e, elm) {
	SZN.Events.cancelDef(e);

	var idClicked = elm.id.split('-')[0];

	if (this.active !== null) {
		var linkActive = SZN.gEl(this.active.id.split('-')[0] + '-link');
	}

	var formClicked = SZN.gEl(idClicked + '-form');

	if (this.active == null) {
		SZN.Dom.addClass(elm, 'active');
		SZN.Dom.removeClass(formClicked, 'nodisplay');
		this.active = formClicked;

	} else if (this.active.id.split('-')[0] != idClicked) {
		SZN.Dom.addClass(elm, 'active');
		SZN.Dom.removeClass(linkActive, 'active');

		elm.parentNode.insertBefore(this.selectedFlag, elm);

		SZN.Dom.addClass(this.active, 'nodisplay');
		SZN.Dom.removeClass(formClicked, 'nodisplay');
		this.active = formClicked;
	}
};

SZN.Disclaimer = SZN.ClassMaker.makeClass({
	NAME: "SZN.Disclaimer",
	VERSION: "1.0",
	CLASS: "class"
});

SZN.Disclaimer.prototype.$constructor = function(link, disclaimer) {
	this.shader = new SZN.Shader();
	
	this.url = link.href;
	this.disclaimer = disclaimer;
	disclaimer.parentNode.removeChild(disclaimer);
	
	disclaimer.style.position = "absolute";
	disclaimer.style.zIndex = 2;
	SZN.Events.addListener(link, "click", this, "_click");
	
	var close = disclaimer.getElementsByTagName("a")[0];
	SZN.Events.addListener(close, "click", this, "_hide");
	
	var downLink = disclaimer.getElementsByTagName("a")[1];
	this.downLink = downLink;
	
	var cb = disclaimer.getElementsByTagName("input")[0];
	SZN.Events.addListener(cb, "change", this, "_change");
	SZN.Events.addListener(cb, "click", this, "_change");
	this.cb = cb;
}	


SZN.Disclaimer.prototype._show = function() {
	this.shader.show();
	document.body.appendChild(this.disclaimer);
	this._position();
	SZN.Dom.elementsHider(this.disclaimer, null, "hide");
	
	this.cb.checked = false;
	this._change();
}

SZN.Disclaimer.prototype._hide = function(e) {
	SZN.Events.cancelDef(e);
	SZN.Dom.elementsHider(this.disclaimer, null, "show");
	this.disclaimer.parentNode.removeChild(this.disclaimer);
	this.shader.hide();
}

SZN.Disclaimer.prototype._position = function() {
	var elm = this.disclaimer;
	var size = SZN.Dom.getDocSize();
	var scroll = SZN.Dom.getScrollPos();
	
	elm.style.left = Math.round(scroll.x + (size.width - elm.offsetWidth)/2) + "px";
	elm.style.top = Math.round(scroll.y + (size.height - elm.offsetHeight)/2) + "px";
}

SZN.Disclaimer.prototype._change = function(e, elm) {
	if (this.cb.checked) {
		this.downLink.href = this.url;
		SZN.Dom.removeClass(this.downLink, "disabled");
	} else {
		this.downLink.href = "";
		SZN.Dom.addClass(this.downLink, "disabled");
	}
}

SZN.Disclaimer.prototype._click = function(e, elm) {
	SZN.Events.cancelDef(e);
	this._show();
}
