function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x;if(!x.oSrc) {x.oSrc=x.src;} x.src=a[i+2];}
}

function MM_swapPermImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; x.oSrc=a[i+2]; x.src=a[i+2];}
}

function confirmDeleteJob(jobStatus){
	// 6 and 7 are canceled and folder jobs
	if (jobStatus && jobStatus != "6" && jobStatus != "7") {
		alert("You must place a job in cancelled status to delete it. Please note,all notes and history are permanently deleted when you delete a job.");
		return false;
	}
    if (confirm("Are you sure you want to delete this job?  All notes, histories, offers, statistics and learning associated with this job will be deleted.")) {
        return true;
    }
    return false;
}

function confirmDeleteCandidate(){
    if (confirm("Are you sure you want to delete this candidate?  All notes, histories, offers and statistics associated with this candidate will be deleted.")) {
        return true;
    }
    return false;
}

function confirmDeleteCandidates() {
    if (confirm("Are you sure you want to delete these candidates?  All notes, histories, offers and statistics associated with these candidates will be deleted.")) {
        return true;
    }
    return false;
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function eatEnter (field, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (keyCode == 13) {
    	return false;
    }
}
function handleEnter (field, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (keyCode == 13) {
	var i, type;
        for (i = 0; i < field.form.elements.length; i++)
            if (field == field.form.elements[i])
                break;
        while (true) {
            i = (i+1) % field.form.elements.length;
            type = field.form.elements[i].type;
            if ((type == "text")
                || (type == "password")
                || (type == "textarea")
                || (type == "select-one")
                || (type == "option")) break;
        }
        field.form.elements[i].focus();
        return false;
    } else {
        return true;
    }
}

function setFocusEnter (field, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (keyCode == 13) {
        document.getElementById(field).click();
        return false;
    } else {
        return true;
    }
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
	if ((theURL.indexOf('.doc') == theURL.length-4) || (theURL.indexOf('.pdf') == theURL.length-4)) {
		// this is to overcome a problem with IE opening word doc or pdf doc
		newWindow=window.open(theURL,'_blank',features);
	} else {
		newWindow=window.open(theURL,winName,features);
		if (window.focus && newWindow) newWindow.focus();
	}
	if (newWindow) {
		if (!newWindow.opener)
			newWindow.opener = self;
	}
}

function MM_openBrWindowCenter(theURL,winName,popW,popH,features) { //v2.0
    var w = 480, h = 340;
       w = screen.width ;
       h = screen.height;
       if (popW > screen.width) {
         popW = screen.width;
       }
       if (popH > screen.height) {
         popH = screen.height;
       }
    var leftPos = (w-popW)/2, topPos = (h-popH)/2;
    MM_openBrWindow(theURL,winName,'width='+popW+',height='+popH+',top='+topPos+',left='+leftPos+','+features);
}
function openParent(theURL) {
	if (window.opener == null) {
		MM_openBrWindow(theURL,'','scrollbars=yes,resizable=yes');
	} else if (window.opener.parent != null && window.opener != window.opener.parent) {
		window.opener.parent.document.location = theURL;
		window.opener = window.opener.parent;
	} else {
		window.opener.document.location=theURL;
	}
}

function setFocus(id) {
  var e = document.getElementById(id);
  if (typeof e != "undefined" && e != null) {e.focus();}
}

function submitAction(f,a,id) {
  var d=MM_findObj(f);

	if (d != null) {d.action.value=a;d.id.value=id;d.submit();}
}

function submitActionWithName(f,n,v) {
  var d=MM_findObj(f);
	if (d != null) {
		if (d[n] != null) {
			d[n].value = v;
			d.submit();
		}
	}
}

function setAction(f,a)
{
  var d=MM_findObj(f);
	if (d != null)
	{
		d.action.value=a;
	}
}

function RadiobarClick(imgNum, whichButton) {
    var i = MM_findObj(imgNum);
    MM_swapPermImage(imgNum,'','../media/radio_'+whichButton+'.gif',1);
}

function setEnterSubmit (field, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (keyCode == 13) {
        field.form.submit();
        return false;
    } else {
        return true;
    }
}

function onSubmit(f)
{
	return true;
}



function openWindowAndStopEvent(event) {
	var url = this.getAttribute("popupurl");
	var	winName = this.getAttribute("popwin");
	var popWin = window.open(url,winName);
	popWin.focus();
	if (event)
		event.stopPropagation();
	else if (window.event) {
		window.event.cancelBubble = true;
	}
	return false;
}

function fixElementSize() {
	var form = document.forms[0];
	var obj = null;
	for (i=0; form[i]; i++) {
		obj = form[i];
		if (obj.type == 'text') {
			if (obj.value.length > obj.size) {
				obj.size = obj.value.length;
			}
		} else if (obj.type == 'textarea') {
			a = obj.value.split('\n');
			b=0;
			for (j=0;j < a.length; j++) {
				if (a[j].length >= obj.cols) b+= Math.ceil(a[j].length/obj.cols);
			}
			b+= a.length;
			if (b > obj.rows) obj.rows = b;
		}
	}
}


// used to disable checkbox that is connected to a textarea (see external admin email confirmation text)
function onTextChange(textElement, enableCheckboxId)
{
	//alert(textElement.value );
	if( textElement.value == '' )
	{
		var checkboxElement = document.getElementById(enableCheckboxId);
		checkboxElement.checked = false;
	}

}



function limitMultiSelectWidth(e)
{
	var maxLength = 0;
	var len = 0;
	var rulerSpan = document.getElementById('ruler');
	rulerSpan.innerHTML = "";

	for( i = 0; i < e.length; i++ )
	{

		//alert(rulerSpan);
		rulerSpan.innerHTML = "";

        rulerSpan.innerHTML = e.options[i].text;
		len = rulerSpan.offsetWidth;

		//alert(rulerSpan.innerHTML + '-->' + len);
		if( maxLength < len )
		{
			maxLength = len;
		}
	}

	// give some breathing room
	maxLength += 4;

	//alert('maxLengh = ' + maxLength );

	var numElementsWithScrollbar = 4;
//	 if(navigator.userAgent.indexOf("Firefox") != -1)
//	{
 //  		numElementsWithScrollbar = 3;
//	}

	// only do the followijng in the case of non-firefox browser
	if( e.length > numElementsWithScrollbar && navigator.userAgent.indexOf("Firefox") == -1 )
	{
		// if there are more than 3 elements then the scrollbar shows up so add 30px for the scrollbar, otherwise
		// the longest text in the box will be cut off
		//alert('here');
		maxLength = maxLength + 15;
	}



	// if the box is too big, then limit it to 200 px
	if( maxLength > 290 )
	{
		maxLength = 200;
	}

	//alert(maxLength);
	e.style.width = maxLength + 'px';

}



function resizeElement(elementId, maxSize )
{
	var targetElement =  document.getElementById(elementId);

	var targetElementValue = targetElement.value;
	var elementSize = targetElementValue.length;

	if( elementSize > maxSize )
	{
		elementSize = maxSize;
		targetElement.size = elementSize;
	}

}




function limitSelectWidth(e, minMinLength, maxMaxLength )
{
	var maxLength = 0;
	var len = 0;
	var rulerSpan = document.getElementById('ruler');
	rulerSpan.innerHTML = "";


	for( i = 0; i < e.length; i++ )
	{

		//alert(rulerSpan);
		rulerSpan.innerHTML = "";
        rulerSpan.innerHTML = e.options[i].text.replace("<", "M").replace(">", "M");

		len = rulerSpan.offsetWidth;

	//	alert(rulerSpan.innerHTML + '-->' + len);
		if( maxLength < len )
		{
			maxLength = len;
		}
	}

	// only do the followijng in the case of non-firefox browser
	if( maxLength > maxMaxLength )
	{
		maxLength = maxMaxLength;
	}
	else if( maxLength < minMinLength )
	{
		maxLength = minMinLength;
	}

	numElementsWithScrollbar = 1;
	if( e.length > numElementsWithScrollbar )
	{
		// if there are more than 3 elements then the scrollbar shows up so add 30px for the scrollbar, otherwise
		// the longest text in the box will be cut off
		//alert('here');
		maxLength = maxLength + 15;
	}



	//alert('maxlength= ' + maxLength);
	e.style.width = maxLength + 'px';
	rulerSpan.innerHTML = "";
}


// ---- Processing message hover popup
var bSubmitted = false;
function submitFormOnce(e) {
  	//alert(bSubmitted);
  if(bSubmitted) {
	alertCoord(e, 'Processing...');
    return false;
  } else {
  	//alert('!' + bSubmitted );
    bSubmitted = true;
  }
  return true;
}

function submitFormOnceWithMsg(e, msg)
{
  if(bSubmitted) {
	alertCoord(e, msg);
    return false;
  } else {
  	//alert('!' + bSubmitted );
    bSubmitted = true;
  }
  return true;

}

function msgDisappear()
{
	hoverContents = document.getElementById('idProcessingMsg');
	hoverContents.style.top = -10000+'px';
	hoverContents.style.left = -10000+'px';
}

function alertCoord2(e, msg)
{
	if( !e )
	{
		e = window.event;
	    var xcoord = (document.body.clientWidth)/2;
    	var ycoord = document.body.clientHeight/2;
		//alert('innerWidth=' + document.body.clientWidth + ', innerHeight=' + document.body.clientHeight );
	}
	else
	{
	    var xcoord = (window.innerWidth)/2;
    	var ycoord = window.innerHeight/2;
    	//alert('innerWidth=' + window.innerWidth + ', innerHeight=' + window.innerHeight );

	}
	//alert('scrwidth=' + screen.width + ', scrheight=' + screen.height );




	var hoverContents = document.getElementById('idProcessingMsg');
	hoverContents.style.left = xcoord;
	hoverContents.style.top = ycoord;
	hoverContents.style.zIndex=100;
	hoverContents.innerHTML = msg;

	setTimeout('msgDisappear()', 3000);

}

function alertCoord(e, msg)
{
	if( !e )
	{
		e = window.event;
	}

	if( !e || ( typeof( e.pageX ) != 'number' && typeof( e.clientX ) != 'number' ) )
	{
		//window.alert('Your browser did not pass the required information about the event');
	    var xcoord = (window.innerWidth)/2;
    	var ycoord = window.innerHeight/2;
	}
	else if( typeof( e.pageX ) == 'number' )
	{
		var xcoord = e.pageX;
		var ycoord = e.pageY;
	}
	else
	{
		var xcoord = e.clientX; var ycoord = e.clientY;
		if( !( ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) || ( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 && !document.createElement ) || window.navigator.vendor == 'KDE' ) )
		{
			if( document.documentElement && ( document.documentElement.scrollTop || document.documentElement.scrollLeft ) ) {
				xcoord += document.documentElement.scrollLeft; ycoord += document.documentElement.scrollTop;
			}
			else if( document.body && ( document.body.scrollTop || document.body.scrollLeft ) )
			{
				xcoord += document.body.scrollLeft; ycoord += document.body.scrollTop;
			}
		}
	}

	//alert('x=' + xcoord + ', y=' + ycoord );

	var hoverContents = document.getElementById('idProcessingMsg');
	hoverContents.style.left = xcoord;
	hoverContents.style.top = ycoord;
	hoverContents.style.zIndex=100;
	hoverContents.innerHTML = msg;

	setTimeout('msgDisappear()', 3000);
	//window.alert('Mouse coordinates are ('+xcoord+','+ycoord+')');
}


