
//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 : "Please provide the relevant information for this field.";
		if (isWhitespace(string)){
			alert(name + " IS EMPTY\n----------\n" + txt);
			input.select(); 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
}
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(); return false;
		}
		for (i = 0; i < input.length; i++){
			if (input.options[i].selected) counter = counter + 1
		}
		if (counter > 10){
			alert(name + " : TOO MANY SELECTIONS\n----------\nYou may only select a maximum of 10 items.");
			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----------\nYour " + name + " 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
}

//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()
 	} 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++ ;
        }
    }

}

// Photo and Video  Upload Scripts

function onkeyPress(e)
{
var key = window.event ? e.keyCode : e.which;
if (key == 13)
StartClick();
e.cancelBubble = true;
e.returnValue = false;
return false;
}


function validate_photo() 
{
	if (document.frm1.file1.value == "")
	{
		alert("Erreur: S'il vous plaît choisir photo.");
		return false;
	}
	else 
	{
		var ext = document.frm1.file1.value;
	  	ext = ext.substring(ext.length-3,ext.length);
	  	ext = ext.toLowerCase();
	  	if((ext == 'jpg') || (ext == 'jpeg') || (ext == 'gif'))
		{
			return true; 
		}
	  	else 
		{
	    	alert("Erreur: Les types de fichier sont autorisés: [ jpg, jpeg, gif ] uniquement.");
	    	return false; 
		}
	}

	return true;

}


function validate_video()
{
  if (document.video_form.video_url.value == "")
  {
    alert("Erreur: S'il vous plaît entrer une valeur pour le champ URL de la vidéo YouTube.");
	document.video_form.video_url.focus();
    return (false);
   }

  else
   {
	 var iChars1 = "!@#$%^&*()+-[]\\\';,{}|\"<>¿";

  	 for (var i = 0; i < document.video_form.video_url.value.length; i++) 
	 {
  		if (iChars1.indexOf(document.video_form.video_url.value.charAt(i)) != -1) 
		{
  		alert ("URL de votre vidéo comporte des caractères spéciaux. \nCe ne sont pas autorisés.\n S'il vous plaît de les supprimer et essayer de nouveau.");
		document.video_form.video_url.focus();
  		return false;
  		}
  	 }
   }
 
  if (document.video_form.video_desc.value == "")
   {
    alert("Erreur: S'il vous plaît entrer une valeur pour le champ de description.");
	document.video_form.video_desc.focus();
    return (false);
   }

  else
   {
	var iChars = "!@#$%^&*()+=[]<>?¿";

  	for (var i = 0; i < document.video_form.video_desc.value.length; i++) 
	{
  		if (iChars.indexOf(document.video_form.video_desc.value.charAt(i)) != -1) 
		{
  		alert ("Votre description comporte des caractères spéciaux. \nCe ne sont pas autorisés.\n S'il vous plaît de les supprimer et essayer de nouveau.");
		document.video_form.video_desc.focus();
  		return false;
  		}
  	}
  }

return (true);
}


function toggle(id) {
    var identity = document.getElementById(id);
    if(identity.style.display == "block" || identity.style.display == "")
    {
        identity.style.display="none";
    } else {
        identity.style.display="block";
    }
}


function confirmSubmit()
{
var agree=confirm("Etes-vous sûr de vouloir continuer?");
if (agree)
	return true ;
else
	return false ;
}


function limitText_video(limitField, limitCount, limitNum)
 {
	if (limitField.value.length > limitNum)
	{
		limitField.value = limitField.value.substring(0, limitNum);
	} 
	else 
	{
		limitCount.value = limitNum - limitField.value.length;
	}
}
