function empopup(urlToOpen,w,h)
{
	var features = "resizable=no,scrollbars=no,width=" + w + ",height=" + h + ",status=yes,toolbar=no,menubar=no,location=no,fullscreen=no"
	awindow = open( urlToOpen.toString(), "_blank",features, true );
	if( awindow.opener == null )
		awindow.opener = self;
	awindow.focus();	
}



function em_trim(str)
{	return str.replace(/^\s*|\s*$/g,"");	}


function em_pwd_validate(frm)
{
	if( em_trim(frm.pwd_new.value).length == 0 )
	{	alert("Please enter your new password");	frm.pwd_new.focus(); return false;	}
	
	if( em_trim(frm.pwd_new_retype.value).length == 0 )
	{	alert("Please retype the new password");	frm.pwd_new_retype.focus(); return false;	}	
	
	// compare the two passwords
	if( frm.pwd_new.value != frm.pwd_new_retype.value )
	{	alert("The passwords do not match. Please retype"); frm.pwd_new_retype.value=""; frm.pwd_new_retype.focus();	return false;	}

	return true;
}


function em_login_validate(frm)
{
	if( frm.em_u.value.length == 0 )
	{	alert("Please enter your User ID");	frm.em_u.focus();	return false;	}

	if( frm.em_p.value.length == 0 )
	{	alert("Please enter your Password");	frm.em_p.focus();	return false;	}

	return true;
}



function em_department_validate(frm)
{
	if( em_trim(frm.dname.value).length == 0 )
	{	alert("Please enter the department name");	frm.dname.focus();	return false;	}
	return true;
}


function em_validate_timeoff( frm )
{
	// make sure each value is less than 365 and is numerical only
	totals = frm.totalVals.value;
	for( i=0; i<totals; i++)
	{
		nam  = document.getElementById("tfname_" + i);
		if( nam.value.length == 0 )
		{	alert("Please select an Absence Name");	return false;	}

		val = document.getElementById("tfvalue_" + i);
		if( isNaN(val.value) )
		{	alert("Please select a numerical value");	val.focus();	return false;	}
		
		if( val.value.length == 0 )
		{	alert("Please enter a value");	val.focus();	return false;	}
		
		if( val.value < 0 || val.value > 365 )
		{	alert("Please select a number between 0 and 365");	val.focus();	return false;	}
		
		col  = document.getElementById("tfcolor_" + i);
		if( col.value.length == 0 )
		{	alert("Please select a color");	return false;	}
	}
	
	return true;
}



function em_employee_update_department_role_rows( selBox, defaultRole )
{
	total = selBox.options.length;
	for( i=0; i<total; i++)
	{
		if( selBox.options[i].selected == true )
		{	document.getElementById("RoleRow_" + selBox.options[i].value).style.display = "";	}
		else
		{
			document.getElementById("employeeRole_" + selBox.options[i].value).value = defaultRole;
			document.getElementById("RoleRow_" + selBox.options[i].value).style.display = "none";
		}
	}
}

