function validateLogin() {
	var f = ['user', 'pass'];
	var m = ['userMessage', 'passMessage'];
	var c = 0;

	for(i=0; i < f.length; i++) {
		var field = $(f[i]);
		var mess = $(m[i]);
		if(!field.value.length) {
			new Effect.Pulsate(field);
			mess.show();
			c++;
		}
	}

	if(c>0) {
		return false;
	} else {
		for(i=0; i < f.length; i++) {
			var mess = $(m[i]);
			mess.hide();
		}
		return true;
	}
}


function isUrl(s) {
	var regexp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(s);
}

function validateAdmin() {
	var f = ['username', 'firstname', 'lastname', 'pass'];
	var c = 0;
	for(i=0; i < f.length; i++) {
		var field = $(f[i]);
		if(!field.value.length) {
			new Effect.Pulsate(field);
			c++;
		}
	}

	if (c > 0) {
		return false;
	} else {
		return true;
	}
}

function validateGenres() {
	var g = $('genrename');
	if (!g.value.length) {
		new Effect.Pulsate(g);
		return false;
	}

	return true;
}

function validateFormat() {
	var f = ['formatname', 'shortname'];
	var c = 0;
	for(i=0; i < f.length; i++) {
		var field = $(f[i]);
		if(!field.value.length) {
			new Effect.Pulsate(field);
			c++;
		}
	}

	if (c > 0) {
		return false;
	} else {
		return true;
	}
}

function validateProducers() {
	var e = $('email');
	var p = $('pass');

	var n = $('name');

	if (!n.value.length) {
		new Effect.Pulsate(n);
		return false;
	}

	if((e.value.length) && (!p.value.length)) {
		new Effect.Pulsate(p);
		return false;
	}

	return true;
}

function validateGenreSlider() {
	var f = ['genrename', 'percentshare'];
	var p = $('percentshare');
	var curTotal = $('jsTotalPercent');
	var newTotal = 0;
	var max = 0;

	var c = 0;
	for(i=0; i < f.length; i++) {
		var field = $(f[i]);
		if(!field.value.length) {
			new Effect.Pulsate(field);
			c++;
		}
	}

	newTotal = parseFloat(curTotal.value) + parseFloat(p.value);
	if (newTotal > 100) {
		max = parseFloat(p.value) + (100 - newTotal);
		alert("The maximum you can enter is " + max);
		p.value = max;
		c++;
	}

	if (c>0) {
		return false;
	} else {
		return true;
	}
}

function validateOverall() {
	var a = ['title', 'catNo', 'collDesc'];
	var c = 0;
	for(i = 0; i < a.length; i++) {
		var field = $(a[i]);
		if (!field.value.length) {
			new Effect.Pulsate(field);
			c++;
		}
	}

	if(c>0) {
		return false;
	} else {
		return true;
	}
}

function validateSamplePack() {
	var a = ['gbp_retail', 'euro_retail', 'usd_retail','split' , 'filename'];
	var c = 0;
	for(i = 0; i < a.length; i++) {
		var field = $(a[i]);
		if(!field.value.length) {
			new Effect.Pulsate(field);
			c++;
		}
	}

	if(c>0) {
		return false;
	} else {
		return true;
	}
}

function validateAdminSearch() {
	var f = $('searchterm');
	if(f.value.length < 3) {
		new Effect.Pulsate(f);
		f.value = "at least 3 letters";
		return false;
	} else {
		return true;
	}
}

function clearField(f) {
	var fld = $(f);
	f.value = "";
}

function storeEmailAddress() {
	var e = $('newsletterEmailAddress');

	var handlerFunc = function(t) {
		var f = $('newsletterFormR');
		if(t.responseText) {
			f.innerHTML = "Thank you for signing up";
			e.value = "";
		}
	}

	if ((!e.value) || (e.value=="enter your email here") || (!isEmail(e.value))) {
		new Effect.Pulsate(e);
	} else {

		var u = "/ajaxEmailAgg.php";

		new Ajax.Request(u, {method:"post", parameters: "email="+e.value, onSuccess:handlerFunc });
	}
}

