var keyboardUpperArr = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","Ç","D","E","F","G","Ğ","H","I","İ","J","K","L","M","N","O","Ö","P","Q","R","S","Ş","T","U","Ü","V","W","X","Y","Z");
var keyboardLowerArr = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","ç","d","e","f","g","ğ","h","ı","i","j","k","l","m","n","o","ö","p","q","r","s","ş","t","u","ü","v","w","x","y","z"); var keyboardQUpperArr = new Array("0","1","2","3","4","5","6","7","8","9","Q","W","E","R","T","Y","U","I","O","P","Ğ","Ü","A","S","D","F","G","H","J","K","L","Ş","İ","Z","X","C","V","B","N","M","Ö","Ç"); var keyboardQLowerArr = new Array("0","1","2","3","4","5","6","7","8","9","q","w","e","r","t","y","u","ı","o","p","ğ","ü","a","s","d","f","g","h","j","k","l","ş","i","z","x","c","v","b","n","m","ö","ç"); 
var keyboardArr; 
var overlapArr; 
var TOTAL_ELEMENT; 
var NUMBER_COUNT; 
var letterCount; 
var browserWidth = 793; 
var keyboardWidth = 100; 
var browserHeight = 543; 
var currentInput = null; 
var keypad = null; 
var keypadSize = new Object(); 
var Winx=0; 
var Winy=0; 
var WinWidth=0; 
var WinHeight=0; 
var ScrollLeft; 
var ScrollTop; 
N = (document.all) ? 0 : 1; 
var ob; 
var over = false; 
var keypadVisible = false; 
var writeByMouseOver = false;
var timer;

function populateKeys(){ 
	for (var i = 0; i < TOTAL_ELEMENT; i++){ 
		var b = document.getElementsByName("b" + i)[0]; 
		b.value = keyboardArr[b.getAttribute("idx")];
	}
}

function changeLetters(){ 
	var t = document.getElementsByName("changeOrder")[0]; 
	var b = document.getElementsByName("bUpperOrLower")[0]; 
	var message = document.getElementById("message"); 
	
	
	if(b.value == "Küçük Harf") { 
		if(b.value == "Küçük Harf") { 
			b.value = "Büyük Harf";
//			message.innerHTML = "Sanal Klavye'de büyük harf yazmak için \"Büyük Harf\" düğmesine basın.";
		} else { 
			b.value = "Upper Case"; 
	//		message.innerHTML = "To write in upper case in the Virtual Keyboard, please click \"Upper Case\" button.";
		}
		if(t.value == "Alfabetik" || t.value == "Alfabetic") { 
			keyboardArr = keyboardQLowerArr;
		} else { 
			keyboardArr = keyboardLowerArr;
		}
	} else{ 
		if(b.value == "Büyük Harf") { 
			b.value = "Küçük Harf"; 
//			message.innerHTML = "Sanal Klavye'de küçük harf yazmak için \"Küçük Harf\" düğmesine basın.";
		} else {
			 b.value = "Lower Case";
	//		 message.innerHTML = "To write in lower case in the Virtual Keyboard, please click \"Lower Case\" button.";
		}
		if(t.value == "Alfabetik" || t.value == "Alfabetic") { 
			keyboardArr = keyboardQUpperArr;
		} else { 
			keyboardArr = keyboardUpperArr;
		}
	}
	populateKeys();
}

function changeType(){ 
	var b = document.getElementsByName("changeOrder")[0]; 
	var c = document.getElementsByName("bUpperOrLower")[0]; 
	if(b.value == "Q Klavye" || b.value == 'Q Keyboard') { 
		if(b.value == "Q Klavye") {
			b.value = "Alfabetik"; 
		} else {
			b.value = "Alfabetic"; 
		}
		if(c.value == "Büyük Harf" || c.value == 'Upper Case') { 
			keyboardArr = keyboardQLowerArr;
		} else { 
			keyboardArr = keyboardQUpperArr;
		}
	} else if (b.value == "Alfabetik" || b.value == "Alfabetic") { 
		if (b.value == "Alfabetik"){
			b.value = "Q Klavye"; 
		} else {
			b.value = "Q Keyboard"; 
		}
		if(c.value == "Büyük Harf" || c.value == 'Upper Case') { 
			keyboardArr = keyboardLowerArr;
		} else { 
			keyboardArr = keyboardUpperArr;
		}
	}

	var e = document.getElementsByName("bScrambleOrReset")[0];
	if(e.value == "Harfleri Düzenle"){ 
		scrambleOrReset()
	}
	populateKeys();
}

