function bumpUnserialize(str) {
	if (str.length>0) {
		 var chunks = str.split("&");
	     var ret = {};
	     for (i = 0; i < chunks.length; i++) {
	    	 var tmp = chunks[i].split("=");	 
	    	 ret[tmp[0]] = tmp[1]; 
	     }
	     return ret;
	} else {
		return false;
	}
}
function bumpCountObjectProperties(obj) {
	var count = 0;
	for (var k in obj) {
	    if (obj.hasOwnProperty(k)) {
	       ++count;
	    }
	}
	return count;
}
function bumpSwapVisibility(id1, id2) {
	$("#"+id1).show();
	$("#"+id2).hide();
	//document.getElementById(id1).style.display='';
	//document.getElementById(id2).style.display='none';
}

function bumpGetSqlDate(substractSeconds) {
	
	if (substractSeconds) {
		substractSeconds = substractSeconds*1000;
    	var curDate = new Date();
		var searchDate = new Date( Date.parse(curDate.toString())  -  substractSeconds);
    } else {
		var searchDate = new Date();
    }
    return searchDate.getFullYear()+'-'+(searchDate.getMonth()+1)+'-'+searchDate.getDate()+' '+searchDate.getHours()+':'+searchDate.getMinutes()+':'+searchDate.getSeconds();
}


function bumpSearchField(field, rawSelector) {
	if (rawSelector) {
		var val = $(field.src).val();
	} else {
		var val = $('#'+field.src).val();
	}
	return bumpSearchFieldWrap(field.dql,val,field.type,field.cp);
}

function bumpSearchFieldWrap(fieldDqlId,fieldValue,fieldType,fieldComparison) {
	if ((typeof fieldValue != "undefined") && (fieldValue!="")){
		return {
	        field: fieldDqlId,	
		    data: {
	   			type:	fieldType,
    			comparison: fieldComparison,
	   			value:	fieldValue
				} 
		}
	} else {
		return false;
	}
}

