function NewWindow(mypage, myname, w, h, scroll) 
{
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
	win = window.open(mypage, myname, winprops)
	if (parseInt(navigator.appVersion) >= 4) 
		 win.window.focus(); 
}

function unit_window(url) {
  link = window.open(url,"Link","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,left=50,top=100,width=430,height=400");
}

function help_window(url) {
  link = window.open(url,"Link","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,left=50,top=100,width=400,height=200");
}

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_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_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_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

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;
}
/* Old
function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
*/

// New Created by Krina Patel - 02/20/04
function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
		if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
		obj.visibility=v; 
		if (obj.visibility == 'visible')
		{
				obj.zIndex ='2';
		}
		else
		{
				obj.zIndex ='1';
		}
	}
}

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 validPost(form){
		var numErrors = 0;
		for (i = 0; i <= (form.elements.length - 1); i++) {
		
			if (form.elements[i].id == "Required") {
				if (form.elements[i].value == "") {
					numErrors += 1;
					setColor(form.elements[i],"yellow")
				}
				else {
					setColor(form.elements[i],"#ffffff")
				}
			}
    	}

		if (numErrors > 0) {
			alert("Please fill out the required fields.");
			return false;	
		}
}

/* function checkDate(theField) {
var cDate = theField.value.replace( /[\W\D\s]/gi, '' ); // delete all characters different from numbers
if (theField.value != "")
{	
	if( cDate.length == 6 ) 
	{
		var cMonth = cDate.substring(0,2); // month extraction
		var cDay = cDate.substring(2,4); // day extraction
		var cYear = cDate.substring(4); // year extraction
		if (cDay.match(/^([0-2]?\d|3[01])$/) && cMonth.match(/^(0?\d|1[0-2])$/) && cYear.match(/^[0-9]\d$/) ) 
		{
			theField.value = cMonth+'/'+cDay+'/'+cYear; // you can change the separator as you want!
		} 
		else 
		{
			alert( 'Please enter Date in mm/dd/yy format!' ); // problems in pattern matching of some `piece' of date...
			theField.focus();
		}	setColor(theField,"yello")
	} 
	else 
	{
		alert( 'Please enter Date in mm/dd/yy format!' ); //  Date lenght is not 6 (without separator)
		theField.focus();
		setColor(theField,"yello")
	}
}
} */

/* CHANGED */
// New - Created by Krina Patel - 02/20/04
function checkDate(theField) {
//var cDate = theField.value.replace( /[\W\D\s]/gi, '' ); // delete all characters different from numbers
if (theField.value != "")
{	

	var m_arrDate = theField.value.split("/");
	var m_MONTH = m_arrDate[0];
	var m_DAY = m_arrDate[1];
	var m_YEAR = m_arrDate[2];
	
	var cMonth = m_MONTH; // month extraction
	var cDay = m_DAY; // day extraction
	var cYear = m_YEAR; // year extraction
	
	if (cDay.match(/^([0-2]?\d|3[01])$/) && cMonth.match(/^(0?\d|1[0-2])$/) && cYear.match(/^[0-9]\d$/) ) 
	{
		theField.value = cMonth+'/'+cDay+'/'+cYear; // you can change the separator as you want!
	} 
	else 
	{
		alert( 'Please enter Date in mm/dd/yy format!' ); // problems in pattern matching of some `piece' of date...
		theField.focus();
	}	

}
}

function isNumeric( c )
{
	return (c >= '0' && c <= '9' || c==".")
}

function removeNonNumerics(n)
{
	s = n.value
	if ( s == null ) return null
	s = '' + s
	var tmp = ''
	var isLeadingZero = true
	for ( var i = 0; i < s.length; i++ )
	{
		var c = s.charAt( i )
		if ( isNumeric( c ) )
		{
			if ( isLeadingZero == true && c == '0' )
			{
				continue;
			}
			else
			{
				isLeadingZero = false
			}
			tmp = tmp + c
		}		
	}
	return tmp
}

function test(s)
{
	alert("hello")
}

