/* kick user to new mind source code browser upgrade page if using outdated browser */
if(!document.getElementById) {
	window.location.href='http://source.newmind.ca/browserupgrade.php';
}

/* print today's date for current USHR News link date -- we're caching files, remember? */
nd = new Date();
(nd.getDate() < 10) ? nd_day = "0" + nd.getDate(): nd_day = nd.getDate(); /* need day value in 2 digit format */
((nd.getMonth()+1) < 10) ? nd_month = "0" + (nd.getMonth()+1): nd_month = (nd.getMonth()+1); /* need month value in 2 digit format */
newsDate = "" + nd.getFullYear() + nd_month + nd_day + ""; /* need "" for js to interpret as string */

/* need this for ancient USHR archives, 2001 & earlier */												     
function big_win(url) {   
   big_win = window.open(url, "big_win", "width=790,height=470,dependent,scrollbars=1,toolbar=0,menubar=0,location=0,status=0,resizable,alwaysRaised,left=0,top=20"); 
}

/* fieldFocus -- set focus to target field */
function fieldFocus(id) {
	document.getElementById(id).focus();
	document.getElementById(id).style.background="#CCFFCC"; //#FFFFCC
}

/* MM_jumpMenu -- select list jump to link */
function MM_jumpMenu(targ,selObj,restore) {
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  	if (restore) selObj.selectedIndex=0;
}

/* showLayer -- shows/hides target layer; changes btton text (e.g. from "?" to "Close Box") */
function showLayer(btnName, btnTxt, layerName) {
	
	button = document.getElementById(btnName);
	layer = document.getElementById(layerName);
	
	/* hide layer */
	if(layer.style.display == 'block') { 
		layer.style.display = 'none'; 
		button.value = btnTxt; 
	}
	/* else, show layer */
	else { 
		layer.style.display = 'block'; 
		button.value = 'Close Box'; 
	}	
}

/* confirmDelete -- confirm deletion of target item (e.g. a file, DB entry, etc.) */
function confirmDelete(target) {
	return (confirm("Are you sure you want to delete [" + target + "]? Warning! This operation cannot be undone!")) ? true : false;
}

/*
*************
DROPDOWN MENU METHODS
*************
*/
/* initialize global last layer shown var -- use to hide the last layer  */
lastLayer = "";
HideLayerTimer = null;

/* hide currently displayed nav layer on window resize */
window.onresize = hideLayer;
	
/* showDropDown -- shows target dropdown menu layer (hides previous, if exists) */
function showDropDown(layerName, imgName, layerCnt, showLayer) {
	//alert(layerName);

	/* set last layer = to layer name if not yet set */
	if(lastLayer == "") {
		lastLayer = layerName;
	} 
	
	/* set doc layer references */	
	docLast = document.getElementById(lastLayer).style;
	docCur = document.getElementById(layerName).style;
	
	/* show layer request */
	if(showLayer) {
	
		/* set menu x coordinate based on passed border image location (if not hide menu or 1st link request) */
		if(imgName != "border1") { //imgName != "" && 
		
			/* substract 1 from current layer # to align menu with right-edge of previous menu */
			//layerCnt = layerCnt - 1;
			imgName = "border" + layerCnt;
			img = document.getElementById(imgName);
			
			/* loop through image's parent offset x's to determine image position */
			x = img.offsetLeft;
			while ((img = img.offsetParent) != null) { 
				x += img.offsetLeft; 
			}
		
			/* set image postion based on calculated image offsetX value */
			img_pos = x;
			sw = (layerCnt == 5) ? -110 : 0;
			
			// hack to get wide team pages dropdown to show on screen 
			if(layerName == "subNavRow1") {
				sw = -180;
			}
			docCur.top = 147 + 'px';	
		}
		/* set base layer position based on available screen width */
		else {
			sw = getScreenWidth() + 85;
			img_pos = 11;	
			docCur.top = 122 + 'px';
		}
	
		/* offset screen width base layer by passed link text length */
		sw = sw + img_pos;
		sw = sw -5;
		
		/* hide last layer and display current dropdown */
		docLast.display = 'none';
		docCur.display = 'block'; 
		docCur.left= sw + 'px'; 
	}
	/* hide layer request */
	else {
		docLast.display = 'none';
	}

	/* set lastLayer for next user click */
	lastLayer = layerName; 
} 

