/**
 * Calculates the URL of the widget
 */
function tiqWidgetUrl(domain, params){
  var url = 'http://' + domain + '/widget/';
  params_array = new Array();
  params_array.push(params['api_key']);
  params_array.push(params['search_post_domain']);
  params_array.push(params['target_window']);
  params_array.push(params['style']);
  params_array.push(params['bg_color']);
  params_array.push(params['origin'].toUpperCase());
  params_array.push(params['destination'].toUpperCase());
  params_array.push(params['leaves_on']);
  params_array.push(params['returns_on']);
  params_array.push(params['adults']);
  params_array.push(params['children']);
  params_array.push(params['infants']);
  return url + params_array.join('/');
}

/**
 * Embed the Travel IQ widget in a page.
 * Options:
 *   placeholder: the element _before_ which the widget's iframe will be placed
 *                (optional, default 'tiqWidgetEmbedTag')
 *   iframe_id:   the ID which will be given to the generated iframe
 *                (optional, default 'tiqWidget')
 */
function embedTravelIqWidget(placeholder, iframe_id) {
  if (placeholder === undefined) {
    placeholder = "tiqWidgetEmbedTag";
  }
  	
  if (iframe_id === undefined) {
    iframe_id = "tiqWidget";
  }
  	
  undefinedParameterPlaceholder = '_'
  	
  var defaults = {
    width: 250,
    height: 250
  };
  
  var tiqWidgetUrlParams = new Object();

  tiqWidgetUrlParams['api_key'] = window.tiqWidgetApiKey ? window.tiqWidgetApiKey : undefinedParameterPlaceholder;
  tiqWidgetUrlParams['origin'] = window.tiqWidgetOrigin ? window.tiqWidgetOrigin : undefinedParameterPlaceholder;
  tiqWidgetUrlParams['destination'] = window.tiqWidgetDestination ? window.tiqWidgetDestination : undefinedParameterPlaceholder;
  tiqWidgetUrlParams['leaves_on'] = window.tiqWidgetLeavesOn ? window.tiqWidgetLeavesOn : undefinedParameterPlaceholder;
  tiqWidgetUrlParams['returns_on'] = window.tiqWidgetReturnsOn ? window.tiqWidgetReturnsOn : undefinedParameterPlaceholder;
  tiqWidgetUrlParams['search_post_domain'] = window.tiqWidgetSearchPostDomain ? window.tiqWidgetSearchPostDomain : undefinedParameterPlaceholder;
  tiqWidgetUrlParams['target_window'] = window.tiqWidgetWindowTarget ? window.tiqWidgetWindowTarget : undefinedParameterPlaceholder;
  tiqWidgetUrlParams['adults'] = window.tiqWidgetAdults ? window.tiqWidgetAdults : undefinedParameterPlaceholder;
  tiqWidgetUrlParams['children'] = window.tiqWidgetChildren ? window.tiqWidgetChildren : undefinedParameterPlaceholder;
  tiqWidgetUrlParams['infants'] = window.tiqWidgetInfants ? window.tiqWidgetInfants : undefinedParameterPlaceholder;
  tiqWidgetUrlParams['bg_color'] = window.tiqWidgetBGColor ? window.tiqWidgetBGColor : undefinedParameterPlaceholder;
  tiqWidgetUrlParams['style'] = window.tiqWidgetStyle ? window.tiqWidgetStyle : undefinedParameterPlaceholder;
  
  var iFrameObj = document.createElement('iframe');
  iFrameObj.width = window.tiqWidgetWidth ? window.tiqWidgetWidth : defaults.width;
  iFrameObj.height = window.tiqWidgetHeight ? window.tiqWidgetHeight : defaults.height;
  
  iFrameObj.src = tiqWidgetUrl(window.tiqWidgetDomain, tiqWidgetUrlParams);
  iFrameObj.id = iframe_id;
  iFrameObj.scrolling = "no";
  iFrameObj.frameBorder = 0;
  iFrameObj.allowTransparency="true";
  iFrameObj.style.backgroundColor = 'transparent';  
  document.getElementById(placeholder).parentNode.insertBefore(iFrameObj, document.getElementById(placeholder));
}
