/*  File: basic.js          */
/*  Ver:  2008-08-07        */


// extend browseer object to define IE6
$.browser.msie6 = $.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent);


// obfuscate address function
function obfsMail(s,e,h,d,c) {
	//if (e == "" || h == "") { return; }
	if (d == "") { d = "com"; }
	var x = e + "&#x40;" + h + "&#x2E;" + d;
	if (c == "") { c = x; }
	var y = "href=\"ma" + "ilto:" + x + "\"";
	var z = (s == "") ? ("<a " + y + ">" + c + "</a>") : ("<a class=\"" + s + "\" " + y + ">" + c + "</a>");
	return z;
}


// validate email function
function checkEmail(val) {
	var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (regex.test(val)) { return true; }
	else { return false; }
}


// callback for slideshow (update image count)
function onBefore(curr, next, opts, fwd) {
	var count = $(next).find('img').attr('alt');
	var elem = $(next).parent().parent().find('.slide_count');
	$(elem).text(count);
}


// onload routines
jQuery(function($){

	// define page template
	var page_template = $("#main > .page").attr("id");

	// initialize tabs
	$(".tabs_nav").tabs();

	// initialize slideshow defaults
	$.fn.cycle.defaults.fx = 'scrollHorz';
	$.fn.cycle.defaults.speed = 'fast';
	if (page_template == "auto_scroll_page") {
		$.fn.cycle.defaults.timeout =  4000;
		$.fn.cycle.defaults.pause =  1;
		$.fn.cycle.defaults.pauseOnPagerHover =  true;
	} else {
		$.fn.cycle.defaults.timeout = 0;
	}

	// initialize slideshow
	$(".cycle").cycle({ 
		next:   '.slide_next', 
		prev:   '.slide_prev', 
		before:   onBefore
	});

	$('.slide_next, .slide_prev').click( function() {
		$(".cycle").cycle('pause');
	});

	// initialize header navigation active state
	$("#top_nav").find("a").each(function() {
		if (location.href.indexOf(this.href) != -1) {
			$(this).addClass("active");
		}
	});

	// initialize obfuscated addresses
	$(".obfmail").each(function() {
		var $this = $(this);
		var params = $this.attr("rel").split(":");
		if (params[0] == "mail") {
			var addr = obfsMail("",params[1],"rogueterritory","","");
		}
		$this.html(addr);
	});

	// set external links
	$("a[@href^=http]").each(function () {
		if(this.href.indexOf(location.hostname) == -1) {
			$(this).attr("target", "_blank");
		}
	});
	$("#side_respect a[@href^=http]").each(function () {
		if(this.href.indexOf(location.hostname) == -1) {
			$(this).addClass("external");
		}
	});

	// pre-populate form fields
	$('#register_form .pre_pop').each(function() {
		var label = $(this).attr('title');
		$(this).val(label);
		$(this).focus(function() {
			var tmp_val = $(this).val();
			if (tmp_val == label) {
				$(this).val('');
			}
		});
		$(this).blur(function() {
			var tmp_val = $(this).val();
			if (tmp_val == '' || tmp_val == null) {
				$(this).val(label);
			}
		});
	});

	// form validation
	$('#register_form #submit').click(function() {
		var submit = true;
		var this_form = '#' + $(this).parents('form').attr('id');
		// reset errors
		$(this_form).find('.error').hide();
		// check for errors
		$(this_form).find('.required').each(function() {
			var init_val = $(this).attr('title');
			if ($(this).val() == '' || $(this).val() == init_val) {
				submit = false;
				$(this).next('.error').fadeIn(400);
			}
			if ($(this).attr('name') == 'Email') {
				check_email = checkEmail($(this).val());
				if (!check_email) {
					submit = false;
					$(this).next('.error').fadeIn(400);
				}
			}
		});
		return submit;
	});

	// clear error messages upon blur
	$('#register_form .required').blur(function() {
		if ($(this).val() != '') {
			$(this).next('.error').fadeOut(400);
		}
	});

});


