// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

Event.observe(window, 'load', function() {
  $$('.g-spot').each(function(g) {
    g.setStyle({'zIndex':10000});
  });
});

function setFieldValue(id,property,value) {
  document.getElementById(id)[property]=value;
}

function setFieldBackground(id,color) {
  document.getElementById(id).style.backgroundColor=color;
}

function updatePageLayoutCoordinates() {
  var element = document.getElementById('content_block');
  document.getElementById('content_height').value = parseInt(element.style.height);
  document.getElementById('content_width').value = parseInt(element.style.width);
  document.getElementById('content_left').value = parseInt(element.style.left);
  document.getElementById('content_top').value = parseInt(element.style.top);
}

/* Created by: Dustin Diaz :: http://www.dustindiaz.com/ */
function getElementsByClass(searchClass,node,tag) {
  var classElements = new Array();
  if (node == null) node = document;
  if (tag == null) tag = '*';
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  for (var i = 0, j = 0; i < elsLen; i++) {
    if (pattern.test(els[i].className) ) {
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}
/* end Dustin Diaz */

function newUsedComponent() {
  var value = document.getElementById('component_state').value;
  var new_fields = getElementsByClass('new');
  var used_fields = getElementsByClass('used');
  for (var i=0;i<new_fields.length;i++) {
    if (new_fields[i] != undefined)
      new_fields[i].style.display = 'none';
  }
  for (var i=0;i<used_fields.length;i++) {
    if (used_fields[i] != undefined)
      used_fields[i].style.display = 'none';
  }
  if (value == 'new') {
    for (var i=0;i<new_fields.length;i++) {
      if (new_fields[i] != undefined)
        new_fields[i].style.display = 'block';
    }
  }
  if (value == 'used') {
    for (var i=0;i<used_fields.length;i++) {
      if (used_fields[i] != undefined)
        used_fields[i].style.display = 'block';
    }
  }
}

function showImage(n) {
  var element;
  for (var i=0;i<4;i++) {
    element = document.getElementById('i_'+i);
    if (element != undefined)
      Element.hide(element);
  }
  Element.show('i_'+n);
}

function setTag(field, value) {
  var element;
  var new_list = [];
  element = document.getElementById(field);
  var list = element.value.split(',');
  for (var i=0;i<list.length;i++) {
    if (list[i] != '') {
      new_list.push(stripSpaces(list[i]));
    }
  }
  if (value != "" && value != undefined) {
    new_list.push(stripSpaces(value));
  }
  new_list = uniq(new_list);
  new_list.sort();
  element.value = new_list.join(',');
}

function stripSpaces(tag) {
  var words = tag.split(' ');
  var stripped_word = '';
  for (var n=0;n<words.length;n++) {
    if (words[n] != '' && words[n] != undefined) {
      if (stripped_word != '') {
        stripped_word += ' '
      }
      stripped_word += words[n];
    }
  }
  return stripped_word;
}

function uniq(array) {
  var new_array = [];
  for (var n=0;n<array.length;n++) {
    if (!exists(new_array, array[n])) {
      new_array.push(array[n]);
    }
  }
  return new_array;
}

function exists(array, value) {
  for (var n=0;n<array.length;n++) {
    if (array[n] == value) {
      return true;
    }
  }
  return false;
}

function showTagShortName() {
  var value = document.getElementById('tag_kind').value;
  var element = document.getElementById('short_name');
  if (value == "structural" || value == "logistical" || value == "functional") {
    Element.show(element);
  } else {
    Element.hide(element);
  }
}

function capitalizeInput(id) {
  var element = document.getElementById(id);
  element.value = element.value.toUpperCase();
}

function setUnknown(element, value) {
  //if (!value) value = 'unknown'
  //if (element.value == '') {
  //  element.style.fontStyle = 'italic';
  //  element.style.color = '#CCCCCC';
  //  element.value = value;
  //}
}

function resetUnknown(element) {
  element.style.fontStyle = 'normal';
  element.style.color = '#000000';
  element.value = '';
}