/*
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 isTextDouble(field1, field2, fieldname1,fieldname2) {
	//Checks for if the user enters some text
	if (
		((field1.value=="") || (field1.value=="  ")  ||(field1.value=="   ")  ||(field1.value=="    ")  ||(field1.value=="     "))
		&&
		((field2.value=="") || (field2.value=="  ")  ||(field2.value=="   ")  ||(field2.value=="    ")  ||(field2.value=="     "))
	) {
		alert(fieldname1 + " ya da " + fieldname2 +  " alanı boş bırakılamaz!");
		field1.focus();
		field1.select();
		return false;
	}
	return true;
} //isTextDouble

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 isChecked(field, fieldname) {
	//Checks for if the user select a checkbox
	var blnChecked = field.checked;
	if (!blnChecked)(alert(fieldname + " alanı seçilmelidir!"))
	return blnChecked
} //isChecked

function isCheckedRadio(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!"))
	field[0].focus();
	return blnChecked
} //isChecked

function isCheckedNotArray(field,fielcount,fieldname) {
	//Checks for if the user select a value from radiobuttons
	var blnChecked = false
	for (x=1 ; x<fielcount; x++) {
		if (document.all[field+x].checked) {blnChecked = true}
	}
	if (!blnChecked)(alert(fieldname + " alanı seçilmelidir!"))
	return blnChecked
} //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 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){
	//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	
	}

	intFirstSep = strDate.indexOf(seperator)
	intSecSep = strDate.indexOf(seperator,intFirstSep+1)

	intday=parseInt(strDate.substring(0,intFirstSep),10)
	intMonth=parseInt(strDate.substring(intFirstSep+1,intSecSep),10)
	intYear=parseInt(strDate.substring(intSecSep+1,10),10)

	if ( isNaN(intday) || isNaN(intMonth) || isNaN(intYear)){blnIsDate = false}

	if (format==2 ) {
		Temp=intday
		intday=intMonth
		intMonth=Temp
	}

	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 (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;
}

function trim(str){
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

function addOptionToSelect(select, value, text) {
	var newOpt = document.createElement('option');
	newOpt.value = value;
	newOpt.text = text;
	try {
		select.add(newOpt, null); //doesn't work in IE
	}
	catch(ex) {
		select.add(newOpt); //IE only
	}
}