/***** BROWSER DETECTION *****/
var g_UA = navigator.userAgent.toLowerCase();
var g_NETSCAPE = (g_UA.indexOf("netscape")>0);
var g_NETSCAPE8 = (g_UA.indexOf("netscape/8")>0);
var g_NETSCAPE_LESS8 = (g_NETSCAPE && !g_NETSCAPE8);
var g_FIREFOX = (g_UA.indexOf("firefox")>0) 
var g_OPERA = (g_UA.indexOf("opera")>0)
var g_WEBTV = (g_UA.indexOf("webtv")>0)
var g_IE = (!g_OPERA && !g_WEBTV && g_UA.indexOf("msie")>0); //navigator.userAgent contains "msie" for Opera and WebTv too!!
var g_SAFARI = (g_UA.indexOf("safari") != -1);
var g_KONQUEROR = (g_UA.indexOf("konqueror") != -1);
var g_USE_NEW_CONTENT_MANAGER = (document.getElementById && document.designMode && !g_SAFARI && !g_KONQUEROR && !g_NETSCAPE_LESS8);
var g_USE_FCK_CONTENT_MANAGER = (!g_SAFARI && !g_KONQUEROR && !g_NETSCAPE_LESS8 && !g_OPERA);
var g_FormatDate = "yyyy/MM/dd";
var g_IE_VERSION5 = g_IE && (g_UA.charAt(navigator.appVersion.indexOf("msie") + 5) >= 5);
var g_WIN16 = (navigator.platform.indexOf("Win16") > 0);
var g_MAC = (g_UA.indexOf("mac")>0);


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~   MM Functions     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  myWin = window.open(theURL,winName,features);
  myWin.focus();
}


/***** GENERAL FUNCTIONS *****/
function check3Phone( PhoneField1ID, PhoneField2ID, PhoneField3ID, isRequired, showAlert )
{
	
	if( (document.getElementById(PhoneField1ID)) && (document.getElementById(PhoneField2ID)) && (document.getElementById(PhoneField3ID)) )
	{
		var PhoneField1 = document.getElementById(PhoneField1ID);
		var PhoneField2 = document.getElementById(PhoneField2ID);
		var PhoneField3 = document.getElementById(PhoneField3ID);
		
		if ((PhoneField1.value.length > 0 ) || (PhoneField2.value.length > 0) || (PhoneField3.value.length > 0)) {
			
			if (PhoneField1.value.length < 3 ) {
				if(showAlert)
					alert('This field must be a 3 digit from an U.S. phone number (like 415-555-1212)');
				changeClass(PhoneField1ID,'errField phoneField');
				PhoneField1.focus();
				return false;
			}
			else
				changeClass(PhoneField1ID,'standardField phoneField');
			
			if (PhoneField2.value.length < 3) {
				if(showAlert)
					alert('This field must be a 3 digit from an U.S. phone number (like 415-555-1212)');
				changeClass(PhoneField2ID,'errField phoneField');
				PhoneField2.focus();
				return false;
			}
			else
				changeClass(PhoneField2ID,'standardField phoneField');
				
			if (PhoneField3.value.length < 4) {
				if(showAlert)
					alert('This field must be a 4 digit from an U.S. phone number (like 415-555-1212)');
				changeClass(PhoneField3ID,'errField phoneField');
				PhoneField3.focus();
				return false;
			}
			else
				changeClass(PhoneField3ID,'standardField phoneField');
		}
		else
		{
			if ( isRequired ) 
			{
				if(showAlert)
					alert("Please enter Phone ");
				PhoneField1.focus();
				return false;
			}
		}
	}
	else
	{
		alert("No Phone field present on this form");
	    return false;
	}
	
	return true;
}
function clearCharacters( oCtrl ) {
	oCtrl.value = oCtrl.value.replace(/\D/g,'');
}
function focusNext( oCtrl, NextCtrlID ) {
	if(oCtrl.value.length==3)
	{
		if (document.getElementById(NextCtrlID))
			document.getElementById(NextCtrlID).focus();
	}
}

function doAssociateObjects( oSource, oTarget, bAssociate )
{
	if(bAssociate)
		oTarget.value = oSource.value;
}

function doClearObject(obj, clearvalue)
{
	obj.value = clearvalue;
}

function changeClass(Elem, myClass) 
{
	if(document.getElementById(Elem))
		document.getElementById(Elem).className = myClass;
}

