function forceNumeric(whatValue)
{
	if(isNaN(whatValue))
	{
		return '';
	} else {
		return whatValue;
	}
}



function IsDigitDec(e)
{	
	
		
	if(!e)
	{
		e=window.event;
	}
	var key = e.keycode ? e.keycode : e.which;
		
  if (window.event)
  {
    key = event.keyCode
  } else {
    key = e.which
  }
  // numeric character (47 to 58) 
  // backspace (8)
  // . (46)
  // tab/delete etc (0)
  if ( key > 47 && key < 58 || key == 8 || key == 46 || key == 0)
  {
    return; 
  } else { // otherwise, discard character

    if (window.event) //IE
    {
      window.event.returnValue = null;
    } else { //Firefox
      e.preventDefault();
		}
	}
}



function IsDigit(e)
{	
		
	if(!e)
	{
		e=window.event;
	}
	var key = e.keycode ? e.keycode : e.which;
 
  if (window.event)
  {
    key = event.keyCode
  } else {
    key = e.which
  }
 
  // numeric character (47 to 58) 
  // backspace (8)
  // tab/delete etc (0)
  
  if ( key > 47 && key < 58 || key == 8 || key == 0)
  {
    return; 
  } else { // otherwise, discard character

    if (window.event) //IE
    {
      window.event.returnValue = null;
    } else { //Firefox
      e.preventDefault();
		}
	}
}

function emailCheck (emailStr)
{
	var emailPat=/^(.+)@(.+)$/
	var specialChars='\\(\\)<>@,;:\\\\\\\"\\.\\[\\]'
	var validChars='\[^\\s' + specialChars + '\]';
	var quotedUser='(\"[^\"]*\")';
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word='(' + atom + '|' + quotedUser + ')';
	
	
	var userPat=new RegExp('^' + word + '(\\.' + word + ')*$')
	var domainPat=new RegExp('^' + atom + '(\\.' + atom +')*$')
	var matchArray=emailStr.match(emailPat);
	
	if (matchArray==null)
	{
		return false
	}
	
	var user=matchArray[1]
	var domain=matchArray[2]
	
	if (user.match(userPat)==null)
	{
		return false
	}
	
	var IPArray=domain.match(ipDomainPat)
	
	if (IPArray!=null) 
	{
		for (var i=1;i<=4;i++)
		{		
			if (IPArray[i]>255)
			{
				return false
			}
		}
		
		return true
	}
	
	var domainArray=domain.match(domainPat)
	
	if (domainArray==null) 
	{
		return false
	}
	
	var atomPat=new RegExp(atom,'g')
	var domArr=domain.match(atomPat)
	var len=domArr.length
	
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3)
	{
		return false
	}
	
	if (len<2) 
	{
		return false
	}
	
	return true;
}



function format (expr, decplaces)
{
	
	if(isNaN(expr))
	{
		expr = 0;	
	}	
	expr = parseFloat(expr);	
	var str = '' + Math.round (eval(expr) * Math.pow(10,decplaces))	;
	while (str.length <= decplaces) 
	{
		str = '0' + str;
	}		
	var decpoint = str.length - decplaces;
	return str.substring(0,decpoint) + '.' + str.substring(decpoint,str.length);
	
}

function findFrame(what) 
{
	
	
	
	if(typeof document.getElementById(what) == 'object')
	{
		return true;
	}
	
	for (var i=0;i<window.frames.length;i++)
	{
	   if (window.frames[i].name == what)
	   {
	     return true;
	   }
	}
	
	return false;
		
}


function showImage(imageURL)
{
	var imageTitle = imageURL	
		
	if(imageURL == '(none)' || imageURL.substr(imageURL.length-6,6) == '(none)')
	{		
		alert('Image Preview:\nNo image is selected.');
		return;		
	}
	
	var PositionX = 100;
	var PositionY = 100;
	
	var defaultWidth  = 500;
	var defaultHeight = 500;
		
	var AutoClose = true;
	
	if (parseInt(navigator.appVersion.charAt(0))>=4)
	{
		var isNN=(navigator.appName=="Netscape")?1:0;
		var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;
	}
	
	var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight;
	var optIE='scrollbars=no,width=150,height=100';
	
	if (isNN)
	{
		imgWin=window.open('about:blank','',optNN);
	}
		
	if (isIE)
	{
		imgWin=window.open('about:blank','',optIE);
	}
	with (imgWin.document)
	{
		writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');
		writeln('<sc'+'ript>');
		writeln('var isNN,isIE;');
		writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
		writeln('isNN=(navigator.appName=="Netscape")?1:0;');
		writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
		writeln('function reSizeToImage(){');
		writeln('if (isIE){');
		writeln('window.resizeTo(100,100);');
		writeln('width=100-(document.body.clientWidth-document.images[0].width);');
		writeln('height=100-(document.body.clientHeight-document.images[0].height);');
		writeln('window.resizeTo(width,height);}');
		writeln('if (isNN){');       
		writeln('window.innerWidth=document.images["George"].width;');
		writeln('window.innerHeight=document.images["George"].height;}}');
		writeln('function doTitle(){document.title="'+' '+'";}');
		writeln('</sc'+'ript>');
		if (!AutoClose)
		{		
			writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">')		
		}	
		else 
		{		
			writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
			writeln('<img name="George" src='+imageURL+' style="display:block"></body></html>');
			close();		
		}
	}
	
	return;
	
}

var http_request = false;
function makePOSTRequest(url, parameters) {
	
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
     	// set type accordingly to anticipated content type
        //http_request.overrideMimeType('text/xml');
        http_request.overrideMimeType('text/plain');
     }
  } else if (window.ActiveXObject) { // IE
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) 
        {
        
        	}
     }
  }
  if (!http_request) {
     alert('Cannot create XMLHTTP instance');
     return false;
  }
  
  http_request.onreadystatechange = processResult;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

