﻿function ltrim(str)
{
	for(var k = 0; k < str.length && (str.charAt(k) == ' '); k++);
	return str.substring(k, str.length);
}
function rtrim(str)
{
	for(var j = str.length - 1; j >= 0 && (str.charAt(j) == ' '); j--);
	return str.substring(0, j + 1);
}
function trim(str)
{
	return ltrim(rtrim(str));
}
function PostData(action, upgradeOnly)
{
	if(window.document.forms.length < 1) { return; }
	var form = window.document.forms[0];
	var items = form.elements;
	var len = items.length;
	var re1 = /^product\/(\d[\-0-9]*\d)\/0\/quantity$/i;
	var re2 = /^Keyword:\x20UpgradeSerial_(\d[\-0-9]*\d)\x20-/i;
	var type;
	var postData = false;
	var orderedProductIDs = new Array();

	for(var i = 0; i < len; ++i)
	{
		type = items[i].type;
		if( (type == "text") || (upgradeOnly && (type == "hidden")) )
		{
			var name = items[i].name;
			if(re1.test(name))
			{
				var val = trim(items[i].value);
				var ival = parseInt(val);
				if((val == "0") || (val == "") || isNaN(ival) || (ival <= 0) || (ival > 250))
				{
					items[i].disabled = true;
					if((val != "") && (isNaN(ival) || (ival < 0) || (ival > 250)))
					{
						window.alert("Quantity value must be zero or between 1 and 250.");

						for(var j = i; j >= 0; --j)
						{
							type = items[j].type;
							if(type == "button")
							{
								if(items[j].id == "BuyNowButton")
								{
									items[j].disabled = false;
								}
							}
							else if( (type == "text") || (upgradeOnly && (type == "hidden")) )
							{
								items[j].disabled = false;
								items[j].readOnly = false;
							}
							else
							{
								items[j].disabled = false;
							}
						}

						items[i].focus();
						return;
					}
				}
				else
				{
					postData = true;
					items[i].readOnly = true;
					orderedProductIDs.push(RegExp.$1);
				}
			}
			else if(re2.test(name))
			{

				if(items[i].value == "")
				{
					items[i].disabled = true;
				}
				else
				{
					items[i].readOnly = true;
					if(upgradeOnly)
					{
						postData = true;
					}
				}
			}
			else
			{
				items[i].disabled = true;
			}
		}
		else if(type == "button")
		{
			if(items[i].id == "BuyNowButton")
			{
				items[i].disabled = true;
			}
		}
		else
		{
			items[i].disabled = true;
		}
	}

	if(upgradeOnly == false)
	for(var i = 0; i < len; ++i)
	{
		if(items[i].type == "text")
		{
			var name = items[i].name;
			if(re2.test(name))
			{
				if(!items[i].disabled)
				{
					var found = false;
					for(var k = 0; k < orderedProductIDs.length; ++k)
					{
						if(RegExp.$1 == orderedProductIDs[k])
						{
							found = true;
							break;
						}
					}
					if(!found)
					{
						items[i].disabled = true;
					}
				}
				else
				{
					var found = false;
					for(var k = 0; k < orderedProductIDs.length; ++k)
					{
						if(RegExp.$1 == orderedProductIDs[k])
						{
							found = true;
							break;
						}
					}
					if(found)
					{
						window.alert("Serial Number must be entered.");

						for(var j = 0; j < len; ++j)
						{
							type = items[j].type;
							if(type == "button")
							{
								if(items[j].id == "BuyNowButton")
								{
									items[j].disabled = false;
								}
							}
							else if( (type == "text") || (upgradeOnly && (type == "hidden")) )
							{
								items[j].disabled = false;
								items[j].readOnly = false;
							}
							else
							{
								items[j].disabled = false;
							}
						}

						items[i].focus();
						return;
					}
				}
			}
		}
	}

	if(postData)
	{
		form.action = action;
		form.method = "post";
		form.submit();
	}
	else
	{
		if(!upgradeOnly)
		{
			window.alert("There are no selected items to buy!");
		}
		else
		{
			window.alert("There are no entered serial numbers!");
		}
		for(var i = 0; i < len; ++i)
		{
			type = items[i].type;
			if(type == "button")
			{
				if(items[i].id == "BuyNowButton")
				{
					items[i].disabled = false;
				}
			}
			else if( (type == "text") || (upgradeOnly && (type == "hidden")) )
			{
				items[i].disabled = false;
				items[i].readOnly = false;
			}
			else
			{
				items[i].disabled = false;
			}
		}
	}
}

