function validate(el) { // validate email
    if (el.nodeName != 'INPUT') return false;
    
    return !!el.value.match(/^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i);
}

function validateNotEmpty(el) {
    if (el.nodeName != 'INPUT') return false;
    
    return !!el.value.length;
}

function selectChosen(el) {
    if (el.nodeName != 'SELECT') return false;
    
    return !!(el.value > 0); // works if value=""
}

function alphaBg(el) {
    var mypng = null;
    var bg = el.currentStyle.backgroundImage;
	if (bg && bg.match(/\.png/i) != null){
		mypng = bg.substring(5,bg.length-2);
		el.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mypng+"', sizingMethod='scale')";
		el.style.backgroundImage = "url('/images/x.gif')";
	}
}

function popUp(url, w, h) {
    window.open(url, 'popup', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=' + w + ',height=' + h);
}

function fadeUp(element, red, green, blue) {
    if (element.fade) {
        clearTimeout(element.fade);
    }
    element.style.backgroundColor = "rgb("+red+","+green+","+blue+")";
    if (red == 255 && green == 255 && blue == 255) {
        return;
    }
    var newred = red + Math.ceil((255 - red)/10);
    var newgreen = green + Math.ceil((255 - green)/10);
    var newblue = blue + Math.ceil((255 - blue)/10);
    var repeat = function() {
        fadeUp(element,newred,newgreen,newblue);
    };
    element.fade = setTimeout(repeat,100);
}

if (typeof Array.indexOf != 'function') {
    Array.prototype.indexOf = function(f, s) {
        if (typeof s == 'undefined') s = 0;
        for (var i = s; i < this.length; i++) {
            if (f === this[i]) return i;
        }
        return -1;
    };
}