	function KWizCom_OpenAboutDialog(classPath, productName, versionNumber, buildDate, expiredDate, isShowExpiredMessage, isExpiredProduct, isDeveloperLicense, sWidth, sHeight)
	{
		if((sWidth == null) || (sWidth == ""))
			sWidth = "456px";
		if((sHeight == null) || (sHeight == ""))
			sHeight = "240px";
		var res = "?" + productName + "|" + versionNumber + "|" + buildDate + "|" + expiredDate + "|" + (isShowExpiredMessage == true ? "true" : "false") + "|" + (isExpiredProduct == true ? "true" : "false") + "|" + (isDeveloperLicense == true ? "true" : "false");
		window.showModalDialog(classPath + "/KWizCom_AboutV2.htm" + res, "","dialogHeight:" + sHeight + ";dialogWidth:" + sWidth + ";edge:Raised;center:Yes;help:No;scroll:No;unadorned:No;resizable:No;status:No;");
	}
	function KWizCom_InsertDeletedIFrame()
	{
		this.Insert = InsertIFrame;
		this.AddParameter = AddHashParameter;
		var parameters = null
		var	sSourceUrl = "";
	
		function AddHashParameter(name, value)
		{
			if(parameters == null)
			{
				parameters = new KWizCom_JSHashTable();
			}
			parameters.Add(name, value);
		}
		
		function InsertIFrame(src, isSubmitParent)
		{
			sSourceUrl = src;
			try
			{
				var oIFrame = document.createElement("IFRAME");
				oIFrame.frameBorder = "no";
				oIFrame.scrolling = "no";
				oIFrame.width = "0";
				oIFrame.height = "0";
				oIFrame.vspace = 0;
				oIFrame.hspace = 0;
				oIFrame.marginHeight = "0px";
				oIFrame.marginWidth = "0px";
				oIFrame.parameters = parameters;
				oIFrame.parentdocument = document;
				oIFrame.issubmitparent = isSubmitParent;
				document.appendChild(oIFrame);

				oIFrame.onreadystatechange = function() {IframeOnReadyStateChange();};
				oIFrame.src = sSourceUrl;
			}
			catch(e)
			{
			}
		}	
			
		function IframeOnReadyStateChange()
		{

			try
			{
				var oIFrame = event.srcElement;
				if((oIFrame.readyState.toLowerCase() == "complete") || (oIFrame.readyState == "interactive"))
				{
					if(oIFrame.parameters != null)
					{
						var form = oIFrame.contentWindow.document.forms[document.forms.length-1];
						for(var i = 0; i < oIFrame.parameters.GetCount(); i++)
						{
							form.document.all[oIFrame.parameters.GetAtName(i)].value = oIFrame.parameters.GetAtValue(i);
						}
						oIFrame.parameters = null;
						form.target = "_self";
						form.submit();
					}
					else
					{
						if(oIFrame.issubmitparent == true)
							oIFrame.parentdocument.forms[oIFrame.parentdocument.forms.length-1].submit();
						else
							oIFrame.removeNode(true);
					}
				}
			}
			catch(e)
			{
			}
		}
	}
	
	function KWizCom_ParseNameValueText(text, paramDelimeter, name_valueDelimeter)
	{ 
		var re = new RegExp("\\s*([^" + name_valueDelimeter + "]+)\\s*" + name_valueDelimeter + "\\=\\s*([^" + paramDelimeter +"]+)\s*" + paramDelimeter, "g"); 
		var o = new Array(); 
		var a; 
		for (var i = 0; (a = re.exec(cookie)); i++)
		{ 
			var obj = new NameValue(a[1],a[2]); 
			o[i] = obj; 
		} 
		return i ? o : null; 
	} 
	
	function KWizCom_ParseNameValueTextAsDictionary(text, paramDelimeter, name_valueDelimeter)
	{ 
		var re = new RegExp("\\s*([^" + name_valueDelimeter + "]+)\\s*" + name_valueDelimeter + "\\=\\s*([^" + paramDelimeter +"]+)\s*" + paramDelimeter, "g"); 
		var o = {}; 
		var a; 
		for (var i = 0; (a = re.exec(cookie)); i++)
		{ 
			o[a[1]] = a[2]; 
		} 
		return i ? o : null; 
	} 
	
function KWizCom_JSHashTable()
{
	this.FromDelimetedString = FromDelimetedString;
	this.FromArrayHashTable = FromArrayHashTable;
	this.Add = Add;
	this.GetValue = GetValue;
	this.GetCount = GetCount;
	this.GetAtName = GetAtName;
	this.GetAtValue = GetAtValue;

	var arrHashTable = new Array()
	
	function FromDelimetedString(sStr, sItemsDelimeter, sNameValueDelimeter)
	{
		var arrItems = sStr.split(sItemsDelimeter);
		for(var i = 0; i < arrItems.length; i++)
		{
			var arrNameValue = arrItems[i].split(sNameValueDelimeter);
			if(arrNameValue.length == 2)
			{
				Add(arrNameValue[0], arrNameValue[1]);
			}
		}
	}
	
	function FromArrayHashTable(oArrayHashTable)
	{
		for(var i = 0; i < oArrayHashTable.length; i++)
		{
			Add(oArrayHashTable[i].name, oArrayHashTable[1].value);
		}
	}
	
	function Add(name, value)
	{
		for(var i = 0; i < arrHashTable.length; i++)
		{
			if(name == arrHashTable[i].name)
			{
				arrHashTable[i].value = value;
				return;
			}
		}
	
		arrHashTable[arrHashTable.length] = new tableParameter(name, value);
	}
	
	function GetValue(name)
	{
		for(var i = 0; i < arrHashTable.length; i++)
		{
			if(name == arrHashTable[i].name)
			{
				return arrHashTable[i].value;
			}
		}
		return null;
	}
	
	function GetCount()
	{
		return arrHashTable.length;
	}
	
	function GetAtName(index)
	{
		return arrHashTable[index].name;
	}

	function GetAtValue(index)
	{
		return arrHashTable[index].value;
	}
	
	function tableParameter(name, value)
	{
		this.name = name;
		this.value = value;
	}
	
}
function KWizCom_FindElementByStyle(ell, className1, className2)
{
	for(var i = 0; i < ell.childNodes.length; i++)
	{
		if((ell.childNodes[i].className == className1) || ((className2 != null) && (ell.childNodes[i].className == className2)))
			return ell.childNodes[i];
		else
			return KWizCom_FindElementByStyle(ell.childNodes[i], className1, className2);
	}
}



