var sideNav, sideNavH, sideNavY, stageH, bannerH, pageO, footerO, loginForm, msg;

jq(document).ready(function(){
	// make the sideNav scroll with the page
	sideNav = jq('.columnL');
	if(sideNav.length > 0){
		stageH = jq(window).height();
		sideNavH = sideNav.height();
		sideNavY = sideNav.offset().top;
		bannerH = jq('.banner').height();
		jq(window).bind('scroll', scrollMenu );
		jq(window).bind('resize', function(){ stageH = jq(window).height(); } );
	}
	
	// login page
	loginForm = jq('#loginForm');
	if(loginForm.length > 0){
		loginForm.find('input').first().focus();
	}
});

function scrollMenu($e){
	pageO = jq(window).scrollTop();
	if(footerO == undefined){ footerO = Math.round(jq('.footer').offset().top) }
	if(pageO > sideNavY){
		if(pageO+sideNavH <= footerO){
			var offsetY = pageO - sideNavY;
			sideNav.css('top', offsetY);
		}
	}else{ sideNav.css('top', 0); }
}

// makes sure there is some kind of value in a forms input fields
function simpleVerify($form){
	var f = jq($form);
	var inputs;
	var errors = [];
	var subBtn = f.find("[type='submit']:focus");
	var action = (subBtn.attr('name') != undefined) ? '&'+subBtn.attr('name')+'='+encodeURIComponent( subBtn.val() ) : '';
	
	// If there are required items, use those only, otherwise check all inputs
	inputs = f.find('input.required, textarea.required, select.required');
	if(inputs.length == 0){ inputs = f.find('input, textarea'); }
	
	for(var i=0; i<inputs.length; i++){
		var curr = jq(inputs[i]);
		curr.removeClass('error');
		if(curr.val() == ''){ 
			curr.addClass('error').bind('focus', removeErrorState);
			errors.push(curr);
		}
	}
	if(errors.length == 0){
		var data = f.serialize();
		var files = f.find('input[type="file"]');
		
		if(files.length > 0){
			return true;
		}else{
			jq.ajax({
				type:'GET', url: f.attr('action'), data: f.serialize()+action,
				success: function(data){
					data = eval(data);
					if(msg == undefined){ subBtn.before('<div class="msg"></div>'); msg = f.find('.msg'); }
					if(data){
						msg.html(data.msg);
						if(data.success){
							msg.addClass('success');
							if(data.location){ location = data.location; }
						}else{ msg.addClass('error'); }
					}
				}	
			});
		}
	}
	return false;
}
function removeErrorState(e){
	var i = jq(this);
	i.removeClass('error').unbind('focus', removeErrorState);
}
