
window.onload = function(){

	//variable declarations
	initAttempts = 0;
	showResults = false;
	isNewSearch = true;
	needsReset = false;
	State = document.getElementById('state');
	Country = document.getElementById('location');
	_cookieName = "eventSearch";
	_cookieName2 = "eventTypes";
	
	initSearch();
	updateInputs();
	updateLocation();
	
	//Intializing Spry dataset
	if(showResults)
		dsTest = new Spry.Data.HTMLDataSet("index.cfm?fuseaction=Search&Ajaxon=1&" + BuildURL(),"SearchResult",{useCache: false});
	else
		dsTest = new Spry.Data.HTMLDataSet("index.cfm?fuseaction=Search&Ajaxon=1&keyword=newsearch","SearchResult",{useCache: false});//load blank search
	dsTest.filter(filterEventTypes);
	Spry.Data.Region.addObserver("searchResults", spryObserver);
	boldItem("sortDate","sortLetter"); //display "Date" as the default sort order
	
	parseLayers(document);//initialize image swaps
	datePickerController.addEvent(window, 'load', initialiseInputs);
	datePickerController.addEvent(window, 'unload', removeInputEvents);

}

//fix for IE image flicker problem
try {
  document.execCommand("BackgroundImageCache", false, true);
}catch(err){}

String.prototype.trim = function(){
	return this.replace(/^\s+|\s+$/g,"");
}

function makeTwoChars(inp) {
	return String(inp).length < 2 ? "0" + inp : inp;
}

function initialiseInputs() {
	// Clear any old values from the inputs (that might be cached by the browser after a page reload)
	//document.getElementById("startDate").value = "";
	//document.getElementById("endDate").value = "";

	// Add the onchange event handler to the start date input
	datePickerController.addEvent(document.getElementById("startDate"), "change", setReservationDates);
}

function setReservationDates(e) {
	// Internet Explorer will not have created the datePickers yet so we poll the datePickerController Object using a setTimeout
	// until they become available (a maximum of ten times in case something has gone horribly wrong)
	
	try{
		var startDate = datePickerController.getDatePicker("startDate");
		var endDate = datePickerController.getDatePicker("endDate");
	}catch(err){
		if(initAttempts++ < 10) setTimeout("setReservationDates()", 50);
		return;
	}
	
	// Check the value of the input is a date of the correct format
	var dt = datePickerController.dateFormat(this.value, startDate.format.charAt(0) == "m");
	
	// If the input's value cannot be parsed as a valid date then return
	if(dt == 0) return;
	
	// At this stage we have a valid YYYYMMDD date
	
	// Grab the value set within the endDate input and parse it using the dateFormat method
	// N.B: The second parameter to the dateFormat function, if TRUE, tells the function to favour the m-d-y date format
	var edv = datePickerController.dateFormat(document.getElementById("endDate").value, endDate.format.charAt(0) == "m");
	
	// Set the low range of the second datePicker to be the date parsed from the first
	endDate.setRangeLow( dt );
	
	// If theres a value already present within the end date input and it's smaller than the start date
	// then clear the end date value
	if(edv < dt) {
		document.getElementById("endDate").value = "";
	}
}

function removeInputEvents() {
	// Remove the onchange event handler set within the function initialiseInputs
	datePickerController.removeEvent(document.getElementById("startDate"), "change", setReservationDates);
}