function bumpGridDigits(gridId, data, postfix, gridRange) {
	if (!postfix) {
		postfix = '';
	}
    var grid = $("#"+gridId);
    if (!gridRange) {
    	gridRange = 4;
    }
	if (data.total==0) {
		$("#"+gridId+'_pager'+postfix).hide();
	} else {
	    var gridPages = Math.ceil((data.records / grid.getGridParam("rowNum")));
	    var gridPage = parseInt(grid.getGridParam("page"));
	    if (gridPage>1) {
	        $("#"+gridId+'_prev'+postfix).show();
	        $("#"+gridId+'_prevN'+postfix).show();
	        if (document.getElementById(gridId+'_prevN'+postfix)) {
	        	document.getElementById(gridId+'_prevN'+postfix).style.visibility='visible';
	        }
	        if ($("#"+gridId+'_first'+postfix)) {
		        //if ($("#"+gridId+'_first'+postfix).html()=='') 
		        {
		        	$("#"+gridId+'_first'+postfix).html('1');
		        }
	        	$("#"+gridId+'_first'+postfix).show();
	        }
	    } else {
	        $("#"+gridId+'_prev'+postfix).hide();
	        //$("#"+gridId+'_prevN'+postfix).hide();
	        if (document.getElementById(gridId+'_prevN'+postfix)) {
	        	document.getElementById(gridId+'_prevN'+postfix).style.visibility='hidden';
	        }
	        $("#"+gridId+'_prevN'+postfix).show();
	        if ($("#"+gridId+'_first'+postfix)) {
		        $("#"+gridId+'_first'+postfix).hide();
	        }
	    }
	    if (gridPage<gridPages) {
	        $("#"+gridId+'_next'+postfix).show();
	        $("#"+gridId+'_nextN'+postfix).show();
	        if ($("#"+gridId+'_last'+postfix)) {
		        //if ($("#"+gridId+'_last'+postfix).html()=='') 
		        {
		        	$("#"+gridId+'_last'+postfix).html(gridPages);
		        }
	        	$("#"+gridId+'_last'+postfix).show();
	        }
	    } else {
	        $("#"+gridId+'_next'+postfix).hide();
	        $("#"+gridId+'_nextN'+postfix).hide();
	        if ($("#"+gridId+'_last'+postfix)) {
		        $("#"+gridId+'_last'+postfix).hide();
	        }
	    }
	    $('#'+gridId+'_digits'+postfix).html('');
	    var pageNumStr;
	    var loopFrom;
	    var loopTo;
	    loopFrom = gridPage - gridRange;
	    loopTo = gridPage + gridRange + 1;
	    /////bugzid:26758////
	    if (gridPage <= gridRange) {
	    	loopTo = loopTo + (gridRange - gridPage) + 1;
	    }
	    if (gridPages - gridPage <= gridRange) {
	    	loopFrom = loopFrom - (gridRange - (gridPages - gridPage));
	    }
	    /////////////////////
	    for (x = loopFrom; x < loopTo; x++) {
	       if ((x > 0) && (x <= gridPages)) {
	          if (x == gridPage) {
		    	 pageNumStr= x;
		    	 if (x<10) pageNumStr = pageNumStr + '&nbsp;';
	             $('#'+gridId+'_current'+postfix).clone().attr('id',gridId+'_'+x+'_current'+postfix).html(pageNumStr).appendTo('#'+gridId+'_digits'+postfix);
	          } else {
		    	 pageNumStr= '<span>'+x+'</span>';
		    	 //if (x<10) pageNumStr = pageNumStr + '<b>&nbsp;</b>';
	             $('#'+gridId+'_active'+postfix).clone().attr('id',gridId+'_'+x+'_active'+postfix).html(pageNumStr).appendTo('#'+gridId+'_digits'+postfix);
	             if (x<10) {
	            	 $('#'+gridId+'_digits'+postfix).append('<b>&nbsp;</b>');
	             }
	          }
	          if (x < (gridPage + gridRange)) {
	             $('#'+gridId+'_digits_separator'+postfix).clone().attr('id',gridId+'_digits_separator'+postfix+x).appendTo('#'+gridId+'_digits'+postfix);
	          }
	       }  
	    }
	    var viewing = ((gridPage-1)*grid.getGridParam("rowNum")+1);
	    $('#'+gridId+'_current_results_from'+postfix).html(viewing);
	    $('#'+gridId+'_current_results_to'+postfix).html(((gridPage-1)*grid.getGridParam("rowNum")+data.rows.length));
	    if (viewing==1) { 
	    	viewing = '<span style="visibility:hidden">1</span>' + viewing ; //span is for compensating width of 1-11 vs. 11-20 block
	    }
	    $('#'+gridId+'_current_results'+postfix).html(viewing + " - "+((gridPage-1)*grid.getGridParam("rowNum")+data.rows.length));
	    if (gridPages>0) {
		    $('#'+gridId+'_current_results_separator'+postfix).show();
	    } else {
		    $('#'+gridId+'_current_results_separator'+postfix).hide();
	    }
		$("#"+gridId+'_pager'+postfix).show();
	}
    return false;
}	    	

function bumpGridReload(gridId, page) {
    var grid = $("#"+gridId);
    var gridPages = parseInt((grid.getGridParam("records") / grid.getGridParam("rowNum"))+1);
    var gridPage = parseInt(grid.getGridParam("page"));
    var gridReload = false;
    if (page=='next') {
        gridPage++;
    	if (gridPage<=gridPages) {
    		grid.jqGrid('setGridParam', { page: gridPage });
    		gridReload = true;
    	}
    } else if (page=='first') {
        gridPage = 1;
		grid.jqGrid('setGridParam', { page: gridPage });
		gridReload = true;
    } else if (page=='last') {
        gridPage = gridPages;
		grid.jqGrid('setGridParam', { page: gridPage });
		gridReload = true;
    } else if (page=='prev') {
        gridPage--;
    	if (gridPage>=1) {
    		grid.jqGrid('setGridParam', { page: gridPage });
    		gridReload = true;
    	}
    } else {
        gridPage = page;
    	if ((gridPage>=1) || (gridPage<=gridPages)) {
    		grid.jqGrid('setGridParam', { page: gridPage });
    		gridReload = true;
    	}
        
    }
    if (gridReload) {
    	if ($('#'+gridId+'_page')) {
    		$('#'+gridId+'_page').val(grid.jqGrid('getGridParam', 'page'));
    	}
    	tmp = grid.jqGrid('getGridParam','postData');
    	tmp.nocallback=1;//no counters recount during pagination
    	grid.jqGrid('setGridParam',{'postData':tmp});
    	grid.trigger("reloadGrid");
    }
    return false;
}	    	