function scrambleOrReset(){ 
	var e = document.getElementsByName("bScrambleOrReset")[0]; 
	if(e.value == "Harfleri Karıştır" || e.value == 'Shuffle Letters'){ 
		if(e.value == "Harfleri Karıştır") {
			e.value = "Harfleri Düzenle"; 
		} else {
			e.value = "Arrange Letters"; 
		}
		for (var i = NUMBER_COUNT; i < TOTAL_ELEMENT; i++){ 
			var randomnumber = Math.floor(Math.random()*(TOTAL_ELEMENT - 10)) + 10; 
			var b = document.getElementsByName("b" + i)[0]; 
			var btemp = document.getElementsByName("b" + randomnumber)[0]; 
			var tmpIdx = b.getAttribute("idx"); 
			b.setAttribute("idx",btemp.getAttribute("idx")); 
			btemp.setAttribute("idx",tmpIdx);
		}
	} else { 
		if(e.value == "Harfleri Düzenle") {
			e.value = "Harfleri Karıştır"; 
		} else {
			e.value = "Shuffle Letters"; 
		}
		for (var i = NUMBER_COUNT; i < TOTAL_ELEMENT; i++){ 
			var b = document.getElementsByName("b" + i)[0]; 
			b.setAttribute("idx",i);
		}
	}
	populateKeys();
}

function scrambleNumbers(){ 
	for (var i = 0; i < NUMBER_COUNT; i++){ 
		var randomnumber = Math.floor(Math.random() * 10); 
		var b = document.getElementsByName("b" + i)[0]; 
		var btemp = document.getElementsByName("b" + randomnumber)[0]; 
		var tmpIdx = b.getAttribute("idx"); 
		b.setAttribute("idx",btemp.getAttribute("idx")); 
		btemp.setAttribute("idx",tmpIdx);
	}
	populateKeys();
}

function trim(inputString) { 
	if (typeof inputString != "string") { 
		return inputString;
	}
	var retValue = inputString; 
	var ch = retValue.substring(0, 1); 
	while (ch == " ") { 
		retValue = retValue.substring(1, retValue.length); 
		ch = retValue.substring(0, 1);
	}
	ch = retValue.substring(retValue.length-1, retValue.length); 
	while (ch == " ") { 
		retValue = retValue.substring(0, retValue.length-1); 
		ch = retValue.substring(retValue.length-1, retValue.length);
	}
	while (retValue.indexOf("  ") != -1) { 
		retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
	}
	return retValue;
}

function clickEvent(keypadChar){
	if(!writeByMouseOver) {
		f = currentInput;
		if(f.maxLength == null || (f.maxLength != null && f.maxLength == -1) || (f.maxLength != null && f.value.length < f.maxLength)){
			insertAtCursor(keypadChar);
		}
	} else {
		return false;
	}
}

function mouseOverEvent(keypadChar){
	if(writeByMouseOver) {
		f = currentInput;
		if(f.maxLength == null || (f.maxLength != null && f.maxLength == -1) || (f.maxLength != null && f.value.length < f.maxLength)){
			timer = setTimeout("insertAtCursor('"+ keypadChar +"')", 2000);
		}
	} else {
		return false;
	}
}
function mouseOutEvent() {
	if(writeByMouseOver) {
		clearTimeout(timer);
	}
}

function insertAtCursor(myValue) {
	currentInput.focus();
	currentInput.value = currentInput.value + myValue;
}

function sil(){
	currentInput.focus(); 
	currentInput.value = currentInput.value.substring(0,currentInput.value.length-1); 
}

