function setControlDate()
{
/***
  MSIE.Dates.setYear() is 0-year-based;
  Gecko.Dates.setYear() is 1900-year-based;
***/
  var user_agent=navigator.userAgent.toLowerCase();
  if(user_agent.indexOf('gecko') != -1)
    dateSum = 1900;
  else
    dateSum = 0;
//   alert(this.helper.target);
  control = this.helper.target;
//   alert(this.helper.container_id);
  selectedDates = this.helper.getSelectedDates();
  day = selectedDates[0].getDate();
  month = selectedDates[0].getMonth()+1;
  year = selectedDates[0].getYear() + dateSum;
  YAHOO.util.Dom.get(control).value = day +"/" +month+"/" +year;
//   alert(this.oDomContainer.id);
  thislink = YAHOO.util.Dom.get(this.helper.link);
//   alert(thislink);
  if(thislink != null)
    thislink.innerHTML = toggleDomContainerVisibility(this.helper.container_id);
  else
    toggleDomContainerVisibility(this.helper.container_id);
}

function setStandaloneControlDate(e,calendar)
{
  var user_agent=navigator.userAgent.toLowerCase();
  if(user_agent.indexOf('gecko') != -1)
    dateSum = 1900;
  else
    dateSum = 0;

  control = this.target;
// alert(control);
  selectedDates = this.getSelectedDates();
  day = selectedDates[0].getDate();
  month = selectedDates[0].getMonth()+1;
  year = selectedDates[0].getYear() + dateSum;

  YAHOO.util.Dom.get(control).value = day +"/" +month+"/" +year;
  this.hide();
//   toggleDomContainerVisibility(this.getElId());
}

function setCalendarDate(calendarElement,controlElement)
{
//   return;
  if(controlElement.value == '' 
    || controlElement.value == '0000-00-00' 
    || controlElement.value == '00-00-0000' 
    || controlElement.value == '00/00/0000' 
    ) return;
//  alert('setting calendar date to :' + controlElement.value + ' for ' + controlElement);
  date = controlElement.value.split('/');
  calendarElement.select(date[1] + "/" + date[0] + "/" + date[2]);
  calendarElement.setMonth(date[1]-1);
  calendarElement.setYear(date[2]);
  calendarElement.render();
}

function toggleDomContainerVisibility(container,button)
{
  link_label = '';
  displayNow = YAHOO.util.Dom.getStyle(container,'display');
  
// alert(displayNow);
  if(displayNow == 'none') 
  {
    YAHOO.util.Dom.setStyle(container, 'display', '');
    YAHOO.util.Dom.setStyle(container, 'visibility', '');
    link_label = 'oculta calendario';
  }
  else
  {
    YAHOO.util.Dom.setStyle(container, 'display', 'none');
    link_label = 'calendario';
  }
  return link_label;
}

function toggleVisibility(container,change)
{
  var displayNow = '';

  if(isNaN(change))
    change = true;

  displayNow = YAHOO.util.Dom.getStyle(container,'display');

// alert(displayNow);

  if(displayNow == 'none')
  {
    YAHOO.util.Dom.setStyle(container, 'display', '');
    if(change == true)
      return 'oculta calendario';
  }
  else
  {
    YAHOO.util.Dom.setStyle(container, 'display', 'none');
    if(change == true)
      return 'calendario';
  }
  if(change == true)
    YAHOO.util.Dom.setStyle(container, 'class', 'textocontenido');
}

function newCalendar(calDivName,targetControlId,objectVar,objectName,link)
{
  newCal   = new YAHOO.widget.Calendar(objectName, calDivName);
  newCal.target    = targetControlId;
  newCal.link      = link;
  newCal.onSelect    = setControlDate;
  newCal.render();
  objectVar   = newCal;
  return objectVar;
}