//
// Common JavaScript for the application
//

//
// Hide or show a set of document elements begining
// with the 'prefix'
// 3/24/09 JKanelous - added the functions addCommas and removeCommas, used to pretty up the data
//

function setVisible(prefix, show) {
	var re = new RegExp("^"+prefix);
	for (var i=0; i < document.all.length; i++) {
		if (document.all[i].id != null && re.test(document.all[i].id)) {//.match(/^prefix/)) {
			//alert("Prop: "+document.all[i].style.display);
			document.all[i].style.display = show ? "inline" : "none";
		}
	}
}

//
// show the desired page
//
function showPage(page) {
	self.location = page;
}

function setDefaultAction(action) {
	document.forms[0].elements['_defaultEvent_'].value = action;
}

//
// hide button bar
// 

//window.toolbar='no';
//self.toolbar.visible=false;

//
// All link clicks and button clicks post back to
// actions using this method
//
function doPostBack(action, aEvent) {
	var aForm = document.forms[0];
	aForm.target = "";
	aForm.action = action;
	aForm._event_.value = aEvent;
	//alert("Posting: "+action+", "+event+"searchEvent: "+searchForm.action);
	aForm.submit();
	return true;
}

function doPostBackNewWindow(action, aEvent) {
	var aForm = document.forms[0];
	aForm.target = "_blank";
	aForm.action = action;
	aForm._event_.value = aEvent;
	//alert("Posting: "+action+", "+aEvent+"searchEvent: "+aForm.action+"target: "+aForm.target);
	aForm.submit();
	return true;
}

//
// All link clicks and button clicks post back to
// actions using this method
//
function doNewwindowPostBack(action, aEvent) {
	var aForm = document.forms[0];
	aForm.action = action;
	aForm._event_.value = aEvent;
    aForm.target = "abc";
	//alert("Posting: "+action+", "+event+"searchEvent: "+searchForm.action);
	aForm.submit();
	return true;
}

function validEventCheck() {
	var aForm = document.forms[0];
	if (aForm._event_.value == "") {
		if (aForm._defaultEvent_.value == "") {
			alert("Enter key is disabled. Use mouse and click on the button");
			return false;
		} else {
			aForm._event_.value = aForm._defaultEvent_.value;
			return true;
		}
	}
	return true;
	/*
	if (aForm._event_.value == "") {
		alert("Unknown event. Not Posting");
		return false;
	} else {
		alert("Event: "+aForm._event_.value);
		return true;
	}
	*/
}

//
// For popuups
// use this method
//
function openPage(whatPage) {
	window.open(whatPage, "aLink", "maximize=yes,toolbar=yes,width=900,height=600,scrollbars=yes, resizable=yes");
}
function printPage(whatPage) {
	window.open(whatPage, "aLink", "maximize=yes,toolbar=yes,addressbar=yes,menubar=yes,width=800,height=600,scrollbars=yes,resizable=yes");
}

//
// Trap the enter key
//
/*
var nav = window.Event ? true : false;
if (nav) {
   window.captureEvents(Event.KEYDOWN);
   window.onkeydown = NetscapeEventHandler_KeyDown;
} else {
   document.onkeydown = MicrosoftEventHandler_KeyDown;
}

*/

function NetscapeEventHandler_KeyDown(e) {
  if (e.which == 13 && e.target.type != 'textarea' && e.target.type != 'submit') { return false; }
  return true;
}

function MicrosoftEventHandler_KeyDown() {
  if (event.keyCode == 13 && event.srcElement.type != 'textarea' && event.srcElement.type != 'submit')
    return false;
  return true;
}




//
// List Handler Functions
//
//
// Move all selected items from list1 to list2
//
function moveSelected(theForm, list1, list2) {
	var l1 = theForm.elements[list1];
	var l2 = theForm.elements[list2];
	
	// 
	// Cache selected options from list1
	//
	var l1_selected = new Array();
	
	//
	// Add all selected items in list1 to list2
	//
	for (var i=0; i < l1.options.length; i++) {
		if (l1.options[i].selected) { // this is selected option
			l2.options[l2.options.length] = new Option(l1.options[i].text, l1.options[i].value);
			l1_selected[l1_selected.length] = new Option(l1.options[i].text, l1.options[i].value);
		}
	}
	
	//
	// Remove all selected items from list1
	//
	//
	// new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected)
	//
	for (var i=0; i < l1_selected.length; i++) {
		remove(l1, l1_selected[i]);
	}

	l1.selected = false;
	l2.selected = false;

	l1.selectedIndex = -1;
	l2.selectedIndex = -1;

	//sortSelect(l1);
	//sortSelect(l2);

}


//
// List Handler Functions
//
//
// Move all items from list1 to list2
//
function moveAll(theForm, list1, list2) {
	var l1 = theForm.elements[list1];
	var l2 = theForm.elements[list2];
	
	//alert("MOVE ALL: length "+l1.options.length);
	
	//
	// Add all selected items in list1 to list2
	//
	for (var i=0; i < l1.options.length; i++) {
		l2.options[l2.options.length] = new Option(l1.options[i].text, l1.options[i].value);
	}

	l1.options.length = 0;    

	l1.selected = false;
	l2.selected  = false;

	l1.selectedIndex = -1;
	l2.selectedIndex = -1;

	sortSelect(l1);
	sortSelect(l2);
}


//
// Remove an item from a drop down
//
function remove(dropdown, anOption){ 
	//
	// Find the index of the option to be deleted
	//
	//alert("Option to be deleted: "+anOption.value);
	var index = -1;
	for (var i = 0; i < dropdown.options.length; i++) {
		if (dropdown.options[i].value == anOption.value) {
			index = i;
			break;
		}
	}
	
	//alert("Length: "+dropdown.options.length+"; index = "+index);
	if (index >= 0) {
		for (var i = index; i < (dropdown.options.length-1); i++) {
			
			var newvalue  = dropdown.options[i+1].value; 
			var newtext   = dropdown.options[i+1].text; 
			
			dropdown.options[i].value = newvalue; 
			dropdown.options[i].text = newtext; 
		}
		
		if (dropdown.options.length > 0) {
			dropdown.options.length = dropdown.options.length - 1;
		}
	}
}


// -------------------------------------------------------------------
// sortSelect(select_object)
//   Pass this function a SELECT object and the options will be sorted
//   by their text (display) values
// -------------------------------------------------------------------
function sortSelect(obj) {
	var o = new Array();
	if (obj.options==null) {
		return;
	}
	for (var i=0; i<obj.options.length; i++) {
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
	}
	if (o.length==0) {
		return;
	}
	o = o.sort(
			  function(a,b){ 
			  if ((a.text+"") < (b.text+"")){ return -1;}
			  if ((a.text+"") > (b.text+"")){ return 1;}
			  return 0;
			  } 
			  );

	for (var i=0; i<o.length; i++) {
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	}
}

function sortThis(obj) {
	var list = document.forms[0].elements[obj];
	sortSelect(list)
}

