var ProductsList = new Array();
ProductsList[0] = new Array();
ProductsList[0][0] = new Array();

ProductsList[0] = ["Grp1","PLUS - 12 Month","675.00","Dsp1","SortWizard Software Subscriptions"];
ProductsList[1] = ["Grp1","PLUS - 6 Month","425.00","Dsp1"];
ProductsList[2] = ["Grp1","PLUS - 3 Month","250.00","Dsp1"];
ProductsList[3] = ["Grp1","Standard - 12 Month","525.00","Dsp1"];
ProductsList[4] = ["Grp1","Standard - 6 Month","325.00","Dsp1"];
ProductsList[5] = ["Grp1","Standard - 3 Month","225.00","Dsp1"];

ProductsList[6] = ["Grp1","End of Day - 12 month","525.00","Dsp1"];
ProductsList[7] = ["Grp1","End of Day - 6 month","325.00","Dsp1"];
ProductsList[8] = ["Grp1","End of Day - 3 month","225.00","Dsp1"];

ProductsList[9] = ["Grp2","Adrian Manz - Around the Horn - Daily Patterns","195.00","Dsp2","Add-on Modules"];
ProductsList[10] = ["Grp3","Jeff Cooper - Hit & Run I ","175.00","Dsp2"];
ProductsList[11] = ["Grp4","Jeff Cooper - Hit & Run II","175.00","Dsp2"];
ProductsList[12] = ["Grp5","Jeff Cooper - 5 Day Momentum Method","75.00","Dsp2"];
ProductsList[13] = ["Grp6","Software Support - 1 Hour","100.00","Dsp3","Software Support"];
ProductsList[14] = ["Grp6","Software Support - 3 Hours","250.00","Dsp3"];
ProductsList[15] = ["Grp6","Software Support - 6 Hours","450.00","Dsp3"];
ProductsList[16] = ["Grp7","Custom Quote","0.0","Dsp4","Specialty Quotes"];

var BackGrnd = ["#FBFBFB","#F5F5F5"],SwitchBkg = 0;
var ProductsCount = ProductsList.length;
var ProductsCols = 3;
var ProductsRows = 1;

//count rows needed to display
var cnt = 0;
var Dsp = ProductsList[0][3];
for (lp = 0;lp < ProductsCount;lp++) 
	{
	cnt++;
	if ( cnt > ProductsCols)
		{
		cnt = 1;
		ProductsRows++;
		if ( Dsp != ProductsList[lp][3]) //new display group ~ next line
			{
			Dsp = ProductsList[lp][3];
			}
		}
	if ( Dsp != ProductsList[lp][3]) //new display group ~ next line
		{
		Dsp = ProductsList[lp][3];
		ProductsRows++;
		cnt = 1;
		}
	}

var OrderFlags = new Array();	
var CustomPriceFlags = new Array();	
for (lp = 0;lp < ProductsCount;lp++) 
	{
		OrderFlags[lp] = 0;
		CustomPriceFlags[lp] = "";
	}

var userselections  = getselections("SWuser"); 
if (userselections != null) 
	{
	SetOrderFlags(userselections);
	}

var userselections  = getselections("SWuser2"); 
if (userselections != null) 
	{
	SetPriceFlags(userselections);
	for (lp = 0;lp < ProductsCount;lp++) 
		{
			if (CustomPriceFlags[lp] != "")
			{
				ProductsList[lp][2] = CustomPriceFlags[lp];
			}
		}
	}



//==========================================================================================
//==========================================================================================
//==========================================================================================


