//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)
}

function mailpage()
{
  mail_str = "mailto:?subject=" + document.title + " - View Property";
  mail_str += "&body=" + document.title + ". Check out the property in the following URL ";
  mail_str += location.href; 
  location.href = mail_str;
}


//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
}

//CHECKS ALL CHECKBOXES IN A LIST//
//This function takes into consideration if there are 2 buttons on the page //
//THE HIDDEN FIELD "full_select_flag" MUST BE INITIALIZED TO 0 IN FORM //
//FOR ALTERNATE TEXT ON THE BUTTONS, SET "bttn_on" AND "bttn_off" as hidden fields //
function cbCheck(){
	var C = document.form.cb;
	var B1 = document.form.bttn;
	var B2 = document.form.bttn_alt;
	var flag = document.form.full_select_flag;
	if(!B2) B2 = B1;

	var B_on = (document.form.bttn_on) ? document.form.bttn_on.value : "De-Select All";
	var B_off = (document.form.bttn_off) ? document.form.bttn_off.value : "Select All";

	var temp_flag = (document.form.view_type_val) ? parseInt(document.form.view_type_val.value) : 1;
	
	if(flag.value == 0){
		for (i = 0; i < C.length; i++) {
			if(C[i].checked == false) C[i].click()
		}
		B1.value = B_on;
		B2.value = B_on;
		flag.value = temp_flag;
	} else {
		for (i = 0; i < C.length; i++) {
			if(C[i].checked == true) C[i].click()
		}
		B1.value = B_off;
		B2.value = B_off;
		flag.value = 0;
	}
}

//CONFIRMS DELETION OF SELECTED CHECKBOXES IN A LIST//
function cbDelete() { 
	flag = 0 ;
	i = document.form.cb.length
	i = i - 1
	for (var j = 0; j <= i; j++) {
		box = eval(document.form.cb[j]); 
		if (box.checked == true) flag = 1;	
	}
	if (flag == 0 ) {
		alert ("NO SELECTIONS WERE MADE\n\nPlease select the items you wish to delete from your list.");
		return false; 
	} else {
		if (confirm("Are you sure you want to delete these items?  IMPORTANT: You will not be able to undo this action.")) {
			return true;
		} else {  
		    return false;
		}
	}
}

//ALPHABETICALLY SORTS ITEMS IN A LIST - USED IN SEARCH RESULTS PAGES//
function SubmitForSort(sortCol){
	var F=document.form;
	F.colsort.value = sortCol;
	F.startctr.value = parseInt(F.startctr.value);
	F.type.value = F.type.value;
	F.refinekey.value = F.refinekey.value
	if ( F.type.value == "desc" ) F.type.value = "asc";
	else F.type.value = "desc";
	F.submit();
}

//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
}

//CHECKS IF MORE THAN 10 OPTIONS ARE SELECTED IN A MULTIPLE SELECTION MENU//
function checkFor10(input,name){
	var pretxt = "PLEASE RESTRICT YOUR SELECTIONS FOR THE FOLLOWING FIELD:  ";
	var posttxt = "\n----------\nSorry, you can only select a maximum of 10 selections per search field.\nPlease restrict your selections for this field to 10 items or less.";
	var input = eval("document." + input);
	if (Boolean(input)) {
		var counter = 0;
		for (i=0; i<input.length; i++) {
			if (input.options[i].selected ) counter = counter + 1
		}
		if (counter > 10) {
			alert(pretxt + name + posttxt);
			input.focus(); return false;
		} else return true
	} return true
}

//LIMITS THE MAX CHARACTERS IN A TEXTAREA INPUT//
/*function textCounter(input, countfield, maxlimit) {
	var maxlimit = (maxlimit) ? maxlimit : 2000
	if(input.value.length > maxlimit) {
		countfield.value = input.value.length + ' characters: limit exceeded!  Please edit text.';
	} else countfield.value = input.value.length + ' characters used.';
}*/




//CHECKS THE MAX CHARACTERS IN A TEXTAREA INPUT//
function CheckMax(input,name,maxlimit){
	var maxlimit = (maxlimit) ? maxlimit : 2000
	var input = eval("document." + input);
	if(Boolean(input)){
		if(input.value.length > maxlimit){
			alert("\"" + name + "\" EXCEEDS THE CHARACTER LIMIT\n----------\nPlease edit this field to contain only " + maxlimit + " characters.");
			input.focus(); 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 : "";
		if (isWhitespace(string)){
			alert("Please enter valid information for " + name);
			input.focus();
			input.select();
			return false;
		}
		
		input.value = string
	} return true
}
function CheckSelect(input,name,title_alt){
	var input1 = eval("document." + input);
	if(input1.value == ""){
		alert(" Please select " + name);
		//input1.focus();
		//input1.select();
		return false;
	}
	return true
}
function CheckMulti(input,name){
	var input = eval("document." + input);
	var counter = 0;
	if(Boolean(input)){
		if (input.selectedIndex < 0){
			alert("\"" + name + "\" IS EMPTY\n----------\nPlease select the relevant information for this field.");
			input.focus();
			input.select();
			return false;
		}
		for (i = 0; i < input.length; i++){
			if (input.options[i].selected) counter = counter + 1
		}
		if (counter > 10){
			alert("\"" + name + "\" HAS TOO MANY SELECTIONS\n----------\nYou may only select a maximum of 10 items.");
			input.focus();
			input.select();
			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 ("Please enter valid information for  "+name);
				//input.value = "";
				input.focus();
				input.select();
	 			return false;	 
			}
		}
	} return true
}