// isValidDate(dateStr)                  Boolean Verify date valid, Display error alerts
// getCurrentDate()						 Returns the current Date
// isDateGreater(argParam1,argParam2,argLabel1,argLabel2)  
//									returns an error message if argparam2 is less than 	argParam1
// isDateLesser(argParam1,argParam2,argLabel1,argLabel2)  
//									returns an error message if argparam2 is greater than 	argParam1
// isBlank(inputString)					 Bollean checks For the blank string
function isValidDate(dateStr) {
// Checks for the following valid date formats:
// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
// Also separates date into month, day, and year variables

//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

// To require a 4 digit year entry, use this line instead:
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
var fieldName = "";
var errmsg = "";
if(isValidDate.arguments.length == 2)  fieldName = isValidDate.arguments[1].toUpperCase();
var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
	errmsg = fieldName + " Date is not in a valid date format(MM/DD/CCYY)." ;
	return errmsg;
}
month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
	errmsg = "Invalid " + fieldName + " Date : Month must be between 1 and 12." ;
	return errmsg;
}
if (day < 1 || day > 31) {
	errmsg = "Invalid " + fieldName + " Date : Day must be between 1 and 31.";
	return errmsg;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	errmsg = "Invalid " + fieldName + " Date : Month "+month+" doesn't have 31 days!"
	return errmsg
}
if(year.length == 4 && year < "1900"){
	errmsg = "Invalid " + fieldName + " Date : Year has to be greater tha 1900" ;
        return errmsg ;  
}
if (month == 2) { // check for february 29th
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
	errmsg = "Invalid " + fieldName + " Date : February " + year + " doesn't have " + day + " days!";
	return errmsg;
   }
}
return errmsg;  // date is valid
}


function isBlank(inputString) {
    var len = inputString.length ;
    if (len == 0)
        return true;
        
    var idx = 0;
    while(idx < len)
    {
        if (inputString.charAt(idx) != ' ')
             return false;
        idx++;
    }
    return true;     
}      
function getCurrentDate(){
	cdate = new Date();
	yy = cdate.getYear();
	mm = cdate.getMonth() + 1;
	dd = cdate.getDate();
	return cdate = new Date(yy + "/" + mm + "/" + dd);
}


function isDateGreater(argDate1, argDate2, argLabel1, argLabel2){
  alert("argDate1="+argDate1);
	var date1 = new Date(argDate1);
	var date2 = new Date(argDate2);
	alert(date1);
	var msg = "";
	if(date2 < date1){
	   msg = argLabel2 + " cannot be less than " + argLabel1;
	}
	return msg;

}


function isDateLesser(argDate1, argDate2, argLabel1, argLabel2){

	var date1 = new Date(argDate1);
	var date2 = new Date(argDate2);
	var msg = "";
	if(date2 > date1){
	   msg = argLabel2 + " cannot be greater than " + argLabel1;
	}
	return msg;

}


function trim(inputString)
{
    var len = inputString.length ;
    var startIdx = 0;
    var endIdx = len - 1;
    while((startIdx < len) && (inputString.charAt(startIdx) <= ' ')){
        startIdx++ ;
    }
    endIdx = len -1;
    while((endIdx > startIdx ) && (inputString.charAt(endIdx) <= ' ')){
        endIdx-- ;
    }
    return inputString.substring(startIdx, endIdx + 1 ) ;
}

function requiredText(fieldName, fieldLabel){
  var msg = "";
  if(isBlank(fieldName.value)){
  	msg = fieldLabel + " is a required field";
  }
  return msg ;
}

function requiredCheckBox(fieldName, fieldLabel){
  var msg = "";
  if(fieldName.checked == false){
  	msg = fieldLabel + " must be checked";
  }
  return msg ;
}

function requiredSelect(fieldName, fieldLabel){
  var msg = "";
  if(fieldName.type == undefined) return msg;// this is to do nothing if incoming object is an array
  if(isBlank(fieldName.value)) {
		msg =  "an option from " + fieldLabel + " must be selected";
  }
  return msg ;
}
function removeElementfromDropdown(fieldName, value){
  var len = fieldName.options.length ;
  for(var i = 0 ; i < len ; i++) {
    if(fieldName.options[i].value == value ) {
        fieldName.options[i]=null;
		return;
    } 
  }
}


// Check if at least one of a list of checkboxes with the same name is selected.
function requiredCheckList(argCheck, argLabel){
	var msg = "";
	if(!argCheck){
		msg = "No " + argLabel + " available";
	}
	else {
		var frm = (argCheck.length) ? argCheck[0].form : argCheck.form ;
		var checkName = (argCheck.length) ? argCheck[0].name : argCheck.name ;
		var elementLen = frm.elements.length;
		var checkSelected = false; 
		for(var i=0; i<elementLen; i++){
			if(frm.elements[i].name == checkName && frm.elements[i].checked){
				checkSelected = true;
				break;
			}
		}
		if(!checkSelected){
               if(requiredCheckList.arguments.length == 3){
                    msg = requiredCheckList.arguments[2];
               }
               else{
			     msg = "select at least one of the values for " + argLabel;
               }
               
		}
	}
	return msg;
}

// Check if at least one of a list of checkboxes with the same name is selected.
function checkSelectedOne(argCheck,argLabel,argValue){
	var msg = "";
	if(!argCheck){
		msg = "No " + argLabel + " available";
	}
	else {
		var frm = (argCheck.length) ? argCheck[0].form : argCheck.form ;
		var checkName = (argCheck.length) ? argCheck[0].name : argCheck.name ;
		var elementLen = frm.elements.length;
		var checkSelected = false; 
		for(var i=0; i<elementLen; i++){
			if(frm.elements[i].name == checkName && frm.elements[i].checked){
				frm.elements[i].checked=false;
			}
			if(frm.elements[i].name == checkName && frm.elements[i].value==argValue)
				frm.elements[i].checked=true;
		}
	}
	return msg;
}

// Check if any of a list of radio buttons with the same name is selected.
function requiredRadioSelected(argRadio, argLabel){
	var msg = "";
	if(!argRadio){
		msg = "No " + argLabel + " available";
	}
	else {
		var frm = (argRadio.length) ? argRadio[0].form : argRadio.form ;
		var radioName = (argRadio.length) ? argRadio[0].name : argRadio.name ;
		var elementLen = frm.elements.length;
		var radioSelected = false; 
		for(var i=0; i<elementLen; i++){
			if(frm.elements[i].name == radioName && frm.elements[i].checked){
				radioSelected = true;
				break;
			}
		}
		if(!radioSelected){
			msg = "select one of the values for " + argLabel;
		}
	}
	return msg;
}

//  ************************************************************************* 
//  * This file contains functions to check whether the value of any field  *
//  * in the form has changed from the time it was loaded. The fields can   *
//  * be checked individually , or a form can be checked as a whole.        *
//  * The following types of fields can be checked :                        *
//  * text, select(single and multiple), radio, checkbox, textarea          *
//  *************************************************************************

// **********************************************************************
// * returns true if any field in the form has changed 
// **********************************************************************
function isFormChanged(form){
    var isChanged = false ;
    for (var i = 0; i< form.length; i++)  {
        switch(form.elements[i].type)
        {
            case "text" :
                isChanged =  isTextChanged(form.elements[i]) ;
				alert(isChanged);
                break;
            case "select-one" :                
                isChanged =  isSelectChangedOne(form.elements[i]) ;            
				alert(isChanged);
                break;
            case "select-multiple" :                
                isChanged =  isSelectChangedMul(form.elements[i]) ;            
				alert(isChanged);
                break;
            case "radio" :    
                isChanged =  isRadioChanged(form.elements[i]) ; 
				alert(isChanged);
                break;
            case "checkbox" :    
                isChanged =  isCheckChanged(form.elements[i]) ; 
				alert(isChanged);
                break;
            case "textarea" :    
                isChanged =  isTextAreaChanged(form.elements[i]) ; 
				alert(isChanged);
                break;
        }                  
        if(isChanged) {
            break ;
        }
    }
	alert(" isChanged " + isChanged);
    return isChanged ;    
}

