var fullsize = new Array();
// fullsize array contains expansion state for
// the elements
// -1 = contracting
// 0 = contracted
// 1 = expanding
// 2 = expanded
fullsize['precise_location']=0;
fullsize['realtime_location']=0;
fullsize['delivering_value']=0;
fullsize['industrial_scale']=0;
var expanding_feature = '';

function after_contract(element)
{
  fullsize[element] = 0;
  var element_name = 'feature_' + element;
  $(element_name).style.zIndex = 1;
}

function contract_feature(element)
{
  if (fullsize[element] == 2)
  {
    fullsize[element] = -1;
    if (expanding_feature == element)
    {
      expanding_feature = '';
    }
    var element_name = 'feature_' + element;
    var details_name = 'details_' + element;
    var click_name = 'click_' + element;
    new Effect.BlindUp($(details_name), { duration: 0.6 ,
                                          queue: { position: 'end', scope: element } });
    new Effect.BlindDown($(click_name), { duration: 0.6 });
    new Effect.Morph($(element_name), { style: 'width: 320px; height: 200px;',
                                   duration: 0.4,
                                   queue: { position: 'end', scope: element },
                                   afterFinish: function() { after_contract(element); }
                                 });
  }
  return false;
}

function after_expand(element)
{
  fullsize[element] = 2;
}

function expand_feature(element)
{
  if (fullsize[element] == 0)
  {
    //if (expanding_feature != element && expanding_feature != '')
    //{
    //  contract_feature(expanding_feature);
    //}
    fullsize[element] = 1;
    var element_name = 'feature_' + element;
    var details_name = 'details_' + element;
    var click_name = 'click_' + element;
    $(element_name).style.zIndex = 100;
    new Effect.Morph($(element_name), { style: 'width: 658px; height: 418px;',
                                   duration: 0.4,
                                   queue: { position: 'end', scope: element },
                                   afterFinish: function() { after_expand(element); }
                                 });
    new Effect.BlindUp($(click_name), { duration: 0.6 });
    new Effect.BlindDown($(details_name), { duration: 0.6,
                                            queue: { position: 'end', scope: element } });
  }
}

function toggle_feature(element)
{
  if (fullsize[element] > 0)
  {
    contract_feature(element);
  }
  else
  {
    expand_feature(element);
  }
}
