// holds an instance of XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();
// holds the remote server address 
var serverAddress = "ajax_server.php";
// when set to true, display detailed error messages
var showErrors = true;
// initialize the validation requests cache 
var cache = new Array();

var price = "0.00";
var image_dir = "/images/uploads/name_prints/";

var var_style = "animal";
var var_gender = "Boy";
var var_name = "";
var var_letter = "a";
var var_position = 1;


var currency = "£";
var embroiderylength = 0;

// creates an XMLHttpRequest instance
function createXmlHttpRequestObject() 
{
	// will store the reference to the XMLHttpRequest object
	var xmlHttp;
	// this should work for all browsers except IE6 and older
	try
	{
		// try to create XMLHttpRequest object
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		// assume IE6 or older
		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
		                                "MSXML2.XMLHTTP.5.0",
		                                "MSXML2.XMLHTTP.4.0",
		                                "MSXML2.XMLHTTP.3.0",
		                                "MSXML2.XMLHTTP",
		                                "Microsoft.XMLHTTP");
		// try every id until one works
		for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
		{
		  try 
		  { 
		    // try to create XMLHttpRequest object
		    xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
		  } 
		  catch (e) {} // ignore potential error
		}
	}
	// return the created object or display an error message
	if (!xmlHttp)
	{
		displayError("Error creating the XMLHttpRequest object.");
	}
	else 
	{
		return xmlHttp;
	}
}

// function that displays an error message
function displayError($message)
{
	// ignore errors if showErrors is false
	if (showErrors)
	{
		// turn error displaying Off
		showErrors = false;
		// display error message
 
		alert("Error encountered: \n" + $message);
		// retry validation after 10 seconds
		setTimeout("ajax_server();", 10000);
	}
}



// the function handles the validation for any form field
function ajax_server(inputValue, type)
{
	inputValue = trim(inputValue);
	type  = trim(type);

	// only continue if xmlHttp isn't void
	if (xmlHttp)
	{
		// if we received non-null parameters, we add them to cache in the
		// form of the query string to be sent to the server for validation
		if (inputValue != undefined && inputValue != "" && inputValue != "0")
		{
		  // encode values for safely adding them to an HTTP request query string
		  inputValue = encodeURIComponent(inputValue);
		  type = encodeURIComponent(type);
		  // add the values to the queue
		  
		  //alert("inputValue=" + inputValue + "&type=" + type);
		  cache.push("inputValue=" + inputValue + "&type=" + type);
		}
		// try to connect to the server
		try
		{
		  // continue only if the XMLHttpRequest object isn't busy
		  // and the cache is not empty
		  if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) 
		     && cache.length > 0)
		  {
		    // get a new set of parameters from the cache
		    var cacheEntry = cache.shift();
		    //alert(cacheEntry);
		    // make a server request to validate the extracted data
		    xmlHttp.open("POST", serverAddress, true);
		    xmlHttp.setRequestHeader("Content-Type", 
		                             "application/x-www-form-urlencoded");
		    xmlHttp.onreadystatechange = handleRequestStateChange;
		    xmlHttp.send(cacheEntry);
		  }
		}
		catch (e)
		{
		  // display an error when failing to connect to the server
		  displayError(e.toString());
		}
	}
}

// function that handles the HTTP response
function handleRequestStateChange() 
{
	// when readyState is 4, we read the server response
	if (xmlHttp.readyState == 4) 
	{
		// continue only if HTTP status is "OK"
		if (xmlHttp.status == 200) 
		{
		  try
		  {
		    // read the response from the server
		    readResponse();
		  }
		  catch(e)
 
		  {
		    // display error message
		    displayError(e.toString());
		  }
		}
		else
		{
		  // display error message
		  displayError(xmlHttp.statusText);
		}
	}
}

