/*
region:
1: US
2: CA-EN
3:
4: UK
5: SP
6: CA-FR
7: generic
*/
ageCheck = {};

ageCheck.debug = false;  //true or false

ageCheck.redirect = {
	ok: "rums",
	error_us: "sorry.html",
	error_generic: "sorry.html",
    france: "rums",
	entry: "rums"
}

ageCheck.errorMsg = {
	day: "The day entered is not valid",
	month: "The month entered is not valid",
	year: "The year entered is not valid",
	date: "Invalid date",
	country: "The country entered is not valid",
	language: "The language entered is not valid"
	//tooYoung: "too young"
}

//---------------------------------------------------------------------------------------------------------------------
ageCheck.data = {};
ageCheck.data.m = {
	"0": "Jan",
	"1": "Feb",
	"2": "Mar",
	"3": "Apr",
	"4": "May",
	"5": "Jun",
	"6": "Jul",
	"7": "Aug",
	"8": "Sep",
	"9": "Oct",
	"10": "Nov",
	"11": "Dec"
};

ageCheck.data.l = {
	"1": {full: "English", s: "EN"},
	"2": {full: "French", s: "FR"},  //french canadian
	"3": {full: "Spanish", s: "SP"},
	"4": {full: "Traditional Chinese", s: "CH"},
	"6": {full: "Simplified Chinese", s: "CH"},
	"5": {full: "French", s: "FR"}  //french international
	
};

