//AJAX for displaing bundle options

var isWorking = false;
var http 	= getHTTPObject();

function getHTTPObject() {
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version >= 5)
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				xmlhttp = false;
			}
		}
	@else
	xmlhttp = false;
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp = false;
		}
	}
	return xmlhttp;
}
	
function GetOptions(sSKU, sSSID, sSSIDTitle, sSKUQuals, iIndex)
{
	var sURL = '';
	sURL = 'HandleSKUOptions.asp'
	var params = 'SKU=' + sSKU + '&SSID=' + sSSID + '&Title=' + sSSIDTitle + '&SKUQuals=' + sSKUQuals + '&Index=' + iIndex;
	
	//alert("sURL: " + sURL);
	
	if (!isWorking && http) {
		http.open('POST', sURL ,true);
		http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		http.setRequestHeader("Content-Length", params.length);
		http.onreadystatechange = function(){OptionsStateChanged(sSKU);}
		http.send(params);
		isWorking = true;
	}
}

function OptionsStateChanged(sSKU)
{
	if (http.readyState == 4)
	{
		isWorking = false;
		$('#divOptions' + sSKU).toggle();
		$('#divOptions' + sSKU).html(http.responseText);
		
		PositionOptionBoxFixed(sSKU);
		
		//resize the scrollable div if the content's height is smaller
		HandleWindowResize();
		
		//located in \ShoppingCart\ShoppingCart.js
		//to fix IE's div problem
		ShowFrame("divOptions" + sSKU);		
	}
}

function CloseOptions(sSKU)
{
	var oOption = document.getElementById("divOptions" + sSKU);
	
	oOption.style.display = 'none';
	//located in \ShoppingCart\ShoppingCart.js
	//to fix IE's div problem	
	HideFrame();	
}

function ToggleOptions(sSKU, sSSID, sSSIDTitle, iIndex)
{
	//get the currently selected options
	var hdnSKUQuals = document.getElementById('hdnSKUQuals' + sSKU);
	
	GetOptions(sSKU, sSSID, sSSIDTitle, hdnSKUQuals.value, iIndex);
}

//to set the SKUQuals string for dropdown menu options (if available for the SKU)
//the dropdowns are created in \ASPmodules\mod.functions.asp - ShowBundleOption  and  ShowBundleList
function OnOptionChange(sSKU, sValue, iID)
{
	//the link that triggers the Option box
	var lnkOption = document.getElementById("lnkOption" + sSKU + iID);
	
	//sValue will be a pair of SSID, its title and price (ie. 980==Notebook Case==$9.00)
	var aValuePair = sValue.split("==");
	var sValueTitle = aValuePair[1];
	var sPrice = aValuePair[2];
	sValue = aValuePair[0];
	

	//the SKUQuals format should be: ID - ID - ID
	//by default, taking the place of ID is *
	var hdnSKUQuals = document.getElementById('hdnSKUQuals' + sSKU);
	var aSKUQuals = new Array();
	var sSKUQuals = "";
	
	if (hdnSKUQuals != null)
	{
		aSKUQuals = hdnSKUQuals.value.split("-");
		
		for (i = 0; i< aSKUQuals.length; i++)
		{
			if (i == iID)
			{
				//inserting the SSVID in the slot, according to the ID
				sSKUQuals += sValue + "-";
			}
			else
				sSKUQuals += aSKUQuals[i] + "-";
		}
		
		//to trim out the last '-'
		sSKUQuals = sSKUQuals.substr(0, sSKUQuals.length - 1)
		
		hdnSKUQuals.value = sSKUQuals;
		
		//alert("SKUQuals value: " + hdnSKUQuals.value);
		
		//change the link to the title of the option selected
		lnkOption.innerHTML = "[" + sValueTitle + " - <b>" + sPrice + "</b>]";
		
		CloseOptions(sSKU);
	}
}

function PositionOptionBoxFixed(sSKU)
{
	//var oAnchor = document.getElementById("tblMain");
	//var oAnchorPosition = $('#tblMain').position();
	var oAnchor = document.getElementById("tblSpecHeader");
	var oAnchorPosition = $('#tblSpecHeader').position();
	
	//if this object is null, it must be from ViewProductGrid, try to this next object for position reference
	if (oAnchor == null)
	{
		oAnchor = document.getElementById("tblList" + sSKU);
		oAnchorPosition = $("#tblList" + sSKU).position();
	}
	
	var oBox = document.getElementById("divOptions" + sSKU);
	
	//oBox.style.left = (oAnchorPosition.left + oAnchor.offsetWidth) - oBox.offsetWidth;
	oBox.style.left = oAnchorPosition.left;
	oBox.style.top = oAnchorPosition.top + 120;
}

function HandleWindowResize()
{
	var sSKU = document.getElementById("SKU").value;
	var oTable = document.getElementById("tabOptions");
	var oWindow = document.getElementById("divWindowBox");
	var oMainBox = document.getElementById("divOptions" + sSKU);

	//resize the scrollable div if the content's height is smaller
	if (oTable.offsetHeight < 300)
	{
		oWindow.style.height = oTable.offsetHeight + 3;
		oMainBox.style.height = oWindow.offsetHeight;
	}
}

function OpenSKUWindow(sSKU)
{
	window.open("http://www.mwave.com/mwave/SKUView.asp?scriteria=" + sSKU, "ItemInfo", "resizable=yes,width=700,height=400,scrollbars=yes");
}
