function GetClassServerCswpJsVersion()
{
	return "4.0.523";	// replaced during build
}
function CSWP_OnLink(elm)
{
    if (!browseris.ie55up)
        return false;
    elm.onblur = OutItem;
    elm.onkeypress = CSWP_PopMenu;
    var elmTmp = FindSTSMenuTable(elm);
    if (elmTmp == null)
        return false;
    CSWP_OnItem(elmTmp);
    return false;
}
function CSWP_PopMenu()
{
    if (!browseris.ie55up)
        return true;
    if (!IsMenuOn() && event.shiftKey && event.keyCode == 13)
    { 
        onKeyPress=true;
        CSWP_CreateMenu();
        onKeyPress=false;
        return false;
    } 
    else
        return true;
}
function CSWP_StartDeferItem(elm)
{
    if (elm != itemTable)
    {
        itemTableDeferred = elm;
        elm.onmouseout = CSWP_EndDeferItem;
        elm.onclick = CSWP_DeferredOnItem;
        elm.oncontextmenu = CSWP_DeferredOnItem;
    }
}
function CSWP_DeferredOnItem()
{
    var elm = itemTableDeferred;
    if (elm != null)
    {
        HideSelectedRow();
        CSWP_OnItem(elm);
        CSWP_CreateMenu();
        window.event.returnValue=false;
    }
}
function CSWP_EndDeferItem()
{
    var elm = itemTableDeferred;
    if (elm != null)
    {
        itemTableDeferred = null;
        elm.onmouseout = null;
        elm.onclick = null;
        elm.oncontextmenu = null;
    }
}
function CSWP_OnItem(elm)
{
    if (!browseris.ie5up || !browseris.win32)
        return false;
    if (IsMenuOn())
    {
        CSWP_StartDeferItem(elm);
        return false;
    }
    if (itemTable != null)
        OutItem();
    itemTable = elm;
    currentItemID = itemTable.ItemId;
    var createCtx = new Function("setupMenuContext(" + itemTable.CTXName + ");");
    createCtx();
    var ctx = currentCtx;
    ctx.CSMacros = elm.CSMacros;
    itemTable.className="ms-selectedtitle";
    if (browseris.ie55up)
    {
        itemTable.onclick = CSWP_CreateMenu;
        itemTable.oncontextmenu = CSWP_CreateMenu;
    }
    else 
    { 
        itemTable.onclick = EditMenuDefaultForOnclick;
        itemTable.oncontextmenu = EditMenuDefaultForOnclick;
    }
    itemTable.onmouseout = OutItem;
    titleRow = itemTable.children[0].children[0];
    i = 0;
    while (titleRow.children[i] != null)
        imageCell = titleRow.children[i++];
    if (ctx.listTemplate == LISTTEMPLATE_MEETINGS)
    {
        if (itemTable.menuType == "Orphaned") 
            downArrowText = L_Reschedule_Text;
    }
    else
        downArrowText = L_Edit_Text;
    imageCell.children[0].src = ctx.imagesPath + "i_downarrow.gif";
    imageCell.children[0].alt = downArrowText;
    imageCell.children[0].style.visibility = "visible";
    imageCell.style.visibility="visible";
    imageCell.className="ms-menuimagecell";
    return true;
}
function CSWP_CreateMenu()
{
    if (! IsContextSet()) 
        return;
    var ctx = currentCtx;
    if (itemTable == null || imageCell == null ||
        (onKeyPress == false &&
         (event.srcElement.tagName=="A" ||
          event.srcElement.parentNode.tagName == "A")))
        return;
    IsMenuShown = true;
    window.document.body.onclick="";
    m = CMenu(currentItemID + "_menu");
    currenMenu = m;
    ctx.CSItemID = currentItemID;
	var CSWP_CallbackFn = new Function("ctx", "m", ctx.CSWP_Callback + "(ctx, m);");
	CSWP_CallbackFn(ctx, m);
    OMenu(m, itemTable, null, null, -1);
    document.body.onclick=HideSelectedRow;
    return false;
}

function CSWP_SubmitFormPost(inputName, itemID, url )
{
    if (typeof(MSOWebPartPageFormName) != "undefined")
    {
        var form = document.forms[MSOWebPartPageFormName];
        if (null != form)
        {
			var inputField = form.elements[inputName];
			if( null != inputField )
			{
				inputField.value = itemID;
			}
			
            form.action = STSPageUrlValidation(url);
            form.method="POST";
            if (isPortalTemplatePage(url))
                    form.target="_top";
            if (!bValidSearchTerm)
                ClearSearchTerm("");
            form.submit();
        }
    }
}
function CSWP_ExpandMacros(macros, input)
{
	// assuming <macros> is a comma-delimited list of macro name/value pairs
	// (e.g. "AID,7,XYZ,Foo" = two pairs), replace macros in <input> (e.g.
	// "Abc.aspx?a=%AID%" becomes "Abc.aspx?a=7"); macro names can only
	// contain letters and digits; in macro values, "@", ",", and double quote
	// are escaped as "@A", "@C", and "@Q" respectively (e.g. "XYZ,Foo@Cbar"
	// has name "XYZ" and value "Foo,bar");
	var output = input;
	if( macros.length > 0 )
	{
		var aMacro = macros.split(",");
		for (var iMacro = 0; iMacro < aMacro.length; iMacro += 2)
		{
			var macroName = "%" + aMacro[iMacro] + "%";
			var macroValue = aMacro[iMacro + 1].replace(/@Q/g, "\"")
				.replace(/@C/g, ",").replace(/@A/g, "@");
			output = output.replace(new RegExp(macroName, "g"), macroValue);
		}
	}
	return output;
}
