function makeRequest(url, tab) {
//	alert ("makeRequest(" + url + ")");
	
	if (url == 'MetalTab.php') {
		// ugly hack
		location.href = "Metal.php";
		return false;
	}
	if (tab == 'Main') {
		setTabContent('connecting/loading...');
	} else if (tab == 'Left') {
		setLeftTabContent('connecting/loading...');
	}
//	alert (url);
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		// loserly browser, macie5 is a pain in my ass
		makeIEMacRequest(url, tab);
		return;
	}
	http_request.onreadystatechange = function() { handleResponse(http_request, tab); };
	http_request.open('GET', url, true);
	http_request.send(null);
	
}

function frameLoadTasks() {
	if (myGetElementById("wood_menu2")) {
		msg = innerHTMLById("wood_menu");
		//alert(msg);
		setInnerHTMLById(msg, "wood_menu2");
	} else {
		msg = innerHTMLById("finish_menu");
		setInnerHTMLById(msg, "finish_menu2");
	}
	if (myGetElementById("join_menu2")) {
		msg = innerHTMLById("join_menu");
		setInnerHTMLById(msg, "join_menu2");
	}
	markWoodSelected();
	markJoinSelected();
}

function spacersLoadTasks() {
	if (myGetElementById("wood_menu2")) {
		msg = innerHTMLById("wood_menu");
		//alert(msg);
		setInnerHTMLById(msg, "wood_menu2");
	} else {
		msg = innerHTMLById("finish_menu");
		setInnerHTMLById(msg, "finish_menu2");
	}
	markSpWoodSelected();
}

function handleResponse(http_request, tab) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			if (tab == 'Main') {
				setTabContent(http_request.responseText);
				if (selectedTab == "Frame") {
					exhibitionStartUp();
					frameLoadTasks();
				} else if (selectedTab == "Spacers") {
					SpacersStartUp();
					spacersLoadTasks();
				} else if (selectedTab == "Strainers") {
					StrainersStartUp();
				} else if (selectedTab == "Mat") {
					MatStartUp();
				} else if (selectedTab == "Acrylic") {
					AcrStartUp();
				} else if (selectedTab == "Foam") {
					FoamStartUp();
				}
			} else if (tab == 'Left') {
				setLeftTabContent(http_request.responseText);
			}
		} else {
			setTabContent('There was a problem with the request.');
		}
	}

}


function setTabContent(html) {
//	alert ("setTabContent called");
	setInnerHTMLById(html, "tabcontent");
}
function tabContent() {
	var ret = ''
	if (elem = myGetElementById("tabcontent")) {
		ret = elem.innerHTML;
	}
	return ret;
}
function scrollLeft()
{
	//to prevent error is orginal code *ba 6/15/2010
	}
function setLeftTabContent(html) {
	setInnerHTMLById(html, "lefttabcontent");
	scrollLeft();
}

function unselectTab(id) {
	if (elem = myGetElementById(id)) {
		elem.className = "none";
//		alert (id + "\r" + elem.className);
	}
}

function selectTab(id) {
//	alert ("selectTab(" + id + ")");
	tabs = new Array("Frame", "Spacers", "Strainers", "Mat", "Acrylic", "Foam");
	for (i in tabs) {
		unselectTab(tabs[i]);
	}
	if (elem = myGetElementById(id)) {
		elem.className = "current";
//		alert (id + "\r" + elem.className);
		selectedTab = id;
	}
}

function selectLeftTab(id) {
	tabs = new Array("Profile", "Others");
	for (i in tabs) {
		unselectTab(tabs[i]);
	}
	if (elem = myGetElementById(id)) {
		elem.className = "current";
//		alert (id + "\r" + elem.className);
		selectedLeftTab = id;
	}
}

function selectRightTab(id) {
	tabs = new Array("ThisOrder", "EntireOrder");
	for (i in tabs) {
		unselectTab(tabs[i]);
	}
	if (elem = myGetElementById(id)) {
		elem.className = "current";
//		alert (id + "\r" + elem.className);
		selectedRightTab = id;
	}
}

function selectEntireOrder() {
	if (selectedRightTab != 'EntireOrder') {
		selectRightTab('EntireOrder');
		//setInnerHTMLById('<div id="ordertable">Loading...</div>', "rightside");
		populateOrder();
		scrollRight();
	}
	if (myOrder != null && myOrder.frameCnt > 0) {
		if (elem = myGetElementById("OrderText")) {
			elem.style.visibility = "visible";
			elem.style.display = "block";
		}
	} else {
		if (myFrame != null && myFrame.allSubtotal() > 0) {
			if (elem = myGetElementById("EmptyOrderText")) {
				elem.style.visibility = "visible";
				elem.style.display = "block";
			}
		}
	}
}

