var dateSep = "-"; // default date separator

// Date (yyyy-mm-dd, )
function checkdate(object_value) {
	if (object_value.length == 0)
		return true;
		
	isplit = object_value.indexOf(dateSep);
	if (isplit == -1 || isplit == object_value.length)
		return false;
	
	sYear = object_value.substring(0, isplit);
	
	isplit = object_value.indexOf(dateSep, isplit + 1);
	
	if (isplit == -1 || (isplit + 1 ) == object_value.length)
		return false;
	
	sMonth = object_value.substring((sYear.length + 1), isplit);
	
	if (sMonth.length == 0)
		return false;
	
	isep = object_value.indexOf(' ', isplit + 1); 
	if (isep == -1) {
		sDay = object_value.substring(isplit + 1);
	} else {
		sDay = object_value.substring(isplit + 1, isep);
		sTime = object_value.substring(isep + 1);
		if (!checktime(sTime))
			return false; 
	}
	
	if (sDay.length == 0)
		return false;
	
	if (!checkinteger(sMonth)) 
		return false;
	else if (!checkrange(sMonth, 1, 12)) 
		return false;
	else if (!checkinteger(sYear)) 
		return false;
	else if (!checkrange(sYear, 0, 9999)) 
		return false;
	else if (!checkinteger(sDay)) 
		return false;
	else if (!checkday(sYear, sMonth, sDay))
		return false;
	else
		return true;
}

function checkday(checkYear, checkMonth, checkDay) {
	maxDay = 31;
	
	if (checkMonth == 4 || checkMonth == 6 ||	checkMonth == 9 || checkMonth == 11) {
		maxDay = 30;
	} else if (checkMonth == 2)	{
		if (checkYear % 4 > 0)
			maxDay =28;
		else if (checkYear % 100 == 0 && checkYear % 400 > 0)
			maxDay = 28;
		else
			maxDay = 29;
	}
	
	return checkrange(checkDay, 1, maxDay); 
}

function checkInteger(object_value) {
	if (object_value.length == 0)
		return true;

	var decimal_format = ".";
	var check_char;
	
	check_char = object_value.indexOf(decimal_format);
	if (check_char < 0)
		return checknumber(object_value);
	else
		return false;
}

function checknumber(object_value) {
	if (object_value.length == 0)
		return true;
	
	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;
	
	check_char = start_format.indexOf(object_value.charAt(0));
	//alert("checknumber function = "+check_char);
	if (check_char == 1)
		decimal = true;
	else if (check_char < 1)
		return false;
	 
	for (var i = 1; i < object_value.length; i++)	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0) {
			return false;
		} else if (check_char == 1)	{
			if (decimal)
				return false;
			else
				decimal = true;
		} else if (check_char == 0) {
			if (decimal || digits)	
			trailing_blank = true;
		}	else if (trailing_blank) { 
			return false;
		} else {
			digits = true;
		}
	}	
	
	return true;
}


function checkrange(object_value, min_value, max_value) {
	if (object_value.length == 0)
		return true;

	if (!checknumber(object_value))
		return false;
	else
		return (numberrange((eval(object_value)), min_value, max_value));

	return true;
}

function checktime(object_value) {
	if (object_value.length == 0)
		return true;
	
	isplit = object_value.indexOf(':');
	
	if (isplit == -1 || isplit == object_value.length)
		return false;
	
	sHour = object_value.substring(0, isplit);
	iminute = object_value.indexOf(':', isplit + 1);
	
	if (iminute == -1 || iminute == object_value.length)
		sMin = object_value.substring((sHour.length + 1));
	else
		sMin = object_value.substring((sHour.length + 1), iminute);
	
	if (!checkinteger(sHour))
		return false;
	else if (!checkrange(sHour, 0, 23)) 
		return false;
	
	if (!checkinteger(sMin))
		return false;
	else if (!checkrange(sMin, 0, 59))
		return false;
	
	if (iminute != -1) {
		sSec = object_value.substring(iminute + 1);		
		if (!checkinteger(sSec))
			return false;
		else if (!checkrange(sSec, 0, 59))
			return false;	
	}
	
	return true;
}