function PlaceProducts()
{
var lprows,lpcols,CurProd = 0,TxtVal = "";
var Wid = Math.round(100/ProductsCols);


document.write("<table width='95%' border='0' cellpadding='0' background='images/fon1.gif'>");
document.write("<tr><td align='left' height='2'>");
document.write("<div align='center'><strong>"+ProductsList[0][4]+"</strong></div>");
document.write("</td></tr></table>");


for (lprows = 1;lprows <= ProductsRows;lprows++)
	{
	document.write("<table border='0' cellpadding='0' cellspacing='0' width='95%' bordercolor='#0066CC'>");
	document.write("<tr>");
	lpcols = 1;
	Dsp = ProductsList[CurProd][3];
	while (lpcols <= ProductsCols )
	//for (lpcols = 1;lpcols <= ProductsCols;lpcols++)
		{
		document.write("<td width='"+Wid+"%' valign='top' align='center' bgcolor='"+BackGrnd[SwitchBkg]+"'>");
		if (CurProd < ProductsCount)
			{
			if (Dsp == ProductsList[CurProd][3])
				{
				document.write("<br>"+ProductsList[CurProd][1]+"<br>");
				TxtVal = "<input name='TB"+CurProd+"' type='text' value='"+formatCurrency(ProductsList[CurProd][2])+"' size='10' readonly='true' style='border: 0; color:#0066CC; font-weight:bold; font-size:12px; background-color:"+BackGrnd[SwitchBkg]+"; text-align:center;'><p>";
				
				document.write(TxtVal);
				//document.write("<b><font color='#0066CC'>"+formatCurrency(ProductsList[CurProd][2])+"</font></b><p>");
				switch (OrderFlags[CurProd])
					{
					case 0:
						if (AnyGrpSelected(ProductsList[CurProd][0]) == true )
							{
							document.write(" <img border='0' src='images/add_to_cart_grey.gif' alt='add to cart' width='50' height='40' style='visibility:visible; cursor:default;' onclick='' id='"+ProductsList[CurProd][0]+"_add_"+CurProd+"'>");
							document.write(" <img border='0' src='' alt='go to checkout' width='0' height='0' style='visibility:hidden; cursor:hand;' onclick=javascript:CheckOut() id='"+ProductsList[CurProd][0]+"_out_"+CurProd+"'>");
							document.write("</p>");
							}
							else  
							{
							document.write(" <img border='0' src='images/add_to_cart.gif' alt='add to cart' width='50' height='40' style='visibility:visible; cursor:hand;' onclick=javascript:ProductClick(this) id='"+ProductsList[CurProd][0]+"_add_"+CurProd+"'>");
							document.write(" <img border='0' src='' alt='go to checkout' width='0' height='0' style='visibility:hidden; cursor:hand;' onclick=javascript:CheckOut() id='"+ProductsList[CurProd][0]+"_out_"+CurProd+"'>");
							document.write("</p>");
							}
						break;
					case 1:
						document.write(" <img border='0' src='images/delete_from_cart.gif' alt='remome from cart' width='50' height='40' style='visibility:visible; cursor:hand;' onclick=javascript:ProductClick(this) id='"+ProductsList[CurProd][0]+"_add_"+CurProd+"'>");
						document.write(" <img border='0' src='images/checkout.gif' alt='go to checkout' width='50' height='40' style='visibility:visible; cursor:hand;' onclick=javascript:CheckOut() id='"+ProductsList[CurProd][0]+"_out_"+CurProd+"'>");
						document.write("</p>");
						break;
					}
				CurProd++;
				}
			}
		document.write("</td>");
		//CurProd++;
		lpcols++;
		}
	document.write("</tr>");
	document.write("</table>");
	if (CurProd < ProductsCount )
		{
		if (Dsp != ProductsList[CurProd][3])
			{
			document.write("<table width='95%' border='0' cellpadding='0' bgcolor='"+BackGrnd[SwitchBkg]+"'");
			document.write("<tr><td align='left' height='2'>&nbsp;");
			document.write("</td></tr></table>");
			
			SwitchBkg++;
			if (SwitchBkg > 1){SwitchBkg = 0;}
			document.write("<table width='95%' border='0' cellpadding='0' background='images/fon1.gif'>");
			document.write("<tr><td align='left' height='2'>");
			document.write("<div align='center'><strong>"+ProductsList[CurProd][4]+"</strong></div>");
			document.write("</td></tr></table>");
			}
		}
	}
		document.write("<form name='Paymentinfo' method='post' action='checkout.asp'>");
		document.write("<input type='hidden' name='PageType' value='1'>");
		document.write("<input type='hidden' name='Ordered' value='0'>");
		document.write("<input type='hidden' name='Products' value=''>");
		
	document.write("</form>");
	
return
}


function formatCurrency(num) {
var ret = "";
if (num != "") 
	{
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+
		  num.substring(num.length-(4*i+3));
	ret = (((sign)?'':'-') + '$' + num + '.' + cents);
	}
	else
	{
	ret = num;
	}
return ret;
}


function GetUserPrice() 
	{
	var arr,args,ret;
	arr=null;
	args=new Array();
	args["PRICE"] = "";

//open input window
  	arr = null;
		arr = showModalDialog( "EnterPrice.htm",args,
							   "dialogWidth:22em; dialogHeight:7em; resizable=no; status=no; ");
	ret = "";
	if (arr != null)
		{
			if (arr["PRICE"]) //is text
				{
				ret = arr["PRICE"]
				}
		}
	if (Number(ret) <= 0 ){ret = 0.0;}
	return ret;
	}