// read server's response 
function readResponse()
{
	// retrieve the server's response 
	var response = xmlHttp.responseText;
	// server error?
	if (response.indexOf("ERRNO") >= 0 
		  || response.indexOf("error:") >= 0
		  || response.length == 0)
		throw(response.length == 0 ? "Server error." : response);
	// get response in XML format (assume the response is valid XML)
	responseXml = xmlHttp.responseXML;
	// get the document element
	//alert(response);
	xmlDoc = responseXml.documentElement;
	result = xmlDoc.getElementsByTagName("result")[0].firstChild.data;
	if (result == 1)
	{
		key = "name";
		name = get_from_XML(xmlDoc,key);
		key = "description";
		description = get_from_XML(xmlDoc,key);
		key = "price";
		price = get_from_XML(xmlDoc,key);
		key = "image";
		image = get_from_XML(xmlDoc,key);
		description = decodeURIComponent(description);
		// find the HTML element that displays the blurb
		message = document.getElementById("rugbuilderblurb");
		message.innerHTML = description;
		if (image != "")
		{
//			var img = document.getElementById(imageID);
//			img.src = image_dir + image_prefix + image;
			if (image != "clear.gif")
			{
				Set_Sample_Image("rugbuildersampleimage",image_uploads_dir + image)
				message = document.getElementById("rugbuildersampletext");
				message.innerHTML = "Sample Image";
			}

		}
		if (price != "" && price != "0" & price != "0.00")
		{
			//alert(priceID + ":" + price)
			Set_Price(priceID,price)

		}



		// call validate() again, in case there are values left in the cache
		setTimeout("ajax_server();", 500);
	}
}

function Populate_Selector(addresses_input)
{
if (select_ID != "" && select_ID != undefined)
{
	//alert(select_ID);
	var sel = document.getElementById(select_ID);
	var addresses = new Array();
	addresses = addresses_input.split(";;");
	var addr = new Array();
	var postkey;
	var postaddress;
	var opt;
	var i;

// first remove any existing options (except the first)
	var len = sel.options.length;
	for (i=1;i<len;i++)
	{
		sel.options[1] = null;
	}
	if (addresses.length == 1) // only one address returned  for the postcode
	{
		sel.options[0] = null;
	}

	for (i=0;i<addresses.length;i++)
	{
		addr = addresses[i]
		if (addr.length > 5)
		{
			addr = addr.split("::");
			postkey = addr[0];
			postaddress = addr[1];
			//alert(postkey + ":" + postaddress);
			opt = document.createElement("OPTION");
			opt.text=postaddress;
			opt.value=postkey;
			sel.options.add(opt);
		}
	}
}
}


function trim(sString)
{
if (sString != undefined)
{
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
}
return sString;
}

function get_from_XML(xmlDoc,key)
{
	var rv = "";
	if (xmlDoc.getElementsByTagName(key)[0].firstChild != undefined)
	{
		rv = xmlDoc.getElementsByTagName(key)[0].firstChild.data;
	}
	return rv;
}
// sets focus on the first field of the form
function setFocus(id)    
{
	document.getElementById(id).enabled = true;
	document.getElementById(id).focus();
}

function Set_Image(imageID, src)
{
	if (imageID != "")
	{
		var img = document.getElementById(imageID);
		if (img != undefined)
		{
			img.src = src;
			//img.alt = src;
		}
		//alert(image_dir + imageName);
	}
}

function Set_Value(fieldID,value)
{
	//alert("f " + fieldID)
	var f = document.getElementById(fieldID);
	f.value = value;
}

function Get_Value(fieldID)
{
	//alert("f " + fieldID)
	var f = document.getElementById(fieldID);
	value = f.value;
	return value
}

function Get_Name(fieldID)
{
	//alert("f " + fieldID)
	var f = document.getElementById(fieldID);
	value = f.name;
	return value
}
function Set_Name(fieldID,value)
{
	//alert("f " + fieldID)
	var f = document.getElementById(fieldID);
	f.name = value;
}

function Reset_Image(imageID)
{
	if (imageID != "")
	{
		var img = document.getElementById(imageID);
//		img.src = image_dir + "clear.gif";
	}
}