function bumpGridCommonFormatter(cellvalue, options, rowObject) {
	bumpGrid = bumpGrid + cellvalue;  
}

var currentHash = window.location.hash;
var originalHash = window.location.hash;

function bumpGridCheckHashCommonBefore() {
	if (!bumpGridLoading && (currentHash != window.location.hash)) {
		currentHash = window.location.hash;
    	if (currentHash==originalHash) {
        	location.reload();
    		return false;
    	}
    	return true;
	}
	return false;
}  

function bumpGridCreateHash(gridId) {
	var hash = $('#'+gridId).serialize();
  	window.location.hash = hash;
	currentHash = window.location.hash;
		//$("#permalink").html('http://viewr.vlad-dev/properties_search#'+hash);
}

function bumpGridDecodeHash() {
	if (window.location.hash.length>0) {
		dataFromHash = bumpUnserialize(window.location.hash.substring(1));
		if (dataFromHash) {
			for (var j in dataFromHash) {
				var value = decodeURIComponent(dataFromHash[j]);
				if (document.getElementById(j)) {
					if (document.getElementById(j).type=="checkbox") {
						if (value) {
							$('#'+j).attr('checked', 'checked');
						} else {
							$('#'+j).attr('checked', '');
						}
					} else {
						$('#'+j).val(value);
					}
				} else {
					if ($('input[type=radio][name='+j+']')) {
						$('input[type=radio][name='+j+'][value='+value+']').attr('checked', 'checked');
					} 
				}
					
			}
		}
	}
}

var isDialogOpened = false;
function bumpOpenDialog(id, url, width, height) {
	if (!width) {
		width=782;
	}
	//$('#'+id).dialog('close');
	$('#'+id).load(
			url,
			{},
			function (responseText, textStatus, XMLHttpRequest) {
				if (responseText.indexOf('bumpRedirectToLogin')!=-1) {
				} else {
					if (height>0) {
						$('#'+id).dialog({ width: width, height: height, modal: false });
					} else {
						$('#'+id).dialog({ width: width, modal: false , 
							open: function(event, ui) {
								isDialogOpened = true;
								$('#overlay').show();
							},
							close: function(event, ui) {
								bumpOpenDialogClose(event, ui);
								isDialogOpened = false;
							}
						});
					}
				}
    	    }
		);	
	return false;
}

function bumpDialogAdjust(selector) {
		$(selector).dialog('option', 'position', $(selector).dialog('option',	'position'));
}
	
