//**************** STATIC VARIABLE DECLARATIONS ****************//
								//
var digits = "0123456789";					//
var phoneNumberDelimiters = "()- .";				//
var validPhoneChars = digits + phoneNumberDelimiters;		//
var defaultEmptyOK = false					//
								//
//****************************************************************

function fn_Cursor(oField)
{
    if((oField.style.cursor == "") || (oField.style.cursor != "pointer"))
        oField.style.cursor = "pointer";
    else
        oField.style.cursor = "default";
}

function isEmpty (s) {
	return ((s == null) || (s.replace(/ /g, '').length == 0));
}

function isLogin(s){
    var rExp = /^([a-zA-Z]{1})([a-zA-Z0-9]|[@!$#*.-_?]){7,}$/;   
    return rExp.test(s);
}

function isEmail(s){ //Ex: localizador@nextel.com.br   
    var rExp = /^[a-z0-9][a-z0-9_\.-]{0,}[a-z0-9]@[a-z0-9][a-z0-9_\.-]{0,}[a-z0-9][\.][a-z0-9]{2,4}$/;
     return rExp.test(s);
}

function isPhone(s){ //Ex: 1178010101  
    var rExp = /\d{10}/;
     return rExp.test(s);
}

function fn_CodBscs(e)
{
    var key = window.event ? e.keyCode : e.which;
    var isCtrl = false;

    if(window.event)
    {
        if(window.event.ctrlKey)
            isCtrl = true;
    }
    else
    {
        if(e.ctrlKey)
            isCtrl = true;
    }
                  
    if(!isCtrl)
    {
        if (e.type != 'keydown')
        {
            if ( (key > 47 && key < 58) || (key == 8) || (key == 0) || (key == 46) )
                return true;
        }
        else
            return true;
    }
        
    return false;
}

function fn_FormatBscs(oField)
{
    var arrChar = "0123456789.";
    var Return = '';
    
    for(var iChar = 0; iChar < oField.value.length; iChar++)
    {
        if (arrChar.indexOf(oField.value.charAt(iChar)) >= 0)
            Return += oField.value.charAt(iChar);
    }
    
    oField.value = Return;
}

function fn_Number(e)
{
    var key = window.event ? window.event.keyCode : e.which;
    var isCtrl = false;

    if(window.event)
    {
        if(window.event.ctrlKey)
            isCtrl = true;
    }
    else
    {
        if(e.ctrlKey)
            isCtrl = true;
    }

    if(!isCtrl)
    {
        if (e.type != 'keydown')
        {
            if ( (key > 47 && key < 58) || (key == 8) || (key == 0))
                return true; 
        }
        else
            return true;
    }
        
    return false;
}

function fn_FormatNumber(oField)
{
    var arrChar = "0123456789";
    var Return = '';
    
    for(var iChar = 0; iChar < oField.value.length; iChar++)
    {
        if (arrChar.indexOf(oField.value.charAt(iChar)) >= 0)
            Return += oField.value.charAt(iChar);
    }
    
    oField.value = Return;
}

function enable (myElement) {
	myElement.disabled= false;
}

function blankndisable (myElement) {
	myElement.value="";
	myElement.disabled= true;
}

function normalizeInputs (myForm) {
	pReplyDest= "the "+myForm.repTo.options[myForm.repTo.selectedIndex].text;
	if(myForm.repTo.options[myForm.repTo.selectedIndex].value == "webSite")
		pReplyDest+= " (no input needed)";
	if((myForm.repTo.options[myForm.repTo.selectedIndex].value == "noRep") || 
		(myForm.repTo.options[myForm.repTo.selectedIndex].value == "webSite")) {
		blankndisable(myForm.dest);
		if(myForm.repTo.options[myForm.repTo.selectedIndex].value == "noRep") {
			pReplyDest= "a Reply Type above before entering a destination";
			pReply="a Reply Type below before entering reply text";
			blankndisable(myForm.rep1);
			blankndisable(myForm.rep2);
			blankndisable(myForm.rep3);
			blankndisable(myForm.rep4);
			blankndisable(myForm.rep5);
			blankndisable(myForm.rep6);
			checkMessageLength(myForm);
			return true;
		}
	} else {
		myForm.dest.disabled= false;
	}
	pReply= "a reply the recipient may choose";
	enable(myForm.rep1);
	enable(myForm.rep2);
	enable(myForm.rep3);
	enable(myForm.rep4);
	enable(myForm.rep5);
	enable(myForm.rep6);
	return true;
}

function reformat (s) {
	var arg;
	var sPos = 0;
	var resultString = "";

	for (var i = 1; i < reformat.arguments.length; i++) {
		arg = reformat.arguments[i];
		if (i % 2 == 1) {
			resultString += arg;
		} else {
		   resultString += s.substring(sPos, sPos + arg);
		   sPos += arg;
		}
	}
	return resultString;
}

function isInteger (s) {
	var i;
	if (isEmpty(s))
		if (isInteger.arguments.length == 1) return defaultEmptyOK;
		else return (isInteger.arguments[1] == true);
	// Search through string's characters one by one
	// until we find a non-numeric character.
	// When we do, return false; if we don't, return true.
	for (i = 0; i < s.length; i++) {
		// Check that current character is number.
		var c = s.charAt(i);
		if (!isDigit(c)) return false;
	}
	// All characters are numbers.
	return true;
}

function isDigit (c) {
	return ((c >= "0") && (c <= "9"))
}
 
function promptEntry (s) {
	window.status = pEntryPrompt + s
}

function warnInvalid (theField, s) {
	theField.focus()
	theField.select()
	alert(s)
	return false
}

function reformatPhone (Phone) {
    //return (reformat(Phone, "(", 3, ") ", 3, "-", 4))
    return (reformat(Phone, "",10))
}
 
function isPhoneNumber (s) {
	var isGoodNumber = false;
	if (isEmpty(s)) {
		if (isPhoneNumber.arguments.length == 1) return defaultEmptyOK;
		else return (isPhoneNumber.arguments[1] == true);
	} else {
		ptnLengthArray = s_DigitsInPhoneNumber.split(" ");
		for (i = 0; i<ptnLengthArray.length; i++) {
			if (ptnLengthArray[i] == s.length && isInteger(s)) {
				isGoodNumber = true;
				break;
			}
		}
	}
	return isGoodNumber;
}

function isClaimCheck (s) {
	if (isEmpty(s)) {
		if (isClaimCheck.arguments.length == 1) return defaultEmptyOK;
		else return (isClaimCheck.arguments[1] == true);
	}
	return (isInteger(s) && s.length <= i_DigitsInClaimCheck)
}

function stripCharsInBag (s, bag) {
	var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++) {
		// Check that current character isn't whitespace.
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) {
			returnString += c;
		}
	}
	return returnString;
}
 
