var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
  try {
  xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")
 } catch (e) {
  try {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
  } catch (E) {
   xmlhttp=false
  }
 }
@else
 xmlhttp=false
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 try {
  xmlhttp = new XMLHttpRequest();
 } catch (e) {
  xmlhttp=false
 }
}

function toggle(id) {
	if (document.getElementById(id).style.display == 'block') {
		document.getElementById(id).style.display = 'none'
	} else {
		document.getElementById(id).style.display = 'block'
	}
}

function previsualizar(id1, id2){
	var defvalue=(arguments.length==3)?arguments[2]:''; 
	var NewText = document.getElementById(id1).value;
	if (NewText.length == 0 && defvalue.length > 0) NewText = defvalue; 
	if (NewText.length > 0) {
		splitText = NewText.split(/\n/).join("<br />");
		var DivElement = document.getElementById(id2);
		DivElement.innerHTML = splitText;
	}
}

function previsualizar_select(id1, id2){
	var Select = document.getElementById(id1);
	previsualizar(id1,id2,Select.options[Select.selectedIndex].value);
}

function update_value(id1,id2) {
	var element_source = document.getElementById(id1);
	var element_target = document.getElementById(id2);
	element_target.href = 'ap/adminviews/edit/' + element_source.value;
}

function sanitize(from_id,to_id) {
        nicetitle = document.getElementById(to_id);
        titulo = document.getElementById(from_id)
                t = titulo.value
                t = t.toLowerCase()
                b = ""
                c = ""
                for(i=0;i<t.length;i++) {
                        ch = t.charAt(i)
                                switch(ch) {
                                        case 'a':
                                        case 'b':
                                        case 'c':
                                        case 'd':
                                        case 'e':
                                        case 'f':
                                        case 'g':
                                        case 'h':
                                        case 'i':
                                        case 'j':
                                        case 'k':
                                        case 'l':
                                        case 'm':
                                        case 'n':
                                        case 'o':
                                        case 'p':
                                        case 'q':
                                        case 'r':
                                        case 's':
                                        case 't':
                                        case 'u':
                                        case 'v':
                                        case 'w':
                                        case 'x':
                                        case 'y':
                                        case 'z':
                                        case '1':
                                        case '2':
                                        case '3':
                                        case '4':
                                        case '5':
                                        case '6':
                                        case '7':
                                        case '8':
                                        case '9':
                                        case '0':
                                                b = b + ch
                                                break
                                        case 'á':
                                                b = b + 'a'
                                                break
                                        case 'é':
                                                b = b + 'e'
                                                break
                                        case 'í':
                                                b = b + 'i'
                                                break
                                        case 'ó':
                                                b = b + 'o'
                                                break
                                        case 'ú':
                                                b = b + 'u'
                                                break
                                        case ' ':
                                                b = b + '-'
                                                break
                                        default:
                                                b = b
                                                break
                                }
                }
                i = b.length-1
                while (i > 0 && b[i] == '-') {
                        i--
                }
                b = b.substring(0,i+1)
                nicetitle.value = b;
}

function checkSubmit(e) {
  var characterCode;

  if(e && e.which) {
    e = e;
    characterCode = e.which;
  }
  else{
    if (window.event) {
      e = event;
      characterCode = e.keyCode;
    }
  }
  if(characterCode == 13){
    return false
  }
  else{
    return true
  }
}

function getLastSpace(elem,car) {
    var pos = -1;
    for (var i = 0; i < elem.length; i++) {
      if (elem[i] == car) {
        pos = i;
      }
    }
    return pos;
}

function stripCounter(elem) {
  var newElem;
  var pos = elem.indexOf('(');
  if (pos >= 0) 
    newElem = elem.substr(0,pos-1);
  else
    newElem = elem;
  return newElem;
}

function hasSpaces(elem) {
  var count = 0;
  for (var i=0;i<=elem.length;i++) {
    if (elem[i] == ' ') 
      count++;
  }
  if (count > 0)
    return true;
  return false
}