function ProductClick(TheObj)
{
var Picked = TheObj.id.split("_"),Grp,GrpSiz,ObjGrp,ObjId,TmpTxt
ProductNum = Picked[2]
Grp = Picked[0]
GrpSiz = Grp.length
switch (OrderFlags[ProductNum])
{
	case 0:
		//alert("On")
		if (Number(ProductsList[ProductNum][2]) == 0 && Number(CustomPriceFlags[ProductNum]) == 0)
			{
			txtobj = "TB" + ProductNum;
			price = GetUserPrice();
			price = Number(price);
			if (price > 0)
				{
				ProductsList[ProductNum][2] = price;
				document.all(txtobj).value = formatCurrency(price);
				CustomPriceFlags[ProductNum] = price;
				}
				else
				{break;}
			}
		
		document.all(ProductsList[ProductNum][0]+"_out_"+ProductNum).style.visibility = "visible";
		document.all(ProductsList[ProductNum][0]+"_out_"+ProductNum).src = "images/checkout.gif";
		document.all(ProductsList[ProductNum][0]+"_out_"+ProductNum).width = "50";
		document.all(ProductsList[ProductNum][0]+"_out_"+ProductNum).height = "40";

		document.all(ProductsList[ProductNum][0]+"_add_"+ProductNum).src = "images/delete_from_cart.gif";
		document.all(ProductsList[ProductNum][0]+"_add_"+ProductNum).style.cursor = "hand";
		document.all(ProductsList[ProductNum][0]+"_add_"+ProductNum).alt = "remome from cart"
		
		for (lp = 0;lp < ProductsCount;lp++)
			{
			ObjId = document.all(ProductsList[lp][0]+"_add_"+lp).id
			ObjGrp = ObjId.substr(0,GrpSiz)
			if ( lp != ProductNum && Grp == ObjGrp)
				{
				document.all(ProductsList[lp][0]+"_add_"+lp).src = "images/add_to_cart_grey.gif";
				document.all(ProductsList[lp][0]+"_add_"+lp).style.cursor = "default";
				document.all(ProductsList[lp][0]+"_add_"+lp).alt = ""
				document.all(ProductsList[lp][0]+"_add_"+lp).onclick = ""
				}
			}
		OrderFlags[ProductNum] = 1;
		break;
	case 1:
		//alert("Off")
		document.all(ProductsList[ProductNum][0]+"_out_"+ProductNum).style.visibility = "hidden";
		document.all(ProductsList[ProductNum][0]+"_out_"+ProductNum).src = "";
		document.all(ProductsList[ProductNum][0]+"_out_"+ProductNum).width = "0";
		document.all(ProductsList[ProductNum][0]+"_out_"+ProductNum).height = "0";

		document.all(ProductsList[ProductNum][0]+"_add_"+ProductNum).src = "images/add_to_cart.gif";
		document.all(ProductsList[ProductNum][0]+"_add_"+ProductNum).style.cursor = "hand";
		document.all(ProductsList[ProductNum][0]+"_add_"+ProductNum).alt = "add to cart";
		
		for (lp = 0;lp < ProductsCount;lp++)
			{
			ObjId = document.all(ProductsList[lp][0]+"_add_"+lp).id
			ObjGrp = ObjId.substr(0,GrpSiz)
			if (Number(CustomPriceFlags[lp]) > 0 )
				{
				txtobj = "TB" + lp;
				ProductsList[lp][2] = "0.0";
				document.all(txtobj).value = formatCurrency("0.0");
				CustomPriceFlags[lp] = "0.0";
				}
			if ( lp != ProductNum && Grp == ObjGrp)
				{
				document.all(ProductsList[lp][0]+"_add_"+lp).src = "images/add_to_cart.gif";
				document.all(ProductsList[lp][0]+"_add_"+lp).style.cursor = "hand";
				document.all(ProductsList[lp][0]+"_add_"+lp).alt = "add to cart";
				document.all(ProductsList[lp][0]+"_add_"+lp).onclick = function() {ProductClick(this)};
				}
			}
		OrderFlags[ProductNum] = 0;
		break;
}
return;
}



function TotalOrder()
{
Total = 0;
	for (lp = 0 ; lp < ProductsCount ; lp++)
		{
		if (OrderFlags[lp] == 1) {Total+=Number(ProductsList[lp][2]);}
		}
return Total;
}

function RemoveClicked(ItemPos)
{
var cnt=0;	

	OrderFlags[ItemPos] = 0
	document.all("OrderItem_"+ItemPos).style.visibility = "hidden";
	cnt=0;
	for (lp = 0 ; lp < ProductsCount ; lp++)
		{
		if (OrderFlags[lp] == 1) {cnt++;}
		}
	
	if (cnt == 0) {document.location.replace("shop.htm");}
document.Paymentinfo("OrderTotal").value = formatCurrency(Number(TotalOrder()));
}



