function addOAMIP() {
	if(getExperimentInfo('species') == 'Mouse'){
		if(getExperimentInfo('nooftargets') > 648){
		return;
	}
	var title = "TaqMan<sup>&reg;</sup>&nbsp;OpenArray<sup>&reg;</sup>&nbsp;Mouse Inflammation Panel";
	var isQuant = getExperimentInfo('openarrayinstrument') == "QuantStudio" ? true : false;
	var isNTCycler = getExperimentInfo('openarrayinstrument') == "NTCycler" ? true : false;
	
	var formatObj1 = isQuant ? findApproximateOpenTaqmip(getExperimentInfo('nooftargets')) : findApproximateOpenQuantTaqmip(getExperimentInfo('nooftargets'));
	var formatObj = findApproximateOpenQuantTaqmip(getExperimentInfo('nooftargets'));
	//var format = "TaqMan<sup>&reg;</sup>&nbsp;OpenArray<sup>&reg;</sup>&nbsp; Mouse Inflammation Panel";
	
	var formats = formatObj1.get('concatenate');
	var formatqnt = formats.replace("TaqMan OpenArray","TaqMan® OpenArray®");
	var format = formatqnt.replace("QuantStudio TM","QuantStudio™");
	
	
	var partNo = formatObj1.get('partnumber');
	
	var noofgenes = formatObj.get('formatno');
	var reqnoofunits = getExperimentInfo('noofsamples') * getExperimentInfo('noofsubarrays')/ 4;
	var noofunits = reqnoofunits < formatObj.get('min') ? formatObj.get('min')
			: Math.ceil(reqnoofunits);
	var min = formatObj.get('min');
	var isMin = (min == 1 ? 1 : (Math.ceil(reqnoofunits) < min ? 0 : 1));

	var noofreactions = noofgenes * getExperimentInfo('noofsamples') * getExperimentInfo('noofreplicates');
	var masterperc = (Ext.get('masterperc').dom.value).split('%')[0];
	var accessperc = (Ext.get('accessoriesperc').dom.value).split('%')[0];
	
	var volumeDiscount = 0;


	//var pricePerUnit = formatObj.regions().findRecord('region', 'NA').prices().findRecord('countrycode', 'USD').get('value');

	var pricePerUnit = pricelist.findRecord('partnumber', partNo).regions().findRecord('region', region + "-" + currency).get('price');
	
	
	var price = pricePerUnit * noofunits;

	
	
	
	
	var mvolume = reqnoofunits * 150;
	var masterMixRec = findOptimumOpenArrayGeneMicroMMXRecord(mvolume);
	var mastermix = masterMixRec.product;
	var mmxPartNumber = masterMixRec.partnumber;
	
	
	var openarrayperc = parseFloat((Ext.get('openarrayperc').dom.value).split('%')[0]);
	var assaysCostWithVolDisc = price - (((volumeDiscount+openarrayperc) / 100 )* price);

	
	var openArray384Obj = accessories.findRecord('product', 'OpenArray 384-well Sample Plates');
	var acc1PartNumber = openArray384Obj.get('partnumber');

	var openArray384WellSamplePlatesUnits = Math.ceil(formatObj1
			.get('sampleplates')
			* reqnoofunits) < openArray384Obj.get('min') ? openArray384Obj.get(
					'min') : Math.ceil(formatObj1.get('sampleplates')
			* reqnoofunits);
	var openArray384WellSamplePlatesCost = pricelist.findRecord('partnumber', acc1PartNumber)
	.regions().findRecord('region', region + "-" + currency).get('price')
			* openArray384WellSamplePlatesUnits * (1 - (accessperc / 100));

	
	var opeArrayAccuObj = accessories.findRecord('product', 'OpenArray AccuFill System Tips');
	var acc2PartNumber = opeArrayAccuObj.get('partnumber');
	
	/*
	//Commented accorrding to instruction by Lini this code is replaced with below code - Starts at New added code for Combination
	var openArrayAccuFillSystemTipsUnits = Math.ceil((1.25) % 10) < opeArrayAccuObj.get('min') ? opeArrayAccuObj.get(
					'min')
			: Math.ceil((1.25 * reqnoofunits) % 10);
	*/
	var openArrayAccuFillSystemTipsperPrice = pricelist.findRecord('partnumber', acc2PartNumber).regions().findRecord('region', region + "-" + currency).get('price');
	var openArrayAccuFillSystemTipsUnits = Math.ceil((1.25 * reqnoofunits) / 10);
	
	var openArrayAccuFillSystemTipsCost = pricelist.findRecord('partnumber', acc2PartNumber)
	.regions().findRecord('region', region + "-" + currency).get('price')
			* openArrayAccuFillSystemTipsUnits * (1 - (accessperc / 100));
	
	var openArrayAccu10Obj = accessories
	.findRecord('product',
	'OpenArray AccuFill System Tips, 10 pack');
	var acc3PartNumber = openArrayAccu10Obj.get('partnumber');

	/*
	//Commented accorrding to instruction by Lini this code is replaced with below code - Starts at New added code for Combination
	var openArrayAccuFillSystemTips10PackUnits = Math.ceil(Math
			.floor((1.25 * reqnoofunits) / 10)) < openArrayAccu10Obj
			.get('min') ? openArrayAccu10Obj.get('min') : Math
			.ceil(Math
					.floor((1.25 * reqnoofunits) / 10));
	*/
	var  openArrayAccuFillSystemTips10PackperPrice = pricelist.findRecord('partnumber', acc3PartNumber).regions().findRecord('region', region + "-" + currency).get('price');
	var openArrayAccuFillSystemTips10PackUnits = Math.ceil(((1.25 * reqnoofunits) / 10)/10);
	
	var openArrayAccuFillSystemTips10PackCost = pricelist.findRecord('partnumber', acc3PartNumber)
	.regions().findRecord('region', region + "-" + currency).get('price')
			* openArrayAccuFillSystemTips10PackUnits * (1 - (accessperc / 100));
	
	/*
		- Starts at New added code for Combination.
		- Here to get the single and 10 pack combination ob box for Accufill
	*/
	var openArrayAccuFillSystemTipsTotalUnits =Math.ceil((1.25 * reqnoofunits) / 10);
	var accFill10PackUnit = ((1.25 * reqnoofunits) / 10)/10;
	var accFill1PackUnit = (1.25 * reqnoofunits) / 10;
		
	if(accFill10PackUnit >= 1){
		if((openArrayAccuFillSystemTipsTotalUnits % 10) != 0){
			var accuFill_10Temp = openArrayAccuFillSystemTips10PackUnits - 1;
			var accuFill_rem_1packTemp = openArrayAccuFillSystemTipsTotalUnits - (accuFill_10Temp * 10);
			var accuFill_1packTemp = Math.ceil(accuFill_rem_1packTemp);
			
			openArrayAccuFillSystemTipsUnits = accuFill_1packTemp;
			openArrayAccuFillSystemTips10PackUnits = accuFill_10Temp;
			
			openArrayAccuFillSystemTipsCost = openArrayAccuFillSystemTipsperPrice * openArrayAccuFillSystemTipsUnits;
			openArrayAccuFillSystemTips10PackCost = openArrayAccuFillSystemTips10PackperPrice * openArrayAccuFillSystemTips10PackUnits;
		}else{
			openArrayAccuFillSystemTipsUnits = 0;
			openArrayAccuFillSystemTipsCost = 0;
			openArrayAccuFillSystemTips10PackCost = openArrayAccuFillSystemTips10PackperPrice * openArrayAccuFillSystemTips10PackUnits;
		}
	}else{
		openArrayAccuFillSystemTips10PackUnits = 0;
		openArrayAccuFillSystemTips10PackCost = 0;
		openArrayAccuFillSystemTipsCost = openArrayAccuFillSystemTipsperPrice * openArrayAccuFillSystemTipsUnits;
	
	}
	//End of the Combination code.
	
	
	var masterMixUnits = Math.ceil(mvolume/ masterMixRec.volume);;
	
			
			
	// var openarraycost = formatObj.
	
    var masterMixCostPerUnit = pricelist.findRecord('partnumber', mmxPartNumber)
	.regions().findRecord('region', region + "-" + currency).get(
	'price');
	
	
	
	var masterMixCost = masterMixCostPerUnit * masterMixUnits;
	
	var masterMixCostWithDisc = masterMixCostPerUnit * masterMixUnits * (1 - (masterperc / 100));
	var masterMixCostPerReaction = masterMixCostWithDisc / noofreactions;
	
	var accessoriescost = openArray384WellSamplePlatesCost
			+ openArrayAccuFillSystemTipsCost
			+ openArrayAccuFillSystemTips10PackCost;
	
	var totalAccessoriescost = accessoriescost;
	
    var accessoriesCostPerReaction = totalAccessoriescost/noofreactions;
	
	var assayCostPerReaction = assaysCostWithVolDisc / noofreactions;
	
	var totalCostPerReaction = masterMixCostPerReaction + assayCostPerReaction + accessoriesCostPerReaction;
	
	
    var totalCostPreDisc = accessoriescost + masterMixCost + price;
    
	
	var totalCost = totalAccessoriescost + masterMixCostWithDisc
	+ assaysCostWithVolDisc;
	
    var totalDiscount = 100 - (totalCost*100/totalCostPreDisc);
	
	var assayCostPerSample = assaysCostWithVolDisc / getExperimentInfo('noofsamples');
	var acc1CostPerSample = openArray384WellSamplePlatesCost / getExperimentInfo('noofsamples');
	var acc2CostPerSample = openArrayAccuFillSystemTipsCost / getExperimentInfo('noofsamples');
	var acc3CostPerSample = openArrayAccuFillSystemTips10PackCost / getExperimentInfo('noofsamples');
	var accessoriesCostPerSample = acc1CostPerSample + acc2CostPerSample + acc3CostPerSample;
	var mmixCostPerSample = masterMixCostWithDisc / getExperimentInfo('noofsamples');
	
	var totalCostPerSample = assayCostPerSample + acc1CostPerSample + acc2CostPerSample + acc3CostPerSample + mmixCostPerSample;
	
	var noOfHours = 0;
	
	var oType = getExperimentInfo('openarrayinstrument') == "QuantStudio" ? "GEandMirnaQS" : "GEandMirnaNT";
	var tRec = openarrayruntimes.findRecord('type', oType);
	noOfHours = Math.ceil(Math.ceil((reqnoofunits) / tRec.get('noofplatesperrun')) * tRec.get('totalmin') /60);
	
	
	/* FixedOpenArrayAccessories - Started */
	var realtimePCRname = "";
	var accessory4partnumber = "";
	var openarrayrealtimepcraccessorieskitunits = 0;
	var openarrayrpcraccesskitunitprice =  0;
	var openarrayrealtimepcraccessorieskitcost = 0;
	var accessoriesdisc = 0;
	var fixedOpenArrayAcesstCost = 0;
	var fixOArrayPCRPrperRec = 0;
	var fixOArrayPCRPrperSmp = 0;
	
	if( FixedOpenArrayAccessories.findRecord('Application', getExperimentInfo('type'), 0) != null && (isQuant || isNTCycler) ){
		if(FixedOpenArrayAccessories.findRecord('part number', partNo) != null){
				
			var fixedOpenArrayAcessObj = FixedOpenArrayAccessories.findRecord('part number', partNo);
			//var realtimePCRname = "TaqMan® OpenArray® Real-Time PCR Accessories Kit";
			//var accessory4partnumber = 4453975;
			if(isNTCycler){
				var realtimePCRname = "TaqMan® OpenArray® Real-Time PCR Accessories Kit";
				var accessory4partnumber = 4453975;
			}else{
				var realtimePCRname = "QuantStudio™ 12K Flex OpenArray® Accessories Kit";
				var accessory4partnumber = 4469576;
			}
			var openarrayrealtimepcraccessorieskitunits = Math.ceil( noofunits / 10 );
			var openarrayrpcraccesskitunitprice =  pricelist.findRecord('partnumber', accessory4partnumber)
	.regions().findRecord('region', region + "-" + currency).get('price');
			var openarrayrealtimepcraccessorieskitcost = openarrayrpcraccesskitunitprice * openarrayrealtimepcraccessorieskitunits;
			var accessoriesdisc = (Ext.get('accessoriesperc').dom.value).split('%')[0];
			var fixedOpenArrayAcesstCost = (openarrayrealtimepcraccessorieskitcost * (1 - (accessoriesdisc / 100)));
			var fixOArrayPCRPrperRxn = openarrayrealtimepcraccessorieskitcost / (noofreactions);
			var fixOArrayPCRPrperSmp = (openarrayrealtimepcraccessorieskitcost * (1 - (accessoriesdisc / 100))) / (getExperimentInfo('noofsamples'));
			
		}
	}
	totalCostPerSample = totalCostPerSample + fixOArrayPCRPrperSmp;
	totalCost = totalCost + fixedOpenArrayAcesstCost;
	totalCostPerReaction = totalCostPerReaction + fixOArrayPCRPrperRxn;
	/*FixedOpenArrayAccessories - End*/
	
	var imageType = "";
	if(isNTCycler){
		imageType = "openarray-ntcycler-fixed";
	}
	
	outputList.add({
		pno : 85,
		title : title,
		partnumber : partNo,
		format : format,
		noofunits : noofunits,
		noofreactions : noofreactions,
		mastermix : mastermix,
		mnoofunits : masterMixUnits,
		totalcost : roundNumber(totalCost, 2),
		volumediscount : volumeDiscount,
		mvolumediscount : 0,
		mastermixdisc : masterperc,
		accessoriesdisc : accessperc,
		assayscost : price,
		assayscostperunit : pricePerUnit,
		assayscostwithvoldisc : assaysCostWithVolDisc,
		mastermixvol : 0,
		mastermixcostperunit : masterMixCostPerUnit,
		mastermixcostwithvoldisc : masterMixCost,
		mastermixcostwithdisc : masterMixCostWithDisc,
		mastermixcost : masterMixCost,
		noofhours : noOfHours,
		assaycostperreaction : assayCostPerReaction,
		mastermixcostperreaction : masterMixCostPerReaction,
		accessoriescostperreaction : accessoriesCostPerReaction,
		optimizationcostperreaction : 0,
		totalcostperreaction : totalCostPerReaction,
		producturl : '',
		openarray384wellsampleplatescost : openArray384WellSamplePlatesCost,
		openarrayaccufillsystemtipscost : openArrayAccuFillSystemTipsCost,
		openarrayaccufillsystemtips10packcost : openArrayAccuFillSystemTips10PackCost,
		openarray384wellsampleplatesunits:openArray384WellSamplePlatesUnits,
		openarrayaccufillsystemtipsunits: openArrayAccuFillSystemTipsUnits,
		openarrayaccufillsystemtips10packunits: openArrayAccuFillSystemTips10PackUnits,
		mastermixunits:masterMixUnits,
		totalcostpersample: totalCostPerSample,
		accessoriescost : accessoriescost,
		accessoriescostwithdisc: totalAccessoriescost, 
		assaycostpersample : assayCostPerSample,
		accessoriescostpersample : accessoriesCostPerSample,
		mmxcostpersample : mmixCostPerSample,
		totalcostpredisc : totalCostPreDisc,
		totaldiscount : roundNumber(totalDiscount, 2),
		accessory1partnumber : acc1PartNumber,
		accessory2partnumber : acc2PartNumber,
		accessory3partnumber : acc3PartNumber,
		mastermixpartnumber : mmxPartNumber,
		reqnoofunits : reqnoofunits,
        type: 'openarray-fixed',
		min : min,
		ismin : isMin,
		
		realtimePCRname : realtimePCRname,
		accessory4partnumber :accessory4partnumber,
		openarrayrealtimepcraccessorieskitunits : openarrayrealtimepcraccessorieskitunits,
		openarrayrpcraccesskitunitprice : openarrayrpcraccesskitunitprice,
		openarrayrealtimepcraccessorieskitcost : openarrayrealtimepcraccessorieskitcost,
		
		imageType:imageType,
		fnName:'addOAMIP'
	});
	}
}

function findApproximateOpenQuantTaqmip(value) {
	var record = null;
	var name = "TaqMan OpenArray Mouse Inflammation Panel";
	var prevRecord = null;
	return openArrayFixed.findRecord('concatenate', name);
}
function findApproximateOpenTaqmip(value){
	var record = null;
	var name = "TaqMan OpenArray Mouse Inflammation Panel QuantStudio TM 12K Flex";	
	var prevRecord = null;
	return openArrayFixed.findRecord('concatenate', name);
}