var numbers = "1234567890"
function NumCheck(objName) {
if (objName.value != "")
{
	var valid = false
	var NumField = objName
	for (var i = 0; i <= objName.value.length - 1; i++){
		for (var n = 0; n <= numbers.length - 1; n++){
			if (objName.value.charAt(i) == numbers.charAt(n)){
				valid= true
			}
		}
	}
	if (valid == false){
		alert("Please enter only digits in this field."); 
		NumField.focus();
	}
}
}
function setColor(el, bg) {
  if (el.style) el.style.backgroundColor = bg;
}

function setBGColor(obj,bg) {
  obj.style.background = bg;
}

<!-- Specific Form Validation Function -->
function checkNumber(theField)
{
	theField.value = removeNonNumerics(theField)
}

<!-- Validates at least one value is select in list box, edit drop-down is selected -->
function validList(theForm)
{
 	if (theForm.tableName.selectedIndex == -1)
	{
		alert("You must select a value! Please try again!")
		return false;
	}
	else
		return true;
}

function validEditValue(theForm)
{
	if (theForm.editvalue.selectedIndex == -1)
	{
		alert("You must select a value! Please try again!")
		return false;
	}
	else
		return true;
}

// Private function called by generateExpirationDate() 
// to pad date components with leading zero.
function isDatePaddingRequired(chkStr)
{
	var base       = "0";
	var chkString  = chkStr.toString();
	if (chkString.length == 2) {
	  return chkString;
	}else{
	  chkString = base.concat(chkString);
	  return chkString;
	}
} 

// Generates expiration date based on visa issue date.
function generateExpirationDate()
{
     var tempDate   = document.candForm.visaIssueDate.value;
     var issueDate  = new Date(tempDate);
         expDate    = new Date(issueDate.getYear(), issueDate.getMonth() + 7, issueDate.getDate());    
     var final      = (isDatePaddingRequired(expDate.getMonth()))+'/'+
                         isDatePaddingRequired(expDate.getDate())+'/'+
                           isDatePaddingRequired(expDate.getYear());
     document.candForm.visaExpireDate.value = final;
} 

// Generates expiration date for add candidate based on visa issue date.

function generateExpDate()
{
     var tempDate   = document.cand.visaIssueDate.value;
     var issueDate  = new Date(tempDate);
         expDate    = new Date(issueDate.getYear(), issueDate.getMonth() + 7, issueDate.getDate());    
     var final      = (isDatePaddingRequired(expDate.getMonth()))+'/'+
                         isDatePaddingRequired(expDate.getDate())+'/'+
                           isDatePaddingRequired(expDate.getYear());
     document.cand.visaExpireDate.value = final;
} 


function popEndDate()
{
     var tempDate   = document.candForm.startDate.value;
     var BeginDate  = new Date(tempDate);
         EndDate    = new Date(BeginDate.getYear(), BeginDate.getMonth() + 28, BeginDate.getDate());    
     var final      = (isDatePaddingRequired(EndDate.getMonth()))+'/'+
                         isDatePaddingRequired(EndDate.getDate())+'/'+
                           isDatePaddingRequired(EndDate.getYear());
     document.candForm.contractEndDate.value = final;
}


function popContractEndDate()
{
     var tempDate   = document.cand.startDate.value;
     var BeginDate  = new Date(tempDate);
         EndDate    = new Date(BeginDate.getYear(), BeginDate.getMonth() + 28, BeginDate.getDate());    
     var final      = (isDatePaddingRequired(EndDate.getMonth()))+'/'+
                         isDatePaddingRequired(EndDate.getDate())+'/'+
                           isDatePaddingRequired(EndDate.getYear());
     document.cand.contractEndDate.value = final;
}