function setCookie(name, value, expire)
{
   document.cookie = name + "=" + escape(value)   
   + ((expire == null) ? "" : ("; expires=" 
   + expire.toGMTString()));
}


function getselections(Name) 
{
   var search = Name + "=";
   if (document.cookie.length > 0) 
   	  { // if there are any cookies
      offset = document.cookie.indexOf(search); 
      if (offset != -1) 
	    { // if cookie exists 
         offset += search.length; 
         // set index of beginning of value
         end = document.cookie.indexOf(";", offset); 
         // set index of end of cookie value
         if (end == -1) {end = document.cookie.length;}
         return unescape(document.cookie.substring(offset, end));
        } 
     }

}

function ExitingForm(FormType)
{
	if (FormType != 2) 
		{
		registerForm(CreateUserFormStr(FormType));
		//alert(CreateUserFormStr(FormType));
		}
Exiting()
}

function registerForm(name) 
{
   var today = new Date();
   var expires = new Date();
   expires.setTime(today.getTime() + 1000*60*60*24*365);  //expire in 1 year
   setCookie("SWform", name, expires);
}

function CreateUserFormStr(FormType)
{
var FrmFlds="";
FrmFlds+= FormType + "~"
FrmFlds+= document.Paymentinfo("UserOrderId").value + "~"
FrmFlds+= document.Paymentinfo("firstname").value + "~"
FrmFlds+= document.Paymentinfo("lastname").value + "~"
FrmFlds+= document.Paymentinfo("company").value + "~"
FrmFlds+= document.Paymentinfo("address1").value + "~"
FrmFlds+= document.Paymentinfo("address2").value + "~"
FrmFlds+= document.Paymentinfo("city").value + "~"

if (document.Paymentinfo("state").value == "" || document.Paymentinfo("state").value == "Other")
	{
	FrmFlds+= document.Paymentinfo("stateother").value + "~"
	}
else
	{
	FrmFlds+= document.Paymentinfo("state").value + "~"
	}

FrmFlds+= document.Paymentinfo("zipcode").value + "~"
FrmFlds+= document.Paymentinfo("country").value + "~"
FrmFlds+= document.Paymentinfo("phone1").value + "~"
FrmFlds+= document.Paymentinfo("phone2").value + "~"
FrmFlds+= document.Paymentinfo("email").value + "~"
FrmFlds+= document.Paymentinfo("realtick").value + "~"
FrmFlds+= document.Paymentinfo("Comments").value + "~"
FrmFlds+= document.Paymentinfo("DLAagree").checked + "~"


if (document.Paymentinfo("CurrentDatafeed").value == "" || document.Paymentinfo("CurrentDatafeed").value == "Other")
	{
	FrmFlds+= document.Paymentinfo("DatafeedOther").value + "~"
	}
else
	{
	FrmFlds+= document.Paymentinfo("CurrentDatafeed").value + "~"
	}

if (document.Paymentinfo("realtime").value == "" || document.Paymentinfo("realtime").value == "Other")
	{
	FrmFlds+= document.Paymentinfo("BrokerOther").value + "~"
	}
else
	{
	FrmFlds+= document.Paymentinfo("realtime").value + "~"
	}

if (document.Paymentinfo("referred").value == "" || document.Paymentinfo("referred").value == "Other")
	{
	FrmFlds+= document.Paymentinfo("ReferredOther").value + "~"
	}
else
	{
	FrmFlds+= document.Paymentinfo("referred").value + "~"
	}

//type 0 trial
if (FormType == 0)
	{
	FrmFlds+= document.Paymentinfo("Searchtype").value + "~"
	}

return FrmFlds;
}



function register(name1,name2) 
{
   var today = new Date();
   var expires = new Date();
   expires.setTime(today.getTime() + 1000*60*60*24*30);  //expire in 30 days
   setCookie("SWuser", name1, expires);
   setCookie("SWuser2", name2, expires);
}

function Exiting()
{
	register(CreateSelectionStr(),CreatePricesStr());
}

function CreatePricesStr()
{
var txt="";
for (lp = 0 ; lp < ProductsCount ; lp++)
	{
	if (Number(CustomPriceFlags[lp]) != "")
		{txt+= CustomPriceFlags[lp];}
	else
		{txt+= "";}
	if (lp < ProductsCount-1) { txt+= ","; }
	}
return txt;
}

function CreateSelectionStr()
{
var txt="";
for (lp = 0 ; lp < ProductsCount ; lp++)
	{
	txt+= OrderFlags[lp];
	if (lp < ProductsCount-1) { txt+= ","; }
	}
return txt;
}

