/******************* LOAD ALL TAGS DIALOG *******************/

function loadAllTags( obj ) {
	
	var filename = '/'+labels.lang+'/browse-images.html';

	var send = {
		'ajax': "2",		
		'action': "more-tags"
    }
	
	var tag_key = obj.attr('data-key');
	var tag_value = obj.attr('data-value');
	switch (tag_key) {
		case 'tcid':
			send.tcid = tag_value; 
			break;
		case 'tscid':
			send.tscid = tag_value;
			break;
	}

    var encoded = $.toJSON(send);
    var params = $.evalJSON(encoded);
	
	$.post(filename, params, function(response) {

		// create content
		var decoded = $('<div></div>').html(response);
		var content = $('<div id="all-tags"></div>');		
		content.html(decoded);

		// create dialog
		var dialog = content.dialog({
            title: 'All tags',
            dialogClass: 'ngl_dialog_container',
            autoOpen: false,
            position: 'center',
            height: 'auto',
            width: 'auto',
            modal: true,
            draggable: false,
            resizable: false
		});
		
		// open dialog
		if( !$('#all-tags').dialog("isOpen") ){
			dialog.dialog('open');			
		}
		
		// destroy dialog on close	
		$("#all-tags").bind("dialogclose", function(){
        	$("#all-tags").dialog('destroy');
            $("#all-tags").remove();
        });
   });
	
}



function refreshTheTagTree( classname, file ){
	
	var filename = '/'+labels.lang+'/'+file+'.html';
	var paramsStr = '{ajax:2}'; 
	var params = $.evalJSON(paramsStr);
	
	var obj = $('.'+classname);
	
	$.post(filename,params, function(response){
		var decoded = $("<div></div>").html(response).text();
		var mest = parseHtml( $.trim(decoded) );
		//debuglog(response);
		$(obj).fadeOut(200,function(){
			$(this).before('<div class="buttonsTree" id="ajax-loader" style="display:none;"><img src="/images/ajax-loader.gif" /></div>');
			$("#ajax-loader").fadeIn(100);
			var newId = classname+'Old';
			$(this).attr('class', newId);
			$(this).before(mest);						
			$( '.'+classname ).hide();
			//debuglog('.'+classname);
				$("#ajax-loader").fadeOut(100, function(){
					$(this).remove();
					$( '.'+classname ).fadeIn(200);
				});
			
			$("."+newId).remove();
		}); 
		
	});
	var paramsForm = params;
	paramsForm.action = 'filter-radios';
	
	$.post( '/'+labels.lang+'/tags.html',paramsForm, 
		function(response){
			var decoded = $("<div></div>").html(response).text();
			var mest = parseHtml( $.trim(decoded) );
			$("#typeChoice").fadeOut(100, function(){
				$(this).empty();
				$(this).append(mest);
				//$(".buttonset").buttonset()
				$(this).fadeIn(100);
			});
		}
	);
	
	$("#editItem").fadeOut(400, function(){
		$(this).empty();
	});

        $("ul#tag_list").empty();
        $("ul#tag_list").attr('style','');
	
	
}

function deleteItemFromTree(obj){
	var filename = '/'+labels.lang+'/tags.html';
	
	var send = {};
	send.ajax = 2;
	send.model = $( "input[name='model']", $("#TagEdit")).val();
	send.item_id = $( "input[name='item_id']", $("#TagEdit")).val();
	send.action = 'delete-item';
	var encoded = $.toJSON(send);
	var params = $.evalJSON(encoded);
	$.post(filename,
                params,
                function(returned_data){
					var res = $.evalJSON(returned_data);
					//debuglog(res.err.length);
					if( typeof res.err != 'undefined' && res.err.length!==0){
						show_stack_bottomleft(true, res.err);
					}
					else{
						if( typeof res.msg != 'undefined' && res.msg.length!==0){
							show_stack_bottomleft(false, res.msg);							
							refreshTheTagTree( "selectableAdd", 'tags-tree' ); 
						}
					}		
				}
	);
}


