function max_length(obj,no_char)
{
 if(obj.value.length >no_char)
 {
  alert("No of characters should be less than "+no_char);
  
  //obj.select();
  obj.focus();
  //return ;
 }
}

/* common mandatory_check routine */
function mandatory_check() {
	len		= parseInt(document.forms.length)- 1;
	controls 	= document.forms[len].length;
	for (i=0; i<controls; i++) {
		if (((document.forms[len].elements[i].type) != "submit") && ((document.forms[len].elements[i].type) != "hidden")) {
			if((document.forms[len].elements[i].id != "optional") && ((document.forms[len].elements[i].value == "") || (document.forms[len].elements[i].value == "#")) ) {
				alert("Please enter " + document.forms[len].elements[i].id + ".");
   				document.forms[len].elements[i].focus();
				return false;
			}
			if((document.forms[len].elements[i].id != "optional") && (document.forms[len].elements[i].value == 0)) {
	        	alert("Please enter " + document.forms[len].elements[i].id + ".");
   				document.forms[len].elements[i].focus();
				return false;
	        }
		}
	}
	return true;
} 

/* fill data from one SELECT to other */
function pop_dropdown(fr_obj, to_obj) {
	len		= parseInt(document.forms.length)- 1;
	fr_obj = document.forms[len].elements[fr_obj]
	to_obj = document.forms[len].elements[to_obj]
	for (j=0; j<fr_obj.length; j++) {
		var anOption = new Option(fr_obj.options[j].text, fr_obj.options[j].value)
		to_obj.options.add(anOption)
	}
}

/* Add data to SELECT box */
function add_dropdown(to_obj, value, text) {
	len		= parseInt(document.forms.length)- 1;
	to_obj = document.forms[len].elements[to_obj];
	var anOption = new Option(text, value);
	to_obj.options.add(anOption);
}

/* get selected option text */
function getText(obj) {
	len		= parseInt(document.forms.length)- 1;
	return trim(document.forms[len].elements[obj].options[document.forms[len].elements[obj].selectedIndex].text);
}

/* convert to UPPERCASE */
function ucase(obj) {
	if(obj.value !="") {
		obj.value = obj.value.toUpperCase();
	}
}

/* convert a formatted amount to DB-format */
function dbAmt(value) {
	value = value.replace(/,/g,"");
	value = parseFloat(value);
	return (isNaN(value))?0:value;
}

/* converts dbAmt to formatted amount */
function usrAmt(obj) {
	len		= parseInt(document.forms.length)- 1;
	var rValue = "";

	if ( obj != '[object]' ) { obj = document.forms[len].elements[obj]; }	/*Mod ver#: 28032006 */
	var value = dbAmt(obj.value);

	workNum = Math.abs((Math.round(value*100)/100)); workStr = "" + workNum;
	if (workStr.indexOf(".")==-1) {workStr += ".00";}
	dStr = workStr.substr(0, workStr.indexOf(".")); dNum = dStr-0;
	pStr = workStr.substr(workStr.indexOf("."));

	while (pStr.length<3) {pStr += "0";}

	if (dNum>=1000) {	//--- Adds comma in thousands place.
		dLen = dStr.length;
		dStr = parseInt(""+(dNum/1000))+","+dStr.substring(dLen-3,dLen);
	}

	if (dNum>=1000000) {	//-- Adds comma in millions place.
		dLen=dStr.length;
		dStr=parseInt(""+(dNum/1000000))+","+dStr.substring(dLen-7,dLen);
	}
	rValue = dStr + pStr ;

	//-- Put numbers in parentheses if negative.
	if (value<0) {rValue = "("+rValue+")"}

    obj.value = rValue;
}

/* converts amount(including negative) to formatted amount */
function fmtAmt(obj) {
	
	var rValue = "";
	var value = dbAmt(obj.value);

	workNum = (Math.round(value*100)/100); workStr = "" + workNum;
	if (workStr.indexOf(".")==-1) {workStr += ".00";}
	dStr = workStr.substr(0, workStr.indexOf(".")); dNum = dStr-0;
	pStr = workStr.substr(workStr.indexOf("."));

	while (pStr.length<3) {pStr += "0";}

	if (dNum>=1000) {	//--- Adds comma in thousands place.
		dLen = dStr.length;
		dStr = parseInt(""+(dNum/1000))+","+dStr.substring(dLen-3,dLen);
	}

	if (dNum>=1000000) {	//-- Adds comma in millions place.
		dLen=dStr.length;
		dStr=parseInt(""+(dNum/1000000))+","+dStr.substring(dLen-7,dLen);
	}
	rValue = dStr + pStr ;
    	obj.value = rValue;
}