// **********************************************************************
// * returns true if the select-one value has changed else returns false 
// **********************************************************************
function isSelectChangedOne(selectbox) {
  var len = selectbox.options.length ;
  var defaultIndex = -1 ;
  for(var i = 0 ; i < len ; i++) {
    if(selectbox.options[i].defaultSelected)  {  
        defaultIndex = i ;
        break;
    }
  }
  if(selectbox.size <= 1) {
    if(defaultIndex == -1 && selectbox.selectedIndex == 0) return false;
    return (defaultIndex == selectbox.selectedIndex ) ? false : true ;
  }  
  else {
    return (defaultIndex == selectbox.selectedIndex) ? false : true ;
  } 
 }
 
// **********************************************************************
// * returns true if the select-multiple value has changed else returns false 
// **********************************************************************
function isSelectChangedMul(selectbox){
  var len = selectbox.options.length ;
  for(var i = 0 ; i < len ; i++) {
    if(selectbox.options[i].selected != selectbox.options[i].defaultSelected ) {
        return true ;
    } 
  }
  return false;
  
}  
// **********************************************************************
// * returns true if the text value has changed else returns false 
// **********************************************************************
 function isTextChanged(textBox)  {
    return (textBox.value == textBox.defaultValue) ? false : true ;
 }
// **********************************************************************
// * returns true if the radio checked condition has changed else returns false 
// **********************************************************************
function isRadioChanged(radioButton) {
   return (radioButton.checked == radioButton.defaultChecked) ? false : true ;
} 
// **********************************************************************
// * returns true if checkbox checked condition has changed else returns false 
// **********************************************************************
function isCheckChanged(checkBox) {
    return (checkBox.checked == checkBox.defaultChecked) ? false : true ;
} 
// **********************************************************************
// * returns true if the select value has changed else returns false 
// **********************************************************************
function isTextAreaChanged(textAreaField) {
   return (textAreaField.defaultValue == textAreaField.value) ? false : true ;
}


//
// Tooltip
//
function doTooltip(e, msg) {
  if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;
  Tooltip.show(e, msg);
}

function hideTip() {
  if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;
  Tooltip.hide();
}


function validateDate(fld) {
    if (!checkDate(fld)) {
        // focus if validation fails
        fld.focus();
        fld.select();
    }
}


function checkDate(fld) {
    var mo, day, yr;
    var entry = fld.value;
	//alert(entry);
    var reLong = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/;
    var reShort = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{2}\b/;
    var valid = (reLong.test(entry)) || (reShort.test(entry));
    if (valid) {
        var delimChar = (entry.indexOf("/") != -1) ? "/" : "-";
        var delim1 = entry.indexOf(delimChar);
        var delim2 = entry.lastIndexOf(delimChar);
        mo = parseInt(entry.substring(0, delim1), 10);
        day = parseInt(entry.substring(delim1+1, delim2), 10);
        yr = parseInt(entry.substring(delim2+1), 10);
        // handle two-digit year
        if (yr < 100) {
            var today = new Date();
            // get current century floor (e.g., 2000)
            var currCent = parseInt(today.getFullYear() / 100) * 100;
            // two digits up to this year + 15 expands to current century
            var threshold = (today.getFullYear() + 15) - currCent;
            if (yr > threshold) {
                yr += currCent - 100;
            } else {
                yr += currCent;
            }
        }
        var testDate = new Date(yr, mo-1, day);
        if (testDate.getDate() == day) {
            if (testDate.getMonth() + 1 == mo) {
                if (testDate.getFullYear() == yr) {
                    // fill field with database-friendly format
                    fld.value = mo + "/" + day + "/" + yr;
                    return true;
                } else {
                    alert("There is a problem with the year entry.");
                }
            } else {
                alert("There is a problem with the month entry.");
            }
        } else {
            alert("There is a problem with the date entry.");
        }
    } else {
        alert("Incorrect date format. Enter as mm/dd/yyyy.");
    }
    return false;
}


function daysBetween(date1, date2) {
    var DSTAdjust = 0;
    // constants used for our calculations below
    oneMinute = 1000 * 60;
    var oneDay = oneMinute * 60 * 24;
    // equalize times in case date objects have them
    date1.setHours(0);
    date1.setMinutes(0);
    date1.setSeconds(0);
    date2.setHours(0);
    date2.setMinutes(0);
    date2.setSeconds(0);
    // take care of spans across Daylight Saving Time changes
    if (date2 > date1) {
        DSTAdjust = 
            (date2.getTimezoneOffset() - date1.getTimezoneOffset()) * oneMinute;
    } else {
        DSTAdjust = 
            (date1.getTimezoneOffset() - date2.getTimezoneOffset()) * oneMinute;    
    }
    var diff = Math.abs(date2.getTime() - date1.getTime()) - DSTAdjust;
    return Math.ceil(diff/oneDay);
}


function string2date(date) {
    var reLong = /\b(\d{1,2})[\/-](\d{1,2})[\/-](\d{4})\b/;
	var matchArray = date.match(reLong);
	//alert(matchArray[0]+"/"+matchArray[1]+"/"+matchArray[2]);

	return new Date(parseInt(matchArray[3]), parseInt(matchArray[1])-1, parseInt(matchArray[2]));


}

//window alert

function windowalert(){
	window.alert("This feature will be available soon.");
}

function createAgentUserID(){
	//alert(1);
}

//onChange=\"MM_setTextOfTextfield('userId','',this.value);MM_makeTextFieldDisabled('userID')\"

// create and show Agent userID in the userID field
function generateAgentUserID(fieldName,fieldVal){
	var obj = MM_findObj(fieldName); 
	if (obj) {
		obj.value = fieldVal;
		obj.style.backgroundColor = "#FFFFFF";
		obj.style.borderColor = "#FFFFFF";		
		//obj.disabled = true;
	}
}

function checkUserIDValue(){
	var obj = MM_findObj("userId"); 
	if (obj) {
		obj.value = obj.value;
		if(obj.value != ""){
			obj.style.backgroundColor = "#FFFFFF";
			obj.style.borderColor = "#FFFFFF";		
			//obj.disabled = true;
		}
	}
}		

// create and show Company userID in the userID field
function generateCompanyUserID(fieldName,fieldVal){
	var obj = MM_findObj(fieldName);
	if (obj) {
    fieldVal = makeIDForCompanyUser(fieldVal);
		obj.value = fieldVal;
		obj.style.backgroundColor = "#FFFFFF";
		obj.style.borderColor = "#FFFFFF";			
	}
}

function makeIDForCompanyUser(fieldVal){
	var dateObj =new Date();
	var fullYear = dateObj.getFullYear();
	fieldVal = "CU"+fieldVal+fullYear;
	return fieldVal;
}

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_makeTextFieldDisabled(objName) { //v3.0
  var obj = MM_findObj(objName); 
  if (obj) obj.disabled = true;
}

