// enquiry.js
// JAVSCRIPT FUNCTIONALITY (stage01)

// PROPAGATE HOLIDAY FORM
function update_fn(resource)
{ if(resource.name == 'region')
  { del_selected(resource.name);
    var region_val = lookup[calc_selected(resource.name)];
    build_select('route',array2object(region_val));  
  }
  calc_duration(calc_selected('route'));
  return true;
}

// MATCH UP THE PREVIOUS QUERY
function fix(region,route,dur)
{ del_selected('region');
  set_selected('region',region);
  build_select('route',array2object(lookup[region]));
  if(!route) calc_duration(calc_selected('route'));
  else set_selected('route',route);
  calc_duration(route);
  set_selected('duration',dur);
}

// RETURN SELECTED VALUE FOR SELECT BOX
function calc_selected(id)
{ return document.forms['bookengine'].elements[id].options[document.forms['bookengine'].elements[id].selectedIndex].value; }

// SET THE SELECTED VALUE - BY VALUE
function set_selected(id,val)
{ var base = document.forms['bookengine'].elements[id];
  for(var i=0; i<base.length; i++)
  { if(base.options[i].value==val)
    { base.selectedIndex = i; return; }
  }
}

// REMOVE TOP VALUE IF BASE
function del_selected(id)
{ var base = document.forms['bookengine'].elements[id];
  if(base.options[0].value=='0') base.options[0] = null;
}

// UPDATE THE DURATION IF NEEDED
function calc_duration(val)
{ var durset = calc_selected('duration');
  var dur = new Object();
  if(duration[val]) // dur[duration[val]] = duration[val]; //custom
  { for(var tmp in durationx)
     if(parseInt(tmp) >= duration[val]) dur[tmp] = durationx[tmp];
  }
  else dur = durationx;
  build_select('duration',dur);
  set_selected('duration',durset);  
}

// TOGGLE FORM DETAILS VIA HTYPE
function toggle()
{ //var boatcat = document.getElementById('boatcat_holder');
  //boatcat.style.display = 'block';
  //boatcat.style.display = 'none';
}

// CONVERT THE BASES ARRAY INTO AN OBJECT
function array2object(list)
{ var out=new Object();
  for(var i=0; i<list.length; i++)
  { out[list[i]] = list[i]; }
  return out;
}

function in_array(needle,haystack)
{ var hay = haystack.toString();
  if(!hay) return false;
  var pattern = new RegExp(needle,'g');
  var matched = pattern.test(haystack);
  return matched;
}

// FILL THE SELECT BOX WITH VALUES
function build_select(id,ooptions)
{ var i=0;
  var val='(notset)';
  document.forms['bookengine'].elements[id].options.length = 0;
  for(var option_id in ooptions)
  { if(id=='route') val = routex[option_id];
    else if(id=='duration') val = durationx[option_id];
    document.forms['bookengine'].elements[id].options[i] = new Option(val,option_id);
    i++;
  }
}