function validateRegister() {
	var mand = ['firstname', 'lastname', 'emailaddress', 'emailaddressCheck', 'password', 'repeatPassword', 'captcha', 'address1', 'city', 'state', 'postcode'];
	c=0;
	var e = $('emailaddress');
	var ec = $('emailaddressCheck');
	var ecr = $('emailaddressCheckR');

	var p = $('password');
	var rp = $('repeatPassword');
	var rpr = $('repeatPasswordR');

	var t = $('terms');
	var tr = $('termsR');

	if(!t.checked) {
		c++;
		new Effect.Pulsate(t);
		tr.show();
	} else {
		tr.hide();
	}

	for(i=0; i<mand.length; i++) {
		var f = $(mand[i]);
		var r = $(mand[i]+'R');
		if (!f.value) {
			new Effect.Pulsate(f);
			r.show();
			c++;
		} else {
			r.hide();
		}
	}

	//	Check email addresses match.
	if (e.value.toLowerCase()!=ec.value.toLowerCase()) {
		new Effect.Pulsate(e);
		new Effect.Pulsate(ec);
		ecr.show();
		c++;
	} else {
		ecr.hide();
	}

	//	check the password fields match
	if (p.value!=rp.value) {
		new Effect.Pulsate(p);
		new Effect.Pulsate(rp);
		rpr.innerHTML = "Please ensure that your passwords match";
		rpr.show();
		c++;
	} else {
		rpr.hide();
	}

	if (c>0)	return false;
	else 		return true;
}

function validateChangeDetails() {
	var mand = ['firstname', 'lastname', 'password', 'email', 'emailC', 'repeatPassword', 'address1', 'city', 'state', 'postcode'];
	c=0;

	var p = $('password');
	var rp = $('repeatPassword');
	var rpr = $('repeatPasswordR');

	var e = $('email');
	var ec = $('emailC');
	var ecr = $('emailCR');

	for(i=0; i<mand.length; i++) {
		var f = $(mand[i]);
		var r = $(mand[i]+'R');
		if (!f.value) {
			new Effect.Pulsate(f);
			r.show();
			c++;
		} else {
			r.hide();
		}
	}

	//	check the email fields match
	if (e.value.toLowerCase()!=ec.value.toLowerCase()) {
		new Effect.Pulsate(e);
		new Effect.Pulsate(ec);
		ecr.innerHTML = "Please ensure that your email addresses match";
		ecr.show();
		c++;
	} else {
		ecr.hide();
	}

	//	check the password fields match
	if (p.value!=rp.value) {
		new Effect.Pulsate(p);
		new Effect.Pulsate(rp);
		rpr.innerHTML = "Please ensure that your passwords match";
		rpr.show();
		c++;
	} else {
		rpr.hide();
	}

	if (c>0)	return false;
	else 		return true;
}

function isEmail(email) {
	AtPos = email.indexOf("@")
	StopPos = email.lastIndexOf(".")
	Message = ""

	if (email == "") {
		return false;
	}

	if (AtPos == -1 || StopPos == -1) {
		return false;
	}

	if (StopPos < AtPos) {
		return false;
	}

	if (StopPos - AtPos == 1) {
		return false;
	}

	return true;
}


function checkEmailaddress(email) {
	var u = "checkEmailAddress.php";
	var f = $('emailaddressR');
	var c = $('emailCheck');
	var sb = $('submitButton');

	var handlerFunc = function(t) {
		if (t.responseText=="okay") {
			//	email address was NOT found
			c.value = "1";
			f.hide();
		} else {
			//	email address was found
			f.innerHTML = "Email address already used. Please use <a href=\"/password-reminder\">the forgotten password facility</a> to reset your password.";
			c.value = "0";
			sb.disabled = "disabled";
			f.show();
		}
	}

	if (email.value.length) {
		new Ajax.Request(u, {method:"post", parameters: "emailaddress="+email.value, onSuccess:handlerFunc });
	}
}