function checkPhone (theField, emptyOK) {
   if (checkPhone.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    else {
       var normalizedPhone = stripCharsInBag(theField.value, phoneNumberDelimiters)
       //alert(normalizedPhone);
       if (!isPhoneNumber(normalizedPhone, false)) {
	  warnInvalid(theField,s_AlertInvalidPhoneNumber);
          return false;
       } else {
          // if you don't want to reformat as (123) 456-789, comment next line out
          // theField.value = reformatPhone(normalizedPhone)
	  
	  theField.value= normalizedPhone;
          return true;
       }
    }
}

function checkEMail (theField) {
  var s= theField.value;
  if (isEmpty(s)) return true;
  var addrOkay= (s.indexOf('@')!= -1) && (s.indexOf('.')!= -1);
  if(!addrOkay) {
	alert(s_AlertInvalidEmailAddress);
	theField.focus();
	return false;
  } else
	return true;
}

function checkForValidConfo (theBox) {
  if(theBox.checked &&
     isEmpty(theBox.form.replynumber.value) &&
     isEmpty(theBox.form.replyemail.value)) {
    theBox.checked= false;
    alert(s_AlertInvalidConfirmationAddress);
    theBox.form.replynumber.focus();
    return false;
  }
  return true;
}

function checkForReplyAddr (theForm) {
  var rep1val= theForm.rep1.value;
  if(//!isEmpty(rep1val) &&
     !isEmpty(theForm.twoWayPTNs.value) &&
     isEmpty(theForm.replynumber.value) &&
     isEmpty(theForm.replyemail.value))
    return confirm(s_AlertNoReplyToData);
  else
    return true;
}

function checkClaimCheck (theField, emptyOK) {
	if (checkClaimCheck.arguments.length == 1) emptyOK = defaultEmptyOK;
	if ((emptyOK == true) && (isEmpty(theField.value))) return true;
	else {
		if (!isClaimCheck(theField.value, false))
			return warnInvalid (theField, s_AlertInvalidClaimCheck);
		else
			return true;
	}
}

function checkMessageLength (form,checkLength,splitcheck) {
	if( checkMessageLength.arguments.length == 1) { checkLength = true; splitcheck = false; }
	if( checkMessageLength.arguments.length == 2) splitcheck = false;
	if( checkLength == false ) return true;
	var count = countChars(form,false);
	var rc = true;
		    
	form.count.value = count;
	if( count > charLimit ) {
		alert(s_AlertMessageLengthFirstChunk+" "+charLimit+" "+s_AlertMessageLengthLastChunk);
		form.message.focus();
		rc = false;
	} else {
		count= countChars(form,false);
		if(count > smsLimit && splitcheck) {
			var sysChars= count-form.message.value.length;
			rc = confirm(s_AlertSMSMessageLengthFirstChunk+" "+smsLimit+" "+ s_AlertSMSMessageLengthLastChunk+"\n\n"+ form.message.value.substr(0,smsLimit-sysChars));
		}
	}
	return rc;
}

function countChars (form,includeReplies){
	if (countChars.arguments.length == 1) includeReplies= true;
	if (blegal) {
	    var lenFrom = form.from.value.length 
		var lenSubject = form.subject.value.length 
		var lenMessage = form.message.value.length 
		var count = lenFrom + lenSubject 
		if( count > 0 )
			count = count + 2	//Add in the two vertical separators
		count = count + lenMessage
		if( count > charSplit) 
			count = count + 8	//Allow for the (cont&#8217;d)
			
		if(includeReplies) {
				    
			if(form.rep1.value.length>0)
				count= count+form.rep1.value.length+4;	//Allow for "~~\r\n" for each included reply
			if(form.rep2.value.length>0)
				count= count+form.rep2.value.length+4;
			if(form.rep3.value.length>0)
				count= count+form.rep3.value.length+4;
			if(form.rep4.value.length>0)
				count= count+form.rep4.value.length+4;
			if(form.rep5.value.length>0)
				count= count+form.rep5.value.length+4;
			if(form.rep6.value.length>0)
				count= count+form.rep6.value.length+4;
		}
		return count;
	} else {
		return 0;
	}
}

function validate (form, checkLength) {
	if (validate.arguments.length == 1) checkLength = true;
	if (form.message.value.length == 0 ) {
		alert(s_AlertNoMessageEntered);
		form.message.focus();
		return false;
	}
	if(checkPhone(form.to01,false) && checkMessageLength(form,checkLength,true) ) {
		return true;
	}
	return false;
}

function validateGroupAddrs (form, checkLength) {
	if (validateGroupAddrs.arguments.length == 1) checkLength = true;
	if (form.to01.options[0].value == "null") {
		alert(s_AlertNoPhoneNumbers);
		form.newnumber.focus();
		return false;
	} else {
		for (var i = 0; i < form.to01.length; i++) {
			form.to01.options[i].selected=true;
			if(checkPhone(form.to01.options[i],true)) {
				if(isEmpty(form.to01.options[i].value)) {
					alert(s_AlertNoPhoneNumbers);
					form.newnumber.focus();
					return false;
				}
			}
		}
	}
	return true;
}

function validateGroupMessage (form, checkLength, splitcheck) {
	if (form.message.value.length == 0 || form.message.value==s_DefaultTwoWayMessage || form.message.value==s_DefaultOneWayMessage) {
		alert(s_AlertNoMessageEntered);
		form.message.value="";
		form.message.focus();
		return false;
	}
	if (!checkMessageLength(form,checkLength,splitcheck)){
		return false;
	}
	return true;
}

function clearFields (form) {
	for (var i=0; i< form.elements.length; i++ ){ 
		form.elements[i].value = "";
	}
	form.elements[0].focus();
}

function isClaimCheck (claimCheck) {
	if (isEmpty(claimCheck) || claimCheck.length !=5) return false;
	else return true;
}

function validateClaimCheck(form) {
	var goodPhoneNumber 	= false;
	var goodClaimCheck 	= isClaimCheck(form.claimCheck.value);
	if (goodClaimCheck) {
		for (var i=1; i<=20; i++) {
			if (!isEmpty(form.elements["phone" + i].value)) {
				if (checkPhone(form.elements["phone" + i])) {
					if (!goodPhoneNumber) goodPhoneNumber = true;
				} else if (goodPhoneNumber) {
					goodPhoneNumber = false;
					break;
				}
			}
		}
	}
	return goodPhoneNumber;
}

function doPopUp (url,height,width) {
	if (doPopUp.arguments.length < 3) {
		height=450;
		width=650;
	}
	var msg = window.open (url, "PopUp",
    	"toolbar=no,location=no,directories=no,status=no,menubar=no,alwaysraised=yes," +
        "scrollbars=no,resizeable=no," +
        "height="+height+"," +
        "width="+width+",," +
        "left=20,top=20");
}

function clear9messages (formobj)
{
	for (var i = 1; i <=9; ++i) {
		var name="message"+i;
		formobj[name].value= "";
	}
}

function onlyInteger()
{
    //alert(event.keyCode);
    if ((event.keyCode < 48 || event.keyCode > 57) && 
        (event.keyCode < 96 || event.keyCode > 105) && 
        event.keyCode !=8   && 
        event.keyCode !=96  && 
        event.keyCode !=39  && 
        event.keyCode !=37  && 
        event.keyCode !=46  && 
        event.keyCode !=45  && 
        event.keyCode !=36  && 
        event.keyCode !=35
        )
    return false;
}

bname = navigator.appName;
bver = parseInt(navigator.appVersion);
blegal = ((bname == "Netscape" && bver >= 3) || (bname == "Microsoft Internet Explorer" && bver >= 4));
charLimit = 280;
charSplit = 140;


