//
// Copyright myStuffPix All Rights Reserved
// Unauthorized use or duplication of this content or program code is a
// violation of applicable laws and subject to prosecution thereunder.
//
//------------------------------------------------------------------------------------------
//	Library functions and subroutines.
//------------------------------------------------------------------------------------------
function cyclePix() {
	if (document.images) {
		if (document.pic0.complete) {
			if (++pic0idx == adImages.length) {
				pic0idx = 0;
			}
			document.pic0.src = adImages[pic0idx];
		}
		if (document.pic1.complete) {
			if (++pic1idx == adImages.length) {
				pic1idx = 0;
			}
			document.pic1.src = adImages[pic1idx];
		}
	}

    // change to next sponsor every 3 seconds
    setTimeout("cyclePix()", 2000);
}

function isEmail(s) {
	if (s.indexOf("@") < 0 || s.indexOf(".",s.indexOf("@")+2) < 0 || s.indexOf(".")+1 == s.length) { 
		return false; 
	}
	return true;
}

function isConfirmation(s) {
	var numValue = new Number(s);
	if (numValue < 1101001 || numValue > 9909009) {
		return false;
	}
	return true;
}

//------------------------------------------------------------------------------------------
// Function Desc: set window status to null
//------------------------------------------------------------------------------------------

function winStatus() {
	self.defaultStatus = '';
}

//------------------------------------------------------------------------------------------
// Function Desc: change value to upper case
//------------------------------------------------------------------------------------------

function toUpper(field) {
	field.value = field.value.toUpperCase();
}

//------------------------------------------------------------------------------------------
// Function Desc: is string value blank
//------------------------------------------------------------------------------------------
function isBlank(s) {
 	for (var i = 0; i < s.length; i++) {
         	var c = s.charAt(i);
         	if ( (c != ' ') && (c != '\n') && (c != '\t') ) {
	          	return false;
         	}
      	}
	return true;
}  


//------------------------------------------------------------------------------------------
// Function Desc: is string value numeric
//------------------------------------------------------------------------------------------
function isNumeric(s) {
	for (var i = 0; i < s.length; i++) {
         	var c = s.charCodeAt(i);
	     	if ( c < 48  || c > 57 ) {
			return false;
	    	}
      	}
	return true;
}  

//------------------------------------------------------------------------------------------
// Function Desc: is string value a valid currency amount
//------------------------------------------------------------------------------------------
function isCurrency(s) {
	var checkStr  = s;					//input string
	var decPos    = checkStr.indexOf(".",decPos+1); 	//decimal position

	if (isNaN(checkStr)) {
		alert('Not a valid number.  Enter numbers with one decimal only.');
		return false; 
	}

	// check number of digits after decimal
	// only one digit for this value
	var count = 0;
	if (decPos == -1) {
		count = 1;
	}
	else {
		var decPlaces = (checkStr.length - (decPos + 1));
		if (decPlaces > 2) {
			alert('Enter only two digits after decimal point.');
			return false; 
		}
	}
	return true;
}

//------------------------------------------------------------------------------------------
// Function Desc: left trim string value
//------------------------------------------------------------------------------------------
function StringLTrim(s) {
	var i, l = s.length;
	for (i=0; (s.charAt(i) == ' ') && (i < l); ++i) {
		if (i == l) {
			return '';
		}
	}
	return s.substring(i, l);
}

//------------------------------------------------------------------------------------------
// Function Desc: right trim string value
//------------------------------------------------------------------------------------------
function StringRTrim(s) {
	var i;
	for (i=s.length-1; (s.charAt(i) == ' ') && (i > -1); --i) {
		if (i == -1) {
			return '';
		}
	}
	return s.substring(0, i+1);
}

//------------------------------------------------------------------------------------------
// Function Desc: replace string value
//------------------------------------------------------------------------------------------
function StringReplace(src, marker, embed) {
	var i, mark;
	var len = src.length;
	var out = '';
	mark = 0;
	while (mark < len) {
		i = src.indexOf(marker, mark);
		if (i == -1) {
			break;
		}
		out = out + src.substring(mark, i) + embed;
		mark = i + marker.length;
	}
	if (mark < len) {
		out = out + src.substring(mark, len);
	}
	return(out);
}