function MM_setTextOfTextfield(objName,x,newText) { //v3.0
  var obj = MM_findObj(objName); if (obj) obj.value = newText;
}

function validateZipAndPosCursor(){
	var objZipCode = MM_findObj("zipCodes");
	var searchObj = MM_findObj('searchName');
	if(objZipCode){
		objZipCodeValue = objZipCode.value;
		objZipCodeValue = objZipCodeValue.replace(/ /g,'');
		objZipCode.value = objZipCodeValue;		
		objZipCodeArray = objZipCodeValue.split(",");
		for(var i=0; i<objZipCodeArray.length; i++){
			//if(objZipCodeArray[i].length < 5){
			if((objZipCodeArray[i].length != 0 ) && (objZipCodeArray[i].length < 5 || objZipCodeArray[i].length > 5)){			
				cursorPosition = (i)*5 +i+objZipCodeArray[i].length;
				positionCursor(objZipCode, cursorPosition);
				break;
			}else{
				searchObj.focus();
			}
		}
	}
}

function positionCursor(input, position){
	var range = input.createTextRange();
	range.collapse(true);
	range.moveStart('character', position);
	range.select();
}
	
function checkForEmptyField(fieldName1,fieldName2,addBtn,addAllBtn,removeBtn,removeAllBtn,fieldVal){
	var obj1 = MM_findObj(fieldName1);
	var obj2 = MM_findObj(fieldName2);
	var objaddBtn = MM_findObj(addBtn);
	var objaddAllBtn = MM_findObj(addAllBtn);
	var objremoveBtn = MM_findObj(removeBtn);
	var objremoveAllBtn = MM_findObj(removeAllBtn);	
	var fieldValStr = fieldVal;	
	if(fieldValStr.length != 0){
		if (obj1) {
			obj1.disabled = true;
		}
		if (obj2) {
			obj2.disabled = true;
		}
		if (objaddBtn) {
			objaddBtn.disabled = true;
		}
		if (objaddAllBtn) {
			objaddAllBtn.disabled = true;
		}	
		if (objremoveBtn) {
			objremoveBtn.disabled = true;
		}
		if (objremoveAllBtn) {
			objremoveAllBtn.disabled = true;
		}
	}else{
		if (obj1) {
			obj1.disabled = false;
		}
		if (obj2) {
			obj2.disabled = false;
		}
		if (objaddBtn) {
			objaddBtn.disabled = false;
		}
		if (objaddAllBtn) {
			objaddAllBtn.disabled = false;
		}	
		if (objremoveBtn) {
			objremoveBtn.disabled = false;
		}
		if (objremoveAllBtn) {
			objremoveAllBtn.disabled = false;
		}		
	}
}

function checkForNoValueForZipCodes(fieldName1,fieldName2,addBtn,addAllBtn,removeBtn,removeAllBtn,zipCodes){
	var obj1 = MM_findObj(fieldName1);
	var obj2 = MM_findObj(fieldName2);
	var objaddBtn = MM_findObj(addBtn);
	var objaddAllBtn = MM_findObj(addAllBtn);
	var objremoveBtn = MM_findObj(removeBtn);
	var objremoveAllBtn = MM_findObj(removeAllBtn);	
	var objZipCodes = MM_findObj("zipCodes");	
	var fieldValStr = objZipCodes.value;
		
	if(fieldValStr.length != 0){
		if (obj1) {
			obj1.disabled = true;
		}
		if (obj2) {
			obj2.disabled = true;
		}
		if (objaddBtn) {
			objaddBtn.disabled = true;
		}
		if (objaddAllBtn) {
			objaddAllBtn.disabled = true;
		}	
		if (objremoveBtn) {
			objremoveBtn.disabled = true;
		}
		if (objremoveAllBtn) {
			objremoveAllBtn.disabled = true;
		}
	}else{
		if (obj1) {
			obj1.disabled = false;
		}
		if (obj2) {
			obj2.disabled = false;
		}
		if (objaddBtn) {
			objaddBtn.disabled = false;
		}
		if (objaddAllBtn) {
			objaddAllBtn.disabled = false;
		}	
		if (objremoveBtn) {
			objremoveBtn.disabled = false;
		}
		if (objremoveAllBtn) {
			objremoveAllBtn.disabled = false;
		}
	}
}							
							
function alertOnFirstCharacter(fieldName1,fieldName2,addBtn,addAllBtn,removeBtn,removeAllBtn,fieldVal,fieldName){
	var obj1 = MM_findObj(fieldName1);
	var obj2 = MM_findObj(fieldName2);
	var objaddBtn = MM_findObj(addBtn);
	var objaddAllBtn = MM_findObj(addAllBtn);
	var objremoveBtn = MM_findObj(removeBtn);
	var objremoveAllBtn = MM_findObj(removeAllBtn);	
	var objZipCodes = MM_findObj(fieldName);
	var fieldValStr = fieldVal;
	if(fieldVal.length == 1 && fieldValStr.charAt(0) != ""){
		if (confirm("\"Acceptable Property Counties\" field will be disabled if you choose the zip codes. Are you sure you want to continue?")) {
				if (obj1) {
					obj1.disabled = true;
				}
				if (obj2) {
					obj2.disabled = true;
				}
				if (objaddBtn) {
					objaddBtn.disabled = true;
				}
				if (objaddAllBtn) {
					objaddAllBtn.disabled = true;
				}	
				if (objremoveBtn) {
					objremoveBtn.disabled = true;
				}
				if (objremoveAllBtn) {
					objremoveAllBtn.disabled = true;
				}
		} else {
			if (obj1) {
				obj1.disabled = false;
			}
			if (obj2) {
				obj2.disabled = false;
			}
			if (objaddBtn) {
				objaddBtn.disabled = false;
			}
			if (objaddAllBtn) {
				objaddAllBtn.disabled = false;
			}	
			if (objremoveBtn) {
				objremoveBtn.disabled = false;
			}
			if (objremoveAllBtn) {
				objremoveAllBtn.disabled = false;
			}
			if (objZipCodes) {
				objZipCodes.value = "";
				objZipCodes.disabled = false;
				objZipCodes.style.border = "1px #003399 solid";
			}							
		}
	}
}

function disableAPCounties(fieldName1,fieldName2,addBtn,addAllBtn,removeBtn,removeAllBtn,zipCode){
	var obj1 = MM_findObj(fieldName1);
	var obj2 = MM_findObj(fieldName2);
	var objaddBtn = MM_findObj(addBtn);
	var objaddAllBtn = MM_findObj(addAllBtn);
	var objremoveBtn = MM_findObj(removeBtn);
	var objremoveAllBtn = MM_findObj(removeAllBtn);
  var objZipCode = MM_findObj(zipCode);
	if(objZipCode.value.length >= 1){
		if (obj1) {
			obj1.disabled = true;
		}
		if (obj2) {
			obj2.disabled = true;
		}
		if (objaddBtn) {
			objaddBtn.disabled = true;
		}
		if (objaddAllBtn) {
			objaddAllBtn.disabled = true;
		}	
		if (objremoveBtn) {
			objremoveBtn.disabled = true;
		}
		if (objremoveAllBtn) {
			objremoveAllBtn.disabled = true;
		}
	}else{
		if (obj1) {
			obj1.disabled = false;
		}
		if (obj2) {
			obj2.disabled = false;
		}
		if (objaddBtn) {
			objaddBtn.disabled = false;
		}
		if (objaddAllBtn) {
			objaddAllBtn.disabled = false;
		}	
		if (objremoveBtn) {
			objremoveBtn.disabled = false;
		}
		if (objremoveAllBtn) {
			objremoveAllBtn.disabled = false;
		}		
	}						
}