//data from http://www.icap.org/PolicyIssues/YoungPeoplesDrinking/AgeLawsTable/tabid/219/Default.aspx
//drinking age, buying age, languages (no languages = english only), region (no region = generic)
ageCheck.data.c = {
	//-- common countries
	"United States": { drink: 21, buy: 21, lan: [1]}, //* In 19 states alcohol consumption by youth under 21 is not specifically illegal. ** Exceptions to the 21 law in some states include possession for religious purposes when accompanied by a parent, spouse or legal guardian; medical reasons; in private clubs or establishments; or in the course of lawful employment by a duly licensed manufacturer. 
	"Canada (Alberta, Manitoba, Québec)": { drink: 18, buy: 18, lan: [1] },  //The MDA and MPA are 18 in Alberta, Manitoba and Quebec, in all other provinces the MDA and MPA are set at 19. Drinking by minors under adult supervision is permitted in licensed premises in the provinces of Manitoba and New Brunswick and at home in Prince Edward Island, Alberta, British Columbia, Ontario and Saskatchewan.
	"Canada (Nunavut)": { drink: 19, buy: 19, lan: [1], ban:true },
	"Canada (other provinces or territories)": { drink: 19, buy: 19, lan: [1] },
	"Spain": { drink: 18, buy: 18, lan: [1]}, //The MDA and MPA vary by region: some autonomous communities set the MDA and MPA at 18, others at 16 (Castille and Leon). The Spanish Government is currently considering a proposal to set the national MDA and MPA at 18.
	"United Kingdom": { drink: 18, buy: 18, lan: [1]}, //The MDA and MPA are 18 in bars and off-licensed premises. The MPA for certain drinks, however, is 16 when purchased for consumption with meals in restaurants or pubs with separate eating areas.  These drinks are beer, perry, cider and, in Scotland, wine. The MDA at home is 5, given parental consent.
	//-- other countries
	"Afghanistan": { drink: 0, buy: 18, lan: [1], ban:true},
	"Albania": { drink: 18, buy: 0, lan: [1] },
	"Algeria": { drink: 0, buy: 0, lan: [1], ban:true},
	"Andorra": { drink: 18, buy: 0, lan: [1] },
	"Angola": { drink: 18, buy: 0, lan: [1] },	
	"Antigua & Bermuda": { drink: 18, buy: 0, lan: [1] },	
	"Argentina": { drink: 18, buy: 0, lan: [1] },
	"Armenia": { drink: 18, buy: 0, lan: [1] },
	"Australia": { drink: 18, buy: 18, lan: [1] },
	"Austria": { drink: 18, buy: 18, lan: [1] }, //On-premise consumption is subject to provincial regulation. In general, the MDA is 16 (*in one Bundesland MDA is 16 for spirits and 15 for wine and beer). Some provinces prohibit consumption of spirits for those under 18.
	"Azerbaijan": { drink: 18, buy: 18, lan: [1] },
	"Bahrain": { drink: 0, buy: 0, lan: [1], ban:true },
	"Bahamas": { drink: 18, buy: 0, lan: [1] },
	"Barbados": { drink: 18, buy: 0, lan: [1] },	
	"Bangladesh": { drink: 0, buy: 0, lan: [1], ban:true },
	"Belarus": { drink: 21, buy: 18, lan: [1] },
	"Belgium": { drink: 18, buy: 18, lan: [1] }, //The MPA in bars is 18 for spirits and 16 for beer and wine. No specific restrictions apply to purchase of beer and wine in shops. The law prohibits anyone under the age of 16 (unless married or accompanied by parent or guardian) from entering a "dance hall" where fermented beverages are sold.
	"Belize": { drink: 18, buy: 0, lan: [1] },
	"Benin": { drink: 18, buy: 0, lan: [1] },	
	"Bhutan": { drink: 18, buy: 0, lan: [1] },	
	"Bolivia": { drink: 18, buy: 18, lan: [1] },
	"Bosnia and Herzegovina": { drink: 18, buy: 16, lan: [1] }, //The MPA of 16 applies to buying alcohol for on-premise consumption (e.g. in bars). No age limit is set for buying alcohol in shops.
	"Botswana": { drink: 18, buy: 0, lan: [1] },	
	"Brazil": { drink: 18, buy: 18, lan: [1] },
	"Brunei": { drink: 0, buy: 0, lan: [1], ban:true },
	"Bulgaria": { drink: 18, buy: 18, lan: [1] },
	"Burkina Faso": { drink: 18, buy: 0, lan: [1] },	
	"Cambodia": { drink: 18, buy: 0, lan: [1] },
	"Cameroon": { drink: 18, buy: 0, lan: [1] },
	"Cape Verde": { drink: 18, buy: 0, lan: [1] },
	"Central African Republic": { drink: 18, buy: 0, lan: [1] },
	"Chad": { drink: 18, buy: 0, lan: [1] },	
	"Chile": { drink: 18, buy: 18, lan: [1] },
	"China": { drink: 18, buy: 18, lan: [1]},
	"Colombia": { drink: 18, buy: 18, lan: [1] },
	"Congo": { drink: 18, buy: 0, lan: [1] },	
	"Costa Rica": { drink: 18, buy: 18, lan: [1] },
	"Cote d'lvoire": { drink: 18, buy: 0, lan: [1] },	
	"Croatia": { drink: 0, buy: 0, lan: [1], ban:true },
	"Croatia": { drink: 0, buy: 18, lan: [1], ban:true },
	"Cuba": { drink: 18, buy: 0, lan: [1] },	
	"Cyprus": { drink: 18, buy: 0, lan: [1] },	
	"Czech Republic": { drink: 18, buy: 18, lan: [1] },
	"Denmark": { drink: 18, buy: 16, lan: [1] }, //Beverages with an alcohol content of 1.2% or more by volume (abv) must not be sold to persons under 16 years of age at shops where retail sale takes place. Such beverages (1.2% abv or more) cannot be brought into Denmark from other EU countries by persons under 16 years of age. This regulation does not apply to beer.
	"Djibouti": { drink: 18, buy: 0, lan: [1] },
	"Dominica": { drink: 18, buy: 0, lan: [1] },	
	"Dominican Republic": { drink: 18, buy: 0, lan: [1] },	
	"Ecuador": { drink: 18, buy: 18, lan: [1] },
	"Egypt": { drink: 21, buy: 21, lan: [1] }, //The MPA is 18 for beer and 21 for wine and spirits.
	"Egypt": { drink: 0, buy: 0, lan: [1], ban:true },
	"El Salvador": { drink: 18, buy: 18, lan: [1] },
	"Eritrea": { drink: 18, buy: 18, lan: [1] },
	"Estonia": { drink: 18, buy: 18, lan: [1]},
	"Ethiopia": { drink: 18, buy: 18, lan: [1]},
	"Equatorial Guinea": { drink: 18, buy: 0, lan: [1] },	
	"Fiji": { drink: 18, buy: 0, lan: [1] },	
	"Finland": { drink: 18, buy: 20, lan: [1]}, //The MPA is 20 for purchasing spirits in shops and 18 for all other alcohol purchases.
	"France": { drink: 16, buy: 16, lan: [1], ban:true}, //Individuals under 16 years of age cannot enter bars, unless accompanied by parent or guardian.
	"French Polynesia": { drink: 16, buy: 16, lan: [1], ban:true}, //Individuals under 16 years of age cannot enter bars, unless accompanied by parent or guardian.
	"Gabon": { drink: 18, buy: 0, lan: [1] },	
	"Gambia": { drink: 18, buy: 0, lan: [1] },	
	"Georgia": { drink: 18, buy: 16, lan: [1]},
	"Ghana": { drink: 18, buy: 0, lan: [1] },	
	"Germany": { drink: 18, buy: 18, lan: [1]}, //The MDA and MPA are 16 for beer and wine, and 18 for spirits. Beer and wine  may be served to individuals under 16 only if accompanied by parent or guardian.
	"Grenada": { drink: 18, buy: 0, lan: [1] },	
	"Greece": { drink: 18, buy: 17, lan: [1]}, // The MDA and MPA apply to drinking in bars. No age limit is set for buying alcohol in shops or for off-premise consumption.
	"Guinea": { drink: 18, buy: 0, lan: [1] },
	"Guinea-Bissau": { drink: 18, buy: 0, lan: [1] },	
	"Guatemala": { drink: 18, buy: 18, lan: [1]},
	"Guyana": { drink: 18, buy: 18, lan: [1]},
	"Haiti": { drink: 18, buy: 0, lan: [1] },	
	"Honduras": { drink: 21, buy: 18, lan: [1]},
	"Hong Kong": { drink: 18, buy: 18, lan: [1]},
	"Hungary": { drink: 18, buy: 18, lan: [1]},
	"Iceland": { drink: 20, buy: 20, lan: [1], ban:true},
	"India": { drink: 25, buy: 25, lan: [1], ban:true}, //18-25, Drinking age limits are legislated by individual states.
	"Indonesia": { drink: 0, buy: 21, lan: [1], ban:true},
	"Iran": { drink: 0, buy: 0, lan: [1], ban:true },
	"Iraq": { drink: 0, buy: 0, lan: [1], ban:true },
	"Ireland": { drink: 18, buy: 18, lan: [1]}, //Individuals under 18 are allowed in bars, but those under 15 must be accompanied by parent or guardian.
	"Israel": { drink: 18, buy: 18, lan: [1]}, //According to the 2004 regulations, the MPA applies to purchases from kiosks and convenience stores (previously, only applied to on-premise purchase).
	"Italy": { drink: 18, buy: 16, lan: [1]},
	"Jamaica": { drink: 18, buy: 0 , lan: [1]},	
	"Japan": { drink: 20, buy: 20, lan: [1]},
	"Jordan": { drink: 0, buy: 0, lan: [1], ban:true },
	"Kazakhstan": { drink: 0, buy: 18, lan: [1], ban:true},
	"Kenya": { drink: 18, buy: 18, lan: [1]},
	"Korea": { drink: 0, buy: 0, lan: [1], ban:true },
	"Kuwait": { drink: 0, buy: 0, lan: [1], ban:true },
	"Kyrgyzstan": { drink: 18, buy: 0, lan: [1]},
	"Laos": { drink: 18, buy: 0, lan: [1] },	
	"Latvia": { drink: 0, buy: 18, lan: [1], ban:true},
	"Lebanon": { drink: 18, buy: 0, lan: [1] },
	"Lesotho": { drink: 18, buy: 0, lan: [1] },	
	"Liberia": { drink: 18, buy: 0, lan: [1] },	
	"Liechtenstein": { drink: 17, buy: 0, lan: [1]},
	"Lithuania": { drink: 18, buy: 18, lan: [1]},
	"Luxembourg": { drink: 18, buy: 16, lan: [1]}, //The drinking age is 18; however, individuals that are 17 years old may consume alcohol in the presence of an adult.  Also there is no legal purchase age for alcohol, but there are recommendations for alcohol to not be sold to individuals under the age of 16. 
	"Macedonia": { drink: 0, buy: 18, lan: [1], ban:true},
	"Madagascar": { drink: 18, buy: 0, lan: [1] },	
	"Malawi": { drink: 18, buy: 0, lan: [1] },	
	"Malaysia": { drink: 0, buy: 18, lan: [1], ban:true},
	"Maldives": { drink: 18, buy: 0, lan: [1] },	
	"Mali": { drink: 18, buy: 0, lan: [1] },	
	"Malta": { drink: 18, buy: 16, lan: [1]},
	"Mauritania": { drink: 18, buy: 0, lan: [1] },	
	"Mauritius": { drink: 18, buy: 18, lan: [1]},
	"Mexico": { drink: 18, buy: 18, lan: [1]},
	"Miconesia": { drink: 18, buy: 0, lan: [1] },	
	"Moldova": { drink: 18, buy: 18, lan: [1]}, //The MDA and MPA of 18 apply to wine and spirits. No age specifications are made for buying or consuming beer.
	"Monaco": { drink: 18, buy: 0, lan: [1] },	
	"Mongolia": { drink: 0, buy: 21, lan: [1], ban:true},
	"Morocco": { drink: 18, buy: 0, lan: [1] },	
	"Mozambique": { drink: 18, buy: 0, lan: [1] },	
	"Namibia": { drink: 18, buy: 18, lan: [1]},
	"Nepal": { drink: 0, buy: 0, lan: [1], ban:true },
	"Netherlands": { drink: 18, buy: 18, lan: [1]}, //The MPA is 18 for spirits. The MPA is 16 for beer, wine, and distilled beverages with an alcohol percentage under 15%.
	"New Zealand": { drink: 18, buy: 18, lan: [1]},
	"Nicaragua": { drink: 19, buy: 19, lan: [1]},
	"Niger": { drink: 18, buy: 18, lan: [1]},
	"Nigeria": { drink: 21, buy: 18, lan: [1]},
	"North Korea": { drink: 18, buy: 0, lan: [1] },	
	"Norway": { drink: 20, buy: 20, lan: [1]}, //The MDA and MPA for spirits are 20. The MDA and MPA for beer and wine are 18.
	"Nunavut": { drink: 0, buy: 0, lan: [1], ban:true },
	"Oman": { drink: 21, buy: 0, lan: [1] },	
	"Ouganda": { drink: 18, buy: 0, lan: [1] },	
	"Ouzbekistan": { drink: 0, buy: 0, lan: [1], ban:true },
	"Pakistan": { drink: 0, buy: 0, lan: [1], ban:true },
	"Palau": { drink: 18, buy: 21, lan: [1]},
	"Panama": { drink: 18, buy: 18, lan: [1]},
	"Papua New Guinea": { drink: 18, buy: 18, lan: [1]},
	"Paraguay": { drink: 20, buy: 18, lan: [1]},
	"Peru": { drink: 18, buy: 18, lan: [1]},
	"Philippines": { drink: 18, buy: 18, lan: [1]},
	"Poland": { drink: 0, buy: 18, lan: [1], ban:true},
	"Portugal": { drink: 18, buy: 16, lan: [1]},
	"Qatar": { drink: 18, buy: 0, lan: [1] },	
	"Romania": { drink: 18, buy: 18, lan: [1]},
	"Russia": { drink: 18, buy: 18, lan: [1], ban:true},
	"Rwanda": { drink: 18, buy: 0, lan: [1] },	
	"Saint Kitts and Nevis": { drink: 18, buy: 0, lan: [1] },	
	"Saint Lucia": { drink: 18, buy: 0, lan: [1] },
	"Saint Vincent & The Grenadines": { drink: 18, buy: 0, lan: [1] },	
	"Samoa": { drink: 21, buy: 0, lan: [1]},
	"San Morino": { drink: 18, buy: 0, lan: [1] },
	"Sao Tome & Principe": { drink: 18, buy: 0, lan: [1] },
	"Saudi Arabia": { drink: 0, buy: 0, lan: [1], ban:true },
	"Senegal": { drink: 18, buy: 0, lan: [1] },		
	"Serbia and Montenegro": { drink: 0, buy: 0, lan: [1], ban:true },
	"Seychelles": { drink: 18, buy: 18, lan: [1]},
	"Sierra Leone": { drink: 18, buy: 0, lan: [1] },		
	"Singapore": { drink: 18, buy: 18, lan: [1]},
	"Slovak Republic": { drink: 18, buy: 18, lan: [1]},
	"Slovenia": { drink: 18, buy: 15, lan: [1], ban:true},
	"Solomon Islands": { drink: 21, buy: 0, lan: [1]},
	"South Africa": { drink: 18, buy: 18, lan: [1]},
	"South Korea": { drink: 19, buy: 19, lan: [1]}, //Consumption in private is at the discretion of parents or accompanying adults.
	"Sri Lanka": { drink: 18, buy: 18, lan: [1], ban:true},
	"Sudan": { drink: 0, buy: 0, lan: [1], ban:true},
	"Suriname": { drink: 18, buy: 16, lan: [1]},
	"Swaziland": { drink: 18, buy: 0 , lan: [1]},	
	"Sweden": { drink: 18, buy: 20, lan: [1], ban:true}, //Purchase for off-premise consumption: the MPA varies.  Generally, for beer and cider with an alcohol content of 3.5% or less the MPA is 18, and it is 20 for all beverage alcohol with alcohol content over 3.5%. The MPA for buying any alcohol beverage in the Swedish monopoly stores is 20 years of age. Purchase for on-premise consumption:  the MPA is 18.
	"Switzerland": { drink: 18, buy: 18, lan: [1]}, //Federal law prohibits supplying spirits to individuals under 18. The MDA and MPA for beer and wine are controlled by the Cantons and vary between 14 and 16.
	"Syria": { drink: 18, buy: 0, lan: [1] },		
	"Tajikistan": { drink: 0, buy: 0, lan: [1], ban:true },
	"Tanzania": { drink: 18, buy: 0, lan: [1] },	
	"Taiwan": { drink: 18, buy: 0, lan: [1] },		
	"Togo": { drink: 18, buy: 0, lan: [1]},	
	"Tonga": { drink: 18, buy: 0, lan: [1] },		
	"Thailand": { drink: 18, buy: 18, lan: [1]},
	"Trinidad and Tobago": { drink: 18, buy: 18, lan: [1]},
	"Tunisia": { drink: 0, buy: 0, lan: [1], ban:true},
	"Turkey": { drink: 0, buy: 18, lan: [1], ban:true},
	"Turkmenistan": { drink: 0, buy: 18, lan: [1], ban:true},
	"Tuvalu": { drink: 18, buy: 0, lan: [1] },		
	"Uganda": { drink: 18, buy: 18, lan: [1]},
	"Ukraine": { drink: 18, buy: 18, lan: [1]},
	"United Arab Emirates": { drink: 18, buy: 0, lan: [1] },		
	"Uruguay": { drink: 18, buy: 18, lan: [1]},
	"Uzbekistan": { drink: 18, buy: 18, lan: [1]},
	"Vanuatu": { drink: 18, buy: 18, lan: [1]}, //The MDA of 18 applies not only to consumption on licensed premises, but also to drinking in private and to drinking with meals.
	"Venezuela": { drink: 18, buy: 18, lan: [1]},
	"Vietnam": { drink: 0, buy: 0, lan: [1], ban:true },
	"Yemen": { drink: 0, buy: 0, lan: [1], ban:true },
	"Zambia": { drink: 18, buy: 18, lan: [1]},
	"Zimbabwe": { drink: 18, buy: 0, lan: [1]}
};