// -------------

/************************************************************************************************************
	(C) www.dhtmlgoodies.com, September 2005

	This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.

	Terms of use:
	You are free to use this script as long as the copyright message is kept intact. However, you may not
	redistribute, sell or repost it without our permission.

	Thank you!

	www.dhtmlgoodies.com
	Alf Magne Kalleland

	************************************************************************************************************/

function showToolTipAtLoc(text, xLoc, yLoc) {
		var obj = document.getElementById('bubble_tooltip');
		var obj2 = document.getElementById('bubble_tooltip_content');
		obj2.innerHTML = text;
		obj.style.display = 'block';
		obj.style.left = xLoc;
		obj.style.top = yLoc;
}

function showToolTip(e,text){
		if(document.all)e = event;
		var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		var leftPos = e.clientX - 50;
		if (leftPos<0) leftPos = 0;
		var topPos = e.clientY - obj.offsetHeight -2 + st
		showToolTipAtLoc(text, leftPos + 'px', topPos + 'px');
}

function hideToolTip()
{
		document.getElementById('bubble_tooltip').style.display = 'none';
}

function encode(str) {
	var result = "";

	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) == " ") result += "+";
		else result += str.charAt(i);
	}

	return escape(result);
}

function getCurrentDate() {
	var now = new Date();
	var year = now.getYear();
	year = (year < 1000) ? year + 1900 : year;
	var month = now.getMonth()+1;
	month = (month<10 ? "0" : "") + month;
	var date = now.getDate();
	date = (date<10 ? "0" : "") + date;

	return year + "-" + month + "-" + date;
}
function getCurrentDateWithDelimeter(delimeter,offset) {
	var now = new Date();
	var offsetVal = new Number(offset);
	var ms = now.getTime();
	ms = ms + offsetVal.toFixed();
	now = new Date(ms);
	var year = now.getYear();
	year = (year < 1000) ? year + 1900 : year;
	var month = now.getMonth()+1;
	month = (month<10 ? "0" : "") + month;
	var date = now.getDate();
	date = (date<10 ? "0" : "") + date;
	return month + delimeter + date + delimeter + year;
}
function getCurrentDateWithOffset(offset) {
	var now = new Date();
	var ms = now.getTime();
	ms = ms + offset;
	now = new Date(ms);
	return now;
}