function alertOnFirstAdd(selCounties,availCounties,addBtn,removeBtn,addAllBtn,removeAllBtn,zipCodes){
	var objSelCounties = MM_findObj(selCounties);
	var objAvailCounties = MM_findObj(availCounties);
	var objAddBtn = MM_findObj(addBtn);
	var objAddAllBtn = MM_findObj(addAllBtn);
	var objRemoveBtn = MM_findObj(removeBtn);
	var objRemoveAllBtn = MM_findObj(removeAllBtn);
	var objZipCodes = MM_findObj(zipCodes);
	var selectedCountiesList = document.forms[0].elements[selCounties];
	//if (selectedCountiesList.options.length == 1){
	if (selectedCountiesList.options.length == 0){
		if (confirm("\"Acceptable Property Zip Code(s)\" field will be disabled if you choose counties. Are you sure you want to continue?")) {
			//disableAPZipCodes('zipCodes','selectedCounties',this.value);
			if(objZipCodes){
				objZipCodes.disabled = true;
				objZipCodes.style.border = "1px #999999 solid";				
			}				
		}else{
			moveAll(document.forms[0],'selectedCounties','availbleCounties');
			if (objSelCounties) {
				objSelCounties.disabled = false;
			}
			if (objAvailCounties) {
				objAvailCounties.disabled = false;
			}
			if (objAddBtn) {
				objAddBtn.disabled = false;
			}
			if (objAddAllBtn) {
				objAddAllBtn.disabled = false;
			}	
			if (objRemoveBtn) {
				objRemoveBtn.disabled = false;
			}
			if (objRemoveAllBtn) {
				objRemoveAllBtn.disabled = false;
			}
			if(objZipCodes){
				objZipCodes.disabled = false;
				objZipCodes.style.border = "1px #003399 solid";				
			}			
		}
	}
	moveSelected(document.forms[0],'availbleCounties','selectedCounties');
}

function disableAPZipCodes(fieldName1,fieldName2,fieldVal){
	var obj1 = MM_findObj(fieldName1);
	var obj2 = MM_findObj(fieldName2);
	if (obj2){
		if(obj2.options.length >=1){
			if(obj1){
				obj1.disabled = true;
				obj1.style.border = "1px #999999 solid";
			}
		}else{
			if(obj1){
				obj1.disabled = false;
				obj1.style.border = "1px #003399 solid";				
			}
		}
	}
}

function alertOnAddAll(selCounties,availCounties,addBtn,removeBtn,addAllBtn,removeAllBtn,zipCodes){
	var objSelCounties = MM_findObj(selCounties);
	var objAvailCounties = MM_findObj(availCounties);
	var objAddBtn = MM_findObj(addBtn);
	var objAddAllBtn = MM_findObj(addAllBtn);
	var objRemoveBtn = MM_findObj(removeBtn);
	var objRemoveAllBtn = MM_findObj(removeAllBtn);
	var objZipCodes = MM_findObj(zipCodes);
	var selectedCountiesList = document.forms[0].elements[selCounties];
		if (confirm("\"Acceptable Property Zip Code(s)\" field will be disabled if you choose the counties. Are you sure you want to continue?")) {
			moveAll(document.forms[0],'availbleCounties','selectedCounties');
			disableAPZipCodes('zipCodes','selectedCounties',this.value);
		}else{
			//moveAll(document.forms[0],'selectedCounties','availbleCounties');
			if (objSelCounties) {
				objSelCounties.disabled = false;
			}
			if (objAvailCounties) {
				objAvailCounties.disabled = false;
			}
			if (objAddBtn) {
				objAddBtn.disabled = false;
			}
			if (objAddAllBtn) {
				objAddAllBtn.disabled = false;
			}	
			if (objRemoveBtn) {
				objRemoveBtn.disabled = false;
			}
			if (objRemoveAllBtn) {
				objRemoveAllBtn.disabled = false;
			}
		}
}

function highlightNextItem(fieldName, fieldVal,item9,item9text,item91,item92,item93){
	var obj1 = MM_findObj(fieldName);
	var objItem9 = MM_findObj(item9);
	var objItem9text = MM_findObj(item9text);
	var objItem91 = MM_findObj(item91);
	var objItem92 = MM_findObj(item92);
	var objItem93 = MM_findObj(item93);
	var dateObj =new Date();
	var fullYear = dateObj.getFullYear();
	var diffInYears = fullYear - fieldVal;
  if (fieldVal.length != 0){
		if(obj1){
			if(diffInYears > 30){
				if(objItem9 && objItem9text && objItem91 && objItem92 && objItem93){
					objItem9.style.color = "#FF0000";
					objItem91.style.color = "#FF0000";
					objItem92.style.color = "#FF0000";
					objItem93.style.color = "#FF0000";
					objItem9text.style.color = "#FF0000";
				}
			}else{
				if(objItem9 && objItem9text && objItem91 && objItem92 && objItem93){
					objItem9.style.color = "#000000";
					objItem91.style.color = "#000000";
					objItem92.style.color = "#000000";
					objItem93.style.color = "#000000";
					objItem9text.style.color = "#000000";
				}			
			}									
		}
	}else{
		if(objItem9 && objItem9text && objItem91 && objItem92 && objItem93){
			objItem9.style.color = "#000000";
			objItem91.style.color = "#000000";
			objItem92.style.color = "#000000";
			objItem93.style.color = "#000000";
			objItem9text.style.color = "#000000";
		}		
	}
}

function highlightYearUpdates(fieldName, fieldVal,item6,item6text,item61,item62,item63){
	var obj1 = MM_findObj(fieldName);
	var objItem6 = MM_findObj(item6);
	var objItem6text = MM_findObj(item6text);
	var objItem61 = MM_findObj(item61);
	var objItem62 = MM_findObj(item62);
	var objItem63 = MM_findObj(item63);
	var dateObj =new Date();
	var fullYear = dateObj.getFullYear();
	var diffInYears = fullYear - fieldVal;
  if (fieldVal.length != 0){
		if(obj1){
			if(diffInYears > 29){
				if(objItem6 && objItem6text && objItem61 && objItem62 && objItem63){
					objItem6.style.color = "#FF0000";
					objItem61.style.color = "#FF0000";
					objItem62.style.color = "#FF0000";
					objItem63.style.color = "#FF0000";
					objItem6text.style.color = "#FF0000";
				}
			}else{
				if(objItem6 && objItem6text && objItem61 && objItem62 && objItem63){
					objItem6.style.color = "#000000";
					objItem61.style.color = "#000000";
					objItem62.style.color = "#000000";
					objItem63.style.color = "#000000";
					objItem6text.style.color = "#000000";
				}			
			}									
		}
	}else{
		if(objItem6 && objItem9text && objItem61 && objItem62 && objItem63){
			objItem6.style.color = "#000000";
			objItem61.style.color = "#000000";
			objItem62.style.color = "#000000";
			objItem63.style.color = "#000000";
			objItem6text.style.color = "#000000";
		}		
	}
}