function bumpDialog(selector, params) {
	
	var tmpPosition;
	
	//params
	var width;
	var relativeToSelector;
	var callback;
	var closeCallback;
	var minHeight;
	var position;
	var show;
	var hide;
	var modal;
	////////

	show = 'fade';
	hide = '';
	modal = true;
	
	if (params) {
		if (params.width) {
			width = params.width;	
		}
		if (params.relativeToSelector) {
			relativeToSelector = params.relativeToSelector;	
		}
		if (params.closeCallback) {
			closeCallback = params.closeCallback;	
		}
		if (params.callback) {
			callback = params.callback;	
		}
		if (params.minHeight) {
			minHeight = params.minHeight;	
		}
		if (params.position) {
			position = params.position;	
		}
		if (params.show) {
			show = params.show;	
		} 
		if (params.hide) {
			hide = params.hide;	
		}
		if (typeof params.modal != 'undefined') {
			modal = params.modal;	
		}
	}
	if (relativeToSelector) {
		tmpPosition = { 
			     my: 'top',
			     at: 'top',
			     of: $(relativeToSelector)
		};
	} else {
		tmpPosition = 'center';
	}
	if (position) {
		tmpPosition = position;
	}
	$(selector).dialog({ 
		modal: modal, 
		show: show,
		hide: hide,
		width: width,
		minHeight: minHeight,
		resizable: false,
		position: tmpPosition,
		open: function(event, ui) {
			isDialogOpened = true;
			$('.ui-widget-overlay').click(function() { $(selector).dialog("close"); });
			if ((callback) && (callback.length>0)) { eval(callback); }
		},
		close: function(event, ui) {
			if ((closeCallback) && (closeCallback.length>0)) { eval(closeCallback); }
			//bumpOpenDialogClose(event, ui);
			isDialogOpened = false;
			$(selector).dialog( "destroy" );
		}
	});	
	//$(selector).dialog('open');
}

function bumpAjaxDialog(url,selector, params) {
	$(selector).load(
			url,
			{},
			function (responseText, textStatus, XMLHttpRequest) {
				if (responseText.indexOf('bumpRedirectToLogin')!=-1) {
				} else {
					bumpDialog(selector, params);
				}
    	    }
		);	
	return false;
}

function bumpMultipleCheckboxes(checkboxesName, storageName) {
	var tmp = [];
	$("input:checkbox[name="+checkboxesName+"]:checked").each(function() {
		tmp.push(this.value);
	}); 
	$("input[name="+storageName+"]").val(tmp.join(","));
}

function bumpFade(selector, maxopacity) {
	$(selector).mouseover(function() {
		if (!maxopacity) {
			maxopacity = 1;
		}
		$(selector).fadeTo('fast', maxopacity);
	});
	$(selector).mouseout(function() {
		$(selector).fadeTo('fast', 0);
	});
	
}

function bumpFavoritesAdd(type,itemid,addSelector,deleteSelector) {
	$.post( 
   			"/member_favorites?action=addItem&type="+type+"&itemid="+itemid+"&json=1&wrap=1", 
   			function(data){
	   			if (data && data.result) {
	   				$(addSelector).hide();
	   				$(deleteSelector).show();
	   				if ($('#favorite_'+type+'_qty')) {
	   					$('#favorite_'+type+'_qty').html(parseInt($('#favorite_'+type+'_qty').html())+1);
	   				}
	   				if ($('#favorite_'+type+'_qty2')) {
	   					$('#favorite_'+type+'_qty2').html(parseInt($('#favorite_'+type+'_qty2').html())+1);
	   				}
	   			} else {
	   				bumpAjaxResponseRedirect(data);
	   			}
	   			return false;
  			} 
	);
	return false;
}
function bumpFavoritesDelete(type,itemid,addSelector,deleteSelector,callback) {
	$.post( 
   			"/member_favorites?action=delete&type="+type+"&itemid="+itemid+"&json=1&wrap=1", 
   			function(data){
	   			if (data && data.success) {
	   				$(addSelector).show();
	   				$(deleteSelector).hide();
	   				if ($('#favorite_'+type+'_qty')) {
	   					$('#favorite_'+type+'_qty').html(parseInt($('#favorite_'+type+'_qty').html())-1);
	   				}
	   				if ($('#favorite_'+type+'_qty2')) {
	   					$('#favorite_'+type+'_qty2').html(parseInt($('#favorite_'+type+'_qty2').html())-1);
	   				}
	   				if ((callback) && (callback.length>0)) { eval(callback); }
	   			} else {
	   				bumpAjaxResponseRedirect(data);
	   			}
	   			return false;
  			} 
	);
	return false;
}

