function trim(str)
{
	str=str.replace(/^[\s]+/g,"");
	return str;
}
function textCounter(field, countfield, maxlimit) 
{
	if (field.value.length > maxlimit) // if too long...trim it!
		//alert('called');
		field.value = field.value.substring(0, maxlimit);
		// otherwise, update 'characters left' counter
	else 
		countfield.value = maxlimit - field.value.length;
}
function textCounterHidden(field, maxlimit) 
{
	if (field.value.length > maxlimit) // if too long...trim it!
		//alert('called');
		field.value = field.value.substring(0, maxlimit);
		// otherwise, update 'characters left' counter
	//else 
		//countfield.value = maxlimit - field.value.length;
}
function isNumeric(val)
{
	if(isNaN(val))
	{
		return false;
	}
	else
	{
		if(val.indexOf(".")!=-1)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
}
function isFullNumeric(val)
{
	if(isNaN(val))
	{
		return false;
	}
	else
	{
		return true;
	}
}
function makeArray() 
{
	this[0] = makeArray.arguments.length;
	for (i = 0; i<makeArray.arguments.length; i++)
		this[i+1] = makeArray.arguments[i];
}

var accumulate    = new makeArray(  0, 31, 59, 90,120,151,181,212,243,273,304,334);
var accumulateLY  = new makeArray(  0, 31, 60, 91,121,152,182,213,244,274,305,335);

function daysinyear(year) { if (LeapYear(year)) return 366; else return 365; }
function LeapYear(year) {
    if ((year/4)   != Math.floor(year/4))   return false;
    if ((year/100) != Math.floor(year/100)) return true;
    if ((year/400) != Math.floor(year/400)) return false;
    return true;
}

function addDays(day,month,year,addition) 
{
	if (LeapYear(year)) 
		var number = day + accumulateLY[month] + addition;
	else
		var number = day + accumulate[month]   + addition;
	var days = daysinyear(year);
	while (number > days) 
	{
	   number -= days;
	   days = daysinyear(++year);
	}
	while (number < 1) 
	{
	   days = daysinyear(--year);
	   number += days;
	}
	month = 1;
	if (LeapYear(year)) 
	{
	   while (number > accumulateLY[month]) { month++; }
	   day = number - accumulateLY[--month];
	}
	else 
	{
	   while (number > accumulate[month]) { month++; }
	   day = number - accumulate[--month];
	}
	return year + '-' + (month) + '-' + (day);
}

function DaysDiff(D1, D2) 
{ // Date Objects, with similar times
	return Math.round((D1-D2)/864e5) 
}

function DiffDays(S1, S2) 
{ // ISO date strings
	var X = ReadISO8601date(S1) ; if (X<0) return 'Date 1 bad'
	var Y = ReadISO8601date(S2) ; if (Y<0) return 'Date 2 bad'
	var Dx = Date.UTC(X[0], X[1]-1, X[2])
	var Dy = Date.UTC(Y[0], Y[1]-1, Y[2])
	return (Dx-Dy)/864e5 
}
function copy_clip(meintext)
{
	var Components;

	if (window.clipboardData) 
	{
		// the IE-manier
		window.clipboardData.setData("Text", meintext);
		// waarschijnlijk niet de beste manier om Moz/NS te detecteren;
		// het is mij echter onbekend vanaf welke versie dit precies werkt:
	}/*
	else if (window.netscape) 
	{ 

		// dit is belangrijk maar staat nergens duidelijk vermeld:
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
   
		// maak een interface naar het clipboard
		var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip) return;
   
		// maak een transferable
		var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
		if (!trans) return;
   
		// specificeer wat voor soort data we op willen halen; text in dit geval
		trans.addDataFlavor('text/unicode');
   
		// om de data uit de transferable te halen hebben we 2 nieuwe objecten nodig   om het in op te slaan
		var str = new Object();
		var len = new Object();
   
		var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
   
		var copytext=meintext;
   
		str.data=copytext;
   
		trans.setTransferData("text/unicode",str,copytext.length*2);
   
		var clipid=Components.interfaces.nsIClipboard;
   
		if (!clip) return false;
   
		clip.setData(trans,null,clipid.kGlobalClipboard);
   }
   
	// 1. create the transferable
	var trans = Components.classes["component://netscape/widget/transferable"].createInstance(Components.interfaces.nsITransferable);
	if ( trans ) 
	{
		// 2. register the data flavors
		trans.addDataFlavor("text/html");
		trans.addDataFlavor("text/unicode");

		// 3. create the data objects
		var textWrapper = Components.classes["component://netscape/supports-wstring"].createInstance(Components.interfaces.nsISupportsWString);
		//var htmlWrapper = Components.classes["component://netscape/supports-wstring"].createInstance(Components.interfaces.nsISupportsWString);
                  
		if ( textWrapper && htmlWrapper ) 
		{
			// get the data
			var copytext=meintext;

			textWrapper.data = copytext;
			//htmlWrapper.data = htmlRepresentation;
                  
			// 4. add data objects to transferable
			//trans.setTransferData ( "text/html", htmlWrapper, id.length*2 );  // double byte data (len*2)
			trans.setTransferData ( "text/unicode", textWrapper, id.length*2 );  // double byte data (len*2)
                  
		}
	}                
   //alert("Following info was copied to your clipboard:\n\n" + meintext);
	//return false;*/
}
function NewWindow(mypage,myname,w,h,scroll,status)
{
	var win = null;
	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	settings =
	'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',status='+status+',resizable'
	win = window.open(mypage,myname,settings)
}
function NewWindow1(mypage,myname,scroll,status)
{
	var win = null;
	LeftPosition = 0;
	TopPosition = 0;
	settings = 'height='+(screen.height-50)+',width='+screen.width+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',status='+status+',resizable'
	win = window.open(mypage,myname,settings)
}
function confirmDelete(url)
{
	if(confirm("Are you sure you want to delete Record?"))
	{
		window.location.href=url;
	}
}
function confirmDate()
{
	if(confirm("Date already exists. Do you want to proceed?"))
	{
		return true;
	}
	else
	{
		return false;
	}
}
function replaceQuot(formname)
{
	for(var i=0;i<formname.elements.length;i++)
	{ 
		  var rep = /'/g;
		  var newstring = formname.elements[i].value;
		  newstring = newstring.replace(rep,"''");
		  formname.elements[i].value = newstring;
	}
}