var weekend = [0,6];
var weekendColor = "#e0e0e0";
var fontface = "Verdana";
var fontsize = 2;

var gNow = new Date();
var ggWinCal;
isNav = (navigator.appName.indexOf("Netscape") != -1) ? true : false;
isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;

Calendar.Months = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"];

// Non-Leap year Month days..
Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
// Leap year Month days..
Calendar.lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

function Calendar(p_item, p_WinCal, p_month, p_year, p_format) {
	if ((p_month == null) && (p_year == null))	return;

	if (p_WinCal == null)
		this.gWinCal = ggWinCal;
	else
		this.gWinCal = p_WinCal;
	
	if (p_month == null) {
		this.gMonthName = null;
		this.gMonth = null;
		this.gYearly = true;
	} else {
		this.gMonthName = Calendar.get_month(p_month);
		this.gMonth = new Number(p_month);
		this.gYearly = false;
	}

	this.gYear = p_year;
	this.gFormat = p_format;
	this.gBGColor = "white";
	this.gFGColor = "black";
	this.gTextColor = "black";
	this.gHeaderColor = "black";
	this.gReturnItem = p_item;
}

Calendar.get_month = Calendar_get_month;
Calendar.get_daysofmonth = Calendar_get_daysofmonth;
Calendar.calc_month_year = Calendar_calc_month_year;
Calendar.print = Calendar_print;

function Calendar_get_month(monthNo) {
	return Calendar.Months[monthNo];
}

function Calendar_get_daysofmonth(monthNo, p_year) {
	/* 
	Check for leap year ..
	1.Years evenly divisible by four are normally leap years, except for... 
	2.Years also evenly divisible by 100 are not leap years, except for... 
	3.Years also evenly divisible by 400 are leap years. 
	*/
	if ((p_year % 4) == 0) {
		if ((p_year % 100) == 0 && (p_year % 400) != 0)
			return Calendar.DOMonth[monthNo];
	
		return Calendar.lDOMonth[monthNo];
	} else
		return Calendar.DOMonth[monthNo];
}

function Calendar_calc_month_year(p_Month, p_Year, incr) {
	/* 
	Will return an 1-D array with 1st element being the calculated month 
	and second being the calculated year 
	after applying the month increment/decrement as specified by 'incr' parameter.
	'incr' will normally have 1/-1 to navigate thru the months.
	*/
	var ret_arr = new Array();
	
	if (incr == -1) {
		// B A C K W A R D
		if (p_Month == 0) {
			ret_arr[0] = 11;
			ret_arr[1] = parseInt(p_Year) - 1;
		}
		else {
			ret_arr[0] = parseInt(p_Month) - 1;
			ret_arr[1] = parseInt(p_Year);
		}
	} else if (incr == 1) {
		// F O R W A R D
		if (p_Month == 11) {
			ret_arr[0] = 0;
			ret_arr[1] = parseInt(p_Year) + 1;
		}
		else {
			ret_arr[0] = parseInt(p_Month) + 1;
			ret_arr[1] = parseInt(p_Year);
		}
	}
	
	return ret_arr;
}

function Calendar_print() {
	ggWinCal.print();
}

function Calendar_calc_month_year(p_Month, p_Year, incr) {
	/* 
	Will return an 1-D array with 1st element being the calculated month 
	and second being the calculated year 
	after applying the month increment/decrement as specified by 'incr' parameter.
	'incr' will normally have 1/-1 to navigate thru the months.
	*/
	var ret_arr = new Array();
	
	if (incr == -1) {
		// B A C K W A R D
		if (p_Month == 0) {
			ret_arr[0] = 11;
			ret_arr[1] = parseInt(p_Year) - 1;
		}
		else {
			ret_arr[0] = parseInt(p_Month) - 1;
			ret_arr[1] = parseInt(p_Year);
		}
	} else if (incr == 1) {
		// F O R W A R D
		if (p_Month == 11) {
			ret_arr[0] = 0;
			ret_arr[1] = parseInt(p_Year) + 1;
		}
		else {
			ret_arr[0] = parseInt(p_Month) + 1;
			ret_arr[1] = parseInt(p_Year);
		}
	}
	
	return ret_arr;
}

// This is for compatibility with Navigator 3, we have to create and discard one object before the prototype object exists.
new Calendar();

Calendar.prototype.getMonthlyCalendarCode = function() {
	var vCode = "";
	var vHeader_Code = "";
	var vData_Code = "";
	
	// Begin Table Drawing code here..
	vCode = vCode + "<TABLE BORDER=1 BGCOLOR=\"" + this.gBGColor + "\">";
	
	vHeader_Code = this.cal_header();
	vData_Code = this.cal_data();
	vCode = vCode + vHeader_Code + vData_Code;
	
	vCode = vCode + "</TABLE>";
	
	return vCode;
}

Calendar.prototype.show = function() {
	var vCode = "";
	
	this.gWinCal.document.open();

	// Setup the page...
	this.wwrite("<html>");
	this.wwrite("<head><title>Calendar</title>");
	this.wwrite("</head>");

	this.wwrite("<body " + 
		"link=\"" + this.gLinkColor + "\" " + 
		"vlink=\"" + this.gLinkColor + "\" " +
		"alink=\"" + this.gLinkColor + "\" " +
		"text=\"" + this.gTextColor + "\">");
	this.wwriteA("<FONT FACE='" + fontface + "' SIZE=2><B>");
	this.wwriteA(this.gMonthName + " " + this.gYear);
	this.wwriteA("</B><BR>");

	// Show navigation buttons
	var prevMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, -1);
	var prevMM = prevMMYYYY[0];
	var prevYYYY = prevMMYYYY[1];

	var nextMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, 1);
	var nextMM = nextMMYYYY[0];
	var nextYYYY = nextMMYYYY[1];
	
	this.wwrite("<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=0 BGCOLOR='#e0e0e0'><TR><TD ALIGN=center>");
	this.wwrite("[<A HREF=\"" +
		"javascript:window.opener.Build(" + 
		"'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)-1) + "', '" + this.gFormat + "'" +
		");" +
		"\"><<<\/A>]</TD><TD ALIGN=center>");
	this.wwrite("[<A HREF=\"" +
		"javascript:window.opener.Build(" + 
		"'" + this.gReturnItem + "', '" + prevMM + "', '" + prevYYYY + "', '" + this.gFormat + "'" +
		");" +
		"\"><<\/A>]</TD><TD ALIGN=center>");
	this.wwrite("[<A HREF=\"javascript:window.print();\">Print</A>]</TD><TD ALIGN=center>");
	this.wwrite("[<A HREF=\"" +
		"javascript:window.opener.Build(" + 
		"'" + this.gReturnItem + "', '" + nextMM + "', '" + nextYYYY + "', '" + this.gFormat + "'" +
		");" +
		"\">><\/A>]</TD><TD ALIGN=center>");
	this.wwrite("[<A HREF=\"" +
		"javascript:window.opener.Build(" + 
		"'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)+1) + "', '" + this.gFormat + "'" +
		");" +
		"\">>><\/A>]</TD></TR></TABLE><BR>");

	// Get the complete calendar code for the month..
	vCode = this.getMonthlyCalendarCode();
	this.wwrite(vCode);

	this.wwrite("</font></body></html>");
	this.gWinCal.document.close();
}