function selectThisOrder() {
	if (selectedRightTab != 'ThisOrder') {
		selectRightTab('ThisOrder');
		updateRightSide();
		scrollRight();
	}
}

function selectTabPlus(tab) {
	if (tab == 'Spacers') {
		selectSpacers();
	} else if (tab == 'Strainers') {
		selectStrainers();
	} else if (tab == 'Mat') {
		selectMat();
	} else if (tab == 'Acrylic') {
		selectAcrylic();
	} else if (tab == 'Foam') {
		selectFoam();
	} else {
		selectFrame();
	}
}

function selectFrame() {
// 	alert ("selectFrame()");
	if (selectedTab != 'Frame') {
		selectTab('Frame');
		makeRequest('frameTab.php?' + (myFrame.isMetal ? 'Metal=' : 'Number=') + myFrame.pnum, 'Main');
	}
	return true;
}

function selectSpacers() {
	if (myFrame.canHaveSpacer()) {
		if (selectedTab != 'Spacers') {
			selectTab('Spacers');
			makeRequest('SpacersTab.php', 'Main');
		}
		return true;
	} else {
		alert ("The type of frame you have selected does not support spacers.");
		return false;
	}
}

function selectStrainers() {
	if (myFrame.canHaveStrainer()) {
		if (selectedTab != 'Strainers') {
			selectTab('Strainers');
			makeRequest('StrainersTab.php', 'Main');
		}
		return true;
	} else {
		alert ("The type of frame you have selected does not support strainers.");
		return false;
	}
}

function selectMat() {
	if (myFrame.isCut) {
		if (selectedTab != 'Mat') {
			selectTab('Mat');
			makeRequest('MatTab.php', 'Main');
		}
		return true;
	} else {
		alert('You can not add matboard to an order of uncut length moulding.');
		return false;
	}
}

function selectAcrylic() {
	if (myFrame.isCut) {
		if (selectedTab != 'Acrylic') {
			selectTab('Acrylic');
			makeRequest('AcrylicTab.php', 'Main');
		}
		return true;
	} else {
		alert('You can not add acrylic to an order of uncut length moulding.');
		return false;
	}
}

function selectFoam() {
	if (myFrame.isCut) {
		if (selectedTab != 'Foam') {
			selectTab('Foam');
			makeRequest('FoamTab.php', 'Main');
		}
		return true;
	} else {
		alert('You can not add foamboard to an order of uncut length moulding.');
		return false;
	}
}

function tabsHTML() {
	var cnt = 0;
	var tabs = '<tr>';
	if (myFrame.pnum) {
		tabs += '<td id="Frame"';
		if (selectedTab != null && selectedTab == "Frame") {
			tabs += ' class="current"';
		}
		tabs += '><a href="#Frame" onclick="return selectFrame()">Frame<'+'/a><'+'/td>';
		cnt ++;
		if (myFrame.canHaveSpacer()) {
			tabs += '<td id="Spacers"';
			if (selectedTab != null && selectedTab == "Spacers") {
				tabs += ' class="current"';
			}
			tabs +='><a href="#Spacers" onclick="return selectSpacers()">Spacers<'+'/a><'+'/td>';
			cnt ++;
		}
		if (myFrame.canHaveStrainer()) {
			tabs += '<td id="Strainers"';
			if (selectedTab != null && selectedTab == "Strainers") {
				tabs += ' class="current"';
			}
			tabs += '><a href="#Strainers" onclick="return selectStrainers()">Strainers<'+'/a><'+'/td>';
			cnt ++;
		}
	}
	if (!myFrame.isFloater() && myFrame.isCut) {
		tabs += '<td id="Mat"';
		if (selectedTab != null && selectedTab == "Mat") {
			tabs += ' class="current"';
		}
		tabs += '><a href="#Mat" onclick="return selectMat()">Mat<'+'/a><'+'/td>';
		cnt ++;
		tabs += '<td id="Acrylic"';
		if (selectedTab != null && selectedTab == "Acrylic") {
			tabs += ' class="current"';
		}
		tabs += '><a href="#Acrylic" onclick="return selectAcrylic()">Acrylic<'+'/a><'+'/td>';
		cnt ++;
		tabs += '<td id="Foam"';
		if (selectedTab != null && selectedTab == "Foam") {
			tabs += ' class="current"';
		}
		tabs += '><a href="#Foam" onclick="return selectFoam()">Foam<'+'/a><'+'/td>';
		cnt ++;
	}
	tabs += '<'+'/tr>';
	tabs = '<table border="0" cellpadding="0" cellspacing="0"' + ((cnt < 2) ? ' style="visibility:hidden"' : '') + '>' + tabs + '<'+'/table>';
	return tabs;
}


