  $(document).ready(function() {
    $('#cData').hide();
    $('#warning').hide();
    var f = $.farbtastic('#picker');
    var p = $('#picker').css('opacity', 0.25);
    var selected;
    $('.colorwell')
    .each(function () { f.linkTo(this); $(this).css('opacity', 0.75); })
    .focus(function() {
      if (selected) {
        $(selected).css('opacity', 0.75).removeClass('colorwell-selected');
      }
      f.linkTo(function(color) {
        var colorcode = f.unpack(color);
        var test123 = f.RGBToHSL(colorcode);
        var textcolor = test123[2] > 0.5 ? '#000' : '#fff';
        $('.colorwell-selected').val(color);
        $('.colorwell-selected').css({'background-color':color}).css({'color' : textcolor});
        var selected_block = $('.colorwell-selected').attr('id');
        if (selected_block == 'color1')
        {
          $('#previewbox').css('color', color);
        }
        if (selected_block == 'color2')
        {
          $('#previewbox').css('backgroundColor', color);
        }
      });
      p.css('opacity', 1);
      $(selected = this).css('opacity', 1).addClass('colorwell-selected');
    });
    $('#color1').focus();
    if ($('#source').val() != '') {
      $('#source').val($('#source').val());
      $('#previewbox').text($('#source').val());
    }
    if ($('#color1').val() != '#FFFFFF') {
    $('#previewbox').css({'color':$('#color1').val()});
    }
    if ($('#color2').val() != '#000000') {
    $('#previewbox').css({'backgroundColor':$('#color2').val()});
    }
    
    $('input:text').hint();
    
    $('#source').keyup(function() {
      var insert_val = $('#source').val();
      $('#previewbox').text(insert_val);
      $('#source').removeClass('error')
    });
    $('#source').blur(function() {
      var insert_val = $('#source').val();
      if (insert_val != 'Enter Text Here')
      {
        $('#previewbox').text(insert_val);
      }
      $('#source').removeClass('error')
    });
    $('#fontsize').change(function() {
      var str = parseFloat($(this).val());
      $('#previewbox').css('fontSize', str + "pt");
    });
    $('#fontfamily').change(function() {
      switch($(this).val()) {
        case 'arial': var str2 = 'Arial, Sans-Serif';
        break;
        case 'times': var str2 = '"Times New Roman", Serif';
        break;
        case 'verdana': var str2 = 'Verdana, Sans-Serif';
        break;
        case 'comic': var str2 = '"Comic Sans MS", cursive';
        break;
        case 'tahoma': var str2 = 'Tahoma, Sans-Serif';
        break;
        case 'georgia': var str2 = 'Georgia, Serif';
        break;
        case 'impact': var str2 = 'Impact, fantasy';
        break;
      }
      $('#fontitalic').change();
      $('#fontbold').change();
      $('#previewbox').css('fontFamily', str2);
    });
    $('#fontbold').change(function() {
      var boldchecked = $('#fontbold').attr('checked') ? 1 : 0;
      var boldDisable = 'false';
      switch ($('#fontfamily').val()) {
        case 'impact': var boldDisable = 'true';
        break;
      }
      if ($('#upload1').val() != "") {
        var boldDisable = 'true';
      }
      if (boldDisable == 'true')
      {
        $('#fontbold').attr('disabled', true);
        $('#fontbold').attr('checked', false);
        $('#previewbox').css('fontWeight', 'normal');
      }
      else
      {
        $('#fontbold').attr('disabled', false);
        switch(boldchecked) {
          case 1: $('#previewbox').css('fontWeight', 'bold');
          $('#previewbox').attr('checked', true);
          break;
          case 0: $('#previewbox').css('fontWeight', 'normal');
          break;
        }
      }
    });
    $('#fontitalic').change(function() {
      var italicchecked = $('#fontitalic').attr('checked') ? 1 : 0;
      var italicDisable = 'false';
      switch ($('#fontfamily').val()) {
        case 'comic': var italicDisable = 'true';
        break;
        case 'impact': var italicDisable = 'true';
        break;
        case 'tahoma': var italicDisable = 'true';
        break;
      }
      if ($('#upload1').val() != "") {
        var italicDisable = 'true';
      }
      if (italicDisable == 'true')
      {
        $('#fontitalic').attr('disabled', true);
        $('#fontitalic').attr('checked', false);
        $('#previewbox').css('fontStyle', 'normal');
      }
      else
      {
        $('#fontitalic').attr('disabled', false);
        switch(italicchecked) {
          case 1: $('#previewbox').css('fontStyle', 'italic');
          $('#fontitalic').attr('checked', true);
          break;
          case 0: $('#previewbox').css('fontStyle', 'normal');
          break;
        }
      }
    });

    $('#fontsize').change();
    $('#fontfamily').change();

    $('#color1').change(function() {
      var str3 = $(this).val();
      $('#previewbox').css('color', str3);
    });
    $('#color2').change(function() {
      var str4 = $(this).val();
      $('#previewbox').css('backgroundColor', str4);
    });

    $('#submit').click(function() {
      var formErrors = false;
      if ($('#source').val() == 'Enter Text Here')
      {
        formErrors = true;
        var sourceError = true
        $('#source').addClass('error');
      }
      if ($('#custom').val != '')
      {
        if ($('#customName').val == '')
        {
          formErrors = true;
          var customNameError = true;
          $('#customName').addClass('error');
          $('#customName').val('Enter official font Name');
        }
      }
      if (formErrors != true)
      {
        var serialized_data = $('#str2img').serialize();
        $.ajax({
          type: "POST",
          url: "controller.php",
          data: serialized_data,
          success: function(html){
            $('#customName').removeClass('error');
            $('#source').removeClass('error');
            $('#output').html(html);
            $('#fontitalic').change();
            $('#fontbold').change();
          }
        });
        return false;
      }
    });
    $('#upload1').upload({
      name: 'file',
      method: 'post',
      Enctype: 'multipart/form-data',
      action: 'upload.php',
      dataType: "data",
      onSubmit: function() {
        $('#progress1').text('Uploading file...');
        return false;
      },
      onComplete: function(html) {
        //data contains the response from the action url
//        $('#hidden_div_id').html(data);
        $('#upload1').val(html);
        $('#progress1').text('File upload success!').css('color', '#8a9eff');
        $('#cData').show();
        if (html == "badfile")
        {
          $('#upload1').val('');
          $('#progress1').text('You may only upload True Type (.ttf) Font files!').css('color', '#ff0000');
          $('#cData').hide();
        }
        if (html == "error")
        {
          $('#upload1').val('');
          $('#progress1').text('File Upload Failed!').css('color', '#ff0000');
          $('#cData').hide();
        }
        $('#fontitalic').change();
        $('#fontbold').change();
    	}
    });
    $('#color1').change();
    $('#color2').change();
    
    if ($.browser.msie) {
      $('.wheel').css({'position':'relative'});
    };
    if (($.browser.msie) && ($.browser.version <= 6))
    {
      $('#logo img').attr('src', 'img/logo.gif');
    }
  });