﻿var InfoTagHelper={TargetField:null,TagList:null,Init:function(field,focuscallback)
{this.TargetField=field;LMGR.Reg(field,LMGR.FOCUS,focuscallback!=null?focuscallback:InfoTagHelper.OpenTagList);},_prevArgs:null,OpenTagList:function(e,args)
{with(InfoTagHelper)
{var load=(!TagList)||(args!=null);if(!TagList)
{TagList=$C("div",{className:"TagList"});with(TagList.style)
{position="absolute";display="none";}
document.body.appendChild(TagList);LMGR.Reg(document,LMGR.CLICK,InfoTagHelper.CloseTagList,null,[InfoTagHelper.TagList,TargetField]);}
if(load)
{_prevArgs=args;TagList.innerHTML="正在载入标签...";AJAX.Load("AJAX_Info.aspx?type=TagList","GET",args,FillTagList,ErrorOnTags);}
$XY(TagList,TargetField,0,TargetField.offsetHeight);TagList.style.display="";}},FillTagList:function(tags)
{with(InfoTagHelper)
{TagList.innerHTML="";var ts=eval(tags);for(var i=0;i<ts.length;i++)
{var a=$C("a",{href:"#",innerHTML:ts[i]});a.onclick=AddTag;InfoTagHelper.TagList.appendChild(a);}
if(ts.length==0)
TagList.innerHTML="此分类下未定义任何标签";}},AddTag:function(e)
{with(InfoTagHelper)
{_addTag(TargetField,$E_T(e).innerHTML);CloseTagList();}
return false;},_addTag:function(target,tag)
{if(!new RegExp("(^|\\s)"+tag+"(\\s|$)","ig").test(target.value))
target.value+=(target.value==""?"":" ")+tag;},CloseTagList:function(e)
{if(InfoTagHelper.TagList)
InfoTagHelper.TagList.style.display="none";},ExtractTags:function(target)
{with(InfoTagHelper)
{if(target.value.IsBlank())
return;AJAX.Load("AJAX_Info.aspx?type=InfoTag","POST",[["Content",target.value]],ParseTags,ErrorOnTags);}},ParseTags:function(tags)
{if(!tags)
{Notice.Alert("sry, 没有找到合适的标签",Notice.OK|Notice.CANCELABLE);}
else
{var ts=tags.split(" ");for(var i=0;i<ts.length;i++)
InfoTagHelper._addTag(InfoTagHelper.TargetField,ts[i]);}},ErrorOnTags:function()
{Notice.Alert("提取标签失败",Notice.OK|Notice.CANCELABLE);}}