//---------------------------------------------------------------------------------------------------------------------

ageCheck.createDay = function(name, normalClass, errorClass){
	//create field
	document.write("<input type='text' id='"+name+"' class='"+normalClass+"' size='2' maxlength='2' value='DD' onFocus='if(this.value==\"DD\")this.value=\"\"' onBlur='if(this.value==\"\")this.value=\"DD\"'/>");
	$(name).normalClass = normalClass;
	$(name).errorClass = errorClass;
}

ageCheck.createMonth = function(name, normalClass, errorClass){
	//create field
	document.write("<select id='"+name+"' class='"+normalClass+"'>");
	document.write("<option value=''>-MMM-</option>");
	for (var i in this.data.m) document.write("<option value='"+i+"'>"+this.data.m[i]+"</option>"); // selected='selected'
	document.write("</select>");

	$(name).normalClass = normalClass;
	$(name).errorClass = errorClass;
}

ageCheck.createYear = function(name, normalClass, errorClass){
	document.write("<input type='text' id='"+name+"' class='"+normalClass+"' size='4' maxlength='4' value='YYYY' onFocus='if(this.value==\"YYYY\")this.value=\"\"' onBlur='if(this.value==\"\")this.value=\"YYYY\"'/>");
	
	$(name).normalClass = normalClass;
	$(name).errorClass = errorClass;
}

