/* BASED ON:Country State Drop Downs v1.0.
(c) Copyright 2005 Down Home Consulting, Inc.
www.DownHomeConsulting.com
Permission is hereby granted, free of charge. THANK YOU FROM GIFTTOOL
*/

var map = new Hash();

function Hash()
{
	this.length = 0;
	this.items = new Array();
	for (var i = 0; i < arguments.length; i += 2)
	{
		if (typeof(arguments[i + 1]) != 'undefined')
		{	this.items[arguments[i]] = arguments[i + 1];
			this.length++;
		}
	}

	this.removeItem = function(in_key)
	{	var tmp_value;
		if (typeof(this.items[in_key]) != 'undefined')
		{	this.length--;
			var tmp_value = this.items[in_key];
			delete this.items[in_key];
		}
		return tmp_value;
	}

	this.getItem = function(in_key)
	{	return this.items[in_key];
	}

	this.setItem = function(in_key, in_value)
	{	if (typeof(in_value) != 'undefined')
		{	if (typeof(this.items[in_key]) == 'undefined')
			{	this.length++;
			}
			this.items[in_key] = in_value;
		}
	   	return in_value;
	}

	this.hasItem = function(in_key)
	{	return typeof(this.items[in_key]) != 'undefined';
	}
}

function allowCountries(cs) {
	doAllowCountries(cs, "EN");
	doAllowCountries(cs, "FR");
	doAllowCountries(cs, "ES");
}

function doAllowCountries(cs, LN) {

	var tmp = '';
	if (cs.length >= 2) {

		cs = cs.substring(1,cs.length - 1);	//trim brackets
		var allowedCodes = cs.split(', ');

		var lines = getCountryList(LN).split('|');
		for (var loop = 0; loop < lines.length; loop++) {

			var line 	= lines[loop].split(':');
			var ccode	= trimString(line[0]);
			var cname	= trimString(line[1]);

			for (var j = 0; j < allowedCodes.length; j++) {
				if (trimString(allowedCodes[j]) === ccode) {
					tmp = tmp + ccode + ':' + cname + '|';
				}
			}

		}
	}

	if (LN === 'EN') {country = tmp; }
	else if (LN === 'FR') country_FR = tmp;
	else if (LN === 'ES') country_ES = tmp;
}

// [CA:BC,CA:AB,]
function allowStates(sa) {
	doAllowStates(sa, 'CA', 'EN');
	doAllowStates(sa, 'CA', 'FR');
	doAllowStates(sa, 'CA', 'ES');
	doAllowStates(sa, 'US');
	doAllowStates(sa, 'AU');
	doAllowStates(sa, 'BR');
	doAllowStates(sa, 'NL');
	doAllowStates(sa, 'EI');
}

function doAllowStates(sa, cc, LN) {
	var tmp = '';
	if (sa.length >= 2) {
		sa = sa.substring(1,sa.length - 1);	//trim brackets
		var allowedCodes = sa.split(', ');

		var lines = getAStateList(cc, LN).split('|');
		for (var i = 0; i < lines.length; i++) {

			var line 	= lines[i];
			var ccode	= line.substring(0,5);

			for (var j = 0; j < allowedCodes.length; j++) {
				if (trimString(allowedCodes[j]) === ccode) {
					tmp += line + '|';
				}
			}
		}
	}
	if (cc === 'CA' && LN=='EN')
		state_CA_EN = tmp;
	else if (cc === 'CA' && LN=='FR')
		state_CA_FR = tmp;
	else if (cc === 'CA' && LN=='ES')
		state_CA_ES = tmp;
	else if (cc === 'US')
		state_US = tmp;
	else if (cc === 'AU')
		state_AU = tmp;
	else if (cc === 'BR')
		state_BR = tmp;
	else if (cc === 'NL')
		state_NL = tmp;
	else if (cc === 'EI')
		state_EI = tmp;
}


function initCountry(c_id,s_id,cc,sc,ln,wd)
{
	if (cc.length > 2)
		cc = getCodeFromCountry(cc);

	if (cc == '')
		cc='US';

	setSelectedState(c_id, cc, sc);
	map.setItem('CId'+c_id,c_id);
	map.setItem('SId'+c_id,s_id);
	map.setItem('CC'+c_id,cc);
	map.setItem('LN'+c_id,ln);
	map.setItem('WD'+c_id,wd);

	if (typeof select_country_width !== "undefined") {
		map.setItem('WD'+c_id,select_country_width);
	}

	populateCountry(c_id);
	populateState(c_id)
}

function changeCountry(c_id)
{	map.setItem('CC'+c_id, document.getElementById(map.getItem('CId'+c_id)).value );
	populateState(c_id);
	changeState(c_id);
}

function changeState(c_id)
{	var cc = document.getElementById(map.getItem('CId'+c_id)).value;
	var sc = document.getElementById(map.getItem('SId'+c_id)).value;
	setSelectedState(c_id, cc, sc);
}

// Populates the country selected with the counties from the country list
function populateCountry(c_id) {

	var countries = getCountryList(c_id);
	var lines = countries.split('|');	// Split into lines
	var obj = document.getElementById(map.getItem('CId'+c_id));

	// IE7 bug if there is a meta tag like <meta content="Canada" name="country">
	if (obj.tagName.toLowerCase() !== "select") {
		alert("Oops. Country is not a <select> element. It is a : <"+ obj.tagName +"> element. ")
	}

	obj.options[0] = new Option(getSelectMessage(c_id),"");

	obj.selectedIndex = 0;
	obj.style.width = map.getItem('WD'+c_id);
	//obj.className = "gtSelect25";

	for (var loop = 0; loop < lines.length; loop++) {

		var line 	= lines[loop].split(':');
		var ccode	= trimString(line[0]);
		var cname	= trimString(line[1]);

		if (ccode != '')
			obj.options[loop + 1] = new Option(cname, ccode);

		if (map.getItem('CC'+c_id) == ccode)
			obj.options[loop + 1].selected = true;
	}
}