// on load
$(window).load(function(){
	
	
	/******************* LOAD ALL TAGS *******************/
	
	$(".tags-tree-all-tags").live('click', function(e){
		e.preventDefault();
		loadAllTags( $(this) );	
	});
	
	
	/*console.time('class');
	$(".tag_item")
	console.timeEnd('class'); 
	console.time('id');
	$("[id^='tag_item_']")
	console.timeEnd('id'); 
	*/
	//TREE TAG FILTER
	$('#tagstree-treeview').hide(0).treeview({
		collapsed: false,
		prerendered: true
        // animated: "fast",
		// persist: "location",
		// persist: "cookie",
		// cookieId: "treeview-filter"
    }).show(0);
	
//	$('ul#tagstree-treeview > li > ul > li span').hover(
//       function(){$(this).css('background','#f2f2f2');},
//       function(){$(this).css('background','#ffffff');}
//    );
	
	$("#tagstree-treeview li.subcat_item > span > a").live('click',function(e){
		e.preventDefault();
		$(this).parent().parent().trigger('click');
	});
	$("#tagstree-treeview li.cat_item > span > a").live('click',function(e){
		e.preventDefault();
		$(this).parent().parent().trigger('click');
	});

	
	
    $('.selectableAdd').livequery(function(){
        $(this)
		.treeview({
            //animated: "fast",
            collapsed: false,
            persist: "cookie",
            cookieId: "treeview-selectableAdd-tag",
            toggle: function() {
            	window.console && debuglog("%o was toggled", this);
            }
        });

        $('li span', $(this)).hover(
                function(){ $(this).addClass('ui-state-hover'); },
                function(){ $(this).removeClass('ui-state-hover'); }
        );
    });
	
    $('.imageTaging').livequery(function(){
        $(this).treeview({
            //animated: "fast",
			unique: true,
            collapsed: false,
            persist: "cookie",
                    cookieId: "treeview-imageTaging",
                    toggle: function() {
                            window.console && debuglog("%o was toggled", this);
                    }

        });

        $('li span', $(this)).hover(
                function(){ $(this).addClass('ui-state-hover'); },
                function(){ $(this).removeClass('ui-state-hover'); }
        );
    });
	
	$("#refresh_tree_add").live('click',function(){
		refreshTheTagTree( "selectableAdd", 'tags-tree' );
	});
	$("#refresh_tree_image").live('click',function(){
		refreshTheTagTree( "imageTaging", 'tags-tree-image' );
	});
	
	$("#add_tag_to_form").live('click',function(){
		$("#item_name", $("#TagAdd")).val( $.trim($("#search_for_tags").val()) );
	});
	
	$("#search_for_tags").livequery(function(){
		$("ul[role='listbox']").remove();
		var $input = $(this);
		$input.autocomplete({
				minLength:1,
                source: function(request, response) {
					request.ajax = 2;
					request.action = 'autocomplete';
					request.model = 'sub';				
					request.type = 'filtering';				
					request.image_id = $('#edit_image_id').val();				
					$("ul#availableTagsList").empty();
                    $("ul#availableTagsList").attr('style','');

                    $.ajax({
                      url: '/'+labels.lang+'/tags.html',
                      data: request,
                      dataType: "json",
                      type: "POST",
                      success: function(data){
                          //debuglog(data);
						  $.each(data,function(i, obj){
						  	//debuglog(obj.tagname);
						  	
							obj.tagname = obj.tagname.replace(
									new RegExp(
										"(?!<[^<>]*)(" +
										$.ui.autocomplete.escapeRegex(request.term) +
										")(?![^<>]*>)", "gi"
									), "<strong class=\"difference\">$1</strong>" );
						  });
						  
						  
						  
						  response(data);
                      }
                    });
	              },
	              select: function(event, ui) {
	                  return false;
	              }
	      })
          .data( "autocomplete" )._renderItem = function( ul, item ) {
                        $("#availableTagsList").show();
						$( '<li class="ui-menu-item"></li>' ).data( "item.autocomplete", item );
						
						var assignedTags = $("a[id^='tag-']", $("#assignedTags")).get();
						$.each(assignedTags,function(k,v){
							assignedTags[k] = $(v).attr('id');
						});
						//debuglog(assignedTags);
						
						if( $.inArray( "tag-"+item.tagid,assignedTags) == -1 ){	
							
							
							
	                        return $( '<li class="ui-menu-item"></li>' )
	                                .data( "item.autocomplete", item )
	                                .append('<div class="ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" style="display: list-item;">'
												+'<span class="ui-icon ui-icon-circle-arrow-n"></span>'
												+'<a id="tag-'+item.tagid+'" class="assign-tag" href="#">'+ ( item.tagname.length!== 0 ? item.tagname : '' ) +'<br />(' + ( item.tagcatname.length!== 0 ? 'in <strong>' + item.tagcatname + '</strong>;': '')+' '+( item.tagsubcatname.length!== 0 ? 'in <strong>' + item.tagsubcatname + '</strong>': '')+')</a>'
											+'</div>')
	                                .appendTo( $("#availableTagsList") );
						}
                };
                $("ul[role='listbox']").remove();
            });
	
		
		
		$( "#item_name" ).livequery(function(){
			$("ul[role='listbox']").remove();
			var $input = $(this);
			$input.autocomplete({
				minLength:1,
                source: function(request, response) {
					request.ajax = 2;
					request.action = 'autocomplete';
					request.model = 'sub';				
					request.type = 'filtering';				
					request.image_id = '0';				
					$("ul#availableEditableTagsList").empty();
                    $("ul#availableEditableTagsList").attr('style','');
					$("ul#tag_list").empty();
                    $("ul#tag_list").attr('style','');

                    $.ajax({
                      url: '/'+labels.lang+'/tags.html',
                      data: request,
                      dataType: "json",
                      type: "POST",
                      success: function(data){
                          //debuglog(data);
						  $.each(data,function(i, obj){
						  	//debuglog(obj.tagname);
						  	
							obj.tagname = obj.tagname.replace(
									new RegExp(
										"(?!<[^<>]*)(" +
										$.ui.autocomplete.escapeRegex(request.term) +
										")(?![^<>]*>)", "gi"
									), "<strong class=\"difference\">$1</strong>" );
						  });
						  
						  
						  
						  response(data);
                      }
                    });
	              },
	              select: function(event, ui) {
	                  return false;
	              }
	      })
          .data( "autocomplete" )._renderItem = function( ul, item ) {
                       	if($("#tag_list").length!=0){
	                        $("#tag_list").show();
							var $list = $("#tag_list");
							$( '<li class="ui-menu-item"></li>' ).data( "item.autocomplete", item );
						
	                        return $( '<li class="ui-menu-item"></li>' )
	                                .data( "item.autocomplete", item )
	                                .append('<div class="ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" style="display: list-item;">'
												+'<span class="ui-icon ui-icon-circle-arrow-n"></span>'
												+'<a id="tag-'+item.tagid+'" class="assign-tag" href="#">'+ ( item.tagname.length!== 0 ? item.tagname : '' ) +'<br />(' + ( item.tagcatname.length!== 0 ? 'in <strong>' + item.tagcatname + '</strong>;': '')+' '+( item.tagsubcatname.length!== 0 ? 'in <strong>' + item.tagsubcatname + '</strong>': '')+')</a>'
											+'</div>')
	                                .appendTo( $list );
						}
					   	else{
							var $list = $("#availableEditableTagsList");
						    $("#availableEditableTagsList").show();
							$( '<li class="ui-menu-item"></li>' ).data( "item.autocomplete", item );
						
	                        return $( '<li class="ui-menu-item"></li>' )
	                                .data( "item.autocomplete", item )
	                                .append('<div class="ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" style="display: list-item;">'
												+'<span class="ui-icon ui-icon-circle-arrow-n"></span>'
												+'<a id="tag-'+item.tagid+'" class="editable" href="/'+labels.lang+'/tags.html?id='+item.tagid+'&action=filter-radios&model=tag&type=0">'+ ( item.tagname.length!== 0 ? item.tagname : '' ) +'<br />(' + ( item.tagcatname.length!== 0 ? 'in <strong>' + item.tagcatname + '</strong>;': '')+' '+( item.tagsubcatname.length!== 0 ? 'in <strong>' + item.tagsubcatname + '</strong>': '')+')</a>'
											+'</div>')
	                                .appendTo( $list );
						}
						
						
                };
				
				$input.bind( "focusout", function(event, ui) {
				  	$("ul#tag_list").empty();
                    $("ul#tag_list").attr('style','');
				})
				.bind( "focusin", function(event, ui) {
					console.log('test');
				  	$input.autocomplete('search', $.trim($input.val()));
					//$input.autocomplete('change');
				});
				
                $("ul[role='listbox']").remove();
            });
	
		
	// console.log($("#TagAdd").length);
	
	if($("#TagAdd").length!==0){
		
	$("#TagAdd").validate({
		rules:{
			item_type:{
				required:true
			},
			item_name:{
				required:true
			}
		},
		messages:{
			item_type:{
				required:"Please choose an item type"
			},
			item_name:{
				required:"Please enter an item name"
			}
		},
		submitHandler: function(form){
			$(form).ajaxSubmit(ajaxoptions);
		},
		
		onsubmit: true,
		success: "",
		errorClass: "invalid",
		errorElement: "em",
		errorPlacement: function(error, element){
			var label = $("label[for*='" + element.attr('name') + "']").get(0);
			
			$(label).append(error);
		},
//		debug: false
		
	});
	
	}
	$('a.unassign-tag').live('click',function(){
		var $self = $(this);
		$self.parent().addClass('ui-state-toggle');
		var url = '/'+labels.lang+'/tags.html';
		var patt = /\d+/;
		var id = patt.exec( $self.attr('id') );
		id = id[0];
		
		var send = {};
		send.ajax = 2;
		send.action = 'unassign-tag';
		send.tag_id = id;
		send.image_id = $( "input[name='image_id']", $("#addedTags")).val();
		
		var encoded = $.toJSON(send);
    	var params = $.evalJSON(encoded);
		
		$.post( url, params, function(json){
			json = $.evalJSON(json);
			if( typeof json.err!='undefined' && json.err.length!==0){
				show_stack_bottomleft(true, json.err);	
				$self.parent().removeClass('ui-state-toggle');
				$self.parent().removeClass('ui-state-focus');
	        }
			else{
				if( typeof json.msg!='undefined' ){
					show_stack_bottomleft(false, json.msg);
					$self.parent().fadeOut(200).remove();
				}
			}					
		});
		
		return false;
	});
	
	$('a.assign-tag').live('mousedown',function(){
		var $self = $(this);
		
		$self.parent().addClass('ui-state-toggle');
	});
	$('a.assign-tag').live('mouseup, mouseout',function(){
		var $self = $(this);
		
		$self.parent().removeClass('ui-state-toggle');
	});
	
	$('a.assign-tag').live('click',function(){
		var $self = $(this);
		
		//$self.parent().addClass('ui-state-toggle');
		var url = '/'+labels.lang+'/tags.html';
		var patt = /\d+/;
		var id = patt.exec( $self.attr('id') );
		id = id[0];
		
		var send = {};
		send.ajax = 2;
		send.action = 'assign-tag';
		send.tag_id = id;
		send.image_id = $( "input[name='image_id']", $("#addedTags")).val();
		
		var encoded = $.toJSON(send);
    	var params = $.evalJSON(encoded);
		
		$.post( url, params, function(json){
			json = $.evalJSON(json);
			if( typeof json.err != 'undefined' && json.err.length!==0){
				show_stack_bottomleft(true, json.err);	
				$self.parent().removeClass('ui-state-toggle');
	        }
			else{
				if( typeof json.msg != 'undefined' ){
					show_stack_bottomleft(false, json.msg);
					
					$self.parent().fadeOut(300,function(){
						var temp = $self.html();
						$self.html(function(){
							var myregexp = /(?:<strong class="difference">)(\w)(?:<\/strong>)/g;
							var result = temp.replace(myregexp, "$1");
							return result;
						});						
						$self.parent().find('span.ui-icon').removeClass('ui-icon-circle-arrow-n').addClass('ui-icon-circle-close');
						$self.parent().removeClass('ui-state-toggle');
						$self.parent().removeClass('ui-state-focus');
						$self.parent().appendTo( $("#assignedTags") );
						$self.attr('class','unassign-tag');
						$("#tag-"+id).parent().fadeIn(300);
					});
				}
			}					
		});
		
		return false;
	});
	
	$("button[id^='item-del-']").live('click',function(){
		var $actual_button = $(this);
		var functionToCall = deleteItemFromTree;
    	deleteConfirmation(functionToCall, $actual_button);
		return false;
	});
	
	$("ul.imageTaging li a").live('click',function(e){
				var $self = $(this);
				e.preventDefault();
				var filename = String($(this).attr('href').split("?",1));
				var myparams = getparams($(this).attr('href'));
				
				var paramsStr = '';
			    $(myparams).each(function(i){
			        paramsStr += myparams[i]+',';
			    });
			    paramsStr += 'ajax:2';
			    var params = $.evalJSON('{'+paramsStr+'}');
				params.selected_name = $(this).attr('title');
				params.image_id = $("input[name='image_id']", $("#addedTags")).val();
				
				var oldVal = $("#TagAdd").find("input#item_name").val();
				
				//if we can add content in the clicked item
				if( $($self).hasClass('addable') ){	
					$.post(filename, params, function(response){
						var decoded = $("<div></div>").html(response).text();
						
						$("#typeChoice").fadeOut(300, function(){
							$(this).empty();
							$(this).append(decoded);
							
							$(this).find("input#item_name").val(oldVal);
							$("ul#tag_list").empty();
							$("ul#tag_list").attr('style','');
							//$(".buttonset").buttonset();
							
							$("#TagAdd").validate({
								rules:{
									item_type:{
										required:true
									},
									item_name:{
										required:true
									}
								},
								messages:{
									item_type:{
										required:"Please choose an item type"
									},
									item_name:{
										required:"Please enter an item name"
									}
								},
								submitHandler: function(form){
									$(form).ajaxSubmit(ajaxoptions);
								},
								
								onsubmit: true,
								success: "",
								errorClass: "invalid",
								errorElement: "em",
								errorPlacement: function(error, element){
									var label = $("label[for*='" + element.attr('name') + "']", $("#TagAdd")).get(0);
									
									$(label).append(error);
								},
								debug: false
								
							});
							$(this).fadeIn(300);
						});
					});
                }
                else
				{
                    $("#typeChoice").fadeOut(300, function(){
                        $(this).empty();
                    });
					$("#tag_list").slideUp(300, function(){
						$(this).empty();
					});
                }
					
				//debuglog( $(obj).hasClass('.editable') );
				if( $($self).hasClass('filtering') ){
					//debuglog('for image');
					params.action = 'available-tags';
					$.post(filename, params, function(response){
                           var decoded = $("<div></div>").html(response).text();
						   $("#availableTagsList").fadeOut('100',function(){
						   		$(this).empty();
								$(this).append(decoded);
								$( 'li', $(this) ).each(function(i,obj){
									$(obj).hide();
								});
								
								var item = $.trim($( "input[name='selected_item']", $("#availableTagsList")).val());
								if(item.length !== 0){				
									$("#availableTagsList").parent().find('legend').text('Available Tags in '+item);
								}
								
								$(this).slideDown( 100, function(){ 
									$(this).fadeIn(100, function(){
										$( 'li', $(this) ).each(function(i,obj){
											$(obj).fadeIn(300);
										});
									}); 
									
								});
						   });	

                      });
					  
					  
					
				}
				else{
					$("#availableTagsList").slideUp(300, function(){
						$(this).empty();
					});
					$("#tag_list").slideUp(300, function(){
						$(this).empty();
					});
					
				}
				//replaced by e.preventDefault();
				//return false;
			});		
	
	$("#availableEditableTagsList li a").live('click',function(e){
		var $self = $(this);
		e.preventDefault();
		var filename = String($(this).attr('href').split("?",1));
		var myparams = getparams($(this).attr('href'));
		
		var paramsStr = '';
	    $(myparams).each(function(i){
	        paramsStr += myparams[i]+',';
	    });
	    paramsStr += 'ajax:2';
	    var params = $.evalJSON('{'+paramsStr+'}');
		params.selected_name = $(this).attr('title');
		
		var oldVal = $("#TagAdd").find("input#item_name").val();
		
		if( $($self).hasClass('editable') ){
			params.action = 'edit-form';
			$.post(filename, params, function(response){
                   var decoded = $("<div></div>").html(response).text();
			
					$("#editItem").slideDown(300, function(){
						$(this).empty();
						$(this).append(decoded);
						
						$("#TagEdit").validate({
							rules:{
								item_name:{
									required:true
								},
								item_order:{
									required:true,
									number: true

								}
							},
							messages:{
								item_name:{
									required:"Please enter an item name"
								},
								item_order:{
									required:"Please enter an item order",
									number:"Please enter a valid number"
								}
							},
							submitHandler: function(form){
								$(form).ajaxSubmit(ajaxoptions);
							},
							
							onsubmit: true,
							success: "",
							errorClass: "invalid",
							errorElement: "em",
							errorPlacement: function(error, element){
								var label = $("label[for*='" + element.attr('name') + "']", $("#TagEdit")).get(0);	
								$(label).append(error);
							},
							debug: false
							
						});
						$(this).slideDown( 300, function(){ 
							$(this).fadeIn(300); 
						});
					});
              });
			}
			else{
				$("#editItem").slideUp(300, function(){
					$(this).empty();
				});
			}
	});
	
	$("ul.selectableAdd  li a").live('click',function(e){
		var $self = $(this);
		e.preventDefault();
		var filename = String($(this).attr('href').split("?",1));
		var myparams = getparams($(this).attr('href'));
		
		var paramsStr = '';
	    $(myparams).each(function(i){
	        paramsStr += myparams[i]+',';
	    });
	    paramsStr += 'ajax:2';
	    var params = $.evalJSON('{'+paramsStr+'}');
		params.selected_name = $(this).attr('title');
		
		var oldVal = $("#TagAdd").find("input#item_name").val();
		//alert(2);
		if( $($self).hasClass('filtering') ){
			
			$.post(filename, params, function(response){
				var decoded = $("<div></div>").html(response).text();
				
				$("#typeChoice").fadeOut(300, function(){
					$(this).empty();
					$(this).append(decoded);
					
					$(this).find("input#item_name").val(oldVal);
					$("ul#tag_list").empty();
					$("ul#tag_list").attr('style','');
					//$(".buttonset").buttonset();
					
					$("#TagAdd").validate({
						rules:{
							item_type:{
								required:true
							},
							item_name:{
								required:true
							}
						},
						messages:{
							item_type:{
								required:"Please choose an item type"
							},
							item_name:{
								required:"Please enter an item name"
							}
						},
						submitHandler: function(form){
							$(form).ajaxSubmit(ajaxoptions);
						},
						
						onsubmit: true,
						success: "",
						errorClass: "invalid",
						errorElement: "em",
						errorPlacement: function(error, element){
							var label = $("label[for*='" + element.attr('name') + "']", $("#TagAdd")).get(0);
							
							$(label).append(error);
						},
						debug: false
						
					});
					$(this).fadeIn(300);
				});
			});
			
			
			debuglog('click');
			params.action = 'available-edit-tags';
			$.post(filename, params, function(response){
                   var decoded = $("<div></div>").html(response).text();
				   $("#availableEditableTagsList").fadeOut('100',function(){
				   		$(this).empty();
						$(this).append(decoded);
						$( 'li', $(this) ).each(function(i,obj){
							$(obj).hide();
						});
						
						var item = $.trim($( "input[name='selected_item']", $("#availableEditableTagsList")).val());
						if(item.length !== 0){				
							$("#availableEditableTagsList").parent().find('legend').text('Available Editable Tags in '+item);
						}
						
						$(this).slideDown( 100, function(){ 
							$(this).fadeIn(100, function(){
								$( 'li', $(this) ).each(function(i,obj){
									$(obj).fadeIn(300);
								});
							}); 
							
						});
				   });	

              });
			
			//alert(3);
        }
        else
		{
            $("#typeChoice").fadeOut(300, function(){
                    $(this).empty();
            });
        }
			
		//debuglog( $(obj).hasClass('.editable') );
		if( $($self).hasClass('editable') ){
			params.action = 'edit-form';
			$.post(filename, params, function(response){
                   var decoded = $("<div></div>").html(response).text();
			
					$("#editItem").slideDown(300, function(){
						$(this).empty();
						$(this).append(decoded);
						
						$("#TagEdit").validate({
							rules:{
								item_name:{
									required:true
								},
								item_order:{
									required:true,
									number: true

								}
							},
							messages:{
								item_name:{
									required:"Please enter an item name"
								},
								item_order:{
									required:"Please enter an item order",
									number:"Please enter a valid number"
								}
							},
							submitHandler: function(form){
								$(form).ajaxSubmit(ajaxoptions);
							},
							
							onsubmit: true,
							success: "",
							errorClass: "invalid",
							errorElement: "em",
							errorPlacement: function(error, element){
								var label = $("label[for*='" + element.attr('name') + "']", $("#TagEdit")).get(0);	
								$(label).append(error);
							},
							debug: false
							
						});
						$(this).slideDown( 300, function(){ 
							$(this).fadeIn(300); 
						});
					});
              });
		}
		else{
			$("#editItem").slideUp(300, function(){
				$(this).empty();
			});
		}
		return false;
	});

	$("ul.selectableAdd li a").livequery(function(){
		
		$(this).each(function(index,obj){
			debuglog($(obj));	
			$(obj).live('click', function(e){
				alert(1);
				e.preventDefault();
				var filename = String($(this).attr('href').split("?",1));
	    		var myparams = getparams($(this).attr('href'));
				
				var paramsStr = '';
			    $(myparams).each(function(i){
			        paramsStr += myparams[i]+',';
			    });
			    paramsStr += 'ajax:2';
			    var params = $.evalJSON('{'+paramsStr+'}');
				params.selected_name = $(this).attr('title');
				
				var oldVal = $("#TagAdd").find("input#item_name").val();
				alert(2);
				if( $(obj).hasClass('filtering') ){	
					$.post(filename, params, function(response){
						var decoded = $("<div></div>").html(response).text();
						
						$("#typeChoice").fadeOut(300, function(){
							$(this).empty();
							$(this).append(decoded);
							
							$(this).find("input#item_name").val(oldVal);
							$("ul#tag_list").empty();
							$("ul#tag_list").attr('style','');
							//$(".buttonset").buttonset();
							
							$("#TagAdd").validate({
								rules:{
									item_type:{
										required:true
									},
									item_name:{
										required:true
									}
								},
								messages:{
									item_type:{
										required:"Please choose an item type"
									},
									item_name:{
										required:"Please enter an item name"
									}
								},
								submitHandler: function(form){
									$(form).ajaxSubmit(ajaxoptions);
								},
								
								onsubmit: true,
								success: "",
								errorClass: "invalid",
								errorElement: "em",
								errorPlacement: function(error, element){
									var label = $("label[for*='" + element.attr('name') + "']", $("#TagAdd")).get(0);
									
									$(label).append(error);
								},
								debug: false
								
							});
							$(this).fadeIn(300);
						});
					});
					alert(3);
                }
                else
				{
                    $("#typeChoice").fadeOut(300, function(){
                            $(this).empty();
                    });
                }
					
				//debuglog( $(obj).hasClass('.editable') );
				if( $(obj).hasClass('editable') ){
					params.action = 'edit-form';
					$.post(filename, params, function(response){
                           var decoded = $("<div></div>").html(response).text();
					
							$("#editItem").slideDown(300, function(){
								$(this).empty();
								$(this).append(decoded);
								
								$("#TagEdit").validate({
									rules:{
										item_name:{
											required:true
										},
										item_order:{
											required:true,
											number: true

										}
									},
									messages:{
										item_name:{
											required:"Please enter an item name"
										},
										item_order:{
											required:"Please enter an item order",
											number:"Please enter a valid number"
										}
									},
									submitHandler: function(form){
										$(form).ajaxSubmit(ajaxoptions);
									},
									
									onsubmit: true,
									success: "",
									errorClass: "invalid",
									errorElement: "em",
									errorPlacement: function(error, element){
										var label = $("label[for*='" + element.attr('name') + "']", $("#TagEdit")).get(0);	
										$(label).append(error);
									},
									debug: false
									
								});
								$(this).slideDown( 300, function(){ 
									$(this).fadeIn(300) 
								});
							});
                      });
				}
				else{
					$("#editItem").slideUp(300, function(){
						$(this).empty();
					});
				}
	
				return false;
			});		
		});
	});
});