function Format_Currency(value)
{

/*Parse number to currency format:
By Website Abstraction (www.wsabstract.com)
and Java-scripts.net (www.java-scripts.net)
*/


var prefix=currency

var tempnum = value.toString();
if (tempnum.substring(0,1)==currency)
{
	return value;
}

if(tempnum != "0")
{
	//alert("tempnum " + tempnum)
}
var pos = tempnum.indexOf(".");
if (pos <= 0)
{
	value=prefix+tempnum+".00";
	//alert("pos " + pos + " v1 " + value);
}
else
{
	var arr;
	var i = 0;
	var d = 0;
	arr = tempnum.split(".");
	i = arr[0];
	d = arr[1] + "00";
	d = d.substring(0,2);
	value = prefix + i + "." + d;
	//alert("v2 " + value);
}


return value;
}


function set_name_image (pname,pgender,pstyle)
{
	if (pstyle == undefined || pstyle == "")
	{
		pstyle = var_style;
	}
	else
	{
		var_style = pstyle;
	}
	if (var_name != "")
	{
		Set_Image("green_arrow_" + var_name,"/images/uploads/clear.gif");
	}

	if (pname == undefined || pname ==  "")
	{
		if (var_style == "animal")
		{
			var_gender = "Boy"
			var_name = "harry"
			Set_Image("lm_7","/images/uploads/clear.gif");
			Set_Image("lm_8","/images/uploads/lm_arrow_sub.gif");
			Set_Image("lm_9","/images/uploads/clear.gif");
			Set_Image("lm_10","/images/uploads/clear.gif");
			Set_Image("lm_28","/images/uploads/clear.gif");
		}
		if (var_style == "Boy_Thing")
		{
			var_gender = "Boy"
			var_name = "calum"
			Set_Image("lm_7","/images/uploads/clear.gif");
			Set_Image("lm_8","/images/uploads/clear.gif");
			Set_Image("lm_9","/images/uploads/clear.gif");
			Set_Image("lm_10","/images/uploads/lm_arrow_sub.gif");
			Set_Image("lm_28","/images/uploads/clear.gif");
		}
		if (var_style == "mouse")
		{
			var_name = "alice"
			var_gender = "Girl"
			Set_Image("lm_7","/images/uploads/clear.gif");
			Set_Image("lm_8","/images/uploads/clear.gif");
			Set_Image("lm_9","/images/uploads/lm_arrow_sub.gif");
			Set_Image("lm_10","/images/uploads/clear.gif");
			Set_Image("lm_28","/images/uploads/clear.gif");
		}
		if (var_style == "pixie")
		{
			var_name = "holly"
			var_gender = "Girl"
			Set_Image("lm_7","/images/uploads/lm_arrow_sub.gif");
			Set_Image("lm_8","/images/uploads/clear.gif");
			Set_Image("lm_9","/images/uploads/clear.gif");
			Set_Image("lm_10","/images/uploads/clear.gif");
			Set_Image("lm_28","/images/uploads/clear.gif");
		}
		if (var_style == "fairy_girl")
		{
			var_name = "alice"
			var_gender = "Girl"
			Set_Image("lm_7","/images/uploads/clear.gif");
			Set_Image("lm_8","/images/uploads/clear.gif");
			Set_Image("lm_9","/images/uploads/clear.gif");
			Set_Image("lm_10","/images/uploads/clear.gif");
			Set_Image("lm_28","/images/uploads/lm_arrow_sub.gif");
		}
		pname = var_name;
	}
	else
	{
		Set_Image("green_arrow_" + var_name,"/images/uploads/clear.gif");
		var_name = pname;
	}

	if (pgender == undefined || pgender == "")
	{
		pgender = var_gender;
	}
	else
	{
		var_gender = pgender;
	}


	if (pgender == "Girl" && pstyle == "Boy_Thing")
	{
		pstyle = "pixie";
		var_style = "pixie";
		Set_Image("lm_10","/images/uploads/clear.gif");
		Set_Image("lm_7","/images/uploads/lm_arrow_sub.gif");
	}

	if (pgender == "Boy" && pstyle == "fairy_girl")
	{
		pstyle = "pixie";
		var_style = "pixie";
		Set_Image("lm_28","/images/uploads/clear.gif");
		Set_Image("lm_7","/images/uploads/lm_arrow_sub.gif");
	}
	var len = pname.length;
	var image;
	var birthweight_image;
	var birth_details_image;
	birth_details_image = "/images/uploads/name_prints/" + pgender + "/" + pstyle + "/birth_details.gif"
	Set_Image("birth_details_img",birth_details_image);
	image = "/images/uploads/name_prints/" + pgender + "/" + pstyle + "/Names/" + pname + ".jpg"
	//alert(image);
	Set_Image("category_image",image);
	if (len > 5)
	{
		image = "/images/uploads/name_print_frame_11.gif"
		birthweight_image = "/images/uploads/name_prints/" + pgender + "/" + pstyle + "/birthweight_11.gif"
	}
	else
	{
		image = "/images/uploads/name_print_frame_5.gif"
		birthweight_image = "/images/uploads/name_prints/" + pgender + "/" + pstyle + "/birthweight_5.gif"
	}
	Set_Image("name_print_frame",image);

	//alert(birthweight_image);
//	Set_Image("birthweight_image",birthweight_image);
	Set_Image("green_arrow_" + pname,"/images/uploads/green_arrow_east.gif");
	

	set_name_letter(pname.substring(0,1),1,"","","","","bottomleft")
	rework_map (pname);

}

