var url = 'http://207.58.139.125/harmonics_calculator';
var next = "step2";
var dwin;
function goto_step1() {
  if ( $("#btn_step1").hasClass('btn_step1inactive') !== true )
    return false;

  if ( parent.document.getElementById('calculatorFrame') )
    parent.document.getElementById('calculatorFrame').style.height='530px';

  $("#btn_step2").removeClass("btn_step2active");
  $("#btn_step2").addClass('btn_step2inactive');

  $("#btn_report").removeClass("btn_reportactive");
  //$("#btn_report").addClass("btn_reportdissabled");

  $("#btn_step1").removeClass("btn_step1inactive btn_step1dissabled");
  $("#btn_step1").addClass("btn_step1active");

  //$(".main").addClass("hidden")
  $("#calculator").css({"background-image" : "url(images/bg_step1.jpg)", "height":"510px"} );

  $("#step2").addClass("hidden");
  $('#step1').css( {'width':'474px', 'display':''} );
  $("#step1").removeClass("hidden");

  $("#report").css({'display':''});
  $("#report").addClass("hidden");

  $("#navtop").addClass("hidden");
  $(".button2").addClass("hidden");
  $("#btn_next").removeClass("hidden");

  next = "step2";
  anualCost();
}
function goto_step2() {
  if ( $("#btn_step2").hasClass('btn_step2inactive') !== true )
    return false;

  if ( parent.document.getElementById('calculatorFrame') )
    parent.document.getElementById('calculatorFrame').style.height='530px';


  $("#btn_step1").removeClass("btn_step1active btn_step1dissabled");
  $("#btn_step1").addClass("btn_step1inactive");
  $("#btn_step2").removeClass("btn_step2dissabled btn_step2inactive");
  $("#btn_step2").addClass("btn_step2active");

  //$(".main").addClass("hidden");
  $('#step2').css( {'width':'474px', 'display':''} );

  $("#calculator").css({"background-image" : "url(images/bg_step2.jpg)", "height":"510px"} );

  $("#step1").addClass("hidden");
  $("#step2").removeClass("hidden");
  $("#report").css({'display':''});
  $("#report").addClass("hidden");

  $("#navtop").addClass("hidden");
  $(".button2").addClass("hidden");
  $("#btn_next").removeClass("hidden");

  next = "report";
  anualCost();
}
function goto_report() {
  if ( $("#btn_report").hasClass('btn_reportinactive') !== true )
    return false;

  if ( parent.document.getElementById('calculatorFrame') )
    parent.document.getElementById('calculatorFrame').style.height='964px';

  $("#btn_step1").removeClass("btn_step1active btn_step1dissabled");
  $("#btn_step1").addClass("btn_step1inactive");
  $("#btn_step2").removeClass("btn_step2active btn_step2dissabled");
  $("#btn_step2").addClass("btn_step2inactive");

  $("#btn_report").removeClass("btn_reportinactive btn_reportdissabled");
  $("#btn_report").addClass("btn_reportactive");

  $(".button1").removeClass("active");

  $("#calculator").css({"background-image" : "url(images/bg_report.jpg)", "height":"944px"} );
  $("#btn_next").addClass("hidden");

  $(".button2:not(:#btn_next)").removeClass("hidden");

  $(".main").addClass("hidden");
  $("#report").css({'display':'inline'});
  $("#report").removeClass("hidden");
  $("#navtop").removeClass("hidden");

  next ="";
  call_rep();
}
function goto_step2_animated(){
  if ( $('#btn_step2').hasClass('btn_step2inactive') !== true )
    return false;

  next = 'report';

  anualCost();

  var id1 = '#step1';
  var id2 = '#step2';

  $('#step2').css({'width':'0px', 'margin-left' : '474px'});

  $('#step1').animate({'width': '0px','marginLeft' : '-=474px'}, 1000, 'easeInOutExpo', function() {
    $('#calculator').css({'background-image' : 'url(images/bg_step2.jpg)', 'height':'510px'} );

    $('#step1').addClass('hidden');
    $('#step1').css({'width':'474px', 'display':'', 'margin-left':'0px'});

    $('#btn_step1').removeClass('btn_step1active btn_step1dissabled');
    $('#btn_step1').addClass('btn_step1inactive');
    $('#btn_step2').removeClass('btn_step2dissabled btn_step2inactive');
    $('#btn_step2').addClass('btn_step2active');

    $('#step2').removeClass('hidden');
    //$('#report').addClass('hidden');

    //$('#navtop').addClass('hidden');
    //$('.button2').addClass('hidden');
    $('#btn_next').removeClass('hidden');

  });

  //setTimeout( function() {
    $('#step2').removeClass('hidden');
      $('#step2').animate({'width': '476px', 'marginLeft':'-=474px' }, 1000, 'easeInOutExpo', function () {
        $('#step2').css({'width':'474px', 'display':''});
     });
  //}, 50 );
}
function goto_report_animated(){
  if ( $('#btn_report').hasClass('btn_reportinactive') !== true )
    return false;

  if ( parent.document.getElementById('calculatorFrame') )
    parent.document.getElementById('calculatorFrame').style.height='964px';
  $('#calculator').css({'height':'944px', 'background-image' : 'url(images/bg_report.jpg)'});
  next ='';
  call_rep();

  $('#report').css({'width':'0px', 'margin-left':'474px'});

  $('#step2').animate( {'width': '0px', 'marginLeft':'-=474px'}, 1000, 'easeInOutExpo', function() {
    $('#step2').addClass('hidden');
    $('#step2').css({'width':'474px', 'display':'', 'margin-left':'0px'});

    $('#btn_step1').removeClass('btn_step1active btn_step1dissabled');
    $('#btn_step2').removeClass('btn_step2active btn_step2dissabled');

    $('#btn_step1').addClass('btn_step1inactive');
    $('#btn_step2').addClass('btn_step2inactive');

    $('#btn_report').removeClass('btn_reportinactive btn_reportdissabled');
    $('#btn_report').addClass('btn_reportactive');

    $('.button1').removeClass('active');
    $('#btn_next').addClass('hidden');

    $('.button2:not(:#btn_next)').removeClass('hidden');


    $('#navtop').removeClass('hidden');

  });
  //setTimeout( function() {
    $("#report").css({'display':'inline'});
    $('#report').removeClass('hidden');
    $('#report').animate({'width': '474px', 'marginLeft':'-=474px' }, 1000, 'easeInOutExpo',function () {
        $('#report').css({'width':'474px', 'display':''});
    });
  //}, 50 );
}