function showKeypad() { 
	if (document.all) { 
		if(keypad.style.visibility != "visible"){ 
			initiateKeyboardPos(0); 
			keypad.style.visibility="visible";
		}
	} else if (document.layers) { 
		if(keypad.visibility != "show"){ 
			initiateKeyboardPos(0); 
			keypad.visibility="show";
		}
	} else { 
		if(keypad.style.visibility != "visible"){ 
			initiateKeyboardPos(0); 
			keypad.style.visibility="visible";
		}
	}
	upper_keypad = document.getElementById("nt_div_keypad"); 
	numpad = document.getElementById("numpd_div_keypad");
	
	if(upper_keypad) {
		nt_hideKeypad();
	}
	if(numpad) {
		numpd_hideKeypad();
	}
	// Added By Umut. Sayfadaki Combo box'ların arka tarafta kalması için.
	var combos = document.getElementsByTagName("select") ; 
	if (combos != null) {
		for (var i = 0; i < combos.length ; i++) {
			combos[i].style.visibility = "hidden";
		}
	}
	//End
	document.onmousedown = MD; 
	document.onmousemove = MM; 
	document.onmouseup = MU;
	
}

function hideKeypad() {
	if (document.all) { 
		keypad.style.visibility = "hidden";
	} else if (document.layers) {
		 keypad.visibility = "hidden";
	} else { 
		 keypad.style.visibility = "hidden";
	}
	// Added By Umut. Sayfadaki Combo box'ların arka tarafta kalması için.
	var combos = document.getElementsByTagName("select");
	if (combos != null) {
		for (var i = 0; i < combos.length ; i++) {
			combos[i].style.visibility = "visible";
		}
	}
	//End
}

function WinSizeNotSupported() { 
	alert("Browser'ınız bazı fonksiyonları desteklemiyor.");
}

function getWinSize() { 
	getWinSize = WinSizeNotSupported; 
	if(document.all) { 
		getWinSize = wsq1; 
		if (! document.body.scrollWidth) { 
			getWinSize = wsq2;
		};
	} else if(document.layers) { 
		getWinSize = wsq3;
	} else if (document.getElementById) { 
		if (document.height) { 
			getWinSize = wsq3;
		} else if (document.body.offsetWidth) { 
			getWinSize = wsq5;
		}
	}
	getWinSize();
}

function wsq1() { 
	with(document.body){ 
		WinWidth = clientWidth; 
		WinHeight = clientHeight; 
		Winx = scrollWidth; 
		Winy = scrollHeight; 
		if (clientWidth > Winx) {
			Winx = clientWidth; 
		}
		if (clientHeight > Winy) {
			Winy = clientHeight; 
		}
		ScrollLeft = scrollLeft; 
		ScrollTop = scrollTop;
	}
}

function wsq2() { 
	WinWidth = document.body.clientWidth; 
	WinHeight = document.body.clientHeight; 
	Winx = document.body.clientWidth; 
	Winy = document.body.clientHeight; 
	ScrollLeft = document.body.scrollLeft; 
	ScrollTop = document.body.scrollTop;
}

function wsq3() { 
	WinWidth = window.innerWidth; 
	WinHeight = window.innerHeight; 
	Winx = document.width; 
	Winy = document.height; 
	if (window.innerWidth > Winx) {
		Winx = window.innerWidth; 
	}
	if (window.innerHeight > Winy) {
		Winy = window.innerHeight; 
	}
	ScrollLeft = window.pageXOffset; 
	ScrollTop = window.pageYOffset;
}

function getObjSize(obj, divsize) { 
	if (document.getElementById || document.all) { 
		getObjSize = gosq1;
	} else{ 
		if (document.layers){ 
			getObjSize = gosq2;
		} else { 
			alert("getObjSize not defined.");
		}
	}
	getObjSize(obj,divsize);
}

function gosq1(obj,ds) { 
	ds.top = obj.offsetTop; 
	ds.left = obj.offsetLeft; 
	var tempObj = obj.offsetParent; 
	while(tempObj.offsetParent) { 
		ds.top = ds.top + tempObj.offsetTop; 
		ds.left = ds.left + tempObj.offsetLeft; 
		tempObj = tempObj.offsetParent;
	}
	ds.right = ds.left + parseInt(obj.offsetWidth); 
	ds.bottom = ds.top + parseInt(obj.offsetHeight); 
	ds.width = parseInt(obj.offsetWidth); 
	ds.height = parseInt(obj.offsetHeight);
}

function gosq2(obj,ds) { 
	ds.top = parseInt(obj.style.top); 
	ds.left = parseInt(obj.style.left); 
	ds.right = ds.left + parseInt(obj.clip.width); 
	ds.bottom = ds.top + parseInt(obj.clip.height); 
	ds.width = parseInt(obj.clip.width); 
	ds.heigt = parseInt(obj.clip.height);
}