function populateState(c_id)
{
	var foundState = false;
	var obj = document.getElementById(map.getItem('SId'+c_id));
	//map.setItem('CC'+c_id, document.getElementById(map.getItem('CId'+c_id)).value)
	var parentObj = obj.parentNode;

	// Empty options just in case new drop down is shorter
	if (obj.type == 'select-one')
	{
		for (var i = 0; i < obj.options.length; i++)
			obj.options[i] = null;

		obj.options.length=null;
		obj.options[0] = new Option(getSelectMessage(c_id),'');
		obj.selectedIndex = 0;
	}

	// Populate the drop down with states from the selected country
	var states = getStateList(c_id);

	var array = states.split("|");	// Split into lines
	var optionCntr = 1;
	for (var loop=0; loop < array.length; loop++)
	{
		var line	= array[loop].split(":");
		var ccode	= trimString(line[0]);
		var scode	= trimString(line[1]);
		var sname	= trimString(line[2]);
		if (ccode != '' && ccode == map.getItem('CC'+c_id))
		{
			// If it's a input element, change it to a select
			if (obj.type == 'text')
			{
				parentObj.removeChild(obj);
				var inputSel = document.createElement("SELECT");
				inputSel.setAttribute("name",map.getItem('SId'+c_id));
				inputSel.setAttribute("id",map.getItem('SId'+c_id));
				inputSel.setAttribute("onchange","changeState(\'"+map.getItem('CId'+c_id)+"\')");
				inputSel.setAttribute("className", "gtSelect25"); // <-- doesn't work too well
				inputSel.className = "gtSelect25";

				parentObj.appendChild(inputSel) ;

				obj = document.getElementById(map.getItem('SId'+c_id));
				obj.options[0] = new Option(getSelectMessage(c_id),'');
				obj.selectedIndex = 0;
			}

			if (scode != '')
				obj.options[optionCntr] = new Option(sname, scode);

			// See if it's selected from a previous post
			if (scode == getPrevSelectedState(c_id) && ccode == map.getItem('CC'+c_id))
				obj.options[optionCntr].selected = true;

			obj.style.width = map.getItem('WD'+c_id);
			//obj.className = "gtSelect25";

			foundState = true;
			optionCntr++
		}
	}

	// If the country has no states, change the select to a text box
	if (! foundState)
	{	parentObj.removeChild(obj);
		// Create the Input Field
		var inputEl = document.createElement("INPUT");
		inputEl.setAttribute("id", map.getItem('SId'+c_id));
		inputEl.setAttribute("type", "text");
		inputEl.setAttribute("name", map.getItem('SId'+c_id));
		inputEl.setAttribute("size", 32);
		inputEl.setAttribute("className", "gtInputState");

		//inputEl.setAttribute("onchange", "changeState(\'"+map.getItem('CId'+c_id)+"\')");

		if (document.getElementById(map.getItem('CId'+c_id)).value == map.getItem('CC'+c_id))
			inputEl.setAttribute("value", getPrevSelectedState(c_id) == undefined ? "" : getPrevSelectedState(c_id));
		else
			inputEl.setAttribute("value", '');

		parentObj.appendChild(inputEl) ;
		inputEl.style.width = map.getItem('WD'+c_id);
	}
}

function getPrevSelectedState(c_id)
{	var cc = map.getItem('CC'+c_id);
	return map.getItem('SC_'+cc+'_'+c_id);
}
function setSelectedState(c_id, cc, sc)
{	map.setItem('SC_'+cc+'_'+c_id, sc);
}

function getStateList(c_id)
{
	var ln = map.getItem('LN'+c_id);
	var states = state_US + state_AU + state_BR + state_NL + state_EI;
	if (ln=='EN')
		states += state_CA_EN;
	else if (ln=='FR')
		states += state_CA_FR;
	else if (ln=='ES')
		states += state_CA_ES;
	else
		states += state_CA_EN;
	return states
}

function getCountryList(c_id)
{	var ln = map.getItem('LN'+c_id);
	if (ln=='EN')
		return country;
	else if (ln=='FR')
		return country_FR;
	else if (ln=='ES')
		return country_ES;
	else
		return country;
}

function getAStateList(cc, ln)
{
	if (cc === 'CA' && ln=='EN')
		return state_CA_EN;
	else if (cc === 'CA' && ln=='FR')
		return state_CA_FR;
	else if (cc === 'CA' && ln=='ES')
		return state_CA_ES;
	else if (cc === 'US')
		return state_US;
	else if (cc === 'AU')
		return state_AU;
	else if (cc === 'BR')
		return state_BR;
	else if (cc === 'NL')
		return state_NL;
	else if (cc === 'EI')
		return state_EI;
	else
		return;
}

function getSelectMessage(c_id)
{	var ln = map.getItem('LN'+c_id);
	if (ln != 'EN' && ln != 'FR' && ln != 'ES')
		ln = 'EN';

	if (ln == 'EN') return '--- Select ---';
	if (ln == 'FR') return '--- Sélectionnez ---';
	if (ln == 'ES') return '--- Seleccione ---';
}

function getCountryCode(c_id)
{	return document.getElementById(map.getItem('CId'+c_id)).value;
}