function activateCollection(collid, type) {
	var u = "activateCollectionAjax.php";
	var l = $('collid_'+collid);
	var i = $('indic_'+collid);
	var a = $('act_'+collid);

	var handlerFunc = function(t) {
		if (t.responseText=="active") {
			i.src = "/img/s/green_led.gif";
			a.innerHTML = "<a href=\"#\" onclick=\"activateCollection("+collid+", 'deactivate');\" title=\"Deactivate this collection\" id=\"act_"+collid+"\">Deactivate</a>";

		} else if (t.responseText=="inactive") {
			i.src = "/img/s/red_led.gif";
			a.innerHTML = "<a href=\"#\" onclick=\"activateCollection("+collid+", 'activate');\" title=\"Activate this collection\" id=\"act_"+collid+"\">Activate</a>";

		} else {
		}
	}

	if (collid) {
		new Ajax.Request(u, {method:"post", parameters: "collid="+collid+"&type="+type, onSuccess:handlerFunc });
	}
}


function validateUserLogin() {
	var e = $('emailaddress');
	var p = $('password');
	var c=0;
	if(!e.value) {
		new Effect.Pulsate(e);
		e.focus();
		c++;
	}

	if(!p.value) {
		new Effect.Pulsate(p);
		p.focus();
		c++;
	}

	if (c>0)	return false;
	else 		return true;
}

function validateProducerLogin() {
	var e = $('email');
	var p = $('passwd');
	var c=0;
	if(!e.value) {
		new Effect.Pulsate(e);
		e.focus();
		c++;
	}

	if(!p.value) {
		new Effect.Pulsate(p);
		p.focus();
		c++;
	}

	if (c>0)	return false;
	else 		return true;
}


function validateReminder() {
	var e = $('emailaddress');
	if (!e.value) {
		new Effect.Pulsate(e);
		e.focus();
		return false;
	} else {
		return true;
	}
}

function purchaseItem(inputForm) {
	var u = "/purchase.php";
	var basket = $('cartBox');
	var cartItems = $('cartItems');
	var cartPrice = $('cartPrice');

	var handlerFunc = function(t) {
		var r = t.responseText;
		var f = new Function("return " + r);
		var pur = f();

		if(pur.message=="added") {
			new Effect.Highlight(basket, {startcolor:'#575757', endcolor:'#141414'});
			cartItems.innerHTML = pur.cartItemEcho;
			cartPrice.innerHTML = pur.cartPrice;

			if ($('shoppingCartBody')) {
				var tr = Builder.node('tr', {id:'bid_'+pur.basketid}, [
					Builder.node('td', ''),
					Builder.node('td', [Builder.node('img', {src: pur.ps_filename })]),
					Builder.node('td', pur.title),
					Builder.node('td', pur.name),
					Builder.node('td', pur.price),
					Builder.node('td', pur.shortname),
					Builder.node('td', [Builder.node('div', { className:'delete'}, [Builder.node('a', {'href': pur.deleteLink}, 'delete')])])
					]);
				var cdp = $('cartDisplayPrice');
				cdp.innerHTML = pur.cartPrice;
				$('shoppingCartBody').appendChild(tr);
			}
		}
	}

	new Ajax.Request(u, {method:"post", onSuccess:handlerFunc, parameters:Form.serialize(inputForm)});
}

function sendInvite(pid) {
	var u = "producerInviteSend.php";
	var l = $('si_'+pid);

	var handlerFunc = function(t) {
		var r = t.responseText;

		if(r=="okay") {
			new Effect.Highlight(l);
			l.innerHTML = "Invite Sent";
		}
	}

	new Ajax.Request(u, {method:"post", onSuccess:handlerFunc, parameters:"pid="+pid});
}

function purchasePack(smplid) {
	var u = "/purchase.php";
	var basket = $('cartBox');
	var cartItems = $('cartItems');
	var cartPrice = $('cartPrice');

	alert("here");

	var handlerFunc = function(t) {
		var r = t.responseText;
		var f = new Function("return " + r);
		var pur = f();

		if(pur.message=="added") {
			new Effect.Highlight(basket, {startcolor:'#575757', endcolor:'#141414'});
			cartItems.innerHTML = pur.cartItemEcho;
			cartPrice.innerHTML = pur.cartPrice;
		}
	}

	new Ajax.Request(u, {method:"post", onSuccess:handlerFunc, parameters:"smplid="+smplid});

}

