/*
|	Tags selector
|
*/

		//Tags
		{hp.tags=function(){
			return {
				tag:[],
				create:function() {
					var oR=hp.http.conn();
					oR.open("get","/get/tags/",true);
					oR.onreadystatechange=function() {
						if (oR.readyState==4) {
							var oResponse=eval("("+oR.responseText+")");
							
							oTags=oResponse.tags;
							for(var i=0;i<oTags.length;i++){
								hp.tags.tag[i]={'name':oTags[i].name};
							};
						}
					}
					oR.send(null);
					
					// attach keydown event
					hp.utils.addEvent(hp.utils.get("oTags"),"keyup",hp.tags.updateSuggestions);
				},
				updateSuggestions:function() {
					var oS=hp.utils.get("oTagsSuggestions");
					var oT=hp.utils.get("oTags");
					oS.innerHTML="";
					var ct=oT.value.split(",");
					var txt=ct[ct.length-1]; // searched text
					
					if ( oT.value!="" && txt!="" ) {
						for ( var k=0;k<hp.tags.tag.length;k++ ) {
							var tagsearch = hp.tags.tag[k].name;
							if ( tagsearch.match(new RegExp(("(?:^| )("+txt+"[^ ]+)"), "gi")) ) {
								if ( !hp.tags.isused(tagsearch) ) {
									oS.innerHTML=oS.innerHTML+" "+'<a class="tags" href="javascript:hp.tags.put('+k+')">'+hp.tags.tag[k].name+'</a>';
								}
							}
						}
					}
				},
				put:function(idx) {
					var oT=hp.utils.get("oTags");
					var oS=hp.utils.get("oTagsSuggestions");
					var t=hp.tags.tag[idx].name;
					var ct=oT.value.split(",");
					
					if ( ct.length<=1 ) {
						oT.value=t;
					} else {
						ct[ct.length-1]=t;
						oT.value=ct.join(",");
					}
					oS.innerHTML="";
					oT.focus();
				},
				isused:function(txt) {
					var oT=hp.utils.get("oTags");
					var ct=oT.value.split(",");
					var out=false;
					
					for ( var k=0;k<ct.length;k++ ) {
						if ( ct[k] == txt ) {
							out=true;
						}
					}
					return out;
				},
				getTags:function(nItemId,nTypeId,oTags) {
					if ( oTags ) {
						var oT=hp.utils.get(oTags);
					} else {
						var oT=hp.utils.get("oTags");
					}
					
					var oR=hp.http.conn();
					oR.open("get","/get/tags/?id="+nItemId+"&typeid="+nTypeId,true);
					
					oR.onreadystatechange=function() {
						if (oR.readyState==4) {
							var oResponse=eval("("+oR.responseText+")");
							
							aTags=oResponse.tags;
							
							if ( oTags ) {
								var out=[];
								if ( aTags.length>0 ) {
									for(var i=0;i<aTags.length;i++){
										out[i]='<a href="search.asp?tag='+aTags[i].name+'">' + aTags[i].name + '</a>';
									};
									oT.innerHTML="<i>Tags: " + out.join(" ") + "</i>";
								}
							} else {
								var out=[];
								for(var i=0;i<aTags.length;i++){
									out[i]=aTags[i].name;
								};
								oT.value=out.join(",");
							}
						}
					}
					oR.send(null);
				}
			}
		}()};