function getCountryName(c_id)
{	var index = document.getElementById(map.getItem('CId'+c_id)).selectedIndex;
	if (index == 0)
		return "";

	var countries = getCountryList(c_id);
	var lines = countries.split('|');		// Split into lines
	var line = lines[index-1].split(':');
	return trimString(line[1]);
}

function getStateCode(c_id)
{	return document.getElementById(map.getItem('SId'+c_id)).value;
}

function getStateName(c_id)
{	var sc = document.getElementById(map.getItem('SId'+c_id)).value;
	var states = getStateList(c_id);
	var lines = states.split("|");	// Split into lines
	for (var loop = 0; loop < lines.length; loop++)
	{
		line	= lines[loop].split(":");
		ccode	= trimString(line[0]);
		scode	= trimString(line[1]);
		sname	= trimString(line[2]);
		if (document.getElementById(map.getItem('CId'+c_id)).value == ccode && ccode != '')
		{
			if (scode == sc)
				return sname;
		}
	}
	return sc;
}

function trimString(str)
{	if (str)
	{	str = str.replace(/^\s+/g, "");// strip leading
		return str.replace(/\s+$/g, "");// strip trailing
	}
}

function getCodeFromCountry(name)
{	if (name == 'USA')
		return 'US';

	var countries = getCountryList('EN');
	var lines = countries.split('|');	// Split into lines
	for (var loop = 0; loop < lines.length; loop++)
	{	var line 	= lines[loop].split(':');
		var ccode	= trimString(line[0]);
		var cname	= trimString(line[1]);

		if (name == cname.toString())
			return ccode;
	}

	countries = getCountryList('FR');
	lines = countries.split('|');	// Split into lines
	for (var loop = 0; loop < lines.length; loop++)
	{	var line 	= lines[loop].split(':');
		var ccode	= trimString(line[0]);
		var cname	= trimString(line[1]);
		if (name == cname.toString())
			return ccode;
	}
	countries = getCountryList('ES');
	lines = countries.split('|');	// Split into lines
	for (var loop = 0; loop < lines.length; loop++)
	{	var line 	= lines[loop].split(':');
		var ccode	= trimString(line[0]);
		var cname	= trimString(line[1]);
		if (name == cname.toString())
			return ccode;
	}

	return '';
}

// State table
var state_US = '\
US:AK:Alaska|\
US:AL:Alabama|\
US:AR:Arkansas|\
US:AS:American Samoa|\
US:AZ:Arizona|\
US:CA:California|\
US:CO:Colorado|\
US:CT:Connecticut|\
US:DC:District Of Columbia|\
US:DE:Delaware|\
US:FL:Florida|\
US:FM:Micronesia|\
US:GA:Georgia|\
US:GU:Guam|\
US:HI:Hawaii|\
US:IA:Iowa|\
US:ID:Idaho|\
US:IL:Illinois|\
US:IN:Indiana|\
US:KS:Kansas|\
US:KY:Kentucky|\
US:LA:Louisiana|\
US:MA:Massachusetts|\
US:MD:Maryland|\
US:ME:Maine|\
US:MH:Marshall Islands|\
US:MI:Michigan|\
US:MN:Minnesota|\
US:MO:Missouri|\
US:MP:Marianas|\
US:MS:Mississippi|\
US:MT:Montana|\
US:NC:North Carolina|\
US:ND:North Dakota|\
US:NE:Nebraska|\
US:NH:New Hampshire|\
US:NJ:New Jersey|\
US:NM:New Mexico|\
US:NV:Nevada|\
US:NY:New York|\
US:OH:Ohio|\
US:OK:Oklahoma|\
US:OR:Oregon|\
US:PA:Pennsylvania|\
US:PR:Puerto Rico|\
US:PW:Palau|\
US:RI:Rhode Island|\
US:SC:South Carolina|\
US:SD:South Dakota|\
US:TN:Tennessee|\
US:TX:Texas|\
US:UT:Utah|\
US:VT:Vermont|\
US:VA:Virginia|\
US:VI:Virgin Islands|\
US:WA:Washington|\
US:WI:Wisconsin|\
US:WV:West Virginia|\
US:WY:Wyoming|\
US:AA:Military Americas|\
US:AE:Military Europe/ME/Canada|\
US:AP:Military Pacific|\
';

var state_AU = '\
AU:AAT:Australian Antarctic Territory|\
AU:ACT:Australian Capital Territory|\
AU:NSW:New South Wales|\
AU:NT:Northern Territory|\
AU:QLD:Queensland|\
AU:SA:South Australia|\
AU:TAS:Tasmania|\
AU:VIC:Victoria|\
AU:WA:Western Australia|\
';

var state_BR = '\
BR:AC:Acre|\
BR:AL:Alagoas|\
BR:AM:Amazonas|\
BR:AP:Amapa|\
BR:BA:Baia|\
BR:CE:Ceara|\
BR:DF:Distrito Federal|\
BR:ES:Espirito Santo|\
BR:FN:Fernando de Noronha|\
BR:GO:Goias|\
BR:MA:Maranhao|\
BR:MG:Minas Gerais|\
BR:MS:Mato Grosso do Sul|\
BR:MT:Mato Grosso|\
BR:PA:Para|\
BR:PB:Paraiba|\
BR:PE:Pernambuco|\
BR:PI:Piaui|\
BR:PR:Parana|\
BR:RJ:Rio de Janeiro|\
BR:RN:Rio Grande do Norte|\
BR:RO:Rondonia|\
BR:RR:Roraima|\
BR:RS:Rio Grande do Sul|\
BR:SC:Santa Catarina|\
BR:SE:Sergipe|\
BR:SP:Sao Paulo|\
BR:TO:Tocatins|\
';

