function getInst () {
	var instStr = "<option value=FUTIDX>FUTIDX</option>";
	instStr += "<option value=FUTSTK>FUTSTK</option>";
	//instStr += "<option value=FUTINT>FUTINT</option>";
	instStr += "<option value=OPTIDX>OPTIDX</option>";
	instStr += "<option value=OPTSTK>OPTSTK</option>";
	
	return instStr;
}

function init() {
	trdfrm = document.getElementById("trdform");

	trdform.elements[0].focus();

	for(var i=0; i<10; i++) {
		trdform.elements[10*i+1].selectedIndex = 0;
	}
}

function populate(num) {
	trdfrm = document.getElementById("trdform");

	instr = trdfrm.elements[10*num+1].value;

	if(instr.substring(0,3) == 'FUT') {
		trdfrm.elements[10*num+4].options.length=1;
		trdfrm.elements[10*num+4].options[0].value = '';
		trdfrm.elements[10*num+4].options[0].text = '';
	}
	else if(instr == 'OPTIDX'){
		trdfrm.elements[10*num+4].options.length=2;
		trdfrm.elements[10*num+4].options[0].value = 'CE';
		trdfrm.elements[10*num+4].options[0].text = 'CE';
		trdfrm.elements[10*num+4].options[1].value = 'PE';
		trdfrm.elements[10*num+4].options[1].text = 'PE';
	}
	else if(instr == 'OPTSTK'){
		trdfrm.elements[10*num+4].options.length=2;
		trdfrm.elements[10*num+4].options[0].value = 'CA';
		trdfrm.elements[10*num+4].options[0].text = 'CA';
		trdfrm.elements[10*num+4].options[1].value = 'PA';
		trdfrm.elements[10*num+4].options[1].text = 'PA';
	}

	if(instr.substring(3) == 'STK') {
		trdfrm.elements[10*num+2].options.length=s.length-1;
		for(var i=0; i<s.length-1; i++) {
			trdfrm.elements[10*num+2].options[i].value = s[i+1];
			trdfrm.elements[10*num+2].options[i].text = s[i+1];
		}
	}
	else if(instr.substring(3) == 'IDX') {
		trdfrm.elements[10*num+2].options.length=7;
		trdfrm.elements[10*num+2].options[0].value = 'NIFTY';
		trdfrm.elements[10*num+2].options[0].text = 'NIFTY';
		trdfrm.elements[10*num+2].options[1].value = 'CNXIT';
		trdfrm.elements[10*num+2].options[1].text = 'CNXIT';
		trdfrm.elements[10*num+2].options[2].value = 'BANKNIFTY';
		trdfrm.elements[10*num+2].options[2].text = 'BANK NIFTY';
		trdfrm.elements[10*num+2].options[3].value = 'JUNIOR';
		trdfrm.elements[10*num+2].options[3].text = 'JUNIOR';
		trdfrm.elements[10*num+2].options[4].value = 'CNX100';
		trdfrm.elements[10*num+2].options[4].text = 'CNX100';
		trdfrm.elements[10*num+2].options[5].value = 'NFTYMCAP50';
		trdfrm.elements[10*num+2].options[5].text = 'NFTYMCAP50';
		trdfrm.elements[10*num+2].options[6].value = 'MINIFTY';
		trdfrm.elements[10*num+2].options[6].text = 'MINIFTY';
	}
	else if(instr.substring(3) == 'INT') {
		trdfrm.elements[10*num+2].options.length=3;
		for(var i=0; i<3; i++) {
			trdfrm.elements[10*num+2].options[i].value = is[i+1];
			trdfrm.elements[10*num+2].options[i].text = is[i+1];
		}
	}


	if(instr == '') {
		trdfrm.elements[10*num+2].options.length=1;
		trdfrm.elements[10*num+2].options[0].value = '';
		trdfrm.elements[10*num+2].options[0].text = 'Select';

		trdfrm.elements[10*num+4].options.length=1;
		trdfrm.elements[10*num+4].options[0].value = '';
		trdfrm.elements[10*num+4].options[0].text = '';
	}
}