Calendar.prototype.showY = function() {
	var vCode = "";
	var i;
	var vr, vc, vx, vy;		// Row, Column, X-coord, Y-coord
	var vxf = 285;			// X-Factor
	var vyf = 200;			// Y-Factor
	var vxm = 10;			// X-margin
	var vym;				// Y-margin
	if (isIE)	vym = 75;
	else if (isNav)	vym = 25;
	
	this.gWinCal.document.open();

	this.wwrite("<html>");
	this.wwrite("<head><title>Calendar</title>");
	this.wwrite("<style type='text/css'>\n<!--");
	for (i=0; i<12; i++) {
		vc = i % 3;
		if (i>=0 && i<= 2)	vr = 0;
		if (i>=3 && i<= 5)	vr = 1;
		if (i>=6 && i<= 8)	vr = 2;
		if (i>=9 && i<= 11)	vr = 3;
		
		vx = parseInt(vxf * vc) + vxm;
		vy = parseInt(vyf * vr) + vym;

		this.wwrite(".lclass" + i + " {position:absolute;top:" + vy + ";left:" + vx + ";}");
	}
	this.wwrite("-->\n</style>");
	this.wwrite("</head>");

	this.wwrite("<body " + 
		"link=\"" + this.gLinkColor + "\" " + 
		"vlink=\"" + this.gLinkColor + "\" " +
		"alink=\"" + this.gLinkColor + "\" " +
		"text=\"" + this.gTextColor + "\">");
	this.wwrite("<FONT FACE='" + fontface + "' SIZE=2><B>");
	this.wwrite("Year : " + this.gYear);
	this.wwrite("</B><BR>");

	// Show navigation buttons
	var prevYYYY = parseInt(this.gYear) - 1;
	var nextYYYY = parseInt(this.gYear) + 1;
	
	this.wwrite("<TABLE WIDTH='100%' BORDER=1 CELLSPACING=0 CELLPADDING=0 BGCOLOR='#e0e0e0'><TR><TD ALIGN=center>");
	this.wwrite("[<A HREF=\"" +
		"javascript:window.opener.Build(" + 
		"'" + this.gReturnItem + "', null, '" + prevYYYY + "', '" + this.gFormat + "'" +
		");" +
		"\" alt='Prev Year'><<<\/A>]</TD><TD ALIGN=center>");
	this.wwrite("[<A HREF=\"javascript:window.print();\">Print</A>]</TD><TD ALIGN=center>");
	this.wwrite("[<A HREF=\"" +
		"javascript:window.opener.Build(" + 
		"'" + this.gReturnItem + "', null, '" + nextYYYY + "', '" + this.gFormat + "'" +
		");" +
		"\">>><\/A>]</TD></TR></TABLE><BR>");

	// Get the complete calendar code for each month..
	var j;
	for (i=11; i>=0; i--) {
		if (isIE)
			this.wwrite("<DIV ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");
		else if (isNav)
			this.wwrite("<LAYER ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");

		this.gMonth = i;
		this.gMonthName = Calendar.get_month(this.gMonth);
		vCode = this.getMonthlyCalendarCode();
		this.wwrite(this.gMonthName + "/" + this.gYear + "<BR>");
		this.wwrite(vCode);

		if (isIE)
			this.wwrite("</DIV>");
		else if (isNav)
			this.wwrite("</LAYER>");
	}

	this.wwrite("</font><BR></body></html>");
	this.gWinCal.document.close();
}

Calendar.prototype.wwrite = function(wtext) {
	this.gWinCal.document.writeln(wtext);
}

Calendar.prototype.wwriteA = function(wtext) {
	this.gWinCal.document.write(wtext);
}

Calendar.prototype.cal_header = function() {
	var vCode = "";
	
	vCode = vCode + "<TR>";
	vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Sun</B></FONT></TD>";
	vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Mon</B></FONT></TD>";
	vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Tue</B></FONT></TD>";
	vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Wed</B></FONT></TD>";
	vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Thu</B></FONT></TD>";
	vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Fri</B></FONT></TD>";
	vCode = vCode + "<TD WIDTH='16%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Sat</B></FONT></TD>";
	vCode = vCode + "</TR>";
	
	return vCode;
}

Calendar.prototype.cal_data = function() {
	var vDate = new Date();
	vDate.setDate(1);
	vDate.setMonth(this.gMonth);
	vDate.setFullYear(this.gYear);

	var vFirstDay=vDate.getDay();
	var vDay=1;
	var vLastDay=Calendar.get_daysofmonth(this.gMonth, this.gYear);
	var vOnLastDay=0;
	var vCode = "";

	/*
	Get day for the 1st of the requested month/year..
	Place as many blank cells before the 1st day of the month as necessary. 
	*/

	vCode = vCode + "<TR>";
	for (i=0; i<vFirstDay; i++) {
		vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(i) + "><FONT SIZE='2' FACE='" + fontface + "'> </FONT></TD>";
	}

	// Write rest of the 1st week
	for (j=vFirstDay; j<7; j++) {
		vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='2' FACE='" + fontface + "'>" + 
			"<A HREF='#' " + 
				"onClick=\"self.opener.document." + this.gReturnItem + ".value='" + 
				this.format_data(vDay) + 
				"';window.close();\">" + 
				this.format_day(vDay) + 
			"</A>" + 
			"</FONT></TD>";
		vDay=vDay + 1;
	}
	vCode = vCode + "</TR>";

	// Write the rest of the weeks
	for (k=2; k<7; k++) {
		vCode = vCode + "<TR>";

		for (j=0; j<7; j++) {
			vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='2' FACE='" + fontface + "'>" + 
				"<A HREF='#' " + 
					"onClick=\"self.opener.document." + this.gReturnItem + ".value='" + 
					this.format_data(vDay) + 
					"';window.close();\">" + 
				this.format_day(vDay) + 
				"</A>" + 
				"</FONT></TD>";
			vDay=vDay + 1;

			if (vDay > vLastDay) {
				vOnLastDay = 1;
				break;
			}
		}

		if (j == 6)
			vCode = vCode + "</TR>";
		if (vOnLastDay == 1)
			break;
	}
	
	// Fill up the rest of last week with proper blanks, so that we get proper square blocks
	for (m=1; m<(7-j); m++) {
		if (this.gYearly)
			vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) + 
			"><FONT SIZE='2' FACE='" + fontface + "' COLOR='gray'> </FONT></TD>";
		else
			vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) + 
			"><FONT SIZE='2' FACE='" + fontface + "' COLOR='gray'>" + m + "</FONT></TD>";
	}
	
	return vCode;
}

Calendar.prototype.format_day = function(vday) {
	var vNowDay = gNow.getDate();
	var vNowMonth = gNow.getMonth();
	var vNowYear = gNow.getFullYear();

	if (vday == vNowDay && this.gMonth == vNowMonth && this.gYear == vNowYear)
		return ("<FONT COLOR=\"RED\"><B>" + vday + "</B></FONT>");
	else
		return (vday);
}

Calendar.prototype.write_weekend_string = function(vday) {
	var i;

	// Return special formatting for the weekend day.
	for (i=0; i<weekend.length; i++) {
		if (vday == weekend[i])
			return (" BGCOLOR=\"" + weekendColor + "\"");
	}
	
	return "";
}