/* fix amount for a given decimals */
function fixDec( value ) {
	return ( Math.round( value * 100 ) / 100 );
}

/* allows digits only */
function onlyDigits(obj) {
	var isIE = document.all?true:false;
	var isNS = document.layers?true:false;

	if (isIE) {
		if (window.event.keyCode < 46 || window.event.keyCode > 57 ) {
			window.event.keyCode = 0;
			return false;
		}
	}
    if (isNS) {
		if (obj.which < 46 || obj.which > 57) {
			obj.which = 0;
			return false;
		}
	}
    return true;
}

/* common SAVE operation */
function save_screen() {
	len		= parseInt(document.forms.length)- 1;
	if (mandatory_check()==false) return;
	if (confirm("Save?")==false) return;
	document.forms[len].target = "_parent";
	document.forms[len].submit();
}

/* check for valid date */
function checkDate(obj) {
	if (chkdate(obj) == false) {
		alert("Please enter a valid date in dd/mm/yyyy format.");			
		setTimeout(function(){obj.focus();obj.select();},1); 
		return false;
	}
}

/* convert to dd/mm/yyyy format if valid date */
function chkdate(obj) {
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear = new Array();
	var intday;
	var intMonth;
	var intYear;
	var intYear1;
	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;}
	intYear1 = parseInt(strYear, 10);
	if (strYear.length == 2) {
		if(intYear1 < 50) { strYear = '20' + strYear; }
		if(intYear1 >= 50) { strYear = '19' + 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;
}

/* checks for leap year */
function leapYear(intYear) {
	if (intYear % 100 == 0) {
		if (intYear % 400 == 0) {return true;}
	}
    else {
		if ((intYear % 4) == 0) {return true;}
    }
    return false;
}


function ltrim (s) {
	return s.replace(/^\s*/, "")
}

function rtrim (s) {
	return s.replace(/\s*$/, "");
}

/* trim spaces */
function trim (s) {
	return rtrim(ltrim(s));
}

/* get selected option text */
function getValue(obj) {
	len		= parseInt(document.forms.length)- 1;
	return trim(document.forms[len].elements[obj].value);
}

/* set option text */
function setValue(to_obj, value) {
	len		= parseInt(document.forms.length)- 1;
	document.forms[len].elements[to_obj].value = value;
}
/* get selected option text */
function setFocus(obj) {
	len		= parseInt(document.forms.length)- 1;
	document.forms[len].elements[obj].focus();
}
/* highlight a text */
function highlightText(obj) 
{	
	len		= parseInt(document.forms.length)- 1;
	document.forms[len].elements[obj].select();
}
/* submit a screen */
function submit(jsp) {
	len		= parseInt(document.forms.length)- 1;
	document.forms[len].method = "post";
    document.forms[len].action = jsp;
	document.forms[len].submit();
}

/* home page */
function home_page() {
	parent.window.location.replace('index.jsp');
}

function checkDec(fieldName, fieldValue, decallowed ) {
	if (isNaN(fieldValue) || fieldValue == "") {
		alert("That does not appear to be a valid number.Please try again.");
		fieldName.select();
		fieldName.focus();
	}
	else {
		if (fieldValue.indexOf('.') == -1) fieldValue += ".";
		dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);

		if (dectext.length > decallowed) {
			alert ("Please enter a number with up to " + decallowed + " decimal places.Please try again.");
			fieldName.select();
			fieldName.focus();
        }
    }
}


function help_page(HLP) {
	var win = window.open('/hlp/'+HLP,'','toolbar=no, menubar=no, scrollbars=yes, resizable=no, width=500, height=400, top=10, left=10');
	win.focus();
}

/* print a screen */
function print_pages(printpage) {
	len		= parseInt(document.forms.length)- 1;
 	document.forms[len].target = "_parent";
 	document.forms[len].method = "post";
    document.forms[len].action = printpage;
	document.forms[len].submit();
}

/* make a link visible/hidden */
function show_link(link, show) {
	if (show == true)
		document.getElementById(link).style.visibility = 'visible';
	else
		document.getElementById(link).style.visibility = 'hidden';
}

/* just a message and back to home */
function invalid_access() {
	alert('Access denied, aborting...');
	home_page();
}

