function validate()
{   
    if (document.op.type.value == "all")
    {
        alert('Select type of option');
        document.op.type.focus();
        return false;
    }

    if (!isNaturalNumber(document.op.s, " for the Current Price."))
    {
        return false;
    }

    if (!isNaturalNumber(document.op.x, " for the Strike price of option."))
    {
        return false;
    }

    if (!isValueInRange(document.op.b, 1, 100, " for the Dividend yield."))
    {
        return false;
    }

    if (!isValueInRange(document.op.r, 1, 100, " for the Interest Rate."))
    {
        return false;
    }

    if (!isValueInRange(document.op.v, 1, 100, " for the Volatilty."))
    {
        return false;
    }

    if (!parseFloat(document.op.v1.value) || parseFloat(document.op.v1.value) <= 0)
    {
        alert('Please enter valuation date ');
        document.op.v1.value = "";
        document.op.v1.focus();
        return false;
    }

    if (!parseFloat(document.op.v2.value) || parseFloat(document.op.v2.value) <= 0)
    {
        alert('Please enter Exercise Date ');
        document.op.v2.value = "";
        document.op.v2.focus();
        return false;
    }

    return true;
}

// Check browser version
var isNav4 = false, isNav5 = false, isIE4 = false;
var strSeperator = "/"; 
var vDateType = 3; 
var vYearType = 4; 
var vYearLength = 2; 
var err = 0; 
if (navigator.appName == "Netscape")
{
    if (navigator.appVersion < "5")
    {
        isNav4 = true;
        isNav5 = false;
    }
    else
    {
        if (navigator.appVersion > "4")
        {
            isNav4 = false;
            isNav5 = true;
        }
    }
}
else
{
    isIE4 = true;
}