Autocompleter.Local.prototype = Object.extend(new Autocompleter.Base(), {
  initialize: function(element, update, array, options) {
    this.baseInitialize(element, update, options);
    this.options.array = array;
  },

  getUpdatedChoices: function() {
    this.updateChoices(this.options.selector(this));
  },

  updateElement: function(selectedElement) {
    if (this.options.updateElement) {
      this.options.updateElement(selectedElement);
      return;
    }

    var value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');
    var lastTokenPos = this.findLastToken();
    if (lastTokenPos != -1) {
      var newValue = this.element.value.substr(0, lastTokenPos + 1);
      var whitespace = this.element.value.substr(lastTokenPos + 1).match(/^\s+/);
      if (whitespace)
        newValue += whitespace[0];
      this.element.value = newValue + value;
    } else {
      var oldValue = this.element.value;
      var pos = 0;
      pos = value.indexOf('(');
      value = value.slice(0,pos-1);
      if (hasSpaces(value)) {
        value = "'" + value + "'"
      }
      pos = 0;
      if (oldValue.length > 0) {
        for( var i=oldValue.length-1;i>=0;i--) {
              if (oldValue.charAt(i) == ' ') {
                      pos = i;
                      break;
              }
        }
      }
      if (pos == 0) {
        this.element.value = value + ' ';
      } else {
        this.element.value = this.element.value.slice(0,pos) + ' ';
        this.element.value = this.element.value + value + ' ';
      }
    }
    this.element.focus();

    if (this.options.afterUpdateElement)
      this.options.afterUpdateElement(this.element, selectedElement);
  },

  setOptions: function(options) {
    this.options = Object.extend({
      choices: 30,
      partialSearch: true,
      partialChars: 2,
      ignoreCase: true,
      fullSearch: false,
      selector: function(instance) {
        var ret       = []; // Beginning matches
        var partial   = []; // Inside matches
        var entry     = instance.getToken();
        var count     = 0;

        var lastSpace = getLastSpace(entry,' ');
  
        entry = entry.substr(lastSpace+1, entry.length);

        for (var i = 0; i < instance.options.array.length &&
          ret.length < instance.options.choices ; i++) {

          var elem = instance.options.array[i];
          var foundPos = instance.options.ignoreCase ?
            elem.toLowerCase().indexOf(entry.toLowerCase()) :
            elem.indexOf(entry);

          while (foundPos != -1) {
            if (foundPos == 0 && elem.length != entry.length) {
              ret.push("<li>" + elem.substr(0, entry.length) +
                elem.substr(entry.length) + "</li>");
              break;
            } else if (entry.length >= instance.options.partialChars &&
              instance.options.partialSearch && foundPos != -1) {
              if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {
                partial.push("<li>" + elem.substr(0, foundPos) +
                  elem.substr(foundPos, entry.length) + elem.substr(
                  foundPos + entry.length) + "</li>");
                break;
              }
            }

            foundPos = instance.options.ignoreCase ?
              elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) :
              elem.indexOf(entry, foundPos + 1);

          }
        }
        if (partial.length)
          ret = ret.concat(partial.slice(0, instance.options.choices - ret.length))
        return "<ul>" + ret.join('') + "</ul>";
      }
    }, options || {});
  }
});

function toggleCheckBoxes(formId) {
  if(!document.forms[formId]) { return; }
  var objCheckBoxes = document.forms[formId].elements; 
  if(!objCheckBoxes) { return; }
  var countCheckBoxes = objCheckBoxes.length;
  if(!countCheckBoxes) {
    objCheckBoxes.checked = CheckValue;
  }
  else {
    for(var i = 0; i < countCheckBoxes; i++) {
      objCheckBoxes[i].checked = !objCheckBoxes[i].checked;
    }
  }
}

function insertAtCursor(myField, myValue) {
  myField = document.getElementById(myField);
  //IE support
  if (document.selection) {
    myField.focus();
    sel = document.selection.createRange();
    sel.text = myValue;
  }
  //MOZILLA/NETSCAPE support
  else if (myField.selectionStart || myField.selectionStart == '0') {
    var startPos = myField.selectionStart;
    var endPos = myField.selectionEnd;
    myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
  } else {
    myField.value += myValue;
  }
}

function jump_to(select) {
  if (select.value.length > 0 && select.value != 'null') {
    window.location.href = select.value;
    return true;
  }
  return false;
}

