$(function() {

    function myUpperCase(harf) {
        var retVal = ""
        var pressedKey = harf.charCodeAt(0);
        if (pressedKey == 105)
            retVal = '\u0130';
        else
            retVal = harf.toUpperCase();
        return retVal;
    }

    function SetLetteri() {
        if (capslock) {
            $('.letteri').html('\u0130');
        }
        else {
            $('.letteri').html('i');
        }
    }

    var $write = $('#txtArama'),
		shift = false,
		capslock = false;

    $('#keyboard li').click(function() {
        var $this = $(this),
			character = $this.html(); // If it's a lowercase letter, nothing happens to this variable

        // Shift keys
        if ($this.hasClass('left-shift') || $this.hasClass('right-shift')) {
            $('.letter').toggleClass('uppercase');
            $('.symbol span').toggle();

            shift = (shift === true) ? false : true;
            capslock = !capslock;

            SetLetteri();

            return false;
        }

        // Caps lock
        if ($this.hasClass('capslock')) {
            $('.letter').toggleClass('uppercase');

            capslock = !capslock;

            SetLetteri();

            return false;
        }

        // Delete
        if ($this.hasClass('delete')) {
            var html = $write.val();

            $write.val(html.substr(0, html.length - 1));
            return false;
        }

        // Special characters
        if ($this.hasClass('symbol')) character = $('span:visible', $this).html();
        if ($this.hasClass('space')) character = ' ';
        if ($this.hasClass('tab')) character = "\t";
        if ($this.hasClass('return')) character = "\n";

        // Uppercase letter

        if ($this.hasClass('uppercase')) character = myUpperCase(character);

        // Remove shift once a key is clicked.
        if (shift === true) {
            $('.symbol span').toggle();
            if (capslock === false) $('.letter').toggleClass('uppercase');

            shift = false;
        }

        // Add the character
        $write.val($write.val() + character);
    });
});
