var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)

document.onmousemove = getMouseXY;
var tempX = 0;
var tempY = 0;

function getMouseXY(e) {

if (IE) { // grab the x-y pos.s if browser is IE
	tempX = event.clientX + document.body.scrollLeft;
	tempY = event.clientY + document.body.scrollTop;
} else {  // grab the x-y pos.s if browser is NS
	tempX = e.pageX;
	tempY = e.pageY;
}  

if (tempX < 0){tempX = 0;}
if (tempY < 0){tempY = 0;}  

return true;
}


function checkLength(field,fieldname,min,max) {
	//Checks for field lendth is greater than min
	if (field.value.length < min) {
		alert(fieldname + " alanı en az " + min + " karakter olmalıdır!");
		field.focus();
		field.select();
		return false;
	}
	if (field.value.length > max) {
		alert(fieldname + " alanı en az " + max + " karakter olmalıdır!");
		field.focus();
		field.select();
		return false;
	}
	return true;
} //isText

function isText(field,fieldname) {
	//Checks for if the user enters some text
	if (( field.value=="" ) || ( field.value=="  " )  ||( field.value=="   " )  ||( field.value=="    " )  ||( field.value=="     " )) {
		alert(fieldname + " alanı boş bırakılamaz!");
		field.focus();
		field.select();
		return false;
	}
	return true;
} //isText

function isSelected(field,fieldname) {
	//Checks for if the user select a value from selectbox

	if (( field.value=="" || field.value=="-1" || field.value=="0")) {
		alert(fieldname + " alanı seçilmelidir!");
		field.focus();
		return false;
	}
	return true;
} //isSelected

function hasItem(field,fieldname) {
	//Checks for if the user select a value from selectbox
	if (field.length == 0) {
		alert(fieldname + " alanı seçilmelidir!");
		field.focus();
		return false;
	}
	return true;
} //hasItem

function isChecked(field, fieldname) {
	//Checks for if the user select a value from radiobuttons
	var blnChecked = false
	for (x=0 ; x<field.length; x++) {
		if (field[x].checked) {blnChecked = true}
	}
	if (!blnChecked)(alert(fieldname + " alanı seçilmelidir!"))
	return blnChecked
} //isChecked

function isCheckedNotArray(field,fieldname) {
	//Checks for if the user select a value from radiobuttons
	try{
		var blnChecked = false;
		var fieldcount = field.length;
		if (fieldcount > 1)
		{
			for (x=0 ; x < fieldcount; x++) {
				if (field[x].checked) blnChecked = true;
			}
			if (!blnChecked)(alert(fieldname + " alanı seçilmelidir!"));
			return blnChecked;
		} else {
			blnChecked = field.checked;
			if (!blnChecked)(alert(fieldname + " alanı seçilmelidir!"));
			return blnChecked;
		}
	}
	catch (err){	
		alert(fieldname + " alanı seçilmelidir!")
		return false;
	}
} //isChecked

function isNum(field,fieldname) {
	//Checks for if the value of the field is numerical
	var valid = "0123456789."
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == "-1" || valid.value == "" ) ok = "no";
	}
	if ((ok == "no") || (field.value=="")) {
		alert(fieldname + " alanı sayısal bir değer olmalıdır!");
		field.value="0";
		field.focus();
		field.select();
		return false;
	}
	return true;
} // isNum

function isNumber(e, max){	
	var unicode = e.charCode? e.charCode : e.keyCode

	if(max > -1 && unicode!=8) {
		var IE = document.all?true:false;
		if (IE) {
			if(e.srcElement.value.length >= max) return false;
		} else {
			if(e.target.value.length >= max) return false;
		}

	}
	if (unicode!=8){ 
		if (unicode<48||unicode>57)
		return false;
	}
}

function checkLengthKeyUp(field, max){	
	if(field.value.length > max) field.value = field.value.substr(0, field.value.length - 1);
}


function isEmail(field,fieldname){
	//Checks for if the value of the field is a valid email address
	if (field.value.indexOf ('@',0) == -1 || field.value.indexOf ('.',0) == -1 || field.value == "")
	{
		alert(fieldname + " alanı geçerli bir email adresi olmalıdır!");
		field.select();
		field.focus();
		return false;
	}
	return true;
	} //isEmail

	function isSame(field1,field2,fieldname1,fieldname2){
	//Checks for if the value of the both field is same. For Password validation
	if (field1.value != field2.value) {
		alert(fieldname1 + ", " + fieldname2 + " alanları aynı olmalaıdır!");
		field1.focus();
		return false; 
	}
	return true;
} //isSame

