// Abaandoning ajax approach because json return object is too hard to control
// Need to play more with returning json from ajax to qQuery
// This particular application is better off working on the client side via javascript anyway

// // Show error message when ajax call fails
//$(document).ajaxError(function(e, xhr, settings, exception) { 
//alert('error in: ' + settings.url + ' \n'+'error:\n' + xhr.responseText ); 
//}); 

// $('#setLatitude')
	// .click(
		// function(event){
      // var lat = $('#latitude').attr('value');
      // if (lat >= 0 && lat <= 90){
        // $.post('fcgi/lod.exe', {webCall:'getLODdata',latitude:lat}, function(data){
          // //alert(data);
          // //eval('objData=' + data);  
          // var objData = $.parseJSON(data);
          // //alert('wow');
          // //alert(objData.lodData.length);
          // $.plot($("#placeholder"), objData.lodData, { 
            // yaxis: { ticks: 12, max: 24, min: 0 },
            // xaxis: { ticks: [[0,'Winter Solstice'],1,2,[3,'Vernal Equinox'],4,5,[6,'Summer Solstice'],7,8,[9,'Autumnal Equinox'],10,11,[12,'Winter Solstice']]},
            // grid: {backgroundColor: { colors: ["#fff", "#eee"] }
        // }
          // });
          // $('#subhead').text('For ' + objData.latitude + ' Degrees North Latitude');
        // });
      // }
      // else{
        // alert('Latitude must be a value from 0 through 90 degrees.');
      // }
    // }
   // );
	
// Calculate object used to build graph on client via JavaScript
function calcGraph(lat){
  var intervals = 121;  // Specify number of intervals for division of the year
  var dm = 12/(intervals - 1);   // Calculate interval size
  var miy = 0;   // Variable for months into year
  var earthAngle = 23.5 * Math.PI / 180;  // Angle of inclination of earth's axis in radians
  var latRad = lat * Math.PI / 180;  // Specified latitude converted from degrees to radians
  var d1 = [];
  var objData;
  var sinval;
  var invsin;
  for (var i = 0; i < intervals; i++){
    miy = i*dm;
    sinval = Math.tan(latRad)*Math.tan(earthAngle)*Math.cos(miy*Math.PI/6);
    if (sinval > -1 && sinval < 1){
      invsin = Math.asin(sinval);   // In range
    }
    else{
      sinval = sinval/Math.abs(sinval);  // Out of range so use -1 or +1
      invsin = Math.asin(sinval);
    };
    d1.push([miy,12*(1-2*(invsin)/Math.PI)]);
  }
  //alert(d1.length);
  return {lodData:d1,latitude:lat};
};
  
  
// Calculate the graph on the client without an Ajax call using JavaScript  
$('#setLatitudeJS')
	.click(
		function(event){
      var lat = $('#latitude').attr('value');
      if (lat >= 0 && lat <= 90){
        objData = calcGraph(lat);
        //alert(objData.lodData.length);
        //alert(objData.lodData);
        $.plot($("#placeholder"), [{data:objData.lodData, lines: {show:true, fill:true, fillColor: "#fff"}}], { 
            yaxis: { ticks: 12, max: 24, min: 0 },
            xaxis: { ticks: [[0,'Winter Solstice'],1,2,[3,'Vernal Equinox'],4,5,[6,'Summer Solstice'],7,8,[9,'Autumnal Equinox'],10,11,[12,'Winter Solstice']]},
            grid: {backgroundColor: { colors: ["#000", "#eee"] } } 
        });
        $('#subhead').text('For ' + objData.latitude + ' Degrees North Latitude');
      }
      else{
        alert('Latitude must be a value from 0 through 90 degrees.');
      }
    }
   );

$('#setLatitudeJS').click();

$('#latitude')
  .keydown(
    function(event){
      if (event.keyCode == '13') {
        $('#setLatitudeJS').click();
      }
    }
  );
  


