

/***************************************************
navigation rollover functions

compatible with IE 5 + and NET 6 +
created by Eric Freeberg, b-swing 03/04/2003
****************************************************/


/***************************************************
 determine the x position for each pulldown 
 menu based on browser type and width 
****************************************************/



// determine width of browser in px
function base_x(){
	var x;
	if(document.all){
		x = document.body.clientWidth;
	} else {
		x = window.innerWidth;
	}	
	return x;
}

// calculate left position of pulldown menu based 
// on nav button
function pull_position(navid){

	if(document.all){
		var leftjust = 	((base_x() - 772) / 2) ;
	} else {
		var leftjust = 	((base_x() - 772) / 2);
	}
	
	switch(navid){
		case 1:
			return Math.round(leftjust + 125);
		case 2:
			return  Math.round(leftjust + 125);
		case 3:
			return  Math.round(leftjust + 125);
		case 4:
			return  Math.round(leftjust + 125);
		default:
			return null;
	
	} 

}

function bswPositionPulldowns(){
	//alert('postion pulldowns');
	for(i=1;i<5;i++){
		document.getElementById("bswPullDown" + i).style.left = pull_position(i);
	}
}


// 'section' variable used to identify current section. 
// this variable is updated in the body of the page
section = "";


// preload main nav images

var bswRollover = new Array();
var bswRolloff = new Array();


for(i=1;i<5;i++){
	bswRollover[i] = new Image();
	bswRollover[i].src = "/images/topnav/nav_" + i + "_on.gif";	
	bswRolloff[i] = new Image();
	bswRolloff[i].src = "/images/topnav/nav_" + i + "_off.gif";	
}	



// main nav functions

function bswRollOver(num){
	if(num != section){
		document.images["nav" + num].src = bswRollover[num].src;
	}
	var pullDowns = new Array(5);
		pullDowns[0] = document.getElementById("bswPullDown0");
		pullDowns[1] = document.getElementById("bswPullDown1");
		pullDowns[2] = document.getElementById("bswPullDown2");
		pullDowns[3] = document.getElementById("bswPullDown3");
		pullDowns[4] = document.getElementById("bswPullDown4");
		
	for(var i=0; i < pullDowns.length; i++)
   {
      var pullDown = pullDowns[i];
		if (i != num)
      {
        pullDown.style.display = "none";		  
      } else {
			pullDown.style.display = "block";
		}		
    }
} 
function bswRollOff(num){
	if(num != section){
		document.images["nav" + num].src = bswRolloff[num].src;
	}
	document.getElementById("bswPullDown" + num).style.display = "none";
	document.getElementById("bswPullDown" + section).style.display = "block";
}


// preload subnav images

var bswServicesRollover = new Array();
var bswServicesRolloff = new Array();

for(i=1;i<4;i++){
	bswServicesRollover[i] = new Image();
	bswServicesRollover[i].src = "/images/topnav/servicesnav_" + i + "_on.gif";	
	bswServicesRolloff[i] = new Image();
	bswServicesRolloff[i].src = "/images/topnav/servicesnav_" + i + "_off.gif";	
}

var bswAttorneysRollover = new Array();
var bswAttorneysRolloff = new Array();

var bswResourcesRollover = new Array();
var bswResourcesRolloff = new Array();

for(i=1;i<4;i++){
	bswResourcesRollover[i] = new Image();
	bswResourcesRollover[i].src = "/images/topnav/resourcesnav_" + i + "_on.gif";	
	bswResourcesRolloff[i] = new Image();
	bswResourcesRolloff[i].src = "/images/topnav/resourcesnav_" + i + "_off.gif";	
}

var bswCareersRollover = new Array();
var bswCareersRolloff = new Array();

for(i=1;i<5;i++){
	bswCareersRollover[i] = new Image();
	bswCareersRollover[i].src = "/images/topnav/careersnav_" + i + "_on.gif";	
	bswCareersRolloff[i] = new Image();
	bswCareersRolloff[i].src = "/images/topnav/careersnav_" + i + "_off.gif";	
}

// rollover functions used within the pulldown menus