$("#btn_step1").click(function () { goto_step1() } );
$("#btn_step2").click(function() { goto_step2() } );
$("#btn_report").click(function() { goto_report() });
$("#btn_next").click(function () {
  if (next) eval('goto_'+next+'_animated()');
})
$("#btn_download").click( function() {
  if ( $("#btn_download").hasClass('dissabled') ) {
    return false;
  } else {
    $("#btn_download").removeClass('btn_downloadactive');
    $("#btn_download").addClass('btn_downloaddissabled');
    dwin = window.open( 'images/loading_blue.gif','download_report','width=200,height=100' );
    $.post("pdf.php", 'html='+getReport(true),
      function(data){
        dwin.focus();
        dwin.resizeTo(600, 800);
        dwin.location = data;
        $("#btn_download").removeClass('btn_downloaddissabled');
        $("#btn_download").addClass('btn_downloadactive');
      }, "html");

      setTimeout( function() {
        $("#btn_download").removeClass('btn_downloaddissabled');
        $("#btn_download").addClass('btn_downloadactive');
      }, 3000 );
  }
})
$("#btn_print").click( function() {
  var pwin=window.open('','print_content','width=600,height=600,scrollbars=1');
  pwin.document.open();
  pwin.document.write('<html><head><link rel="stylesheet" href="calculator.css" type="text/css" /></head><body onload="window.print()">'+getReport()+'</body></html>' );
  pwin.document.close();
  //setTimeout(function(){pwin.close();},1000);
})
$("#btn_email").click( function() {
 if ( $("#btn_email").hasClass('btn_emaildissabled') ) {
   return false;
 } else {
    $("#btn_email").removeClass('btn_emailactive');
    $("#btn_email").addClass('btn_emaildissabled');
    dwin = window.open( 'images/loading_blue.gif','email_report','width=400,height=300' );
    $.post("pdf.php", "html="+getReport(true),
      function(data){
        dwin.focus();
        dwin.location = 'email.php?attachment='+data;
        $("#btn_email").removeClass('btn_emaildissabled');
        $("#btn_email").addClass('btn_emailactive');
      },"html");

      setTimeout( function() {
        $("#btn_email").removeClass('btn_emaildissabled');
        $("#btn_email").addClass('btn_emailactive');
      }, 3000 );
 }
})
$("#btn_bookmark").click( function() {
  if(document.all)
    window.external.AddFavorite(location.href,document.title);
  else if (window.sidebar)
    window.sidebar.addPanel(document.title,top.location.href,'');
})