function SetOrderFlags(selections)
{
var txt = selections.split(",");
var cnt = txt.length;

for (lp = 0 ; lp < cnt ; lp++)
	{
	OrderFlags[lp] = Number(txt[lp]);
	}
return txt;
}

function SetPriceFlags(selections)
{
var txt = selections.split(",");
var cnt = txt.length;

for (lp = 0 ; lp < cnt ; lp++)
	{
	CustomPriceFlags[lp] = txt[lp];
	}
return txt;

}

function AnyGrpSelected(ChkGrp)
{
var ret = false;

for (lp = 0;lp < ProductsCount; lp++)
	{
	if (OrderFlags[lp] == 1 && ProductsList[lp][0] == ChkGrp )
		{
		ret = true;
		break;
		}	
	}
return ret;
}

function CheckOut() {
var txt;	
	if (document.Paymentinfo["Products"].value != "Trial Request")
	{
	document.Paymentinfo["Ordered"].value = CreateSelectionStr();
	txt = "";
	for (lp = 0;lp < ProductsCount;lp++) 
		{
		if (OrderFlags[lp] == 1)
			{
			if (txt.length > 0) {txt+= "~"}
			txt+= ProductsList[lp][1]+"~"+ProductsList[lp][2]
			}
		}
	document.Paymentinfo["Products"].value = txt;
	}
	document.Paymentinfo.submit();
 }


function Validate(TrialOrOrder)
{
var errtx = "";

	//DLA agreement
	
	if (document.Paymentinfo("DLAagree").checked == false)
		{
		errtx+= "Must read and agree to the DLA\n";
		}
	//FirstName
	document.Paymentinfo("firstname").value = Trim(document.Paymentinfo("firstname").value);
	if (document.Paymentinfo("firstname").value == "")
		{
		errtx+= "First Name Required\n";
		}
		else 
		{
		if (isName(document.Paymentinfo("firstname").value) == "")
			{
			errtx+= "Invalid Characters in First Name\n";
			}
		}
	//LastName
	document.Paymentinfo("lastname").value = Trim(document.Paymentinfo("lastname").value);
	if (document.Paymentinfo("lastname").value == "")
		{
		errtx+= "Last Name Required\n";
		}
		else 
		{
		if (isName(document.Paymentinfo("lastname").value) == "")
			{
			errtx+= "Invalid Characters in Last Name\n";
			}
		}

	//ADDRESS 1
	document.Paymentinfo("address1").value = Trim(document.Paymentinfo("address1").value);
	if (document.Paymentinfo("address1").value == "")
		{
		errtx+= "Address 1 Required\n";
		}

	//CITY
	document.Paymentinfo("city").value = Trim(document.Paymentinfo("city").value);
	if (document.Paymentinfo("city").value == "")
		{
		errtx+= "City Required\n";
		}

	//STATE 
	document.Paymentinfo("stateother").value = Trim(document.Paymentinfo("stateother").value);
	if (document.Paymentinfo("state").value == "" && document.Paymentinfo("stateother").value == "")
		{
		errtx+= "State Required\n";
		}

	//Zip 
	document.Paymentinfo("zipcode").value = Trim(document.Paymentinfo("zipcode").value);
	if (document.Paymentinfo("zipcode").value == "")
		{
		errtx+= "Zip Code Required\n";
		}
		else 
		{
		if (isZip(document.Paymentinfo("zipcode").value) == false)
			{
			errtx+= "Invalid Zip Code\n";
			}
		}

	//PHONE1
	document.Paymentinfo("phone1").value = Trim(document.Paymentinfo("phone1").value);
	if (document.Paymentinfo("phone1").value == "")
		{
		errtx+= "Phone Number Required\n";
		}
		else 
		{
		if (isPhone(document.Paymentinfo("phone1").value) == "")
			{
			errtx+= "Invalid Day Time Phone Number\n";
			}
			else
			{
			document.Paymentinfo("phone1").value = isPhone(document.Paymentinfo("phone1").value);
			}
		}
	//PHONE2
	document.Paymentinfo("phone2").value = Trim(document.Paymentinfo("phone2").value);
	if (document.Paymentinfo("phone2").value == "")
		{
		document.Paymentinfo("phone2").value = document.Paymentinfo("phone1").value;
		}
		else 
		{
		if (isPhone(document.Paymentinfo("phone2").value) == "")
			{
			errtx+= "Invalid Evening Phone Number\n";
			}
			else
			{
			document.Paymentinfo("phone2").value = isPhone(document.Paymentinfo("phone2").value);
			}
		}

	//EMAIL
	document.Paymentinfo("email").value = Trim(document.Paymentinfo("email").value);
	if (document.Paymentinfo("email").value == "" )
		{
		errtx+= "Email Required\n";
		}
		else 
		{
		if (CheckEmailText(document.Paymentinfo("email").value) == false)
			{
			errtx+= "Invalid Email Format\n";
			}
		}


	//REALTICK USER
	document.Paymentinfo("realtick").value = Trim(document.Paymentinfo("realtick").value);
	if (document.Paymentinfo("realtick").value == "" )
		{
		errtx+= "Real Tick Username Required\n";
		}


	//if (TrialOrOrder == 0) 
		//{
		//DATA FEED
		document.Paymentinfo("DatafeedOther").value = Trim(document.Paymentinfo("DatafeedOther").value);
		if ((document.Paymentinfo("CurrentDatafeed").value == "" || document.Paymentinfo("CurrentDatafeed").value == "Other" )&& document.Paymentinfo("DatafeedOther").value == "")
			{
			errtx+= "Data Feed Required\n";
			}
		//}

		//trial Broker / orders broker data feed
		document.Paymentinfo("BrokerOther").value = Trim(document.Paymentinfo("BrokerOther").value);
		if ((document.Paymentinfo("realtime").value == "" || document.Paymentinfo("realtime").value == "Other") && document.Paymentinfo("BrokerOther").value == "")
			{
			errtx+= "Broker Required\n";
			}



		//referred / ReferredOther
		document.Paymentinfo("ReferredOther").value = Trim(document.Paymentinfo("ReferredOther").value);
		if ((document.Paymentinfo("referred").value == "" || document.Paymentinfo("referred").value == "Other") && document.Paymentinfo("ReferredOther").value == "")
			{
			errtx+= "Referred Required\n";
			}

//Submit if no errors
	if (errtx == "")
		{
		document.Paymentinfo["PageType"].value = 2;
		//document.Paymentinfo.submit();
		CheckOut()
		return
		}

err:
alert(errtx);
return;
}