function em_employee_validation( frm )
{
	if( frm.txtFirstName.value.length == 0 )
	{	alert("Please enter the employee's first name");	frm.txtFirstName.focus();	return false;	}

	if( frm.txtLastName.value.length == 0 )
	{	alert("Please enter the employee's last name");	frm.txtLastName.focus();	return false;	}
	
	if( em_trim(frm.txtUsername.value).length == 0 )
	{	alert("Please enter the employee's username");	frm.txtUsername.focus();	return false;	}
	
	if( em_trim(frm.txtPassword.value).length == 0 )
	{	alert("Please enter the employee's password");	frm.txtPassword.focus();	return false;	}
	
	if( frm.dtStart.value.length == 0 )
	{	alert("Please enter the employee's track date");	return false;	}
	
	// check start date - current and previous
	if( frm.dtStart != null && frm.dtStartOld != null)
	{
		if( frm.dtStart.value != frm.dtStartOld.value )
		{
			dnew	= new String(frm.dtStart.value);
			dnewP	= dnew.split("-");
			
			// create javascript date objects
			dateNew	= new Date( dnewP[2], dnewP[0] - 1, dnewP[1] );
			dateNow	= new Date();
			
			if( dateNew > dateNow )
			{	alert("Please select a past date. Future track dates not allowed");	return false;	}
		}
	}
	
	// at least one department
	deptObj = document.getElementById("employeeDepartments");
	total = deptObj.options.length;
	deptNotSelected = true;
	for( i=0; i<total; i++)
	{
		if( deptObj.options[i].selected == true )
		{	deptNotSelected = false;	}
	}
	
	if( deptNotSelected )
	{	alert("Please select at least one department");	return false;	}
		
	// check all absence values
	if( frm.absence_totals != null )

	{
		total = parseInt( frm.absence_totals.value );
		for( i=0; i<total; i++)
		{
			aidBox = document.getElementById("absence_" + i);
			
			if( aidBox != null )
			{
				aid = aidBox.value;
				valObj = document.getElementById("employeeTimeoff_" + aid);
				val = valObj.value;

				if( val.length == 0 )
				{	alert("Please enter the time off number of days");	valObj.focus();	return false;	}

				if( isNaN(val) )
				{	alert("Please enter a numerical value");	valObj.focus();	return false;	}

				if( val < 0 || val > 365 )
				{	alert("Please enter a number between 0 and 365");	valObj.focus();	return false;	}
			}
		}
	}
	
	// if extended leave selected
	exlid = frm.exlid.value;
	if( frm.intStatus.value == exlid )
	{
		if( frm.dtExtendedLeave.value.length == 0 )
		{	alert("Please selecte the track date for the Extended Leave");	return false;	}
	}

	return true;
}



function em_absence_department_select(dropdown)
{
	if( dropdown.value.length > 0 )
	{
		document.getElementById("ppid").value = "";
		document.getElementById("deptSelect").value = 1;
		document.getElementById("EMRecord").submit();
	}
}

function em_absence_employee_select(dropdown)
{
	document.getElementById("ppid").value = "";
	document.getElementById("deptSelect").value = 1;
	document.getElementById("EMRecord").submit();
}

function em_absence_business_day_select( dropdown, exvalue )
{
	if( dropdown.value == exvalue )
	{	document.getElementById("exRow").style.display = "";	}
	else
	{
		document.getElementById("exDays").value = "";
		document.getElementById("exDaysType").value = "";
		document.getElementById("exRow").style.display = "none";
	}
}

function em_record_absence_validation(frm)
{
	if( document.getElementById("deptSelect").value == 1 )
	{	return true;	}
	
	else
	{
		// do validation
		if( frm.dept.value.length == 0 )
		{	alert("Please select a department");	frm.dept.focus();	return false;	}
	
		if( frm.empl.value.length == 0 )
		{	alert("Please select an employee");	frm.empl.focus();	return false;	}
		
		if( frm.abst.value.length == 0 )
		{	alert("Please select the absence type");	frm.abst.focus();	return false;	}
		
	}
	
	document.getElementById("deptSelect").value = 0;
	
	// fill in all the date values that are selected

	mydates = "";

	for( i=0; i<daysIndex; i++)
	{
		index = daysIndices[i];
		if( daysSelected[ index ] != null )
		{	mydates = mydates + "|" + index;	}
	}
	document.getElementById("dates").value = mydates;
	document.getElementById("EMRecord").submit();
}




function em_vacation_request_validation( frm )
{
	if( frm.days_1.value == 0 && frm.days_2.value == 0 )
	{	alert("Please enter your vacation preferences");	return false;	}

	mydates = "";
	for( i=0; i<pdaysIndex; i++)
	{
		index = pdaysIndices[i];
		if( pdaysSelected[ index ] != null )
		{	mydates = mydates + "|" + index;	}
	}
	document.getElementById("pdates").value = mydates;
	
	if( frm.days_2.value > 0 )
	{
		mydates = "";
		for( i=0; i<sdaysIndex; i++)
		{
			index = sdaysIndices[i];
			if( sdaysSelected[ index ] != null )
			{	mydates = mydates + "|" + index;	}
		}
		document.getElementById("sdates").value = mydates;
	}
	
	return true;
}