function getReport(strip) {
  var str = $("#report").html();
  // get the input values
  $("#report :input").each( function() {
    var pattern = new RegExp( '\<input(.+)id=\"' + $(this).attr('id') + '\"(.+)\>' );
    var val = strip ? $(this).val().replace('$', 'xxx') : $(this).val().replace('$', '&#36;');
  	var replacement = '<input class="input2Step3" type="text" value="'+val+'" />';
    str = str.replace( pattern, replacement );
  })
  // remove help icons
  var pattern2 = new RegExp( '\<img(.+)class="help"(.+)\>' );
  while ( pattern2.test( str ) ) {
    str = str.replace( pattern2, '' );
  }
  //ie
  var pattern3 = new RegExp( '\<IMG(.+)class=help(.+)\>' );
  while ( pattern3.test( str ) ) {
    str = str.replace( pattern3, '' );
  }

  // add header image
  return '<div style="overflow: hidden; height: 131px; width: 600px; background-image: url('+url+'/images/Harmonics_Header.jpg);"></div><div style="margin: 15px 10px 10px 45px;">'+str+'</div>';
}

for (var i=1;i<10;i++) {
  // init sliders
  $('#slider'+i+'_green').slider({step:5});
  $('#slider'+i+'_blue').slider({step:5});
  //$('#slider'+i+'_green,#slider'+i+'_blue').removeClass('ui-corner-all')

  $('#slider'+i+'_green').slider('disable');
  $('#slider'+i+'_blue').slider('disable');

  // slider handle
  $('#slider'+i+'_green a').css({'background-image':'url(images/green_arrow_disabled.gif)'});
  $('#slider'+i+'_blue a').css({'background-image':'url(images/blue_arrow_disabled.gif)'});

  $('#slider'+i+'_green a').append('<div id="slider'+i+'_green_percent">0%</div>');
  $('#slider'+i+'_blue a').html('<div id="slider'+i+'_blue_percent">0%</div>');

  // slider related events
  $('#slider'+i+'_green').bind('slide', function(event, ui) {
    var id = $(this).attr('id');
    //var per_green = $(this).slider('option', 'value');
    var per_green = ui.value;
    $('#'+id+'_percent').html( per_green+"%" );
    var curpos = $(this).width() * per_green / 100;
    $('#'+id+'_percent').width( $(this).width() - curpos /*- 10*/+13 );
  })
  $('#slider'+i+'_green').bind('slidechange', function(event, ui)  {
    var id = $(this).attr('id');
    var i  = parseNumber( id.charAt(6) );

    var per_green = $(this).slider('option', 'value');

    var curpos = $(this).width() * per_green / 100;
    $('#'+id+'_percent').width( $(this).width() - curpos /*- 10*/+1);

    var kva = $('#slider'+i+'_kva').html();
    var q = $('#slider'+i+'_quantity').val();

    var tot = roundDec( kva * q * per_green / 100 );
    $('#'+id+'_percent').html( per_green+'%' );

    $('#res'+i+'_green').val( tot );
    if (tot == 0){
      $('#res'+i+'_green').removeClass('green');
      $('#res'+i+'_green').addClass('grey');
    } else if ( tot > 0 ) {
      $('#res'+i+'_green').removeClass('grey');
      $('#res'+i+'_green').addClass('green');
    }

    call_sum('green')

    // redo blue
    var per_blue = $('#slider'+i+'_blue').slider('option', 'value');
    tot = roundDec( $('#res'+i+'_green').val() * per_blue / 100 );
    $('#slider'+i+'blue_percent').html( per_blue+'%' );
    $('#res'+i+'_blue').val( tot );

    if (tot == 0){
      $('#res'+i+'_blue').removeClass('blue');
      $('#res'+i+'_blue').addClass('grey');
    } else if ( tot > 0 ) {
      $('#res'+i+'_blue').removeClass('grey');
      $('#res'+i+'_blue').addClass('blue');
    }
    call_sum('blue');
  })

  $('#slider'+i+'_blue').bind('slide', function(event, ui) {
    var id = $(this).attr('id');
    //var per_blue = $(this).slider('option', 'value');
    var per_blue = ui.value;

    $('#'+id+'_percent').html( per_blue+"%" );
    var curpos = $(this).width() * per_blue / 100;
    $('#'+id+'_percent').width( $(this).width() - curpos /*- 10*/+13 );
  })
  $('#slider'+i+'_blue').bind('slidechange', function(event, ui) {
    var id = $(this).attr('id');
    var i  = parseNumber( id.charAt(6) );

    var per_blue = $(this).slider('option', 'value');

    var curpos = $(this).width() * per_blue / 100;
    $('#'+id+'_percent').width( $(this).width() - curpos /*- 10*/+1);

    var kva = $('#slider'+i+'_kva').html();
    var q = $('#slider'+i+'_quantity').val();

    //var tot = kva * q * per_blue / 100;
    var tot = roundDec( $('#res'+i+'_green').val() * per_blue / 100 );
    $('#'+id+'_percent').html( per_blue+'%' );
    $('#res'+i+'_blue').val( tot );

    if (tot == 0){
      $('#res'+i+'_blue').removeClass('blue');
      $('#res'+i+'_blue').addClass('grey');
    } else if ( tot > 0 ) {
      $('#res'+i+'_blue').removeClass('grey');
      $('#res'+i+'_blue').addClass('blue');
    }
    call_sum('blue');
  })

  // slider handle tooltip
  $('#slider'+i+'_green a').tooltip({
    track: true,
    delay: 0,
    showURL: false,
    extraClass: 'simple',
    bodyHandler: function() {
  		var id = $(this).parent().attr('id')
	    if ( $('#'+id).hasClass('ui-slider-disabled') === false ) {
  			return $("<img />").attr( 'src', 'images/tooltip_al.gif' );
	  	} else return null;
    },
    fade: 250,
    top: -25,
    left: 0
  })
  $('#slider'+i+'_blue a').tooltip({
    track: true,
    delay: 0,
    showURL: false,
    extraClass: 'simple',
    bodyHandler: function() {
  		var id = $(this).parent().attr('id');
	    if ( $('#'+id).hasClass('ui-slider-disabled') === false ) {
  			return $("<img />").attr( 'src', 'images/tooltip_nl.gif' );
	  	} else return null;
    },
    fade: 250,
    left: 10
  })

  // handle envets on quantity input
  $('#slider'+i+'_quantity').keyup( function () {
    var id = $(this).attr('id');
    var i  = id.charAt(6);
    trigger_quantity(i);
  })
}
/*
// help icons tooltip
$('.help').tooltip({
  track: false,
  delay: 0,
  showURL: false,
  showBody: " - ",
  extraClass: 'help',
  fade: 250
})
*/

