// JavaScript Document

var kilos_array = new Array(0,10,20,40);

var tonnes_array = new Array(0,1,2,3,4,5,6,7,8,9,10);

var pp = new String("Price per ");

var potatoes = new Array("Pink Fir Apple","Charlotte","Nicola","Bell De Fontenay","White Duke of York","Red Duke of York","Ratte/Aspeges");

<!-- next line shows price per tonne in pounds                                    	 -->
var potato_tonne_pr = new Array("0.00","0.00","0.00","0.00","0.00","0.00","0.00");

<!-- next line shows price per kilo in pence                                    	 -->
var potato_kilo_pr = new Array("1.00","0.50","1.00","1.00","0.50","0.50","1.50");

<!-- Handling is the handling charge in pounds per order for 10 kilo quantities		 -->
<!-- pallet_base is the unit cost in pounds per pallet for tonne weights			 -->
var handling = 10.00;
var pallet_base = 0.00;

<!-- // *********************************************************** -->

function StripSpacesFromEnds(s)
{
	while((s.indexOf(' ',0) == 0) && (s.length > 1))
	{
		s = s.substring(1,s.length);
	}
	while((s.lastIndexOf(' ') == (s.length - 1) && (s.length > 1)))
	{
		s = s.substring(0,(s.length - 1));
	}
	if((s.indexOf(' ',0) == 0) && (s.length == 1)) s = '';
	return s;
}

function IsItPresent(s,mess_string)
{
	s = StripSpacesFromEnds(s);
	if(s.length) return s;
	if (mess_string.substring(0,1) == 'x')
	{
		mess_string = mess_string.substring(2,mess_string.length);
	}
	// capitalise first letter of mess_string
	var ts = new String(mess_string.substring(0,1));
	ts = ts.toUpperCase();
	mess_string = ts + mess_string.substring(1,mess_string.length);
	// now strip underscore from text field IDs
	// passing in through mess_string
	var i = mess_string.indexOf('_',0);
	while(i > -1)
	{
		mess_string = mess_string.substring(0,(i)) + ' ' + mess_string.substring((i + 1),mess_string.length);
		i = mess_string.indexOf('_',0);
	}
	if (mess_string == 'Realname') mess_string ="Name";
	if (mess_string == 'Your email address') mess_string ="your email address";
	alert('Please enter ' + mess_string + '.');
	return '';
}

function Capitalise(s_name,s_field)
{
	// Capitalise first letter in first word
	s_name = s_name.toLowerCase();
	var f = new String(s_name.substring(0,1));
	f = f.toUpperCase();
	s_name = s_name.substring(1,s_name.length);
	s_name = s_name.toLowerCase();
	s_name = f + s_name;

	// Capitalise first letter in next word
	i = s_name.indexOf(' ',0);
	while(i > 0)
	{
		var f = new String(s_name.substring(i+1,i+2));
		f = f.toUpperCase();
		if(i > 0) s_name = s_name.substring(0,i+1) + f + s_name.substring(i+2,s_name.length);
		i = s_name.indexOf(' ',i+2);
	}

	if(s_field == 'realname')
	{
		document.order.realname.value = s_name;
		return true;
	}
	if(s_field == 'x_address_1')
	{
		document.order.x_address_1.value = s_name;
		return true;
	}
	if(s_field == 'x_address_2')
	{
		document.order.x_address_2.value = s_name;
		return true;
	}
	if(s_field == 'x_town')
	{
		document.order.x_town.value = s_name;
		return true;
	}
}

function CheckName(s_name,mess_string)
{
	s_name = IsItPresent(s_name,mess_string);
	if(! s_name) return false;
	else
	{
		if(mess_string == 'realname') document.order.realname.value = s_name;
		if(mess_string == 'x_address_1') document.order.x_address_1.value = s_name;
		if(mess_string == 'x_town') document.order.x_town.value = s_name;
		return true;
	}
}

function CheckPostcode(s_name)
{
	s_name = IsItPresent(s_name,'Post Code');
	if(! s_name) return false;
	var i = s_name.indexOf('  ',0);
	while(i > -1)
	{
		s_name = s_name.substring(0,(i + 1)) +
			s_name.substring((i + 2),s_name.length);
		i = s_name.indexOf('  ',0);
	}
	s_name = s_name.toUpperCase();
	var s = new String(s_name.substring(0,1));
	s = s.toUpperCase();
	s_name = s + s_name.substring(1,s_name.length);
	i = s_name.indexOf(' ',0);
	if(i == (s_name.length - 1)) i = -1;
	var ts = new String("");
	var j = 0;
	while(i > -1)
	{
		i++;
		j = i + 1;
		s = s_name.substring(i,j);
		s = s.toUpperCase();
		ts = '';
		if(i > 0) ts = s_name.substring(0,i);
		s_name = ts + s + s_name.substring(j,s_name.length);
		i = s_name.indexOf(' ',j);
		if(i == (s_name.length - 1)) i = -1;
	}
	document.order.x_postcode.value = s_name;
	return true;
}

function CheckPhone(s_phone)
{
	s_phone = IsItPresent(s_phone,'telephone no');
	if((! s_phone) || (s_phone.substring(0,1) != '0'))
	{
		alert('The tel no "' + s_phone + '" is not valid.');
		return false;
	}
	return true;
}

