//OPENS NEW WINDOW//
function newWin(url) {
	//find extra passed attributes in arguments
	var ar = arguments;
	var size = "";
	var name = "";
	for (i = 1; i < ar.length; i++) {
		if (ar[i] == "-size") { size = ar[++i] } //window size
		if (ar[i] == "-name") { name = ar[++i] } //window name
	}
	//determine which window size type to use
	if (size == "rect"){ var width = 650; var height = 375; var winParms = "scrollbars=1" }
	else if  (size == "smallrect") { var width = 350; var height = 350; var winParms = "scrollbars=1"; var url = url + '&w=srect' }
	else { var width = 650; var height = 500;  var winParms = "scrollbars=1,resizable=1" }
	
	//center the new window on the screen
	var left = Math.floor( (screen.width - width) / 2);
	var top = Math.floor( (screen.height - height) / 2);
	var winParms = winParms + ",top=" + top + ",left=" + left + ",height=" + height + ",width=" + width;
	if (parseInt(navigator.appVersion) >= 4) { window.focus(); }
	window.open(url,name,winParms)
}




//PRELOAD IMAGES USED IN MOUSEOVERS//
function preloadimages(){
	var myimages=new Array()
	for (i=0; i < preloadimages.arguments.length; i++){
		myimages[i]=new Image()
		myimages[i].src=preloadimages.arguments[i]
	}
}

//CLOSES CHILD AND LOADS NEW PAGE INTO OPENER PAGE - USED IN job_preview_footer.byt
function changeFramedOpener (url) {
	if (confirm("PLEASE NOTE: THIS ACTION WILL CLOSE THIS JOB PREVIEW WINDOW.\nWhen you log in or register with Bayt, you will find this job located in your Job Folder for easy access.  \n\nDo you wish to continue?")) {
		if ( window.parent.opener == null ){
			window.parent.location.href = url
		} else {
			window.parent.close();
			window.parent.opener.focus();
			window.parent.opener.location = url;
		}
	}
}	

//CLOSES WINDOW//
function closeWin(){
	window.close();
}

//GOES BACK IN HISTORY IF HISTORY EXISTS, ELSE CLOSES WINDOW//
function backWin(){
	if(history.length == 0) window.close()
	if(history.length > 0) history.back()
}

//PRINTS PAGE//
function printPage(){
	window.print();
}

//DELETE CONFIRMATION//
function ConfirmDelete(){ 
	if (confirm("REALLY DELETE THIS ITEM?\n----------\nWarning: you will not be able to undo this action.")) { 
		delete_record = true;
	} else {  
		delete_record = false;
	} return delete_record;
}

//OPENS NEW WINDOW//
function newWin(url,size) {
	if (size == "s"){ var width = 300; var height = 300; var winParms = "" }
	else if (size == "m"){ var width = 450; var height = 400; var winParms = "scrollbars=1" }
	else { var width = 700; var height = 500;  var winParms = "scrollbars=1,resizable=1" }

	var left = Math.floor( (screen.width - width) / 2);
    var top = Math.floor( (screen.height - height) / 2);
    var winParms = winParms + ",top=" + top + ",left=" + left + ",height=" + height + ",width=" + width;
    if (parseInt(navigator.appVersion) >= 4) { window.focus(); }
	window.open(url,'',winParms)
}
function newSmallWin(url) { newWin(url,"s") }
function newMedWin(url) { newWin(url,"m") }

//CLEARS A SPECIFIED FIELD - USED FOR onFocus//
function textClear(input){
	if ( input.value == input.defaultValue ) input.value = ""
}

//RESTORES A SPECIFIC FIELD TO IT'S DEFAULT - USED FOR onBlur//
function textRestore(input) {
	if ( input.value == "" ) input.value = input.defaultValue
}




//FORM VALIDATOR FUNCTIONS//
function isEmpty(s){ return ((s == null) || (s.length == 0)) }
function isWhitespace(s){
    var i;
    var whitespace = " \t\n\r";
	if (isEmpty(s)) return true;
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1) return false;
	} return true
}


//FUNCTIONS TO REMOVE LEADING AND TRAILING SPACES FROM A STRING USED IN CheckInput()
function ltrim(string){
	while (1){
		if (string.substring(0, 1) != " ") break;
		string = string.substring(1, string.length);
	}
	return string;
}
function rtrim(string){
	while (1){
		if (string.substring(string.length - 1, string.length) != " ") break;
		string = string.substring(0, string.length - 1);
	}
	return string;
}
function trim(string){
	var tmpstr = ltrim(string);
	return rtrim(tmpstr);
}

//CHECKS IF INPUT AND SELECT FORM ITEMS ARE FILLED OR SELECTED//
function CheckInput(input,name,alt){
	var input = eval("document." + input);
	if (Boolean(input)){
		//trim leading and trailing spaces//
		string = trim(input.value)
		var txt = (alt) ? alt : "Please provide the relevant information for this field.";
		if (isWhitespace(string)){
			alert("\"" + name + "\" IS EMPTY\n----------\n" + txt);
			input.focus(); return false;
		}
		input.value = string
	} return true
}
function CheckSelect(input,name,title_alt){
	var title = (title_alt) ? title_alt : "\"" + name + "\" IS EMPTY";
	var input = eval("document." + input);
	if(Boolean(input)){	
		if (input.selectedIndex == 0){
			alert(title + "\n----------\nPlease select the relevant information for this field.");
			input.focus(); return false;
		}
	} return true
}


//CHECKS FOR ALPHANUMERIC CHARACTERS//
//for alternate character sets, define "ALT_CHARS" within arguments//
//for alternate string length, define "ALT_LENGTH" within arguments//
function CheckAlphanum(input,name){
	var input = eval("document." + input);
	if (Boolean(input)) {
		var string = input.value
		var ar = arguments;
		var alt_length = 0;
		var alt_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_";
		for (i = 2; i < ar.length; i++) {
			if (ar[i] == "ALT_LENGTH") { alt_length = ar[++i] }
			if (ar[i] == "ALT_CHARS") { alt_chars = ar[++i] }
		}
		//string length test//
		if (string.length < alt_length) {
		    alert("\"" + name + "\" IS INVALID\n----------\nThis field must contain at least " + alt_length + " characters.");
			input.select(); return false;
		}
		//charset test//
		for (var i = 0; i < string.length; i++){
			var chr = string.charAt(i);
			var ok = 0;
			for (var j = 0 ; j < alt_chars.length ; j++){
				allowed = alt_chars.charAt(j);
				if (chr == allowed) ok = 1;
			}
			if (ok == 0){
				alert ("\"" + name + "\" IS INVALID\n----------\nPlease use valid characters for this field -- use the following characters only:\n" + alt_chars);
	 			input.select(); return false;	 
			}
		}
	} return true
}

//VALIDATES IF AN EMAIL ADDRESS CONTAINS "@" AND "."//
function badEmail(input){
	if (!CheckInput(input,"E-MAIL ADDRESS")) return false;
	if (!CheckAlphanum(input,"E-MAIL ADDRESS","ALT_CHARS","abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-@.","ALT_LENGTH",5)) return false;
	
	var input = eval("document." + input);
	if(Boolean(input)){
		if (input.value.indexOf('@') == -1 || input.value.indexOf('.') == -1){
			alert("INVALID E-MAIL ADDRESS\n----------\nYou have not entered a valid E-MAIL address.\nPlease check that the e-mail address you entered contains both the \"@\" and the \".\" characters.")
			input.select(); return false;
		}
	} return true
}


