var __psChannelId = "";
var __psDialectId = "";
var __psPalletPrefix = "__pallet_";
var __psAnchorPrefix = "__anchor_";
var __psPalletBuffer = "";
var __psBaseName = "";
var __psChoiceName = "";
function wizardSelected(wizardTag, choiceList)
{
	var choice = choiceList.options[choiceList.selectedIndex].value;
	var url = getAjaxPage("productselector.aspx?channel_id="+__psChannelId+"&dialect_id="+__psDialectId+"&wizard_tag="+wizardTag+"&selected="+choice);
	parseName(choiceList.name);
	var retVal = getXmlDocument(url);
	if (!retVal)
		fallBack();
}
function ajaxHttpHandler(xmlDoc)
{
	var wizardTree = selectSingleNode(xmlDoc, "WizardTree");
	if (wizardTree != null)
	{		
		var hasAction = (getAttributeValue(wizardTree, "hasAction", "0") == "1");
		if (hasAction)
		{
			postBack(wizardTree);
			return;
		}
		clearBuffer();
		drawWizardTree(wizardTree);
		flushBuffer();
	}
	else
		fallBack();
}
function parseName(choiceName)
{
	var pieces = choiceName.split("$");
	__psBaseName = "";
	__psChoiceName = choiceName;
	
	for (var i = 0; i < pieces.length; i++)
	{
		var piece = pieces[i];
		if (document.getElementById(__psPalletPrefix+piece) != null)
		{
			__psBaseName = piece;
			break;
		}
	}
}
function getChoiceName()
{
	return __psChoiceName
}
function getPallet()
{
	var name = getPalletName();
	return document.getElementById(name);
}
function getPalletName()
{
	return __psPalletPrefix+__psBaseName;
}
function getAnchorName()
{
	return __psAnchorPrefix+__psBaseName;
}
function clearBuffer()
{
	__psPalletBuffer = "";
}
function writeHtml(output)
{
	__psPalletBuffer += output;
}
function flushBuffer()
{
	var pallet = getPallet();
	
	pallet.innerHTML = "";
	pallet.innerHTML = __psPalletBuffer;
	__psPalletBuffer = "";
}
function fallBack()
{
	var exc = "__doPostBack('"+getChoiceName()+"','')";
	eval(exc);
}
function postBack(wizardTree)
{
	var tag = getAttributeValue(wizardTree, "wizardTag", "");
	var path = getHttpPath(tag);
	var qs = getQueryString(tag);
	
	if (qs.length > 0)
		qs += "&";
	qs += tag+"_selected="+getSelectedChoice(wizardTree);
    qs = qs.replace(/#\w+/, "", "g");
	var url = path+"?"+qs+"#"+getAnchorName();
	
	window.location.href = url;
}
function getHttpPath(wizardTag)
{
	var loc = document.location+"";
	var pieces = loc.split("?");
	var retVal = "";
	retVal = pieces[0];
	
	return retVal;
}
function getQueryString(wizardTag)
{
	var loc = document.location+"";
	var pieces = loc.split('?');
	var retVal = "";
	
	if (pieces.length > 1)
	{
		var ignore = false;
		var parts = pieces[1].split("&");
		for (var i = 0; i < parts.length; i++)
		{
			values = parts[i].split("=");
			if (values[0] != wizardTag+"_selected" && values[0] != 'cmd')
			{
				if (retVal.length > 0)
					retVal += "&";
				retVal += parts[i];
			}
		}
	}
	
	return retVal;
}
function getSelectedChoice(wizardTree)
{
	var retVal = "0";
	var nodes = selectNodes(wizardTree, "Choice");
	
	for (var i = nodes.length-1; i >= 0; i--)
	{
		var selected = (getAttributeValue(nodes[i], "selected", "0") == "1");
		if (selected)
		{
			retVal = getAttributeValue(nodes[i], "lineage", "0");
			break;
		}
	}
	
	return retVal;
}

