function processMessage(sMessageName, param1, execCallback, param2, ProcMesgPath){
	
	var oDoc = new ActiveXObject("MSXML.DOMDocument");

	if(!isNull(param2) && !isNull(ProcMesgPath))
	{
		var sUrl = ProcMesgPath + "?messagename=" + sMessageName + "&param1=" + param1 + "&param2=" + param2;
	}
	else
	{
		var sUrl = "/MCSWeb/ProcessMessage.aspx?messagename=" + sMessageName + "&param1=" + param1;
	}

	oDoc.onreadystatechange = stateChange;
	oDoc.async = true;
	oDoc.load(sUrl)
	function stateChange() {

		if (oDoc.readyState == 4) {

			if (oDoc.parseError.errorCode == 0) {
				
				eval(execCallback);
			} else{
				
				alert("Error processing ASP!\n\n[" + oDoc.parseError.errorCode + "] - " + oDoc.parseError.reason + "\n" + oDoc.parseError.srcText);
			}
		}
	}
	
}


function getQueryString(getItem) {
	var QString = window.location.search;
	var itemValue;
	if ((getItem != "") && (getItem != null)) {
		var i = QString.indexOf(getItem);
		if (i != -1) {
			var str = QString.substr(i);
			i = str.indexOf("&");
			if (i != -1) { 
				str = str.substr(0,i) 
			} else { 
				str = str.substr(0);
			}
			var qArray = str.split("=");
			itemValue = qArray[1];
		} 
		else {
			itemValue = "";
		}
	} 
	else {
		itemValue = QString.substr(1);
	}
	return itemValue;

}

//var KeyPressEnabled = false;

function smartKeyPress()
{
   var Drop1 = event.srcElement;
   var keyCode = event.keyCode;
   Drop1.KeyPressEnabled = true;
   if(!Drop1.prefix){
	Drop1.prefix = '';
   }
   
   // Keycode 38 and 40 are the up and down arrow buttons, in case the user
   // uses the arrow keys to select items. We reset the value of what they
   // have typed and change the global selected item value.
   if (keyCode == 38)
   {
	  Drop1.prefix = "";
	  if(Drop1.selectedIndex > 0){
	      Drop1.selectedOption = Drop1.selectedIndex - 1;
	  }else{
		Drop1.selectedIndex = 0;
		Drop1.selectedOption = 0;
	  }
      return;
   }
   
   if (keyCode == 37)
   {
	  Drop1.prefix = "";
      Drop1.selectedIndex = 0;
      Drop1.selectedOption = 0;
      return;
   }
   
   if (keyCode == 40)
   {
	  Drop1.prefix = "";
	  if(Drop1.selectedIndex < Drop1.length - 1){
		Drop1.selectedOption = Drop1.selectedIndex + 1;
	  }
      return;
   }


   // Keycode 8 is backspace, so the user can clear out what
   // they have typed so far
   if (keyCode == 8)
   {
      Drop1.selectedIndex = 0;
	  Drop1.prefix = "";
      return;
   }

   // Keycode 32 is a space
   if (keyCode != 32)
   {
	  if(keyCode >= 96 && keyCode <= 105){
		keyCode = keyCode - 48;
	  }
      // Only process the key if it's a letter or number
      if ((keyCode < 65 || keyCode > 90) && (keyCode < 48 || keyCode > 57)){
         return;
      }
   }
   

   // Convert the ASCII keycode value to a character and add the key
   // entered to a "buffer". Normally, this would be a hidden field.
   Drop1.prefix += String.fromCharCode(keyCode).toLowerCase();
//   main.Typed.value += String.fromCharCode(event.keyCode).toLowerCase();


   // Loop through the select list to find any matches   
   for (x = 0; x < Drop1.length; x++)
   {
   
      var OptionText = Drop1.options[x].text.toLowerCase();
      var tmpOptionText = "";
  
	 if (OptionText.length >= Drop1.prefix.length && OptionText.substring(0, Drop1.prefix.length) == Drop1.prefix)
	 {
		Drop1.selectedIndex = x;
		Drop1.selectedOption = x;
		return;
	 }
   }
}

function padLeft(str, padChar, len){
	while(str.length < len){
		str = padChar + str;
	}
	return str;
}

function padRight(str, padChar, len){
	while(str.length < len){
		str = str + padChar;
	}
	return str;
}