function set_name_letter (pletter,position, pname,pgender,pstyle,preload,quarter)
{
	if (pletter== undefined || pletter==  "")
	{
		pletter= var_letter;
	}
	else
	{
		var_letter = pletter;
	}
	if (position== undefined || position==  "")
	{
		position= var_position;
	}
	else
	{
		var_position= position;
	}
	if (pname == undefined || pname ==  "")
	{
		pname = var_name;
	}
	else
	{
		var_name = pname;
	}
	if (pgender == undefined || pgender == "")
	{
		pgender = var_gender;
	}
	else
	{
		var_gender = pgender;
	}
	if (pstyle == undefined || pstyle == "")
	{
		pstyle = var_style;
	}
	else
	{
		var_style = pstyle;
	}
	if (quarter == undefined)
	{
		quarter = "";
	}
	quarter = ""; // not used

	image = "/image_server.php?gender=" + pgender + "&name=" + pname + "&style=" + pstyle + "&letter=" + pletter + "&position=" + position + "&quarter=" + quarter;

	if (preload == undefined || preload == "")
	{
		Set_Image("example_letter",image);
	}
	else
	{
//		alert(image);
		if (document.images)
		{
			//alert("preloading " + image);
			pic1= new Image(280,300); 
			pic1.src = image; 
		}
	}

}

function show_hide_birth_details()
{
	var ele;
	
	ele = document.getElementById("birth_details_img");
	
	ele.src = "/images/uploads/name_prints/" + var_gender + "/" + var_style + "/birth_details.gif";
	
	if(var_style == "fairy_girl")
	{
		ele.className = "";
	}
	else
	{
		ele.className = "name_p_bdr";
	}
	
	ele = document.getElementById("birth_details_container");
	
	if(ele.className == "birth_details_show")
	{
		ele.className = "hidden";
	}
	else
	{
		ele.className = "birth_details_show";
	}
	ele = document.getElementById("vertnames");
	MSIE_Refresh(ele)
}


function MSIE_Refresh(ele)
{
	if (MSIE())
	{
		ele.innerHTML += "<span></span>";
	}
}


function MSIE()
{
	if (navigator.userAgent.indexOf("MSIE") > 0)
	{
		return true;
	}
	return false;
}