/* showHideDropDown -- shows or hides target dropdown menu layer */
function showHideDropDown(layerName) {
	var layer = document.getElementById(layerName);
	if(layer.style.display=='block') {
		layer.style.display='none';
	}
	else {
		layer.style.display='block';
	}
}

/* hideLayer */
function hideLayer(layerName) {
	if(document.getElementById(layerName)) {
		showDropDown(layerName, 0, 0, 0);
	}
}

/* clearTimer -- clears the hide menu timer */
function clearTimer() {
	if(HideLayerTimer) {
		clearTimeout(HideLayerTimer);
	}
	HideLayerTimer = null;
}

/* startTimer -- starts hide menu timer */
function startTimer(layerName) {
	HideLayerTimer = setTimeout("hideLayer('"+layerName+"')", 2500); /* 2500 */
}

/* hideLayer
function hideLayer() {
	var layer = "mainNavRow";
	if(document.getElementById(layer)) {
		showDropDown(layer, 0, 0);
	}
} */

/* getScreenWidth -- determine dropdown menu layer offset based on screen width */
function getScreenWidth() {
	sw = window.innerWidth != null? window.innerWidth: document.body != null? document.body.clientWidth:null;
	sw = (sw <= 780) ? 2 : (sw - 780) / 2 + 6;
	//alert(sw);
	return sw;
}
/*
*************
END DROPDOWN MENU METHODS
*************
*/


/*
*************
VALIDATION METHODS
*************
*/
/* checkForm -- ensures required formfields have been filled out */
function checkForm(formName, requiredFields) { 

	form = document.forms[formName];
	required = requiredFields.split(','); /* set required fields comma delimited string to array */
	count = required.length;
	loop = 0;
	
	for (var j = 0; j < count; j++) { 
		for (var i = 0; i < form.elements.length; i++) {
			
			/* set replacement required field name if pipe delimiter in passed required field string */
			if(required[loop].indexOf("|") != -1) {
				list = required[loop].split('|');
				fieldName = list[1];
				requiredName = list[0];
			}
			/* else, set display name to required field name */
			else {
				fieldName = required[loop];
				requiredName = fieldName;
			}
	
			/* alert required field if blank and NOT disabled */
			var name = (form.elements[i].name.indexOf("[]") != -1) ? form.elements[i].name.replace("[]","") : form.elements[i].name; // strip array brackets
			if(name == requiredName) {
				if (form.elements[i].value == "" && form.elements[i].disabled != 1) {
					fieldName = fieldName.replace("_", " ");
					fieldName = fieldName.toUpperCase( );
					alert("The " + fieldName + " field has been left blank.\n\nThis is a required field -- it cannot be left blank.");
					form.elements[i].focus();
					form.elements[i].style.background="#FFFFCC";
			    	return false;
				}
			}
		}
		loop++;	
	}
	return true;
}

/* validateEmail -- check if valid email format entered */
function validateEmail(id) {
	email = document.getElementById(id).value;
	if((email.indexOf('@') < 0) || ((email.charAt(email.length-4) != '.') && (email.charAt(email.length-3) != '.'))) {
		document.getElementById(id).focus();
		document.getElementById(id).style.background="#FFFFCC";
		alert('Please Enter a Valid Email Address (e.g. jdoe@aol.com)');
		return false;
	}
	else {
		return true;
	}
}

/* isNumeric -- return boolean */
function isNumeric(val, extraChars) {
	
	/* set allowed characters to numbers by default */
	var validChars = "0123456789";
	
	/* append extra characters if exist (e.g. if phone field, we might want to allow ".()-" characters) */
	if(extraChars) {
		validChars += extraChars;
	}
	
	var IsNumber = true;
	for(i = 0; i < val.length && IsNumber == true; i++) {
		Char = val.charAt(i); 
		if(validChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;   
}
/*
*************
END VALIDATION METHODS
*************
*/

/* get query string params -- for previous page link in box score requests */
var qsParm = new Array();
function getQS() {
	var query = window.location.pathname;
	var parms = query.split('/');
	for(var i = 0; i < parms.length; i++) {
		/* document.write(parms[i] + "<br>"); */
		if(parms[i] != 'breakdown' && parms[i] != '') {
			if(parms[i].length == 8) {
				var key = "date";
      			var val = parms[i];
				qsParm[key] = val;
			}
			else {
				var key = "gameID";
      			var val = parms[i];
				qsParm[key] = val;
			}
		}
   	}
   return qsParm;
}