function Trim(Txt)
{
var Buf = "";
var Chr;
var St=0;En=Txt.length-1;

	//trim string start 
	Chr = Txt.substr(St,1);
	while (Chr == " " && St < Txt.length)
		{
		St++;
		Chr = Txt.substr(St,1);
		}

	//trim string start 
	Chr = Txt.substr(En,1);
	while (Chr == " " && En > 0)
		{
		En--;
		Chr = Txt.substr(En,1);
		}
Buf = Txt.substr(St,1+En-St);
return Buf;
}



function UserNumber()
{
if (isId(document.Paymentinfo("UserEnterId").value) == true)
	{
	CheckOut()
	}
else
	{
	alert("Invalid OrderId");
	}

return
}

function isId(Txt)  // 4 letters and 4 num's 
{
var result = false
var Cnt,Pos,Chr

	Pos = 0
	CntL = 0
	while (Pos < Txt.length && CntL <= 4 )  
	{
	Chr = Txt.substr(Pos,1)
	if ((Chr.charCodeAt(0) >= 65 && Chr.charCodeAt(0) <= 90) || (Chr.charCodeAt(0) >= 97 && Chr.charCodeAt(0) <= 122)) 
		{
		CntL++
		}
	else
		{
		break
		}
	Pos++
	}

	CntN = 0
	while (Pos < Txt.length && CntN <= 4 )  
	{
	Chr = Txt.substr(Pos,1)
	if (Chr.charCodeAt(0) >= 48 && Chr.charCodeAt(0) <= 57) 
		{
		CntN++
		}
	else
		{
		break
		}
	Pos++
	}
//alert(CntL + "  " + CntN);
if ( CntL == 4 && CntN == 4 ) 
	{
	result = true
	}

return result
}



function isZip(Txt)  // at lest 4 number in line
{
var result = false
var Cnt,Pos,Chr

	Pos = 0
	Cnt = 0
	while (Pos < Txt.length && Cnt <= 4 )  
	{
	Chr = Txt.substr(Pos,1)
	if (Chr.charCodeAt(0) >= 48 && Chr.charCodeAt(0) <= 57) 
		{Cnt++
		//alert("Cnt" + Pos + "  " + Cnt)
		}
	else
		{
		//alert("Not"+Pos + "  " + Cnt)
		if (Cnt > 1)  //have some' but not enought chars
			{
			break
			}
		}
	Pos++
	}
if ( Cnt >= 4) 
	{
	result = true
	}

return result
}





