/*
 * MISC.JS
 *
 * Provides ajax and other utility functions
 *
 * sep 13 2006, MA Hartman: created the file.
 * feb 27 2007, N. Saarberg: edited the XMLHttpRequest
 */

/*
 * General-purpose, failsafe XMLHTTP object creator:
 */
function GetXmlHttpObject(url) {
	objXMLHttp = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
    	try {
			objXMLHttp = new XMLHttpRequest();
        } catch(e) {
			objXMLHttp = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		objXMLHttp = false;
        	}
		}
    }
	return objXMLHttp;
}

/*
 * Written by Jonathan Snook, http://www.snook.ca/jonathan
 * Add-ons by Robert Nyman, http://www.robertnyman.com
 */
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

/*
 * Color all the required fields. Return true if every required field has a value.
 */
function color_required()
{  	
    var ret = true;
    var required = getElementsByClassName(document, 'div', 'required');
    for (i = 0; i < required.length; i++) {
        var field = required[i].getElementsByTagName('input').item(0);
        if(!field) {
        	field = required[i].getElementsByTagName('select').item(0);
		}
		if(!field) {
        	field = required[i].getElementsByTagName('textarea').item(0);
		}
		if(!field) {
			return;
		}
			
        if (field.value == '' || field.value == 0) {
            field.style.backgroundColor = '#ffcccc';
            ret = false;
            
            hide_star();		// Else it just keeps on going
        }
        else {
            field.style.backgroundColor = 'white';
        }
    }
    return ret;    
}

function submitByEnter(evt) {
	evt = (evt) ? evt : event;
    var target = (evt.target) ? evt.target : evt.srcElement;
    var form = target.form;
    var charCode = (evt.charCode) ? evt.charCode :
        ((evt.which) ? evt.which : evt.keyCode);
    if (charCode == 13) {
            //alert('enter pressed');
            form.submit();
            return false;
    }
    return true;
    //alert('enter not pressed');
}
