


var lettersArray = new Array();
var lettersArrayRandom = new Array();
var lettersArrayTemp = new Array();

function getRandomNumber(min, max)
{
	var mini=min; 
	var maxi=max;
	randomNumber=mini+(Math.floor(Math.random()*(maxi-mini)));
	return randomNumber;
}

function closeKeyboard(keyboard,input)
{
	$(keyboard).fadeOut('fast',function()
	{
		$(keyboard)
			.removeClass('active')
			//.unbind('outerClick');
	});
	
	if($(input).val()=='')
	{
		$(input).val('ŞİFRE');
	}
}

function keyboardBindings(keyboard,input)
{
	$(keyboard)	
		.addClass('active')
		/*
		.bind('outerClick',function(event,clickEvent)
		{
			if(($(clickEvent.target).attr('id')!=undefined) && $(clickEvent.target).attr('id')==$(input).attr('id'))
			{
				return false;
			}
	
			if($(keyboard).hasClass('active'))
			{
				closeKeyboard(keyboard,input);
			}
		});
		*/
}

function virtualKeyboard(input,keyboard)
{
	
	var inputID = input,
		input = '#'+input,
		keyboardID = keyboard;
		keyboard = '#'+keyboard;
	
	if($(input).length && $(keyboard).length)
	{
		var $write = $(input),
			shift = false,
			randomize = false,
			isKeyboard = true,
			capslock = false;
		
		$(keyboard).draggable();
		
		$('input#virtualKeyboardActive').click(function(e)
		{
			if(this.checked)
			{
				isKeyboard = true;	
			}
			else
			{
				$(input).focus();
				closeKeyboard(keyboard,input);
				isKeyboard = false;
			}
		});
		
		$('input#randomKeys').click(function(e)
		{
			if(this.checked)
			{
				randomize = true;
			}
			else
			{
				randomize = false;
				//document.getElementById(keyboardID).innerHtml = keyboardContainerTemplate;
				//virtualKeyboard(input,keyboard);
			}
		});
		
		$('a.closeKeyboard').click(function(){closeKeyboard(keyboard,input)});
		
		if(isKeyboard)
		{
			$(input).keypress(function(e)
			{
				if(isKeyboard && e.which != 8)
				{
					return false;
				}
			});
			
			document.getElementById(inputID).onpaste=function()
			{
				if(isKeyboard)
				{
					return false;
				}
			}
			
			$(input).focus(function()
			{
				if($(input).val()=="ŞİFRE")
				{
					$(input).val('');
				}
				
				if(!$(keyboard).hasClass('active'))
				{
					$(keyboard)
						.fadeIn('fast',function()
						{
							keyboardBindings(keyboard,input);
						});
				}
			});
		}
		
		
		function randomizeKeys()
		{	
			if(!randomize)
			{
				return false;
			}
			
			lettersArray = $(keyboard).find('ul li.letter,ul li.symbol');
			lettersArrayTemp = $(keyboard).find('ul li.letter,ul li.symbol');
			lettersArrayRandom = new Array();
			
			var i = 0;
			var randomOrder = 0;
			
			while(lettersArrayTemp.length > 0 )
			{
				randomOrder = getRandomNumber(0, lettersArrayTemp.length);
				lettersArrayRandom.push(lettersArrayTemp.splice(randomOrder,1));
			}
			
			for(i=0;i<lettersArray.length;i++)
			{
				lettersArray[i] = lettersArrayRandom[i][0];
			}
			
			tmpHtmlArray=new Array();
			i=0;
			$('ul#keyboard li.letter,ul#keyboard li.symbol').each(function()
			{
				inhtml = $(lettersArray[i]).html();
				tmpHtmlArray.push(inhtml);
				i++;
			});
			
			tmpClassArray=new Array();
			i=0;
			$('ul#keyboard li.letter,ul#keyboard li.symbol').each(function()
			{
				tmpClass = $(lettersArray[i]).attr('class');
				tmpClassArray.push(tmpClass);
				i++;
			});
			
			i=0;
			$('ul#keyboard li.letter,ul#keyboard li.symbol').each(function()
			{		
				$(this)
					.html(tmpHtmlArray[i])
					.attr('class',tmpClassArray[i]);
				i++;
			});
			
			$(keyboard)
				.removeClass('active')
				//.unbind('outerClick');
			keyboardBindings(keyboard,input);
		}
		//randomizeKeys() end
		
		function initKeypressActions()
		{
			$(keyboard+' li').click(function()
			{
				/*
				if(!isKeyboard)
				{
					return false;
				}
				*/
				
				if($(input).val()=="ŞİFRE")
				{
					$(input).val('');
				}
				
				if($(this).hasClass('return'))
				{
					$(input).parent().parent().submit();
				}
				
				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 = false;
					return false;
				}
				
				// Caps lock
				if ($this.hasClass('capslock'))
				{
					$('.letter').toggleClass('uppercase');
					
					if($this.html()=="Küçük Harf")
					{
						$this.html("Büyük Harf");	
					}
					else
					{
						$this.html("Küçük Harf");
					}
					
					capslock = true;
					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 = "	";
				
				// Uppercase letter
				if ($this.hasClass('uppercase')) character = character.toUpperCase();
				
				// 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);
				
				if($(this).hasClass('symbol') || $(this).hasClass('letter'))
				{
					if($(this).hasClass('hover_fix'))
					{
						$(this).removeClass('hover_fix');
					}
					
					if(randomize)
					{
						randomizeKeys();
					}
					
				}
			});
			
			$(keyboard+' li').hover
			(
				function()
				{
					$(this).addClass('hover_fix');
				},
				function()
				{
					$(this).removeClass('hover_fix');
				}
			);
		}
		//initKeypressActions() end
		
		initKeypressActions();
	}
}