var state_NL = '\
NL:DR:Drente|\
NL:FL:Flevoland|\
NL:FR:Friesland|\
NL:GL:Gelderland|\
NL:GR:Groningen|\
NL:LB:Limburg|\
NL:NB:Noord Brabant|\
NL:NH:Noord Holland|\
NL:OV:Overijssel|\
NL:UT:Utrecht|\
NL:ZH:Zuid Holland|\
NL:ZL:Zeeland|\
';

/*
var state_UK = '\
UK:AVON:Avon|\
UK:BEDS:Bedfordshire|\
UK:BERKS:Berkshire|\
UK:BUCKS:Buckinghamshire|\
UK:CAMBS:Cambridgeshire|\
UK:CHESH:Cheshire|\
UK:CLEVE:Cleveland|\
UK:CORN:Cornwall|\
UK:CUMB:Cumbria|\
UK:DERBY:Derbyshire|\
UK:DEVON:Devon|\
UK:DORSET:Dorset|\
UK:DURHAM:Durham|\
UK:ESSEX:Essex|\
UK:GLOUS:Gloucestershire|\
UK:GLONDON:Greater London|\
UK:GMANCH:Greater Manchester|\
UK:HANTS:Hampshire|\
UK:HERWOR:Hereford & Worcestershire|\
UK:HERTS:Hertfordshire|\
UK:HUMBER:Humberside|\
UK:IOM:Isle of Man|\
UK:IOW:Isle of Wight|\
UK:KENT:Kent|\
UK:LANCS:Lancashire|\
UK:LEICS:Leicestershire|\
UK:LINCS:Lincolnshire|\
UK:MERSEY:Merseyside|\
UK:NORF:Norfolk|\
UK:NHANTS:Northamptonshire|\
UK:NTHUMB:Northumberland|\
UK:NOTTS:Nottinghamshire|\
UK:OXON:Oxfordshire|\
UK:SHROPS:Shropshire|\
UK:SOM:Somerset|\
UK:STAFFS:Staffordshire|\
UK:SUFF:Suffolk|\
UK:SURREY:Surrey|\
UK:SUSS:Sussex|\
UK:WARKS:Warwickshire|\
UK:WMID:West Midlands|\
UK:WILTS:Wiltshire|\
UK:YORK:Yorkshire|\
';
*/

var state_EI = '\
EI:CO ANTRIM:County Antrim|\
EI:CO ARMAGH:County Armagh|\
EI:CO DOWN:County Down|\
EI:CO FERMANAGH:County Fermanagh|\
EI:CO DERRY:County Londonderry|\
EI:CO TYRONE:County Tyrone|\
EI:CO CAVAN:County Cavan|\
EI:CO DONEGAL:County Donegal|\
EI:CO MONAGHAN:County Monaghan|\
EI:CO DUBLIN:County Dublin|\
EI:CO CARLOW:County Carlow|\
EI:CO KILDARE:County Kildare|\
EI:CO KILKENNY:County Kilkenny|\
EI:CO LAOIS:County Laois|\
EI:CO LONGFORD:County Longford|\
EI:CO LOUTH:County Louth|\
EI:CO MEATH:County Meath|\
EI:CO OFFALY:County Offaly|\
EI:CO WESTMEATH:County Westmeath|\
EI:CO WEXFORD:County Wexford|\
EI:CO WICKLOW:County Wicklow|\
EI:CO GALWAY:County Galway|\
EI:CO MAYO:County Mayo|\
EI:CO LEITRIM:County Leitrim|\
EI:CO ROSCOMMON:County Roscommon|\
EI:CO SLIGO:County Sligo|\
EI:CO CLARE:County Clare|\
EI:CO CORK:County Cork|\
EI:CO KERRY:County Kerry|\
EI:CO LIMERICK:County Limerick|\
EI:CO TIPPERARY:County Tipperary|\
EI:CO WATERFORD:County Waterford|\
';

var state_CA_EN = '\
CA:AB:Alberta|\
CA:BC:British Columbia|\
CA:MB:Manitoba|\
CA:NB:New Brunswick|\
CA:NL:Newfoundland and Labrador|\
CA:NS:Nova Scotia|\
CA:NT:Northwest Territories|\
CA:NU:Nunavut|\
CA:ON:Ontario|\
CA:PE:Prince Edward Island|\
CA:QC:Quebec|\
CA:SK:Saskatchewan|\
CA:YT:Yukon Territory|\
';

var state_CA_FR = '\
CA:AB:Alberta|\
CA:BC:Colombie-Britannique|\
CA:MB:Manitoba|\
CA:NB:Nouveau-Brunswick|\
CA:NL:Terre-Neuve et Labrador|\
CA:NS:Nouvelle-Écosse|\
CA:NT:Territoires du Nord-Ouest|\
CA:NU:Nunavut|\
CA:ON:Ontario|\
CA:PE:Île-du-Prince-Édouard|\
CA:QC:Québec|\
CA:SK:Saskatchewan|\
CA:YT:Yukon Territory|\
';

var state_CA_ES = '\
CA:AB:Alberta|\
CA:BC:Colombia Británica|\
CA:MB:Manitoba|\
CA:NB:Nuevo Brunswick|\
CA:NL:Terranova - Labrador|\
CA:NS:Nueva Escocia|\
CA:NT:Territorios del Noroeste|\
CA:NU:Nunavut|\
CA:ON:Ontario|\
CA:PE:Isla del Príncipe Eduardo|\
CA:QC:Quebec|\
CA:SK:Saskatchewan|\
CA:YT:Yukón|\
';