function DateFormat(vDateName, vDateValue, e, dateCheck, dateType)
{
    vDateType = dateType;

    if (vDateValue == "~")
    {
        alert("AppVersion = " + navigator.appVersion + " \nNav. 4 Version = " + isNav4 + " \nNav. 5 Version = " + isNav5 + " \nIE Version = " + isIE4 + " \nYear Type = " + vYearType + " \nDate Type = " + vDateType + " \nSeparator = " + strSeperator);
        vDateName.value = "";
        vDateName.focus();
        return true;
    }

    var whichCode = (window.Event) ? e.which : e.keyCode;

    if (vDateValue.length > 8 && isNav4)
    {
        if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
            return true;
    }

    var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
    if (alphaCheck.indexOf(vDateValue) >= 1)
    {
        if (isNav4)
        {
            vDateName.value = "";
            vDateName.focus();
            vDateName.select();
            return false;
        }
        else
        {
            vDateName.value = vDateName.value.substr(0, (vDateValue.length - 1));
            return false;
        }
    }

    if (whichCode == 8) 
    {
        return false;
    }
    else
    {
        var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
        if (strCheck.indexOf(whichCode) != -1)
        {
            if (isNav4)
            {
                if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1))
                {
                    alert("Enter the date in mm/dd/yyyy");
                    vDateName.value = "";
                    vDateName.focus();
                    vDateName.select();
                    return false;
                }

                if (vDateValue.length == 6 && dateCheck)
                {
                    var mDay = vDateName.value.substr(2, 2);
                    var mMonth = vDateName.value.substr(0, 2);
                    var mYear = vDateName.value.substr(4, 4)

                    if (mYear.length == 2 && vYearType == 4)
                    {
                        var mToday = new Date();
                        var checkYear = mToday.getFullYear() + 30; 
                        var mCheckYear = '20' + mYear;

                        if (mCheckYear >= checkYear)
                        {
                            mYear = '19' + mYear;
                        }
                        else
                        {
                            mYear = '20' + mYear;
                        }
                    }

                    var vDateValueCheck = mMonth + strSeperator + mDay + strSeperator + mYear;
                    if (!dateValid(vDateValueCheck))
                    {
                        alert("Enter the date in mm/dd/yyyy");
                        vDateName.value = "";
                        vDateName.focus();
                        vDateName.select();
                        return false;
                    }

                    return true;
                }
                else
                {
                    if (vDateValue.length >= 8  && dateCheck)
                    {
                        if (vDateType == 1) // mmddyyyy
                        {
                            var mDay = vDateName.value.substr(2, 2);
                            var mMonth = vDateName.value.substr(0, 2);
                            var mYear = vDateName.value.substr(4, 4)
                            vDateName.value = mMonth + strSeperator + mDay + strSeperator + mYear;
                        }

                        var vDateTypeTemp = vDateType;
                        vDateType = 1;
                        var vDateValueCheck = mMonth + strSeperator + mDay + strSeperator + mYear;

                        if (!dateValid(vDateValueCheck))
                        {
                            alert("Enter the date in mm/dd/yyyy");
                            vDateType = vDateTypeTemp;
                            vDateName.value = "";
                            vDateName.focus();
                            vDateName.select();
                            return false;
                        }

                        vDateType = vDateTypeTemp;
                        return true;
                    }
                    else
                    {
                        if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1))
                        {
                            alert("Enter the date in mm/dd/yyyy");
                            vDateName.value = "";
                            vDateName.focus();
                            vDateName.select();
                            return false;
                        }
                    }
                }
            }
            else
            {
                if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1))
                {
                    alert("Enter the date in mm/dd/yyyy");
                    vDateName.value = "";
                    vDateName.focus();
                    return true;
                }

                if (vDateValue.length >= 8 && dateCheck)
                {
                    if (vDateType == 1) // mm/dd/yyyy
                    {
                        var mMonth = vDateName.value.substr(0, 2);
                        var mDay = vDateName.value.substr(3, 2);
                        var mYear = vDateName.value.substr(6, 4)
                    }

                    if (vYearLength == 4)
                    {
                        if (mYear.length < 4)
                        {
                            alert("Enter the date in mm/dd/yyyy");
                            vDateName.value = "";
                            vDateName.focus();
                            return true;
                        }
                    }

                    var vDateTypeTemp = vDateType;
                    vDateType = 1;

                    var vDateValueCheck = mMonth + strSeperator + mDay + strSeperator + mYear;
                    if (mYear.length == 2 && vYearType == 4 && dateCheck)
                    {
                        var mToday = new Date();

                        var checkYear = mToday.getFullYear() + 30; 
                        var mCheckYear = '20' + mYear;
                        if (mCheckYear >= checkYear)
                        {
                            mYear = '19' + mYear;
                        }
                        else
                        {
                            mYear = '20' + mYear;
                        }

                        vDateValueCheck = mMonth + strSeperator + mDay + strSeperator + mYear;
                    } 

                    if (!dateValid(vDateValueCheck))
                    {
                        alert("Enter the date in mm/dd/yyyy");
                        vDateType = vDateTypeTemp;
                        vDateName.value = "";
                        vDateName.focus();
                        return true;
                    }

                    vDateType = vDateTypeTemp;
                    return true;
                }
                else
                {
                    if (vDateType == 1)
                    {
                        if (vDateValue.length == 2)
                        {
                            vDateName.value = vDateValue + strSeperator;
                        }

                        if (vDateValue.length == 5)
                        {
                            vDateName.value = vDateValue + strSeperator;
                        }
                    }

                    if (vDateType == 2)
                    {
                        if (vDateValue.length == 4)
                        {
                            vDateName.value = vDateValue + strSeperator;
                        }

                        if (vDateValue.length == 7)
                        {
                            vDateName.value = vDateValue + strSeperator;
                        }
                    } 

                    if (vDateType == 3)
                    {
                        if (vDateValue.length == 2)
                        {
                            vDateName.value = vDateValue + strSeperator;
                        }

                        if (vDateValue.length == 5)
                        {
                            vDateName.value = vDateValue + strSeperator;
                        }
                    }

                    return true;
                }
            }

            if (vDateValue.length == 10&& dateCheck)
            {
                if (!dateValid(vDateName))
                {
                    alert("Enter the date in mm/dd/yyyy");
                    vDateName.focus();
                    vDateName.select();
                }
            }

            return false;
        }
        else
        {
            if (isNav4)
            {
                vDateName.value = "";
                vDateName.focus();
                vDateName.select();
                return false;
            }
            else
            {
                vDateName.value = vDateName.value.substr(0, (vDateValue.length - 1));
                return false;
            }
        }
    }
}