function rework_map (pname)
{
	if (pname == undefined || pname ==  "")
	{
		pname = var_name;
	}
	var name = pname;

	var map = document.getElementById("letter_map");
	var area;

	var len = name.length;
	var letters = new Array();
	var letter;
	var i;

	var coords;
	var image_width = 360;
	if (len > 5)
	{
		image_width = 490
	}
	var image_height = 104;

	var width = image_width / len;
	var offset_x = 80;
	var offset_y = 69;

	width = parseInt(width);
	//alert(width);

	for (i=0;i<len;i++)
	{
		letter = name.substring(i,i+1);
		//alert(letter);
		letters[i] = letter;
	}

	for (i in letters)
	{
		letter = letters[i];
		letter_map (i,letter,width,image_height,offset_x,offset_y,"");
		//letter_map (i,letter,width,image_height,"topleft");
		//letter_map (i,letter,width,image_height,"topright");
		//letter_map (i,letter,width,image_height,"bottomleft");
		//letter_map (i,letter,width,image_height,"bottomright");
	}


	i++;

	var birth_det_height = image_height + offset_y;
	area = document.getElementById("birth_details_map");
	area.coords = offset_x + "," + (image_height + offset_y - 20) + "," + (offset_x + image_width) + "," + birth_det_height;
	
	
	//alert(i);
	for (i=i;i<10;i++)
	{
		coords = "0,0,0,0";
		area = document.getElementById("letter_area_" + i);
		area.coords = coords;
		//area = document.getElementById("letter_area_" + i + "_topleft");
		//area.coords = coords;
		//area = document.getElementById("letter_area_" + i + "_topright");
		//area.coords = coords;
		//area = document.getElementById("letter_area_" + i + "_bottomleft");
		//area.coords = coords;
		//area = document.getElementById("letter_area_" + i + "_bottomleft");
		//area.coords = coords;
		//alert(area.id + "  " + area.coords);

	}
// now preload images
	for (i in letters)
	{
		i = parseInt(i);
		letter = letters[i];
		position = i + 1;
		set_name_letter (letter,position,pname,"","",1);
		//set_name_letter (letter,position,pname,"","",1,"topleft");
		//set_name_letter (letter,position,pname,"","",1,"topright");
		//set_name_letter (letter,position,pname,"","",1,"bottomleft");
		//set_name_letter (letter,position,pname,"","",1,"bottomright");
	}	
}

function letter_map (i,letter,width,image_height,offset_x,offset_y,quarter)
{
	var qtr;
	var from_x = 0;
	var to_x = 0;
	var from_y = 0;
	var to_y = 0;

	from_x = (i * width) + offset_x;
	to_x = from_x + width;
	from_y = 69;
	to_y = image_height + offset_y - 20;

	qtr = quarter;
	area_name = "letter_area_" + i + qtr;
	//alert(area_name);
	area = document.getElementById(area_name);
	if (area !=  undefined)
	{
		coords = from_x + "," + from_y + "," + to_x + "," + to_y;
		area.coords = coords;
		area.alt = letter;
	//	area.title = letter;
	//	alert(area.id + "  " + area.coords);
	}


}