function checkEmail(object_value) {
	if (object_value.length == 0)
		return false;
	
	if (!(object_value.value.indexOf("@") > -1 && object_value.value.indexOf(".") > -1))
		return false;    
	
	return true;
}

function hasValue(obj, obj_type) {
	if (obj_type == "TEXT" || obj_type == "PASSWORD" || obj_type == "TEXTAREA" || obj_type == "FILE")	{
		if (obj.value.length == 0) {
			return false;
		} else {
			return true;
		}
	}else if (obj_type == "SELECT") {
		if (obj.type != "select-multiple" && obj.selectedIndex <= 0)
			return false;
		else if (obj.type == "select-multiple" && obj.selectedIndex == -1)
			return false;
		else
			return true;
	}else if (obj_type == "RADIO" || obj_type == "CHECKBOX")	{
		if (obj[0]) {
			for (i=0; i < obj.length; i++) {
				if (obj[i].checked)
					return true;
			}
		} else {
			return (obj.checked);
		}
		return false;
	}
}

function numberrange(object_value, min_value, max_value) {
	if (min_value != null) {
		if (object_value < min_value)
			return false;
	}
	
	if (max_value != null) {
		if (object_value > max_value)
			return false;
	}
	
	return true;
}

function onError(form_object, input_object, object_type, error_message) {
	alert(error_message);									
	if (object_type == "RADIO" || object_type == "CHECKBOX" || object_type == "SELECT") {
		if (input_object[0])
			input_object[0].focus();
		else
			input_object.focus();
	}
	if (object_type == "TEXT" || object_type == "PASSWORD" || object_type == "TEXTAREA" || object_type == "FILE") {
		input_object.select();
	}
	return false;	
}

function checkNum(Num){
	var Checkn=true;
	for(var i=0; i<Num.length; i++){
		var num=Num.substring(i,i+1);
		if(num<"0" || num>"9"){
			Checkn=false; 
			break;
		}
	}return(Checkn);
}
function checkNumKey(evt) {
    var evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;

    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}

function checkDecimalKey(evt, obj) {
    var evt = (evt) ? evt : window.event;
    var charCode = (evt.which) ? evt.which : evt.keyCode;

    if (charCode > 31 && (charCode < 48 || charCode > 57)&& charCode != 46) {
        return false;
    }
    // Prevent decimal point more than one.
    if((obj.value.indexOf(".")!= -1) && charCode == 46) return false;
    // Limit a digit after point
    if(obj.value.indexOf(".") != -1) {
		obj.value = obj.value.substring(0,(obj.value.indexOf(".") + 2));
	}
    return true;
}

function CurrencyFormatted(amount){
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}

function checkLength(object, max_value) {
	if (object.value.length <= max_value)
		return true;

	if (object.value.length > max_value)
		return false;
}

function ismaxlength(obj){
    var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
    if (obj.getAttribute && obj.value.length>mlength)
    obj.value=obj.value.substring(0,mlength)
}

function isEmptyNumeric(obj){
  var tmpNum = parseFloat(obj.value);
  
  if(isNaN(tmpNum)) return true;
  if(tmpNum == 0) return true;
  return false;
}

function windowOpen(partlink){
	window.open(partlink, '0', 'width='+(screen.availWidth - 10)+',height='+(screen.availHeight - 25)+',scrollbars=yes, top=0, left=0');
}


//เซ็ตเลขบัตรประชาชน

function checkID(id)
{
	if(id.length != 13) return false;
	for(i=0, sum=0; i < 12; i++)
	sum += parseFloat(id.charAt(i))*(13-i);
	if((11-sum%11)%10!=parseFloat(id.charAt(12)))
	return false; 
	return true;
}

/***********************************************
* Disable "Enter" key in Form script- By Nurul Fadilah(nurul@REMOVETHISvolmedia.com)
* This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
                
function handleEnter (field, event) {
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
		if (keyCode == 13) {
			var i;
			for (i = 0; i < field.form.elements.length; i++)
				if (field == field.form.elements[i])
					break;
			i = (i + 1) % field.form.elements.length;
			field.form.elements[i].focus();
			return false;
		} 
		else
		return true;
	} 