function trigger_quantity(i) {
  if ( $('#slider'+i+'_quantity').val() > 0 ) {
    $('#slider'+i+'_green').slider('value',50);
    $('#slider'+i+'_blue').slider('value',50);

    $('#btn_step2').removeClass( 'btn_step2active btn_step2dissabled' );
    $('#btn_step2').addClass( 'btn_step2inactive' );

    $('#slider'+i+'_blue').slider( 'enable' );
    $('#slider'+i+'_green').slider( 'enable' );

    $('#slider'+i+'_blue a').css({'background-image':'url(images/blue_arrow.gif)'});
    $('#slider'+i+'_green a').css({'background-image':'url(images/green_arrow.gif)'});

    $('#row'+i+'slider').removeClass('ruller1Inactive');
    $('#row'+i+'slider').addClass('ruller1Active');

  } else {
    $('#slider'+i+'_green').slider('value',0);
    $('#slider'+i+'_blue').slider('value',0);
    $('#slider'+i+'_green').slider('disable');
    $('#slider'+i+'_blue').slider('disable');
    $('#slider'+i+'_green a').css({'background-image':'url(images/green_arrow_disabled.gif)'});
    $('#slider'+i+'_blue a').css({'background-image':'url(images/blue_arrow_disabled.gif)'});
    $('#row'+i+'slider').removeClass('ruller1Active');
    $('#row'+i+'slider').addClass('ruller1Inactive');
    // check if we dissable step2 button
    var dis = true;
    for (var j=1;j<10;j++) {
      if ( j != i ) {
        if ( $('#slider'+j+'_quantity').val() > 0 ) {
          dis = false;
        }
      }
    }
    if ( dis ) {
      $('#btn_step2').removeClass( 'btn_step2inactive btn_step2active' );
      $('#btn_report').removeClass( 'btn_reportinactive btn_reportactive' );

      $('#btn_step2').addClass( 'btn_step2dissabled' );
      $('#btn_report').addClass( 'btn_reportdissabled' );

    }
  }
}

