// Handle Text removal

var nlpq;
var printIt;
var OpSName;

function clearText(){
 if (nlpq.value == queryPrompt){
	nlpq.value = "";
  }
 }
 
function initEvents(){
	nlpq = document.getElementById('nlpq');
	if (nlpq) {nlpq.onfocus = clearText;}
	writePrintLink();
  formSubmission();
}

// Change non-metafaq links to open in a new window
function changeLinks(){
	for(var e=0; e<document.links.length; e++){
		var linkRef = document.links[e];
		if (linkRef.href.indexOf("mailto") == -1 && linkRef.hostname.indexOf("metafaq.com") == -1){
			linkRef.target = "_blank";
		}
	}
}
function writePrintLink(){
  printIt = document.getElementById('printIt');
  if(printIt){
    var printBtnLink = document.createElement('a');
    printBtnLink.setAttribute('href', '#');
    printBtnLink.style.paddingLeft='20px';
    printBtnLink.style.backgroundImage='url(http://bbciplayer.metafaq.com/clients/bbciplayer/resources/print.gif)';
    printBtnLink.style.backgroundRepeat='no-repeat';
    printBtnLink.style.backgroundPosition='0 2px';
    // set onclicks - have to perform function else auto triggers the behaviour
    printBtnLink.onclick = function(){window.print(); return false;}
    var printBtnText = document.createTextNode('Print page');
    printBtnLink.appendChild(printBtnText);
    printIt.appendChild(printBtnLink);
  }
}

function formSubmission () {
  if (document.getElementById('emailFormSubmit')) {
    document.getElementById('emailFormSubmit').style.display = 'none';
  }
  if (document.getElementById('query_type')) {
    document.getElementById('query_type').onchange = function() { document.getElementById("email_fm").submit();}
  }
  // Availability
  if (document.getElementById('availability_select_1')) {
    document.getElementById('availability_select_1').onchange = function() { document.getElementById("email_fm").submit();}
  }
  if (document.getElementById('availability_select_2')) {
    document.getElementById('availability_select_2').onchange = function() { document.getElementById("email_fm").submit();}
  }
  // Downloading
  if (document.getElementById('downloading_select_1')) {
    document.getElementById('downloading_select_1').onchange = function() { document.getElementById("email_fm").submit();}
  }
  if (document.getElementById('downloading_select_2')) {
    document.getElementById('downloading_select_2').onchange = function() { document.getElementById("email_fm").submit();}
  }
  // Outside uk problem
  if (document.getElementById('outside_uk_select_1')) {
    document.getElementById('outside_uk_select_1').onchange = function() { document.getElementById("email_fm").submit();}
  }
  if (document.getElementById('outside_uk_select_2')) {
    document.getElementById('outside_uk_select_2').onchange = function() { document.getElementById("email_fm").submit();}
  }
  if (document.getElementById('outside_uk_select_3')) {
    document.getElementById('outside_uk_select_3').onchange = function() { document.getElementById("email_fm").submit();}
  }
  if (document.getElementById('continueButton')) {
    var element = document.createElement("input");
    element.setAttribute("value", "Next step");
    element.setAttribute("type", "submit");
    document.getElementById('continueButton').appendChild(element);
  }

  BrowserDetect.init();
  if (document.getElementById('osname')){
    document.getElementById('osname').value = BrowserDetect.OS;
  }
  if (document.getElementById('browsername')){
    document.getElementById('browsername').value = BrowserDetect.browser + BrowserDetect.version;
  }

  /***************************************/
  // New form JS
  /***************************************/
  hideElement('contact-submit');
  submitOnChange('contact_type', 'contact-form');
  submitOnChange('location', 'contact-form');
  submitOnChange('accessing', 'contact-form');
  submitOnChange('accessing_area', 'contact-form');
  submitOnChange('relating_to', 'contact-form');
  submitOnChange('relating_to_area', 'contact-form');
  submitOnChange('tv_radio', 'contact-form');
  submitOnChange('listen_type', 'contact-form');
  submitOnChange('audio_format', 'contact-form');
  submitOnChange('contacted_isp', 'contact-form');
  submitOnChange('contact_further', 'contact-form');

  var accessingSelector     = document.getElementById('accessing');
  var accessingAreaSelector = document.getElementById('accessing_area');

  if (accessingSelector && accessingAreaSelector) {
    //accessingSelector.onchange = function() { changeSelector(accessingSelector.value, accessingAreaSelector, accessingOptions, 'accessing_area_div', 'accessing_area_text');}
  }

  var relatingToSelector     = document.getElementById('relating_to');
  var relatingToAreaSelector = document.getElementById('relating_to_area');

  if (relatingToSelector && relatingToAreaSelector) {
    //relatingToSelector.onchange = function() { changeSelector(relatingToSelector.value, relatingToAreaSelector, relatingOptions, 'relating_to_area_div', '');}
  }
}

