function Drops() {
};

Drops.prototype.isIE6 = (jQuery.browser.msie && jQuery.browser.version.substr(0,1)<7);

Drops.prototype.getLabel = function(code,currValue,lang) {
	if (lang==undefined) lang="en";
	
	var dropdownList=eval("drops_"+code+"_"+lang);
	
	// preparing default option
	for (var op in dropdownList) {
		var opValue=dropdownList[op]['value'];
		var opLabel=dropdownList[op]['label'];
		var isParent=dropdownList[op]['isParent'];
		
		if (!isParent) {
			// setting default value in a duplicated manner for better usability
			if (currValue==opValue && currValue!="") {
				return opLabel;
			}
		}
	}
	
	return currValue;
};
Drops.prototype.fillSelect = function(config) {
	var id=config['id'];
	var code=config['code'];
	var parent=config['parent'];
	var lang=config['lang'];
	var def=config['def'];
	var allowVoid=config['allowVoid'];
	var onchange=config['onChange'];
	var voidMessage=config['voidMessage'];
	if (voidMessage==undefined) { voidMessage=""; }
	
	var sel=jQuery("#"+id);
	
	if (lang==undefined) lang="en";
	
	var dropdownList=eval("drops_"+code+"_"+lang);
	
	if (def==undefined) {
		def=eval("drops_"+code+"_"+lang+"_defValue");
	}

	sel.empty();
	
	var notifyEvent=false;
	if (onchange!=undefined) {
		sel.unbind("change");
		sel.change(onchange);
	}
	if (allowVoid) {
		sel.append("<option value=''>"+voidMessage+"</option>");
	}
	
	// preparing default option
	for (var op in dropdownList) {
		var opValue=dropdownList[op]['value'];
		var opLabel=dropdownList[op]['label'];
		var isParent=dropdownList[op]['isParent'];
		
		if (!isParent) {
			// setting default value in a duplicated manner for better usability
			if (def==opValue && def!="") {
				sel.append("<option value='"+opValue+"' selected='selected'>"+opLabel+"</option>");
				sel.append("<optgroup name='------------' label='------------'></optgroup>");
			}
		}
	}
	
	// preparing other values
	var currentParentId=undefined;
	for (var op in dropdownList) {
		var opValue=dropdownList[op]['value'];
		var opLabel=dropdownList[op]['label'];
		var opParent=dropdownList[op]['parent'];
		var isParent=dropdownList[op]['isParent'];
		
		if (!isParent && (parent==opParent || parent==undefined || parent=="" || def==opValue)) {
			if (currentParentId!=undefined) {
				jQuery("#"+id+"_"+currentParentId).append("<option value='"+opValue+"'>"+opLabel+"</option>");
			} else {
				sel.append("<option value='"+opValue+"'>"+opLabel+"</option>");
			}
			if (def==opValue) notifyEvent=true;
		} else if (isParent && (parent==opValue || parent==undefined || parent=="")) {
			sel.append("<optgroup id='"+id+"_"+opValue+"' name='"+opValue+"' label='"+opLabel+"'></optgroup>");
			currentParentId=opValue;
		}
		
	}
	if (allowVoid) {
		if (def=="") notifyEvent=true;
	}

	if (notifyEvent && onchange!=undefined){
		eval("onchange()");
	}
};

var drops=new Drops();