/* Checking obj1(date) is less than obj2(date) */
function date_compare(obj1,obj2)
{
	i	= obj1.indexOf("/");
	day1 = obj1.substring(0,obj1.indexOf("/"));
	mon1 = obj1.substring(i+1,obj1.indexOf("/",i+1));
	i	= obj1.indexOf("/",i+1);
	yr1	= obj1.substring(i+1,obj1.length);
	i	= obj2.indexOf("/");
	day2 = obj2.substring(0,obj2.indexOf("/"));
	mon2 = obj2.substring(i+1,obj2.indexOf("/",i+1));
	i	= obj2.indexOf("/",i+1);
	yr2	= obj2.substring(i+1,obj2.length);

	if(Date1IsBeforeDate2(yr1,mon1,day1,00,00,'am',yr2,mon2,day2,00,00,'am')==true)	{
		return true;
	}
	else{
		return false;
	}
}

function Date1IsBeforeDate2(strYY1, strMM1, strDD1, strHH1, strMin1, strAmPm1, strYY2, strMM2, strDD2, strHH2, strMin2, strAmPm2)
{
	var lngDate2 = 0;
	var lngDate1 = 0;
	var lngHour = 0;
	lngHour = parseInt(strHH1,10);

	if (strAmPm1.toUpperCase() == 'PM'){
		if (lngHour != 12) { lngHour += 12; }
	}
	else{ if (lngHour == 12) { lngHour = 0;}}

	strHH1 = lngHour.toString();
	lngHour = parseInt(strHH2,10);

	if (strAmPm2.toUpperCase() == 'PM'){
		if (lngHour != 12) { lngHour += 12; }
	}
	else {
		if (lngHour == 12) { lngHour = 0;} }
	strHH2 = lngHour.toString();
	if (strMM1.length == 1) { strMM1 = "0" + strMM1};
	if (strDD1.length == 1) { strDD1 = "0" + strDD1};
	if (strHH1.length == 1) { strHH1 = "0" + strHH1};
	if (strMin1.length == 1){ strMin1 = "0" + strMin1};
	if (strMM2.length == 1) { strMM2 = "0" + strMM2};
	if (strDD2.length == 1) { strDD2 = "0" + strDD2};
	if (strHH2.length == 1) { strHH2 = "0" + strHH2};
	if (strMin2.length == 1) { strMin2 = "0" + strMin2};
	lngDate1 = parseInt(strYY1+strMM1+strDD1+strHH1+strMin1,10);
	lngDate2 = parseInt(strYY2+strMM2+strDD2+strHH2+strMin2,10);

	if (lngDate1 > lngDate2 ){
		return false;
	}
	else { return true;}
}				
/* emailID Checking */
function checkMailId(obj) {
if (obj.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 = obj.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 == arr[i]) {
				val = true;
				break;
			}
			else { val = false; }
		}
		if(val == false) {
			alert("Your mail id '"+mai+"' is not correct.");
			//obj.focus();
			setTimeout(function(){obj.focus();obj.select();},1); 
			return false;
		}
	}
	else {
		alert("Your mail id '"+mai+"' is not correct.");
		//obj.focus();
		setTimeout(function(){obj.focus();obj.select();},1); 
		return false;
	}
	return true;
}
}
function formReset(id)
{
var myform = id;
document.getElementById(myform).reset()
}

function checkDOB(obj) {
	var date	 = new Date();
	var dob		 = obj.value;
	currYear  = date.getYear();
	dobYear	  = dob.substring(6,10);
	yearLimit = currYear - 16					//Check age below 16 years
	if(dobYear > yearLimit && dobYear <= currYear){
		alert('Sorry, Age should be above 16 years.');
		setTimeout(function(){obj.focus();obj.select();},1); 
		return;
	}
	else if(dobYear > currYear){
		chkFutureDate(obj);
	}
}
function chkFutureDate(obj){
	var date	= new Date();
	var	currdate = date.getDate()+"/"+date.getMonth()+"/"+date.getYear();
	if(date_compare(currdate,obj.value)){
		alert('Future date not allowed.');
		setTimeout(function(){obj.focus();obj.select();},1); 
		return false;
	}
}

/* loads reference history */
function load_history(reference_key,referral_id) {
	if(reference_key == ""){
		if(referral_id == ""){
			alert("Please enter a Referal ID to search .");
			setFocus('Referalidtextbox');     
			return;
		}
		else{
			setValue('referral_id', referral_id);
			submit('APReferedByReport.jsp');
			return;
		}
	}
	setValue('reference_key', reference_key);
	submit('APReferenceHistory.jsp');
}
