//===============================================================================
// JavaScript assistance library
// (c) 2003 Andrey Tushev
//===============================================================================

//===============================================================================
// Library initialization
//===============================================================================
if(!document.jasPreloadImages) {
	document.jasPreloadImages = new Array();
}

function jasInit() {
    jasRolloverInit();
	jasValidateFormInit();
}

//===============================================================================
// Image rollover
//-------------------------------------------------------------------------------
// Process "src" and "srcOver" attributes of <img> tags
//===============================================================================
function jasRolloverInit() {
    if(document.images && (document.images.length>0) && document.images[0].getAttribute) {
    	window.status = "Preloading images";

    	for(var i=0; i<document.images.length; i++) {
    	    var image = document.images[i];
    		var srcNormal = image.src;
    		var srcOver   = image.getAttribute('srcOver');
    		if((srcOver != null) && (srcOver != "")) {
    			document.jasPreloadImages[srcNormal] = new Image();
    			document.jasPreloadImages[srcNormal].src = srcNormal;
    			document.jasPreloadImages[srcOver] = new Image();
    			document.jasPreloadImages[srcOver].src = srcNormal;

    			image.setAttribute('srcNormal', srcNormal);
    			image.srcNormal = image.src;

                image.onmouseover = jasOnImageOver;
                image.onmouseout  = jasOnImageOut;

    		}
    	}

    	document.jasPreloaded = true;
    	window.status = "";
	}
}

function jasOnImageOver(evt) {
    evt = (evt) ? (evt) : ((window.event) ? (window.event) : (""));
    if(evt) {
        var elem = evt.target ? evt.target : evt.srcElement;
        elem.src = elem.getAttribute('srcOver');
    }
}

function jasOnImageOut(evt) {
    evt = (evt) ? (evt) : ((window.event) ? (window.event) : (""));
    if(evt) {
        var elem = evt.target ? evt.target : evt.srcElement;
        elem.src = elem.getAttribute('srcNormal');
    }
}

//===============================================================================
// Form validation
//-------------------------------------------------------------------------------
// Precess "regexp" and "regexpMessage" attributes of text input controls
//===============================================================================
function jasValidateFormInit() {
    if(RegExp && document.body && document.body.getAttribute) {
    	for(var i=0; i<document.forms.length; i++) {
    	    if((document.forms[i].onsubmit==null) || (document.forms[i].onsubmit=='') || (document.forms[i].onsubmit=='undefined')) 
            {
    		    document.forms[i].onsubmit = jasCheckForm;

    		}
    	}
	}
}

function jasCheckForm(nn_event) {
	var curr_form;
	if(nn_event) {
		curr_form = nn_event.target;
	}
	else if(event) {
		curr_form = event.srcElement;
	}

	var message = '';

	for(var i=0; i<curr_form.elements.length; i++) {
		var element = curr_form.elements[i];
		var regexp = element.getAttribute('regexp');
        //alert(regexp);

		if((regexp != null) && (regexp != "")) {
			var reg = new RegExp(regexp);

			if(!reg.test(element.value)) {
				if(message=='') {
					element.focus();
				}
				message += element.getAttribute('regexpMessage') + "\n";
			}
		}
	}


	if(message=='') {
		return true;
	}
	else {
    	var begin = curr_form.getAttribute('regexpMessage')
        if((begin != null) && (begin != "")) {
    	    message = begin + ':\n\n' + message;
    	}
		window.alert(message);
		return false;
	}
}


//===============================================================================
// Collapsing
//-------------------------------------------------------------------------------
// Collapse certain element if it is visible and
// displays it if it is invisible
//===============================================================================
function jasHideAndShow(id) {
	var tag = document.getElementById(id).tagName;
	var display = 'block';
	if(tag=='SPAN') {
		display = 'inline';
	}

    var style = document.getElementById(id).style;
	style.display = (style.display=='none') ? display : 'none';
}
