function DOMtest()
{
 if(!document.getElementById || !document.createTextNode){return false;}
 else{return true;}
}
/**
 * @param - string - the id of the element being toggled
 * @param - string - display block or none
 */
function hideSection(section_id, action){
  if(!DOMtest()){return;}
  section_id = document.getElementById(section_id);
  section_id.style.display = action;
}
function formStatus()
{
 var percent = '0';
 updateStatus(progress)
 {
  progress = document.getElementById;
 }
}

function checkEmail() 
{	
  if(!DOMtest()){return;}
	var el=document.getElementById('assign_email_warning');
	var ei=document.getElementById('assign_email').value;
	if(ei.indexOf('@') == -1) {
		el.innerHTML = "Email <span>(invalid)</span>";
		el.style.color = "#cc6666";
		ei.select();
		return false;
	}
	else {
	el.style.color = "#555555";
	el.innerHTML = "Email"
	return true;
	}
}

// The Progress object will loop thru each text input of your form and
// give a percent complete that you can output as CSS. Observing the
// form lets the percent update even if data is removed.
var Progress = {
  completed:0,
  total_inputs:0,
  percent:0,
  form:'',
  myForm: 'request', // ID of your form
  myProgressBar: 'progressBar', // ID of your Progress Bar, probably inside a container
  percent_ID: 'percent', // ID of a span to easily read the number
  
  init:function(){
    // if the progress indicator is not on the page, don't run the indicator code
    if (!$(Progress.myProgressBar)) { return; }
    Progress.form = $$('#'+Progress.myForm+' input[type=text]', '#'+Progress.myForm+' textarea', '#'+Progress.myForm+' select');
    
    Progress.total_inputs = Progress.form.length;
    Progress.loopThru(Progress.form);
    Progress.form.each(function(s){
      Element.observe(s, 'blur', function(event){
        Progress.loopThru(Progress.form);
        });
    });
  },
  loopThru:function(inputs){
    var temp = 0;
    inputs.each(function(s){
      if(!Progress.isEmpty(s.value)){
        temp++;
      }
    });
    Progress.completed=temp;
    Progress.updatePercent();
  },
  isEmpty:function(input) {
    return input==''?true:false;
  },
  updatePercent:function(){
    Progress.percent = Progress.completed/Progress.total_inputs * 100;
    Progress.percent = sprintf("%2.0u", Progress.percent);
    $(Progress.myProgressBar).setStyle({
      width: Progress.percent+"%"
    });
    $(Progress.percent_ID).innerHTML = Progress.percent+"%";
  }
}

// Makes the ProgressWidget follow along
function initScroll() 
{ 
Event.observe(window, 'scroll', function getScrollXY() { 
	var scrOfX = 0, scrOfY = 0;
  var sidebar = document.getElementById('progressWidget');
  if(!sidebar) { return; }
	if( typeof( window.pageYOffset ) == 'number' ) {
		scrOfY = window.pageYOffset; scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		scrOfY = document.body.scrollTop; scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		scrOfY = document.documentElement.scrollTop; scrOfX = document.documentElement.scrollLeft;
	}
	if( scrOfY > 710 ) {
	sidebar.style.position = 'fixed';
	sidebar.style.top = '20px';
	}
	else if( scrOfY < 710 ) {
  sidebar.style.position = 'relative';
	sidebar.style.top = '';
	}
}) 
}