function em_feedback_validate(frm)
{
	if( frm.ftype.value.length == 0 )
	{	alert("Please select the feedback type");	frm.ftype.focus();	return false;	}
	
	if( frm.fcomments.value.length == 0 )
	{	alert("Please enter some comments");	frm.fcomments.focus();	return false;	}

	return true;
}


function em_vacation_requests_status_change( dropdown )
{	location.href= "vacation_requests.php?vs=" + dropdown.value;	}

function em_vacation_reject_this( chkbox, index )
{
	if( chkbox.checked == true )
	{
		document.getElementById("rejectRow" + index ).style.display = "";
		document.getElementById("vapp1_" + index ).disabled = true;
		document.getElementById("vapp2_" + index ).disabled = true;
	}
	else
	{
		document.getElementById("rejectRow" + index ).style.display = "none";
		document.getElementById("vapp1_" + index ).disabled = false;
		document.getElementById("vapp2_" + index ).disabled = false;
	}
}

function em_vacation_accept_1( chkbox, index )
{
	if( chkbox.checked == true )
	{
		document.getElementById("vreject_" + index ).disabled = true;
		document.getElementById("vapp2_" + index ).disabled = true;
	}
	else
	{
		document.getElementById("vreject_" + index ).disabled = false;
		document.getElementById("vapp2_" + index ).disabled = false;
	}
}

function em_vacation_accept_2( chkbox, index )
{
	if( chkbox.checked == true )
	{
		document.getElementById("vreject_" + index ).disabled = true;
		document.getElementById("vapp1_" + index ).disabled = true;
	}
	else
	{
		document.getElementById("vreject_" + index ).disabled = false;
		document.getElementById("vapp1_" + index ).disabled = false;
	}
}




function em_absence_show_all()
{
	document.getElementById('absenceComplete').style.display= '';
	document.getElementById('absenceCompleteShow').style.display= 'none';
}

function em_feedback_show_all()
{
	document.getElementById('feedbackComplete').style.display= '';
	document.getElementById('feedbackCompleteShow').style.display= 'none';
}



function em_do_bird_month_change( ddown )
{
	if( ddown.value.length > 0 )
	{	location.href="reporting_bird_month.php?fdate=" + ddown.value;	}
}


/*
function em_absence_half_day_check( cBox )
{
	if( cBox.checked == true )
	{
		bdays = parseFloat( document.getElementById("bsnsd").value );
		bdays = bdays - 0.5;
	}
	else
	{
		// make sure we have atleast one 
		bdays = parseFloat( document.getElementById("bsnsd").value );
		bdays = bdays + 0.5;
	}

	if( bdays <= 0 )
	{
		bdays = 0;
		document.getElementById("hd").checked = false;
		document.getElementById("hd").disabled = true;
	}
	else
	{	document.getElementById("hd").disabled = false;	}
	
	document.getElementById("bsnsd").value = bdays;	
}
*/

function em_absence_half_day_check( cBox )
{
	hddays = document.getElementById("hddays");
	
	if( cBox.checked == true )
	{
		if( hddays != null )
		{
			// make sure some are selected
			total = hddays.options.length;
			sel = false;
			for(i=0;i<total;i++)
			{
				if( hddays.options[i].selected == true )
				{	sel = true;	}
			}
			
			if( sel == false )
			{
				cBox.checked = false;
				alert("Please select some days from the list before checking Half Day");
				hddays.focus();
				return false;
			}
			calendar_update_businessdays();
		}
		else
		{
			bdays = parseFloat( document.getElementById("bsnsd").value );
			bdays = bdays - 0.5;
		}
	}
	else
	{
		if( hddays != null )
		{
			// deselect everything in the display
			total = hddays.options.length;
			for(i=0;i<total;i++)
			{	hddays.options[i].selected = false;	}
			calendar_update_businessdays();
		}
		else
		{
			// make sure we have atleast one 
			bdays = parseFloat( document.getElementById("bsnsd").value );
			bdays = bdays + 0.5;
		}
	}
	
	if( hddays == null )
	{
		if( bdays <= 0 )
		{
			bdays = 0;
			document.getElementById("hd").checked = false;
			document.getElementById("hd").disabled = true;
		}
		else
		{	document.getElementById("hd").disabled = false;	}
		
		document.getElementById("bsnsd").value = bdays;	
	}
}
