function dateValid(objName)
{
    var strDate;
    var strDateArray;
    var strDay;
    var strMonth;
    var strYear;
    var intday;
    var intMonth;
    var intYear;
    var booFound = false;
    var datefield = objName;
    var strSeparatorArray = new Array("-"," ","/",".");
    var intElementNr;
    // var err = 0;
    var strMonthArray = new Array(12);
    strMonthArray[0] = "Jan";
    strMonthArray[1] = "Feb";
    strMonthArray[2] = "Mar";
    strMonthArray[3] = "Apr";
    strMonthArray[4] = "May";
    strMonthArray[5] = "Jun";
    strMonthArray[6] = "Jul";
    strMonthArray[7] = "Aug";
    strMonthArray[8] = "Sep";
    strMonthArray[9] = "Oct";
    strMonthArray[10] = "Nov";
    strMonthArray[11] = "Dec";

    strDate = objName;
    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);
        }
    }

    if (strYear.length == 2)
    {
        strYear = '20' + strYear;
    }

    strTemp = strDay;
    strDay = strMonth;
    strMonth = strTemp;
    intday = parseInt(strDay, 10);
    if (isNaN(intday))
    {
        err = 2;
        return false;
    }

    intMonth = parseInt(strMonth, 10);
    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 (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;
            }
        }
    }

    return true;
}

function LeapYear(intYear)
{
    if (intYear % 100 == 0)
    {
        if (intYear % 400 == 0)
        {
            return true;
        }
    }
    else
    {
        if ((intYear % 4) == 0)
        {
            return true;
        }
    }

    return false;
}
//  End 
//starting European(BS)
function CND(x) 
{
    var a1, a2, a3, a4 ,a5, k;
    a1 = 0.31938153, a2 = -0.356563782, a3 =  1.781477937;
    a4 = -1.821255978 , a5 = 1.330274429;

    if (x < 0.0)
    {
        return 1 - CND(-x);
    }

    if (x == 0)
    {
        return 0.5;
    }

    k = 1.0 / (1.0 + 0.2316419 * x);
    return 1.0 - Math.exp(-x * x / 2.0) / Math.sqrt(2*Math.PI)  * k * (a1 + k * (-0.356563782 + k * (1.781477937 + k * (-1.821255978 + k * 1.330274429))));
}

function nd(x) 
{
    return 1.0/Math.sqrt(2*Math.PI) * Math.exp(-x * x / 2);
}
function GBlackScholes(PutCallFlag, S, X, T, r, b,  v) {

    var d1, d2;

    d1 = (Math.log(S / X) + (r-b +((v * v) / 2.0)) * T) / (v * Math.sqrt(T));
    d2 = d1 - v * Math.sqrt(T);

    if (PutCallFlag== 1)
        return S * Math.exp((b-r) * T) * CND(d1)-X * Math.exp(-r * T) * CND(d2);
    else
        return X * Math.exp(-r * T) * CND(-d2) - S * Math.exp((b-r) * T) * CND(-d1);
}

function GDelta(PutCallFlag, S, X, T, r, b,  v)
{
    var d1;

    d1 = (Math.log(S / X) + (r - b + ((v * v) / 2.0)) * T) / (v * Math.sqrt(T));
    if (PutCallFlag== 1)
    {
        return Math.exp((b - r) * T) * CND(d1);
    }
    else
    {
        return Math.exp((b - r) * T) * (CND(d1) - 1);
    }
}