function SelectChange()
{
   // We use this function to disable any dynamic selecting of the
   // combo-box when the user uses the mouse to select items.
   if (event.srcElement.KeyPressEnabled)
   {
      event.srcElement.selectedIndex = event.srcElement.selectedOption;   
      //event.srcElement.prefix = "";
   }
}

function showDialog(url, width, height) {
	var sFeatures;
	sFeatures="dialogWidth: "+width+"px; ";
	sFeatures+="dialogHeight: "+height+"px; ";
	sFeatures+="help: no; ";
	sFeatures+="resizable: no; ";
	sFeatures+="scroll: no; ";
	sFeatures+="status: no; ";
	sFeatures+="unadorned: no; ";

	return window.showModalDialog("/MCSWeb/modalDialog.htm?rand=" + Math.random(),url, sFeatures);;
}

function showErrorModal(strTitle, strMessage){
	var sUrl;
	sUrl = "/MCSWeb/ErrorModal.aspx?message=" + strMessage + "&title=" + strTitle;
	showDialog(sUrl, 350, 250);
}

function trim(str){
	while(str.length > 0 && str.substr(0, 1) == " "){
	str = str.substr(1);
	}
	while(str.length > 1 && str.substr(str.length - 1) == " "){
		str = str.substring(0, str.length - 1);
	}
	return str;
}

function isNull(str)
{
	if(str == null || str == '')
	{
		return true;
	}
	else
	{
		return false;
	}
}

function ChangeImage(direction, inout)
{
	if(direction == "next")
	{
		document.getElementById("imgnext").src = 'images/NextHover.jpg';
		if(inout == "out")
		{
			document.getElementById("imgnext").src = 'images/Next.jpg';
		}
	}
	else
	{
		document.getElementById("imgprevious").src = 'images/PreviousHover.jpg';
		if(inout == "out")
		{
			document.getElementById("imgprevious").src = 'images/Previous.jpg';
		}
	}
	
}


function isInteger(sText){
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         IsNumber = false;
      }
   }
   return IsNumber;
}

function isNumeric(sText){
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         IsNumber = false;
      }
   }
   return IsNumber;
}

