function createSbxDunsSelector (duns_number_div_id, duns_number_text_div_id, dun_number_field_id, dun_number_text_field_id) 
{
  var dunObject = new sbxDunsSelector ();
  dunObject.bind (duns_number_div_id, duns_number_text_div_id, dun_number_field_id, dun_number_text_field_id);
  return dunObject;
}

function sbxDunsSelector () {
  this.duns_number_div_id = null;
	this.duns_number_text_div_id = null;
	this.dun_number_field_id = null;
	this.dun_number_text_field_id = null;
  this.addButton = null;
  this.selected_display_list = null;
}

sbxDunsSelector.prototype.bind = function (duns_number_div_id, duns_number_text_div_id, dun_number_field_id, dun_number_text_field_id) {
  this.duns_number_div_id = duns_number_div_id;
  this.duns_number_text_div_id = duns_number_text_div_id;
  this.dun_number_field_id = dun_number_field_id;
  this.dun_number_text_field_id = dun_number_text_field_id;
  this.init ();
}

sbxDunsSelector.prototype.init = function(){
	$(this.duns_number_div_id).hide("fast");
	$(this.duns_number_text_div_id).show("fast");
	this.addButton = $('<div class="button addButton"><a id ="addDNU" class="addSmButton" >add</a></div>');
	this.selected_display_list = $('<div class="listContainer"><span class="selection"><b>Selections:</b></span><ul id = "ul_duns_list" class="mysbxSelectedList duns"><li id="no-dun-select" class="no-select">You have not defined any DUNS Number.</li></ul><div>');
	
	$(this.dun_number_text_field_id).after(this.addButton);
	this.addButton.after (this.selected_display_list);
	
	var dunNumber;
	var objectInstance = this;
	
	existingDunsNumber = jQuery.trim($(this.dun_number_field_id).val());
	if (existingDunsNumber != "")
	{
		var splitted = existingDunsNumber.split(", ");
		var arLen = splitted.length;	
		for (var i = 0, len = arLen; i < len; ++i) {
			objectInstance.AddDunsItem(splitted[i]);
		}
	}	
	
	this.addButton.click (function () {
	newdunNumber = $(objectInstance.dun_number_text_field_id).val();
	dunNumber = jQuery.trim($(objectInstance.dun_number_field_id).val());
	newdunNumber = newdunNumber.replace(/-/g, '');
	if (newdunNumber.length != 9 || isNaN(newdunNumber))
	{
		if (newdunNumber.length == 0)
			alert ("Enter 9 digits DUNS Number.");
		else
			alert (newdunNumber +" is not valid DUNS Number, enter 9 digits DUNS Number.");
		return;
	}
	
	var index = dunNumber.indexOf(newdunNumber);
	if (index > -1)
	{
		alert (newdunNumber+" is already in selected list.");	
		$(objectInstance.dun_number_text_field_id).val('');	
		return;
	}
	var newstr = "";
	if (dunNumber != "" )
		newStr = dunNumber+', '+newdunNumber;
	else
		newStr = dunNumber+newdunNumber;
	$(objectInstance.dun_number_field_id).val(newStr);
	$(objectInstance.dun_number_text_field_id).val('');
	objectInstance.AddDunsItem(newdunNumber);
	});
}

sbxDunsSelector.prototype.AddDunsItem =  function (newDunNumber){
	 	if (jQuery.trim(newDunNumber) == '' || jQuery.trim(newDunNumber) == ',')
	 		return;
		$('#no-dun-select').hide();
		var objectInstance = this;
		var listItem = $('<li option_id='+newDunNumber+'>' + newDunNumber + '&nbsp;&nbsp;<span class="listDelete delduns">X</span></li>');
		this.selected_display_list.children('ul').append(listItem)
		$('.delduns', listItem).click (function () {
		var optionId = $(this).parent().attr('option_id');
		dunNumber = jQuery.trim($(objectInstance.dun_number_field_id).val());
		newdunNumber = dunNumber.replace(optionId, '');
		$($(objectInstance.dun_number_field_id).val(newdunNumber));
		$(this).parent().remove();
		});
	}    	
