// JavaScript Document

function show(p,t){
	var par = document.getElementById(p);
	var tar = document.getElementById(t);
	var IE = /*@cc_on!@*/false; //IE JScript Detection

	if (tar && par) {
	    var coords = new elementPosition(par);
	    if (tar.style.display == 'none' || tar.style.display == '') {
	        tar.style.display = 'block';
	        tar.style.top = coords.y + 32 + 'px';
	        tar.style.left = coords.x + 'px';
	        if (IE) { par.setAttribute('className', 'drop'); }
	        else { par.setAttribute('class', 'drop'); }
	        tar.onmouseover = function () { show(par.id, tar.id); }
	        tar.onmouseout = function () { show(par.id, tar.id); }
	    } else {
	        tar.style.display = 'none';
	        if (IE) { par.removeAttribute('className'); }
	        else { par.removeAttribute('class'); }
	    }
	}
}

function elementPosition(elem) {
    var x = 0;
    var y = 0;
    var text = "";
    while (elem.offsetParent) {
        x += elem.offsetLeft + (elem.clientLeft || 0);
        y += elem.offsetTop + (elem.clientTop || 0);
        elem = elem.offsetParent;
    }
    return { x: x, y: y };
}

var reEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;  // email address
var reDate = /^(0[1-9]|1[012])(\/)(0[1-9]|[12][0-9]|3[01])(\/)\d{4}$/; // mm/dd/yyyy
var rePhone = /^\d{3}(-)\d{3}(-)\d{4}$/; // xxx-xxx-xxxx
var reZip = /^\d{5}([\-]\d{4})?$/; // xxxxx or xxxxx-xxxx

function checkQuantity(id) {
    var el = document.getElementById(id);

    if (isNaN(el.value)) {
        el.value = 1;
    } 
    else {
        var num = parseFloat(el.value);
        var remain;
        var roundvalue;
        var result;
        remain = num % 0.25; // this will be somewhere between 0 and .25
        roundvalue = 0.25 / 2;

        if (remain >= roundvalue) { // rounding up
            result = num - remain;
            result += 0.25;
        }
        else { // rounding down
            result = num - remain;
        }

        if (result <= 0) { result = 1; }
        el.value = result;
    }
}
