var SelectTransform = function() {
	this.classSelect = "select";
	this.classOptions = "options";
	this.classContainer = "container";
}

var SelectTransform2 = function() {
	this.classSelect = "select_n";
	this.classOptions = "options_n";
	this.classContainer = "container_n";
}

var SelectTransform3 = function() {
	this.classSelect = "select_t";
	this.classOptions = "options_t";
	this.classContainer = "container_t";
}

var SelectTransform4 = function() {
	this.classSelect = "select_z";
	this.classOptions = "options_z";
	this.classContainer = "container_z";
}
var SelectTransform5 = function() {
	this.classSelect = "select_v";
	this.classOptions = "options_v";
	this.classContainer = "container_v";
}

var SelectTransform6 = function() {
	this.classSelect = "select_v";
	this.classOptions = "options_v";
	this.classContainer = "container_v";
}

var SelectTransform7 = function() {
	this.classSelect = "select_v";
	this.classOptions = "options_v";
	this.classContainer = "container_v";
}


/**
 * najit na formu vsechny selecty a transformovat
 * 
 * @param formID
 * @return
 */
SelectTransform.prototype.transform = function(formID) {
	var form = document.getElementById(formID);
	var elems = form.getElementsByTagName("select");
	for(i = 0; i < elems.length; i++) {
		this.transformElem(elems[i]);
	}
}

SelectTransform.prototype.transformById = function(elemID) {
	this.transformElem(document.getElementById(elemID));
}

SelectTransform2.prototype.transform2 = function(formID) {
	var form = document.getElementById(formID);
	var elems = form.getElementsByTagName("select");
	for(i = 0; i < elems.length; i++) {
		this.transformElem(elems[i]);
	}
}

SelectTransform2.prototype.transformById = function(elemID) {
	this.transformElem(document.getElementById(elemID));
}

SelectTransform3.prototype.transform3 = function(formID) {
	var form = document.getElementById(formID);
	var elems = form.getElementsByTagName("select");
	for(i = 0; i < elems.length; i++) {
		this.transformElem(elems[i]);
	}
}

SelectTransform3.prototype.transformById = function(elemID) {
	this.transformElem(document.getElementById(elemID));
}

SelectTransform4.prototype.transform4 = function(formID) {
	var form = document.getElementById(formID);
	var elems = form.getElementsByTagName("select");
	for(i = 0; i < elems.length; i++) {
		this.transformElem(elems[i]);
	}
}

SelectTransform4.prototype.transformById = function(elemID) {
	this.transformElem(document.getElementById(elemID));
}

SelectTransform5.prototype.transform5 = function(formID) {
	var form = document.getElementById(formID);
	var elems = form.getElementsByTagName("select");
	for(i = 0; i < elems.length; i++) {
		this.transformElem(elems[i]);
	}
}

SelectTransform5.prototype.transformById = function(elemID) {
	this.transformElem(document.getElementById(elemID));
}

SelectTransform6.prototype.transform6 = function(formID) {
	var form = document.getElementById(formID);
	var elems = form.getElementsByTagName("select");
	for(i = 0; i < elems.length; i++) {
		this.transformElem(elems[i]);
	}
}

SelectTransform6.prototype.transformById = function(elemID) {
	this.transformElem(document.getElementById(elemID));
}

SelectTransform7.prototype.transform7 = function(formID) {
	var form = document.getElementById(formID);
	var elems = form.getElementsByTagName("select");
	for(i = 0; i < elems.length; i++) {
		this.transformElem(elems[i]);
	}
}

SelectTransform7.prototype.transformById = function(elemID) {
	this.transformElem(document.getElementById(elemID));
}

/**
 * nahradit prvek select pomoci policka s aktualni vybranou polozkou
 * a div s vyberem polozek
 * 
 * @param input
 */
SelectTransform.prototype.transformElem = function(input) {
	var par = input.parentNode;
	var si = input.selectedIndex;
	var i, opt, cnt;
	
	var node = document.createElement("div");
	node.className = this.classSelect + " " + input.className;
	node.id = input.id;
	var span = document.createElement("span");
	span.innerHTML = input.options[si].text;
	node.appendChild(span);
	
	var cont = document.createElement("div");
	cont.className = this.classContainer;
	var opts = document.createElement("div");
	opts.className = this.classOptions;
	for(i = 0; i < input.options.length; i++) {
		cnt = document.createElement("div");
		opt = document.createElement("span");
		opt.innerHTML = input.options[i].text;
		cnt.appendChild(opt);
		opts.appendChild(cnt);
		this.setOptionClick(opt, input, span, input.options[i].text, input.options[i].value);
	}
	
	this.setSelectClick(node, opts);
	
	cont.appendChild(opts);
	node.appendChild(cont);
	par.insertBefore(node, input);
	input.style.display = "none";
	opts.style.display = "none";
}

