var flagclock = 0;
var flagstop = 0;
var oInputTimer;

function startTimer(oBut, oInput){
	oInputTimer = oInput;
	var startdate = new Date();
	
	if(flagclock==0){
		oBut.src = VIEW_HTTP + '/img/icon/pause_16.png';
		flagclock = 1;
		var iH = oInputTimer.value.slice(0,2);
		var iM = oInputTimer.value.slice(3,5);
		var iS = oInputTimer.value.slice(6,8);

		startdate.setTime(startdate.getTime() - (parseInt(iS) + (parseInt(iM) * 60) + (parseInt(iH) * 3600)) * 1000);
		counterTimer( startdate.getTime());
	}else{
		oBut.src = VIEW_HTTP + '/img/icon/play_16.png';
		flagclock = 0;
		flagstop = 1;
	}
}
	
function counterTimer(starttime){
	var currenttime = new Date();
	var timediff = currenttime.getTime() - starttime;

	if(flagclock == 1){
		oInputTimer.value = formatTimertTime(timediff, '');
		refresh = setTimeout('counterTimer(' + starttime + ');', 1000);
	} else {
		window.clearTimeout(refresh);
	}
}
	
function formatTimertTime(rawtime, roundtype){
	if(roundtype == 'round'){
		var ds = Math.round(rawtime/100) + '';
	}else{
		var ds = Math.floor(rawtime/100) + '';		
	}
	
	var sec = Math.floor(rawtime/1000);
	var min = Math.floor(rawtime/60000);
	var uur = Math.floor(rawtime/3600000);
	
	sec = sec - 60 * min + '';
	if(sec.charAt(sec.length - 2) != ''){
		sec = sec.charAt(sec.length - 2) + sec.charAt(sec.length - 1);
	} else {
		sec = 0 + sec.charAt(sec.length - 1);
	}	
	
	min = min + '';
	if(min.charAt(min.length - 2) != ''){
		min = min.charAt(min.length - 2)+min.charAt(min.length - 1);
	} else {
		min = 0 + min.charAt(min.length - 1);
	}
	
	uur = uur + '';
	if(uur.charAt(uur.length - 2) != '') {
		uur = uur.charAt(uur.length - 2) + uur.charAt(uur.length - 1);
	}else{
		uur = 0 + uur.charAt(uur.length - 1);
	}	
	return uur + ':' + min + ':' + sec;
}
	
function resetTimer(oInput){
	oInputTimer = oInput;
	flagstop = 0;
	stoptime = 0;
	window.clearTimeout(refresh);
	if(flagclock == 1){
		var resetdate = new Date();
		var resettime = resetdate.getTime();
		counterTimer(resettime);
	}else{
		oInputTimer.value = "00:00:00";
	}
}

var sTimerMessage = "U heeft geen juiste tijd ingevoerd.";

function TimerFormat(vTimeName, vTimeValue, e, timeCheck, defaultTime) {
	// vTimeName = object name
	// vTimeValue = value in the field being checked
	// e = event
	// timeCheck 
	// True  = Verify that the vTimeValue is a valid time
	// False = Format values being entered into vTimeValue only
	
	var whichCode = (window.Event) ? e.keyCode : e.which;
	//alert(whichCode)
	//Eliminate all the ASCII codes that are not valid
	var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
	if (alphaCheck.indexOf(vTimeValue) >= 1) {
		vTimeName.value = vTimeName.value.substr(0, (vTimeValue.length-1));
		return false;
	}

	if (whichCode == 8) //Ignore the Netscape value for backspace. IE has no value
		return false;
	else {
		//Create numeric string values for 0123456789/
		//The codes provided include both keyboard and keypad values
		var strCheck = '0,16,27,37,38,39,40,47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105,186';
	
		if (strCheck.indexOf(whichCode) != -1 || whichCode == undefined) {
			
			if ((vTimeValue.length < 8 && timeCheck) && (vTimeValue.length >=1)) {
				if (vTimeValue.length == 1){
					vTimeName.value = "0" + vTimeValue + ":00:00";
				}else if (vTimeValue.length == 2){
					vTimeName.value = vTimeValue + ":00:00";
				}else if (vTimeValue.length == 3){
					vTimeName.value = vTimeValue + "00:00";
				}else if (vTimeValue.length == 4){
					vTimeName.value = vTimeName.value.substr(0,2) + ":0" + vTimeName.value.substr(3,1)+ ":00";
				}else if (vTimeValue.length == 5){
					vTimeName.value = vTimeValue + ":00";
				}else if (vTimeValue.length == 6){
					vTimeName.value = vTimeValue + "00";
				}else if (vTimeValue.length == 7)
					vTimeName.value = vTimeName.value.substr(0,5) + ":0" + vTimeName.value.substr(6,1);
				vTimeValue = vTimeName.value
			}
	
			if (vTimeValue.length == 8 && timeCheck) {
				// Additional time formats can be entered here and parsed out to
				// a valid time format that the validation routine will recognize.
				var mHour = vTimeName.value.substr(0,2);
				var mMinute = vTimeName.value.substr(3,2);
				var mSecond = vTimeName.value.substr(6,2);
				var vTimeValueCheck = mHour + ":" + mMinute + ":" + mSecond;

				if (!timerValid(vTimeValueCheck)) {
					alert(sTimerMessage);
					vTimeName.value = defaultTime;
					//vTimeName.focus();
					return false;
				}
				return true;			
			}else {
				if (vTimeValue.length == 1 && vTimeValue > 2){
					if(whichCode == 186)
						vTimeName.value = "0" + vTimeValue;
					else
						vTimeName.value = "0" + vTimeValue + ":";
				}else if (vTimeValue.length == 2 && whichCode == 186){
					vTimeName.value = "0" + vTimeValue;
				}else if (vTimeValue.length == 2){
					if(vTimeValue < 24)
						vTimeName.value = vTimeValue + ":";
					else
						vTimeName.value = 23 + ":";
				}else if (vTimeValue.length == 3){
					if(whichCode != 16)
						vTimeName.value = vTimeName.value.substr(0, (vTimeValue.length-1)) + ":" + vTimeName.value.substr(vTimeValue.length-1, 1);
				}else if (vTimeValue.length == 5 && whichCode == 186){
					vTimeName.value = vTimeName.value.substr(0, (vTimeValue.length-3)) + ":0" + vTimeName.value.substr(vTimeValue.length-2, 1);
				}else if (vTimeValue.length == 5){
					vTimeName.value = vTimeValue + ":";
				}else if (vTimeValue.length == 6){
					if(whichCode != 16)
						vTimeName.value = vTimeName.value.substr(0, (vTimeValue.length-1)) + ":" + vTimeName.value.substr(vTimeValue.length-1, 1);
				}
				return true;
			}
			return false;
		}else {
			// If the value is not in the string return the string minus the last
			// key entered.
			vTimeName.value = vTimeName.value.substr(0, (vTimeValue.length-1));
			return false;
		}
	}
}

function timerValid(objName) {
	var mHour = objName.substr(0,2);
	var mMinute = objName.substr(3,2);
	var mSecond = objName.substr(6,2);
	if(mHour < 0 || mHour > 23)
		return false;
	if(mMinute < 0 || mMinute > 59)
		return false;
	if(mSecond  < 0 || mSecond > 59)
		return false;
	return true;
}