// Country
var country = '\
AF:Afghanistan|\
AL:Albania|\
DZ:Algeria|\
AS:American Samoa|\
AD:Andorra|\
AO:Angola|\
AI:Anguilla|\
AQ:Antarctica|\
AG:Antigua and Barbuda|\
AR:Argentina|\
AM:Armenia|\
AW:Aruba|\
AU:Australia|\
AT:Austria|\
AZ:Azerbaijan|\
AP:Azores|\
BS:Bahamas|\
BH:Bahrain|\
BD:Bangladesh|\
BB:Barbados|\
BY:Belarus|\
BE:Belgium|\
BZ:Belize|\
BJ:Benin|\
BM:Bermuda|\
BT:Bhutan|\
BO:Bolivia|\
BA:Bosnia And Herzegovina|\
BW:Botswana|\
BV:Bouvet Island|\
BR:Brazil|\
IO:British Indian Ocean Territory|\
VG:British Virgin Islands|\
BN:Brunei Darussalam|\
BG:Bulgaria|\
BF:Burkina Faso|\
BI:Burundi|\
KH:Cambodia|\
CM:Cameroon|\
CA:Canada|\
IC:Canary Islands|\
CV:Cape Verde|\
KY:Cayman Islands|\
CF:Central African Republic|\
TD:Chad|\
CL:Chile|\
CN:China|\
CX:Christmas Island|\
CC:Cocos (Keeling) Islands|\
CO:Colombia|\
KM:Comoros|\
CG:Congo|\
CD:Congo, The Democratic Republic of|\
CK:Cook Islands|\
XE:Corsica|\
CR:Costa Rica|\
CI:Cote d\' Ivoire (Ivory Coast)|\
HR:Croatia|\
CU:Cuba|\
CY:Cyprus|\
CZ:Czech Republic|\
DK:Denmark|\
DJ:Djibouti|\
DM:Dominica|\
DO:Dominican Republic|\
TP:East Timor|\
EC:Ecuador|\
EG:Egypt|\
SV:El Salvador|\
GQ:Equatorial Guinea|\
ER:Eritrea|\
EE:Estonia|\
ET:Ethiopia|\
FK:Falkland Islands (Malvinas)|\
FO:Faroe Islands|\
FJ:Fiji|\
FI:Finland|\
FR:France|\
FX:France, Metropolitan|\
GF:French Guiana|\
PF:French Polynesia|\
TA:French Polynesia (Tahiti)|\
TF:French Southern Territories|\
GA:Gabon|\
GM:Gambia|\
GE:Georgia|\
DE:Germany|\
GH:Ghana|\
GI:Gibraltar|\
GB:Great Britain|\
GR:Greece|\
GL:Greenland|\
GD:Grenada|\
GP:Guadeloupe|\
GU:Guam|\
GT:Guatemala|\
GN:Guinea|\
GW:Guinea-Bissau|\
GY:Guyana|\
HT:Haiti|\
HM:Heard And Mc Donald Islands|\
VA:Holy See (Vatican City State)|\
HN:Honduras|\
HK:Hong Kong|\
HU:Hungary|\
IS:Iceland|\
IN:India|\
ID:Indonesia|\
IR:Iran|\
IQ:Iraq|\
IE:Ireland|\
EI:Ireland (Eire)|\
IL:Israel|\
IT:Italy|\
JM:Jamaica|\
JP:Japan|\
JO:Jordan|\
KZ:Kazakhstan|\
KE:Kenya|\
KI:Kiribati|\
KW:Kuwait|\
KG:Kyrgyzstan|\
LA:Laos|\
LV:Latvia|\
LB:Lebanon|\
LS:Lesotho|\
LR:Liberia|\
LY:Libya|\
LI:Liechtenstein|\
LT:Lithuania|\
LU:Luxembourg|\
MO:Macao|\
MK:Macedonia|\
MG:Madagascar|\
ME:Madeira Islands|\
MW:Malawi|\
MY:Malaysia|\
MV:Maldives|\
ML:Mali|\
MT:Malta|\
MH:Marshall Islands|\
MQ:Martinique|\
MR:Mauritania|\
MU:Mauritius|\
YT:Mayotte|\
MX:Mexico|\
FM:Micronesia, Federated States of|\
MD:Moldova, Republic of|\
MC:Monaco|\
MN:Mongolia|\
MS:Montserrat|\
MA:Morocco|\
MZ:Mozambique|\
MM:Myanmar (Burma)|\
NA:Namibia|\
NR:Nauru|\
NP:Nepal|\
NL:Netherlands|\
AN:Netherlands Antilles|\
NC:New Caledonia|\
NZ:New Zealand|\
NI:Nicaragua|\
NE:Niger|\
NG:Nigeria|\
NU:Niue|\
NF:Norfolk Island|\
KP:Korea, North|\
KR:Korea, South|\
MP:Northern Mariana Islands|\
NO:Norway|\
OM:Oman|\
PK:Pakistan|\
PW:Palau|\
PS:Palestine|\
PA:Panama|\
PG:Papua New Guinea|\
PY:Paraguay|\
PE:Peru|\
PH:Philippines|\
PN:Pitcairn|\
PL:Poland|\
PT:Portugal|\
PR:Puerto Rico|\
QA:Qatar|\
RE:Reunion|\
RO:Romania|\
RU:Russia|\
RW:Rwanda|\
KN:Saint Kitts And Nevis|\
WS:Samoa|\
SM:San Marino|\
ST:Sao Tome and Principe|\
SA:Saudi Arabia|\
SN:Senegal|\
XS:Serbia-Montenegro|\
SC:Seychelles|\
SL:Sierra Leone|\
SG:Singapore|\
SK:Slovakia|\
SI:Slovenia|\
SB:Solomon Islands|\
SO:Somalia|\
ZA:South Africa|\
GS:South Georgia And The South Sand|\
ES:Spain|\
LK:Sri Lanka|\
NV:St. Christopher and Nevis|\
SH:St. Helena|\
LC:St. Lucia|\
PM:St. Pierre and Miquelon|\
VC:St. Vincent and the Grenadines|\
SD:Sudan|\
SR:Suriname|\
SJ:Svalbard And Jan Mayen Islands|\
SZ:Swaziland|\
SE:Sweden|\
CH:Switzerland|\
SY:Syrian Arab Republic|\
TW:Taiwan|\
TJ:Tajikistan|\
TZ:Tanzania|\
TH:Thailand|\
TG:Togo|\
TK:Tokelau|\
TO:Tonga|\
TT:Trinidad and Tobago|\
XU:Tristan da Cunha|\
TN:Tunisia|\
TR:Turkey|\
TM:Turkmenistan|\
TC:Turks and Caicos Islands|\
TV:Tuvalu|\
UG:Uganda|\
UA:Ukraine|\
AE:United Arab Emirates|\
UK:United Kingdom|\
US:United States|\
UM:US Minor Outlying Islands|\
VI:US Virgin Islands|\
UY:Uruguay|\
UZ:Uzbekistan|\
VU:Vanuatu|\
VE:Venezuela|\
VN:Vietnam|\
WF:Wallis and Furuna Islands|\
EH:Western Sahara|\
YE:Yemen|\
YU:Yugoslavia|\
ZR:Zaire|\
ZM:Zambia|\
ZW:Zimbabwe';