function isPhone(Txt)
{
var result = ""
var Lp1,Cnt,Pos,Chr,Buf,Flg1,Flg2,Flg3,RetVal
var Val1 = "-1"
var Val2 = "-1"
var Val3 = "-1"
var Extra = ""

Flg1 = false;Flg2 = false;Flg3 = false
Pos = 0

//Area Code
	Cnt = 1;Buf = ""
	while (Pos < Txt.length && Cnt <= 3 )  //Get Area 3 numbers
	{
	Chr = Txt.substr(Pos,1)
	if (Chr.charCodeAt(0) >= 48 && Chr.charCodeAt(0) <= 57) 
		{Buf+= Chr;Cnt++}
	else
		{
		if (Cnt > 1)  //have some' but not enought chars
			{
			break
			}
		}
	Pos++
	}
	if (Buf.length == 3 && isNaN(Buf) == false) //Is a 3 digit number 
	{
	if (Number(Buf) > 0) {Flg1 = true;Val1 = Buf}  //Area OK
	}
//alert(Buf)
//First 3 Digits 
	Cnt = 1;Buf = ""
	while (Pos < Txt.length && Cnt <= 3 )  //Get first set of 3 numbers
	{
	Chr = Txt.substr(Pos,1)
	if (Chr.charCodeAt(0) >= 48 && Chr.charCodeAt(0) <= 57) 
		{Buf+= Chr;Cnt++}
	else
		if (Cnt > 1)  //have some' but not enought chars
			{
			break
			}
	Pos++
	}
	if (Buf.length == 3 && isNaN(Buf) == false) //Is a 3 digit number 
	{
	if (Number(Buf) > 0 && Number(Buf) != 555 ) {Flg2 = true;Val2 = Buf}  //First 3 didits OK
	}

//Last 4 Digits 
	Cnt = 1;Buf = ""
	while (Pos < Txt.length && Cnt <= 4 )  //Get last set of 4
	{
	Chr = Txt.substr(Pos,1)
	if (Chr.charCodeAt(0) >= 48 && Chr.charCodeAt(0) <= 57) 
		{Buf+= Chr;Cnt++}
	else
		if (Cnt > 1)  //have some' but not enought chars
			{
			break
			}
	Pos++
	}
	if (Buf.length == 4 && isNaN(Buf) == false) //Is a 4 digit number 
	{
	Flg3 = true  //Last 4 digits OK
	Val3 = Buf
	}

	// Extra = Txt.substr(Pos)
	Cnt = 1;Buf = ""
	while (Pos < Txt.length)  //Get last set of 4
	{
	Chr = Txt.substr(Pos,1)
	if (Chr.charCodeAt(0) >= 48 && Chr.charCodeAt(0) <= 57) 
		{Buf+= Chr;Cnt++}
	Pos++
	}
	Extra = Buf;

//alert(Buf)

//alert("Flg1="+Flg1+" " +"Flg2="+Flg2+" " +"Flg3="+Flg3)
if (Flg1 == true && Flg2 == true && Flg3 == true)
	{
	result = Val1 + "-" + Val2 + "-" + Val3
	if  (Extra.length > 0) { result+= " X" + Extra}
	}
return result;
}



function isName(Txt)
{
  var result = false
  var theStr = new String(Txt)
  var Pos = 0
  var CntGood = 0
  var CntBad = 0
  var Buf = ""
  if (theStr.length <= 0) {return result;}

	while (Pos < theStr.length )  
	{
	Chr = Txt.substr(Pos,1)
	if ((Chr.charCodeAt(0) >= 65 && Chr.charCodeAt(0) <= 90) || (Chr.charCodeAt(0) >= 97 && Chr.charCodeAt(0) <= 122) || Chr.charCodeAt(0) == 32) 
		{
		CntGood++
		}
	else
		{  //Not alpha char
			CntBad++
		}
	Pos++
	}
if (CntBad == 0) {result = true}
return result;
}

//======================================================================================================
//======================================================================================================
//======================================================================================================
function CheckEmailText(Txt)
{
  var result = false
  var theStr = new String(Txt)
  var Pos = 0
  var StPos = 0

  if (theStr.length <= 0) {return result;}
  
  //Check for Something and ''
  Pos = theStr.substr(StPos).indexOf("@")
  if (Pos >= 1 ) 
  	{
	if (CountSpaces(theStr.substr(StPos,Pos)) == Pos) {return result;}
	}
	else
	{
	return result;
	}
  //Check for Something and '.'
  StPos = Pos+1
  Pos = theStr.substr(StPos).indexOf(".")
  if (Pos >= 1 ) 
  	{
	if (CountSpaces(theStr.substr(StPos,Pos)) == Pos) {return result;}
	}
	else
	{
	return result;
	}
  
  //Check for Something after the '.'
  StPos+= Pos+1
  if (CountSpaces(theStr.substr(StPos)) == theStr.substr(StPos).length ) {return result;}
  

result = true
return result;
}

