function check_form()
{
	var errColor = '#CCCCCC';
	var txtColor = '#FF0000';
	var form=document.forms[0];
	var flg_arr = new Array();	
	var flg = 0;
    for (x=0; x < form.elements.length; x++) 
	{
		flg_arr = form.elements[x].id.split('_');
		if(document.getElementById(flg_arr[0]+'_Error')!=null)
			document.getElementById(flg_arr[0]+'_Error').innerHTML = "";
		if(flg_arr[1]=="1")
		{
			form.elements[x].style.background = '#FFFFFF';
			if(flg_arr[2]=="1")
			{
				if(form.elements[x].value=="")
				{
					flg = 1;
					if(document.getElementById(flg_arr[0]+'_Error')!=null)
						document.getElementById(flg_arr[0]+'_Error').innerHTML = "<font color="+txtColor+" size='1'>"+form.elements[x].name+" field should not be blank</font>";
					form.elements[x].style.background = errColor;
				}
			}
			if(flg_arr[3]=="number")
			{
				if (isNaN(form.elements[x].value)) {
					flg = 1;
					if(document.getElementById(flg_arr[0]+'_Error')!=null)
						document.getElementById(flg_arr[0]+'_Error').innerHTML = "<font color="+txtColor+" size='1'>'"+form.elements[x].value+"' is not a valid numeric</font>";
					form.elements[x].style.background = errColor;
				}
			}
			
			else if(flg_arr[3]=="email")
			{
				if (form.elements[x].value != "")
					{
						var arr = new Array('.com','.net','.org','.biz','.coop','.info','.museum','.name','.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag','.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw','.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm','.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc','.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr','.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz','.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm','.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm','.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm','.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq','.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki','.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li','.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg','.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt','.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng','.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf','.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py','.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg','.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv','.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn','.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um','.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws','.wf','.ye','.yt','.yu','.za','.zm','.zw');
						var mai = form.elements[x].value;
						var val = true;
						var dot = mai.lastIndexOf(".");
						var ext = mai.substring(dot,mai.length);
						var at = mai.indexOf("@");
						if( dot > 5 && at >1 ) {
							for(var i=0; i<arr.length; i++) {
								if(ext.toUpperCase()  == arr[i].toUpperCase()) {
									val = true;
									break;
								}
								else { val = false; }
							}
							if(val == false) {
							flg = 1;
							if(document.getElementById(flg_arr[0]+'_Error')!=null)
								document.getElementById(flg_arr[0]+'_Error').innerHTML = "<font color="+txtColor+" size='1'>'"+form.elements[x].value+"' is not a valid Email</font>";
							form.elements[x].style.background = errColor;
							}
						}
						else {
							flg = 1;
							if(document.getElementById(flg_arr[0]+'_Error')!=null)
								document.getElementById(flg_arr[0]+'_Error').innerHTML = "<font color="+txtColor+" size='1'>'"+form.elements[x].value+"' is not a valid Email</font>";
							form.elements[x].style.background = errColor;
						}
						
					}
			}
			else if(flg_arr[3]=="date")
			{
				if (chkdate(form.elements[x]) == false) 
				{
					if(document.getElementById(flg_arr[0]+'_Error')!=null)
						document.getElementById(flg_arr[0]+'_Error').innerHTML = "<font color="+txtColor+" size='1'>'"+form.elements[x].value+"' is not a valid Date</font>";
					form.elements[x].style.background = errColor;
				}		
			}
		}
		else
		{

		}
	}
		if(flg==1)
			return false;
}


function chkdate(obj) 
{
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear = new Array();
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	var strSeparatorArray = new Array("-"," ","/",".");
	var intElementNr;
	var err = 0;
	var strMonthArray = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

	strDate = obj.value;
	if (strDate.length < 1) {return true;}

	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
			strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if (strDateArray.length != 3) {
				err = 1;
				return false;
			}
			else {
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
			}
			booFound = true;
	   	}
	}
	if (booFound == false) {
		if (strDate.length>5) {
			strDay = strDate.substr(0, 2);
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
		}
	   	else{
			return false;
	   	}
	}

    if (strYear.length == 3) {return false;}
	if (strDay.length == 1) {strDay = '0' + strDay;}
	if (strMonth.length == 1) {strMonth = '0' + strMonth;}
	if (strYear.length == 1) {strYear ='200' + strYear;}
	if (strYear.length == 2) {strYear = '20' + strYear;}

	intday = strDay;
	if (isNaN(intday)) {
		err = 2;
		return false;
	}
	intMonth = strMonth;
	if (isNaN(intMonth)) {
		for (i=0;i<12;i++) {
			if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
				intMonth = i+1;
				strMonth = strMonthArray[i];
				i = 12;
	   		}
		}
		if (isNaN(intMonth)) {
			err = 3;
			return false;
	   	}
	}
	intYear = parseInt(strYear, 10);
	if(intYear < 1900 || intYear > 3000) {
		err = 11;
		return false;
    }
	if (isNaN(intYear)) {
		err = 4;
		return false;
	}
	if (intMonth>12 || intMonth<1) {
		err = 5;
		return false;
	}
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6;
		return false;
	}
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
	}
	if (intMonth == 2) {
		if (intday < 1) {
			err = 8;
			return false;
		}
		if (leapYear(intYear) == true) {
			if (intday > 29) {
				err = 9;
				return false;
			}
		}
		else {
			if (intday > 28) {
				err = 10;
				return false;
			}
		}
	}
	if (strYear.length > 4 ) {return false;}
	obj.value = intday + "/" + intMonth + "/" + strYear;
	return true;
}

function leapYear(intYear) 
{
	if (intYear % 100 == 0) {
		if (intYear % 400 == 0) {return true;}
	}
    else {
		if ((intYear % 4) == 0) {return true;}
    }
    return false;
}