function call_sum(c){
  var sum = 0;
  for (var i=1;i<10;i++) {
    var val = parseNumber( $('#res'+i+'_'+c).val() );
    if (val > 0) {
      sum = sum + val;
    }
  }
  $('#res1_'+c+'_tot').val( sum );
}

$('#billingRate').blur( function () {
  anualCost();
})
$('#annualOp').blur( function () {
  anualCost();
})

function anualCost() {
  $('#anualCostNl').html( round2( parseNumber($('#res1_blue_tot').val() ) *  parseNumber( $('#annualOp').val() ) * parseNumber( $('#billingRate').val() ) ) );
  var slider_val = $('#sliderStep2').slider('value') / 100;
  $('#anualSavings').html( round2( parseNumber( $('#anualCostNl').html() ) * slider_val ) );
  $('#anualCost').html( round2( parseNumber( $('#anualCostNl').html() ) -  parseNumber( $('#anualSavings').html() ) ) );
  $('#bonusCO2').html( roundSimple( parseNumber( $('#anualSavings').html() ) * 1.35 * parseNumber( $('#res1_blue_tot').val() ) ) );
  // only if we have values filled in allow moving to report
  if ( parseNumber( $('#annualOp').val() ) > 0 && parseNumber( $('#billingRate').val() ) > 0 ) {
    $("#btn_report").removeClass("btn_reportactive btn_reportdissabled");
    $("#btn_report").addClass("btn_reportinactive");
  } else {
    $("#btn_report").removeClass("btn_reportactive btn_reportinactive");
    $("#btn_report").addClass("btn_reportdissabled");
  }
}