function validate (trdform) {
	var empty = new Array(10);
	var full = new Array(10);
	var blank = true;
	
	for(var i=0; i<10; i++) {
		empty[i] = true;
		full[i] = true;
		var b=0;
		var bset = false;
		for(var k=0; k<10; k++) {
			if(trdform.elements[10*i+k].value != "") {
				empty[i] = false;
			}
			else {
				if(trdform.elements[10*i+1].value.substring(0,3) == 'FUT' && (k==4 || k==5)) 
					continue;
				full[i] = false;
				if(!bset) {
					b = k;
					bset = true;
				}
			}
		}
		if(!full[i] && !empty[i]) {
			alert("Please enter all details of the trade");
			trdform.elements[10*i+b].focus();
			return false;
		}
		
		if(full[i]) {
						
			errmsg = date_validator(trdform.elements[10*i+3].value); 
			if(errmsg != '') {
				alert(errmsg);
				trdform.elements[10*i+3].focus();
				return false;
			}
		
			if(trdform.elements[10*i+1].value.substring(0,3) == 'OPT') {
				if(!isRealNumber(trdform.elements[10*i+5].value) || trdform.elements[10*i+5].value <= 0) {
					alert("Invalid strike price");
					trdform.elements[10*i+5].focus();
					trdform.elements[10*i+5].select();
					return false;
				}
			}

			if(!isNumber(trdform.elements[10*i+6].value) || trdform.elements[10*i+6].value.substring(0,1)=="0") {
				alert("Invalid trade number");
				trdform.elements[10*i+6].focus();
				trdform.elements[10*i+6].select();
				return false;
			}
			else {
				if(trdform.elements[10*i+6].value.length != 15 && trdform.elements[10*i+6].value.length != 16) {
					alert("Please enter the complete 16 digit NSE trade number (yyyymmddxxxxxxx)");
					trdform.elements[10*i+6].focus();
					trdform.elements[10*i+6].select();
					return false;
				}
			}

			if(!isNumber(trdform.elements[10*i+7].value) || trdform.elements[10*i+7].value.substring(0,1)=="0") {
				alert("Invalid order number");
				trdform.elements[10*i+7].focus();
				trdform.elements[10*i+7].select();
				return false;
			}
			else {
				if(trdform.elements[10*i+7].value.length != 15 && trdform.elements[10*i+7].value.length != 16 ) {
					alert("Please enter the complete 16 digit NSE order number (yyyymmddxxxxxxx)");
					trdform.elements[10*i+7].focus();
					trdform.elements[10*i+7].select();
					return false;
				}
			}

			if(!isNumber(trdform.elements[10*i+8].value) || trdform.elements[10*i+8].value <= 0) {
				alert("Invalid quantity");
				trdform.elements[10*i+8].focus();
				trdform.elements[10*i+8].select();
				return false;
			}

			if(!isRealNumber(trdform.elements[10*i+9].value) || trdform.elements[10*i+9].value <= 0) {
				alert("Invalid price");
				trdform.elements[10*i+9].focus();
				trdform.elements[10*i+9].select();
				return false;
			}
		}
		
		blank = blank && empty[i];
	}
	
	if(blank) {
		alert("Please enter the trade details");
		trdform.elements[0].focus();
	}
	
	return !blank;
}


function isNumber(str) {
	var nflag = false;
	if(str != null) {
		var len = str.length;
		for(var i=0; i<len; i++) {
			var ch = str.substring(i,i+1);
			if(ch >= "0" && ch <= "9")
				nflag = true;
			else {
				nflag = false;
				break;
			}
		}
	}
	return nflag;
}

function isRealNumber(str) {
	var rnflag = false;
	if(str != null) {
		var len = str.length;
		for(var i=0; i<len; i++) {
			var ch = str.substring(i,i+1);
			if((ch >= "0" && ch <= "9") || ch==".")
				rnflag = true;
			else {
				rnflag = false;
				break;
			}
		}
	}
	return rnflag;
}

function date_validator(datevalue) {
	if(datevalue.length==10) {
		if(datevalue.charAt(2)=="-" && datevalue.charAt(5)=="-") {
			var date=datevalue.substring(0,2);
			var month=datevalue.substring(3,5);
			var year =datevalue.substring(6,datevalue.length);

			if (isNumber(date) && isNumber(month) && isNumber(year)) {
				//check for other characters...
				var date_int = eval(date);
				var month_int = eval(month);
				var year_int= eval(year);

				if(month_int <= 12) {
					if(date_int!=0 && month_int!=0 && year_int!=0) {
						//check for month with 30 days
						if((month_int==4||month_int==6||month_int==9||month_int==11)&& date_int > 30) {
							errMsg = "This month cannot have more than 30 days";
							return errMsg;
						}
						else {
							//check for feb
							if(month_int==2) {
								if((year_int % 4 !=0 && year_int % 400 !=0) && date_int > 28) {
									errMsg = "February cannot have more than 28 days in this year.";
									return errMsg;
								}
								else {
									if ((year_int % 4 ==0 || year_int % 400 ==0) && date_int > 29) {
										errMsg = "February cannot have more than 29 days in this year.";
										return errMsg;
									}
									else {
										errMsg = "";
										return errMsg;
									}
								}
							}
							else {
								if(date_int > 31) {
									errMsg = "A month cannot have more than 31 days.";
									return errMsg;
								}
								else {
									errMsg = "";
									return errMsg;
								}
							}
						}
					}// date or month or year greater than  zero
					else {
						errMsg = "Enter valid date";
						return errMsg;
					}
				}//valid month
				else {
					errMsg = "Not a valid month";
					return errMsg;
				}
			}//valid year check
			else {
				errMsg = "No letters or other characters allowed. Enter date in dd-mm-yyyy format";
				return errMsg;
			}
		}
		else {
			errMsg = "Enter date in dd-mm-yyyy format";
			return errMsg;
		}
	}
	else {
		errMsg = "Enter date in dd-mm-yyyy format ";
		return errMsg;
	}
}

