function pausecomp(millis)
{
  var date = new Date();
  var curDate = null;

  do { curDate = new Date(); }
  while(curDate-date < millis);
} 

function showNextHiddenChildElement(div) {
    var elements = $(div).childElements();
    var i = 0;
	for (i=0; i<elements.size(); i++)
	{
	    e = elements[i];
        if (!e.visible())
        {
	    e.show();
	   break;
        }
	}
};

function hideLastVisibleChildElement(div) {
    var elements = $(div).childElements();
    var i = 0;
    for (i=elements.size() - 1; i>=0; i--)
	{
	    e = elements[i];
	    if (e.visible())
		e.hide();
	    break;
	    
	}
};

function toggleFormElement(name, context) {
    var elements = document.getElementsByName(name);
    var i = 0;
    for (i = 0; i < elements.length; i++)
    {
      var e = elements[i];
      var e_context = e.readAttribute('context');
      if (e_context == context || (context == "" && e_context == null)) {
	if (e.readAttribute('disabled') == null)
          e.setAttribute('disabled', true);
	else
	  e.removeAttribute('disabled');
	break;
      }
    }
};

function clearSectionErrors() {
  var errors = $$(".in_form_error");
  var i = 0;
  for (i = 0; i < errors.length; i++)
  {
    var e = errors[i];
    e.hide();
  }
};

function clearResumeErrors() {
  var errors = $$(".resume_errors");
  var i = 0;
  for (i =0; i < errors.length; i++)
  {
    var e = errors[i];
    e.hide();
  }
};

function hasSectionErrors() {
  var errors = $$(".in_form_error");
  var i = 0;
  for (i =0; i < errors.length; i++)
  {
    var e = errors[i];
    if (e.getStyle("display") != "none")
    {
      return true;
    }
  }
  return false;  
};

function removeFromList(form, ob, ob2, prefix) { 
  var arSelected = new Array(); 
  while (ob.selectedIndex != -1) { 
    if (ob.selectedIndex > -1) {
      var option = ob.options[ob.selectedIndex];
      arSelected.push(option);
      option.selected = false; 
    }
  }
  var i = 0;
  for(i =0; i < arSelected.length; i++)
  {
    ob2.appendChild(arSelected[i]);
    Element.remove(prefix + arSelected[i].value);
  }
};

function removeAllFromList(form, ob, ob2, prefix) {
  var arSelected = new Array();
  var i = 0;
  for(i = 0; i < ob.options.length; i++) { 
    var option = ob.options[i];
    arSelected.push(option);
    option.selected = false; 
  }
  for(i =0; i < arSelected.length; i++)
  {
    ob2.appendChild(arSelected[i]);
    Element.remove(prefix + arSelected[i].value);
  }
};

function addToList(form, ob, ob2, prefix) {
  var arSelected = new Array();
  while (ob.selectedIndex != -1) { 
    if (ob.selectedIndex > -1) {
      var option = ob.options[ob.selectedIndex];
      arSelected.push(option);
      option.selected = false;
      var e = new Element('input', { 'type' : 'hidden', 'name' : 'to[]', 'value' : option.value, 'id' : (prefix + option.value)  });
      form.appendChild(e);
    }
  }
  var i = 0;
  for(i =0; i < arSelected.length; i++)
  {
    ob2.appendChild(arSelected[i])
  }
};

function finishResume() {
  var html = "<div class=\"errorExplanation\" id=\"errorExplanation\"><h2>Oops.. we're still missing a few things:<\/h2><ul><li>Please save or delete all unsaved subsections before continuing.<\/li><\/ul><\/div>"
  window.location.hash="errors";
  clearSectionErrors();
  clearResumeErrors();
  var forms = $$('form');
  var i = 0;
  for(i = 0; i < forms.size(); i++) {
    form = forms[i];
    if (form.id != "skill_form" && form.id != "finish_form") {
      div = $(form.id.substring(0, form.id.length - 5))
      if (div != null && div.getStyle("display") != "none") {
	form.onsubmit();
      }
    } 
  }
  var errors = hasSectionErrors();
  return !errors;

  //if (errors) {
  //  var e = $('resume_errors');
  // e.insert(html);
  //  Element.show(e);
  //}
  //return !errors;
};

function clearTextField(id) {
  $(id).value = "";
};

function changeCountry(element, section, context) {
  var elements = document.getElementsByName(section.replace(/country/, "state"));
  var i = 0;
  if (element.options[element.selectedIndex].value != "United States") {
  for (i = 0; i < elements.length; i++)
  {
    var e = elements[i];
    var e_context = e.readAttribute('context');
    if (e_context == context || (context == "" && e_context == null)) {
      if (e.readAttribute('disabled') == null)
        e.setAttribute('disabled', true);
      e.selectedIndex = 0;
      break;
    }
  }
  }
  else {
    for (i = 0; i < elements.length; i++)
    {
      var e = elements[i];
      var e_context = e.readAttribute('context');
      if (e_context == context || (context == "" && e_context == null)) {
        if (e.readAttribute('disabled') != null)
          e.removeAttribute('disabled');
        break;
      }
  }
  }
};

function changeCountryJobPost(element, state_element) {
  if (element.options[element.selectedIndex].value != "United States") {
    var e = state_element;
      if (e.readAttribute('disabled') == null)
        e.setAttribute('disabled', true);
      e.selectedIndex = 0;
  }
  else {
      var e = state_element;
        if (e.readAttribute('disabled') != null)
          e.removeAttribute('disabled');
  }
};

function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.innerHTML = limitNum - limitField.value.length;
	}
};

function checkAll(field, model)
{
  for (i = 0; i < field.length; i++) {
    field[i].checked = model.checked;
  }
}