function delopt(product_id,option, i , option1,option2,option3, option4,option5,option6,option7)
{
	//alert(product_id + " , " + option + " , " + i);
	var fieldID = "quantity_" + i
	var val = Get_Name(fieldID);
	remval = val.replace("quan[","");
	remval = remval.replace("]","");
	//alert("rem " + remval);
	//alert(val)
	val = remove_delopt(option1,val);
	val = remove_delopt(option2,val);
	val = remove_delopt(option3,val);
	val = remove_delopt(option4,val);
	val = remove_delopt(option5,val);
	val = remove_delopt(option6,val);
	val = remove_delopt(option7,val);
	val=val.replace("]","|" + option + "]");
	//alert(val);
	Set_Name(fieldID,val);
	if (option == "75")
	{
		var quan = 	Get_Value(fieldID,val);
		if (quan < 3)
		{
//			Set_Value(fieldID,"3");
		}
	}
	if (remval != "quan[" + val + "]")
	{
		remFieldID = "remove_" + i;
		Set_Value(remFieldID,remval);
	}
	submitDoc('cart');

}
function remove_delopt(option,val)
{
	val=val.replace(":" + option + "|",":");
	val=val.replace("|" + option + "|","|");
	val=val.replace("|" + option + "]","]");
	return val;
}
function invite_set_colour(colourcode,colour)
{
f = document.getElementById("fontcolour");
if (colour == "Cyan")
{
	f.value = "Cyan (Blue)";
}
if (colour == "Magenta")
{
	f.value = "Magenta (Red)";
}

//t = document.getElementById("prodtext");
//t.style.color=colourcode;
i = document.getElementById("prodimage");
s = i.src;
news = s;
if (colour == "Cyan")
{
	c = document.getElementById("cyanradio");
	c.checked = true;
	news = news.replace(/pnk.jpg/,".jpg");
}
if (colour == "Magenta")
{
	m = document.getElementById("magentaradio");
	m.checked = true;
	news = news.replace(/.jpg/,"pnk.jpg");
}
news = news.replace(/pnkpnk/,"pnk");
//alert(s);
//alert(news);
if (news != s)
{
	i.src = news
}
}
function invite_set_font(font)
{
i = document.getElementById("samplefont");
i.src = "/images/uploads/invites/" + font + ".gif";
f = document.getElementById("fontface");
f.value=font;
}

function invite_recalc_cost(quan, validate,event)
{
if (quan.value=='enter qty' && event == "focus")
{
	quan.value = "";
}
if (quan.value=='' &&  event == "blur")
{
	quan.value='enter qty';
}
q = parseInt(quan.value);
t = document.getElementById("total");
if (q < 25 && validate == true)
{
	alert ("We're sorry but our minimum order quantity is 25");
}
else if (q > 24)
{
	p = document.getElementById("price");
	if (q < 50)
	{
		p = document.getElementById("price");
	}
	if (q >= 50)
	{
		p = document.getElementById("price2");
	}
	if (q >= 75)
	{
		p = document.getElementById("price3");
	}
	tot = q * p.value;
	tot = Format_Currency(tot);
	t.value=tot;
}
}

function validate_invites()
{
var tf =  true;
var err = "";
var quan = document.getElementById("quan")
var q  = 0;
if (quan.value != "enter qty")
{
	q = parseInt(quan.value);
}

var t = document.getElementById("prodtext");
if (t.value == "" || t.value == "enter wording here")
{
	err = err + "Please enter your wording in the box provided\n";
	tf = false
}

var f = document.getElementById("fontcolour");
if (f.value == "")
{
	err = err + "Please choose a colour by clicking on 'CYAN' or 'MAGENTA'\n";
	tf = false
}

if (quan.value == "enter qty")
{
	err = err + "Please enter the number of invitations you require (min 25)\n";
	tf = false
}
else if (q < 25)
{
	err = err + "Our minimum order quantity is 25\n";
	tf = false
}

if (tf == true)
{
	var dashes = "-------------------";
	var prompt = "Please check the details of your order and click 'OK' to add to basket:\n\n" + 
			 "Your wording:\n" + dashes + "\n" + t.value + "\n" + dashes + "\n" + 
			"\nColour: " + f.value + "\nQuantity: " + q + "\n\n" + 
			"NB: you will not be able to change these details after this point,\n" +
			"but we will ask you to confirm again before the final print."

	if (confirm(prompt))
	{
		submitDoc('addtobasket')
	}
}
else
{
	alert("Sorry! we can't accept your order as it stands:" + "\n\n" + err);
}
}


