/*
 * Controls for the house price graphs
 * version: with fully qualified file names
 */
var height = 512;
var width = 392;
hostname = "www.houseprices.uk.net";

function update() {
  var b1 = document.getElementById("y_min");
  var b2 = document.getElementById("y_max");

  if (b1.value >= b2.value) {
    var tmp =  b2.value;
    b2.value = b1.value;
    b1.value = tmp;
  }
  var ymin = b1.value;
  var ymax = b2.value;

  var c1 = document.getElementById("chart_type");
  var type = c1.value;

  var cb1 = document.getElementById("flag_nw");
  var cb2 = document.getElementById("flag_hf");
  var cb3 = document.getElementById("flag_q");
  var cb4 = document.getElementById("flag_o");
  var cb5 = document.getElementById("flag_ma");
  var cb6 = document.getElementById("flag_rm");
  var cb7 = document.getElementById("flag_ft");
  var cb8 = document.getElementById("flag_lr");
  var cb9 = document.getElementById("flag_logy");

  //alert("TEST")

  // bit messy
  var flag_nw = "0";
  var flag_hf = "0";
  var flag_q = "0";
  var flag_o = "0";
  var flag_ma = "0";
  var flag_rm = "0";
  var flag_ft = "0";
  var flag_lr = "0";
  var flag_logy = "0";

  if (cb1.checked) flag_nw = "1";
  if (cb2.checked) flag_hf = "1";
  if (cb3.checked) flag_q = "1";
  if (cb4.checked) flag_o = "1";
  if (cb5.checked) flag_ma = "1";
  if (cb6.checked) flag_rm = "1";
  if (cb7.checked) flag_ft = "1";
  if (cb8.checked) flag_lr = "1";
  if (cb9.checked) flag_logy = "1";

  width = document.getElementById("img_width").value;
  height = document.getElementById("img_height").value;


  // browser compatability code - get the window size
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  // last ditch, if no futher options left
  if (myWidth == "undefined") myWidth = 800;

  if (width == "w100") {
    width = 0.92*myWidth;
  }
  if (width == "w75") {
    width = 0.92*myWidth*0.75;
  }

  if (height == "r_169") {
    height = 9*width/16;
  }
  if (height == "r_43") {
    height = 3*width/4;
  }
  if (height == "r_21") {
    height = width/2;
  }
  if (height == "r_11") {
    height = width;
  }

  // we expect to pass integers to the server
  width = Math.round(width);
  height = Math.round(height);

  var lag_yoy = 0;
  var lag_qoq = 0;
  var lag_odpm = 0;
  var leg_pos = 0;

  // shifts
  if (document.getElementById("flag_lag_yoy").checked) {
    lag_yoy = 6;
  }
  if (document.getElementById("flag_lag_qoq").checked) {
    lag_qoq = 1.5;
  }
  if (document.getElementById("flag_lag_odpm").checked) {
    lag_odpm = 1.0;
  }
  if (document.getElementById("leg_pos").checked) {
      leg_pos = 1.0;
  }

  var g = document.getElementById("graph");
  g.src = "http://" + hostname + "/hpuk/house_price_server.php?width=" + width + "&height=" + height
      + "&year_min=" + ymin + "&year_max=" + ymax
      + "&type=" + type
      + "&flag_q=" + flag_q
      + "&flag_nw=" + flag_nw
      + "&flag_hf=" + flag_hf
      + "&flag_rm=" + flag_rm
      + "&flag_ft=" + flag_ft
      + "&flag_lr=" + flag_lr
      + "&flag_o=" + flag_o
      + "&flag_ma=" + flag_ma
      + "&lag_yoy=" + lag_yoy
      + "&lag_qoq=" + lag_qoq
      + "&lag_odpm=" + lag_odpm
      + "&leg_pos=" + leg_pos 
      + "&flag_logy=" + flag_logy;
}