Calendar.prototype.format_data = function(p_day) {
	var vData;
	var vMonth = 1 + this.gMonth;
	vMonth = (vMonth.toString().length < 2) ? "0" + vMonth : vMonth;
	var vMon = Calendar.get_month(this.gMonth).substr(0,3).toUpperCase();
	var vFMon = Calendar.get_month(this.gMonth).toUpperCase();
	var vY4 = new String(this.gYear);
	var vY2 = new String(this.gYear.substr(2,2));
	var vDD = (p_day.toString().length < 2) ? "0" + p_day : p_day;

	switch (this.gFormat) {
		case "MM\/DD\/YYYY" :
			vData = vMonth + "\/" + vDD + "\/" + vY4;
			break;
		case "MM\/DD\/YY" :
			vData = vMonth + "\/" + vDD + "\/" + vY2;
			break;
		case "MM-DD-YYYY" :
			vData = vMonth + "-" + vDD + "-" + vY4;
			break;
		case "MM-DD-YY" :
			vData = vMonth + "-" + vDD + "-" + vY2;
			break;

		case "DD\/MON\/YYYY" :
			vData = vDD + "\/" + vMon + "\/" + vY4;
			break;
		case "DD\/MON\/YY" :
			vData = vDD + "\/" + vMon + "\/" + vY2;
			break;
		case "DD-MON-YYYY" :
			vData = vDD + "-" + vMon + "-" + vY4;
			break;
		case "DD-MON-YY" :
			vData = vDD + "-" + vMon + "-" + vY2;
			break;

		case "DD\/MONTH\/YYYY" :
			vData = vDD + "\/" + vFMon + "\/" + vY4;
			break;
		case "DD\/MONTH\/YY" :
			vData = vDD + "\/" + vFMon + "\/" + vY2;
			break;
		case "DD-MONTH-YYYY" :
			vData = vDD + "-" + vFMon + "-" + vY4;
			break;
		case "DD-MONTH-YY" :
			vData = vDD + "-" + vFMon + "-" + vY2;
			break;

		case "DD\/MM\/YYYY" :
			vData = vDD + "\/" + vMonth + "\/" + vY4;
			break;
		case "DD\/MM\/YY" :
			vData = vDD + "\/" + vMonth + "\/" + vY2;
			break;
		case "DD-MM-YYYY" :
			vData = vDD + "-" + vMonth + "-" + vY4;
			break;
		case "DD-MM-YY" :
			vData = vDD + "-" + vMonth + "-" + vY2;
			break;

		default :
			vData = vMonth + "\/" + vDD + "\/" + vY4;
	}

	return vData;
}

function Build(p_item, p_month, p_year, p_format) {
	var p_WinCal = ggWinCal;
	gCal = new Calendar(p_item, p_WinCal, p_month, p_year, p_format);

	// Customize your Calendar here..
	gCal.gBGColor="white";
	gCal.gLinkColor="black";
	gCal.gTextColor="black";
	gCal.gHeaderColor="darkgreen";

	// Choose appropriate show function
	if (gCal.gYearly)	gCal.showY();
	else	gCal.show();
}

function show_calendar() {
	/* 
		p_month : 0-11 for Jan-Dec; 12 for All Months.
		p_year	: 4-digit year
		p_format: Date format (mm/dd/yyyy, dd/mm/yy, ...)
		p_item	: Return Item.
	*/

	p_item = arguments[0];
	if (arguments[1] == null)
		p_month = new String(gNow.getMonth());
	else
		p_month = arguments[1];
	if (arguments[2] == "" || arguments[2] == null)
		p_year = new String(gNow.getFullYear().toString());
	else
		p_year = arguments[2];
	if (arguments[3] == null)
		p_format = "MM/DD/YYYY";
	else
		p_format = arguments[3];

	vWinCal = window.open("", "Calendar", 
		"width=250,height=250,status=no,resizable=no,top=200,left=200");
	vWinCal.opener = self;
	ggWinCal = vWinCal;

	Build(p_item, p_month, p_year, p_format);
}
/*
Yearly Calendar Code Starts here
*/
function show_yearly_calendar(p_item, p_year, p_format) {
	// Load the defaults..
	if (p_year == null || p_year == "")
		p_year = new String(gNow.getFullYear().toString());
	if (p_format == null || p_format == "")
		p_format = "MM/DD/YYYY";

	var vWinCal = window.open("", "Calendar", "scrollbars=yes");
	vWinCal.opener = self;
	ggWinCal = vWinCal;

	Build(p_item, null, p_year, p_format);
}

function OrderAlert(the_button)
{
var the_quote = this.window.document.FrontPage_Form1.Quoteno.value;
var the_po = this.window.document.FrontPage_Form1.po.value;
var the_enduser = this.window.document.FrontPage_Form1.enduser.value;
var the_customer = this.window.document.FrontPage_Form1.customer.value;
var the_drawing = this.window.document.FrontPage_Form1.drawing.value;
var the_product = this.window.document.FrontPage_Form1.product.value;
if (the_button == "PRICE")
{
	if ((the_customer > "0") && (the_enduser > "0"))
	{
	this.window.document.FrontPage_Form1.PriceOK.value = "OK";
	} else {
	this.window.document.FrontPage_Form1.PriceOK.value = "NO";
	alert('Please provide required information in marked areas')
	}
}

if (the_button == "ORDER")
{
   if ((the_product == "CRANE"))
	{
		
	if ((the_po > "0") && (the_customer > "0") && (the_enduser > "0") && (the_drawing == "YES"))
	{

	   if (confirm("By clicking OK you agree with PRICE INFORMATION and DRAWING DIMENSIONS\nOtherwise please return to the Quote to make necessary changes\n \nAny changes to the Drawing or Price not made through AQS\nwill not be considered after the Quote is posted\nand may require that a Change Order be issued with extra charges.\n \nThe final DEMAG CRANE ORDER FORM will either be found on your task bar \nor as a pop-up on your screen.\nPlease review before continuing."))
		{
		  if (confirm("Are you sure you want to place an Order"))
		  {
			this.window.document.FrontPage_Form1.Post.value	= "OK";
			alert('Order was successfully posted\nYour PO Number : ' + the_po + '\nOrder Reference Number : '+the_quote +'\nYou will receive E-mail notification');
//			transferxml('test');
		  } else {
			this.window.document.FrontPage_Form1.Post.value	= "NO";
			}
		  }		
	} else {
		this.window.document.FrontPage_Form1.Post.value	= "NO";
		if ((the_drawing == "YES"))
		{
			alert('Please provide required information in marked areas')
		} else {
			alert('Please make sure you requested and received Crane Drawing\nbefore posting your order')
		}
	}
     } else {
	if ((the_po > "0") && (the_customer > "0") && (the_enduser > "0"))
	{
	  if (confirm("Are you sure you want to place an Order"))
	  {
		this.window.document.FrontPage_Form1.Post.value	= "OK";
		alert('Order was successfully posted\nYour PO Number : ' + the_po + '\nOrder Reference Number : '+the_quote +'\nYou will receive E-mail notification');
	  } else {
		this.window.document.FrontPage_Form1.Post.value	= "NO";
		}
	} else {
		this.window.document.FrontPage_Form1.Post.value	= "NO";
		alert('Please provide required information in marked areas')
	}
     }
}
}

function UserAlert()
{
var the_country = this.window.document.FrontPage_Form1.country.value;
var the_company = this.window.document.FrontPage_Form1.company.value;
var the_address = this.window.document.FrontPage_Form1.address.value;
var the_city = this.window.document.FrontPage_Form1.city.value;
var the_state = this.window.document.FrontPage_Form1.state.value;
var the_zipcode = this.window.document.FrontPage_Form1.zipcode.value;
var the_contact = this.window.document.FrontPage_Form1.contact.value;
var the_phone = this.window.document.FrontPage_Form1.phone.value;
var the_email = this.window.document.FrontPage_Form1.email.value;
var the_interest = this.window.document.FrontPage_Form1.gencom.value;
if ((the_country == "") || (the_company == "") || (the_address == "") || (the_city == "") || (the_state == "") || (the_zipcode == "") || (the_contact == "") || (the_phone == "") || (the_email == "") || (the_interest == ""))
	{
	this.window.document.FrontPage_Form1.SaveOK.value = "NO";
	alert('Please provide required information in marked areas');
} else {
	this.window.document.FrontPage_Form1.SaveOK.value = "OK";
	}

}

