$.fn.wait = function(time, type) {
	time = time || 1000; type = type || "fx";
	return this.queue(type, function() {
		var self = this; setTimeout(function() {$(self).dequeue();},time);
	});
};

function stripmove(inc) {
	strippos += inc;
	if (strippos < 0 || strippos > stripmax) {strippos -= inc; return;}
	$('#productStripList').animate({left: '+='+(inc * -220)}, 1000, 'swing');
	if (strippos == 0) {$('#scarr-left').fadeOut(500);}
	if (strippos == 1 && inc > 0) {$('#scarr-left').fadeIn(500);}
	if (strippos == stripmax - 1 && inc < 0) {$('#scarr-right').fadeIn(500);}
	if (strippos == stripmax) {$('#scarr-right').fadeOut(500);}
}

function startup() {
	stripmax = ($('#productStrip li').size()) - 4;
	if (stripmax > 0) {
		$('#productStrip').before('<img src="media/misc/scarr-left.png" id="scarr-left"><img src="media/misc/scarr-right.png" id="scarr-right">');
		$('#scarr-left').click(function() {stripmove(-1);}).hide();
		$('#scarr-right').click(function() {stripmove(+1);}).hide().wait(500).fadeIn(500);
	}
}

var strippos = 0;
var stripmax = 0;
window.onload = startup;

function trim(string) {
	return replace(/^\s+|\s+$/g,'');
	}
	
var request;
var nameRegex = /^[a-z ',\.]+$/i;
var emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
var jobRegex = /^[1-9][0-9]*$/;

function sendSubscriptionRequest() {
	var name = document.subscribe.name.value.trim();
	if(name == '') {
		alert('Name field cannot be empty!');
		return false;
		}

	if(!name.match(nameRegex)) {
		alert("'" + name + "' is not a valid name!");
		return false;
		}
		
	var email = document.subscribe.email.value.trim();
	if(email == '') {
		alert('Email field cannot be empty!');
		return false;
		}

	if(!email.match(emailRegex)) {
		alert("'" + email + "' is not a valid email address!");
		return false;
		}
		
	request = new XMLHttpRequest();
	if (request == null) {
		// alert ("Your browser does not support XMLHTTP!");
		return;
		} 
			
	var query = 'name=' + name + '&email=' + email;
	var url = "subscribe.php";
	request.open("POST", url, true);
	request.onreadystatechange = subscriptionResponse;
	request.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
	request.send(query);
	}
	
function subscriptionResponse() {
	if((request.readyState == 4) && (request.status == 200)) {
		if(request.responseText == 'OK') {
			document.subscribe.name.value = '';
			document.subscribe.email.value = '';
			alert('Your request was received. You will get a confirmation email to confirm your subscription shortly.');
			}
		else {
			alert(request.responseText + 'An error occured while processing your request. Please try later. We apologize for this inconvenience.');
			}
		}
	}
	
function checkTrackValues() {
	var name = document.track.name.value.trim();
	if(name == '') {
		alert('Name field cannot be empty!');
		return false;
		}

	if(!name.match(nameRegex)) {
		alert("'" + name + "' is not a valid name!");
		return false;
		}
		
	var job = document.track.job.value.trim();
	if(job == '') {
		alert('Job number cannot be empty!');
		return false;
		}

	if(!job.match(jobRegex)) {
		alert("'" + job + "' is not a valid job number!");
		return false;
		}
		
	return true;
	}
	


