$(document).ready(function(){
	OLD.init();
});

var OLD = new Object();
OLD.init = function() { 
	for (var plug in this) {
		if (this[plug].init) { 
			this[plug].init(); 
		}
	}
};

/**********************************************************************

 OLD Tabs 1.0 (jQuery Edition)
 Creates and handles navigational tabs, independently for each section
 of the page. Will automatically do this for any new section added to
 the page that contains navigational links.
 
***********************************************************************/

OLD.Tabs = {
	switchTab : function(clicked) {
		if(clicked.className != 'a-nav selected') {
			var splitHref = clicked.href.split('#');
			var elmid = splitHref[splitHref.length-1];
			var query = clicked.href.split('#')[0].split('&')[0] + "&ajax=1";
			$('#' + elmid).stop();
			$('#' + elmid + ' .selected').removeClass('selected');
			$(clicked).addClass('selected');
			var oldHTML = clicked.innerHTML;
			clicked.innerHTML = oldHTML + '<img class="load" src="folio/img/loading.gif" alt="Loading..."/>';
			
			$('#' + elmid + ' .article').ajaxError(function() {
				$('#' + elmid + ' .article').html('<h3 class="error">An error occured!</h3><p class="error">The server was unable to complete an Ajax request. Try again. If the error persists, <a href="#contact">please tell me about it</a>.</p>');
			}).ajaxComplete(function() {
				$('#' + elmid + ' .load').fadeOut(750, function() {
					clicked.innerHTML = oldHTML;
				});
			}).load(query);
		}
	},
	init : function() {
		var elms = $('.section');
		for(var n=0; n<elms.length; n++) {
			$('#' + elms[n].id + ' .a-nav').click(function() {
				OLD.Tabs.switchTab(this);
				return false;
			});
		}
	}
};

/**********************************************************************

 OLD Forms 1.0
 Handles real-time form validation, feedback messages, and some other
 small things having to do with forms on the page.
 
***********************************************************************/

OLD.Forms = {
	valThis : new Array('#name','#email','#anti-spam'),
	valField : function(field) {
		var error = 0;
		var mailRE = /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/;
		if($(field).val() == '') {
			this.shake(field, "Required field!");
			error++;
		} else if(field == '#anti-spam' && $(field).val().toLowerCase() != 'wet') {
			this.shake(field, "Wrong answer!");
			error++;			
		} else if(field == '#email' && !mailRE.test($(field).val().toUpperCase())) {
			this.shake(field, "Invalid address!");
			error++;			
		}
		if(error == 0) {
			$(field+' + strong').removeClass('error').addClass('success').html('Completed correctly');
		}
		return error;
	},
	shake : function(elmid, msg) {
		var value = 5;
		for(var i=0;i<9;i++) {
			if(i == 8) {
				value = 0;
			}
			$(elmid).animate( { marginLeft: value + "px" }, 30 );
			value = -value;
		}
		$(elmid+' + strong').html(msg).removeClass('success').addClass('error');
	},
	valForm : function() {
		var error = 0;
		for(var i=0;i<this.valThis.length;i++) {
			error = error + this.valField(this.valThis[i]);
		}
		if(error > 0) {
			return false;
		} else {
			return true;
		}
	},
	init : function() {
		$('#contact form').submit(function() {
			return OLD.Forms.valForm();
		});
		for(var i=0;i<this.valThis.length;i++) {
			$(this.valThis[i]).blur(function() {
				OLD.Forms.valField('#'+this.id);
			});
		}
	}
};