function EndUserAlert()
{
var the_country = ignoreSpaces(this.window.document.FrontPage_Form1.country.value);
var the_company = ignoreSpaces(this.window.document.FrontPage_Form1.company.value);
var the_address = ignoreSpaces(this.window.document.FrontPage_Form1.address.value);
var the_city = ignoreSpaces(this.window.document.FrontPage_Form1.city.value);
var the_state = ignoreSpaces(this.window.document.FrontPage_Form1.state.value);
var the_zipcode = ignoreSpaces(this.window.document.FrontPage_Form1.zipcode.value);
var the_contact = ignoreSpaces(this.window.document.FrontPage_Form1.contact.value);
var the_phone = ignoreSpaces(this.window.document.FrontPage_Form1.phone.value);
var the_email = ignoreSpaces(this.window.document.FrontPage_Form1.email.value);
var the_interest = ignoreSpaces(this.window.document.FrontPage_Form1.gencom.value);
var the_account = ignoreSpaces(this.window.document.FrontPage_Form1.account.value);
if ((the_account == "") || (the_country == "") || (the_company == "") || (the_address == "") || (the_city == "") || (the_state == "") || (the_zipcode == "") || (the_contact == "") || (the_phone == "") || (the_email == "") || (the_interest == ""))
	{
	this.window.document.FrontPage_Form1.SaveOK.value = "NO";
	alert('Please provide required information in marked areas');
} else {
	this.window.document.FrontPage_Form1.SaveOK.value = "OK";
	}

}

function RequestaQuoteAlert()
{
var the_company = this.window.document.FrontPage_Form1.company.value;
var the_contact = this.window.document.FrontPage_Form1.contact.value;
var the_address = this.window.document.FrontPage_Form1.address.value;
var the_city = this.window.document.FrontPage_Form1.city.value;
var the_state = this.window.document.FrontPage_Form1.state.value;
var the_zipcode = this.window.document.FrontPage_Form1.zipcode.value;
var the_countryspaced = this.window.document.FrontPage_Form1.country.value;
var the_country = ignoreSpaces(the_countryspaced);
var the_phone = this.window.document.FrontPage_Form1.phone.value;
var the_email = this.window.document.FrontPage_Form1.email.value;
var the_codetail = this.window.document.FrontPage_Form1.codetail.value;
var the_gencom = this.window.document.FrontPage_Form1.gencom.value;
if ((the_company == "") || (the_contact == "") || (the_address == "") || (the_city == "") || (the_country == "") || (the_phone == "") || (the_email == "") || (the_codetail == "") || (the_gencom == ""))
	{
	this.window.document.FrontPage_Form1.SaveOK.value = "NO";
	alert('Please provide required information in marked areas');
} else {
  if (((the_country.toUpperCase() == "CANADA") || (the_country == "USA")) && ((the_state == "") || (the_zipcode == "")))
  {
	this.window.document.FrontPage_Form1.SaveOK.value = "NO";
	alert('USA/CANADA users please provide state/province and zipcode information');
  } else {

	this.window.document.FrontPage_Form1.SaveOK.value = "OK";
  }
}
}

function ignoreSpaces(string)
{
var temp = "";
string = '' + string;
splitstring = string.split(" ");
for(i = 0; i < splitstring.length; i++)
temp += splitstring[i];
return temp;
}
function RFQAlert(the_RFQ,the_button)
{
var the_enduser = ignoreSpaces(this.window.document.ordform.enduser.value);
var the_customer = ignoreSpaces(this.window.document.ordform.customer.value);
var the_d_req = ignoreSpaces(this.window.document.ordform.datebox1.value);
var the_deliv_req = ignoreSpaces(this.window.document.ordform.datebox2.value);
var the_compet = ignoreSpaces(this.window.document.ordform.compet.value);

if ((the_enduser == "") || (the_customer == "") || (the_d_req == "") || (the_deliv_req== "") || (the_compet == ""))
	{
	this.window.document.ordform.SaveOK.value = "NO";
	alert('Please provide required information in marked areas');
} else {
	this.window.document.ordform.SaveOK.value = "OK";
	if (the_button == "1")
		alert('Quote Request was successfully posted\nReference Number : '+the_RFQ +'\nYou will receive E-mail notification');
	if (the_button == "2")
		alert('Quote Request Reference Number : '+the_RFQ);  
}

}

function ButtonState()
{
var the_hoist = this.window.document.FrontPage_Form1.hoist.value;
alert(this.window.document.FrontPage_Form1.ButHstType.value);
if (the_hoist == "ON")
{
	this.window.document.FrontPage_Form1.ButHstType.value = "submit";
	this.window.document.FrontPage_Form1.ButHstName.value = "ButCtrl";
} else {
	this.window.document.FrontPage_Form1.ButHstType.value = "hidden";
	this.window.document.FrontPage_Form1.ButHstName.value = "ButNoName";
}
}

function GeneralAlert()
{
var the_message = this.window.document.FrontPage_Form1.Message.value;
var the_button = this.window.document.FrontPage_Form1.Button.value;

	if (the_message > " ")
	{
	alert(the_message);
	this.window.document.FrontPage_Form1.Message.value = " ";
	this.window.document.FrontPage_Form1.Button.value = " "
	}
}

function EmailConfirm()
{
var the_message = this.window.document.FrontPage_Form1.EmailMessage.value;
 if (the_message > " ") 
 {
	if (confirm(the_message))
	{
	this.window.document.FrontPage_Form1.EmailOK.value = "OK";
	}else{
	this.window.document.FrontPage_Form1.EmailOK.value = "NO";
	}
 }
}

function SelectedItem(the_item)
{
this.window.document.FrontPage_Form1.SelectedItem.value = the_item;
alert('hi');
}

