
// loads tag highlighting if we need it
window.onload = function()
{
    el = document.getElementById('tag_input');
    if (el)
    {
        highlight_tags(el);
    }
}

// adds or removes a tag
function tag_swap(el, name)
{
    if (!find_tag(el, name))
    {
        var normalized = el.value.replace(/^\s*|\s*$/g,'');
        el.value = (normalized == '' ? '' : normalized + ' ') + name;
        highlight_tags(el);
    }
    else
    // tag already exists, remove it
    {
        tags = el.value.split(' ');
        new_tags = new Array();
        for (var i = 0; i <= tags.length; i++)
        {
            if (tags[i] != name)
            {
                new_tags[new_tags.length] = tags[i];
            }
        }
        el.value = new_tags.join(' ');
        clear_highlight();
        highlight_tags(el);
    }
}

// see if a tag is already in the block
function find_tag(el, name)
{
    tags = el.value.split(' ');
    for (var i = 0; i <= tags.length; i++)
    {
        if (tags[i] == name)
        {
            return true;   
        }
    }
    return false;
}

// highlights tags that are already there
function highlight_tags(el)
{
    tags = el.value.split(' ');
    clear_highlight();
    for (var i = 0; i <= tags.length; i++)
    {
        temp_tag = document.getElementById('tag_' + tags[i]);
        if (temp_tag)
        {
            temp_tag.setAttribute('class', 'tag_selected');
        }
    }
}

// clears all highlighted tags
function clear_highlight()
{
    highlighted_tags = getElementsByClass('tag_selected');
    for (var x = 0; x < highlighted_tags.length; x++)
    {
        highlighted_tags[x].setAttribute('class', 'tagging');
    }
}

// gets an array of all elements with `classname`
function getElementsByClass(classname)
{
    var elements = new Array();
    var inc = 0;
    var alltags = document.all ? document.all : document.getElementsByTagName('*');
    for (var z = 0; z < alltags.length; z++)
    {
        if (alltags[z].className == classname)
        {
            elements[inc++] = alltags[z];
        }
    }
    return elements;
}

function closeKeepAlive() {
  if (/AppleWebKit|MSIE/.test(navigator.userAgent)) {
    new Ajax.Request("/attachments/close", { asynchronous:false });
  }
}

function set_class_name(element, class_name) {
  new Element.ClassNames(element).set(class_name);
}
function auto_complete_on_select(element, selectedElement)
{
  var entityParts = selectedElement.id.split('::');
  var entityType = entityParts[0];
  var entityId   = entityParts[1];
  document.getElementById(entityType).value = entityId;
}

function same_as_sender() {
	var fields = new Array('name', 'email');
	for (var i = 0; i < fields.length; i++) {
		$("comment_to_"+fields[i]).value = $("comment_"+fields[i]).value;
	}
}

function MM_jumpMenu(targ,selObj,restore){ 
			eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
			if (restore) selObj.selectedIndex=0; }

/*
prototypeUtils.js from http://jehiah.com/
Licensed under Creative Commons.
version 1.0 December 20 2005

Contains:
+ Form.Element.setValue()
+ unpackToForm()

*/

/* Form.Element.setValue("fieldname/id","valueToSet") */
Form.Element.setValue = function(element,newValue) {
    element_id = element;
    element = $(element);
    if (!element){element = document.getElementsByName(element_id)[0];}
    if (!element){return false;}
    var method = element.tagName.toLowerCase();
    var parameter = Form.Element.SetSerializers[method](element,newValue);
}

Form.Element.SetSerializers = {
  input: function(element,newValue) {
    switch (element.type.toLowerCase()) {
      case 'submit':
      case 'hidden':
      case 'password':
      case 'text':
        return Form.Element.SetSerializers.textarea(element,newValue);
      case 'checkbox':
      case 'radio':
        return Form.Element.SetSerializers.inputSelector(element,newValue);
    }
    return false;
  },

  inputSelector: function(element,newValue) {
    fields = document.getElementsByName(element.name);
    for (var i=0;i<fields.length;i++){
      if (fields[i].value == newValue){
        fields[i].checked = true;
      }
    }
  },

  textarea: function(element,newValue) {
    element.value = newValue;
  },

  select: function(element,newValue) {
    var value = '', opt, index = element.selectedIndex;
    for (var i=0;i< element.options.length;i++){
      if (element.options[i].value == newValue){
        element.selectedIndex = i;
        return true;
      }        
    }
  }
}

function unpackToForm(data){
   for (i in data){
     Form.Element.setValue(i,data[i].toString());
   }
}

function same_as_billing() {
	var fields = new Array('first_name', 'last_name', 'address1', 'address2', 'city', 'state', 'zipcode');
	for (var i = 0; i < fields.length; i++) {
		$("order_ship_to_"+fields[i]).value = $("order_"+fields[i]).value;
	}
}