function GGamma(S, X, T, r, b,  v)
{
    var d1 = (Math.log(S / X) + (r-b +((v * v) / 2.0)) * T) / (v * Math.sqrt(T));
    return nd(d1) * Math.exp((b - r) * T) / (S * v * Math.sqrt(T));
}

function GVega(S, X, T, r, b,  v)
{
    var d1 = (Math.log(S / X) + (r-b +((v * v) / 2.0)) * T) / (v * Math.sqrt(T));
    return  S * Math.exp((b - r) * T)  * nd(d1) * Math.sqrt(T);
}

function GTheta(PutCallFlag, S, X, T, r, b,  v) 
{
    var d1 = (Math.log(S / X) + (r - b +((v * v) / 2.0)) * T) / (v * Math.sqrt(T));
    var d2 = d1 - v * Math.sqrt(T);

    if (PutCallFlag == 0)
    {
        return -((S * nd(d1) * v * Math.exp(-b * T)) /  (2 * Math.sqrt(T))) - (b * S * CND(-d1) * Math.exp(-b * T)) + (r * X * Math.exp(-r * T) * CND(-d2));
    }
    else
    {
        return -((S * nd(d1) * v * Math.exp(-b * T)) /  (2 * Math.sqrt(T))) + (b * S * CND(d1) * Math.exp(-b * T)) - (r * X * Math.exp(-r * T) * CND(d2));
    }
}

function GRho(PutCallFlag, S, X, T, r, b,  v) 
{
    var d1 = (Math.log(S / X) + (r - b +((v * v) / 2.0)) * T) / (v * Math.sqrt(T));
    var d2 = d1 - v * Math.sqrt(T);

    if (PutCallFlag == 1)
    {
        if (b == 0)
        {
            return -T * GBlackScholes(1, S, X, T, r, b,  v);
        }
        else
        {
            return T * X * Math.exp(-r * T)  * CND(d2);
        }
    }

    if (PutCallFlag == 0)
    {
        if (b == 0)
        {
            return -T * GBlackScholes(0, S, X, T, r, b,  v);
        }
        else
        {
            return -T * X * Math.exp(-r * T)  * CND(-d2);
        }
    }
}
//Ending European(BS)
//Starting of American(Binomial)

function MakeArray(size)
{
    for(var i = 1; i <= size; i++)
    {
        this.length = size;
        this[i] = 0;
    } 
}

 //Calculation of Eur and Am Put using BINOMIAL TREE
function AmPut(S, X,  v, b,  r,  T, Nofnodes)
{
    var T, dt, a, b2, u, d, p, q;

    P0 = new MakeArray(Nofnodes);
    P1 = new MakeArray(Nofnodes);//American Put Prices

    dt = T / (Nofnodes - 1); //Number of time intervals is Nofnodes -1

    with (Math) 
    {
        a = exp((r - b) * dt);
        b2 = a * a * (exp(v * v * dt) - 1);
        u = ((a * a + b2 + 1) + sqrt((a * a + b2 + 1) * (a * a + b2 + 1) - 4 * a * a)) / (2 * a);
    }

    d = 1 / u;
    p = (a - d) / (u - d);

    q = 1 - p;

    if ((q > 0) && (p > 0))
    {
        var i = Nofnodes;

        with (Math)
        {
            P0[0] = S * pow(d, i - 1);
        } //i is the number of prices

        if (P0[0] <= X)
        {
            P1[0] = X - P0[0];
        }
        else
        {
            P1[0] = 0;
        }

        for (j = 1; j <= i - 1; ++j)
        {
            P0[j] = P0[j - 1] * (u / d);

            if (P0[j] <= X)
            {
                P1[j] = X - P0[j];
            }
            else
            {
                P1[j]=0;
            }
        }
        //End of calculation terminal prices of Am Option

        // Calculation of dt-period  discount rate
        with (Math)
        {
            var daydiscount = exp(-r * dt);
        }

        for (k = Nofnodes; k >= 1; --k)
        {
            for (l = 0; l < k - 1; ++l)
            {
                P0[l] = P0[l] * u; 
                P1[l] = (q * (P1[l]) + p * (P1[l + 1])) * daydiscount;

                if (P1[l] < (X - P0[l]))
                {
                    P1[l] = X - P0[l];
                }
          }
      }

        return P1[0]; //returns american put price
    }
    else 
    {
        alert('Negative probabilities, Increase Volatility');
        return "error";
    }
}//end AmPut

 //Calculation of Eur and Am Put using BINOMIAL TREE
 //Function also returns the value of Amer Put in a normal way. 