function priceChange(smplid) {
	var u = "priceChangeAjax.php";
	var e = $('echo_'+smplid);
	var d = $('smpl_'+smplid);
	var inputform = $('pc_'+smplid);

	var handlerFunc = function(t) {
		var r = t.responseText;
		var f = new Function("return " + r);
		var pc = f();

		if (pc.message=="changed") {
			new Effect.Highlight(d);
			e.innerHTML = "Price Changed";
		}
	}

	new Ajax.Request(u, {method:"post", onSuccess:handlerFunc, parameters:Form.serialize(inputform)});
}

function extendExpiry(dlid, userid) {
	var u = "extendExpiryAjax.php";
	var et = $('dlid_'+dlid);

	var handlerFunc = function(t) {
		var r = t.responseText;

		if (r.length) {
			new Effect.Highlight(et);
			et.innerHTML = r;
		}
	}

	new Ajax.Request(u, {method:"post", onSuccess:handlerFunc, parameters:"dlid=" + dlid + "&userid=" + userid});
}


function validateSearch() {
	st = $('searchBox');

	if ((st.value.length < 4) || (st.value == "Use more than 3 letters") || (st.value == "Search the site here")) {
		st.value = "Use more than 3 letters";
		new Effect.Pulsate(st);
		return false;
	} else {
		return true;
	}
}

function validateBanner() {
	bu = $('bannerurl');
	bt = $('bannertitle');
	c = 0;

	if (!bt.value) {
		c++;
		new Effect.Pulsate(bt);
	}
	if ((!bu.value) || (!isUrl(bu.value))) {
		c++;
		new Effect.Pulsate(bu);
	}

	if (c>0)	return false;
	else 		return true;
}

function validateFlashRot() {
	fu = $('flashurl');
	fn = $('flashname');
	c = 0;

	if (!fn.value) {
		c++;
		new Effect.Pulsate(fn);
	}
	if ((!fu.value) || (!isUrl(fu.value))) {
		c++;
		new Effect.Pulsate(fu);
	}

	if (c>0)	return false;
	else 		return true;
}

function validateUserAdmin() {
	var mand = ['firstname', 'lastname', 'address1', 'city', 'state', 'postcode'];
	c=0;

	for(i=0; i<mand.length; i++) {
		var f = $(mand[i]);
		if (!f.value) {
			new Effect.Pulsate(f);
			c++;
		}
	}

	if (c>0)	return false;
	else 		return true;
}

function validateReview() {
	var mand = ['reviewtitle', 'review'];
	c=0;

	for(i=0; i<mand.length; i++) {
		var f = $(mand[i]);
		if (!f.value) {
			new Effect.Pulsate(f);
			c++;
		}
	}

	if (c>0)	return false;
	else 		return true;

}

function validateDemoSamples() {
	var d = $('demotitle');
	if(!d.value) {
		new Effect.Pulsate(d);
		return false;
	} else {
		return true;
	}
}

function validateContactUs() {
	var mand = ['captcha', 'email', 'emailcheck', 'message'];
	var e = $('email');
	var ec = $('emailcheck');
	c=0;

	for(i=0; i<mand.length; i++) {
		var f = $(mand[i]);
		var r = $(mand[i]+'R');
		if (!f.value) {
			new Effect.Pulsate(f);
			r.show();
			c++;
		} else {
			r.hide();
		}
	}

	if (e.value.toLowerCase()!=ec.value.toLowerCase()) {
		var r = $('emailcheckR');
		r.innerHTML = "Your email addresses did not match.  Please check and try again.";
		new Effect.Pulsate(e);
		new Effect.Pulsate(ec);
		r.show();
		c++;
	}

	if (c>0)	return false;
	else 		return true;
}

function buyOver(elt, cls) {
	var e = $(elt);
	e.className = "buyOver " + cls;
}

function buyOut(elt, cls) {
	var e = $(elt);
	e.className = "buy " + cls;
}

function showReviewWindow(type, id, title) {

	var reviewUrl = '';
	switch(type) {
		case 'single' :
			reviewUrl = '/reviewMore.php?reviewid=' + id;
			break;
		case 'all' :
			reviewUrl = '/reviewMore.php?collid=' + id;
			break;
	}

	var win = new Window({className: "s2s", title: title, maxWidth: 1000, maxHeight: 750, width: 700, height: 525, recenterAuto: true, url: reviewUrl, showEffectOptions: {duration:1.5}});
	win.showCenter();
}
