function addEvent(element, type, handler) {
    // assign each event handler a unique ID
    if (!handler.$$guid) handler.$$guid = addEvent.guid++;
    // create a hash table of event types for the element
    if (!element.events) element.events = {};
    // create a hash table of event handlers for each element/event pair
    var handlers = element.events[type];
    if (!handlers) {
        handlers = element.events[type] = {};
        // store the existing event handler (if there is one)
        if (element["on" + type]) {
            handlers[0] = element["on" + type];
        }
    }
    // store the event handler in the hash table
    handlers[handler.$$guid] = handler;
    // assign a global event handler to do all the work
    element["on" + type] = handleEvent;
};
// a counter used to create unique IDs
addEvent.guid = 1;

function removeEvent(element, type, handler) {
    // delete the event handler from the hash table
    if (element.events && element.events[type]) {
        delete element.events[type][handler.$$guid];
    }
};

function handleEvent(event) {
    // grab the event object (IE uses a global event object)
    event = event || window.event;
    // get a reference to the hash table of event handlers
    var handlers = this.events[event.type];
    // execute each event handler
    for (var i in handlers) {
        this.$$handleEvent = handlers[i];
        this.$$handleEvent(event);
    }
};

function switchPolicy() {

    var selectedvalue = document.getElementById('policytypeid').value;

    if (selectedvalue == "2") {
        document.getElementById("singletripdates").className = "showblock";
        document.getElementById("passengers").className = "showblock";
        document.getElementById("annualdates").className = "hide";

    } else if (selectedvalue == "1") {
        document.getElementById("singletripdates").className = "hide";
        document.getElementById("passengers").className = "hide";
        document.getElementById("annualdates").className = "showblock";
    }
}


function toggleUpsell(divid, c) {
    var div = document.getElementById(divid).className = "showblock";
    if (parseInt(c) < 5) {
        document.getElementById('div').className = "showblock";
    } else {
        document.getElementById(divid).className = "hide";
    }
}


function daysinmonth(lnMonth, lnYear) {
    var dt1, cmn1, cmn2, dtt, lflag, dycnt, lmn
    lmn = lnMonth - 1
    dt1 = new Date(lnYear, lmn, 1)
    cmn1 = dt1.getMonth()
    dtt = dt1.getTime() + 2332800000
    lflag = true
    dycnt = 28
    while (lflag) {
        dtt = dtt + 86400000
        dt1.setTime(dtt)
        cmn2 = dt1.getMonth()
        if (cmn1 != cmn2) {
            lflag = false
        } else {
            dycnt = dycnt + 1
        }
    }
    if (dycnt > 31) {
        dycnt = 31
    }
    return dycnt
}

function setdays(sobjname, datemode) {
    var dobj = eval(sobjname + "d")
    var mobj = eval(sobjname + "m")
    var yobj = eval(sobjname + "y")
    var hobj = eval(sobjname)
    var monthdays = daysinmonth(mobj.options[mobj.selectedIndex].value, yobj.options[yobj.selectedIndex].value)
    var selectdays = dobj.length
    var curdy = dobj.options[dobj.selectedIndex].value
    if (curdy.length == 1) {
        curdy = "0" + curdy
    }
    var curmn = mobj.options[mobj.selectedIndex].value
    if (curmn.length == 1) {
        curmn = "0" + curmn
    }
    var curyr = yobj.options[yobj.selectedIndex].value
    if (selectdays > monthdays) {
        for (var dlp = selectdays; dlp > monthdays; dlp--) {
            dobj.options[dlp - 1] = null
        }
    } else if (monthdays > selectdays) {
        for (var dlp = selectdays; dlp < monthdays; dlp++) {
            dobj.options[dlp] = new Option(dlp + 1, dlp + 1)
        }
    }
    if (curdy > monthdays) {
        dobj.options[monthdays - 1].selected = true
        curdy = monthdays
    }
    if (datemode == 1) {
        var curdate = curmn + "/" + curdy + "/" + curyr
    } else if (datemode == 2) {
        var curdate = curdy + "/" + curmn + "/" + curyr
    } else if (datemode == 3) {
        var curdate = curyr + curmn + curdy
    } else if (datemode == 4) {
        var cdate = new Date(curyr, curmn - 1, curdy)
        var curdate = cdate.toGMTString()
    }
    hobj.value = curdate
}

function ee(name, domain, suffix, text) {
    var address = name + "\u0040" + domain + "." + suffix;
    var url = "mai" + "lto:" + address;

    if (!text) {
        text = address;
    }

    document.write("<a href=\"" + url + "\">" + text + "</a>");
}


function healthcheck() {
	var strQ = "r";
	var numQuestions = 3;
	var numAnswers = 2;
	var txt = "";
	for (var i = 1; i < numQuestions + 1; i++) {
		var options = document.getElementsByName(strQ + i);
		var answered = false;
		for (var j = 0; j < numAnswers; j++) {
			if (options[j].checked == true) {
				answered = true;
				break;
			}
		}
		if (answered == false) {
			txt += "Please answer question: " + i + "\n";
		}
	}
	if (txt != "") {
		alert(txt);
		return false
	}
}


function showPolicyHolder(radioGroup)
{
    var x, len = radioGroup.length;
    for (x=0; x<len; ++x)
    {
        if (radioGroup[x].checked)
        {
            document.getElementById('policyholder'+radioGroup[x].value).style.display = 'block';
        }
        else
        {
            document.getElementById('policyholder'+radioGroup[x].value).style.display = 'none';
        }
    }
    return true;
}