function checkForYearBuilt(fieldName,item9,item9text,item91,item92,item93){
	var obj1 = MM_findObj(fieldName);
	var objItem9 = MM_findObj(item9);
	var objItem9text = MM_findObj(item9text);
	var objItem91 = MM_findObj(item91);
	var objItem92 = MM_findObj(item92);
	var objItem93 = MM_findObj(item93);
	var dateObj =new Date();
	var fullYear = dateObj.getFullYear();
	var diffInYears = fullYear - obj1.value;
  if (obj1.value.length != 0){
		if(obj1){
			if(diffInYears > 30){
				if(objItem9 && objItem9text && objItem91 && objItem92 && objItem93){
					objItem9.style.color = "#FF0000";
					objItem91.style.color = "#FF0000";
					objItem92.style.color = "#FF0000";
					objItem93.style.color = "#FF0000";
					objItem9text.style.color = "#FF0000";
				}
			}else{
				if(objItem9 && objItem9text && objItem91 && objItem92 && objItem93){
					objItem9.style.color = "#000000";
					objItem91.style.color = "#000000";
					objItem92.style.color = "#000000";
					objItem93.style.color = "#000000";
					objItem9text.style.color = "#000000";
				}			
			}									
		}
	}else{
		if(objItem9 && objItem9text && objItem91 && objItem92 && objItem93){
			objItem9.style.color = "#000000";
			objItem91.style.color = "#000000";
			objItem92.style.color = "#000000";
			objItem93.style.color = "#000000";
			objItem9text.style.color = "#000000";
		}		
	}
}

function isExists(objToTest) {
  if (null == objToTest) {
     return false;
  }
  if ("undefined" == typeof(objToTest) ) {
    return false;
  }
  return true;
}
var repStartDate = "";
var repEndDate = "";
var repCriteriaStatus = "";

function reportCriteria(startDate,endDate,reptype,repURL){
	var objstartDate = MM_findObj(startDate);
	var objendDate = MM_findObj(endDate);
	repStartDate = objstartDate.value;
	repEndDate = objendDate.value;
	
	if (reptype == "Participant Productivity") {
		if (repStartDate=="" || repEndDate=="") {
			alert("Start and End dates are mandatory");
			return false;
		}
	}
	
	// check validity of dates June 3rd
	stDateErrorMsg = isValidDateForReports(repStartDate);
	endDateErrorMsg = isValidDateForReports(repEndDate);
  if ((stDateErrorMsg == "") && (endDateErrorMsg == "")){
		checkDateValidityForReports(repStartDate, repEndDate);
		if(endDateIsLesser == true){
			alert("End Date is less than Start Date.");
		}else{
			repURL = repURL+"?false&"+reptype+"&"+repStartDate+"&"+repEndDate;
			printPageWithValue(repURL);		
		}	
	}else{
		if(stDateErrorMsg != ""){
			alert("Start"+ stDateErrorMsg);
    }
		if(endDateErrorMsg != ""){
			alert("End"+ endDateErrorMsg);
    }    			
	}
}

function reportCriteriaExcel(startDate,endDate,reptype,repURL){
	var objstartDate = MM_findObj(startDate);
	var objendDate = MM_findObj(endDate);
	repStartDate = objstartDate.value;
	repEndDate = objendDate.value;
	
	// check validity of dates June 3rd
	stDateErrorMsg = isValidDateForReports(repStartDate);
	endDateErrorMsg = isValidDateForReports(repEndDate);
  if ((stDateErrorMsg == "") && (endDateErrorMsg == "")){
		checkDateValidityForReports(repStartDate, repEndDate);
		if(endDateIsLesser == true){
			alert("End Date is less than Start Date.");
		}else{
			repURL = repURL+"?true&"+reptype+"&"+repStartDate+"&"+repEndDate;
			printPageWithValue(repURL);
		}	
	}else{
		if(stDateErrorMsg != ""){
			alert("Start"+ stDateErrorMsg);
    }
		if(endDateErrorMsg != ""){
			alert("End"+ endDateErrorMsg);
    }     			
	}	
	//repURL = repURL+"?true&"+reptype+"&"+repStartDate+"&"+repEndDate;
	//printPageWithValue(repURL);	
}

function sendDetailReportCriteria(startDate,endDate,cprs,reptype,repURL){
	var objCprs = MM_findObj(cprs);
	var objstartDate = MM_findObj(startDate);
	var objendDate = MM_findObj(endDate);
	repStartDate = objstartDate.value;
	repEndDate = objendDate.value;
	repCriteriaStatus = objCprs.value;
	
	// check validity of dates June 3rd
	stDateErrorMsg = isValidDateForReports(repStartDate);
	endDateErrorMsg = isValidDateForReports(repEndDate);
  if ((stDateErrorMsg == "") && (endDateErrorMsg == "")){
		checkDateValidityForReports(repStartDate, repEndDate);
		if(endDateIsLesser == true){
			alert("End Date is less than Start Date.");
		}else{
			repURL = repURL+"?false&"+reptype+"&"+repStartDate+"&"+repEndDate+"&"+repCriteriaStatus;
			printPageWithValue(repURL);
		}	
	}else{
		if(stDateErrorMsg != ""){
			alert("Start"+ stDateErrorMsg);
    }
		if(endDateErrorMsg != ""){
			alert("End"+ endDateErrorMsg);
    }     			
	}	
	//repURL = repURL+"?stdt="+repStartDate+"&enddt="+repEndDate+"&criteria="+repCriteriaStatus;
	//repURL = repURL+"?false&"+reptype+"&"+repStartDate+"&"+repEndDate+"&"+repCriteriaStatus;
	//printPageWithValue(repURL);
}

function sendDetailReportCriteriaExcel(startDate,endDate,cprs,reptype,repURL){
	var objCprs = MM_findObj(cprs);
	var objstartDate = MM_findObj(startDate);
	var objendDate = MM_findObj(endDate);
	repStartDate = objstartDate.value;
	repEndDate = objendDate.value;
	repCriteriaStatus = objCprs.value;
	
	// check validity of dates June 3rd
	stDateErrorMsg = isValidDateForReports(repStartDate);
	endDateErrorMsg = isValidDateForReports(repEndDate);
  if ((stDateErrorMsg == "") && (endDateErrorMsg == "")){
		checkDateValidityForReports(repStartDate, repEndDate);
		if(endDateIsLesser == true){
			alert("End Date is less than Start Date.");
		}else{
			repURL = repURL+"?true&"+reptype+"&"+repStartDate+"&"+repEndDate+"&"+repCriteriaStatus;
			printPageWithValue(repURL);
		}	
	}else{
		if(stDateErrorMsg != ""){
			alert("Start"+ stDateErrorMsg);
    }
		if(endDateErrorMsg != ""){
			alert("End"+ endDateErrorMsg);
    }     			
	}	
	//repURL = repURL+"?stdt="+repStartDate+"&enddt="+repEndDate+"&criteria="+repCriteriaStatus;
	//repURL = repURL+"?true&"+reptype+"&"+repStartDate+"&"+repEndDate+"&"+repCriteriaStatus;
	//printPageWithValue(repURL);
}