function CheckEmail(s_email)
{
	s_email = IsItPresent(s_email,'your email address');
	if(! s_email) return true;
	var i = s_email.indexOf(' ',0);
	while(i > -1)
	{
		s_email = s_email.substring(0,i) + s_email.substring((i + 1),s_email.length);
		i = s_email.indexOf(' ',0);
	}
	document.order.email.value = s_email;
	if((s_email.length < 6) ||
	   (s_email.indexOf('@',0) < 1) ||
	   (s_email.lastIndexOf('@') != s_email.indexOf('@',0)) ||
	   (s_email.lastIndexOf('@') > (s_email.length - 5)) ||
	   (s_email.lastIndexOf('.') > (s_email.length - 3)) ||
	   (s_email.lastIndexOf('.') < (s_email.length - 4)) ||
	   (s_email.indexOf('..',0) > -1) ||
	   (s_email.indexOf('@.',0) > -1) ||
	   (s_email.indexOf('.@',0) > -1) ||
	   (s_email.indexOf(',',0) > -1))
	{
		alert('The email address "' + s_email + '" is not valid.');
		return false;
	}
	return true;
}

function changeVarietyProp()
{
	document.order.x_total.value = '';
	document.order.x_del.value = '';
	document.order.x_final.value = '';
	document.order.x_price.value = '';
	document.order.x_units.value = '';
	document.order.x_unit_pr.value = '';
}

function unitChange()
{
	document.order.x_unit_pr.value = '';
	document.order.x_price.value = '';
	document.order.x_total.value = '';
	document.order.x_del.value = '';
	document.order.x_final.value = '';
<!-- x_tonnes displays message 'Please contact us' when tonnes is selected -->	
	document.order.x_tonnes.value = ''

	var choice = document.order.x_variety.selectedIndex;
	
	if(choice == '') return false
	else
	{
	  if(document.order.x_units.value == 'kilos')
	  {
		  document.order.x_unit_pr.value = pp + 'kilo';
		  document.order.x_price.value = '£' + potato_kilo_pr[choice-1];
		  var arr = kilos_array;
		  document.order.x_tonnes.value = '';
	  }
	  if(document.order.x_units.value == 'tonnes')
	  {
		  document.order.x_unit_pr.value = pp + 'tonne';
		  document.order.x_price.value = '£' + potato_tonne_pr[choice-1];
		  var arr = tonnes_array;
		  document.order.x_tonnes.value = 'Please contact us for prices';
	  }
  
	  while (arr.length < document.order.x_quantity.options.length)
		document.order.x_quantity.options[document.order.x_quantity.options.length - 1] = null;
  
	  for (i=0; i < arr.length; i++)
		  document.order.x_quantity.options[i] = new Option(arr[i],arr[i]);
	}
}

function decimal_point(d)
{
	var point = new String(d);
	var temp = 0;
	var pos = -1;
	pos = point.indexOf(".");
	if (pos != -1) temp = point.length - pos;
	if (temp == 0)
	{
		point = point + '.00';
	}
	else
	{
		if (temp == 1)
		{
			point = point + '.0';
		}
		else
		{
			point = point + '0';
		}
	}
	return point;
}

function Calc()
{
	if(! (document.order.x_price.variety || document.order.x_quantity.value)) return false;
	else
	{
		var choice = document.order.x_variety.selectedIndex;
		var cost, temp, del;
		var flag = false;
		document.order.x_total.value = '';
		document.order.x_del.value = '';
		document.order.x_final.value = '';
		
		if(document.order.x_units.value == 'kilos')
		{
			var new_cost = potato_kilo_pr[choice-1];
			cost = new_cost * document.order.x_quantity.value;
			del  = handling * document.order.x_quantity.value/10;
			final = cost + del;
			flag = true;
			tonnes_message = '';
		}
		else
		{
			var new_cost = 	potato_tonne_pr[choice-1];
			cost = new_cost * document.order.x_quantity.value;
			del = pallet_base * document.order.x_quantity.value;
			final = cost + del;
			
		}
		cost = decimal_point(cost);
		del = decimal_point(del);
		final = decimal_point(final);
		
	}
	document.order.x_total.value = '£' + cost;
	document.order.x_del.value = '£' + del;
	document.order.x_final.value = '£' + final;
	
}

function quantityChange()
{
		if (document.order.x_units.value == 'kilos')
		var arr =  kilos_array;
	if (document.order.x_units.value == 'tonnes')
		var arr = tonnes_array;

	while (arr.length < document.order.x_quantity.options.length)
      document.order.x_quantity.options[document.order.x_quantity.options.length - 1] = null;

	for (i=0; i < arr.length; i++)
		document.order.x_quantity.options[i] = new Option(arr[i],arr[i]);

}

function renameSubmitButton(s)
{
	s.value = "  Sending...  ";
	return true;
}

function MM_findObj(n, d)
{ //v4.01
	var p,i,x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length)
	{
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	if(!(x=d[n])&&d.all) x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm()
{ //v4.0
	var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
	for (i=0; i<(args.length-2); i+=3)
	{
		test=args[i+2];
		val=MM_findObj(args[i]);
    	if (val)
		{
			nm=val.name;
			if ((val=val.value)!="")
			{
				if (test.indexOf('isEmail')!=-1)
				{
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      			}
				else if (test!='R')
				{
					num = parseFloat(val);
					if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
					if (test.indexOf('inRange') != -1)
					{
						p=test.indexOf(':');
						min=test.substring(8,p);
						max=test.substring(p+1);
          				if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
					}
				}
			}
			else
			if (test.charAt(0) == 'R')
			{
				if (nm == 'realname') nm = 'Name';
				if (nm == 'email') nm = 'Email';
				if (nm.indexOf('x_') > -1)
				{
					var first = nm.substring(2,3);
					first = first.toUpperCase();
					nm = first + nm.substring(3,nm.length);
				}
				p = nm.indexOf('_');
				nm = nm.substring(0,p) + ' ' + nm.substring(p+1,nm.length)
				errors += '- '+nm+' is required.\n';
			}
		}
	}
	if (errors) alert('The following error(s) occurred:\n\n'+errors);
	document.MM_returnValue = (errors == '');
}

<!-- // *********************************************************** -->