function bswServicesRollOver(num){	
	document.images["servicesnav" + num].src = bswServicesRollover[num].src;
} 
function bswServicesRollOff(num){
	document.images["servicesnav" + num].src = bswServicesRolloff[num].src;
} 
function bswAttorneysRollOver(num){	
	document.images["attorneysnav" + num].src = bswAttorneysRollover[num].src;
} 
function bswAttorneysRollOff(num){
	document.images["attorneysnav" + num].src = bswAttorneysRolloff[num].src;
} 
function bswResourcesRollOver(num){	
	document.images["resourcesnav" + num].src = bswResourcesRollover[num].src;
} 
function bswResourcesRollOff(num){
	document.images["resourcesnav" + num].src = bswResourcesRolloff[num].src;
} 
function bswCareersRollOver(num){	
	document.images["careersnav" + num].src = bswCareersRollover[num].src;
} 
function bswCareersRollOff(num){
	document.images["careersnav" + num].src = bswCareersRolloff[num].src;
}

// preload auxiliary nav images

var bswAuxRollover = new Array();
var bswAuxRolloff = new Array();

for(i=1;i<4;i++){
	bswAuxRollover[i] = new Image();
	bswAuxRollover[i].src = "/images/topnav/auxnav_" + i + "_on.gif";	
	bswAuxRolloff[i] = new Image();
	bswAuxRolloff[i].src = "/images/topnav/auxnav_" + i + "_off.gif";	
}

// rollover functions for use in auxiliary
function bswAuxRollOver(num){	
	document.images["auxnav" + num].src = bswAuxRollover[num].src;
} 
function bswAuxRollOff(num){
	document.images["auxnav" + num].src = bswAuxRolloff[num].src;
}



/***************************************************
 the following functions hide and show divs for the 
 practice area and industry detail pages
****************************************************/
var bswPracAreaTabsOn = new Array();
var bswPracAreaTabsOff = new Array();


for(i=1;i<5;i++){
	bswPracAreaTabsOn[i] = new Image();
	bswPracAreaTabsOn[i].src = "/images/services/paTab_" + i + "_on.gif";	
	bswPracAreaTabsOff[i] = new Image();
	bswPracAreaTabsOff[i].src = "/images/services/paTab" + i + "_off.gif";	
}	

function bswPracAreaTabs(num){
	
	
	var pracAreaDivs = new Array(5);
		pracAreaDivs[0] = document.getElementById("pracAreaBios");
		pracAreaDivs[1] = document.getElementById("pracAreaBios");
		pracAreaDivs[2] = document.getElementById("pracAreaRes");
		pracAreaDivs[3] = document.getElementById("pracAreaClients");
		pracAreaDivs[4] = document.getElementById("pracAreaContact");
	
	// document.getElementById("pracAreaClients").style.display = "block";
	 
	for (var i=0; i < pracAreaDivs.length; i++)
   {
		var pracAreaDiv = pracAreaDivs[i];
		
		if (i != num)
      {
			pracAreaDiv.style.display = "none";
			document.images["paTab" + num].src = bswPracAreaTabsOn[num].src;  
      } else {
			pracAreaDiv.style.display = "block";
			document.images["paTab" + num].src = bswPracAreaTabsOn[num].src;
		}		
    } 
} 



/* 
 * pop-up window functions
*/


function bswPopUp(url, name, width, height, scroll) {
	var properties = "scrollbars=" + scroll + ",width=" + width + ",height=" + height; 
	var bswPopUpWin = window.open(url, name, properties);
	bswPopUpWin.focus();
}


/***************************************************
all functions below for GMAC
verify and remove
****************************************************/

function setComplianceMessage(id){



	if(document.getElementById("cd"+id).value.length < 1){
		
		document.getElementById("message" + id).style.color = "#F89C33";
		document.getElementById("message" + id).innerHTML = "Please Enter a Compliance Date";	
		
	}
	
	document.getElementById("cd"+id).focus();
	
}

function checkComplianceMessage(id){
	

	document.getElementById("message" + id).style.color = "#666666";
	document.getElementById("message" + id).innerHTML = "Target Compliance Date";	

}


function setRadioSelection(id){
	document.getElementById(id).checked = "true";
}