function CheckUserName(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 ("Please enter valid information for "+name);
				//input.value = "";
				input.focus(); 
				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("Please enter valid email-id.")
			input.focus();
			input.select();
			return false;
		}
	} return true
}

//CHECKS THE SPELLING OF INPUT FIELD//
function checkSpelling(input){
	var text = eval("document." + input);
	if (isWhitespace(text.value)){
		alert("SPELL CHECKER\n\nEnter your text in the textbox provided to check your spelling.");
		text.focus()
		text.select();
 	} else newMedWin('/app/global/spellcheck.adp?text=' + escape(text.value.replace( /\n/gi ," <br>")) )
}

//HIGLIGHT FUNCTION FOR CV KEYWORDS
function highlight(keywordArray){
	var pos = 0;
	var exitCounter = 0 ;
    if ( keywordArray.length != 0 && document.all) {
        var found = false;
        var text = document.body.createTextRange();
		
        for (var i=0; i<=pos && exitCounter < 150 ; i++) {
			
        	text.moveStart("character", 1);
            text.moveEnd("textedit");
			startBookmark = text.getBookmark();
			endBookmark = text.getBookmark();
			for (var j=0; j<keywordArray.length ; j++) {
				text.moveToBookmark(startBookmark) ;
				found=text.findText(keywordArray[j]) ;
				if ( found ) {
					text.execCommand("BackColor",false,"FFFF00") ;
					endBookmark = text.getBookmark();
		            pos++;
				}
			}
			startBookmark = endBookmark ;
			exitCounter++ ;
        }
    }

}

function checkRadio(input,name){
	var input = eval("document." + input);
	if(Boolean(input)){
		var ar = arguments;
		var message = "Please Select atleast one "+name;
		for (i = 2; i < ar.length; i++) {
			if (ar[i] == "-message") { var message = ar[i + 1] } //over-ride the default error message
		}
		var is_empty = 1
		for (i = 0; i < input.length; i++) {
			if(input[i].checked == true) { var is_empty = 0; break } 
		}
	}
	if(is_empty) {
		alert(message);
		return false;
	} return true
}

function IsNumeric(sText,input1){
	var ValidChars = "$0123456789., ";
	var input = eval("document." + sText);
	//var input = eval("document." + sText);
	var Char;


	for (i = 0; i < input.value.length; i++){ 
		Char = input.value.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			alert("Please enter valid information for "+input1);
			//input.value	= "";
			input.focus();
			input.select();
			return false;
		}
	}return true
	
}

function IsInteger(sText,input1){
	
	var ValidChars = "0123456789";
	var input = eval("document." + sText);
	var Char;

	for (i = 0; i < input.value.length; i++){ 
		Char = input.value.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			alert("Please enter valid "+input1);
			input.focus();
			input.select();
			return false;
		}
	}return true
}

function IsPhone(sText,input1){
	
	var ValidChars = "0123456789-";
	var Char;
	var input = eval("document." + sText);
	
	/*if(input.value == ""){
		alert(input1 + " IS EMPTY \n --------------------               \nPlease enter a vaild information!");
		input.focus();
		return false;
	}*/

	for (i = 0; i < input.value.length; i++){ 
		Char = input.value.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			alert("Please enter valid " +input1);
			input.focus();
			input.select();
			return false;
		}
	}return true
}

function CheckAlpha(input,name){
	var input = eval("document." + input);
	if (Boolean(input)) {
		var string = input.value
		var ar = arguments;
		var alt_length = 0;
		var alt_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
		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 ("Please enter valid information for "+name);
				input.focus();
	 			input.select(); return false;	 
			}
		}
	} return true
}

////////  To check string is valid url address or not
function isURL(sText,input1){
	var frmValue = eval("document." + sText);
	urlStr = frmValue.value;
	if(urlStr != ""){
		if (urlStr.indexOf(" ")!=-1){
			alert("Please enter valid website like: http://yahoo.com");
			frmValue.focus();
			frmValue.select();
			return false;
		}
		
		if(urlStr == "" || urlStr == null)
		{
			alert("Please enter valid website ");
			frmValue.focus();
			frmValue.select();
			return false;
		}
		
		urlStr = urlStr.toLowerCase();
		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var atom=validChars + '+';
		var urlPat=/^http:\/\/(\w*)\.([\-\+a-z0-9]*)\.(\w*)/;
		var matchArray=urlStr.match(urlPat);
		if (matchArray==null){
			alert("Please enter valid website ");
			frmValue.focus();
			frmValue.select();
			return false;
		}
		
		var user=matchArray[2];
		var domain=matchArray[3];
		for (i=0; i<user.length; i++) {
			if (user.charCodeAt(i)>127) {
				alert("Please enter valid website like: http://yahoo.com");
				frmValue.focus();
				frmValue.select();
				return false;
			}
		}
		
		for (i=0; i<domain.length; i++) {
			if (domain.charCodeAt(i)>127) {
				alert("Please enter valid website ");
				frmValue.focus();
				frmValue.select();
				return false;
			}
		}
		return true;
	}
	return true;
}