ajaxErrorFunction=function(req){alert('Error!\nStatusText='+req.statusText+'\nContents='+req.responseText);}
var tagTable,tagId,tagType,elAddTagLink;function create_add_tag(elementId,tag_table,tag_id){tagTable=tag_table;tagId=tag_id;tagType='text';var inputTag=document.getElementById('add_tag_input');inputTag.style.display='';var cancelTagSubmit=document.createElement('input');cancelTagSubmit.type='button';cancelTagSubmit.value='Close';cancelTagSubmit.style.marginLeft='5px';cancelTagSubmit.id='add_tag_cancel';if(cancelTagSubmit.attachEvent){cancelTagSubmit.attachEvent('onclick',remove_add_tag);}else{cancelTagSubmit.addEventListener('click',remove_add_tag,false);}
var addTagSubmit=document.createElement('input');addTagSubmit.type='button';addTagSubmit.value='Add Tag';addTagSubmit.id='add_tag_submit';if(addTagSubmit.attachEvent){addTagSubmit.attachEvent('onclick',add_tag);inputTag.attachEvent('onkeypress',check_key);}else{addTagSubmit.addEventListener('click',add_tag,false);inputTag.addEventListener('keydown',check_key,false);}
elementToAppendTo=document.getElementById(elementId);document.getElementById('add_tag_button').style.display='none';elementToAppendTo.appendChild(addTagSubmit);elementToAppendTo.appendChild(cancelTagSubmit);inputTag.focus();}
var data="Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" ");function remove_add_tag(){document.getElementById('add_tag_input').style.display='none';elementToAppendTo.removeChild(document.getElementById('add_tag_submit'));elementToAppendTo.removeChild(document.getElementById('add_tag_cancel'));document.getElementById('add_tag_button').style.display='';}
function check_key(e){if(!e)e=window.event;keyCode=e.charCode||e.keyCode;if(keyCode==13)
{add_tag();}}
function add_tag(){AjaxRequest.post({'url':neo_url+'tags_ajax.php','parameters':{'tag_value':document.getElementById('add_tag_input').value,'action':'add','table':tagTable,'objectid':tagId,'type':tagType},'onSuccess':function(req){if(req.responseText.indexOf("<div id='tags_error_box'>")!=-1){if(document.getElementById("tags_error_box")){document.getElementById('add_tag_link').firstChild.removeChild(document.getElementById("tags_error_box"));}
error_div=document.createElement('div');error_div.className='error_box';error_div.innerHTML=req.responseText;document.getElementById('add_tag_link').insertBefore(error_div,document.getElementById('add_tag_link').firstChild);}else{document.getElementById('tag_list_wrapper').style.display='';span_tag=document.createElement('span');temp_tag=document.createElement('span');temp_tag.innerHTML=' '+req.responseText;document.getElementById('tag_inner_list').appendChild(temp_tag);document.getElementById('tag_inner_list').appendChild(span_tag);document.getElementById('add_tag_input').value='';}},'onError':function(req){ajaxErrorFunction(req)}});}
function edit_tag(){AjaxRequest.get({'url':neo_url+'tags_ajax.php','parameters':{'tag_value':document.getElementById('edit_tag_txt').value,'action':'edit','table':tagTable,'objectid':tagId,'type':tagType},'onSuccess':function(req){document.getElementById('edit_tag_txt').parentNode.style.display='none';document.getElementById('tag_inner_list').innerHTML=req.responseText;},'onError':function(req){ajaxErrorFunction(req)}});}
function edit_tags(tag_table,tag_id){tagTable=tag_table;tagId=tag_id;if(document.getElementById('edit_tag_txt')){document.getElementById('edit_tag_txt').parentNode.parentNode.removeChild(document.getElementById('edit_tag_txt').parentNode);}
var tag_items=document.getElementById('tag_inner_list').getElementsByTagName('a');editElContainer=document.createElement('div');msgEl=document.createElement('div');msgEl.innerHTML='Editing Tags. NOTE:Each tag must be on its own line';editElContainer.appendChild(msgEl);var tag_list=document.createElement('textarea');tag_list.style.float='left';tag_list.id='edit_tag_txt';tag_list.rows=tag_items.length+3;tag_list.cols=50;for(var i=0;i<tag_items.length;i++){temp_el=document.createElement('li');tag_list.value+=tag_items[i].innerHTML+"\n";}
editElContainer.appendChild(tag_list);editElContainer.appendChild(document.createElement('br'));submitEl=document.createElement('input');submitEl.type='button';submitEl.value='Update Tags';if(submitEl.attachEvent){submitEl.attachEvent('onclick',edit_tag);}else{submitEl.addEventListener('click',edit_tag,false);}
editElContainer.appendChild(submitEl);document.getElementById('tag_list').appendChild(editElContainer);}
function validate_tag_report(){tag_els=document.getElementsByName('tags[]');tagsChecked=0;bValid=true;for(var i=0;i<tag_els.length;i++){if(tag_els[i].checked){tagsChecked++;;}}
errorDiv=document.createElement('div');errorDiv.id='tags_validation_error';errorDiv.className='error_box';errorDiv.innerHTML='<b>The following errors were found:</b><br />';if(tagsChecked==0){errorDiv.innerHTML+='Select a tag to report';bValid=false;}
if(tagsChecked==0&&document.getElementById('report_reason').selectedIndex==-1){errorDiv.innerHTML+='<br />';}
if(document.getElementById('report_reason').selectedIndex==-1){errorDiv.innerHTML+='Select a reason';bValid=false;}
if(!bValid){if(document.getElementById('tags_validation_error')){document.getElementById('tags_header').parentNode.removeChild(document.getElementById('tags_validation_error'));}
document.getElementById('tags_header').parentNode.insertBefore(errorDiv,document.getElementById('tags_header').nextSibling);}
return bValid;}
function report_tags(action){document.getElementById('report_action').value=action;document.getElementById('tag_admin_form').submit();}
if(typeof($)!='undefined'){$("#add_tag_input").autocomplete(neo_url+'tags_ajax.php',{extraParams:{'action':'autocomplete'},multiple:true,delay:1});}