function changeSelector(area, element, array, id, textElement) {
  var areaOptions = false;
  element.options.length = 0;
  element.options[0] = new Option('Please select','');

  for (var i=0; i < array.length; i++) {
    if (area == array[i].area) {
      areaOptions = true;
      element.options[element.options.length] = new Option(array[i].name, array[i].name);
    }
  }
  var row = document.getElementById(id);
  if (!areaOptions) {
    if (row) {
      row.style.display = 'none';
    }
  } else {
    if (row) {
      row.style.display = '';
    }
  }
  if (textElement) {
    var spanElement = document.getElementById(textElement);
    if (spanElement) {
      spanElement.innerHTML = selectionSpanText[area];
    }
  }
}

function hideElement (id) {
  var element = document.getElementById(id);
  if (element) {
    element.style.display = 'none';
  }
}

function submitOnChange (id, form) {
  var fieldElement = document.getElementById(id);
  var formElement  = document.getElementById(form);
  if (fieldElement && formElement) {
    fieldElement.onchange = function() { formElement.submit();}
  }
}


var BrowserDetect = {
  init: function () {
    this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
    this.version = this.searchVersion(navigator.userAgent)
      || this.searchVersion(navigator.appVersion)
      || "an unknown version";
    this.OS = this.searchString(this.dataOS) || "an unknown OS";
  },
  searchString: function (data) {
    for (var i=0;i<data.length;i++)	{
      var dataString = data[i].string;
      var dataProp = data[i].prop;
      this.versionSearchString = data[i].versionSearch || data[i].identity;
      if (dataString) {
        if (dataString.indexOf(data[i].subString) != -1)
          return data[i].identity;
      }
      else if (dataProp)
        return data[i].identity;
    }
  },
  searchVersion: function (dataString) {
    var index = dataString.indexOf(this.versionSearchString);
    if (index == -1) return;
    return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
  },
  dataBrowser: [
    { 	string: navigator.userAgent,
      subString: "OmniWeb",
      versionSearch: "OmniWeb/",
      identity: "OmniWeb"
    },
    {
      string: navigator.vendor,
      subString: "Apple",
      identity: "Safari"
    },
    {
      prop: window.opera,
      identity: "Opera"
    },
    {
      string: navigator.vendor,
      subString: "iCab",
      identity: "iCab"
    },
    {
      string: navigator.vendor,
      subString: "KDE",
      identity: "Konqueror"
    },
    {
      string: navigator.userAgent,
      subString: "Firefox",
      identity: "Firefox"
    },
    {
      string: navigator.vendor,
      subString: "Camino",
      identity: "Camino"
    },
    {		// for newer Netscapes (6+)
      string: navigator.userAgent,
      subString: "Netscape",
      identity: "Netscape"
    },
    {
      string: navigator.userAgent,
      subString: "MSIE",
      identity: "Explorer",
      versionSearch: "MSIE"
    },
    {
      string: navigator.userAgent,
      subString: "Gecko",
      identity: "Mozilla",
      versionSearch: "rv"
    },
    { 		// for older Netscapes (4-)
      string: navigator.userAgent,
      subString: "Mozilla",
      identity: "Netscape",
      versionSearch: "Mozilla"
    }
  ],
  dataOS : [
    {
      string: navigator.platform,
      subString: "Win",
      identity: "Windows"
    },
    {
      string: navigator.platform,
      subString: "Mac",
      identity: "Mac"
    },
    {
      string: navigator.platform,
      subString: "Linux",
      identity: "Linux"
    }
  ]

};

// ie = document.all;
// if(ie)
// {
// try {
// document.execCommand("BackgroundImageCache", false, true);
// } catch(err) {}
// }

