// general purpose validation function
function ck_num(field)
{
	val = parseInt(field.value);
	if (isNaN(val)) 
	{
		alert("Invalid number format");
		field.focus();
		return false;
	}
	
	return true;
}

function ck_pos_num(field)
{
	val = parseInt(field.value);
	if (isNaN(val)) {
		alert("Invalid number format");
		field.focus();
		return false;
	}

	
	if (val>0) return true; 
		else 
	{	
		alert("Invalid number format");
		field.focus();
		return false;
	}
}

function ck_text(field, zval, str, errorclass)
{
	if (field.value == zval) 
	{
		if (str!="")
		{
			alert(str);
			if(errorclass) field.className = errorclass;
			field.focus();
		}
		return false;
	} else 
		return true;
}
	
function ck_select(field, zval, zindex, str, errorclass)
{
	if (field.options[field.selectedIndex].value==zval||field.selectedIndex==zindex)
	{
		if (str!="")
		{
			alert(str);
			if(errorclass) field.className = errorclass;
			field.focus();
		}
		return false;
	}
	else
		return true;
}
	

function ck_radio(field, str)
{
	for (i=0;i<field.length;i++)
		if (field[i].checked) return i+1;
		
	if (str!="")
	{
		alert(str);
		field[0].focus();
	}
	return false;
}
	
function validate_email(field, alert_str, errorclass)
{
	var str = Trim(field.value);
//	alert(str);
	if (window.RegExp) {
		var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
		var reg1 = new RegExp(reg1str);
		var reg2 = new RegExp(reg2str);
		if (!reg1.test(str) && reg2.test(str)) {
			return true;
		}
		alert(alert_str);
		field.focus();
		field.select();
		return false;
	} else {
		if(str.indexOf("@") >= 0)
		{
			return true;
		}
		alert(alert_str);
		if(errorclass) field.className = errorclass;
		field.focus();
		field.select();
		return false;
	}
}

// Regular expresion validator
function validate_regexp(field, expr, alert_str)
{
	var str = field.value;

	if (window.RegExp) 
	{
		var reg1str = expr;
		var reg1 = new RegExp(reg1str);
		if (field.value=="" || reg1.test(field.value)) 
		{
			return true;
		}
		alert(alert_str);
		field.focus();
		return false;
	}
}

// auto fill form with supplied values
function set_form(f, names, values)
{
	var i;

	for (i=0; i<names.length; i++)
	{
		if (e = f.elements[names[i]]) 
		{
	//		alert(i + " " + e.name +" "+ e.type+" "+ values[i]);
			switch(e.type) {
			case "hidden" :
			case "text" :
			case "textarea" : e.value = values[i]; break;
			case "select-one" : set_select(e, values[i]); break;
			case "checkbox" : set_checkbox(e, values[i]); break;	
			}

			if (e.length>0&&e[0].type=="radio") 
				set_radio(e, values[i]);
		}
	}
}

// functions used by set_form

function set_text(field, val)
{
	field.value = val;
	return true;
}

function set_select(field, val)
{
	var i;
	for (i=0;i<field.options.length;i++)
		if (field.options[i].value == val) 
		{
			field.selectedIndex = i;
			return true;
		}
	return false;
}

function set_checkbox(field, val)
{
	if (field.value != val) return false;
	field.checked = true;
	return true;
}

function set_radio(field, val)
{
	var i;
	var ok;
	ok = false;
	for (i=0; i<field.length;i++)
	{
//	alert(field[i].value);
		if (field[i].value == val)
		{
	//		alert("Found i = "+i);
			field[i].checked = true;
			ok = true;
		}
		else field[i].checked = false;
	}
	return ok;
}
//e-mail scrambler
function m_scr(part1, part2, part3, caption)
{
	str = part1+String.fromCharCode(eval(64))+part2+String.fromCharCode(eval(46))+part3;
	if (caption!="")
	{
	document.write ("<a href='ma"+"ilto:"+str+"'>"+caption+"</a>");
	}
	else
	{
	document.write ("<a href='ma"+"ilto:"+str+"'>"+str+"</a>");
	}
}
//buttons and stuff
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function init()
	{
		for(i=0; i<norm_butt.length; i++)
			{
				butt_arr[i]=norm_butt[i];

			}
		for(i=0; i<norm_butt.length; i++)
			{
				MM_preloadImages(high_butt[i]);
			}
	}
function showbutt()
	{

		for (i=0;i<document.images.length; i++)
			{
				document.images[i].src=butt_arr[i];
			}
	}

function color(s)
	{
		document.images[s].src=high_butt[s];
	}
function uncolor(s)
	{
		document.images[s].src=butt_arr[s];
	}
function press(s)
	{
		for(i=0; i<norm_butt.length; i++)
			{
				butt_arr[i]=norm_butt[i];
			}
		butt_arr[s]=high_butt[s];
		showbutt();
		color(s);
	}

function checkallboxes(field)
{
	
	if (typeof(field)=="object")
	{
	for (i=0; i<field.length; i++)
		{
			field[i].checked=true;
		}
	field.checked=true;
	}
}

function uncheckallboxes(field)
{
	if (typeof(field)=="object")
	{
	for (i=0; i<field.length; i++)
		{
			field[i].checked=false;
		}
	field.checked=false;
	}
}

function getradiovalue(field)
{
	for(i=0; i<field.length; i++)
		{
			if (field[i].checked) return field[i].value;
		}
	return false;
}


function Trim(s) {

//alert (s.substring(0,1));
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length-1);
//	alert(s);
  }

//alert(s.substring(s.length-1,s.length));	
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
//	alert(s);
  }
  return s;
}

//check field if is numeric and fixed digits
function check_num(field,strlen){
	var value=field.value;
	if(!isNaN(value) && value.length==Number(strlen)) return true; 
	else return false;	
}
//check +positive number
function check_positive(field){
	var value=field.value;
	if(Number(field.value)>0) return true; 
else { alert("Please enter a positive number!");return false;}	
}