var country_FR = '\
AF:Afghanistan|\
ZA:Afrique du Sud|\
AL:Albanie|\
DZ:Algérie|\
DE:Allemagne|\
AS:American Samoa|\
AD:Andorre|\
AO:Angola|\
AI:Anguilla|\
AQ:Antarctique|\
AG:Antigua-et-Barbuda|\
SA:Arabie saoudite|\
AR:Argentine|\
AM:Arménie|\
AW:Aruba|\
AU:Australie|\
AT:Autriche|\
AZ:Azerbaïdjan|\
AP:Açores|\
BS:Bahamas|\
BH:Bahreïn|\
BD:Bangladesh|\
BB:Barbade|\
BY:Belarus|\
BE:Belgique|\
BZ:Belize|\
BJ:Bénin|\
BM:Bermudes|\
BT:Bhoutan|\
BO:Bolivie|\
BA:Bosnie-Herzégovine|\
BW:Botswana|\
BV:Bouvet Island|\
BR:Brésil|\
IO:British Indian Ocean Territory|\
VG:British Virgin Islands|\
BN:Brunei Darussalam|\
BG:Bulgarie|\
BF:Burkina Faso|\
BI:Burundi|\
KH:Cambodge|\
CM:Cameroun|\
CA:Canada|\
CV:Cap-Vert|\
KY:Cayman Islands|\
CF:Central African Republic|\
CL:Chili|\
CN:Chine|\
CX:Christmas Island|\
CC:Cocos (Keeling) Islands|\
CO:Colombie|\
KM:Comores|\
CG:Congo|\
CD:Congo, République démocratique du|\
CK:Cook Islands|\
KP:Corée du Nord|\
KR:Corée du Sud|\
XE:Corse|\
CR:Costa Rica|\
CI:Côte d \'Ivoire (Ivory Coast)|\
HR:Croatie|\
CU:Cuba|\
CY:Chypre|\
DK:Danemark|\
DJ:Djibouti|\
DM:Dominique|\
DO:République dominicaine|\
EC:Équateur|\
EG:Égypte|\
SV:El Salvador|\
AE:Émirats arabes unis|\
ER:Érythrée|\
ES:Espagne|\
EE:Estonie|\
US:États-Unis|\
VI:États-Unis Iles Vierges|\
UM:États-Unis Îles mineures éloignées|\
ET:Éthiopie|\
GQ:Guinée équatoriale|\
IC:Îles Canaries|\
FK:Îles Falkland (Malvinas)|\
FO:Îles Féroé|\
FJ:Fidji|\
FI:Finlande|\
FR:France|\
FX:France métropolitaine|\
GF:Guyane française|\
TF:Terres australes françaises|\
GA:Gabon|\
GM:Gambie|\
GE:Géorgie|\
GS:la Géorgie du Sud et le Sud de sable|\
GH:Ghana|\
GI:Gibraltar|\
GB:Grande-Bretagne|\
GR:Grèce|\
GL:Groenland|\
GD:Grenade|\
GP:Guadeloupe|\
GU:Guam|\
GT:Guatemala|\
GN:Guinée|\
GW:Guinée-Bissau|\
GY:Guyana|\
HT:Haïti|\
HM:Heard et Mc Donald Islands|\
HN:Honduras|\
HK:Hong Kong|\
HU:Hongrie|\
MP:Îles Mariannes du Nord|\
SB:Îles Salomon|\
IS:Islande|\
IN:Inde|\
ID:Indonésie|\
IR:Iran|\
IQ:Irak|\
IE:Irlande|\
EI:Irlande (Eire)|\
IL:Israël|\
IT:Italie|\
JM:Jamaïque|\
JP:Japon|\
JO:Jordanie|\
KZ:Kazakhstan|\
KE:Kenya|\
KI:Kiribati|\
KW:Koweït|\
KG:Kirghizistan|\
LA:Laos|\
LV:Lettonie|\
LB:Liban|\
LS:Lesotho|\
LR:Libéria|\
LY:Libye|\
LI:Liechtenstein|\
LT:Lituanie|\
LU:Luxembourg|\
MO:Macao|\
MK:Macédoine|\
MG:Madagascar|\
ME:Madère|\
MW:Malawi|\
MY:Malaisie|\
MV:Maldives|\
ML:Mali|\
MT:Malte|\
MH:Marshall Islands|\
MQ:Martinique|\
MR:Mauritanie|\
MU:Maurice|\
YT:Mayotte|\
MX:Mexique|\
FM:Micronésie, États fédérés de|\
MD:Moldova, République du|\
MC:Monaco|\
MN:Mongolie|\
MS:Montserrat|\
MA:Maroc|\
MZ:Mozambique|\
MM:Myanmar (Birmanie)|\
NA:Namibie|\
NR:Nauru|\
NP:Népal|\
NC:Nouvelle-Calédonie|\
NZ:Nouvelle-Zélande|\
NI:Nicaragua|\
NE:Niger|\
NG:Nigeria|\
NU:Niue|\
NF:Norfolk Island|\
NO:Norvège|\
OM:Oman|\
UG:Ouganda|\
UZ:Ouzbékistan|\
PK:Pakistan|\
PW:Palaos|\
PS:Palestine|\
PA:Panama|\
PG:Papouasie-Nouvelle-Guinée|\
PY:Paraguay|\
NL:Pays-Bas|\
AN:Pays-Bas Antilles|\
PE:Pérou|\
PH:Philippines|\
PN:Pitcairn|\
PL:Pologne|\
PF:Polynésie française|\
TA:Polynésie française (Tahiti)|\
PT:Portugal|\
PR:Puerto Rico|\
QA:Qatar|\
SY:République arabe syrienne|\
SK:République slovaque|\
CZ:République tchèque|\
RE:Réunion|\
RO:Roumanie|\
UK:Royaume-Uni|\
RU:Russe|\
RW:Rwanda|\
EH:Sahara occidental|\
NV:Saint - Christophe-et-Nevis|\
SH:Saint - Hélène|\
LC:Saint - Lucie|\
PM:Saint - Pierre-et-Miquelon|\
VC:Saint - Vincent-et-les Grenadines|\
KN:Saint-Kitts-Et-Nevis|\
SM:Saint-Marin|\
VA:Saint-Siège (Vatican City State)|\
WS:Samoa|\
ST:Sao Tomé-et-Principe|\
SN:Sénégal|\
XS:Serbie-Monténégro|\
SC:Seychelles|\
SL:Sierra Leone|\
SG:Singapour|\
SI:Slovénie|\
SO:Somalie|\
LK:Sri Lanka|\
SD:Soudan|\
SR:Suriname|\
SJ:Svalbard et Jan Mayen îles|\
SZ:Swaziland|\
SE:Suède|\
CH:Suisse|\
TW:Taiwan|\
TJ:Tadjikistan|\
TZ:Tanzanie|\
TD:Tchad|\
TH:Thaïlande|\
TP:Timor oriental|\
TG:Togo|\
TK:Tokélaou|\
TO:Tonga|\
TT:Trinité-et-Tobago|\
XU:Tristan da Cunha|\
TN:Tunisie|\
TR:Turquie|\
TM:Turkménistan|\
TC:Turques et Caïques, Îles|\
TV:Tuvalu|\
UY:Uruguay|\
UA:Ukraine|\
VU:Vanuatu|\
VE:Venezuela|\
VN:Vietnam|\
WF:Wallis-et-Îles Furuna|\
YE:Yémen|\
YU:Yougoslavie|\
ZR:Zaïre|\
ZM:Zambie|\
ZW:Zimbabwe';

