    Now = new Date();
    NowDay = Now.getDate();
    NowMonth = Now.getMonth();
    NowYear = Now.getFullYear();
 
    //BEGIN
     //function for returning how many days there are in a month including leap years
    function DaysInMonth(WhichMonth, WhichYear) {
        var DaysInMonth = 31;
        if (WhichMonth == "Apr" || WhichMonth == "Jun" || WhichMonth == "Sep" || WhichMonth == "Nov") DaysInMonth = 30;
        if (WhichMonth == "Feb" && (WhichYear / 4) != Math.floor(WhichYear / 4)) DaysInMonth = 28;
        if (WhichMonth == "Feb" && (WhichYear / 4) == Math.floor(WhichYear / 4)) DaysInMonth = 29;
        return DaysInMonth;
    }
 
    //function to change the available days in a months
    function ChangeOptionDays(Which) {
        DaysObject = eval("document.electric." + Which + "Day");
        MonthObject = eval("document.electric." + Which + "Month");
        YearObject = eval("document.electric." + Which + "Year");
 
        Month = MonthObject[MonthObject.selectedIndex].text;
        Year = YearObject[YearObject.selectedIndex].text;
 
        DaysForThisSelection = DaysInMonth(Month, Year);
        CurrentDaysInSelection = DaysObject.length;
        if (CurrentDaysInSelection > DaysForThisSelection) {
            for (i = 0; i < (CurrentDaysInSelection - DaysForThisSelection); i++) {
                DaysObject.options[DaysObject.options.length - 1] = null
            }
        }
        if (DaysForThisSelection > CurrentDaysInSelection) {
            for (i = 0; i < (DaysForThisSelection - CurrentDaysInSelection); i++) {
                NewOption = new Option(DaysObject.options.length + 1);
                DaysObject.add(NewOption);
            }
        }
        if (DaysObject.selectedIndex < 0) DaysObject.selectedIndex == 0;
    }
    //function to write option years plus x
    function WriteYearOptions(YearsAhead) {
        line = "<option></option>";
        for (i = 0; i < YearsAhead; i++) {
            line += "<option>";
            line += NowYear + i;
        }
        return line;
    }
//END
 
    function initvars() {
    //see if any vars were passed back and populate fields
        var qsParm = new Array();
        var query = window.location.search.substring(1);
        var parms = query.split('&');
        for (var i = 0; i < parms.length; i++) {
            var pos = parms[i].indexOf('=');
            if (pos > 0) {
                var key = parms[i].substring(0, pos);
                var val = parms[i].substring(pos + 1);
                qsParm[key] = val;
            }
        }
        if (qsParm["mpantop"] != null) {
            if (qsParm["mpantop"].length == 8) {
                electric.txtmpantop1.value = qsParm["mpantop"].substr(0, 2);
                electric.txtmpantop2.value = qsParm["mpantop"].substr(2, 3);
                electric.txtmpantop3.value = qsParm["mpantop"].substr(5, 3);
            }
        }
        if (qsParm["mpanbot"] != null) {
            if (qsParm["mpanbot"].length == 13) {
                electric.txtmpanbot1.value = qsParm["mpanbot"].substr(0, 2);
                electric.txtmpanbot2.value = qsParm["mpanbot"].substr(2, 4);
                electric.txtmpanbot3.value = qsParm["mpanbot"].substr(6, 4);
                electric.txtmpanbot4.value = qsParm["mpanbot"].substr(10, 3);
            }            
        }
        if (qsParm["sup"] != null) electric.txtcurrentsupplier.value = qsParm["sup"];
        if (qsParm["eml"] != null) electric.txtemail.value = qsParm["eml"];
        if (qsParm["tel"] != null) electric.txttelephone.value = qsParm["tel"];
        if (qsParm["cn"] != null) electric.txtcompanyname.value = qsParm["cn"];
        if (qsParm["cnm"] != null) electric.txtcontactname.value = qsParm["cnm"];
        if (qsParm["ren"] != null) setdate(qsParm["ren"]);
    }
    function mpaninput(txtthis, maxlen, txtnext) {
        if (txtthis.value.length == maxlen) {
            document.getElementById(txtnext).focus()
            document.getElementById(txtnext).select;
        }
    }
    function numonly() {
        var k;
        k = event.keyCode;
        event.returnValue = ((k > 47 && k < 58));
    }
    function isvalidtel(value) {/* basic validation of email */
        var objRegExp = /^[0-9 ]{8,15}$/;
        //check for valid email
        retval = objRegExp.test(value);
        if (!retval) alert("Invalid Telephone Number");
        return retval;
    }
    function isvalidemail(value) {/* basic validation of email */
        var objRegExp = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*\s+&lt;(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})&gt;$|^(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})$/;
        //check for valid email
        retval = objRegExp.test(value);
        if (!retval) alert("Invalid Email");
        return retval;
    }
    function isvaliddate() {
        var DaysObject = eval("document.electric.txtDay");
        var MonthObject = eval("document.electric.txtMonth");
        var YearObject = eval("document.electric.txtYear");
 
        var theday = DaysObject[DaysObject.selectedIndex].text;
        var themonth = MonthObject[MonthObject.selectedIndex].text;
        var theyear = YearObject[YearObject.selectedIndex].text;
        if (theday == null) theday='';
        if (themonth == null) themonth='';
        if (theyear == null) theyear='';
        if (theday == '' && themonth == '' && theyear == '') return true;
        
        var thedate = theday + ' ' + themonth + ' ' + theyear;
        
        var retval = (!isNaN(new Date(thedate).getFullYear()));
        if (!retval) alert("Invalid Renewal Date");
        return retval;
    }
 
    function basicValidate()
   {
   /* basic validation */
       
       itsvalid = (!(electric.txtcompanyname.value.length == 0 || electric.txtcontactname.value.length == 0 ||
           electric.txttelephone.value.length == 0 || electric.txtemail.value.length == 0));
       if (!itsvalid)
           alert('Company Name, Email, Telephone and Contact Name are required', 'Alert Dialog');

       if (itsvalid) itsvalid = isvalidemail(electric.txtemail.value);
       if (itsvalid) itsvalid = isvalidtel(electric.txttelephone.value);
       /* check mpan is 8 and 18 in length */
       if (((electric.txtmpantop1.value + electric.txtmpantop2.value + electric.txtmpantop3.value).length != 8 ||
            (electric.txtmpanbot1.value + electric.txtmpanbot2.value + electric.txtmpanbot3.value + electric.txtmpanbot4.value).length != 13) && itsvalid) {
           alert("Sorry the MPAN supplied was not valid - if you don't know yours please call us on 08444 721561 and we'll find it for you");
           itsvalid = false;
       }
        if (itsvalid) electric.submit();
    }