function initiateKeyboardPos(callCount) { 
	MAX_CALL_COUNT = 10; 
	divElement = document.getElementById("div_keypad"); 
	getWinSize(); 
	getObjSize(keypad, keypadSize);
	x = Math.floor(Math.random() * (WinWidth - keypadSize.width)) + ScrollLeft; 
	y = Math.floor(Math.random() * (WinHeight - keypadSize.height)) + ScrollTop; 
	divElement.style.left=x; 
	divElement.style.top=y; 
	for (i=0; i < overlapArr.length; i++){ 
		if(isOverlap(overlapArr[i], divElement) && (callCount < MAX_CALL_COUNT)) { 
			initiateKeyboardPos(callCount+1);
		}
	}
}

function isOverlap(elm1, elm2) { 
	var obj1 = new Object(); 
	var obj2 = new Object(); 
	getObjSize(elm1, obj1);
	getObjSize(elm2, obj2);
	area1 = (obj1.right - obj1.left) * (obj1.bottom - obj1.top); 
	area2 = (obj2.right - obj2.left) * (obj2.bottom - obj2.top); 
	if(area1 > area2) { 
		tempElm = elm1; 
		elm1 = elm2; 
		elm2 = tempElm; 
		getObjSize(elm1, obj1); getObjSize(elm2, obj2);
	}
	if (((obj1.left >= obj2.left) && (obj1.left <= obj2.right) && (obj1.top >= obj2.top) && (obj1.top <= obj2.bottom)) || ((obj1.right >= obj2.left) && (obj1.right <= obj2.right) && (obj1.top >= obj2.top) && (obj1.top <= obj2.bottom)) || ((obj1.left >= obj2.left) && (obj1.left <= obj2.right) && (obj1.bottom >= obj2.top) && (obj1.bottom <= obj2.bottom)) || ((obj1.right >= obj2.left) && (obj1.right <= obj2.right) && (obj1.bottom >= obj2.top) && (obj1.bottom <= obj2.bottom))) { 
		return true;
	}
	return false
}

function MD(e) { 
	if (over){ 
		if (N) { 
			ob = document.getElementById("div_keypad"); 
			X=e.layerX; 
			Y=e.layerY; 
			return false;
		} else { 
			ob = document.getElementById("div_keypad"); 
			ob = ob.style; 
			X=event.offsetX; 
			Y=event.offsetY;
		}
	}
	if(keypadVisible) { 
		showKeypad();
	} else { 
		hideKeypad();
	}
}

function MM(e) { 
	if (ob) { 
		if (N) { 
			ob.style.top = e.pageY-Y; 
			ob.style.left = e.pageX-X;
		} else { 
			ob.pixelLeft = event.clientX-X + document.body.scrollLeft; 
			ob.pixelTop = event.clientY-Y + document.body.scrollTop; 
			return false;
		}
	}
}

function keypadSubmit() { 
	hideKeypad(); 
	if(document.forms[0]) { 
		if(document.forms[0].onsubmit){ 
			if(document.forms[0].onsubmit()){ 
				document.forms[0].submit();
			}
		} else { 
			document.forms[0].submit();
		}
	}
}

function MU() { 
	ob = null;
}

if (N) { 
	document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
}

function initializeKeyboard(overlapObj, activationObj){ 
	overlapArr = overlapObj; 
	NUMBER_COUNT = 10; 
	keyboardArr = keyboardLowerArr; 
	TOTAL_ELEMENT = keyboardArr.length; 
	letterCount = TOTAL_ELEMENT - NUMBER_COUNT; 
	browserWidth = 793; 
	keyboardWidth = 100; 
	browserHeight = 543; 
	keypad = document.getElementById("div_keypad"); 
	for (i=0; i < activationObj.length; i++) { 
		activationObj[i].onmouseover = function() {
											keypadVisible=true;
											
										}
	activationObj[i].onmouseout = function() { 
										keypadVisible=false;
									}
	activationObj[i].onfocus = function() { 
									currentInput = this; 
									showKeypad();
								}
	}
	scrambleNumbers();
}
function changeClick() {
	if(document.getElementById("chgclick").checked) {
		writeByMouseOver = true;
	} else {
		writeByMouseOver = false;
	}
}
