$(document).ready(function()
{
	var cache = {};
	cache.data = {};
	$("#addtag").click(function(){
		$("#edit_tag").show();
		$("#tag").hide();
		var tags="";
		$("#listTag > a").each(function(i){
			tags+=$(this).text()+", ";
		});
		if(tags.length < 30)
			$(".inputTag").attr("size",30);
		else 
			$(".inputTag").attr("size",45);
		$(".inputTag").val(tags).focus();
	});
	$("a.tags").click(function () {
		var id=$(this).attr("id");
		if(id=="allTag") {
    		$("#myTag").removeClass("htags");
    		getTags({block:"tagContainer"});
    	}
    	else if(id=="myTag") {
    		$("#allTag").removeClass("htags");
    		getTags({block:"tagContainer",url:{user:true}});
    	}
    	else {
    		var sid=id.substr(0,6);
    		var prod=id.substr(6);
    		if(sid=="allTag") {
    			$("#myTags"+prod).removeClass("htags");
    			getTags({block:"listTag",url:{produce:prod}});
    			$("#addtag").hide();
    		}
    		else if(sid=="myTags") {
    			getTags({block:"listTag",url:{user:true,produce:prod}});
    			$("#allTag"+prod).removeClass("htags");
    			$("#addtag").show();
    		}
    	}
		$(this).addClass("htags");
    });
    $(".sajax").click(function(){
    	var show="Показать облако меток";
    	var hide="Скрыть облако меток";
    	if($(this).attr("rel")=="show"){
    		$(this).text(hide);
    		$(this).attr("rel","hide");
    	}else{
    		$(this).text(show);
    		$(this).attr("rel","show");
    	}
    	$("#tags_div_list").toggle();
    });
    $('.inputTag').autocomplete('/ajax/tag.php', {
  		autoFill:true,
  		selectFirst:true,
  		minChars: 3,
  		delay: 300,
  		inputClass: "inputTag",
  		wordSeparator:","});
  	$('#cancelTag').click(function(){
  		$("#edit_tag").hide();
		$("#tag").show();
		return false;
  	});
  	$('#saveTag').click(function(){
  		$(this).attr('disabled',true);
  		$('#cancelTag').attr('disabled',true);
  		var tags=$('.inputTag');
  		var url="/ajax/tag.php";
  		$.post(url,{addtag:"",prod:$(tags).attr("id"),prod_tag:encodeURI($(tags).val())}, function(data) {
  			flushCache();
  			receiveData("listTag",data);
  			getTags({block:"tagContainer",url:{user:true}});
  		})
  		$(this).attr('disabled',false);
  		$('#cancelTag').attr('disabled',false);
		return true;
  	});
    function getTags(options) {
    	options = options || {};
    	var url="/ajax/tag.php?";
    	for (var i in options.url) {
			url += "&" + i + "=" + encodeURI(options.url[i]);
		}
		if(cache.data[url])
			receiveData(options.block,cache.data[url]);
		else
    		$.get(url, function(data) {
				addToCache(url, data);
				receiveData(options.block,data);
			});
    };
    
    function addToCache(url,data) {
    	if (data && url)
			cache.data[url] = data;
	};
	function flushCache(){
		cache={};
		cache.data={};
	}
	function receiveData(block,data) {
		if (block && data) { 
			if(block=="listTag")
				$("#addtag").text("редактировать метки");
			$("#"+block).html(data);
		} else {
			if(block=="listTag")
				$("#addtag").text("добавить метки");
			$("#"+block).html("");
		}
		if($("#tag").css('display')=="none"){
			$("#edit_tag").hide();
			$("#tag").show();
		}
	}
});