// this array holds all the question ids on the page

var pageQuestion = new Array();
var pageIDs = new Array();

function isPageResponseValid(){
	

	var isValid = true;	
	
	var invalidResponses = new Array();
		
	// check all questions on the page 
	
	for(i=0;i<pageQuestion.length;i++){
	
		if(!isResponseValid(pageQuestion[i],true)){

		
			invalidResponses[invalidResponses.length] = pageIDs[i];
	
			
		}
		
		
	
	}
	if(invalidResponses.length < 1){
	
		return true;	
		
	} else {
	
	
		var confirm_text = "The following questions have incomplete responses: ";
		
		for(i = 0;i < invalidResponses.length; i++){
		
			confirm_text += invalidResponses[i];
			
			if(i == invalidResponses.length - 1){
				
				confirm_text += ". ";
			
			} else {
			
				confirm_text += ", ";
			}
		
		}
		
		confirm_text += "\nIncomplete responses will not be saved. Are you sure you want to continue?";
		
		var agree = confirm(confirm_text)
		
		if(agree){
		
			for(i=0;i<pageQuestion.length;i++){
				if(!isResponseValid(pageQuestion[i],false)){
					clearResponse(pageQuestion[i]);					
				}	
					
			}			
			
			return true;
	
		} else {
			
			return false;
			
		}
		

		
	}
	

}


// array with questions that have responses at page load

var pageQuestionWithResponse = new Array();

function clearResponse(id){
	
	
	document.forms.survey.elements["rad" + id][0].checked = false;
	document.forms.survey.elements["rad" + id][1].checked = false;
	document.forms.survey.elements["rad" + id][2].checked = false;
	document.forms.survey.elements["cd:" + id].value = "";
	document.forms.survey.elements["comments:" + id].value = "";
	
	
	// if question has a previously saved response, and the user has not yet cleard the repsonse, 
	// add the id the "cleared_responses" hidden input field... 
	
	if(pageQuestionWithResponse[id]){
			
		if( document.getElementById("cleared_responses").value.indexOf(id) < 0){
		
			document.getElementById("cleared_responses").value += id + ",";
		}
		
	}
	
}

function isResponseValid(id,alertuser){
	
	

	// has user select "no" as a radio response
	
	var noselect = document.forms.survey.elements["rad" + id][1].checked;

	
	var radio = false;

	if(document.forms.survey.elements["rad" + id][0].checked){

		radio = true;

	} else if(document.forms.survey.elements["rad" + id][2].checked) {

		radio  = true;

	}
	
	
	// check compliance date
	
	var cd = false;
	
	if(document.forms.survey.elements["cd:" + id].value.length > 0) {
		
			
		if (isDate(document.forms.survey.elements["cd:" + id].value,alertuser)==false){
		
			cd = false;
		
		} else {
			
			cd  = true;	
		
		}
 			
	}  
	
	
	// check comments field
	
	var comments = false;
	
	if(document.forms.survey.elements["comments:" + id].value.length > 0) {
		
		comments =  true;
	
	} 
	
		
	if(noselect && cd && comments){
	
		// user selected no and enter a value
		// for compliance date and entered a comment
	
		return true;
	
	} else if (radio && comments){
	
	
		// user selected either yes or na
		// and entered a comment
	
		return true;
	
	} else if(!radio && !noselect && !cd && !comments){
		
	
		// user selected nothing!
		
		return true;
	
	} else {
	
		return false;
	
	}

}



var dtCh= "/";
var minYear=2001;
var maxYear=2010;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr,alertuser){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	
	if (pos1==-1 || pos2==-1){
		
		if(alertuser){
			alert("The date format should be : mm/dd/yyyy");
		}
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		if(alertuser){
			alert("Please enter a valid month");
		}
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		if(alertuser){
			alert("Please enter a valid day");
		}
		return false;
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		if(alertuser){
			alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
		}
		return false;
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		if(alertuser){
			alert("Please enter a valid date");
		}
		return false;
	}
return true;
}

function ValidateForm(){
	var dt=document.frmSample.txtDate
	if (isDate(dt.value)==false){
		dt.focus()
		return false
	}
    return true
 }
