function getdayname(dat){
	var dd, mm, yyyy, totaldays;

	if (!isdate(dat)) {
		alert("Date is invalid");
		return "";
	}
  
	dd=getday(dat); mm=getmonth(dat); yyyy=getyear(dat);
	totaldays=0;
	for(var i=1900; i<yyyy; i++){
		  if (isleapyear(i))
			totaldays+=366;
		  else
			totaldays+=365;  
	}  
	for(var i=1; i<mm; i++){
			totaldays+=getmonthdays(i,yyyy);	  
	}
  
	totaldays+=dd;

	switch(totaldays%7){
		case 0: return "SUN";
		case 1: return "MON";
		case 2: return "TUE";
		case 3: return "WED";
		case 4: return "THU";
		case 5: return "FRI";
		case 6: return "SAT";
	}
  
}

function getdayinweek(dayname){
	if(dayname=="SUN") return 0;
	if(dayname=="MON") return 1;
	if(dayname=="TUE") return 2;
	if(dayname=="WED") return 3;
	if(dayname=="THU") return 4;
	if(dayname=="FRI") return 5;
	if(dayname=="SAT") return 6;
}

function isdate(dat){
	var dd, mm, yyyy, monthdays;
	dd=trim(dat);
	if (dat=="") return false;
	if (!checkdateformat(dat)) return false;	

	dd=getday(dat); mm=getmonth(dat); yyyy=getyear(dat);
	//alert("dd"+dd);alert("mm"+mm);alert("yy"+yyyy);
	if (dd==0|| mm==0 ||yyyy==0) return false;	
  
	if (dd<1 || dd>31) return false;	
	if (mm<1 || mm>12) return false;	
	if (yyyy<1800 || yyyy>3100) return false;	
  
	monthdays=getmonthdays(mm, yyyy);
	//alert("dd"+dd);alert("monthdays"+monthdays);
	if (dd<1||dd>monthdays) return false;

	return true;
}

function isleapyear(y1){
	var y;
	y=parseInt(y1,10);
	if (y%100==0){
	  if (y%400==0)
		return true;
	  else
		return false;
	}
	else{
	  if (y%4==0)
		return true;
	  else
		return false;
	}
}

function getmonthnumber(monthname){
	var monthnames;
	monthnames=new Array("","Jan","Feb","March","April","May","June","July","Aug","Sep","Oct","Nov","Dec");
	for(var i=1;i<=12;i++)
	  if(monthnames[i]==trim(monthname)) return i;
	return 0;  
}

function getmonthdays(m,y){
	var monthdays;
	monthdays=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	if (isleapyear(y) && m==2) return 29;
	temp=monthdays[m];
	return temp;
}

function getday(dat){
	var splitparts, temp;
	if (trim(dat)=="") return 0;
	var splitparts=new String(dat);
	splitparts=splitparts.split("/")
	temp=trim(splitparts[0]);
	if (temp=="" || len(temp)>2) return 0;
	return parseInt(temp, 10);
}

function getmonth(dat){
	var splitparts, temp;
	if (trim(dat)=="") return 0;
	var splitparts=new String(dat);
	splitparts=splitparts.split("/");
	temp=trim(splitparts[1]);
	if (temp=="" || len(temp)>2) return 0;
	return parseInt(temp, 10);
}

function getyear(dat){
	var splitparts, temp;
	if (trim(dat)=="") return 0;
	var splitparts=new String(dat);
	splitparts=splitparts.split("/");
	temp=trim(splitparts[2]);
	if (temp=="" || len(temp)>4) return 0;
	return parseInt(temp, 10);
}

function len(str){
	var s, l;
	if (trim(s)=="") return 0;
	s=new String(str);
	l=s.length();
	return l;
}

function checkdateformat(dat){
	var splitparts;
	if (trim(dat)=="") return false;
	var splitparts=new String(dat);
	splitparts=splitparts.split("/")
	if (splitparts.length==3) 
		return true;
	else
		return false;
}

function combinetodate(dd,mm,yyyy){
	var dat;
	dat=dd+"/"+mm+"/"+yyyy
	return dat;
}