function validatePhone(txtPhone){
        var sPhone = txtPhone.value;
        if(sPhone == ""){
            colorControlValid(txtPhone);
            return true;
        }
        
        sPhone = sPhone.replace("(", "");
        sPhone = sPhone.replace(")", "");
        sPhone = sPhone.replace("(", "");
        sPhone = sPhone.replace(")", "");
        
        sPhone = sPhone.replace("-", "");
        sPhone = sPhone.replace("-", "");
        
        sPhone = sPhone.replace(" ", "");
        sPhone = sPhone.replace(" ", "");
        sPhone = sPhone.replace(" ", "");
        sPhone = sPhone.replace(" ", "");
        
        sPhone = sPhone.replace(".", "");
        sPhone = sPhone.replace(".", "");
        sPhone = sPhone.replace(".", "");

        if(sPhone.length == 10 && isInteger(sPhone)){
            colorControlValid(txtPhone);
            txtPhone.value = formatPhone(sPhone);
            return true;
        }
        
        colorControlInvalid(txtPhone);
        return false;
        
    }
    
    function formatPhone(str){
        if(str == null && str.length != 10){
            return str;
        }
        return "(" + str.substring(0, 3) + ") " + str.substring(3, 6) + "-" + str.substring(6);
    }

	function validateAcct(txtAcct){
        var sAcct = txtAcct.value;
        if(sAcct == ""){
            colorControlValid(txtAcct);
            return true;
        }
        
        sAcct = sAcct.replace("-", "");
        sAcct = sAcct.replace("-", "");
		sAcct = sAcct.replace("-", "");
        sAcct = sAcct.replace("-", "");
		sAcct = sAcct.replace("-", "");
        sAcct = sAcct.replace("-", "");
		sAcct = sAcct.replace("-", "");
        sAcct = sAcct.replace("-", "");
		sAcct = sAcct.replace("-", "");
        sAcct = sAcct.replace("-", "");
        
        sAcct = sAcct.replace(" ", "");
        sAcct = sAcct.replace(" ", "");
        sAcct = sAcct.replace(" ", "");
        sAcct = sAcct.replace(" ", "");
		sAcct = sAcct.replace(" ", "");
        sAcct = sAcct.replace(" ", "");
        sAcct = sAcct.replace(" ", "");
        sAcct = sAcct.replace(" ", "");
		sAcct = sAcct.replace(" ", "");
        sAcct = sAcct.replace(" ", "");
        
        sAcct = sAcct.replace(".", "");
        sAcct = sAcct.replace(".", "");
        sAcct = sAcct.replace(".", "");
		sAcct = sAcct.replace(".", "");
        sAcct = sAcct.replace(".", "");
        sAcct = sAcct.replace(".", "");
		sAcct = sAcct.replace(".", "");
        sAcct = sAcct.replace(".", "");
        sAcct = sAcct.replace(".", "");
		sAcct = sAcct.replace(".", "");
             

        if(sAcct.length == 30 && isInteger(sAcct)){
            colorControlValid(txtAcct);
            txtAcct.value = formatAccount(sAcct);
            return true;
        }
        
        colorControlInvalid(txtAcct);
        return false;
        
    }
    
    function formatAccount(str){
        if(str == null && str.length != 30 && isInteger(sAcct)){
            return str;
        }
		return  str.substring(0, 2) + "-" + str.substring(2, 6) + "-" + str.substring(6, 7) + "-" + str.substring(7, 11) + "-" + str.substring(11, 15) + "-" + str.substring(15, 19)+ "-" + str.substring(19, 23) + "-" + str.substring(23, 27) + "-" + str.substring(27);
    }

	function validateCurrency(txt){
        var sCurrency = txt.value;
		var sCents = "";
        if(sCurrency == ""){
            colorControlValid(txt);
            return true;
        }
        
        if(sCurrency.indexOf('.') >= 0){
			sCents = sCurrency.substring(sCurrency.indexOf('.')+1);
            sCurrency = sCurrency.substring(0, sCurrency.indexOf('.'));
			if(!isInteger(sCents)){
				colorControlInvalid(txt);
				return false;
			}
			if(sCents.length > 2){
				sCents = sCents.substring(0, 2);
				alert(sCents + ":" + isInteger(sCents));
			}
        }
        
        sCurrency = sCurrency.replace(",", "");
        sCurrency = sCurrency.replace(",", "");
        sCurrency = sCurrency.replace(",", "");
        sCurrency = sCurrency.replace(",", "");
        sCurrency = sCurrency.replace(",", "");
        sCurrency = sCurrency.replace(",", "");
        sCurrency = sCurrency.replace(",", "");
        sCurrency = sCurrency.replace(",", "");
        sCurrency = sCurrency.replace("$", "");
        sCurrency = sCurrency.replace(".", "");

        if(isInteger(sCurrency)){
            colorControlValid(txt);
            txt.value = formatCurrency(sCurrency);
			if(sCents.length > 0){
				txt.value += ("." + padRight(sCents, '0', 2));
			}
            return true;
        }
        
        colorControlInvalid(txt);
        return false;
        
    }
    
    function formatCurrency(str){
        var rv = "";
        var count = 0;
        for(var i = str.length - 1; i >= 0; i-- ){
            rv = str.charAt(i) + rv;
            if(count++ % 3 == 2 && count != str.length){
                rv = "," + rv;
            }
        }
        rv = "$" + rv;
        return rv;
    }

    function colorControlInvalid(ctl){
        ctl.setAttribute("className", "invalidcontrol");
    }
    
    function colorControlValid(ctl){
        ctl.setAttribute("className", "");
    }

	function formatCurrecyComma(amount)
	{
		var delimiter = ","; // replace comma if desired
		var a = amount.split('.',2)
		var d = a[1];
		var i = parseInt(a[0]);
		if(isNaN(i)) { return ''; }
		var minus = '';
		if(i < 0) { minus = '-'; }
		i = Math.abs(i);
		var n = new String(i);
		var a = [];
		while(n.length > 3)
		{
			var nn = n.substr(n.length-3);
			a.unshift(nn);
			n = n.substr(0,n.length-3);
		}
		if(n.length > 0) { a.unshift(n); }
		n = a.join(delimiter);
		if(d.length < 1) { amount = n; }
		else { amount = n + '.' + d; }
		amount = minus + amount;
		return "$" + amount;
	}