function initSubSelects2(current,parents,data,button) {
	$('#'+current).hide();
	for (keyVar in data) {
		$('#'+current).append($("<option></option>").attr("value",data[keyVar].val).text(data[keyVar].label));
		
	}
	$('#'+current).show();


	$('#'+parents[0]).change(
		function()
		{
			if ($('#'+parents[0]).val() != -1) {
				$('#'+current).hide();
				//clear
				$('#'+current+' option').remove();
				//fill with data

				valPrimaryParent = $('#'+parents[0]+' option:selected').val();

				twoParents = false;

				if (parents.length == 2) {
					twoParents = true;
					valSecondaryParent = $('#'+parents[1]+' option:selected').val();
				}

				$('#'+current).append($("<option></option>").attr("value",'-1').text(' '));
				for (keyVar in data) {
					varOkPrimary = false;
					// single value
					if (data[keyVar].parentvalue.parent1[0] == 'single') {
						if (valPrimaryParent == data[keyVar].parentvalue.parent1[1]) {
							 varOkPrimary = true;
						}
					}
					//multidcsep
					if (data[keyVar].parentvalue.parent1[0] == 'dcsep') {
						splitArr = data[keyVar].parentvalue.parent1[1].split(';');
						if (searchArray(splitArr,valPrimaryParent) == true) varOkPrimary = true;
					}
					//check secondary
					if (twoParents) {
						varOkSecondary = false;
						// single value
						//if (data[keyVar].parentvalue.parent2[0] == 'single') {
						//	if (valSecondaryParent != data[keyVar].parentvalue.parent2[1]) varOk = false;
						//}
						//multidcsep
						if (data[keyVar].parentvalue.parent2[0] == 'dcsep') {
							splitArr2 = data[keyVar].parentvalue.parent2[1].split(';');
							if (searchArray(splitArr2,valSecondaryParent) == true) { 
							  varOkSecondary = true;      
							} 
						}	
					}

					varOk = false;

					if (twoParents == false) varOk = varOkPrimary;
                                        if (twoParents == true) {
						if ((varOkPrimary == true) && (varOkSecondary == true)) varOk = true;
					}
 
					if (varOk == true) {
						$('#'+current).append($("<option></option>").attr("value",data[keyVar].val).text(data[keyVar].label));
					}
				}
				$('#'+current).attr('disabled','');
				$('#'+current).show();
				$('#'+current).change();
			} else {
				$('#'+current).val('-1');
				$('#'+current).attr('disabled','disabled');
				$('#'+current).change();
			};
		}
	);

	if (button != '') {

		$('#'+current).change(function() {
			if ($('#'+current+' option:selected').val() != '-1') {
				$('#'+button).attr('disabled','');

			} else {
				$('#'+button).attr('disabled','disabled');
			}
		});
	}
}

function searchArray(arr,val) {
	varOk = false;

	if (arr != null) {
		for (x in arr) {
			if (arr[x] == val) {
				varOk = true;
			}
		}
	}
	return varOk;
}

function bindButton2chain (button,selects,prefixe) {
	$('#'+button).unbind();
	$('#'+button).click(function(){
		path = '';

		if (prefixe != '') {
			path = prefixe + '/';
		}


		for (varId in selects) {
			curId = selects[varId][0];
			selVal = $('#'+curId+' option:selected').val();
			
			if (selVal !=-1) {
				curLink = getLinkByVal(selVal,selects[varId][1]);
				path = path + curLink + '/';

			}

		}
		//alert(path);
		//window.open(this.href);
		 window.location = path;
	});
}

function getLinkByVal(val,data) {
	var res = '';
	for (varId in data) {
		if (data[varId].val == val) res = data[varId].link;
	}
	return res;
}

function linkButton(select,button) {
	$('#'+select).change(function() {
		if ($('#'+select+' option:selected').val() != '-1') {
			$('#'+button).attr('disabled','');
        	} else {
			$('#'+button).attr('disabled','disabled');
		}

	})
}