function getStringForDate(d) {
	var year = d.getYear();
	year = (year < 1000) ? year + 1900 : year;
	var month = d.getMonth()+1;
	month = (month<10 ? "0" : "") + month;
	var date = d.getDate();
	date = (date<10 ? "0" : "") + date;

	return year + "-" + month + "-" + date;
}

function setSelectedTextRange(elm, selectionStart, selectionEnd) {
	if (elm.setSelectionRange) {
		elm.focus();
		elm.setSelectionRange(selectionStart, selectionEnd);
	}
	else if (elm.createTextRange) {
		var range = elm.createTextRange();
		range.collapse(true);
		range.moveEnd('character', selectionEnd);
		range.moveStart('character', selectionStart);
		range.select();
	}
}

function setCaretToEnd (elm) {
	setSelectedTextRange(elm, elm.value.length, elm.value.length);
}

function setCaretToStart (elm) {
	setSelectedTextRange(elm, 0, 0);
}

function setCaretToPos (elm, pos) {
	setSelectedTextRange(elm, pos, pos);
}


function confirmCancelMassEmail() {
  return confirm("Cancelling will exit from mass email and return you to the candidates list. Click \"OK\" to really exit mass email or click \"Cancel\" to stay in mass email.");
}

function resizeTextarea(t) {
	a = t.value.split('\n');
	b=1;
	for (x=0;x < a.length; x++) {
 		if (a[x].length >= t.cols) b+= Math.floor(a[x].length/t.cols);
 	}
	b+= a.length;
	if (b > t.rows) t.rows = b;
}

