var checkboxesComboIndex = 0;
var checkboxesComboDelayedObjects = [];
var checkboxesComboDelayedExtraParams = [];
createSpecificComboSelectInternal = function (obj, extraParams, noDelay) {
	// we are gonna delay the creation of checkboxes combos so they dont clutter the javascript engine in IE.
	if (false && !noDelay && getInternetExplorerVersion() > -1) {
		checkboxesComboIndex++;
		checkboxesComboDelayedObjects[checkboxesComboIndex] = obj;
		checkboxesComboDelayedExtraParams[checkboxesComboIndex] = extraParams;
		setTimeout('createSpecificComboSelectInternal(checkboxesComboDelayedObjects['+checkboxesComboIndex+'], checkboxesComboDelayedExtraParams['+checkboxesComboIndex+'], true);', 50);
		return;
	}
	
	if (obj.alreadyChangedToCheckboxesCombo) {
		return true;
	}
	
	var params = {maxDropHeight: 200};
	if ($(obj).hasClass("firstChecksAll")) {
		params["firstItemChecksAll"] = true;
	}
	if ($(obj).hasClass("firstMeansAll")) {
		params["firstItemMeansAll"] = true;
	}

	if ($(obj).parent().css("width")) {
		params["width"] = parseInt($(obj).parent().css("width")) - 20;
	}
	if (extraParams != null) {
		for (key in extraParams) {
			params[key] = extraParams[key];
		}
	}
	
	$(obj).dropdownchecklist(params);
	obj.alreadyChangedToCheckboxesCombo = true;
	
	return true;
}

var createSpecificComboSelectExtraParams = Array();
createComboSelect = function () {
	$("select.multiSelectCombo").each(function() {
		var id = $(this).attr("id");
		createSpecificComboSelectInternal(this, createSpecificComboSelectExtraParams[id]);
	});
}

var miscDisgustingDocumentIsReady = false;

createSpecificComboSelect = function (id, extraParams, noDelay) {
	if (!miscDisgustingDocumentIsReady) {
		createSpecificComboSelectExtraParams[id] = extraParams;
		return false;
	}
	
	var obj = $("#" + id);
	if (!obj) {
		return false;
	}

	return createSpecificComboSelectInternal(obj, extraParams, noDelay);
}

$(document).ready(function(){
	createComboSelect();
	miscDisgustingDocumentIsReady = true;
});