var DH   = new Array("Base mounted - DH","Close headroom motorized trolley - EK","Double rail trolley, style - EZ","","","");
var DHX   = new Array("Base mounted - DH","Close headroom motorized trolley - EK","Double rail trolley, style - EZ","","","");
var DR   = new Array("Double rail trolley, style - EZ","Close headroom motorized trolley - EK","Foot mounted - DR","","","");
var DRX   = new Array("Close headroom motorized trolley - EK","","","","","");
var DK   = new Array("Base mounted - DK","Std headroom push trolley - RU","Std headroom motorized trolley - EU","Close headroom push trolley - RK","Close headroom motorized trolley - EK","");
var DKX   = new Array("Base mounted - DK","Std headroom push trolley - RU","Std headroom motorized trolley - EU","","","");
var MPW  = new Array("Wire Rope Built Up Hoist - MPW","","","","","");
var DMV   = new Array("Manulift hoist - DMV","","","","","");
var DC   = new Array("All Models - DC","","","","","");
var DCM   = new Array("All Models - DCM","","","","","");
var WDH   = new Array("Wire rope winch - WDH","","","","","");
var Voltages1 =  new Array("460/3/60","575/3/60","115/1/60","","");
var Voltages2 =  new Array("460/3/60","575/3/60","230/3/60","115/1/60","");
var Voltages3 =  new Array("460/3/60","575/3/60","","",""); 
var Voltages4 =  new Array("460/3/60","575/3/60","230/3/60","",""); 
var Voltages5 =  new Array("460/3/60","","","",""); 
var span1 = new Array(("9'10"+'"'),("13'1"+'"'),("16'4"+'"'),("19'8"+'"'),("22'11"+'"'),("26'3"+'"'));
var span2 = new Array(("9'10"+'"'),("13'1"+'"'),("16'4"+'"'),("19'8"+'"'),("22'11"+'"'),(""));
var runway1 = new Array(("9'10"+'"'),("13'1"+'"'),("16'4"+'"'),("19'8"+'"'),("22'11"+'"'),("26'3"+'"'),("32'10"+'"'),("39'4"+'"'),("49'2"+'"'),("59'0"+'"'),("65'7"+'"'),("75'5"+'"'));
var runway2 = new Array(("9'10"+'"'),("13'1"+'"'),("16'4"+'"'),("19'8"+'"'),("22'11"+'"'),("26'3"+'"'),("32'10"+'"'),("39'4"+'"'),("49'2"+'"'),("59'0"+'"'),("65'7"+'"'),("78'7"+'"'));
var kbkhoist1 =  new Array("DC","DCM","");
var kbkhoist2 =  new Array("DC","","");
var conditions_C = new Array("like","","","","","");
var conditions_CS = new Array("=","","","","","");
var conditions_ND = new Array("=",">",">=","<","<=","");

function swapConditions(the_array_name)
{
    if(the_array_name=="crserial1_C" || the_array_name=="corder_C" || the_array_name=="endstate_C" || the_array_name=="rcrantyp_C")
    {
    var the_array_conditions = eval('conditions_CS');
    }else{
	    if(the_array_name=="customer_C" || the_array_name=="enduser_C")
	    {
	    var the_array_conditions = eval('conditions_C');
	    }else{
		    var the_array_conditions = eval('conditions_ND');
	    }
    }
    setOption(window.document.FrontPage_Form1.condition,the_array_conditions, 6, 0);
}


function swapOptions(the_array_name)
{
    var the_array_text = eval(the_array_name);
    setOption(window.document.FrontPage_Form1.hsmodel, the_array_text, 6, 1);
    if(the_array_name=="MPW")
    {
    var the_array_volt = eval('Voltages1');
    }else{
	    if(the_array_name=="DK")
	    {
	    var the_array_volt = eval('Voltages2');
	    }else{
		    if(the_array_name=="DR")
		    {
		    var the_array_volt = eval('Voltages3');
		    }else{
		    var the_array_volt = eval('Voltages4');
		         }	
 	         }
	 }
    setOption(window.document.FrontPage_Form1.voltage,the_array_volt, 4, 1);
}
function setOption(the_select, the_array, the_length, the_start)
{
    for (loop=0; loop < the_length; loop++)
    {
        the_select.options[loop+the_start].text = the_array[loop];
        the_select.options[loop+the_start].value = the_array[loop];
    }
}
function swapVoltages(the_array_name)
{
    if(the_array_name=="MPW")
    {
    var the_array_volt = eval('Voltages1');
    }else{
	    if(the_array_name=="DK")
	    {
	    var the_array_volt = eval('Voltages2');
	    }else{
		    if(the_array_name=="DR")
		    {
		    var the_array_volt = eval('Voltages3');

		    }else{
		    var the_array_volt = eval('Voltages4');
		         }	
	    }
    }

    setOption(window.document.FrontPage_Form1.voltage,the_array_volt, 4, 1);
}

function swapSpans(the_cap, the_start)
{
if (the_start == 0)
{
var the_r = this.window.document.FrontPage_Form1.runway.value
var the_s = this.window.document.FrontPage_Form1.span.value
if (the_r > "0" || the_s > "0")
{
alert('Please reselect Bridge, Runway Length and Hoist if Capacity is changed');
}
this.window.document.FrontPage_Form1.runway.value = " ";
this.window.document.FrontPage_Form1.span.value = " ";
}
    if(the_cap=="275" || the_cap=="550" || the_cap=="1100")
    {
    var the_array_span = eval('span1');
   }else{
    var the_array_span = eval('span2');
    }
    setKBK(window.document.FrontPage_Form1.span,the_array_span, 6, the_start);

    var the_array_runway = eval('runway2');
    if(the_cap=="275")
    {
    var the_array_runway = eval('runway1');
    }
    setKBK(window.document.FrontPage_Form1.runway,the_array_runway, 12, the_start);

    var the_array_hoist = eval('kbkhoist1');
    if(the_cap=="1100" || the_cap=="2200")
    {
    var the_array_hoist = eval('kbkhoist2');
    }
    setKBK(window.document.FrontPage_Form1.hoisttype,the_array_hoist, 3, the_start);

}
function setKBK(the_select, the_array, the_length, the_start)
{
    for (loop=0; loop < the_length; loop++)
    {
        the_select.options[loop+the_start].text = the_array[loop];
        the_select.options[loop+the_start].value = the_array[loop];
    }
}

function showtip(h_lines,add_text)
{
var h_l = h_lines;
helptip.value=add_text;
if (helptip.value > " ")
{
helptip.style.height=h_l*20;
helptip.style.width=200;
helptip.style.background="aqua";
helptip.style.top=20;
helptip.style.left=screen.width/3;
}else{
helptip.value="";
helptip.style.height=0;
helptip.style.width=0;
}
}

function hidetip()
{
helptip.value=""
helptip.style.height=0
helptip.style.width=0
}

function showtipwas(h_lines,add_text)
{
var h_l = h_lines;
helptip.value=add_text
helptip.style.height=h_l*20
helptip.style.width=185
helptip.style.top=window.event.y-20
helptip.style.left=window.event.x+10
}

function showtipstatusbar(h_lines,add_text)
{
window.status = add_text
}
function hidetipstatusbar()
{
window.status = ""      // clear the status bar
}

function NewWindow(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;
winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
win = window.open(mypage, myname, winprops)
if (parseInt(navigator.appVersion) >= 4) { 
win.window.focus(); }
}

function DownloadWindow(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;
winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
win = window.open(mypage, myname, winprops)

alert('Please wait for required information to download');

if (parseInt(navigator.appVersion) >= 4) 
{ win.window.focus(); }

}

var msg = "                           Please fill out Technical Information then click Save Selection to save it. Proceed to Commerical Information to complete your request.                         "
var delay = 150
var timerId
var maxCount = 0
var currCount = 1

function scrollMsg() {
        // set the number of times scrolling message is to run
        if (maxCount == 0) {
                maxCount = 50 * msg.length
        }
        window.status = msg
       
        
        // keep track of how many characters have scrolled
        currCount++
        // shift first character of msg to end of msg
        msg = msg.substring (1, msg.length) + msg.substring (0, 1)
        // test whether we've reached maximum character count
        if (currCount >= maxCount) {
                timerID = 0             // zero out the timer
                window.status = ""      // clear the status bar
                return                  // break out of function
        } else {
                // recursive call to this function
                timerId = setTimeout("scrollMsg()", delay)
        }
}

function hoisttype(lcht) {
	if (lcht > "0"){
		alert('Please scroll down to select Options')
        } else {
		alert('Define Hoist Type before requesting Options')
	}
}
function AlertOptions(the_language)
{
	if (the_language > ' ')
   {
		alert('Quote Proposals will be sent via E-mail');
   }else {
		alert('Please Select and Save Language before requesting Proposals');
	}
}

