//Hire.com utility functions
// createPopup - open a window with the given url
// container - wrapper around array
// v_onLoad - functions to invoke with body onLoad event
// v_onSubmit - functions to invoke with form onsubmit event
//
//

function createPopup( url, windowName, options ) {
    var w;
    w = window.open(url,windowName,options);
    if (w != null) {
        w.focus();
    }
    return false;
}

//Utility functions so components can
//have various methods invoked at onLoad and/or
//onSubmit events

var submitFunctions = new Array();
var loadFunctions   = new Array();

function addOnSubmitFunction(aFunction, anObject) {
	var aCallback = new callback(aFunction, anObject);
	submitFunctions[submitFunctions.length] = aCallback;
}
function addOnLoadFunction(aFunction, anObject) {
	var aCallback = new callback(aFunction, anObject);
	loadFunctions[loadFunctions.length] = aCallback;
}
function doOnLoad() {
	for (var i=0;i<loadFunctions.length;i++) {
	     var func = loadFunctions[i];
	     func.execute();
  	}
}
function doOnSubmit() {
	var rtn = true;
	for (var i=0;i<submitFunctions.length;i++) {
	     	var func = submitFunctions[i];
	     	rtn = func.execute();
	 	if (!rtn)
			return rtn;
  	}
	return rtn;

}
//callback
//calls the desired functionn with Object as parameter
function callback(aFunction, aObject) {
	this.f = aFunction;
	this.params = aObject;
	this.execute = execute;

	function execute() {
	   return this.f(this.params);
  }
}

function stripUnicode(str) {
    var newStr = '';
    var breakChar = "";
    var ASCIIregexp = /[\x00-\xFF]/
    for(var i=0;i<str.length;i++) {
        breakChar = str.charAt(i);
        if( ASCIIregexp.test(breakChar) ) {
            newStr = newStr + breakChar;
        }
    }

    return newStr;
}