function sendSummaryReportCriteria(startDate,endDate,repURL){
	var objstartDate = MM_findObj(startDate);
	var objendDate = MM_findObj(endDate);
	repStartDate = objstartDate.value;
	repEndDate = objendDate.value;

	// check validity of dates June 3rd
	stDateErrorMsg = isValidDateForReports(repStartDate);
	endDateErrorMsg = isValidDateForReports(repEndDate);
  if ((stDateErrorMsg == "") && (endDateErrorMsg == "")){
		checkDateValidityForReports(repStartDate, repEndDate);
		if(endDateIsLesser == true){
			alert("End Date is less than Start Date.");
		}else{
			repURL = repURL+"?"+repStartDate+"&"+repEndDate;
			printPageWithValue(repURL);
		}	
	}else{
		if(stDateErrorMsg != ""){
			alert("Start"+ stDateErrorMsg);
    }
		if(endDateErrorMsg != ""){
			alert("End"+ endDateErrorMsg);
    }    			
	}
	
	//repURL = repURL+"?stdt="+repStartDate+"&enddt="+repEndDate+"&criteria="+repCriteriaStatus;
	//repURL = repURL+"?"+repStartDate+"&"+repEndDate;
	//printPageWithValue(repURL);
}

function sendEmployeeStatisticsReportCriteria(startDate,endDate,repURL){
	var objstartDate = MM_findObj(startDate);
	var objendDate = MM_findObj(endDate);
	repStartDate = objstartDate.value;
	repEndDate = objendDate.value;

	// check validity of dates June 3rd
	stDateErrorMsg = isValidDateForReports(repStartDate);
	endDateErrorMsg = isValidDateForReports(repEndDate);
  if ((stDateErrorMsg == "") && (endDateErrorMsg == "")){
		checkDateValidityForReports(repStartDate, repEndDate);
		if(endDateIsLesser == true){
			alert("End Date is less than Start Date.");
		}else{
			repURL = repURL+"?"+repStartDate+"&"+repEndDate;
			printPageWithValue(repURL);
		}	
	}else{
		if(stDateErrorMsg != ""){
			alert("Start"+ stDateErrorMsg);
    }
		if(endDateErrorMsg != ""){
			alert("End"+ endDateErrorMsg);
    }    			
	}	
	//repURL = repURL+"?stdt="+repStartDate+"&enddt="+repEndDate+"&criteria="+repCriteriaStatus;
	//repURL = repURL+"?"+repStartDate+"&"+repEndDate;
	//printPageWithValue(repURL);
}

function sendParticipantProductivityReportCriteria(startDate,endDate,repURL){
	var objstartDate = MM_findObj(startDate);
	var objendDate = MM_findObj(endDate);
	repStartDate = objstartDate.value;
	repEndDate = objendDate.value;

	// check validity of dates June 3rd
	stDateErrorMsg = isValidDateForReports(repStartDate);
	endDateErrorMsg = isValidDateForReports(repEndDate);
  if ((stDateErrorMsg == "") && (endDateErrorMsg == "")){
		checkDateValidityForReports(repStartDate, repEndDate);
		if(endDateIsLesser == true){
			alert("End Date is less than Start Date.");
		}else{
			repURL = repURL+"?"+repStartDate+"&"+repEndDate;
			printPageWithValue(repURL);
		}	
	}else{
		if(stDateErrorMsg != ""){
			alert("Start"+ stDateErrorMsg);
    }
		if(endDateErrorMsg != ""){
			alert("End"+ endDateErrorMsg);
    }     			
	}
	
	//repURL = repURL+"?stdt="+repStartDate+"&enddt="+repEndDate+"&criteria="+repCriteriaStatus;
	//repURL = repURL+"?"+repStartDate+"&"+repEndDate;
	//printPageWithValue(repURL);
}

function printPageWithValue(whatPage) {
	window.open(whatPage, "aLink", "maximize=yes,toolbar=yes,addressbar=yes,menubar=yes,width=800,height=600,scrollbars=yes,resizable=yes");
}

var phone_field_length=0;
function TabNext(obj,event,len,next_field) {
	if (event == "down") {
		//alert(obj.value.length);
		phone_field_length=obj.value.length;
	}
	else if (event == "up") {
		if (obj.value.length != phone_field_length) {
			phone_field_length=obj.value.length;
			if (phone_field_length == len) {
				next_field.focus();
			}
		}
	}
}

var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
var keyCode = (isNN) ? e.which : e.keyCode; 
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}
function containsElement(arr, ele) {
var found = false, index = 0;
while(!found && index < arr.length)
if(arr[index] == ele)
found = true;
else
index++;
return found;
}
function getIndex(input) {
var index = -1, i = 0, found = false;
while (i < input.form.length && index == -1)
if (input.form[i] == input)index = i;
else i++;
return index;
}
return true;
}

function disableChildItems(fieldname, fieldvalue,childname1,childname2){
	
	var objFieldName = MM_findObj(fieldname);
	var objChildName1 = MM_findObj(childname1);
	var objChildName2 = MM_findObj(childname2);

	if(objFieldName && objChildName1 && objChildName2){
		if(fieldvalue == "F"){
			objChildName1.disabled = true;
			objChildName2.disabled = true;
			objChildName1.selectedIndex = 1;
			objChildName2.selectedIndex = 1;
		}else	if(fieldvalue == ""){
			objChildName1.disabled = false;
			objChildName2.disabled = false;
		}											
	}

}

function togglePremiumInsuranceCompany(fieldname, fieldvalue, arr, border){
   var objFieldName= MM_findObj(fieldname);
   var flag= true;
   var borderColor="1px #999999 solid";
   if(objFieldName) {
       if(fieldvalue == "TR_ST_OFFACC") {
          flag= false;
          borderColor= "1px #003399 solid";
       }
       for (loop= 0; loop < arr.length; loop++) {
          var obj= MM_findObj(arr[loop]);
//          if (obj) {
             obj.disabled= flag;
            if (border || flag == true)
                 obj.style.border = borderColor;
//          }
       }
   }       
}

function checkForPoolCoverageValue(fieldname, childname1,childname2){
	
	var objFieldName = MM_findObj(fieldname);
	var objChildName1 = MM_findObj(childname1);
	var objChildName2 = MM_findObj(childname2);

	if(objFieldName && objChildName1 && objChildName2){
		if(objFieldName.value == "F"){
			objChildName1.disabled = true;
			objChildName2.disabled = true;
			objChildName1.selectedIndex = 1;
			objChildName2.selectedIndex = 1;
		}else	if(objFieldName.value == ""){
			objChildName1.disabled = false;
			objChildName2.disabled = false;
		}											
	}

}

	function confirmCancel(action, event) {
		var theForm = document.forms[0];
		// Any javascript validations can be done.
		if (confirm("Any unsaved changes will be lost. Are you sure you want to Cancel?")) {
			doPostBack(action, event);
		} else {
		}
	}
	function confirmCreate(action, event) {
		var theForm = document.forms[0];
		// Any javascript validations can be done.
		doPostBack(action, event);
	}
	

function highlightCounty(ckbox1,countyInput,ckbox2){
	var objCheckBox1 = MM_findObj(ckbox1);
	var objCheckBox2 = MM_findObj(ckbox2);	
	var objCountyInput = MM_findObj(countyInput);	
	if(objCheckBox1.checked){
		if(objCountyInput){
			objCountyInput.style.borderColor = "#FF0000";
		}
		if(objCheckBox2){
			objCheckBox2.checked = false;
		}	
	}else{
		if(objCountyInput){
			objCountyInput.style.borderColor = "#003399";
		}	
	}
}