function initSearch(){
	//break apart the URL, get a collection of params
	var urlCollection = window.location.search.substring(1).toLowerCase();
	var urlParams = urlCollection.split("&");
	var searchForm = document.forms["search4Events"];
	var clearForm = false;
	for(var i=0; i<urlParams.length; i++){
		var paramPair = urlParams[i].split("=");
		var paramName = paramPair[0];
		var paramValue = decodeURI(paramPair[1]);
		switch(paramPair[0]){
			case "fuseaction":
				if(paramValue == "listseminars"){
					loadSeminarSearch();
					needsReset = true;
				}else if(paramValue == "listtradeshows"){
					loadTradeshowSearch();
					needsReset = true;
				}else if(paramValue == "listusergroups"){
					loadUserGroupSearch();
					needsReset = true;
				}else if(paramValue == "listconferences"){
					loadConferenceSearch();
					needsReset = true;	
				}
				break;
			case "eventtype":
				var validTypes = "123";
				if(validTypes.indexOf(paramValue) != -1){
					var _index = paramValue - 1;
					searchForm.eventType[_index].checked = true;
					needsReset = true;
				}
				break;
			case "keyword":
			case "criteria":
				if(paramValue == "user" || paramValue == "user+group")
					loadUserGroupSearch();
				else
					searchForm.keyword.value = paramValue.trim();
				needsReset = true;	
				break;
			case "region":
				searchForm.location.selectedIndex = getDrowdownIndexFromValue(searchForm.location, paramValue);
				updateLocation();
				needsReset = true;	
				break;
			case "state":
				searchForm.state.selectedIndex = getDrowdownIndexFromValue(searchForm.state, paramValue);
				needsReset = true;	
				break;
			case "datefrom":
				if(isDate(paramValue))
					searchForm.startDate.value = paramValue;
				needsReset = true;	
				break;
			case "dateto":
				if(isDate(paramValue))
					searchForm.endDate.value = paramValue;
				needsReset = true;	
				break;
			case "slc":
			case "clearform":
				eraseCookie(_cookieName);
				eraseCookie(_cookieName2);
				needsReset=true;
				clearForm=true;
			default:
				//invalid parameter, just ignore
				//alert("invalid parameter "+paramPair[0]);
		}
	}
	
	if(needsReset == false){
		//load any previous search criteria
		loadSearchElements(_cookieName,'search4Events');
		loadSearchElements(_cookieName2,'eventTypeForm');	
	}else if(!clearForm){
		showResults = true;	
	}
}

function loadSeminarSearch(){
	var _form = document.forms["search4Events"];
	var _types = document.forms["eventTypeForm"];
	_form.eventType[1].checked = true;
	_types.eventTypes[0].checked = false;
	_types.eventTypes[1].checked = false;
	_types.eventTypes[2].checked = true;
}

function loadTradeshowSearch(){
	var _form = document.forms["search4Events"];
	_form.eventType[2].checked = true;
}

function loadUserGroupSearch(){
	var _form = document.forms["search4Events"];
	var _types = document.forms["eventTypeForm"];
	_form.eventType[1].checked = true;
	_types.eventTypes[0].checked = false;
	_types.eventTypes[1].checked = true;
	_types.eventTypes[2].checked = false;
}

function loadConferenceSearch(){
	var _form = document.forms["search4Events"];
	var _types = document.forms["eventTypeForm"];
	_form.eventType[1].checked = true;
	_types.eventTypes[0].checked = true;
	_types.eventTypes[1].checked = false;
	_types.eventTypes[2].checked = false;
}

function updateLocation(){
	if(Country.value == 'US')
		State.style.display = "inline";
	else
		State.style.display = "none";
}

function toggle(targetId){ 
	if (document.getElementById){ 
  		target = document.getElementById( targetId ); 
		if (target.style.display == "none"){ 
           target.style.display = ""; 
        }else{ 
           target.style.display = "none"; 
    	} 
	} 
}

function resetEventTypes(){
	var chxBoxes = document.forms['eventTypeForm'].eventTypes;	
	for(i=0;i<chxBoxes.length;i++){
		chxBoxes[i].checked = true;
	}
}

function filterNow(chxBox){
	var chxBoxes = document.forms['eventTypeForm'].eventTypes;
	/*if(chxBox.value == "all"){
		if(chxBox.checked){
			for(i=0;i<chxBoxes.length;i++){
				chxBoxes[i].checked = true;
			}
		}
	}else{
		if(!chxBox.checked){
			chxBoxes[0].checked = false;
		}
	}*/	
	dsTest.filter(filterEventTypes);
	saveSearchElements(document.forms['eventTypeForm'], _cookieName2);
}

function filterEventTypes(ds, row, index){
	//first get a correct location listing
	var _location = "";
	if(row["Region"] != 'us'){
		_location += row['City'];
		if(row["City"].trim() != "" && row["Country"].trim() != "")
			_location += ", ";
		if(row["Country"].trim() != "")
			_location += row["Country"];
	}else{
		_location += row['City'];
		if(row["City"].trim() != "" && row["State"].trim() != "")
			_location += ", ";
		if(row["State"].trim() != "")
			_location += row["State"];
	}
	row["location"] = _location;
	
	
	/*if(row["State"].trim() != "")
		row["StateMod"] = ", "+row["State"]; 
	else
		row["StateMod"] = row["State"];
		
	if(row["Country"].trim() != "" && row["State"].trim() != "")
		row["Country"] = ", "+row["Country"];*/
		
	
	//then determine if we want that row to show
	var _types = document.forms['eventTypeForm'].eventTypes;
	//if(_types[0].checked == true)
	//	return row;
	if(_types[0].checked == true && row.Event_Type.trim() == "Conference")
		return row;
	else if(_types[1].checked == true && row.Event_Type.trim() == "User Group")
		return row;
	else if(_types[2].checked == true && row.Event_Type.trim() == "Seminar")
		return row;
	else if(_types[3].checked == true && row.Event_Type.trim() == "Trade Show")
		return row;	
	else
		return null;
}