SelectTransform2.prototype.transformElem = function(input) {
	var par = input.parentNode;
	var si = input.selectedIndex;
	var i, opt, cnt;
	
	var node = document.createElement("div");
	node.className = this.classSelect + " " + input.className;
	node.id = input.id;
	var span = document.createElement("span");
	span.innerHTML = input.options[si].text;
	node.appendChild(span);
	
	var cont = document.createElement("div");
	cont.className = this.classContainer;
	var opts = document.createElement("div");
	opts.className = this.classOptions;
	for(i = 0; i < input.options.length; i++) {
		cnt = document.createElement("div");
		opt = document.createElement("span");
		opt.innerHTML = input.options[i].text;
		cnt.appendChild(opt);
		opts.appendChild(cnt);
		this.setOptionClick(opt, input, span, input.options[i].text, input.options[i].value);
	}
	
	this.setSelectClick(node, opts);
	
	cont.appendChild(opts);
	node.appendChild(cont);
	par.insertBefore(node, input);
	input.style.display = "none";
	opts.style.display = "none";
}


SelectTransform3.prototype.transformElem = function(input) {
	var par = input.parentNode;
	var si = input.selectedIndex;
	var i, opt, cnt;
	
	var node = document.createElement("div");
	node.className = this.classSelect + " " + input.className;
	node.id = input.id;
	var span = document.createElement("span");
	span.innerHTML = input.options[si].text;
	node.appendChild(span);
	
	var cont = document.createElement("div");
	cont.className = this.classContainer;
	var opts = document.createElement("div");
	opts.className = this.classOptions;
	for(i = 0; i < input.options.length; i++) {
		cnt = document.createElement("div");
		opt = document.createElement("span");
		opt.innerHTML = input.options[i].text;
		cnt.appendChild(opt);
		opts.appendChild(cnt);
		this.setOptionClick(opt, input, span, input.options[i].text, input.options[i].value);
	}
	
	this.setSelectClick(node, opts);
	
	cont.appendChild(opts);
	node.appendChild(cont);
	par.insertBefore(node, input);
	input.style.display = "none";
	opts.style.display = "none";
}

SelectTransform4.prototype.transformElem = function(input) {
	var par = input.parentNode;
	var si = input.selectedIndex;
	var i, opt, cnt;
	
	var node = document.createElement("div");
	node.className = this.classSelect + " " + input.className;
	node.id = input.id;
	var span = document.createElement("span");
	span.innerHTML = input.options[si].text;
	node.appendChild(span);
	
	var cont = document.createElement("div");
	cont.className = this.classContainer;
	var opts = document.createElement("div");
	opts.className = this.classOptions;
	for(i = 0; i < input.options.length; i++) {
		cnt = document.createElement("div");
		opt = document.createElement("span");
		opt.innerHTML = input.options[i].text;
		cnt.appendChild(opt);
		opts.appendChild(cnt);
		this.setOptionClick(opt, input, span, input.options[i].text, input.options[i].value);
	}
	
	this.setSelectClick(node, opts);
	
	cont.appendChild(opts);
	node.appendChild(cont);
	par.insertBefore(node, input);
	input.style.display = "none";
	opts.style.display = "none";
}

SelectTransform5.prototype.transformElem = function(input) {
	var par = input.parentNode;
	var si = input.selectedIndex;
	var i, opt, cnt;
	
	var node = document.createElement("div");
	node.className = this.classSelect + " " + input.className;
	node.id = input.id;
	var span = document.createElement("span");
	span.innerHTML = input.options[si].text;
	node.appendChild(span);
	
	var cont = document.createElement("div");
	cont.className = this.classContainer;
	var opts = document.createElement("div");
	opts.className = this.classOptions;
	for(i = 0; i < input.options.length; i++) {
		cnt = document.createElement("div");
		opt = document.createElement("span");
		opt.innerHTML = input.options[i].text;
		cnt.appendChild(opt);
		opts.appendChild(cnt);
		this.setOptionClick(opt, input, span, input.options[i].text, input.options[i].value);
	}
	
	this.setSelectClick(node, opts);
	
	cont.appendChild(opts);
	node.appendChild(cont);
	par.insertBefore(node, input);
	input.style.display = "none";
	opts.style.display = "none";
}