function AmCall(S, X,  v, b,  r,  T, Nofnodes)
{
    var T, dt, a, b2, u, d, p, q;

    P0 = new MakeArray(Nofnodes);
    P1 = new MakeArray(Nofnodes);

    dt = T / (Nofnodes - 1);
    with (Math) 
    {
        a = exp((r - b) * dt);
        b2 = a * a * (exp(v * v * dt) - 1);
        u = ((a * a + b2 + 1) + sqrt((a * a + b2 + 1) * (a * a + b2 + 1) - 4 * a * a)) / (2 * a);
    }

    d = 1 / u;
    p = (a - d) / (u - d);
    q = 1 - p;

    if ((q > 0) && (p > 0))
    {
        var i = Nofnodes;

        with (Math)
        {
            P0[0] = S * pow(d, i - 1);
        }

        if (P0[0] >= X)
        {
            P1[0] = P0[0] - X;
        }
        else
        {
            P1[0] = 0;
        }

        for (j = 1; j <= i - 1; ++j)
        {
            P0[j] = P0[j - 1] * (u / d);

            if (P0[j] >= X)
            {
                P1[j] = P0[j] - X;
            }
            else
            {
                P1[j] = 0;
            }
        }
        //End of calculation terminal prices of Am Option

        // Calculation of dt-period  discount rate
        with (Math)
        {
            var daydiscount = exp(-r * dt);
        }

        for (k = Nofnodes; k >= 1; --k)
        {
            for (l = 0; l < k - 1; ++l)
            {
                P0[l] = P0[l] * u; 
                P1[l] = (q * (P1[l]) + p * (P1[l + 1])) * daydiscount;

                if (P1[l] < (P0[l] - X))
                {
                    P1[l] = P0[l] - X;
                }
            }
        }

        return P1[0]; //returns american call price
    }
    else 
    {
        alert('Negative probabilities, Increase Volatility');
        return "error";
    }

}//end AmCall

date1 = new Date();
date2 = new Date();
diff  = new Date();

