var metatag_last_value;
var metatag_last_counter = 0;
var metatag_wait_time = 500;

function metatag_type_selected(value) {
	$('metatag_name_field').style.display="block";
	if (value == "freetext") {
		$('metatag_name_field_submit').style.display="inline";
	} else {
		$('metatag_name_field_submit').style.display="none";
	}
}




function metatag_name_search(input) {
	metatag_last_counter++;
	var func_call = "metatag_perform_search(" + metatag_last_counter + ", '" + input + "')";
	setTimeout(func_call, metatag_wait_time);
}

function metatag_perform_search(counter, value) {

	if (counter != metatag_last_counter) {
		return;
	}

		
    if(value.length < 2) {
	  $('metatag_name_result').style.display="none";
	  $('metatag_name_result').innerHTML='';
      return false;
    }

	   if (value == metatag_last_value) {
    	return;
    }
    
	metatag_last_value = value;
	
    ok_func = function (transport) { metatag_update_search(transport); };
    failed_func = function (transport) { metatag_update_search(transport); };
    var url = 'metatag/ajax/get_metatag_list.cgi'
    var pars = 'value=' + value;
    if ($('tag_type').value == "freetext") {
    	url = 'metatag/ajax/get_metatag_freetext_list.cgi'  
    } else {
    	pars += '&tag_type=' + $('tag_type').value;
	}
    var myAjax = new Ajax.Request( url,
                                  { method: 'get',
                                    parameters: pars,
                                    onSuccess: ok_func,
				    				onFailure: failed_func
                                  });
    return false;
}

function metatag_update_search(transport) {
  
  var string = '';
  var data;
 
  try
  {
     data = eval(transport.responseText);
  }
  catch(e)
  {
    return false;
  }  
  for (var i = 0; i < data.length; i++) {
    string += '<div class="metatag_search_result"><a href="#" onclick="metatag_save(\'' + $('tagged_type').value + '\',\'' + $('tagged_tagged').value + '\',' + data[i].id + ',\'' + data[i].tag_type + '\',\'' + data[i].tag_target  + '\');return false;">' + data[i].value + '</a></div>';
  }
  $('metatag_name_result').style.display="block";
  $('metatag_name_result').innerHTML = string;
}

function metatag_save(tagged_type, tagged_tagged, tag_id, tag_type, tag_target) {
	
    ok_func = function (transport) { metatag_confirm_save(transport); };
    var url = 'metatag/ajax/save_metatag.cgi'
    var pars = 'tagged_type=' + tagged_type + '&tagged_tagged=' + tagged_tagged;
	if (tag_id == 0) {
		pars += '&tag_type=' + tag_type + '&tag_target=' + tag_target;
		if (tag_type == 'freetext' || tag_type == 'genre' || tag_type == 'keyword') {
			ok_func = function (transport) {metatag_confirm_freetext_save(transport); };
		   	url = 'metatag/ajax/save_freetext_metatag.cgi'
		}
	} else if (tag_id == -1) {
		pars += "&tag_type=freetext&tag_target=" + $('metatag_name').value;
		ok_func = function (transport) {metatag_confirm_freetext_save(transport); };
	   	url = 'metatag/ajax/save_freetext_metatag.cgi'
	} else {
		pars += "&tag_id=" + tag_id;
	}
    var myAjax = new Ajax.Request( url,
                                  { method: 'get',
                                    parameters: pars,
                                    onSuccess: ok_func
                                  });
} 

function metatag_confirm_save(transport) {
	$('metatag_name_field').style.display="none";
	$('metatag_name').value = "";
  	$('metatag_name_result').style.display="none";
  	$('metatag_name_result').innerHTML = "";
	$('metatag_confirm_save').style.display="block";
	$('tag_type').value="---------";
	if (transport.responseText && $('existing_metatags')) {
		$('existing_metatags').innerHTML = transport.responseText;
	}
}

function metatag_confirm_freetext_save(transport) {
	$('add_metatag_form').style.display="none";
	$('metatag_name').value = "";
  	$('metatag_name_result').style.display="none";
  	$('metatag_name_result').innerHTML = "";
	if (transport.responseText && $('existing_metatags')) {
		$('existing_metatags').innerHTML = transport.responseText;
	}
}