SelectTransform6.prototype.transformElem = function(input) {
	var par = input.parentNode;
	var si = input.selectedIndex;
	var i, opt, cnt;
	
	var node = document.createElement("div");
	node.className = this.classSelect + " " + input.className;
	node.id = input.id;
	var span = document.createElement("span");
	span.innerHTML = input.options[si].text;
	node.appendChild(span);
	
	var cont = document.createElement("div");
	cont.className = this.classContainer;
	var opts = document.createElement("div");
	opts.className = this.classOptions;
	for(i = 0; i < input.options.length; i++) {
		cnt = document.createElement("div");
		opt = document.createElement("span");
		opt.innerHTML = input.options[i].text;
		cnt.appendChild(opt);
		opts.appendChild(cnt);
		this.setOptionClick(opt, input, span, input.options[i].text, input.options[i].value);
	}
	
	this.setSelectClick(node, opts);
	
	cont.appendChild(opts);
	node.appendChild(cont);
	par.insertBefore(node, input);
	input.style.display = "none";
	opts.style.display = "none";
}

SelectTransform7.prototype.transformElem = function(input) {
	var par = input.parentNode;
	var si = input.selectedIndex;
	var i, opt, cnt;
	
	var node = document.createElement("div");
	node.className = this.classSelect + " " + input.className;
	node.id = input.id;
	var span = document.createElement("span");
	span.innerHTML = input.options[si].text;
	node.appendChild(span);
	
	var cont = document.createElement("div");
	cont.className = this.classContainer;
	var opts = document.createElement("div");
	opts.className = this.classOptions;
	for(i = 0; i < input.options.length; i++) {
		cnt = document.createElement("div");
		opt = document.createElement("span");
		opt.innerHTML = input.options[i].text;
		cnt.appendChild(opt);
		opts.appendChild(cnt);
		this.setOptionClick(opt, input, span, input.options[i].text, input.options[i].value);
	}
	
	this.setSelectClick(node, opts);
	
	cont.appendChild(opts);
	node.appendChild(cont);
	par.insertBefore(node, input);
	input.style.display = "none";
	opts.style.display = "none";
}

/**
 * closure pro klik na cely select
 * 
 * @param node
 * @param options
 */
SelectTransform.prototype.setSelectClick = function(node, options) {
	var fHide = function() {
		options.style.display = "none";
		removeEvent("click", fHide, document);
	};
	node.onclick = function() {
		if(options.style.display == "none") {
			options.style.display = "block";
			setTimeout(function() {
				addEvent("click", fHide, document);
			}, 10);
		}
	}
}


SelectTransform2.prototype.setSelectClick = function(node, options) {
	var fHide = function() {
		options.style.display = "none";
		removeEvent("click", fHide, document);
	};
	node.onclick = function() {
		if(options.style.display == "none") {
			options.style.display = "block";
			setTimeout(function() {
				addEvent("click", fHide, document);
			}, 10);
		}
	}
}

SelectTransform3.prototype.setSelectClick = function(node, options) {
	var fHide = function() {
		options.style.display = "none";
		removeEvent("click", fHide, document);
	};
	node.onclick = function() {
		if(options.style.display == "none") {
			options.style.display = "block";
			setTimeout(function() {
				addEvent("click", fHide, document);
			}, 10);
		}
	}
}

SelectTransform4.prototype.setSelectClick = function(node, options) {
	var fHide = function() {
		options.style.display = "none";
		removeEvent("click", fHide, document);
	};
	node.onclick = function() {
		if(options.style.display == "none") {
			options.style.display = "block";
			setTimeout(function() {
				addEvent("click", fHide, document);
			}, 10);
		}
	}
}

SelectTransform5.prototype.setSelectClick = function(node, options) {
	var fHide = function() {
		options.style.display = "none";
		removeEvent("click", fHide, document);
	};
	node.onclick = function() {
		if(options.style.display == "none") {
			options.style.display = "block";
			setTimeout(function() {
				addEvent("click", fHide, document);
			}, 10);
		}
	}
}