function canvas_invite_set_colour(colourcode,colour)
{
	f = document.getElementById("fontcolour");
	if ((colour == "Magenta (Red)") || (colour == "Lime Green") || (colour == "Light Blue") || (colour == "Purple"))
	{
		f.value = colour;
	}
	
	//t = document.getElementById("prodtext");
	//t.style.color=colourcode;
	i = document.getElementById("invite_image");
	s = i.src;
	news = s;
	if (colour == "Magenta (Red)")
	{
		c = document.getElementById("redradio");
		c.checked = true;
		//news = news.replace(/pnk.jpg/,".jpg");
	}
	if (colour == "Lime Green")
	{
		m = document.getElementById("greenradio");
		m.checked = true;
		//news = news.replace(/.jpg/,"pnk.jpg");
	}
	if (colour == "Light Blue")
	{
		m = document.getElementById("blueradio");
		m.checked = true;
		//news = news.replace(/.jpg/,"pnk.jpg");
	}
	if (colour == "Purple")
	{
		m = document.getElementById("pinkradio");
		m.checked = true;
		//news = news.replace(/.jpg/,"pnk.jpg");
	}
	//news = news.replace(/pnkpnk/,"pnk");
	//alert(s);
	//alert(news);
	if (news != s)
	{
		//i.src = news
	}
}

function validate_canvas_invites()
{
	var tf =  true;
	var err = "";
	var q  = 0;
	var t_val  = "";
	
	var f = document.getElementById("fontcolour");
	if (f.value == "")
	{
		err = err + "Please choose a colour\n";
		tf = false;
	}
	
	var t1 = document.getElementById("canvas_tag1");
	var t2 = document.getElementById("canvas_tag2");
	var t3 = document.getElementById("canvas_tag3");
	var txt1 = document.getElementById("canvas_tagtext1");
	var txt2 = document.getElementById("canvas_tagtext2");
	
	if (t1.checked != true && t2.checked != true && t3.checked != true)
	{
		err = err + "Please enter a tag name in the box provided, or tick box if you don't require a name tag.\n";
		tf = false;
	}
	else if (t1.checked == true)
	{
		txt2.value = "";
		
		if(txt1.value == "" || txt1.value == "name")
		{
			err = err + "Please enter a tag name in the box provided.\n";
			tf = false;
		}
		else
		{
			t_val = txt1.value;
		}
	}
	else if (t2.checked == true)
	{
		txt1.value = "";
		
		if(txt2.value == "" || txt2.value == "name & dd/mm/yyyy")
		{
			err = err + "Please enter a tag name in the box provided.\n";
			tf = false;
		}
		else
		{
			t_val = txt2.value;
		}
	}
	else if (t3.checked == true)
	{
		txt1.value = "";
		txt2.value = "";
		t_val = "no tag/name";	
	}
	
	
	var p1 = document.getElementById("price1");
	var p2 = document.getElementById("price2");
	var add = document.getElementById("add");
	var size = "";
	var gw = document.getElementById("giftwrapmessage");
	
	if (p1.checked != true && p2.checked != true)
	{
		err = err + "Please choose a gift wrap service\n";
		tf = false;
	}
	else if (p1.checked == true)
	{
		add.value = p1.value;
		size = "None";
	}
	else if (p2.checked == true)
	{
		
		
		
		if(gw.value == "")
		{
			err = err + "Please enter your gift wrap message\n";
			tf = false;
		}
		else
		{
			add.value = p2.value;
			size = "Included";
		}
	}
	

	var l = document.getElementById("invite_letter");

	if (tf == true)
	{
		var dashes = "-------------------";
		var prompt = "Please check the details of your order and click 'OK' to add to basket:\n\n" + 
				 "Your tag name:\n" + dashes + "\n" + t_val + "\n" + dashes + "\n" + 
				"\nLetter: " + l.value + "" + 
				"\nColour: " + f.value + "" + 
				"\nGift Wrap Service: " + size + "" + 
				"\nGift Wrap Message: " + gw.value + "\n\n" + 
				"NB: you will not be able to change these details after this point,\n" +
				"but we will ask you to confirm again before the final print."

		if (confirm(prompt))
		{
			//submitDoc('addtobasket')
			return tf;
		}
		else
		{
			return false;
		}
	}
	else
	{
		alert("Sorry! we can't accept your order as it stands:" + "\n\n" + err);
		return tf;
	}
}