ageCheck.createCountry = function(name, normalClass, errorClass, linkedLanguageFieldID){
	//this.selectedIndex

	//create field
	document.write("<select id='"+name+"' class='"+normalClass+"' onChange='ageCheck.onCountryChange(this, this.value)'>");
	document.write("<option value=''>-select country-</option>");
	
	//check ban
	for (var i in this.data.c){
		
		if(this.debug){
			var ban = ( this.data.c[i].ban != null ) ? "BANNED" : "" ;
			document.write("<option value='"+i+"'>"+i +' (dr:'+ this.data.c[i].drink +", buy: "+ this.data.c[i].buy+") "+ban+"</option>"); // selected='selected'
		}else{
			document.write("<option value='"+i+"'>"+i +"</option>"); // selected='selected'
		}
		
	}
	document.write("</select>");
	
	$(name).normalClass = normalClass;
	$(name).errorClass = errorClass;
	$(name).linkedLanguageFieldID = linkedLanguageFieldID;

}

ageCheck.createLanguage = function(name, normalClass, errorClass){
	//only create the container div here. The language dropdown will be killed or created on fly
	document.write("<div id='"+name+"_div'></div>");
	$(name + '_div').normalClass = normalClass;
	$(name + '_div').errorClass = errorClass;
}

ageCheck.onCountryChange = function(countryField, country){
	var languageFieldID = countryField.linkedLanguageFieldID;
	var base_div = $(languageFieldID + "_div");
	

	//kill language dropdown only if it exists
	if( $(languageFieldID) ){
		base_div.removeChild($(languageFieldID));
	}
	
	//check if we need a language dropdown for this country
	if (this.data.c[country] != null){  //if this country exsists
		if(this.data.c[country].lan == null){
			
			//generic, show possible all languages EXCEPT FOR ID 2 - French Canadian
			var f = document.createElement("SELECT");
			f.id = languageFieldID;
			f.className = base_div.normalClass;
			
			//put default unchecked value
			var o = document.createElement("option");
			o.value = null;
			o.appendChild(document.createTextNode("-select language-"));
			f.appendChild(o);
			
			for(var i in this.data.l){
				if(i != 2){  //don't show ID2, french canadian
					var o = document.createElement("option");
					o.value = i;
					o.appendChild(document.createTextNode(this.data.l[i].full));
					f.appendChild(o);
				}
			}
			
			//add container div to main scene container
			base_div.appendChild(f);
			
		}else if(this.data.c[country].lan.length != 1){
			//multiple languages, follow the arrays rules
			
			var f = document.createElement("SELECT");
			f.id = languageFieldID;
			f.className = base_div.normalClass;
			
			//put default unchecked value
			var o = document.createElement("option");
			o.value = null;
			o.appendChild(document.createTextNode("-select language-"));
			f.appendChild(o);
			
			for(var i in this.data.c[country].lan){
				var o = document.createElement("option");
				o.value = this.data.c[country].lan[i];
				o.appendChild(document.createTextNode(this.data.l[this.data.c[country].lan[i]].full));
				f.appendChild(o);
			}
			
			base_div.appendChild(f);
			
		}
	}
	
}