function bumpAjaxResponseRedirect(data) {
	if (data && (data.length>0) && (data.indexOf('bumpRedirectToLogin')!=-1)) {
			eval(data);
	}
}

var bumpElements = new Object;

function bumpRestoreElementsFromCopy(selectHtml, dontSkipEmpty) {
	selected = selectHtml.val(); 
	if (bumpElements[selectHtml.attr('id')]) {
		for (var i in bumpElements[selectHtml.attr('id')]) {
			value = i;
			if (value == 0) {
				value='';
				index = 0;
		 	} else {
		 		index=value;
		 	}
			title = bumpElements[selectHtml.attr('id')][i];
			
			$('#'+selectHtml.attr('id')).append(
			        $('<option></option>').val(value).html(title)
		    );
		}
	}
}
function bumpElementsCopy(selectHtml) {
	if (!bumpElements[selectHtml.attr('id')]) {
		bumpElements[selectHtml.attr('id')] = new Object;
	 	$('option', selectHtml).each(function() {
	 		value = this.value; 
			if (value == '') {
				value=0;
		 	}
			bumpElements[selectHtml.attr('id')][value] = this.innerHTML;
	 	})
	}
}

function bumpUncheckAllCheckboxes(selector) {
	$(selector).each(function(index,item) {
		if (item.checked) {
			item.checked = false;
		}
	})
	return false;
}

function bumpRedirectToLogin(url) {
	var returnStr="";
	if (location.pathname.length>0) {
		returnStr = returnStr + location.pathname;
	} 
	if (location.search.length>0) {
		returnStr = returnStr + location.search;
	} 
	if (location.hash.length>0) {
		returnStr = returnStr + location.hash;
	} 
	location.href = url+"?return="+escape(returnStr);
}

////////////////grid/////////////

function bumpItemsCheckHash() {
	if (bumpGridCheckHashCommonBefore()) {
		bumpGridDecodeHash();
		bumpItemsSearch();
	}
}  


function bumpItemsSearch(isFormChange) {
    
	var searchFilter = {
            filter: [],
            nocallback:''
	}
	var fields = bumpGridFields;

	for (var i = 0; i < fields.length; i++) {
    	if (bumpSearchField(fields[i],true)) {
			searchFilter.filter.push(bumpSearchField(fields[i],true));
    	}
	}

	$("#items_search_list").removePostDataItem('filter');
  	$("#items_search_list").jqGrid('setGridParam', { postData: searchFilter });
  	$("#items_search_list").jqGrid('setGridParam', { rowNum: $("#rpp").val() });

  	if (!bumpGridFirstLoad) {
  		if (isFormChange) {
			$("#items_search_list").jqGrid('setGridParam', { page: 1 });
			$("#items_search_list_page").val(1);
      	} else {
      		$("#items_search_list").jqGrid('setGridParam', { page: $("#items_search_list_page").val() });
      	}  		
    	$("#items_search_list").trigger("reloadGrid");
  	}
    
}

////////////////grid/////////////end

var carouselItems= {};