function mod10( cardNumber ) { // LUHN Formula for validation of credit card numbers.
var ar = new Array( cardNumber.length );
var i = 0,sum = 0;
for( i = 0; i < cardNumber.length; ++i ) {
	ar[i] = parseInt(cardNumber.charAt(i));
    	}
    	for( i = ar.length -2; i >= 0; i-=2 ) { // you have to start from the right, and work back.
    		ar[i] *= 2;							 // every second digit starting with the right most (check digit)
    		if( ar[i] > 9 ) ar[i]-=9;			 // will be doubled, and summed with the skipped digits.
    	}										 // if the double digit is > 9, ADD those individual digits together 
        	for( i = 0; i < ar.length; ++i ) {
        		sum += ar[i];						 // if the sum is divisible by 10 mod10 succeeds
        	}
        	return (((sum%10)==0)?true:false);	 	
 }


function expired( month, year ) {
var now = new Date();							// this function is designed to be Y2K compliant.
var expiresIn = new Date(year,month,0,0,0);		// create an expired on date object with valid thru expiration date
expiresIn.setMonth(expiresIn.getMonth()+1);		// adjust the month, to first day, hour, minute & second of expired month
if( now.getTime() < expiresIn.getTime() ) return false;
return true;									// then we get the miliseconds, and do a long integer comparison
}


function validateCard(cardNumber,cardType,cardMonth,cardYear) {
if( cardNumber.length == 0 ) {						//most of these checks are self explanitory
alert("Please enter a valid card number.");
return false;				
}
for( var i = 0; i < cardNumber.length; ++i ) {		// make sure the number is all digits.. (by design)
var c = cardNumber.charAt(i);
if( c < '0' || c > '9' ) {
alert("Please enter a valid card number. Use only digits. do not use spaces or hyphens.");
return false;
     		}
     	}
var length = cardNumber.length;			//perform card specific length and prefix tests
switch( cardType ) {
case 'AMERICAN EXPRESS':
 if( length != 15 ) {
	alert("Please enter a valid American Express Card number.");
	return;
 }
 var prefix = parseInt( cardNumber.substring(0,2));
 if( prefix != 34 && prefix != 37 ) {
	alert("Please enter a valid American Express Card number.");
	return;
 }
 break;
case 'DISCOVER':
 if( length != 16 ) {
 	alert("Please enter a valid Discover Card number.");
        return;
 }
 var prefix = parseInt( cardNumber.substring(0,4));
 if( prefix != 6011 ) {
	alert("Please enter a valid Discover Card number.");
        return;
 }
 break;
case 'MASTERCARD':
 if( length != 16 ) {
	alert("Please enter a valid MasterCard number.");
        return;
 }
 var prefix = parseInt( cardNumber.substring(0,2));
 if( prefix < 51 || prefix > 55) {
 	alert("Please enter a valid MasterCard Card number.");
        return;
 }
 break;
case 'VISA':
 if( length != 16 && length != 13 ) {
 	alert("Please enter a valid Visa Card number.");
 	return;
 }
 var prefix = parseInt( cardNumber.substring(0,1));
 if( prefix != 4 ) {
 	alert("Please enter a valid Visa Card number.");
 	return;
 }
 break;
 }
 if( !mod10( cardNumber ) ) { 		// run the check digit algorithm
 	alert("Sorry! this is not a valid credit card number.");
 	return false;
 }
 if( expired( cardMonth, cardYear ) ) {							// check if entered date is already expired.
 	alert("Sorry! The expiration date you have entered would make this card invalid.");
 	return false;
 }
return true; // at this point card has not been proven to be invalid
}

function OrderSecureAlert(the_button)
{
var the_quote = this.window.document.FrontPage_Form1.Quoteno.value;
var the_country = this.window.document.FrontPage_Form1.country.value;
var the_customer = this.window.document.FrontPage_Form1.customer.value;
var the_address = this.window.document.FrontPage_Form1.address.value;
var the_city = this.window.document.FrontPage_Form1.city.value;
var the_state = this.window.document.FrontPage_Form1.state.value;
var the_zipcode = this.window.document.FrontPage_Form1.zipcode.value;
var the_custname = this.window.document.FrontPage_Form1.custname.value;
var the_phone = this.window.document.FrontPage_Form1.phone.value;
var the_custemail = this.window.document.FrontPage_Form1.custemail.value;
var the_creditcard = this.window.document.FrontPage_Form1.creditcard.value;
var the_ccnumber = this.window.document.FrontPage_Form1.ccnumber.value;
var the_ccyear = this.window.document.FrontPage_Form1.ccyear.value;
var the_ccmonth = this.window.document.FrontPage_Form1.ccmonth.value;
var the_cccsc = this.window.document.FrontPage_Form1.cccsc.value;
var the_shipvia = this.window.document.FrontPage_Form1.ship_via.value;

if ((the_ccnumber > "0") && (the_creditcard > "0") && (the_ccmonth > "0") && (the_ccyear > "0") && (the_cccsc > "0") && (the_country > "0") && (the_customer > "0") && (the_address > "0") && (the_city > "0") && (the_state > "0") && (the_zipcode > "0") && (the_phone > "0") && (the_custemail > "0") && (the_custname > "0") && (the_shipvia > "0"))
{
   if ((the_button == "Submit"))
   {	
	 if (confirm("Are you sure you want to place an Order"))
	 {
        	if (confirm('Please click OK to authorize your Credit Card charges'))
	        {
        	    this.window.document.FrontPage_Form1.Post.value = "OK";
	        }
	 } else {
	  this.window.document.FrontPage_Form1.Post.value = "NO";
	 }
	    }	
   } else {
	this.window.document.FrontPage_Form1.Post.value	= "NO";
	alert('Please provide required information in marked areas')
    }

}

function ShowOtherBox()
{
var the_other = window.document.FrontPage_Form1.country.value;
alert(the_other);
  if (the_other == "Other")
	   {			
	alert('Please enter your country information');
	this.window.document.FrontPage_Form1.otherboxtype.value = "text";
	   
  } else {
	this.window.document.FrontPage_Form1.otherboxtype.value = "hidden";
	}
}

function transferxml(imyafayla) {

var xmlhttp = new ActiveXObject( "Microsoft.XMLHTTP" );
var sURL = "http://wersv233.de.dcc.emea/dcc/ExternalDesignerRequestAction.do"
var lchost = "http://wersv233.de.dcc.emea"
var lcfilename = "xml/" + imyafayla + ".xml"
xmlhttp.open( "GET", lcfilename, false );
xmlhttp.send()
xmlDoc=xmlhttp.responseText
xmlhttp.open( "POST", sURL, false );
xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4) {
   if (xmlhttp.status==200) alert("You are going to be redirected to Demag Shop \n to finalize your order")
    else if (xmlhttp.status==404) alert("URL doesn't exist!")
     else alert("Status is "+xmlhttp.status)
  }
 }
xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=UTF-8")
xmlhttp.send(xmlDoc)
lccookie = xmlhttp.getResponseHeader('Set-Cookie')
sessionId = lccookie.substring(lccookie.indexOf("=")+1, lccookie.indexOf(";"))
if (lccookie > "0"){
	win = window.open(lchost +"/dcc/CartAction.html;jsessionid="+sessionId+"?method=open")
 }	

}


