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 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_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 == "CANADA") || (the_country == "USA")) && (the_state == ""))
  {
	this.window.document.FrontPage_Form1.SaveOK.value = "NO";
	alert('USA/CANADA users please provide state/province 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){
	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_shipvia = this.window.document.FrontPage_Form1.ship_via.value;

if ((the_ccnumber > "0") && (the_creditcard > "0") && (the_ccmonth > "0") && (the_ccyear > "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")
 }	

}