// Script calculates total cost amount from Documents, INS
// and Costs Tabs, and displays amount in Costs Tab.
function GrandTotalCost()
{		
	// The 4 Vars below are used for storing individual and cumulative 
	//Tab cost amounts for the DOCUMENTS, INS, and COSTS tabs.
	jDocsTabTotals   = "";
	jINSTabTotals    = "";
	jCostsTabTotals  = "";
	jGrandTotal      = "";

	jDocsTabTotals   =  document.candForm.DocsTotal.value;

	if (document.candForm.DocsTotal.value == "" )
	{
		jDocsTabTotals	=	parseFloat("0.00");
	}
	else
	{
		jDocsTabTotals   =  parseFloat(jDocsTabTotals);
	}

	jINSTabTotals    =  document.candForm.INSTotal.value;
	if (document.candForm.INSTotal.value == "" )
	{
		jINSTabTotals	=	parseFloat("0.00");
	}
	else
	{
		jINSTabTotals   =  parseFloat(jINSTabTotals);
	}
	
	jCostsTabTotals  =  document.candForm.CostsTotal.value;
	if (document.candForm.CostsTotal.value == "" )
	{
		jCostsTabTotals	=	parseFloat("0.00");
	}
	else
	{
		jCostsTabTotals   =  parseFloat(jCostsTabTotals);
	}

	jGrandTotal      =  "$"+eval(jDocsTabTotals+jINSTabTotals+jCostsTabTotals);

	if (jGrandTotal.indexOf(".") == -1)
	{
		var zeroPrecision = ".00";
		jGrandTotal  = jGrandTotal.concat(zeroPrecision);
	}
	else
	{
		var oneDecimalPointPrecision = "0";
		var pos = jGrandTotal.indexOf(".");
		if (pos != -1)
		{		
			if (jGrandTotal.substring(pos, jGrandTotal.length - 1).length == 1)
			{
				jGrandTotal  = jGrandTotal.concat(oneDecimalPointPrecision);
			}
			else
			{
			 	pos = eval(parseInt(pos) + 3);	
				jGrandTotal = jGrandTotal.substring (0, parseInt(pos));
			}
		}
	}	
}

// Script calculates total cost amount from Documents, INS
// and Costs Tabs, and displays amount in Costs Tab.
function GrandTotalViewCost()
{		
	// The 4 Vars below are used for storing individual and cumulative 
	//Tab cost amounts for the DOCUMENTS, INS, and COSTS tabs.
	jDocsTabTotals   = "";
	jINSTabTotals    = "";
	jCostsTabTotals  = "";
	jGrandTotal      = "";

	jDocsTabTotals   =  document.cand.DocsTotal.value;
	if (document.cand.DocsTotal.value == "" )
	{
		jDocsTabTotals	=	parseFloat("0.00");
	}
	else
	{
		jDocsTabTotals   =  parseFloat(jDocsTabTotals);
	}

	jINSTabTotals    =  document.cand.INSTotal.value;
	if (document.cand.INSTotal.value == "" )
	{
		jINSTabTotals	=	parseFloat("0.00");
	}
	else
	{
		jINSTabTotals   =  parseFloat(jINSTabTotals);
	}
	
	jCostsTabTotals  =  document.cand.CostsTotal.value;
	if (document.cand.CostsTotal.value == "" )
	{
		jCostsTabTotals	=	parseFloat("0.00");
	}
	else
	{
		jCostsTabTotals   =  parseFloat(jCostsTabTotals);
	}

	jGrandTotal      =  "$"+eval(jDocsTabTotals+jINSTabTotals+jCostsTabTotals);

	if (jGrandTotal.indexOf(".") == -1)
	{
		var zeroPrecision = ".00";
		jGrandTotal  = jGrandTotal.concat(zeroPrecision);
	}
	else
	{
		var oneDecimalPointPrecision = "0";
		var pos = jGrandTotal.indexOf(".");
		if (pos != -1)
		{			
			if (jGrandTotal.substring(pos, jGrandTotal.length - 1).length == 1)
			{
				jGrandTotal  = jGrandTotal.concat(oneDecimalPointPrecision);
			}
			else
			{
			 	pos = eval(parseInt(pos) + 3);	
				jGrandTotal = jGrandTotal.substring (0, parseInt(pos));
			}			
		}
	}	
}

// Disables PPR HTML elements when PPR is the recruitment source
function disablePPR()
{
	if (candForm.recruitmentSource.value != 4) {
		candForm.PPRContractEndDate.disabled=true;
		candForm.buyout.disabled=true;
	}else{
		candForm.PPRContractEndDate.disabled=false;
		candForm.buyout.disabled=false;	
	}
} 

function disableAddCandPPR()
{
	if (cand.recruitmentSource.value != 4) {
		cand.PPRContractEndDate.disabled=true;
		cand.buyout.disabled=true;
	}else{
		cand.PPRContractEndDate.disabled=false;
		cand.buyout.disabled=false;	
	}
}