var bumpCarouselSmoothScroll = null;
function bumpCarousel(holderSelector, params) {

	//params
	var interval;
	var intervalTime;
	var startIndex;
	var popupSelector;
	var popupSelectorWidthAddon;
	var fadeInterval;
	var callback;
	////////
	fadeInterval = 200;
	
	if (params) {
		if (params.interval) {
			interval = params.interval;	
		}
		if (params.intervalTime) {
			intervalTime = params.intervalTime;	
		}
		if (params.startIndex) {
			startIndex = params.startIndex;	
		}
		if (params.popupSelector) {
			popupSelector = params.popupSelector;	
		}
		if (params.popupSelectorWidthAddon) {
			popupSelectorWidthAddon = params.popupSelectorWidthAddon;	
		}
		if (params.fadeInterval) {
			fadeInterval = params.fadeInterval;	
		}
		if (params.callback) {
			callback = params.callback;	
		}
		
	}
	carouselItems[holderSelector]= {};
	var imageSelector = holderSelector + '_img'; 
	var backgroundSelector = holderSelector + '_background'; 
	var titleSelector = holderSelector + '_title'; 
	var sourceSelector = holderSelector + '_source'; 
	var currentSelector = holderSelector + '_current';
	var currentSelectorBlock = holderSelector + '_currentblock';
	$(holderSelector).tinycarousel({ 
		display: 1,
		start: startIndex,
		animation: false,
		interval: interval, 
		intervaltime: intervalTime,
		callback: function(element, index){
			if ((callback) && (callback.length>0)) { eval(callback); }

			if ($(currentSelector).length!=0) $(currentSelector).html((index+1));
			if ($(currentSelectorBlock).length!=0) $(currentSelectorBlock).hide();
			var nextElement;
			if (typeof element != 'undefined') {
				$(holderSelector+' .prev').hide();
				$(holderSelector+' .next').hide();
				$(holderSelector+' .next').hide();
				
				$(imageSelector).css('visibility','visible');
				$(backgroundSelector).css('background-image','url('+element.attributes.getNamedItem("content_src").value+')');
				
				$(imageSelector).fadeTo(fadeInterval, 0, function() {

					if ($.browser.webkit) {
						$(imageSelector).attr('src','/images/nxt.png'); //fix for chrome , because of http://bugs.jquery.com/ticket/5466
					}
    					if ($(backgroundSelector).length==1) {
						$(imageSelector).attr('src',element.attributes.getNamedItem("content_src").value);
						$(imageSelector).css('opacity',1);
					} else {
					    $(imageSelector).load(function() {
						$(imageSelector).css('opacity',1);
						//$(imageSelector).css('visibility','visible');
						//$(imageSelector).show();
						//$(imageSelector).fadeTo(fadeInterval, 1, function() {});
	
					    });
					    $(imageSelector).attr('src',element.attributes.getNamedItem("content_src").value);

					}
					$(holderSelector+' .prev').show();
					$(holderSelector+' .next').show();
	
					if (element.attributes.getNamedItem("title_src") && (element.attributes.getNamedItem("title_src").value.length>0)) {
						$(titleSelector).html(element.attributes.getNamedItem("title_src").value);
						$(titleSelector).show();
					} else {
						$(titleSelector).hide();
					}
					
					if (element.attributes.getNamedItem("width_src")) {
						$(imageSelector).attr('width',element.attributes.getNamedItem("width_src").value);
						//$(imageSelector).css('width',element.attributes.getNamedItem("width_src").value+'px');
						//$(backgroundSelector).css('width',element.attributes.getNamedItem("width_src").value+'px');
					}
					if (element.attributes.getNamedItem("height_src")) {
						$(imageSelector).attr('height',element.attributes.getNamedItem("height_src").value);
						//$(imageSelector).css('height',element.attributes.getNamedItem("height_src").value+'px');
						//$(backgroundSelector).css('height',element.attributes.getNamedItem("height_src").value+'px');
					}
					
					if (!carouselItems[holderSelector][0]) {
						carouselItems[holderSelector][0]=true;
					} else {
						/*$('#dialog_common').dialog('close');
						$('#dialog_common').dialog('open');*/
	
					}
					if (popupSelector) {
						$(popupSelector).dialog("option", "width", $(imageSelector).attr('width')+popupSelectorWidthAddon);
						$(popupSelector).dialog('option', 'position', $(popupSelector).dialog('option',	'position'));
					}
					
					if (!carouselItems[holderSelector][(index+1)]) {
						nextElement = $(sourceSelector+(index+1));
						if (nextElement.length==1) {
							if (typeof nextElement.attr("content_src") != 'undefined') {
								carouselItems[holderSelector][(index+1)]= new Image(738,422); 
								carouselItems[holderSelector][(index+1)].src=nextElement.attr("content_src");
							}
						}
					}
				
				});
			}
			if ($(currentSelectorBlock).length!=0) $(currentSelectorBlock).show();
			
		}
	});

}