SelectTransform6.prototype.setSelectClick = function(node, options) {
	var fHide = function() {
		options.style.display = "none";
		removeEvent("click", fHide, document);
	};
	node.onclick = function() {
		if(options.style.display == "none") {
			options.style.display = "block";
			setTimeout(function() {
				addEvent("click", fHide, document);
			}, 10);
		}
	}
}

SelectTransform7.prototype.setSelectClick = function(node, options) {
	var fHide = function() {
		options.style.display = "none";
		removeEvent("click", fHide, document);
	};
	node.onclick = function() {
		if(options.style.display == "none") {
			options.style.display = "block";
			setTimeout(function() {
				addEvent("click", fHide, document);
			}, 10);
		}
	}
}

/**
 * closure pro klik na polozku
 * 
 * @param node
 * @param input
 * @param span
 * @param text
 * @param value
 */
SelectTransform.prototype.setOptionClick = function(node, input, span, text, value) {
	node.onclick = function() {
		span.innerHTML = text;
		input.value = value;
		if(input.onchange) {
			input.onchange();
		}
	}
}

var selectTrans = new SelectTransform();

SelectTransform2.prototype.setOptionClick = function(node, input, span, text, value) {
	node.onclick = function() {
		span.innerHTML = text;
		input.value = value;
		//document.getElementById('typ').value=value;
		if(input.onchange) {
			input.onchange();
		}
	}
}
  
var selectTrans2 = new SelectTransform2(); 

SelectTransform3.prototype.setOptionClick = function(node, input, span, text, value) {
	node.onclick = function() {
		span.innerHTML = text;
		input.value = value;
		document.getElementById('typ').value=value;
		if(input.onchange) {
			input.onchange();
		}
	}
}
  
var selectTrans3 = new SelectTransform3();

SelectTransform4.prototype.setOptionClick = function(node, input, span, text, value) {
	node.onclick = function() {
		span.innerHTML = text;
		input.value = value;
		document.getElementById('zony').value=value;
		if(input.onchange) {
			input.onchange();
		}
	}
}
  
var selectTrans4 = new SelectTransform4();

SelectTransform5.prototype.setOptionClick = function(node, input, span, text, value) {
	node.onclick = function() {
		span.innerHTML = text;
		input.value = value;
		document.getElementById('vyskam').value=value;
		if(input.onchange) {
			input.onchange();
		}
	}
}
  
var selectTrans5 = new SelectTransform5();

SelectTransform6.prototype.setOptionClick = function(node, input, span, text, value) {
	node.onclick = function() {
		span.innerHTML = text;
		input.value = value;
		document.getElementById('delkam').value=value;
		if(input.onchange) {
			input.onchange();
		}
	}
}
  
var selectTrans6 = new SelectTransform6();

SelectTransform7.prototype.setOptionClick = function(node, input, span, text, value) {
	node.onclick = function() {
		span.innerHTML = text;
		input.value = value;
		document.getElementById('sirkam').value=value;
		if(input.onchange) {
			input.onchange();
		}
	}
}
  
var selectTrans7 = new SelectTransform7();

   

//------------------------------- pomocne --------------------------------------

function addEvent(eventName, handler, object) {
	if(object.addEventListener) {
		object.addEventListener(eventName, handler, false);
	} else {
		object.attachEvent("on" + eventName, handler);
	}
}

function removeEvent(eventName, handler, object) {
	if(object.removeEventListener) {
		object.removeEventListener(eventName, handler, false);
	} else {
		object.detachEvent("on" + eventName, handler);
	}
}

function getEventTarget(e) {
	if(!e)
		var e = window.event;

	if(e.target) {
		return e.target;
	} else if(e.srcElement) {
		return e.srcElement;
	}
}
/*
  moje funkce
*/
/*
			function fixedEl(id){
				if(document.all){
					document.all['id'].style.pixelTop = document.body.scrollTop + 195;
							// pixelTop je nÄ›co jako top v CSS
							// document.body.scrollTop  ™ ­k ¡, jak moc je to odrolovan © dol »
							// ta devades ¡tka je ta sam ¡ devades ¡tka jako ve stylu
					}
			}
     */