function issmaller(dat1, dat2){
	var dd1, mm1, yyyy1;
	var dd2, mm2, yyyy2;
	dd1=getday(dat1); mm1=getmonth(dat1); yyyy1=getyear(dat1);
	dd2=getday(dat2); mm2=getmonth(dat2); yyyy2=getyear(dat2);

	if (yyyy2>yyyy1) return true;
	if(yyyy2==yyyy1){
		if(mm2>mm1)return true;
		if(mm2==mm1){
			if(dd2>dd1)return true;
		}
	}
	return false;
}

function issmallerorequal(dat1, dat2){
	var dd1, mm1, yyyy1;
	var dd2, mm2, yyyy2;
	dd1=getday(dat1); mm1=getmonth(dat1); yyyy1=getyear(dat1);
	dd2=getday(dat2); mm2=getmonth(dat2); yyyy2=getyear(dat2);

	if (yyyy2>yyyy1) return true;
	if(yyyy2==yyyy1){
		if(mm2>mm1)return true;
		if(mm2==mm1){
			if(dd2>dd1)return true;
		}
	}
	return false;
}

function ltrim( s ) {
	// Trims leading blanks.

	var idx = 0;
	
	while (idx<s.length && s.charAt(idx) == " ")
		idx++;

	return s.substr(idx);		
}

function rtrim( s ) {
	// Trims trailing blanks.

	var idx = s.length-1;

	while (idx>=0 && s.charAt(idx) == " ")
		idx--;
			
	return s.substr(0,idx+1);
	
}


function trim( s ) {
	// Trims leading and trailing blanks.

	if (s == null) 
	  return "";
	  		
	return ltrim(rtrim(s));
}

function intfield_onkeypress(){
	if (window.event.keyCode!=13 && (window.event.keyCode < 48 ||  window.event.keyCode > 57)) {
		alert("Please enter a numeric value.");
		window.event.keyCode = 0;
	}
}

function floatfield_onkeypress(){
	var val=trim(window.event.srcElement.getAttribute("value"));
	val=new String(val)
	//alert("val"+window.event.keyCode);
	if (window.event.keyCode!=46  && window.event.keyCode!=13  && (window.event.keyCode < 48 ||  window.event.keyCode > 57) ) {
		alert("Please enter a numeric value.");
		window.event.keyCode = 0;
		return false;
	}
	
	if (window.event.keyCode==46){
		if (val=="") {
			window.event.srcElement.setAttribute("value","0.")
			window.event.keyCode = 0;
			return false;					
		}

		if (val.indexOf(".")>=0){
			window.event.keyCode = 0;
			return false;		
		}
	}
	return true;
}	

function date_onkeypress(){
	if (window.event.keyCode!=47 && (window.event.keyCode < 48 ||  window.event.keyCode > 57) ) {
		alert("Please enter date(dd/mm/yyyy).");
		window.event.keyCode = 0;
		return false;
	}
	
}	

function isEmail(stremail){
	var ind1, ind2;
	ind1=stremail.indexOf("@");
	ind2=stremail.indexOf(".");
	ind3= /\s/g.test(stremail); //to check empty spaces in email addres
	
	if (ind1<0 || ind2<0) return false;
	if (ind1==0 || ind2==0) return false;
	if (ind1==(ind2+1) || ind2==(ind1+1)) return false;
	if (ind3) return false;
	return true;
}

function isNotContainingSpecialChar( bzStr ) {
	// Checks a user name to ensure that no special characters
	// ... are included.  This is because the username may become
	// ... the leading part of an email address,
	// ... username@vestonline.com, for example.
	// Checks for the following:
	// 1. no periods
	// 2. no characters not suitable for inet email addresses.
	//    ... the following are allowed: numbers, A-Z, a-z, underscore (_),
	//    ... tilde (~), dashes (-), and colon (:)
	// NOTE: server-side validation is also done

	var notAllowed = ' !@#$%^&*()+|=/;",<>?{}[]';
	notAllowed += '\\';
	notAllowed += '\'';
	for (var idx=0; idx < notAllowed.length; idx++)  {
		if (bzStr.indexOf( notAllowed.charAt(idx) ) > -1)
			return false;
	}
	return true;
}
