jQuery(document).ready(function($) {
   //$("#calcButton").button();
   $("#calcAccordion").accordion({collapsible: true, active: false, autoHeight: false });

   $('#calcButton').click(function() {
      $.post('/wp-content/plugins/calcs/ajax/calc.php', $('#calcForm').serialize(), function(data)
      {
         if(data && data.substr(0,6) == '<br />')
         {
            $('#answerDiv').hide();
            $('#errorDiv').fadeIn('slow');
            $('#calcResults').html(data);
         }
         else
         {
            $('#errorDiv').hide();
            $('#answerDiv').fadeIn('slow');
            $('#calcResults').html(data);

            // badge
            $('#badgetResults').html(data);
            $('#badgeTextArea').text($.trim($('#badgeDiv').html()));
         }
      });
      clicky.log('#calc/' + $('#calcTitle').text().replace(/ /gi, "-").toLowerCase(), $('#calcTitle').text());
   });

   $('#widget-accordion').click(function() {
      if($(this).parent().next().is(":not(:visible)")) {
         clicky.goal(736);
      }
   });
   
   $('.calc-affiliate-banner').click(function() {
      clicky.goal(738);
   });
   

   $('#calcJsButton').click(function() {
      var answer;
      eval('answer = calcProFunctions.' + $(this).attr('data-callback') + "()");

      $('#errorDiv').hide();
      $('#answerDiv').fadeIn('slow');
      $('#calcResults').html(answer);

      // badge
      $('#badgetResults').html(answer);
      $('#badgeTextArea').text($.trim($('#badgeDiv').html()));
   });

   $('#link-colors').click(function() {
      $('#bgEndColorSelector div').css('backgroundColor', $('#bgColorSelector div').css('backgroundColor'));
      updateWidget();
      return false;
   });

    function updateWidget(widthOnly) {
      var color = rgb_to_html($('#bgColorSelector div').css('backgroundColor'));
      var endColor = rgb_to_html($('#bgEndColorSelector div').css('backgroundColor'));
      var textColor = rgb_to_html($('#textColorSelector div').css('backgroundColor'));

      if(widthOnly) {
        $('#widgetForm').css('width', $("#sliderWidth").text() + " !important;");
      } else {
        $('#widgetForm').attr('style', "width: " + $("#sliderWidth").text() + " !important; background-color: " + color + "!important; background-image: -moz-linear-gradient(top, " + color + ", " + endColor + ") !important; background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, " + color + "),color-stop(1, " + endColor + ")) !important; filter:  progid:DXImageTransform.Microsoft.gradient(startColorStr='" + color + "', EndColorStr='" + endColor + "');")
        $('#widgetForm table, #widgetForm a').attr('style', 'color: ' + textColor + " !important");
        $('#widgetSubmit').css('color', color + " !important");
        $('#widgetForm td, #widgetForm th').css('font-size', $('[name="widget-font"] option:selected').text() + " !important");
      }

      $('#widgetTextArea').text('\<script src="' + $('#widgetForm').prev().attr('src') + '"\>\</script\>\<form class="widgetForm" method="post" action="/" style="' + $('#widgetForm').attr('style') + '">' + $('#widgetForm').html() + '</form>');
    }

   $('#bgColorSelector').ColorPicker({
           color: '#3399CC',
           onShow: function (colpkr) {
                   $(colpkr).fadeIn(500);
                   return false;
           },
           onHide: function (colpkr) {
                   $(colpkr).fadeOut(500);
                   updateWidget();
                   return false;
           },
           onChange: function (hsb, hex, rgb) {
               $('#bgColorSelector div').css('backgroundColor', '#' + hex);
           }
   });

   $('#bgEndColorSelector').ColorPicker({
           color: '#1C5992',
           onShow: function (colpkr) {
                   $(colpkr).fadeIn(500);
                   return false;
           },
           onHide: function (colpkr) {
                   $(colpkr).fadeOut(500);
                   updateWidget();
                   return false;
           },
           onChange: function (hsb, hex, rgb) {
               $('#bgEndColorSelector div').css('backgroundColor', '#' + hex);
           }
   });

   $('#textColorSelector').ColorPicker({
           color: '#ffffff',
           onShow: function (colpkr) {
                   $(colpkr).fadeIn(500);
                   return false;
           },
           onHide: function (colpkr) {
                   $(colpkr).fadeOut(500);
                   updateWidget();
                   return false;
           },
           onChange: function (hsb, hex, rgb) {
                   $('#textColorSelector div').css('backgroundColor', '#' + hex);
           }
   });

   $('[name="widget-font"]').change(function() {
      updateWidget();
   });

   $("#slider").slider({min:200, max:1000, step:20, value: 200, slide: function(event, ui) {
         $('#sliderWidth').text(ui.value + "px");
         updateWidget();
   }});

   $('#widgetTextArea').text($.trim($('#widgetDiv').html()));
   $('#badgeTextArea').text($.trim($('#badgeDiv').html()));
   updateWidget();

   function rgb_to_html(rgbStr)
   {
       rgbStr = rgbStr.substring(4, rgbStr.length-1);
       rgb = rgbStr.split(',');
       r = rgb[0]; g = rgb[1]; b = rgb[2];
       r = parseInt(r); g = parseInt(g); b = parseInt(b);

       r = dechex(r<0?0:(r>255?255:r));
       g = dechex(g<0?0:(g>255?255:g));
       b = dechex(b<0?0:(b>255?255:b));

       color = (r.length < 2 ? '0' : '') + r;
       color += (g.length < 2 ? '0' : '') + g;
       color += (b.length < 2 ? '0' : '') + b;

       return '#' + color;
   }

   function dechex (d) {
      return d.toString(16);
   }
});

