


// runs on pageload
var bExtraPreLoadCommands = false;
function RunOnLoad()
{
	//preloadimages();
	FixExternalLinks();

	// look for the bExtraOnLoadCommands flag and run extra functions if they are present
	if (bExtraPreLoadCommands)
	{
		ExtraOnLoadCommands();
	}
}







function pressMsgButton(oButton)
{
	var sButtonVal = oButton.value;
	var iQAID = oButton.name;
	var oRecipientCount = document.getElementById('recipient_count');
	var xmlHttp;
	var sXmlHttpResponseText;
	
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("ERROR: Your browser does not support the modern JavaScript required to run this function.");
				return false;
			}
		}
	}
	
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			sXmlHttpResponseText = xmlHttp.responseText;
			
			if (sXmlHttpResponseText == 'Remove Member')
			{
				oButton.className = 'msg_add';
				oButton.value = 'Add Member';
				oRecipientCount.innerHTML = parseInt(oRecipientCount.innerHTML) - 1;
			}
			else if (sXmlHttpResponseText == 'Add Member')
			{
				oButton.className = 'msg_remove';
				oButton.value = 'Remove Member';
				oRecipientCount.innerHTML = parseInt(oRecipientCount.innerHTML) + 1;				
			}
			else if (sXmlHttpResponseText == 'Remove All Members')
			{
				var oButtonGroup = dom_getElementsByClassName(document, 'input', 'msg_remove');
				for (var i=0; i<oButtonGroup.length; i++)
				{
					oButtonGroup[i].className = 'msg_add';
					oButtonGroup[i].value = 'Add Member';
				}				
				oRecipientCount.innerHTML = 0;
			}
			else if (Left(sXmlHttpResponseText,18) == 'Add All Members')
			{
				var oButtonGroup = dom_getElementsByClassName(document, 'input', 'msg_add');
				for (var i=0; i<oButtonGroup.length; i++)
				{
					oButtonGroup[i].className = 'msg_remove';
					oButtonGroup[i].value = 'Remove Member';
				}
				var aCountNumber = sXmlHttpResponseText.split('|');
				var iCountNumber = aCountNumber[1];
				oRecipientCount.innerHTML = iCountNumber;
			}
			else if (sXmlHttpResponseText == 'Send Individual Message')
			{
				// clear all buttons
				var oButtonGroup = dom_getElementsByClassName(document, 'input', 'msg_remove');
				for (var i=0; i<oButtonGroup.length; i++)
				{
					oButtonGroup[i].className = 'msg_add';
					oButtonGroup[i].value = 'Add Member';
				}
				if (oRecipientCount !== null)
				{				
					oRecipientCount.innerHTML = 0;
				}	

				// turn on the one button for this member
				//oButton.className = 'msg_remove';
				//oButton.value = 'Remove Member';
				if (oRecipientCount !== null)
				{
					oRecipientCount.innerHTML = parseInt(oRecipientCount.innerHTML) + 1;
				}	
				
				// send to compose page							
				window.opener.location = 'msg_composesend.asp';
				window.blur();
				window.opener.focus();
				//window.close();
			}
		}
	}
	
	xmlHttp.open("GET","msg_pressmsgbutton.asp?value=" + sButtonVal + "&qaid=" + iQAID,true);
	xmlHttp.send(null);		
}

function clickListEditLink()
{
	var bRetVal = false;
	
	//alert('...' + document.getElementById('sSubject').value + '...');
	//alert('...' + document.getElementById('sMessage').value + '...');
	
	if (document.getElementById('sSubject').value=='' && document.getElementById('sMessage').value=='')
	{
		bRetVal = true;
	}
	else
	{
		var answer = confirm("The message you are composing will be lost. Do you want to abandon the message and run this action?");
		if (answer)
		{
			bRetVal = true;
		}
		else
		{
			bRetVal = false;
		}		
	}		
	
	return bRetVal;
}














// ### General Utility & DOM Handling Functions Below This Line



// ### gets an array of objects that match the input start element, tag name, and class name
// Ways of calling the function are:
// To get all a elements in the document with a “info-links” class. 
// getElementsByClassName(document, "a", "info-links"); 
// To get all div elements within the element named “container”, with a “col” and a “left” class. 
// getElementsByClassName(document.getElementById("container"), "div", ["col", "left"]); 
function dom_getElementsByClassName(oElm, strTagName, oClassNames){
    var arrElements = (strTagName == "*" && document.all)? document.all : 
    oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var arrRegExpClassNames = new Array();
    if(typeof oClassNames == "object"){
        for(var i=0; i<oClassNames.length; i++){
            arrRegExpClassNames.push(new RegExp("(^|\\s)" + 
            oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
        }
    }
    else{
        arrRegExpClassNames.push(new RegExp("(^|\\s)" + 
        oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
    }
    var oElement;
    var bMatchesAll;
    for(var j=0; j<arrElements.length; j++){
        oElement = arrElements[j];
        bMatchesAll = true;
        for(var k=0; k<arrRegExpClassNames.length; k++){
            if(!arrRegExpClassNames[k].test(oElement.className)){
                bMatchesAll = false;
                break;                      
            }
        }
        if(bMatchesAll){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}



function dom_addClassName(oElm, strClassName)
{
	var strCurrentClass = oElm.className;
	if(!new RegExp(strClassName, "i").test(strCurrentClass)){
		oElm.className = strCurrentClass + ((strCurrentClass.length > 0)? " " : "") + strClassName;
	}
}



function dom_removeClassName(oElm, strClassName)
{
	var oClassToRemove = new RegExp((strClassName + "\s?"), "i");
	oElm.className = oElm.className.replace(oClassToRemove, "").replace(/^\s?|\s?$/g, "");
}



function dom_hasClassName(oElm, strClassName)
{  
	return oElm.className.match(new RegExp('(\\s|^)'+strClassName+'(\\s|$)'));
}



// ### adds a function to run at onLoad
function dom_addLoadEvent(func)
{
	var oldonload = window.onload;
	if (typeof window.onload != 'function')
	{
		window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			oldonload();
			func();
		}
	}
}




function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}






