var url = "/addtag.php"; 
var req = null;

function showTagAdder(event_id){
   document.getElementById('addtag').innerHTML = '<form action="javascript:addTag(' + event_id + ');" name=tagform id=tagform><input type=text value=\"\" name=tag /><input type=submit name=submit id=submit value=Add /></form>'; 
}

//this is slow.
//for now, too lazy to come up w/ a good regex for it
function validateTag(tag){
   var checkstr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_+-/*.,'@~#%$£€!µ°±(){}[ ]";
   if(tag.length <= 2 || tag.length > 40){
   	return false; 
   }
   for(var i = 0; i < tag.length; i++){
      var cur_char = tag.charAt(i);
      var found = false; 
      for(var j = 0; j < checkstr.length; j++){
         if(cur_char == checkstr.charAt(j)){
	    found = true; 
	    break; 
	 }
      }
      if(!found){return found;}
   }
   return true;
}

function processReqChange(){
   if(req.readyState == 4){
      if(req.status == 200){
   	var obj = eval('(' + req.responseText + ')'); 
	if(obj.code == 1){
	   //add the tags that were successfully added
	   var tags = obj.tags; 
	   for(i = 0; i < tags.length; i++){
		document.getElementById('taglist').innerHTML += '<li id=\"' + tags[i] + '\"><a href=#>' + tags[i] + '</a>&nbsp;&nbsp;<a title=\"delete this tag?\" href=\"javascript:deleteTag(' + obj.event_id + ', \'' + tags[i] + '\');\">[x]</a></li>\n'; 
	   }
	   //now clear the form
	   document.forms['tagform'].tag.value = '';
	}
      }
   }
}

function deleteTagReqChange(){
   if(req.readyState == 4){
      if(req.status == 200){
   	var obj = eval('(' + req.responseText + ')'); 
	if(obj.code == 1){
	   var taglist = document.getElementById('taglist');
	   var child = document.getElementById(obj.tag);
	   taglist.removeChild(child);
	}
      }
   }
}

function deleteTag(event_id, tag){
   req = GXmlHttp.create();
   req.onreadystatechange = deleteTagReqChange;
   req.open("POST", "deletetag.php", true);
   req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
   req.send("eventid=" + event_id + "&tag=" + tag);
}

function addTag(event_id){
   var tag = document.forms['tagform'].tag.value;
   tag = tag.toLowerCase();
   if(!validateTag(tag)){
   	return;
   }
   tag = escape(tag);
   req = GXmlHttp.create();
   req.onreadystatechange = processReqChange;
   req.open("POST", url, true);
   req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
   req.send("eventid=" + event_id + "&tag=" + tag);
}

//handle tag search onFocus in navbar
function tagSearchOnFocus(){
   var f = document.forms['searchtags'].searchstring;
   if(f.value == 'Search All Tags'){
   	f.value = '';
   }
   else{
   }
}

//handle tag onBlur in navbar
function tagSearchOnBlur(){
   var f = document.forms['searchtags'].searchstring;
   if(f.value != '') return;
   f.value = 'Search All Tags';
}