$(document).ready(function()
{
	virtualKeyboard('user_pass','keyboardContainer');
});


var keyboardContainerTemplate = '';
keyboardContainerTemplate +=	'<ul id="keyboard" class="clearfix">';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">`</span><span class="on">~</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">1</span><span class="on">!</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">2</span><span class="on">@</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">3</span><span class="on">#</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">4</span><span class="on">$</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">5</span><span class="on">%</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">6</span><span class="on">^</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">7</span><span class="on">&amp;</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">8</span><span class="on">*</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">9</span><span class="on">(</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">0</span><span class="on">)</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">-</span><span class="on">_</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">[</span><span class="on">{</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">]</span><span class="on">}</span></li>';
keyboardContainerTemplate +=	'                    <li class="delete lastitem">Sil</li>';
keyboardContainerTemplate +=	'                    <li class="tab">Tab</li>';
keyboardContainerTemplate +=	'                    <li class="letter">q</li>';
keyboardContainerTemplate +=	'                    <li class="letter">w</li>';
keyboardContainerTemplate +=	'                    <li class="letter">e</li>';
keyboardContainerTemplate +=	'                    <li class="letter">r</li>';
keyboardContainerTemplate +=	'                    <li class="letter">t</li>';
keyboardContainerTemplate +=	'                    <li class="letter">y</li>';
keyboardContainerTemplate +=	'                    <li class="letter">u</li>';
keyboardContainerTemplate +=	'                    <li class="letter">ı</li>';
keyboardContainerTemplate +=	'                    <li class="letter">o</li>';
keyboardContainerTemplate +=	'                    <li class="letter">p</li>';
keyboardContainerTemplate +=	'                    <li class="letter">ğ</li>';
keyboardContainerTemplate +=	'                    <li class="letter">ü</li>';
keyboardContainerTemplate +=	'                    <li class="symbol lastitem"><span class="off">\</span><span class="on">|</span></li>';
keyboardContainerTemplate +=	'                    <li class="capslock">Büyük Harf</li>';
keyboardContainerTemplate +=	'                    <li class="letter">a</li>';
keyboardContainerTemplate +=	'                    <li class="letter">s</li>';
keyboardContainerTemplate +=	'                    <li class="letter">d</li>';
keyboardContainerTemplate +=	'                    <li class="letter">f</li>';
keyboardContainerTemplate +=	'                    <li class="letter">g</li>';
keyboardContainerTemplate +=	'                    <li class="letter">h</li>';
keyboardContainerTemplate +=	'                    <li class="letter">j</li>';
keyboardContainerTemplate +=	'                    <li class="letter">k</li>';
keyboardContainerTemplate +=	'                    <li class="letter">l</li>';
keyboardContainerTemplate +=	'                    <li class="letter">ş</li>';
keyboardContainerTemplate +=	'                    <li class="letter">i</li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">'+"'"+'</span><span class="on">&quot;</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">/</span><span class="on">?</span></li>';
keyboardContainerTemplate +=	'                    <li class="left-shift">Shift</li>';
keyboardContainerTemplate +=	'                    <li class="letter">z</li>';
keyboardContainerTemplate +=	'                    <li class="letter">x</li>';
keyboardContainerTemplate +=	'                    <li class="letter">c</li>';
keyboardContainerTemplate +=	'                    <li class="letter">v</li>';
keyboardContainerTemplate +=	'                    <li class="letter">b</li>';
keyboardContainerTemplate +=	'                    <li class="letter">n</li>';
keyboardContainerTemplate +=	'                    <li class="letter">m</li>';
keyboardContainerTemplate +=	'                    <li class="letter">ö</li>';
keyboardContainerTemplate +=	'                    <li class="letter">ç</li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">;</span><span class="on">:</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">,</span><span class="on">&lt;</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol"><span class="off">.</span><span class="on">&gt;</span></li>';
keyboardContainerTemplate +=	'                    <li class="symbol lastitem"><span class="off">=</span><span class="on">+</span></li>';
keyboardContainerTemplate +=	'                    <li class="space"><span class="off">Boşluk</span><span class="on">&nbsp;</span></li>';
keyboardContainerTemplate +=	'                    <li class="return lastitem">Giriş</li>';
keyboardContainerTemplate +=	'                </ul>';
keyboardContainerTemplate +=	'                <div class="virtualKeyboardPanel clearfix">';
keyboardContainerTemplate +=	'				<p>Sanal klavyeyle yaz</p><input type="checkbox" id="virtualKeyboardActive" checked="checked" />';
keyboardContainerTemplate +=	'                <p>Harfleri karıştır</p><input type="checkbox" id="randomKeys" />';
keyboardContainerTemplate +=	'                <a href="javascript:void(0);" class="closeKeyboard">Kapat [x]</a>';
keyboardContainerTemplate +=	'            </div>';