function compute(form)
{
   var V1, V2, V3, V4, V5, V6;
   var PutCallFlag, S, X, T, r, b, v;

    var v1 = document.op.v1.value;    
    var v2 = document.op.v2.value;

    if (dateValid(v1))
    {
        date1temp = new Date(v1 + " ");
        date1.setTime(date1temp.getTime());
    }
    else
    {
        return false;
    }

    if (dateValid(v2))
    {
        date2temp = new Date(v2 + " ");
        date2.setTime(date2temp.getTime());
    }
    else
    {
        return false;
    }

    if (date2 <= date1)
    {
        alert("Exercise Date must be Greater than Valuation date");
        document.op.v2.focus();
        return false;
    }

    diff.setTime(date2.getTime() - date1.getTime());
    timediff = diff.getTime();
    days = Math.floor(timediff / (1000 * 60 * 60 * 24)); 
    timediff -= days * (1000 * 60 * 60 * 24);

    document.op.t.value = days;

    //var T = T / 365;

    S = parseFloat(document.op.s.value);
    X = parseFloat(document.op.x.value);
    T = parseFloat(document.op.t.value) / 365;
    r = parseFloat(document.op.r.value) / 100.0;
    b = parseFloat(document.op.b.value) / 100.0;
    v = parseFloat(document.op.v.value) / 100.0;
    //option setting
    //European(BS model)
    if (document.op.option.value == 'Eur')
    {
        if (document.op.type.value == 'call') 
        {
            PutCallFlag = 1;
            if (S > X)
                document.op.iv.value = round(S - X, 4);
            else if ((S < X) || (S == X))
                document.op.iv.value = 0;
        }

        if (document.op.type.value == 'put')
        {
            PutCallFlag = 0;
            if (X > S)
                document.op.iv.value = round(X - S, 4);
            else if ((X < S) || (X == S))
                document.op.iv.value = 0;
        }

        V1 = GBlackScholes(PutCallFlag, S, X, T, r, b, v );
        V2 = GDelta(PutCallFlag, S, X, T, r, b,  v);
        V3 = GGamma(S, X, T, r, b,  v);
        V4 = GVega(S, X, T, r, b,  v);
        V5 = GTheta(PutCallFlag, S, X, T, r, b,  v);
        V6 = GRho(PutCallFlag, S, X, T, r, b,  v);

        document.op.price.value = round(V1, 5);
        document.op.delta.value = round(V2, 5);
        document.op.gamma.value = round(V3, 5);
        document.op.vega.value = round(V4, 5);
        document.op.theta.value = round(V5, 5);
        document.op.rho.value = round(V6, 5);
        document.op.tv.value = round((document.op.price.value - document.op.iv.value), 5);
    }
    //American(Binomial)
    else if (document.op.option.value == 'Am')
    {
        var Nofnodes = 20;

         if (document.op.type.value == 'call')
        {   
            price = AmCall(S, X,  v, b,  r,  T, Nofnodes);
            document.op.price.value = round(price, 5);
        }

        if (document.op.type.value == 'put') 
        {
            price = AmPut(S, X,  v, b,  r,  T, Nofnodes);
            document.op.price.value = round(price, 5);
        }    

        if (document.op.type.value == 'call') 
        {
            PutCallFlag = 1;
            if (S > X)
                document.op.iv.value = round(S - X, 5);
            else if ((S < X) || (S == X))
                document.op.iv.value=0;
        }

        if (document.op.type.value == 'put') 
        {
            PutCallFlag = 0;
            if (X > S)
                document.op.iv.value = round(X - S, 5);
            else if ((X < S) || (X == S))
                document.op.iv.value=0;
        }

        V2 = GDelta(PutCallFlag, S, X, T, r, b, v);
        V3 = GGamma(S, X, T, r, b, v);
        V4 = GVega(S, X, T, r, b, v);
        V5 = GTheta(PutCallFlag, S, X, T, r, b, v);
        V6 = GRho(PutCallFlag, S, X, T, r, b, v);

        document.op.delta.value = round(V2, 5);
        document.op.gamma.value = round(V3, 5);
        document.op.vega.value = round(V4, 5);
        document.op.theta.value = round(V5, 5);
        document.op.rho.value = round(V6, 5);
        document.op.tv.value = round((document.op.price.value - document.op.iv.value), 5);
    }
}

function clean()
{
    document.op.s.value = "";
    document.op.x.value = "";
    document.op.b.value = "";
    document.op.r.value = "";
    document.op.v.value = "";
    document.op.v1.value = "";
    document.op.v2.value = "";
    document.op.t.value = "";
    document.op.price.value = "";
    document.op.iv.value = "";
    document.op.tv.value = "";
    document.op.delta.value = "";
    document.op.gamma.value = "";
    document.op.theta.value = "";
    document.op.vega.value = "";
    document.op.rho.value = "";
    document.op.type.value = "all";
}
