

/**
 * @todo This needs to be moved into a shared library
 *
 * Author: peterl
 */
Array.prototype.in_array = function ( obj ) {
	var len = this.length;
	for ( var x = 0 ; x <= len ; x++ ) {
		if ( this[x] == obj ) return true;
	}
	return false;
}

Array.prototype.unique =
  function() {
    var a = [];
    var l = this.length;
    for(var i=0; i<l; i++) {
      for(var j=i+1; j<l; j++) {
        // If this[i] is found later in the array
        if (this[i] === this[j])
          j = ++i;
      }
      a.push(this[i]);
    }
    return a;
  };
  
  
/**
 * @todo This code needs to work within context of the Builder js supplied context.
 *
 * Author: peterl
 */
IDBSYachtSearch.Builder.addBuilderToList = function(){
	if($('#builder_name').val()!='' && $('#builder_id').val()!==''){

		/** get list of builders id from hidden variable **/
		var builder_id_list = $('#property_yacht_builder_id').val().split(",");
		
		if(builder_id_list.in_array($('#builder_id').val())){
			//do nothing
		}else{
			/** add item **/
			if(builder_id_list[0]==''){
				builder_id_list[0] = $('#builder_id').val();
			}else{
				builder_id_list[builder_id_list.length] = $('#builder_id').val();
			}
			$('#property_yacht_builder_id').val(builder_id_list.join(','))				
			
			/** clone template item **/
			var template_item = $('#builderListTemplate > li').clone();
			template_item.attr('id','builder_id_'+$('#builder_id').val());
			var builder_name = $('#builder_name').val();
			$("div[class='builder']", template_item).text(builder_name);
			//property_yacht_builder_list_element = '<div class="builderDetails"><span class="builder">'+$('#builder_name').val()+'</span></div><div class="builderControl"><a href="#" class="deleteFromBuilderList">X</a></div>';
			//template_item.html(property_yacht_builder_list_element);
			$('#builderList').append(template_item);					

			IDBSYachtSearch.Builder.deleteFromBuilderListhandler();
		}
		
		$('#builder_name').val('');
		$('#builder_id').val('');
	}
}

/**
 * @todo This code needs to work within context of the Builder js supplied context.
 *
 * Author: peterl
 */
IDBSYachtSearch.Builder.deleteFromBuilderListhandler = function(context){
	$('.deleteFromBuilderList', context).click(function(e){
		var builder_id_list = $('#property_yacht_builder_id', context).val().split(',');												   
		e.preventDefault(); 
		e.stopPropagation(); 	
		var builder_id_to_remove = $(this).parents('li').attr('id').split('_')[2];
		for(var i=0; i<builder_id_list.length;i++){
			if(builder_id_list[i]==builder_id_to_remove){
				 builder_id_list.splice(i, 1);
			}
		}
		$('#property_yacht_builder_id').val(builder_id_list.join(','))
		$(this).parents('li').remove();
		$(".searchFieldOption:first", context).change();
	});	
}