function toggleCheckBox(ckbox1,countyInput,ckbox2){
	var objCheckBox1 = MM_findObj(ckbox1);
	var objCheckBox2 = MM_findObj(ckbox2);	
	var objCountyInput = MM_findObj(countyInput);	
	if(objCheckBox2.checked){
		if(objCheckBox1.checked){
			objCheckBox1.checked = false;
		}
		if(objCountyInput){
			objCountyInput.style.borderColor = "#003399";
		}		
	}else{
		if(objCountyInput){
			objCountyInput.style.borderColor = "#003399";
		}
  }		
}

/*function updateLabel(elem, label, name) {
	var today = new Date();
	var curYear = today.getYear();
	if ( (curYear - elem.value) >= 30 ) {
		if(elem.value >= 1800){
			document.getElementById(label).innerText = (curYear-elem.value)+' years old';
			document.getElementById(name).style.color = "red";
		}else if (elem.value < 1800){
			document.getElementById(label).innerText = "Year Built cannot be less than 1800."
		}

	} else {
		document.getElementById(label).innerText = "";
		document.getElementById(name).style.color = "black";
	}
}*/

function updateLabel(elem, label, name) {
	var today = new Date();
	var curYear = today.getYear();
	if ( (curYear - elem.value) >= 30 ) {
			document.getElementById(label).innerText = (curYear-elem.value)+' years old';
			document.getElementById(name).style.color = "red";
	} else {
		document.getElementById(label).innerText = "";
		document.getElementById(name).style.color = "black";
	}
}

//disable text input objects when the mode value is 2

function disableTextInputObjects(modeValue){
	var modeValue = modeValue;
	var line1Obj = MM_findObj("line1");
	var line2Obj = MM_findObj("line2");
	var cityObj = MM_findObj("city");
	var stateObj = MM_findObj("state");
	var countyObj = MM_findObj("county");
	var txtstateObj = MM_findObj("txtstate");
	var zip1Obj = MM_findObj("zip1");
	var zip2Obj = MM_findObj("zip2");
	var countryObj = MM_findObj("country");
	var coverageAObj = MM_findObj("coverageA");
	var coverageStatusObj = MM_findObj("coverageStatus");
	var coverageExpires1Obj = MM_findObj("coverageExpires1");
	var yearBuildObj = MM_findObj("yearBuild");
	var propAgeObj = MM_findObj("propAge");		
	var yearRoofObj = MM_findObj("yearRoof");		
	var yearElectricalObj = MM_findObj("yearElectrical");		
	var yearHvacObj = MM_findObj("yearHvac");	
	var sqrFootageObj = MM_findObj("sqrFootage");
	var proxSeaObj = 	MM_findObj("proxSea");
	
	if(modeValue == 2){						
		if (line1Obj){
			line1Obj.disabled = true;
		}
		if (line2Obj){
			line2Obj.disabled = true;
		}
		if (line1Obj){
			line1Obj.disabled = true;
		}
		if (cityObj){
			cityObj.disabled = true;
		}
		if (stateObj){
			stateObj.disabled = true;
		}
		if (countyObj){
			countyObj.disabled = true;
		}
		if (txtstateObj){
			txtstateObj.disabled = true;
		}
		if (countyObj){
			countyObj.disabled = true;
		}
		if (coverageAObj){
			coverageAObj.disabled = true;
		}
		if (coverageStatusObj){
			coverageStatusObj.disabled = true;
		}
		if (coverageExpires1Obj){
			coverageExpires1Obj.disabled = true;
		}
		if (yearBuildObj){
			yearBuildObj.disabled = true;
		}
		if (propAgeObj){
			propAgeObj.disabled = true;
		}
		if (yearRoofObj){
			yearRoofObj.disabled = true;
		}
		if (yearElectricalObj){
			yearElectricalObj.disabled = true;
		}
		if (yearHvacObj){
			yearHvacObj.disabled = true;
		}
		if (zip1Obj){
			zip1Obj.disabled = true;
		}
		if (zip2Obj){
			zip2Obj.disabled = true;
		}
		if (sqrFootageObj){
			sqrFootageObj.disabled = true;
		}
		if (yearHvacObj){
			proxSeaObj.disabled = true;
		}
	}																		
}

function diableCompanyContactInfoInEditMode(companyEditMode){
	if(companyEditMode){
		var companyNameObj = MM_findObj('companyName');
		var companyNAICObj = MM_findObj('naic'); 
		var companyflCompanyCodeObj = MM_findObj('flCompanyCode');  
		companyNameObj.disabled = true;
		companyNAICObj.disabled = true;
		companyflCompanyCodeObj.disabled = true;
	}
}

var endDateIsLesser = false;
function checkDateValidityForReports(startDate, endDate){
        if ((startDate == null || startDate.length == 0) && (endDate == null || endDate.length ==0)) {
           endDateIsLesser = false;
           return;
        }
           
	var date1 = new Date(startDate);
	var date2 = new Date(endDate);
	if(date2 < date1){
	    endDateIsLesser = true;
	}else{
	    endDateIsLesser = false;
	}
}

function isValidDateForReports(dateStr) {
// Checks for the following valid date formats:
// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
// Also separates date into month, day, and year variables

//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

// To require a 4 digit year entry, use this line instead:
var datePatSlash = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
if (dateStr == null || dateStr.length == 0) 
  return "";
var datePat = /^(\d{1,2})(-)(\d{1,2})\2(\d{4})$/;
var fieldName = "";
var errmsg = "";
if(isValidDateForReports.arguments.length == 2)  fieldName = isValidDateForReports.arguments[1].toUpperCase();
var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null)
   matchArray = dateStr.match(datePatSlash); // check for Slash instead of -
if (matchArray == null) {
	errmsg = fieldName + " Date is not in a valid date format (MM-DD-CCYY) or (MM/DD/CCYY)." ;
	return errmsg;
}
var month = matchArray[1]; // parse date into variables
var day = matchArray[3];
var year = matchArray[4];
if (month < 1 || month > 12) { // check month range
	errmsg = "Invalid " + fieldName + " Date : Month must be between 1 and 12." ;
	return errmsg;
}
if (day < 1 || day > 31) {
	errmsg = "Invalid " + fieldName + " Date : Day must be between 1 and 31.";
	return errmsg;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	errmsg = "Invalid " + fieldName + " Date : Month "+month+" doesn't have 31 days!"
	return errmsg
}
if(year.length == 4 && year < "1900"){
	errmsg = "Invalid " + fieldName + " Date : Year has to be greater tha 1900" ;
        return errmsg ;  
}
if (month == 2) { // check for february 29th
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
	errmsg = "Invalid " + fieldName + " Date : February " + year + " doesn't have " + day + " days!";
	return errmsg;
   }
}
return errmsg;  // date is valid
}

function removeCommas(fieldValue) {

	var fieldString = new String(fieldValue);
	//alert ("String to remove commas = " + fieldString);

	while (fieldString.indexOf(',') > 0) {
		fieldString = fieldString.replace(",","");
	}
	return fieldString;
}

function addCommas(fieldObj)
{
    var nStr = removeCommas(fieldObj.value);
    nStr += '';
	var x = nStr.split('.');
	var x1 = x[0];
	var x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
    var field = MM_findObj(fieldObj.name);
    field.value =  x1 + x2;
}