function em_handle_add_ex_leave( total )
{
	// open a new ex leave 
	for( i=0; i<total; i++)
	{
		if( document.getElementById("ExStartEnd_" + i ).style.display == "none")
		{
			// check if last one had an end date
			if( i > 0 )
			{
				sDate = document.getElementById("dtExStart_" + (i-1) );
				if( sDate.value.length == 0 )
				{	alert("Cannot add an additional extended leave if previous one does not have an start and end date");	return false;	}


				eDate = document.getElementById("dtExEnd_" + (i-1) );
				if( eDate.value.length == 0 )
				{	alert("Cannot add an additional extended leave if previous one does not have an end date");	return false;	}
			}
			
			document.getElementById("ExStartEnd_" + i ).style.display = "";
			return;
		}
	}
	alert("Maximum of " + total + " extended leaves allowed");
}

function ex_delete_this( chkBox, index )
{
	if( chkBox.checked == true )
	{
		// blank out dates
		//document.getElementById("dtExStart_" + index ).value = "";
		//document.getElementById("dtExEnd_" + index ).value = "";	
	}
}

function em_check_extended_leave( selBox )
{
	// if employee exists
	eid = document.getElementById("employeeid");
	if( eid == null )
	{	return;	}
	
	exCheck = document.getElementById("suspendActivation").value;
	if( exCheck == 1 )
	{
		alert("The Employee's Extended Leave Period is in effect. Please update the Extended Leave end date in order to change the status");
		selBox.value = 0;
	}
}

function em_extended_leaves_show_all()
{
	document.getElementById('exComplete').style.display= '';
	document.getElementById('extendedCompleteShow').style.display= 'none';
}




function em_employee_delete()
{
	conf = confirm( "This operation will delete the Employee and all Employee history from the System. Continue ?" );
	if( conf == false )
	{	return false;	}
	else
	{
		conf2 = confirm( "Are you sure you want to delete the Employee from the System ?");
		return conf2;
	}
	
	return true;
}




function em_update_vacation_period_dates( selBox )
{
	url = "vacation.php?ppid="
	url += document.getElementById("ppid").value;
	location.href = url;
}


function em_absence_period_select( dropdown )
{
	if( dropdown.value.length > 0 )
	{
		document.getElementById("deptSelect").value = 1;
		document.getElementById("EMRecord").submit();
	}
}



function em_do_bird_view_change()
{
	// show wait message
	//document.getElementById("waitMessage").style.display = "";


	url = "reporting_bird_month.php?print=yes&fdate=";

	// month from
	url += "&mf=" + document.getElementById("mf").value;
	
	// year from
	url += "&mt=" + document.getElementById("mt").value;
	
	// month to
	url += "&yf=" + document.getElementById("yf").value;
	
	// year to
	url += "&yt=" + document.getElementById("yt").value;
	
	// sort
	url += "&ss=" + document.getElementById("ss").value; 
	
	// group by department
	gd = document.getElementById("gd");
	if( gd.checked == true )
	{	url += "&gd=yes";	}
	
	// manual change so save in db
	url += "&save=yes";
	
	location.href= url;
}

function em_do_bird_view_change_for_month()
{
	ms = document.getElementById("ms");
	if( ms.value.length > 0 )
	{
		// show wait message
		//document.getElementById("waitMessage").style.display = "";
	
		url = "reporting_bird_month.php?&print=yes";
		
		mydate = new String( ms.value );
		myarray = mydate.split("-");
		m = myarray[0];	y = myarray[2];
		
		url += "&mf=" + m;
		url += "&yf=" + y;
		url += "&mt=" + m;
		url += "&yt=" + y;
		url += "&ss=" + document.getElementById("ss").value;
		if( document.getElementById("gd").checked == true )
		{	url += "&gd=yes";	}
		
		location.href = url;
	
	}
}