function checkRequired( objCurrent )
{
	if(!isEmpty(objCurrent.value))
	{
		changeClass(objCurrent.id,'formField');
	}
	else
	{
		changeClass(objCurrent.id,'errformField');
	}
}
function checkRequiredSelect( objCurrent )
{
	if(objCurrent.value != "0")
	{
		changeClass(objCurrent.id,'formField');
	}
	else
	{
		changeClass(objCurrent.id,'errformField');
	}
}
function doSincroRequired( objAssociated, isAssociated )
{
	if ( isAssociated )
	{
		checkRequired(objAssociated);
	}
}
function doSincroReset( objAssociated, isAssociated, isAssocieatedRequired )
{
	if ( isAssociated )
	{
		resetCSS ( objAssociated ) ;
		
		if ( isAssocieatedRequired ) 
			checkRequired ( objAssociated );
	}
}
function StripSpaces(sValue)
{
	return sValue.replace((/\s/g), ""); 
}
function resetCSS( objCurrent )
{
	changeClass(objCurrent.id,'formField');
}
function resetCSSObj( objCurrentID )
{
	if(document.getElementById(objCurrentID))
		changeClass(document.getElementById(objCurrentID).id,'formField');
}
function autoNumber(CtrlID) 
{			
	var oCtrl = eval("document.forms.frmOnlineDonation." + CtrlID);
	if(oCtrl){
		if(oCtrl.value.length > 0){
			oCtrl.value = oCtrl.value.replace(/-/,"");
		}
		
		var num = new NumberFormat();
		num.setInputDecimal('.');
		num.setNumber(oCtrl.value);
		num.setPlaces('2', false);
		num.setCurrencyValue('$');
		num.setCurrency(true);
		num.setCurrencyPosition(num.LEFT_OUTSIDE);
		num.setNegativeFormat(num.LEFT_DASH);
		num.setNegativeRed(false);
		num.setSeparators(true, ',', ',');
		oCtrl.value = num.toFormatted();
	}
}
function autoNumberValue(dValue) 
{			
	if(dValue.length > 0)
	{
		dValue = dValue.replace(/-/,"");
		var num = new NumberFormat();
		num.setInputDecimal('.');
		num.setNumber(dValue);
		num.setPlaces('2', false);
		num.setCurrencyValue('$');
		num.setCurrency(true);
		num.setCurrencyPosition(num.LEFT_OUTSIDE);
		num.setNegativeFormat(num.LEFT_DASH);
		num.setNegativeRed(false);
		num.setSeparators(true, ',', ',');
		return num.toFormatted();
	}
}
function selectCheckBox(chkID, Value)
{
	if(document.getElementById(chkID))
		document.getElementById(chkID).checked = (Value=="1")?true :false;
}

//Validation functions
var reWhitespace = /^\s+$/
function isEmpty(s)
{   
	return ((s == null) || (s.length == 0))
}

function isWhitespace (s)
{
	return (isEmpty(s) || reWhitespace.test(s));
}
function validateUSPhone( strValue ) 
{
	if((isPhone(strValue)) || (isPhone2Format(strValue))){
		return true;
	}
	else{
		return false;
	}
}
function isEmail(string) {
    if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
        return true;
    else
        return false;
} //alert("Please enter a valid E-Mail address, like: name@companyname.com ");

function isPhone(str) //format: NNN-NNN-NNNN
{
	if (str.length != 12)     
	{		
		return false;
	}		
	
	for (var i=0; i<12; i++)
	{
		if ((i == 3 || i == 7) && str.charAt(i) != "-")
		{
			return false;
		}
		if (i!=3 && i!=7 && parseInt(str.charAt(i)) != str.charAt(i))
		{				
			return false;
		}		
	}
	
	return true;                     
}

function isPhone2Format(str) //format: (NNN) NNN-NNNN
{
	return /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/.test(str);                   
}

function isZip (str) // format NNNNN or NNNNN-NNNN
{
	if (str.length!=5 && str.length!=10)
	{	
		return false;
	}
		
	for (var i=0; i < str.length; i++) 
	{
		if(str.length == 5 && parseInt(str.charAt(i)) != str.charAt(i))
		{
			return false;
		}
		if(str.length == 10 && str.charAt(5) != "-")
		{
			return false;
		}			
		if(str.length == 10 && (i != 5 && parseInt(str.charAt(i)) != str.charAt(i)))		
		{		
			return false;
		}
	}

	return true;
} // Please enter valid Zip like: xxxxx or xxxxx-xxxx!

function isInteger( strValue ) {
	var objRegExp  = /(^-?\d\d*$)/;
	return objRegExp.test(strValue);
}
function isNumeric( strValue ) {
	var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
	return objRegExp.test(strValue);
}
function isURL(str) //format: (http|https|ftp)://
{
	return /^((http|https|ftp):\/\/)(\S*)$/.test(str);
}
function trim(str)
{
    if(!str || typeof str != 'string')
        return null;

    return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}
function stripWhiteChars(str)
{
    if(!str || typeof str != 'string')
        return null;

    return str.replace(/\s/g,'');
}
function showItem(oID, bShow)
{
	document.getElementById(oID).style.display = bShow ? "block" : "none";
}