//======================================================================================================
//======================================================================================================
//======================================================================================================
function CountSpaces(Txt)
{
  var theStr = new String(Txt)
  var Pos = 0
  var CntSpcs = 0
  var Chr = ""
  
  if (theStr.length <= 0) {return CntSpcs;}

	while (Pos < theStr.length )  //Get Area 3 numbers
	{
	Chr = theStr.substr(Pos,1)
	if (Chr.charCodeAt(0) == 32) 
		{
		CntSpcs++
		}
	Pos++
	}
return CntSpcs;
}



function SelectState(TheState)
{
var Cnt,lp;
if (TheState.length == 0) return;

Cnt = document.Paymentinfo["state"].length;
for (lp = 0;lp < Cnt;lp++)
	{
	document.Paymentinfo["state"].selectedIndex = lp;
	if (document.Paymentinfo["state"].value == TheState) 
		{
		break;
		}
	}
if (lp >= Cnt) 
	{
	document.Paymentinfo["state"].selectedIndex = 0;
	document.Paymentinfo["stateother"].value = TheState;
	}
return
}


function SelectCountry(TheCountry)
{
var Cnt,lp;
if (TheCountry.length == 0) return;

Cnt = document.Paymentinfo["country"].length;
for (lp = 0;lp < Cnt;lp++)
	{
	document.Paymentinfo["country"].selectedIndex = lp;
	if (document.Paymentinfo["country"].value == TheCountry) 
		{
		break;
		}
	}
if (lp >= Cnt) 
	{
	document.Paymentinfo["country"].value = "us";
	}
return
}


function SelectStype(TheStype)
{
var Cnt,lp;
if (TheStype.length == 0) return;

Cnt = document.Paymentinfo["Searchtype"].length;
for (lp = 0;lp < Cnt;lp++)
	{
	document.Paymentinfo["Searchtype"].selectedIndex = lp;
	if (document.Paymentinfo["Searchtype"].value == TheStype) 
		{
		break;
		}
	}
if (lp >= Cnt) 
	{
	document.Paymentinfo["Searchtype"].selectedIndex = 0;
	}
return
}



function SelectDfeed(TheDfeed)
{
var Cnt,lp;
//alert(cause);
if (TheDfeed.length == 0) return;
Cnt = document.Paymentinfo["CurrentDatafeed"].length;
for (lp = 0;lp < Cnt;lp++)
	{
	document.Paymentinfo["CurrentDatafeed"].selectedIndex = lp;
	if (document.Paymentinfo["CurrentDatafeed"].value == TheDfeed) 
		{
		break;
		}
	}
if (lp >= Cnt) 
	{
	document.Paymentinfo["CurrentDatafeed"].value = "Other";
	document.Paymentinfo["DatafeedOther"].value = TheDfeed;
	}
return
}


function SelectRTime(TheRtime)
{
var Cnt,lp;
//alert(cause);
if (TheRtime.length == 0) return;

Cnt = document.Paymentinfo["realtime"].length;
for (lp = 0;lp < Cnt;lp++)
	{
	document.Paymentinfo["realtime"].selectedIndex = lp;
	if (document.Paymentinfo["realtime"].value == TheRtime) 
		{
		break;
		}
	}
if (lp >= Cnt) 
	{
	document.Paymentinfo["realtime"].value = "Other";
	document.Paymentinfo["BrokerOther"].value = TheRtime;
	}
return
}




function SelectReferred(TheRef)
{
var Cnt,lp;
if (TheRef.length == 0) return;

Cnt = document.Paymentinfo["referred"].length;
for (lp = 0;lp < Cnt;lp++)
	{
	document.Paymentinfo["referred"].selectedIndex = lp;
	if (document.Paymentinfo["referred"].value == TheRef) 
		{
		break;
		}
	}
if (lp >= Cnt) 
	{
	document.Paymentinfo["referred"].value = "Other";
	document.Paymentinfo["ReferredOther"].value = TheRef;
	}
return
}


function SelectDLA(TheDLA)
{
if (TheDLA == 'true')
	{
	document.Paymentinfo["DLAagree"].checked = true
	}
else
	{
	document.Paymentinfo["DLAagree"].checked = false
	}	
return
}

function UserIdKey()
{
	if (event.keyCode == 13) 
		{
		UserNumber()
		event.returnValue=false
		}
}