


function calculations(cType, outTheo, inStockObj, inStrikeObj, inVolObj, inIntObj, inDaysObj) {

    inStock = inStockObj.value
    inStrike = inStrikeObj.value
    inVol = inVolObj.value / 100
    inInt = inIntObj.value / 100
    inDays = inDaysObj.value;

    if (cType == 1) {
	//swap stock and strike
	tmp = inStock;
	inStock = inStrike;
	inStrike = tmp;
	//zero out interest rate
	intRate = 0; }
    else {
	//set interest rate
	intRate = inInt; }

    if (inDays == 0) {
	inDays = 1; }

    T = inDays / 365;

    if (inStock == 0) {
	inStock = 0.00001; }
    
    Var = inVol  * inVol;
    D1 = (Math.log(inStock / inStrike) + (intRate + 0.5 * Var) * T) / Math.sqrt(Var * T);
    D2 = D1 - Math.sqrt(Var * T);

    if (D1 < 0) {
	N1 = 1 - calc7(Math.abs(D1)); }
    else {
	N1 = calc7(D1); }

    if (D2 < 0) {
	N2 = 1 - calc7(Math.abs(D2)); }
    else {
	N2 = calc7(D2); }

    Result = inStock * N1 - inStrike * N2 * Math.exp(-intRate * T);
    Result = Math.round(Result * 100) / 100;

    outTheo.value = Result;
}
//  End -->



<!-- Begin
function calc7(x)
   {N = 0.049867347 * x + 0.0211410061 * Math.pow(x, 2) + 0.0032776263 * Math.pow(x, 3);
    N = N + 0.0000380036 * Math.pow(x, 4) + 0.00004889066 * Math.pow(x, 5) + 0.000005383 * Math.pow(x, 6);
    N = 1 - 0.5 * Math.pow((1 + N), -16);
    return N;
    }
//  End -->