function LocalizeReplace(src, idx, embed) {
	return StringReplace(src, '%' + idx + '%', embed);
}

//------------------------------------------------------------------------------------------
// Function Desc: add leading zeros to string value
//------------------------------------------------------------------------------------------
function ZeroPadL(str, spaces) {
	var s = str + '', l;
	s = s.substring(0, spaces);
	l = s.length;
	if (spaces > l) {
		for (var i = 0; i < spaces - l; i++) {
			s = '0' + s;
		}
	}
	return s;
}

//------------------------------------------------------------------------------------------
// Function Desc: validate date format
//------------------------------------------------------------------------------------------
// global message variable for proper date formatting

var dateErrMsg = 'Invalid Date Format\n\nEnter date as: mm/dd/yyyy.';

function isDate(s) {
	// check characters
	var checkOK = "/0123456789";		//valid values
	var allValid = true;

	for (i = 0;  i < s.length;  i++) {
		ch = s.charAt(i);
		for (j = 0;  j < checkOK.length;  j++) {
			if (ch == checkOK.charAt(j)) {
				break;
			}
		}
		if (j == checkOK.length) {
			allValid = false;
       			break;
		}
	}

	if (!allValid)	{
		alert(dateErrMsg);
		return (false);
	}

	// check input of "/"
	if (s.indexOf("/") != 2 || s.indexOf("/", 3) != 5
	  || s.indexOf("/", 6) == 6 || s.indexOf("/", 7) == 7
	  || s.indexOf("/", 8) == 8 || s.indexOf("/", 9) == 9
	  || s.length != 10) {
		alert(dateErrMsg);
		return (false);
	}
	
	// check month, day, and leap year
	var ckmonth = s.substr(0, 2);
	ckmonth = parseInt(ckmonth,10);
	var ckday = s.substr(3, 2);
	var ckyear = s.substr(6, 4);

	if (ckmonth < 1 || ckmonth > 12) {
		alert('Month must be entered between 01(January) and 12(December) ');
		return (false);
	}
	if (ckmonth == 2) {			
		if (!checkLeapMonth(ckmonth,ckday,ckyear)) {
			return (false);
		}			
	}
	if (!checkMonthLength(ckmonth,ckday)) {
		return (false);
	}

	return (true);
}  

//------------------------------------------------------------------------------------------
// Function Desc: validate date month
//------------------------------------------------------------------------------------------
function checkMonthLength(mm,dd) {
	var months = new Array("","January","February","March","April","May","June","July","August","September","October","November","December")
	parseInt(mm,10)
	if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30) {
		alert(months[mm] + " has only 30 days.");
		return false;
	}
	else if (dd > 31) {
		alert(months[mm] + " has only 31 days.");
		return false;
	}
	return true;
}

//------------------------------------------------------------------------------------------
// Function Desc: validate date leap year
//------------------------------------------------------------------------------------------
function checkLeapMonth(mm,dd,yyyy) {
	if (yyyy % 4 > 0 && dd > 28) {
		alert("February of " + yyyy + " has only 28 days.");
		return false;
	} 
	else if (dd > 29) {
		alert("February of " + yyyy + " has only 29 days.");
		return false;
	}
return true;
}

function getPopUp(title,program,fnames) {
	var url = "popUpWindow.php?title=" + title + "&program=" + program + "&fnames=" + fnames;
	window.open(url, "popvals", "toolbar=no,location=no,directories no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=700,height=400").focus();
}

function getPrintable(program) {
	window.open(program, "popvals", "toolbar=yes,location=no,directories no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=700,height=400").focus();
}

function zoomPic(pname) {
	var url = "popPic.php?pname=" + pname;
	window.open(url, "zoompic", "toolbar=no,location=no,directories no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=700,height=500").focus();
}
