/**
 * TimeStamp function
 */
function addTimestamp(fieldObj)
{
	var value =fieldObj.value;
	var stamp = timestampPrefix+trim(timestampUser+' '+formatDate(getLocalDate(),dateformat))+timestampPostfix+' ';
	if(!value)
	{
		value=stamp;
		timestampTop=false;
	}
	else
	{
		if(timestampTop)
		{
			value=stamp+'\n'+value;
		}
		else
		{
			value=value+'\n'+stamp;
		}
	}
	fieldObj.focus();
	fieldObj.value = value;
	if(timestampTop){setCursor(fieldObj,stamp.length,stamp.length);}
	else{fieldObj.focus();}
}

function addTimestampIfHotkey(fld, event)
{
	// Alt+T of Ctrl+Q
	if ((getKey(event) == 84 && event.altKey) || ((getKey(event) == 81 && event.ctrlKey)))
	{
		addTimestamp(fld);
		return false;
	}
}

function setCursor(fieldObj,pos) 
{ 
	if(fieldObj.setSelectionRange) 
	{ 
		fieldObj.focus(); 
		fieldObj.setSelectionRange(pos,pos); 
	} 
	else if(fieldObj.createTextRange) 
	{ 
		range=fieldObj.createTextRange(); 
		range.collapse(true); 
		range.moveEnd('character',pos); 
		range.moveStart('character',pos); 
		range.select(); 
	} 
}

/**
 * will return local date + time 
 */ 
function getLocalDate()
{
	var rightNow = new Date();
	var plus = rightNow.toString().indexOf("+");
	var tekst;
	var uren;
	var minuten;
	if(plus > -1) {
		tekst = rightNow.toString().substr(plus+1,4);
		uren = Number(tekst.substr(0,2));
		minuten = Number(tekst.substr(2,2));
	}
//	alert("rightNow: " + rightNow.toString());
//	alert("aantal uren: " + uren + " aantal minuten " + minuten);
	var date1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);
	var date2 = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0);
	var temp = date1.toUTCString();
	var date3 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
	var temp = date2.toUTCString();
	var date4 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
	var diffStdTime = (date1 - date3);
	var diffDaylightTime = (date2 - date4);
	
	var gmt = new Date();
	var lsm = new Date();
	var lso = new Date();
	var dst = 0;
	lsm.setMonth(2); // March
	lsm.setDate(31);
	var day = lsm.getDay();// day of week of 31st
	lsm.setDate(31-day); // last Sunday
	lso.setMonth(9); // October
	lso.setDate(31);
	day = lso.getDay();
	lso.setDate(31-day);
	if (gmt.getTime() > lsm.getTime() && gmt.getTime() < lso.getTime()) {
		dst = 1;
	}
   var result = new Date();
   if (dst == 0) {
      result.setTime(result.getTime()- (uren*60*60*1000) -(minuten*60*1000) +diffStdTime);
   } else {
      result.setTime(result.getTime()- (uren*60*60*1000) -(minuten*60*1000) +diffDaylightTime);
   }
   return result;
}