function scroller(x, y) {
	var mode = 'expoout';
	oldXY = getScrollXY();
	var lengthY = oldXY[1] - y;
	var lengthX = oldXY[0] - x;
	if (lengthY + lengthX == 0) {
		return false;
	}
	var length = 150;
	var smooth=length / 20;
//	alert(smooth);
	var blah = new Array;
	var al = oldXY[0] + ', ' + oldXY[1] + "\n"+ x + ', ' + y + "\n";
	var counter = 0;
	for (var i = smooth; i <= length; i+=smooth) {
		var newY = (y == oldXY[1]) ? 
			y :
			(y < oldXY[1]) ? 
				oldXY[1] - easing(i, 0, oldXY[1] - y, length, mode) :
				oldXY[1] + easing(i, 0, y - oldXY[1], length, mode);
		var newX = (x == oldXY[0]) ? 
			x :
			(x < oldXY[0]) ? 
				oldXY[0] - easing(i, 0, oldXY[0] - x, length, mode) :
				oldXY[0] + easing(i, 0, x - oldXY[0], length, mode);

		al += (newX + ', '+ newY + "\n");
		blah[counter++] = setTimeout('window.scrollTo(' + newX + ',' + newY + ');', i);
	}
	// alert(al);
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement &&
      ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function formScript() {
	var x = document.getElementById('mainForm');
	document.getElementById('rsb').onclick = function() {
		scroller(0,380);
	}
	x.submit.onclick = function() {
		var notfields = x.notfields.value.toLowerCase();
		var extras = 0;
		var needed = new Array();
		var z = x.elements;
		for (var i = 0; i < (z.length - extras - 2); i++) {
			if (z[i].name) {
				var isneeded = true;
				// alert(z[i].name + ':' + z[i].name.match(/email/i));
				// alert(z[i].name + ':' + !z[i].value.match("[^ ]+@[^ ]+\.[^ ]+"));
				if (notfields.match(z[i].id.toLowerCase())) isneeded = false;
				if (isneeded && !z[i].value) {
					z[i].parentNode.className="needed";
					needed.push(z[i].name);
				} else if (z[i].name.match(/email/i) && !z[i].value.match("^[^ ]+@[^ ]+\.[^ ]+$")) {
					z[i].parentNode.className="needed";
					needed.push(z[i].name);
				}
				else {
					z[i].parentNode.className="";
				}
			}
		}
		// alert(training.length);
	
			document.getElementById('info_error').style.display = (needed.length > 0) ? 'block' : 'none';

		// alert(document.getElementById('info_error').style.display);
	
		if (needed.length > 0) {
	
/*
			var top = (document.getElementById('info_error').offsetTop > 0) ? 
				document.getElementById('info_error').offsetTop :
				document.getElementById('other_error').offsetTop;
	
	//		alert(top);
*/
			scroller(0,document.getElementById('info_error').offsetTop + 200);
	
		} 
		if (needed.length > 0)
			return false;
	}
}