// Get the width of the viewport (viewable area) in the browser window
// --------------------------------------------------------------------
function getViewportWidth() {
	if (!document.compatMode || document.compatMode=="CSS1Compat") {
		return document.documentElement.clientWidth;
	}
	else if (document.compatMode) {
		return document.body.clientWidth;
	}
	return self.innerWidth;
}

// Get the height of the viewport (viewable area) in the browser window
// --------------------------------------------------------------------
function getViewportHeight() {
	if (!window.opera && (!document.compatMode || document.compatMode=="CSS1Compat")) {
		return document.documentElement.clientHeight;
	}
	else if (document.compatMode && !window.opera) {
		return document.body.clientHeight;
	}
	return self.innerHeight;
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function showWait() {
	var e = document.getElementById('pleaseWait');
	if (typeof e != "undefined" && e != null) {
		var scrollXY = getScrollXY();
		var scrollTop = scrollXY[1];
		
		var contentElem = document.getElementById('lbContentHolder');
		contentElem.style.top=(scrollTop + parseInt(getViewportHeight())/3)+"px";

		var lbDimItElem = document.getElementById('lbDimIt');
		lbDimItElem.style.height=document.documentElement.scrollHeight+"px";
		lbDimItElem.style.top=scrollTop+"px";

		e.style.top=scrollTop+"px"
		e.style.heigth=document.documentElement.scrollHeight+"px";
		e.style.display='block';
	}
}