var country_ES = '\
AF:Afganistán|\
AL:Albania|\
DZ:Argelia|\
DE:Alemania|\
AD:Andorra|\
AO:Angola|\
AI:Anguila|\
AQ:Antártida|\
AG:Antigua y Barbuda|\
AN:Antillas Neerlandesas|\
SA:Arabia Saudita|\
AR:Argentina|\
AM:Armenia|\
AW:Aruba|\
AU:Australia|\
AT:Austria|\
AZ:Azerbaiyán|\
AP:Azores|\
BS:Bahamas|\
BH:Bahréin|\
BD:Bangladesh|\
BB:Barbados|\
BY:Bielorrusia|\
BE:Bélgica|\
BZ:Belice|\
BJ:Benín|\
BM:Bermudas|\
BT:Bután|\
BO:Bolivia|\
BA:Bosnia y Herzegovina|\
BW:Botsuana|\
BR:Brasil|\
BN:Brunei Darussalam|\
BG:Bulgaria|\
BF:Burkina Faso|\
BI:Burundi|\
VA:Santa Sede (Vatican City State)|\
KH:Camboya|\
CM:Camerún|\
CA:Canadá|\
CV:Cabo Verde|\
KY:Islas Caimán|\
CF:República Centroafricana|\
TD:Chad|\
CL:Chile|\
CN:China|\
CX:Christmas Island|\
CC:Cocos (Keeling), Islas|\
CO:Colombia|\
KM:Comores|\
CG:Congo|\
CD:Congo, República Democrática de|\
KP:Corea del Norte|\
KR:Corea del Sur|\
XE:Córcega|\
CR:Costa Rica|\
CI:Cote d\'Ivoire (Ivory Coast)|\
HR:Croacia|\
CU:Cuba|\
CY:Chipre|\
CZ:República Checa|\
DK:Dinamarca|\
DJ:Yibuti|\
DM:Dominica|\
DO:República Dominicana|\
EC:Ecuador|\
EG:Egipto|\
SV:El Salvador|\
AE:Emiratos Árabes Unidos|\
ER:Eritrea|\
SK:Eslovaquia|\
SI:Eslovenia|\
ES:España|\
US:Estados Unidos|\
EE:Estonia|\
ET:Etiopía|\
FJ:Fiji|\
FI:Finlandia|\
FR:Francia|\
FX:Francia, Metropolitana|\
GF:Guayana Francesa|\
PF:Polinesia Francesa|\
TA:Polinesia Francesa (Tahití)|\
TF:Territorios Franceses del Sur|\
GA:Gabón|\
GM:Gambia|\
GE:Georgia|\
GS:Georgia del Sur y el Sur de arena|\
GH:Ghana|\
GI:Gibraltar|\
GB:Gran Bretaña|\
GD:Granada|\
GR:Grecia|\
GL:Groenlandia|\
GP:Guadalupe|\
GU:Guam|\
GT:Guatemala|\
GN:Guinea|\
GW:Guinea-Bissau|\
GQ:Guinea Ecuatorial|\
GY:Guyana|\
HT:Haití|\
HM:Heard y Mc Donald Islas|\
HN:Honduras|\
HK:Hong Kong|\
HU:Hungría|\
IN:India|\
ID:Indonesia|\
IR:Irán|\
IQ:Iraq|\
IE:Irlanda|\
EI:Irlanda (Eire)|\
IS:Islandia|\
BV:Isla Bouvet|\
CK:Islas Cook|\
IC:Islas Canarias|\
FO:Islas Feroe|\
FK:Islas Malvinas (Falkland)|\
MP:Islas Marianas del Norte|\
MH:Islas Marshall|\
SB:Islas Salomón|\
TC:Islas Turcas y Caicos|\
VG:Islas Vírgenes Británicas|\
VI:Islas Vírgenes de Estados Unidos|\
IL:Israel|\
IT:Italia|\
JM:Jamaica|\
JP:Japón|\
JO:Jordania|\
KZ:Kazajstán|\
KE:Kenia|\
KI:Kiribati|\
KW:Kuwait|\
KG:Kirguistán|\
LA:Laos|\
LV:Letonia|\
LB:Líbano|\
LS:Lesotho|\
LR:Liberia|\
LY:Libia|\
LI:Liechtenstein|\
LT:Lituania|\
LU:Luxemburgo|\
MO:Macao|\
MK:Macedonia|\
MG:Madagascar|\
ME:Madeira|\
MW:Malawi|\
MY:Malasia|\
MV:Maldivas|\
ML:Mali|\
MT:Malta|\
MQ:Martinica|\
MR:Mauritania|\
MU:Mauricio|\
YT:Mayotte|\
UM:Menores de los EEUU Isl|\
MX:México|\
FM:Micronesia, Estados Federales|\
MD:Moldova, Republic Of|\
MC:Mónaco|\
MN:Mongolia|\
MS:Montserrat|\
MA:Marruecos|\
MZ:Mozambique|\
MM:Myanmar (Birmania)|\
NA:Namibia|\
NR:Nauru|\
NP:Nepal|\
NC:Nueva Caledonia|\
NZ:Nueva Zelanda|\
NI:Nicaragua|\
NE:Níger|\
NG:Nigeria|\
NU:Niue|\
NF:Norfolk Island|\
NO:Noruega|\
OM:Omán|\
NL:Países Bajos|\
PK:Pakistán|\
PW:Palau|\
PA:Panamá|\
PG:Papua Nueva Guinea|\
PY:Paraguay|\
PE:Perú|\
PH:Filipinas|\
PN:Pitcairn|\
PL:Polonia|\
PT:Portugal|\
PR:Puerto Rico|\
QA:Qatar|\
UK:Reino Unido|\
SY:República Árabe Siria|\
RE:Reunión|\
RO:Rumania|\
RU:Rusia|\
RW:Ruanda|\
EH:Sahara Occidental|\
KN:Saint Kitts y Nevis|\
WS:Samoa|\
SM:San Marino|\
ST:Santo Tomé y Príncipe|\
SN:Senegal|\
XS:Serbia-Montenegro|\
SC:Seychelles|\
SL:Sierra Leona|\
SG:Singapur|\
AS:Samoa Americana|\
SO:Somalia|\
ZA:Sudáfrica|\
LK:Sri Lanka|\
NV:St Cristóbal y Nieves|\
SH:Santa Helena|\
LC:St Lucía|\
PM:St Pierre y Miquelon|\
VC:St Vicente y las Granadinas|\
SD:Sudán|\
SR:Surinam|\
SJ:Svalbard y Jan Mayen Islas|\
SZ:Swazilandia|\
SE:Suecia|\
CH:Suiza|\
TW:Taiwán|\
TJ:Tayikistán|\
TZ:Tanzania|\
TH:Tailandia|\
IO:Territorio Británico del Océano Índico|\
PS:Palestina|\
TP:Timor Oriental|\
TG:Togo|\
TK:Tokelau|\
TO:Tonga|\
TT:Trinidad y Tobago|\
XU:Tristán da Cunha|\
TN:Túnez|\
TR:Turquía|\
TM:Turkmenistán|\
TV:Tuvalu|\
UG:Uganda|\
UA:Ucrania|\
UY:Uruguay|\
UZ:Uzbekistán|\
VU:Vanuatu|\
VE:Venezuela|\
VN:Vietnam|\
WF:Wallis y Furuna Islas|\
YE:Yemen|\
YU:Yugoslavia|\
ZR:Zaire|\
ZM:Zambia|\
ZW:Zimbabwe';