$('#sliderStep2').slider({
  min:0,
  max: 10,
  'value': 6,
  animate: true
});
$('#sliderStep2 a').html('<div id="sliderStep2_percent">6%</div>');
$('#sliderStep2').bind('slide', function(event, ui)  {
 // var per_green = $(this).slider('option', 'value')
  var per_green = ui.value;
  $('#sliderStep2_percent').html( per_green+"%" );

  var curpos = $(this).width() * per_green / 10;
  var w = $('#sliderStep2').width() - curpos + 13;
  $('#sliderStep2_percent').width( w );
})
$('#sliderStep2').bind('slidechange', function(event, ui) {
  anualCost();
  var per_green = $(this).slider('option', 'value');
  $('#sliderStep2_percent').html( per_green+"%" );
  var curpos = $(this).width() * per_green / 10;
  var w = $('#sliderStep2').width() - curpos;
  $('#sliderStep2_percent').width( w );
})

// report calculations
function call_rep(){
  $('#A').val( roundSimple( parseNumber( $('#res1_blue_tot').val() ) ) );
  $('#B').val( roundSimple( $('#sliderStep2').slider('option', 'value' ) / 100 ) );
  $('#C').val( roundSimple( parseNumber( $('#A').val() ) *  parseNumber( $('#B').val() ) ) );

  $('#E').val( roundSimple( parseNumber( $('#C').val() ) * parseNumber( $('#D').val() ) ) );

  $('#G').val( roundSimple( parseNumber( $('#E').val() ) / parseNumber( $('#F').val() ) ) );

  $('#I').val( roundSimple( parseNumber( $('#G').val() ) * parseNumber( $('#H').val() ) ) );
  $('#J').val( roundSimple( parseNumber( $('#annualOp').val() ) ) );
  $('#K').val( roundSimple( parseNumber( $('#I').val() ) * parseNumber( $('#J').val() ) ) );
  $('#L').val( roundSimple( parseNumber( $('#billingRate').val() ) ) );
  $('#M').val( '$'+round2( parseNumber( $('#K').val() ) * parseNumber( $('#L').val() ) ) );
  $('#N').val( roundSimple( parseNumber( $('#anualSavings').html() ) ) );
  $('#O').val( roundSimple( parseNumber( $('#M').val() ) ) );
  $('#P').val( '$'+round2( parseNumber( $('#N').val() ) + parseNumber( $('#O').val() ) ) );
  $('#Q').val( '$'+round2( parseNumber( $('#P').val() ) * 5 ) );
  $('#R').val( '$'+round2( parseNumber( $('#P').val() ) * 7 ) );
  $('#S').val( '$'+round2( parseNumber( $('#P').val() ) * 10 ) );
}


function roundSimple(n) {
  return addCommasSimple( String( roundDec(n) ) );
}
function round2(n) {
  return addCommas( String( roundDec(n) ) );
}
function roundDec(n) {
  return Math.round(n*100)/100;
}
function addCommasSimple(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	//x2 = x.length > 1 ? '.' + x[1] : '';
  if ( x.length > 1 && x[1].length == 1 ) {
    x2 = '.' + x[1] + '0';
  } else if ( x.length > 1 && x[1].length == 2 ) {
    x2 = '.' + x[1];
  } else {
    x2 = '.00';
  }
	var rgx = /(\d+)(\d{3})/
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
function parseNumber(n) {
  n = n.replace( '$', '' );
  n = n.replace( ' ', '' );
  n = n.replace( /,/g, '' );
  n = parseFloat(n);
  return isNaN(n) ? 0 : n;
}

// IE - hack to remove outline border for anchor
for(var i=0; i<document.links.length; i++) {
  document.links[i].onfocus = function() {
    this.blur();
  }
}

// make it visible only when everything else is loaded
$(document).ready( function() {
  $("#calculator").removeClass("hidden");
});
