// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()-. ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

var cleanPhone = ""
function check_length(my_form)
{
maxLen = 1000; 

if (my_form.userQuestion.value.length >= maxLen) {

return
my_form.userQuestion.value = my_form.userQuestion.value.substring(0, maxLen);
}
else{ 
my_form.text_num.value = maxLen - my_form.userQuestion.value.length;}
}



function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;

}

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 isnt whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    cleanPhone = returnString
    return returnString;
}

function checkInternationalPhone(strPhone){s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function echeck(emlmessage,str) {

                var at="@"
                var dot="."
                var lat=str.indexOf(at)
                var lstr=str.length
                var ldot=str.indexOf(dot)

                if (str.indexOf(at)==-1){
                   alert(emlmessage)
                   return false
                }

                if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
                   alert(emlmessage)
                   return false
                }

                if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
                    alert(emlmessage)
                    return false
                }

                 if (str.indexOf(at,(lat+1))!=-1){
                    alert(emlmessage)
                    return false
                 }

                 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
                    alert(emlmessage)
                    return false
                 }

                 if (str.indexOf(dot,(lat+2))==-1){
                    alert(emlmessage)
                    return false
                 }

                 if (str.indexOf(" ")!=-1){
                    alert(emlmessage)
                    return false
                 }
                 return true
        }

function eblockcheck(str) {

var invalidaddress=new Array()
invalidaddress[0]="hotmail"
invalidaddress[1]="yahoo"
invalidaddress[2]="Tibco"
invalidaddress[3]="Metastorm"
invalidaddress[4]="SoftwareAG"
invalidaddress[5]="Lombardi"
invalidaddress[6]="Savvion"
invalidaddress[7]="Microsoft"
invalidaddress[8]="SAP"
invalidaddress[9]="Pegasystems"
invalidaddress[10]="Ultimus"
invalidaddress[11]="Global360"
invalidaddress[12]="Appian"
invalidaddress[13]="FileNet"
invalidaddress[14]="HandySoft"
invalidaddress[15]="Fujitsu"
invalidaddress[16]="gmail"

var invalidcheck=0;

var tempstring=str.split("@")
tempstring=tempstring[1].split(".")

	for (i=0;i<invalidaddress.length;i++){
		for (j=0;j<tempstring.length;j++){

			if (tempstring[j].toLowerCase() ==invalidaddress[i].toLowerCase())
			invalidcheck=1
		}
	}
	if (invalidcheck==1){
		alert("The email address used is not recognized. Please use a valid corporate email account.  If you continue to have problems please email bdrna@bea.com.")
		return false;
        }
        return true;
 }
        
function validateTextField(message,thisForm, thisField, friendlyName) {

	if (thisForm.elements[thisField].value == "") {
			alert(message + " \""+friendlyName + "\".");
			thisForm.elements[thisField].focus();
			return false;
	}
   

}

function validatePullDownField(thisForm, thisField, strQuestion) {

	if (thisForm.elements[thisField].options[thisForm.elements[thisField].selectedIndex].value == "") {
			alert(strQuestion);
			thisForm.elements[thisField].focus();
			return false;
	}

	return true;
}

function validateRadioField(thisForm, thisField, strQuestion) {

	for (var i=0; i<thisForm.elements[thisField].length; i++) {
		if (thisForm.elements[thisField][i].checked) 
			return true;
	}

	alert(strQuestion);
	thisForm.elements[thisField][0].focus();
	return false;
}

/* 
// This style of form validation is unusual because all the checkbox elements share the same name.  Therefore
// referencing by the element name yields no results.  The alternative is to check by the element index.
*/

function validateCheckBoxByIndex(thisForm, startingIndex, endingIndex, strQuestion) {

	for (var i=startingIndex; i<= endingIndex; i++) {
		if (thisForm.elements[i].checked) 
		if (thisForm.elements[i].checked) 
			return true;
	}

	// None of the checkboxes were selected; prompt the user
	alert(strQuestion);
	thisForm.elements[startingIndex].focus();
	return false;
}