//---------------------------------------------------------------------------------------------------------------------

ageCheck.checkAge = function(day, month, year, country){
	var now = new Date();
	var bd = new Date( (parseInt(year) + parseInt(this.data.c[country].drink)), month, day); //bd + legal age for this country
	
	return ( now.getTime() < bd.getTime() ) ? false : true;
}

ageCheck.openMain = function(url, name, w, h) {
	var leftLoc = (screen.availWidth - w)/2;
	if (leftLoc <0) leftLoc = 0;
	var topLoc = (screen.availHeight - h)/2;
	if (topLoc <0) topLoc = 0;
	var newWin = window.open(url, name, 'width='+w+',height='+h+',left='+leftLoc+',top='+topLoc+', scrollbars=no, resizable=no');
}

ageCheck.submit = function(day, month, year, country, language){
	//parse data
	day_field = day;
	month_field = month;
	year_field = year;
	country_field = country;
	day = day.value;
	month = month.value;
	year = year.value;
	country = country.value;


	//reset class on all fields
	day_field.className = day_field.normalClass;
	month_field.className = month_field.normalClass;
	year_field.className = year_field.normalClass;
	country_field.className = country_field.normalClass;
	if( $(language) ) $(language).className = $(language + "_div").normalClass;
	
	
	//-------------------------------------------------------------------------------------
	//validate fields and catch errors
	var errors = [];


     if(country == "France"){
		//redirect to French page
		window.location.href = this.redirect.france;
     } else {


	//check day
	
	day = parseFloat(day);  //using parseFloat because of 08 and 09 parseInt bug !!#$!
	
	if(isNaN(day) || day > 31 || day < 1){
		errors.push(this.errorMsg.day);
		day_field.className = day_field.errorClass;
	}
	
	//check month
	month = parseInt(month);
	if(isNaN(month) || month > 11 || month < 0){
		errors.push(this.errorMsg.month);
		month_field.className = month_field.errorClass;
	}
	
	//check year
	year = parseInt(year);
	if(isNaN(year) || year < 1900 || year > new Date().getYear()+1900 ){
		errors.push(this.errorMsg.year);
		year_field.className = year_field.errorClass;
	}

	//can we create the date?
	var myDate = new Date(year, month, day);
	if (myDate == "Invalid Date" || myDate > new Date()){
		if(errors.length == 0){
			//no errors in field, show this error instead
			errors.push(this.errorMsg.date);
			day_field.className = day_field.errorClass;
			month_field.className = month_field.errorClass;
			year_field.className = year_field.errorClass;
		}
	}
	
	//check country
	if(!isNaN(country)){
		errors.push(this.errorMsg.country);
		country_field.className = country_field.errorClass;
	}
	
	
	//check language, if it exists
	if( $(language) ){
		if( isNaN(parseInt($(language).value)) ){
			errors.push(this.errorMsg.language);
			$(language).className = $(language + "_div").errorClass;
		}
	}
	


	//-------------------------------------------------------------------------------------
	//check if there is errors. Show error messages, or check if age is valid
	if (errors.length > 0){
		var error_message="";
		for(var i in errors) error_message += errors[i] + "\n";
		
		//update field classes to show where errors are
		//input_edit_error
		
		alert(error_message);
	}else{
		//check if theres a ban
		var ban = ( this.data.c[country].ban != null ) ? true : false ;
		if ( this.checkAge(day, month, year, country) && !ban ){
			
			//compile country, region and language
			
			//country
			var c = country;
			//language
			var l;
			if(this.data.c[c].lan != null){
				if(this.data.c[c].lan.length == 1){
					l = this.data.c[c].lan[0];
				}else{
					l = $(language).value;
				}
			}else{
				l = $(language).value;
			}
			//region
			/*
			1- US
			2- CA-EN
			3- 
			4- UK
			5- SP
			6- CA-FR
			7- generic
			*/
			var r;
			if(c == "United States"){
				r = 1;
			}else if(c == "Canada (Alberta, Manitoba, Québec)" || c == "Canada (other provinces or territories)" || c == "Canada (Nunavut)"){
				if(l == 1){
					r = 2;
				}else{
					r = 6;
				}
			}else if(c == "United Kingdom"){
				r = 4;
			}else if(c == "Spain"){
				r = 5;
			}else{
				r = 7;
			}
			
			//updated by WhoIN, 5/13/06
			//redirect to main site
			//window.location.href = this.redirect.ok + "?region="+r+"&language="+l+"&country="+escape(c);
			var mainURL = this.redirect.ok + "?region="+r+"&language="+l+"&country="+escape(c)+"&published=Y";
			
			
			window.location.href = this.redirect.entry;
			
		}else{
			if(country == "United States"){
				//redirect to US error
				window.location.href = this.redirect.error_us;
			}else{
				//redirect to generic error
				window.location.href = this.redirect.error_generic;
			}
		}
	}
 }	
 
}

function $(id){
	return document.getElementById(id);  //shortcut
}