function move_box(an, box) {
  var cleft = 0;
  var ctop = 0;
  var obj = an;
  while (obj.offsetParent) {
    cleft += obj.offsetLeft;
    ctop += obj.offsetTop;
    obj = obj.offsetParent;
  }
  box.style.left = cleft + 'px';
  ctop += an.offsetHeight + 8;
  if (document.body.currentStyle &&
    document.body.currentStyle['marginTop']) {
    ctop += parseInt(
      document.body.currentStyle['marginTop']);
  }
  box.style.top = ctop + 'px';
}

function show_hide_box(an, width, height, borderStyle) {
  var href = an;
  var boxdiv = document.getElementById(href);

  if (boxdiv != null) {
    if (boxdiv.style.display=='none') {
      move_box(an, boxdiv);
      boxdiv.style.display='block';
    } else
      boxdiv.style.display='none';
    return false;
  }

  boxdiv = document.createElement('div');
  boxdiv.setAttribute('id', href);
  boxdiv.style.display = 'block';
  boxdiv.style.position = 'relative';
  boxdiv.style.width = width + 'px';
  boxdiv.style.height = height + 'px';
  boxdiv.style.border = borderStyle;
  boxdiv.style.backgroundColor = '#fff';

  var contents = document.createElement('iframe');
  contents.scrolling = 'yes';
  contents.frameBorder = '1';
  contents.style.width = width + 'px';
  contents.style.height = height + 'px';
  contents.src = href;

  boxdiv.appendChild(contents);
  document.body.appendChild(boxdiv);
  move_box(an, boxdiv);

  return false;
}

var postState = '';
var postCountry = '';

// State table
//
// To edit the list, just delete a line or add a line. Order is important.
// The order displayed here is the order it appears on the drop down.
//
var state = '\
US:AK:Alaska|\
US:AL:Alabama|\
US:AR:Arkansas|\
US:AS:American Samoa|\
US:AZ:Arizona|\
US:CA:California|\
US:CO:Colorado|\
US:CT:Connecticut|\
US:DC:D.C.|\
US:DE:Delaware|\
US:FL:Florida|\
US:FM:Micronesia|\
US:GA:Georgia|\
US:GU:Guam|\
US:HI:Hawaii|\
US:IA:Iowa|\
US:ID:Idaho|\
US:IL:Illinois|\
US:IN:Indiana|\
US:KS:Kansas|\
US:KY:Kentucky|\
US:LA:Louisiana|\
US:MA:Massachusetts|\
US:MD:Maryland|\
US:ME:Maine|\
US:MH:Marshall Islands|\
US:MI:Michigan|\
US:MN:Minnesota|\
US:MO:Missouri|\
US:MP:Marianas|\
US:MS:Mississippi|\
US:MT:Montana|\
US:NC:North Carolina|\
US:ND:North Dakota|\
US:NE:Nebraska|\
US:NH:New Hampshire|\
US:NJ:New Jersey|\
US:NM:New Mexico|\
US:NV:Nevada|\
US:NY:New York|\
US:OH:Ohio|\
US:OK:Oklahoma|\
US:OR:Oregon|\
US:PA:Pennsylvania|\
US:PR:Puerto Rico|\
US:PW:Palau|\
US:RI:Rhode Island|\
US:SC:South Carolina|\
US:SD:South Dakota|\
US:TN:Tennessee|\
US:TX:Texas|\
US:UT:Utah|\
US:VA:Virginia|\
US:VI:Virgin Islands|\
US:VT:Vermont|\
US:WA:Washington|\
US:WI:Wisconsin|\
US:WV:West Virginia|\
US:WY:Wyoming|\
US:AA:Military Americas|\
US:AE:Military Europe/ME/Canada|\
US:AP:Military Pacific|\
CA:AB:Alberta|\
CA:MB:Manitoba|\
CA:AB:Alberta|\
CA:BC:British Columbia|\
CA:MB:Manitoba|\
CA:NB:New Brunswick|\
CA:NL:Newfoundland and Labrador|\
CA:NS:Nova Scotia|\
CA:NT:Northwest Territories|\
CA:NU:Nunavut|\
CA:ON:Ontario|\
CA:PE:Prince Edward Island|\
CA:QC:Quebec|\
CA:SK:Saskatchewan|\
CA:YT:Yukon Territory|\
';

