var dtCh= "/";
//verifies that a date is in the form MM/DD/YYYY and that month 1-12, day 1-31, etc.
function isDateInt(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=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 (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("Please enter a valid month\n")
		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("Date of Birth is invalid. Please enter DOB in the correct format \n \tFormat: DD/MM/YYYY")
		return false
	}
	return true
}

function dateVerifyInt(dateVal){	
    
	var dt=dateVal;
	if (isDateInt(dt.value)==false){
		dt.focus()
		
		return false
	}
    return true
 }

 //verifies based upon birthdate that a person is 13 years old 
function ageVerifySilent(dateVal){
	var todaysDate = new Date();
	var tempDate = new Date(dateVal.value);

	todaysDate.setDate(todaysDate.getDate());
	tempDate.setDate(tempDate.getDate()+4749);					
	if(tempDate > todaysDate){
		return false;
	}
    return true;
}

//converts an international date, DD/MM/YYYY to MM/DD/YYYY
function intToDomestic(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=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)
	
	
	var tempDate = month+"/"+day+"/"+year;
	return tempDate;
}
//populates the state field based upon which country is chosen, relies on ajax / GetStates.class
function populateState(cid, state){    	
			//alert("country id: " + cid);
			if (cid == null || cid == "") {
				var is = "<select name=\"statelist\" class=\"input_field\" id=\"statelist\"/>";
				var sDiv = document.getElementById("statesDiv");
				sDiv.innerHTML = is;
				return;
			}
   
	    	var req = getAjaxObject();
			if (req == null) return ;
			req.onreadystatechange = function() { showStates(req, state); }
			//var url = "http://vinay.infozap.collegeview.com:8080/mbaGetStates.do?country=" + cid;
			var url = "/GetStates.do?country=" + cid;
			//alert("url : " + url);
			req.open("GET", url, true);
			req.send(null);
			
			}
			
			function getAjaxObject(){
			if (window.XMLHttpRequest) {
	        var req = new XMLHttpRequest();
			// branch for IE/Windows ActiveX version
			} else if (window.ActiveXObject) {
				var req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			return req;
			}
			
			function showStates(req, state){
    	if (req.readyState == 4){
    		if (req.status == 200) {
    			//alert(req.responseText);
    			var states = req.responseXML.getElementsByTagName("item");
    			if (states == null) alert("states is null");
    			//alert("num states: " + states.length);
    			//var s = document.getElementById("state");
    			var sDiv = document.getElementById("statesDiv");
    			//s.options.length = 0;    			
    			var is = "<select name=\"statelist\" class=\"input_field\" id=\"statelist\">";
    			for (var i=0;i< states.length; i++){
    				var id = states[i].getElementsByTagName("value")[0].firstChild.nodeValue;
    				var name = states[i].getElementsByTagName("name")[0].firstChild.nodeValue;
    				//alert(id + ", " + name);
    				//var option = new Option(name, id, false);
    				//s.appendChild(option); //This was NOT working in IE -- had to stick with the workaround of building the <select> html inside the div.
    				
    				is += "<option value=\"" + id + "\">" + fix(unescape(name)) + "</option>";
    			}
    			is += "</select";
    			//alert(is);
    			sDiv.innerHTML = is;
    			//alert(s.options.length);
    			if (state != null && state != '') highlightState(state);
    		}// if 200
    	}// if 4
    }
	//part of populate state
	function fix(s){
    	return s.replace(/\+/g, " ");
    }
    //part of populate state   
	function highlightState(state){
        //highlight the selected state
        var sl = document.getElementById("statelist");
        if (sl != null ) {
        	for (var i=0;i< sl.length; i++){
        		if (sl[i].value == state){
        			sl[i].selected="true";
        			return;
        		}
        	}
        }             
    }
	
	
	
	