function getURLString(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function spryObserver(notificationState, notifier, data){
	if(notificationState == "onPostUpdate"){
		var dsRegion = Spry.Data.getRegion(data.regionID);
		var showEventTypes = true;
		if(showResults)
			document.getElementById(data.regionID).style.display = 'inline';
		var _totalRows = dsTest.getRowCount();
		if(dsRegion.getState() == "ready"){
			if(showResults){
				document.getElementById('eventTypeWrapper').style.display = 'block';
				document.getElementById('searchResultsWrapper').className= "brownBorder";
			}
			//keywordOut();
			if(_totalRows==0){
				dsRegion.setState('noRecords');
				setEventTotals(0,0,0,0,0);
				showEventTypes = false;
			}else if(_totalRows==1 && dsTest.getRowByRowNumber(0).TOTALROWS == 0){
				dsRegion.setState('noRecords'); 
				setEventTotals(0,0,0,0,0);
				showEventTypes = false;
			}else{
				try{
					var totalCount = dsTest.getRowByRowNumber(0).TOTALROWS;
					var ugCount = dsTest.getRowByRowNumber(0).UserGroup_Count;
					var tsCount = dsTest.getRowByRowNumber(0).TradeShow_Count;
					var confCount = dsTest.getRowByRowNumber(0).Conference_Count;
					var seminCount = dsTest.getRowByRowNumber(0).Seminar_Count;
					setEventTotals(_totalRows,ugCount,tsCount,confCount,seminCount);
				}catch(e){
					//throw no error	
				}
			}
			updateEventTypes(showEventTypes);
			isNewSearch = false;
		}
	}
}

function setEventTotals(countShown, countUG, countTrade, countConferences, countSeminars){
	var total_rows = document.getElementById('totalRows');
	
	if(countShown == 1 )
		total_rows.innerHTML = countShown + " event found";
	else if (countShown > 1)
		total_rows.innerHTML = countShown + " events found";
	else
		total_rows.innerHTML = "";
		
	if(isNewSearch){		
		//document.getElementById('totalEvents').innerHTML = "(" + countAll + ")";
		document.getElementById('totalUGMeetings').innerHTML = "(" + countUG + ")";
		document.getElementById('totalTradeShows').innerHTML = "(" + countTrade + ")";
		document.getElementById('totalConferences').innerHTML = "(" + countConferences + ")";
		document.getElementById('totalSeminars').innerHTML = "(" + countSeminars + ")";
	}
}

function Formsubmit(validate){
	showResults = true;
	isNewSearch = true;
	//validate checkboxes
	if(needsReset == true){
		resetEventTypes();
		saveSearchElements(document.forms['search4Events'], _cookieName);
		saveSearchElements(document.forms['eventTypeForm'], _cookieName2);
		setTimeout("window.location.assign('index.cfm?fuseaction=EventSearch')",0);//hack for IE6
	}else{
		if(getSelected('eventType').trim() == "eventType="){
			if(validate != false)
				alert("Please select at least one event type.");
			return false;
		}
		if(document.getElementById('keyword').value == 'Type a keyword'){
			document.getElementById('keyword').value = '';
		}	
		if(document.getElementById('startDate').value == 'From Date'){
			document.getElementById('startDate').value = '';
		}	
		if(document.getElementById('endDate').value == 'To Date'){
			document.getElementById('endDate').value = '';
		}	
		document.getElementById('eventTypeWrapper').style.display = "none";
		document.getElementById('searchResultsWrapper').className= "noBorder";
		setEventTotals('','','','','');
		resetEventTypes();
		var urlstr = "index.cfm?fuseaction=Search&Ajaxon=1&" + BuildURL();
		var searchResults = document.getElementById('searchResults');
		dsTest.setURL(urlstr);
		dsTest.loadData();
		dsTest.setColumnType("StartDate","date");
		boldItem('sortDate','sortLetter');
		saveSearchElements(document.forms['search4Events'], _cookieName);
		saveSearchElements(document.forms['eventTypeForm'], _cookieName2);
		updateInputs();
		return false;
	}
}

function BuildURL(){
	var URLString = "";
	var currentElement = "";
	var theForm = document.getElementById('search4Events');
	var numofElements = theForm.length;
	for(var i=0;i<numofElements;i++){			
		//make sure we're not looping back over the same checkbox group	
		var ignoreElements = "fuseaction,submit,Reset";
		if((ignoreElements.indexOf(theForm.elements[i].name)==-1) && (currentElement.name != theForm.elements[i].name)){
			currentElement = theForm.elements[i];
			if(theForm.elements[i].type == 'checkbox'){
				URLString = URLString + getSelected(theForm.elements[i].name);
			}else if(theForm.elements[i].type == 'radio'){
				URLString = URLString + theForm.elements[i].name + '=' + getSelectedIndex(theForm[theForm.elements[i].name],'name');
			}else{
				URLString = URLString + theForm.elements[i].name + '=' + escape(theForm.elements[i].value);
			}
			if(i != (numofElements - 1)){
				URLString = URLString + '&';
			}
		}		
	}

	return URLString;
}

function submitViaEnterKey(myfield,e){
	var keycode;
	if(window.event)
		keycode = window.event.keyCode;
	else if(e)
		keycode = e.which;
	else 
		return true;
	
	if(keycode == 13){
	   Formsubmit();
	   return false;
	}else{
	   return true;
	}
}

function updateInputs(){
	focusOut(document.forms['search4Events'].keyword,'Type a keyword');
	focusOut(document.forms['search4Events'].startDate,'From Date');
	focusOut(document.forms['search4Events'].endDate,'To Date');
}

function updateEventTypes(showEventTypes){
	var _eventType = document.forms['search4Events'].eventType;
	var _eventFilters = document.getElementById('eventTypeTable');
	var _sortByCopy = document.getElementById('hiddenSortBy');
	var _esriExhibiting = document.getElementById('esriExhibitEvents');
	if(showEventTypes){
		if(_eventType[0].checked){
			_sortByCopy.style.display = "none";
			_eventFilters.style.display = "block";
			_esriExhibiting.style.display = "inline";
		}else if(_eventType[1].checked){
			_sortByCopy.style.display = "none";
			_eventFilters.style.display = "block";
			_esriExhibiting.style.display = "none";
		}else{
			_sortByCopy.style.display = "inline";
			_eventFilters.style.display = "none";
			_esriExhibiting.style.display = "inline";
		}
	}else if(isNewSearch){
		document.getElementById('totalRows').innerHTML = "0 events found";
		_sortByCopy.style.display = "inline";
		_eventFilters.style.display = "none";
	}else{
		document.getElementById('totalRows').innerHTML = "0 events found";
		_sortByCopy.style.display = "none";
		_eventFilters.style.display = "block";
	}
}

function Sort(SortBy,SortOrder){
	document.getElementById('Sortorder').value = SortOrder;
	document.getElementById('Sorttype').value = SortBy;
	var result = Formsubmit();
}

function getDrowdownIndexFromValue(_dropdown, _value){
	for(var i=0; i<_dropdown.length; i++){
		if(_dropdown.options[i].value.toLowerCase() == _value.toLowerCase()){
			return i;
		}	
	}
	return 0;
}

function getSelected(chkName){
	var checkbox = document.getElementsByName(chkName);
	var Chkstring = chkName + '=';
	for (i=0;i<checkbox.length;i++){
		if (checkbox[i].checked){
			Chkstring = Chkstring + escape(checkbox[i].value);
		
			if(i != (checkbox.length - 1)){
				Chkstring = Chkstring + ',';
			}	
		}
	}
	return Chkstring;
}

function getSelectedIndex(element,indexOrName){
	var _index = 0;
	for(var i=0; i<element.length;i++){
		if(element[i].checked){
			if(indexOrName == "index"){
				_index = i;
			}else{
				_index = element[i].value;
			}
		}
	}
	return _index;
}

function getSelectedIndices(element,indexOrName){
	var _index = '';
	for(var i=0; i<element.length;i++){
		if(element[i].checked){
			if(indexOrName == "index"){
				if(_index != '')
					_index = _index + "," + i;
				else
					_index = ' '+i;
			}else{
				if(_index != '')
					_index = _index + "," + element[i].value;
				else
					_index = element[i].value;
				
			}
		}
	}
	return _index.trim();
}

function focusIn(element,text){
	if(element.value == text){
		element.value = '';
	}	
}

function focusOut(element,text){
	if(element.value == ''){
		element.value = text;
	}
}

function sortByDate(){
	if(dsTest.getSortColumn() == "EventName"){
		dsTest.sort("StartDate", "ascending");
	}else{
		dsTest.sort(["StartDate","Duration"],"toggle");
	}
}

function clearForm(){
	document.forms['search4Events'].reset();
	document.getElementById('searchResultsWrapper').className= "noBorder";
	Country.selected = 0;
	State.style.display = "inline";
	State.selected = 0;
	document.getElementById('keyword').value = "Type a keyword";
	document.getElementById("startDate").value = "From Date";
	document.getElementById("endDate").value = "To Date";
	updateLocation();
	document.getElementById('eventTypeWrapper').style.display = 'none';
	document.getElementById('searchResults').style.display = 'none';
	eraseCookie(_cookieName);
	eraseCookie(_cookieName2);
}

function isDefined(variable){
	return (!(!(document.getElementById(variable))))
}

function boldItem(selected, notSelected){
	try{
		document.getElementById(selected+"1").className = "boldSortLink";
		document.getElementById(selected+"2").className = "boldSortLink";
		document.getElementById(notSelected+"1").className = "";
		document.getElementById(notSelected+"2").className = "";
	}catch(e){
		//catch errors	
	}
}

function linkLauncher(_link){
	if(_link.indexOf("esri") >= 0 || _link.indexOf("www") == -1)
		window.open(_link,'_self');
	else
		window.open(_link,'_blank');
}

function saveSearchElements(theForm, cookieName){
	var searchCookie = "";
	var currentElement = "";
	var numFormElements = theForm.elements.length;
	//loop through all form elements
	for(var i=0; i < numFormElements; i++){
		//make sure we're not looping back over the same checkbox group
		if(currentElement.name != theForm.elements[i].name){
			currentElement = theForm.elements[i];
			if(currentElement.type != "hidden"){
				if(currentElement.type == "checkbox"){
					if(theForm[currentElement.name].length != null){//store an index string of selected checkboxes
						var isChecked = getSelectedIndices(theForm[currentElement.name],'index');
					}else{//return true or false for single checkboxes
						if(theForm[currentElement.name].checked){
							var isChecked = true;
						}else{
							var isChecked = false;	
						}
					}
					searchCookie += "|" + currentElement.name + "~" + isChecked + "~" + currentElement.type;	
				}else if(currentElement.type == "radio"){
					searchCookie += "|" + currentElement.name + "~" + getSelectedIndex(theForm[currentElement.name],'index') + "~" + currentElement.type;
				}else if(currentElement.value != null && currentElement.name != "undefined"){
					searchCookie += "|" + currentElement.name + "~" + currentElement.value + "~" + currentElement.type;
				}
			}
		}
	}
	createCookie(cookieName,searchCookie);
}
 
function loadSearchElements(cookieName,whichForm){
	var searchCookie = readCookie(cookieName);
	if(searchCookie != null){
		showResults = true;
		var searchCookieItems = searchCookie.split('|');
		for(var i=0; i<searchCookieItems.length; i++){
			try{
				var cookiePair = searchCookieItems[i].split('~');
				if(cookiePair[2] == "checkbox"){
					if(cookiePair[1] == "true"){
						document.forms[whichForm][cookiePair[0]].checked = true;	
					}else if(cookiePair[1] == "false"){
						document.forms[whichForm][cookiePair[0]].checked = false;
					}else{
						var checkedItems = cookiePair[1].split(',');
						if(checkedItems != ""){
							for(var j=0; j<document.forms[whichForm][cookiePair[0]].length; j++){
								if(cookiePair[i].indexOf(j) > -1)
									document.forms[whichForm][cookiePair[0]][j].checked = true;
								else
									document.forms[whichForm][cookiePair[0]][j].checked = false;
							}
						}
					}
				}else if(cookiePair[2] == "radio"){
					document.forms[whichForm][cookiePair[0]][cookiePair[1]].checked = true;
				}else if(cookiePair[1] != null){
					document.forms[whichForm][cookiePair[0]].value = cookiePair[1];
				}
			}catch(e){
				//alert("Error Cookie: \n"+cookiePair[0] +"-"+ cookiePair[1] +"-"+ cookiePair[2]);
			}
		}
	}
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

/* Start Date Formatting validation */
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

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){
	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){
		//alert("The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//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){
		//alert("Please enter a valid date")
		return false
	}
return true
}

/* End Date Formatting validation */




