// Country data table
//
// To edit the list, just delete a line or add a line. Order is important.
// The order displayed here is the order it appears on the drop down.
//
var country = '\
US:United States|\
AF:Afghanistan|\
AL:Albania|\
DZ:Algeria|\
AS:American Samoa|\
AD:Andorra|\
AO:Angola|\
AI:Anguilla|\
AQ:Antarctica|\
AG:Antigua and Barbuda|\
AR:Argentina|\
AM:Armenia|\
AW:Aruba|\
AU:Australia|\
AT:Austria|\
AZ:Azerbaijan|\
AP:Azores|\
BS:Bahamas|\
BH:Bahrain|\
BD:Bangladesh|\
BB:Barbados|\
BY:Belarus|\
BE:Belgium|\
BZ:Belize|\
BJ:Benin|\
BM:Bermuda|\
BT:Bhutan|\
BO:Bolivia|\
BA:Bosnia And Herzegowina|\
XB:Bosnia-Herzegovina|\
BW:Botswana|\
BV:Bouvet Island|\
BR:Brazil|\
IO:British Indian Ocean Territory|\
VG:British Virgin Islands|\
BN:Brunei Darussalam|\
BG:Bulgaria|\
BF:Burkina Faso|\
BI:Burundi|\
KH:Cambodia|\
CM:Cameroon|\
CA:Canada|\
CV:Cape Verde|\
KY:Cayman Islands|\
CF:Central African Republic|\
TD:Chad|\
CL:Chile|\
CN:China|\
CX:Christmas Island|\
CC:Cocos (Keeling) Islands|\
CO:Colombia|\
KM:Comoros|\
CG:Congo|\
CD:Congo, The Democratic Republic O|\
CK:Cook Islands|\
XE:Corsica|\
CR:Costa Rica|\
CI:Cote d` Ivoire (Ivory Coast)|\
HR:Croatia|\
CU:Cuba|\
CY:Cyprus|\
CZ:Czech Republic|\
DK:Denmark|\
DJ:Djibouti|\
DM:Dominica|\
DO:Dominican Republic|\
TP:East Timor|\
EC:Ecuador|\
EG:Egypt|\
SV:El Salvador|\
GQ:Equatorial Guinea|\
ER:Eritrea|\
EE:Estonia|\
ET:Ethiopia|\
FK:Falkland Islands (Malvinas)|\
FO:Faroe Islands|\
FJ:Fiji|\
FI:Finland|\
FR:France (Includes Monaco)|\
FX:France, Metropolitan|\
GF:French Guiana|\
PF:French Polynesia|\
TA:French Polynesia (Tahiti)|\
TF:French Southern Territories|\
GA:Gabon|\
GM:Gambia|\
GE:Georgia|\
DE:Germany|\
GH:Ghana|\
GI:Gibraltar|\
GR:Greece|\
GL:Greenland|\
GD:Grenada|\
GP:Guadeloupe|\
GU:Guam|\
GT:Guatemala|\
GN:Guinea|\
GW:Guinea-Bissau|\
GY:Guyana|\
HT:Haiti|\
HM:Heard And Mc Donald Islands|\
VA:Holy See (Vatican City State)|\
HN:Honduras|\
HK:Hong Kong|\
HU:Hungary|\
IS:Iceland|\
IN:India|\
ID:Indonesia|\
IR:Iran|\
IQ:Iraq|\
IE:Ireland|\
EI:Ireland (Eire)|\
IL:Israel|\
IT:Italy|\
JM:Jamaica|\
JP:Japan|\
JO:Jordan|\
KZ:Kazakhstan|\
KE:Kenya|\
KI:Kiribati|\
KP:Korea, Democratic People\'S Repub|\
KW:Kuwait|\
KG:Kyrgyzstan|\
LA:Laos|\
LV:Latvia|\
LB:Lebanon|\
LS:Lesotho|\
LR:Liberia|\
LY:Libya|\
LI:Liechtenstein|\
LT:Lithuania|\
LU:Luxembourg|\
MO:Macao|\
MK:Macedonia|\
MG:Madagascar|\
ME:Madeira Islands|\
MW:Malawi|\
MY:Malaysia|\
MV:Maldives|\
ML:Mali|\
MT:Malta|\
MH:Marshall Islands|\
MQ:Martinique|\
MR:Mauritania|\
MU:Mauritius|\
YT:Mayotte|\
MX:Mexico|\
FM:Micronesia, Federated States Of|\
MD:Moldova, Republic Of|\
MC:Monaco|\
MN:Mongolia|\
MS:Montserrat|\
MA:Morocco|\
MZ:Mozambique|\
MM:Myanmar (Burma)|\
NA:Namibia|\
NR:Nauru|\
NP:Nepal|\
NL:Netherlands|\
AN:Netherlands Antilles|\
NC:New Caledonia|\
NZ:New Zealand|\
NI:Nicaragua|\
NE:Niger|\
NG:Nigeria|\
NU:Niue|\
NF:Norfolk Island|\
MP:Northern Mariana Islands|\
NO:Norway|\
OM:Oman|\
PK:Pakistan|\
PW:Palau|\
PS:Palestinian Territory, Occupied|\
PA:Panama|\
PG:Papua New Guinea|\
PY:Paraguay|\
PE:Peru|\
PH:Philippines|\
PN:Pitcairn|\
PL:Poland|\
PT:Portugal|\
PR:Puerto Rico|\
QA:Qatar|\
RE:Reunion|\
RO:Romania|\
RU:Russian Federation|\
RW:Rwanda|\
KN:Saint Kitts And Nevis|\
SM:San Marino|\
ST:Sao Tome and Principe|\
SA:Saudi Arabia|\
SN:Senegal|\
XS:Serbia-Montenegro|\
SC:Seychelles|\
SL:Sierra Leone|\
SG:Singapore|\
SK:Slovak Republic|\
SI:Slovenia|\
SB:Solomon Islands|\
SO:Somalia|\
ZA:South Africa|\
GS:South Georgia And The South Sand|\
KR:South Korea|\
ES:Spain|\
LK:Sri Lanka|\
NV:St. Christopher and Nevis|\
SH:St. Helena|\
LC:St. Lucia|\
PM:St. Pierre and Miquelon|\
VC:St. Vincent and the Grenadines|\
SD:Sudan|\
SR:Suriname|\
SJ:Svalbard And Jan Mayen Islands|\
SZ:Swaziland|\
SE:Sweden|\
CH:Switzerland|\
SY:Syrian Arab Republic|\
TW:Taiwan|\
TJ:Tajikistan|\
TZ:Tanzania|\
TH:Thailand|\
TG:Togo|\
TK:Tokelau|\
TO:Tonga|\
TT:Trinidad and Tobago|\
XU:Tristan da Cunha|\
TN:Tunisia|\
TR:Turkey|\
TM:Turkmenistan|\
TC:Turks and Caicos Islands|\
TV:Tuvalu|\
UG:Uganda|\
UA:Ukraine|\
AE:United Arab Emirates|\
UK:United Kingdom|\
GB:Great Britain|\
UM:United States Minor Outlying Isl|\
UY:Uruguay|\
UZ:Uzbekistan|\
VU:Vanuatu|\
XV:Vatican City|\
VE:Venezuela|\
VN:Vietnam|\
VI:Virgin Islands (U.S.)|\
WF:Wallis and Furuna Islands|\
EH:Western Sahara|\
WS:Western Samoa|\
YE:Yemen|\
YU:Yugoslavia|\
ZR:Zaire|\
ZM:Zambia|\
ZW:Zimbabwe|\
';

function TrimString(sInString) {
  if ( sInString ) {
    sInString = sInString.replace( /^\s+/g, "" );// strip leading
    return sInString.replace( /\s+$/g, "" );// strip trailing
  }
}

// Populates the country selected with the counties from the country list
function populateCountry(defaultCountry) {
  if ( postCountry != '' ) {
    defaultCountry = postCountry;
  }
  var countryLineArray = country.split('|');  // Split into lines
  var selObj = document.getElementById('countrySelect');
  selObj.options[0] = new Option('Select Country','');
  selObj.selectedIndex = 0;
  for (var loop = 0; loop < countryLineArray.length; loop++) {
    lineArray = countryLineArray[loop].split(':');
    countryCode  = TrimString(lineArray[0]);
    countryName  = TrimString(lineArray[1]);
    if ( countryCode != '' ) {
      selObj.options[loop + 1] = new Option(countryName, countryCode);
    }
    if ( defaultCountry == countryCode ) {
      selObj.selectedIndex = loop + 1;
    }
  }
}

function populateState() {
  var selObj = document.getElementById('stateSelect');
  var foundState = false;
  // Empty options just in case new drop down is shorter
  if ( selObj.type == 'select-one' ) {
    for (var i = 0; i < selObj.options.length; i++) {
      selObj.options[i] = null;
    }
    selObj.options.length=null;
    selObj.options[1] = new Option('Select State','');
    selObj.selectedIndex = 1;
  }
  // Populate the drop down with states from the selected country
  var stateLineArray = state.split("|");  // Split into lines
  var optionCntr = 1;
  for (var loop = 0; loop < stateLineArray.length; loop++) {
    lineArray = stateLineArray[loop].split(":");
    countryCode  = TrimString(lineArray[0]);
    stateCode    = TrimString(lineArray[1]);
    stateName    = TrimString(lineArray[2]);
  if (document.getElementById('countrySelect').value == countryCode && countryCode != '' ) {
    // If it's a input element, change it to a select
      if ( selObj.type == 'hidden' ) {
        parentObj = document.getElementById('stateSelect').parentNode;
        parentObj.removeChild(selObj);
        var inputSel = document.createElement("SELECT");
        inputSel.setAttribute("name","state");
        inputSel.setAttribute("id","stateSelect");
        parentObj.appendChild(inputSel) ;
        selObj = document.getElementById('stateSelect');
        selObj.options[1] = new Option('Select State','');
        selObj.selectedIndex = 1;
      }
      if ( stateCode != '' ) {
        selObj.options[optionCntr] = new Option(stateName, stateCode);
      }
      // See if it's selected from a previous post
      if ( stateCode == postState && countryCode == postCountry ) {
        selObj.selectedIndex = optionCntr;
      }
      foundState = true;
      optionCntr++
    }
  }
  // If the country has no states, change the select to a text box
  if ( ! foundState ) {
    parentObj = document.getElementById('stateSelect').parentNode;
    parentObj.removeChild(selObj);
  // Create the Input Field
    var inputEl = document.createElement("INPUT");
    inputEl.setAttribute("id", "stateSelect");
    inputEl.setAttribute("type", "hidden");
    inputEl.setAttribute("name", "state");
    inputEl.setAttribute("size", 20);
    inputEl.setAttribute("value", postState);
    parentObj.appendChild(inputEl) ;
  }
}

function initCountry(country) {
  populateCountry(country);
  populateState();
}