function bumpCommentsShow(selector,type,parentId,callback) {
    if ($(selector).is(":visible")) {
    	$(selector).html('');
    	$(selector).hide();
    } else {
    	bumpCommentsReload(selector,type,parentId,callback);
    	$(selector).show();
    }
}

function bumpCommentsReload(selector,type,parentId, callback) {
   	$(selector).load('/comments?action=search&type='+type+'&parentid='+parentId+'&isajax=1', function() {
		if (callback) eval(callback);
	});
}

function bumpCommentAdd(selector,type,parentId) {
    if ($(selector).is(":visible")) {
    	$(selector).hide();
    } else {
    	$(selector).load('/comments?action=add&extitemtype='+type+'&extitemid='+parentId+'&isajax=1', function() {
    		$(selector).show();
  		});
    }
}

function bumpCommentsQtyText(selector,qty) {
	var text = '';
    if (qty>0) {
    	if (qty==1) {
    		text = '1 Comment';
    	} else {
    		text = qty + ' Comments';
    	}	
    } else {
    	text = 'Add a Comment';
    }
    $(selector).html(text);
}

var bumpTagsList = [];

function bumpTags(selector, url, paramName) {

	$( selector ).autocomplete({
		source: function( request, response ) {
			var searchStringSplitted = request.term.split(',');
			var searchString = $.trim(searchStringSplitted[searchStringSplitted.length-1]);
			 
			if (searchString.length>=2) {
				
				$.ajax({
					url: url+'&'+paramName+'='+escape(searchString),
					dataType: "json",
					data: {
					},
					success: function( data ) {
						response( $.map( data, function( item ) {
							return {
								id: item.id,
								label: item.title,
								value: item.title
							}
						}));
					}
				});
			
			} else {
				$(selector).removeClass('ui-autocomplete-loading');
			}
		},
		minLength: 2,
		select: function( event, ui ) {
			var searchStringSplitted = $(selector).val().split(',');
			if (searchStringSplitted.length==1) {
				$(selector).val(ui.item.label + ',');
			} else {
				searchStringSplitted.splice(searchStringSplitted.length-1,1);
				$(selector).val(searchStringSplitted.join(',') + ',' + ui.item.label+ ',');
			}	
			return false;
		}
	});


}

function bumpTagsRemove(selector, value) {
	if (bumpTagsList.length>0) { 
		var index = jQuery.inArray(value, bumpTagsList);
		if (index!=-1) {
			bumpTagsList.splice(index,1);
		}
		bumpTagsAdd(selector, '')
	}
}
function bumpTagsAdd(selector, values, delimiter,rowPattern) {
	if (!delimiter) {
		delimiter = '';
	}
	if (!rowPattern) {
		rowPattern = '<div style="display:inline-block;width:200px;"><a href="#" onclick="bumpTagsRemove(\'<!--selector-->\',\'<!--name-->\');return false;">X</a>&nbsp;<!--name-->&nbsp;</div><input type="hidden" value="<!--name-->" name="tags[]" />';
	}
	var row = ''; 
	var tags = ''; 
	if (values && values.length>2) {
		var searchStringSplitted = values.split(',');
		for (i=0;i<searchStringSplitted.length;i++) {
			searchStringSplitted[i] = $.trim(searchStringSplitted[i]);
			if ((searchStringSplitted[i].length>0) && (jQuery.inArray(searchStringSplitted[i], bumpTagsList)==-1)) {
				bumpTagsList.push(searchStringSplitted[i]);
			}
		}
	}
	if (bumpTagsList.length>0) {
		for (i=0;i<bumpTagsList.length;i++) {
			row = rowPattern.replace(/<!--name-->/g,bumpTagsList[i]);
			row = row.replace(/<!--selector-->/g,selector);
			if (i==(bumpTagsList.length-1)) {
				tags = tags + row;
			} else {
				tags = tags + row + delimiter;
			}
		}
	}
	
	$(selector).html(tags); 
	
}