function validateEmail(emlmessage,message,thisForm, thisField, strQuestion) {
	var emailID=thisForm.elements[thisField]

		if ((emailID.value==null)||(emailID.value=="")){
		        alert(message)
		        emailID.focus()
	        return false
	}
	
	if (echeck(emlmessage,emailID.value)==false){
	        emailID.focus()
	        return false
	}
	if (eblockcheck(emailID.value)==false){
		        emailID.focus()
		        return false
	}
	
	
}


function validatePhone(phMessage,validPhMessage,thisForm, thisField, strQuestion) {

	var Phone=thisForm.elements[thisField]

if ((Phone.value==null)||(Phone.value=="")){
        alert(phMessage)
        Phone.focus()
        return false
	}

if (checkInternationalPhone(Phone.value)==false){
        alert(validPhMessage)
        Phone.focus()
        return false
	}
	Phone.value = cleanPhone
}

function Trim(stringValue){
   if(stringValue.length < 1){
       return"";
   }
   stringValue = RTrim(stringValue);
   stringValue = LTrim(stringValue);
   if(stringValue==""){
       return "";
   }
   else{
       return stringValue;
   }
}
//trims all trailing blank spaces
function RTrim(stringValue){
   var w_space = String.fromCharCode(32);
   var v_length = stringValue.length;
   var tempstringValue = "";
   if(v_length < 0){
       return"";
   }
   var stringValueIndex = v_length -1;

   while(stringValueIndex > -1){
       if(stringValue.charAt(stringValueIndex) == w_space){
       }
       else{
           tempstringValue = stringValue.substring(0,stringValueIndex +1);
           break;
       }
       stringValueIndex = stringValueIndex-1;

   }
return tempstringValue;

}
//trims all leading blank spaces
function LTrim(stringValue){
   var w_space = String.fromCharCode(32);
   if(v_length < 1){
       return"";
   }
   var v_length = stringValue.length;
   var tempstringValue = "";

   var stringValueIndex = 0;

   while(stringValueIndex < v_length){
       if(stringValue.charAt(stringValueIndex) == w_space){
       }
       else{
           tempstringValue = stringValue.substring(stringValueIndex,v_length);
           break;
       }
       stringValueIndex = stringValueIndex + 1;
   }
return tempstringValue;
} 

function doHideAction(ElementId)
{
	var myEle=document.getElementById(ElementId);
//	myEle.style.display='none';
}

function doShowAction(ElementId)
{
 var myEle=document.getElementById(ElementId);
 if(myEle!=null)
 {
 myEle.style.display='inline';
 }
}

function doShowActionWithText(ElementId, valueRec)
{
 var myEle=document.getElementById(ElementId);
 if(myEle!=null)
 {
 myEle.style.display='inline';
 }
 myEle.value=valueRec;
}

function ActivateRdo(Decider,ElementId,questionId)
{
	
	Reset(ElementId,questionId);if (Decider=='0'){return;}
	doShowAction(ElementId);ActivateCbo(ElementId,'txt'+ElementId);
	
}
function ActivateCbo(CboId,ElementId)
{
	/*
	var CboVal=document.getElementById(CboId).value;
	if(CboVal=='other'||CboVal=='Other'){doShowAction(ElementId);}
	else{doHideAction(ElementId);}*/
}
function Reset(ElementId,questionId)
	{
		var i;
		for(i=0;(a=document.getElementsByTagName("select")[i]);i++)
		{
			if(a.name.indexOf(questionId)!=-1 && a.id != ElementId)
			{
				a.style.display='none';
			}			
		}
		for(i=0;(a=document.getElementsByTagName("input")[i]);i++)
		{
			if(a.name.indexOf(questionId)!=-1)
			{
				if(a.name == 'txt'+ElementId || a.name == questionId)
				{}
				else
				{if(a.type!="radio"){a.style.display='none';}}
			}			
		}
	}