function ajaxPostForPlain(url, parameters, postBackFunc) {
	
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
     http_request = new XMLHttpRequest();
     if (http_request.overrideMimeType) {
     	// set type accordingly to anticipated content type
        //http_request.overrideMimeType('text/xml');
        http_request.overrideMimeType('text/plain');
     }
  } else if (window.ActiveXObject) { // IE
     try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (e) {
        try {
           http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) 
        {
        
        	}
     }
  }
  if (!http_request) {
     alert('Cannot create XMLHTTP instance');
     return false;
  }
  
  http_request.onreadystatechange = postBackFunc;
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

function processResult(whatFormName) {
  if (http_request.readyState == 4) {
     if (http_request.status == 200) {	            
        result = http_request.responseText;	            
        try
        {
          eval(result);
        } 
        catch(e)
        {
        	alert("Problem evaluating. Check debug text.\n"+e.message)	        	        	
        }
        
        try
      	{
      		document.getElementById('debugPre').value = result;
      	}
      	catch(e)
      	{}
              
     } else {
        alert('There was a problem with the request.');
        result = http_request.responseText;
        document.getElementById('debugHtm').innerHTML = result;
     }
  }
}

function getSelectedRadioValue(radioFormControl)
{
	
	var numRadio;
	
	numRadio = radioFormControl.length;
	
	if(numRadio != null)
	{
		for(var iRadio=0;iRadio<numRadio;iRadio++)
		{
			if(radioFormControl[iRadio].checked)
			{
				return radioFormControl[iRadio].value;
			}
		}
	}else{
		if(radioFormControl.checked)
		{
			return radioFormControl.value;
		}
	}
	
	return '';
	
}


function getFieldValue(oForm,myFieldName,myFieldType)
{
	
	
	var frm = oForm;
	
	var oControl = eval('frm.'+myFieldName);
	var sVal = '';
		
	switch(myFieldType)
	{

		case 1: 
		case 2:
		case 3:
		case 4:
		case 5:
		case 6:
		case 7:
		case 8:
		case 9:
		case 14:
		case 19:		
		case 22:
		case 24:
		case 26:
		case 27:
		
			sVal += '&';
			sVal += myFieldName+'=';						
			sVal += encodeURIComponent(oControl.value);
			break;
		
		case 11:
		case 15:
		case 25:
		
			sVal += '&'
			sVal += myFieldName+'=';						
			sVal += encodeURIComponent(oControl[oControl.selectedIndex].value);
			break;
		
		case 12:
			
			sVal += '&';
			sVal += myFieldName+'=';
			sVal += encodeURIComponent(getSelectedRadioValue(oControl));
			break;
		
		case 13:
		case 16:
						
			if(oControl.length != null)
			{						
				for(var iChk = 0;iChk < oControl.length;iChk++)
				{
					
					if(myFieldType == 13)
					{ 
						
						if(oControl[iChk].checked)
						{									
							sVal += '&';
							sVal += myFieldName+'=';
							sVal += encodeURIComponent(oControl[iChk].value);									
						}
					}else{
						
						if(oControl[iChk].selected)
						{									
							sVal += '&';
							sVal += myFieldName+'=';
							sVal += encodeURIComponent(oControl[iChk].value);									
						}
					}		
				}						
			}else{							
				if(myFieldType == 13)
				{
					if(oControl.checked)
					{
						sVal += '&';
						sVal += myFieldName+'=';
						sVal += encodeURIComponent(oControl.value);
					}
				}else{
					if(oControl.selected)
					{									
						sVal += '&';
						sVal += myFieldName+'=';
						sVal += encodeURIComponent(oControl[iChk]);									
					}
				}		
			}						
			break;
						
	}
		
	return sVal;
	
}



function edInsertContent(myField, myValue)
{
	
	if (document.selection) 
	{
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
		myField.focus();
	}	
	else if (myField.selectionStart || myField.selectionStart == '0')
	{
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		+ myValue
		+ myField.value.substring(endPos, myField.value.length);
		myField.focus();
		myField.selectionStart = startPos + myValue.length;
		myField.selectionEnd = startPos + myValue.length;
	} else {
		myField.value += myValue;
		myField.focus();
	}
}

function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

var spinnerFormName = false;

function rePositionSpinner()
{
	
	if(spinnerFormName)
	{
		if(spinnerFormName.length > 0)	
		{			
			return positionSpinner(spinnerFormName);
		}
	}	
}

function positionSpinner(formNameToUse)
{
	
					
	var spinElement 					= eval('document.getElementById(\''+formNameToUse+'_spin\')');
	var hideFrameElement 			= eval('document.getElementById(\''+formNameToUse+'_hideFrame\')');
	
	var browserHeight 	= f_clientHeight();
	var browserWidth 	= f_clientWidth();
	
	var scrollYPos		 	= f_scrollTop();
	
	var spinnerWidth		= 300;				
	var spinnerHeight	= 80;
	
	var newHeight = spinnerHeight + 'px';
	var newWidth = spinnerWidth + 'px';
	var newPosY = ((browserHeight/2) - (spinnerHeight/2) + scrollYPos) + 'px';
	var newPosX = (browserWidth/2) - (spinnerWidth/2) + 'px';
	
	spinElement.style.width 	= newWidth;
	spinElement.style.top 		= newPosY;
	spinElement.style.left 	= newPosX;
	
	hideFrameElement.style.height 	= newHeight;
	hideFrameElement.style.width 		= spinnerWidth + 38 + 'px';
	hideFrameElement.style.top 			= newPosY;
	hideFrameElement.style.left 		= newPosX;
	
	return true;
	
}