﻿//////////////////////////////////////////////////
function hasOptions(obj) {
if (obj!=null && obj.options!=null) { return true; }
return false;
}
//////////////////////////////////////////////////
function moveSelectedOptions(from,to) {
if (arguments.length>3) {
var regex = arguments[3];
if (regex != "") {
unSelectMatchingOptions(from,regex);
}
}
if (!hasOptions(from)) { return; }
for (var i=0; i<from.options.length; i++) {
var o = from.options[i];
if (o.selected) {
if (!hasOptions(to)) { var index = 0; } else { var index=to.options.length; }
to.options[index] = new Option( o.text, o.value, false, false);
}
}
for (var i=(from.options.length-1); i>=0; i--) {
var o = from.options[i];
if (o.selected) {
from.options[i] = null;
}
}
if ((arguments.length<3) || (arguments[2]==true)) {
sortSelect(from);
sortSelect(to);
}
from.selectedIndex = -1;
to.selectedIndex = -1;
sort (from);
sort (to);
}

//////////////////////////////////////////////////
Array.prototype.inArray = function (value)
{
var i;
for (i=0; i < this.length; i++) {
if (this[i] === value) {
return true;
}
}
return false;
};

//////////////////////////////////////////////////
function selectAllOptions(obj) {
if (!hasOptions(obj)) { return; }
var count = 0;
var pole = new Array();
for (var i=0; i<obj.options.length; i++) {
if ( pole.inArray(obj.options[i].value) ) {
count = count + 1;
}
else {
obj.options[i].selected = true;
}
pole[i] = obj.options[i].value;
}
window.status = count + ' duplikáty neoznačeny.' ;
}

function sort(obj) {
	var o = new Array();
	if (!this.hasOptions(obj)) { return false; }
	for (var i=0; i<obj.options.length; i++) {
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
	}
	if (o.length==0) { return true; }
	o = o.sort( 
		function(a,b) { 
			if ((a.text+"") < (b.text+"")) { return -1; }
			if ((a.text+"") > (b.text+"")) { return 1; }
			return 0;
		} 
	);

	for (var i=0; i<o.length; i++) {
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	}
	return true;
}
