var fout = new Array();
var foulFormName;

function setFoulForm(formName){
	fout[formName] = new Foul();
	foulFormName = formName;
}

function addTest(testString,message){
	fout[foulFormName].when(testString,message);
}

function listItemTask(formname, varname, id, task, url ) {
	if(formChanged && task!='save' && task!='addValue') {
		alert('please Save or Cancel your changes!');
		return false;
	}	else {
		
		check = true;
		if(fout[formname]){
			check = fout[formname].validate(document.forms[formname]);
		} 
		//else {
		//if(task=='save' || task=='login' || task=='register') {
		//	check = validate_form(document.forms[formname]);
		//}
		//}
		if(check==false) return false;
		
		var f = document.forms[formname];
		if(!f) alert('De pagina bevat geen form `'+formname+'`!');
		if(url) f.action=url;
	  //var i = document.getElementById('id');
	  var i = document.forms[formname].id;
	  if(!i) alert('De pagina bevat geen input: id');
	  i.value = id;
	  //alert(i.name);
	  i.name=varname;
	  submitform(formname,task);
	  return false;
	}
}
function submitform(formname,pressbutton){
	//var t = document.getElementById('task');
	var t = document.forms[formname].task;
	if(!t) alert('De pagina bevat geen input: task');
	t.value=pressbutton;
	try {
		document.forms[formname].onsubmit();
		}
	catch(e){}
	document.forms[formname].submit();
}
function noenter() {
	return !(window.event && window.event.keyCode == 13); 
}

function entersubmit(task,event){
	event = (event) ? event : ((window.event) ? event : null);
	if(event){
		var charCode = (event.charCode) ? event.charCode : ((event.which) ? event.which : event.keyCode);
		if(charCode == 13){
			return listItemTask('', '', '', task, '' );
		}
	}
}

var formChanged=false;
		
function checkChanged(){
	if(formChanged) {
		alert('please Save or Cancel your changes!');
		return false;
	} else {
		return true;
	}
}

function showHelp(URL,w,h,scrollbarz){
  var x=(screen.width/2)-(w/2);
  var y=(screen.height/2)-(h/2)-30;
  var helpPopup=window.open('./'+URL+'.php','help','left='+x+',top='+y+',width='+w+',height='+h+',scrollbars='+scrollbarz);
  if (helpPopup) helpPopup.focus();
}

function validate_required(field,alerttxt){
	with (field){
		if (value==null||value==''||value=='aaa')		{
			alert(alerttxt);
			return false;
		}
		else {
			return true;
		}
	}
}

var requirt = new Array();

function validate_form(thisform){
	with (thisform)	{
		for(i=0; i < requirt.length; i++){
			if (validate_required(eval(requirt[i][0]),requirt[i][1])==false) {
				eval(requirt[i][0]).focus();
				return false;
			}
		}
	}
}

function focusFirstTextInput(){
	var theForm = document.getElementById('form');
	if(theForm) {
		var inputs = theForm.getElementsByTagName('input');
		if(inputs) {
			var textFF = 'none';
			for(i=0; i < inputs.length; i++){
				if(inputs[i].type.toLowerCase() == 'text' || inputs[i].type.toLowerCase() == 'password'){
					textFF = i;
					break;
				}
			}
			if(textFF != 'none') {
				try{
				inputs[textFF].focus();
				}
				catch(er){
				}
			}
		}
	}
}

function checkTask(obj){
	//alert(obj.task.value);
	//var t = document.getElementById('task');
	//if(!t.value) return false;
	
	if(!obj.task.value) return false;
	else return true;
}

/*
window.onbeforeunload = confirmExit;
function confirmExit()
{
	if(formChanged){
  	return 	"You haven't finished yet!" +
						" Please press 'Cancel' to continue.";
  }
}
*/

function hashPW(obj){
	/*
	if(document.form.pass.value && document.form.challenge.value){
		for(i=0,val=''; i < document.form.pass.value.length; i++) val += '*';
		if(document.form.pass.value != val){
			document.form.passhashed.value = hex_sha256(document.form.challenge.value + document.form.pass.value);
			document.form.pass.value = val;
		}
	}
	*/
	if(obj.pass.value && obj.challenge.value){
		for(i=0,val=''; i < obj.pass.value.length; i++) val += '*';
		if(obj.pass.value != val){
			//var strippedpass = obj.pass.value.replace(/^s+|s+$/,'');
			//obj.passhashed.value = hex_sha256(obj.challenge.value + strippedpass);
			obj.passhashed.value = hex_sha256(obj.challenge.value + obj.pass.value);
			obj.pass.value = val;
		}
	}
}

function omo(obj,onoff){
	startpos = obj.src.lastIndexOf('_')+1;
	endpos = obj.src.lastIndexOf('.');
	newstring = obj.src.substr(0,startpos);
	newstring += onoff;
	newstring += obj.src.substr(endpos);
	obj.src = newstring;
}

