var DHTML = (document.getElementById || document.all || document.layers);

var ie5 = document.all && document.getElementById;
var ns6 = document.getElementById && !document.all;

function get_obj(name)
{
  if (!DHTML) return ;
  else if (document.getElementById)
  {
    this.obj = document.getElementById(name);
    this.style = document.getElementById(name).style;
	return ;
  }
  else if (document.all)
  {
    this.obj = document.all[name];
    this.style = document.all[name].style;
	return ;
  }
  else if (document.layers)
  {
    this.obj = document.layers[name];
    this.style = document.layers[name];
	return ;
  }
  return ;
}

function check_obj(obj)
{
	if(!document.getElementById(obj)) return false;
	return true;
}

function checkmail(id, error)
{
	if(!DHTML) return ;
	
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	
	if(check_obj(id))
	{
		obj_value = new get_obj(id);

		if (filter.test(obj_value.obj.value)) return true
		else
		{
			if(error) alert(error);
			obj_value.obj.focus();
			obj_value.obj.select();
		}
	}
	
	return false;
}

function checkinput(id, error, dfocus)
{
	if(!DHTML) return ;
	
	if(check_obj(id))
	{
		obj_value = new get_obj(id);
		
		if(obj_value.obj.value != "") return true;
		else if (dfocus == false)
		{
			alert(error);
			obj_value.obj.focus();
			obj_value.obj.select();
		}
	}
		
	return false;
}

function checktextarea(id, error, dfocus)
{
	if(!DHTML) return ;
	
	if(check_obj(id))
	{
		obj_value = new get_obj(id);
		if(obj_value.obj.value != "") return true;
		else if (dfocus == false)
		{
			alert(error);
			obj_value.obj.focus();
			obj_value.obj.select();
		}
	}
		
	return false;
}

function check_keydown(e, charnum)
{
	if(window.event) var keynum = e.keyCode;
	else if(e.which) var keynum = e.which;

	if(keynum == charnum) return true;
	else return false;
}

function compairinput(array, error, allowempty)
{
	if (!DHTML) return ;
	if (!check_obj(array[0]) || !check_obj(array[1])) return false;
	
	obj_value1 = new get_obj(array[0]);
	obj_value2 = new get_obj(array[1]);
	
	if (allowempty && (obj_value1.obj.value != '' || obj_value1.obj.value == obj_value2.obj.value)) return true;
	else if (!allowempty && (obj_value1.obj.value == '' && obj_value1.obj.value == obj_value2.obj.value)) return true;
	else if (!allowempty && obj_value1.obj.value == obj_value2.obj.value) return true;
	else {
		alert(error);
		obj_value1.obj.focus();
		obj_value1.obj.select();
	}
	
	return false;
}

function checkcheckbox(id, error, dfocus)
{
	if(!DHTML) return ;
	
	if(check_obj(id))
	{
		obj_value = new get_obj(id);
				
		if(obj_value.obj.checked == true) return true;
		else if (dfocus == false)
		{
			alert(error);
			obj_value.obj.focus();
		}
	}
		
	return false;
}

function checkinputsinform(form) {
	var elem = form.elements;
	for (var i = 0; i < elem.length; i++) {
		if (elem[i].type == 'hidden' || elem[i].getAttribute('rel') == null) {
			continue ;
		}
		var rel_array = elem[i].getAttribute('rel').split(';');
		if (rel_array[0] == 'checkinput' && rel_array[1]) {
			if (checkinput(elem[i].id, rel_array[1], false) === false) {
				return ;
			}
			continue ;
		}
		else if (rel_array[0] == 'compairinput' && rel_array[1] && rel_array[2]) {
			if (compairinput(new Array(elem[i].id, rel_array[1]), rel_array[2], false) === false) {
				return ;
			}
			continue ;
		}
		else if (rel_array[0] == 'checkmail' && rel_array[1]) {
			if (checkmail(elem[i].id, rel_array[1], false) === false) {
				return ;
			}
			continue ;
		}
		else if (rel_array[0] == 'checkcheckbox' && rel_array[1]) {
			if (checkcheckbox(elem[i].id, rel_array[1], false) === false) {
				return ;	
			}
			continue ;
		}
		else if (rel_array[0] == 'checktextarea' && rel_array[1]) {
			if (checktextarea(elem[i].id, rel_array[1], false) === false) {
				return ;	
			}
			continue ;
		}
	}
	form.submit();
}
