/*
 * jQuery TagCloud plugin 1.0
 *
 * Copyright (c) 2009 Dimitar Ivanov
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
(function($){
	
	$.fn.addtag = function(options){

		var defaults = {
			aclass: 'delbutton',
			divider: '-',
			prefix: '',
			sclass: 'tagz'
		};
		
		var options = $.extend(defaults, options);
		
		return this.each(function(){

			var text = $(this).val();
			var temp = new Array();
			temp = text.split(',');
			for (var i = 0; i < temp.length; i++) {
				var t = temp[i]
					.toLowerCase()
					.replace(/^\s+|\s+$/g, "")
					.replace(/[_|\s]+/g, "-")
					.replace(/[^a-z\u0400-\u04FF0-9-]+/g, "")
					.replace(/[-]+/g, "-")
					.replace(/^-+|-+$/g, "")
					.replace(/[-]+/g, options.divider)
				;
				if (t.length == 0) continue;
				
				var last_id = ($('a.' + options.aclass).length == 0) ? 'span' + options.prefix + '_0' : $('a.' + options.aclass + ':last').attr('id');
				var lid = new Array();
				lid = last_id.split('_');

				$(document.createElement('span'))
					.attr('class', options.sclass)
					.attr('id', 'span' + options.prefix + '_' + (parseInt(lid[1]) + 1))
					.append(document.createTextNode(temp[i]))
					.prependTo('#'+options.holder_id)
				;
				$(document.createElement('a'))
					.attr('class', options.aclass)
					.attr('id', 'tag' + options.prefix + '_' + (parseInt(lid[1]) + 1))
					.click(function(){
						$(this).removetag({id : 'span' + options.prefix + '_' + (parseInt(lid[1]) + 1), holder_id : options.holder_id});
					})
					.append(document.createTextNode('X'))
					.prependTo('span#span' + options.prefix + '_' + (parseInt(lid[1]) + 1))
				;
				$(document.createElement('input'))
					.attr('type', 'hidden')
					.attr('name', 'tags_' + options.prefix + '[]')
					.val(temp[i])
					.prependTo('span#span' + options.prefix + '_' + (parseInt(lid[1]) + 1))
				;
				$(document.createElement('input'))
					.attr('type', 'hidden')
					.attr('name', 'slugs_' + options.prefix + '[]')
					.val(t)
					.prependTo('span#span' + options.prefix + '_' + (parseInt(lid[1]) + 1))
				;
		
				$('span#span' + options.prefix + '_' + (parseInt(lid[1]) + 1)).appendTo('#'+options.holder_id);
			}
		});
		
	};
	
	$.fn.removetag = function(options){
		
		var defaults = {};
		
		var options = $.extend(defaults, options);
		
		return this.each(function(){
			if ($('#' + options.id).length > 0){
				$('#' + options.id).remove();
			}
		
		});
				
	};
	
	$.isenter = function(options){
		
		var defaults = {};
		
		var options = $.extend(defaults, options);

		var charCode = (options.event.which) ? options.event.which : options.event.keyCode;
    	if (charCode == 13){
        	return true;
    	}		
	};
	
})(jQuery);