function isDate(field,fieldname,seperator,format,focus){
	//Checks for if the value of the field is a valid date
	//field			text field of the date (not value of the text!)
	//fieldname		text fields caption for alerting
	//seperator		"/",".","," or smth. else
	//format		2=mm dd yyyy 1=dd mm yyyy

	var strDate
	var blnIsDate
	var intFirstSep
	var intSecSep
	var intday
	var intMonth
	var intYear
	var Temp
	var DaysArray = new Array(12)

	for (var i = 1; i <= 12; i++) {
		DaysArray[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {DaysArray[i] = 30}
		if (i==2) {DaysArray[i] = 29}
	} 

	strDate=field.value
	blnIsDate = true

	if (isNaN(field.value.substring(field.value.length-1,field.value.length))){
		blnIsDate = false	
	}

	if (format==2) {
		intday = strDate.split(seperator)[0]
		intMonth = strDate.split(seperator)[1]
		intYear = strDate.split(seperator)[2]
	}
	if (format==1) {
		intMonth = strDate.split(seperator)[0]
		intday = strDate.split(seperator)[1]
		intYear = strDate.split(seperator)[2]
	}

	if ( isNaN(intday) || isNaN(intMonth) || isNaN(intYear)){blnIsDate = false}

	if (intday>31 || intday<1) {blnIsDate = false}
	if (intMonth>12 || intMonth<1) {blnIsDate = false}
	if (intYear>3000 || intYear<1000) {blnIsDate = false}

	if (((intMonth==2) && (intday>(((intYear % 4 == 0) && ( (!(intYear % 100 == 0)) || (intYear % 400 == 0))) ? 29 : 28 ))) || (intday > DaysArray[intMonth])){
		blnIsDate= false
	}

	if (blnIsDate) {
		return true 
	} else {
		alert(fieldname + " alanı geçerli bir tarih olmalıdır!");
		return false;
	}
}

function isTime(field,fieldname){
	var timecount = field.value.length
	var blnerror = false
	if (field.value == "") return true;

	if (timecount==4) {
		if (! (parseInt(field.value.substring(0,1)) < 24) ) {blnerror = true}
		if (! (field.value.substring(1,2) == ':') ) {blnerror = true}
		if (! (parseInt(field.value.substring(2,4)) < 60)) {blnerror = true}
		if ( field.value == '0:00') {blnerror = true}
	}

	if (timecount==5) {
		if (! (parseInt(field.value.substring(0,2)) < 25) ) {blnerror = true}
		if (! (field.value.substring(2,3) == ':') ) {blnerror = true}
		if (! (parseInt(field.value.substring(3,5)) < 60)) {blnerror = true}
		if ( field.value == '00:00') {blnerror = true}
	}

	if (! (timecount==4 || timecount==5)) {blnerror = true}

	if (blnerror) {
		alert(fieldname + " alanı 00:01 ile 24:00 arasında geçerli bir saat olmalıdır!")
		return false;
	} else {
		return true;	
	}
}

function getFirstChars(tempstr,charsize){
	if (tempstr.length <= charsize) {
		return tempstr
	} else {
		tempstr = tempstr.substring(0, charsize-2) + '..'
		return tempstr
	}
}

function loadXMLDoc(url, method, data, xfnc) 
{
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		return null;
	}

	req.onreadystatechange = xfnc;

	if (method == "POST") {		
		var t = /\+/g; 
		data = data.replace(t,"%2B");
		var t = / /g; 
		data = data.replace(t,"+");

		req.open("POST", url, true);
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=ISO-8859-9');
	} else {
		url = url + "?" + data;
		data = null;

		req.open("GET", url, true);
	}

	req.send(data);
}

function convertUnicodeToASCII(txt) {
	var ret = '';

	for(var i=0; i < txt.length; i++) {
		c = txt.substring(i,i+1);
		n = c.charCodeAt(0);
		if (n < 128) {c = c;}
		if (n > 127 && n < 256) {c = '%' + d2h(n);}				
		if (n > 255) {c = '%' + d2h(mapUnicode(n));}				
		ret += c;
	}
	return ret;
}

function mapUnicode(n){
	var ret = '';
	switch (n){
		case 287:ret = 240;break;
		case 351:ret = 254;break;
		case 305:ret = 253;break;
		case 286:ret = 208;break;
		case 350:ret = 222;break;
		case 304:ret = 221;break;
		default: ret = '_';
	}
	return ret;
}

function d2h(d) {
	var hD="0123456789ABCDEF";
	var h = hD.substr(d&15,1);
	while(d>15) {d>>=4;h=hD.substr(d&15,1)+h;}
	return h;
}