function compare_date(begin_date, end_date, msg, set_focus, curr_date_begin, curr_date_end, confirm_flag) {
// begin_date, end_date objects are required
// msg - will override default error message
// set_focus = 'Y' or null or not passed will set focus to end_date for error
// curr_date_begin - 'Y' or not passed then begin date must be Greater than current date
// curr_date_end - 'Y' or not passed then end date must be Greater than current date
// confirm_flag - 'Y'  uses confirm instead of alert

  if (!(val_date(begin_date,curr_date_begin,null,set_focus)))
 	return false;
  if (!(val_date(end_date,curr_date_end,null,set_focus)))
  	return false;

  if (isblank(begin_date.value))
    return true;
  if (isblank(end_date.value)){
  	return true;
  }
  
  if (set_focus && set_focus != null)
  	var w_set_focus = set_focus;
  else
    var w_set_focus = 'Y'; 

  if (confirm_flag && confirm_flag == 'Y')
  	var w_confirm = true;
  else
    var w_confirm = false; 
	
  var w_begin_date_text = begin_date.value;
  var w_end_date_text = end_date.value;
	
  w_begin_date = new Date('20'+w_begin_date_text.substr(6,2),(w_begin_date_text.substr(0,2)-1),w_begin_date_text.substr(3,2));
  w_end_date = new Date('20'+w_end_date_text.substr(6,2),(w_end_date_text.substr(0,2)-1),w_end_date_text.substr(3,2));

  var w_return = true;
  if (w_begin_date > w_end_date) {
  	if(msg == 'none'){
		return false;
	}
    else if (msg && msg != null){
		if(w_confirm){
			if(confirm(msg)){
				w_return = false;		
			}
		}
		else{
			alert(msg);
			w_return = false;		
		}
		if(w_set_focus == 'Y')
			end_date.focus();
	}
    else {
		if(w_confirm){
			if(confirm('Date must be equal to or after ' + w_begin_date_text)){
				w_return = false;		
			}
		}
		else{
	        alert('Date must be equal to or after ' + w_begin_date_text);
			w_return = false;		
		}
	  if(w_set_focus == 'Y')
			end_date.focus();
	}
	return w_return;
  }
  return true;
}

