// sigh...

function initformValidate()
{
	
	var _holder = document.getElementById("validateForm");
	var _step = [];
	var _btnNext = [];
	var _btnPrev = [];
	var _valid = true;
	var _curIndex=0;

	_step = findEl("div","stepValidate");
	_btnNext = findEl("a","btnNextform");
	_btnPrev = findEl("a","btnPrevform");
	
	for(var i=0; i<_btnNext.length; i++){
		(function (){
			var _steps = _step[i];
			var _stepNext = _step[i+1];
			_btnNext[i].onclick = function (){
			  
			  // if it's not the last step
				if (this.className.indexOf("submit")!=-1) {
					_holder.submit();
					_steps.className = _steps.className.replace("active","");
					_stepNext.className += " active";
				}
				this.className +=' clicked';
				_curIndex = stepIndex();
				
				// validate the first step
				if (_steps.className.indexOf("checkValid")!=-1) {
					_valid = vilidation(_steps);
				}
				if (_valid) {
				  if (this.id == 'presubmit') {

            // pre-capture first page of form data
            var precaptureFormId = $("#validateForm input#precapture_form_id").val();
            var firstName = $("#validateForm input#first_name").val();
            var lastName = $("#validateForm input#last_name").val();
            var email = $("#validateForm input#email").val();
            var phone = $("#validateForm input#phone").val();
            var involvement = $('#validateForm input[name=involvement]:checked').val();

            var html = $.ajax({
              type: "POST",
              url: "/form_helpers/ajax.precapture.php",
              data: "precapture_form_id=" + precaptureFormId + "&first_name=" + firstName + "&last_name=" + lastName + "&email=" + email + "&phone=" + phone + "&involvement=" + involvement,
              async: false,
              success: function(msg){
                // $('#precapture-result').html(msg).show();
              }
            });
          }
					_steps.className = _steps.className.replace("active","");
					_stepNext.className += " active";
          // document.scroll('0px','0px');
          $('html,body').animate({scrollTop: 0}, 0);
				}
				return false;
			}
		})(i);
	}

	if (window.location.href.indexOf("#step")!=-1) {
		var _num = window.location.hash.substr(5);
		if (_num>_step.length) _num=1;
		for(var i=0; i<_step.length; i++) {
			_step[i].className = _step[i].className.replace("active","");
		}
		_step[_num-1].className += " active";
	}

	for(var i=0; i<_btnPrev.length; i++) {
		(function (){
			var _steps = _step[i+1];
			var _stepPrev = _step[i];
			_btnPrev[i].onclick = function (){
				_steps.className = _steps.className.replace("active","");
				_stepPrev.className += " active";
        // document.scroll('0px','0px');
        $('html,body').animate({scrollTop: 0}, 0);
				return false;
			}
		})(i);
	}

	function findEl(Tag,tagClassName,holder){
		var _holder = document;
		if (holder != null) _holder = holder;
		var _tmp=[];
		var _cnt = 0;
		var _fnmas= [];
		_tmp= _holder.getElementsByTagName(Tag);
		for (var i=0; i<_tmp.length; i++) {
			if (_tmp[i].className.indexOf(tagClassName)!=-1) {
				_fnmas[_cnt++]=_tmp[i];
			}
		}
		return _fnmas
	}
	function stepIndex(){
		for (var i=0; i<_btnNext.length; i++) {
			if (_btnNext[i].className.indexOf("clicked")!=-1) {
				_btnNext[i].className =_btnNext[i].className.replace('clicked','');
				return i;
			}
		}
	}
	function vilidation(_holder){
		var _bool=true;
		var _inputs = _holder.getElementsByTagName("input");
		var _emailReg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		
		for (var i=0; i<_inputs.length; i++) {
			if ((_inputs[i].className.indexOf("required")!=-1)){
				if(_inputs[i].value =="" || _inputs[i].value == _inputs[i]._val){
					if ((_inputs[i].parentNode.parentNode.className.indexOf("erorHolder")==-1)) _inputs[i].parentNode.parentNode.className += " erorHolder";
					_bool =false;
				}
				else{
					_inputs[i].parentNode.parentNode.className = _inputs[i].parentNode.parentNode.className.replace("erorHolder","");
					if ((_inputs[i].className.indexOf("email")!=-1)){
						if (!_emailReg.test(_inputs[i].value)){
							_bool =false;
							if ((_inputs[i].parentNode.parentNode.className.indexOf("erorHolder")==-1)) _inputs[i].parentNode.parentNode.className += " erorHolder";
						}
					}
				}
			}
		}
		if (!_bool) findEl("strong","error", _holder)[0].style.display = "block";
		else findEl("strong","error", _holder)[0].style.display = "none";
		return _bool;
	}
}


if (window.addEventListener) {
		window.addEventListener("load", initformValidate, false);
	}
else if (window.attachEvent) {
		window.attachEvent("onload", initformValidate);
	}
