/*
	Stuff for state / country input!
*/

// states
var state = '\
CA:Alberta:Alberta|\
CA:British Columbia:British Columbia|\
CA:Manitoba:Manitoba|\
CA:New Brunswick:New Brunswick|\
CA:Newfoundland and Labrador:Newfoundland and Labrador|\
CA:Northwest Territories:Northwest Territories|\
CA:Nova Scotia:Nova Scotia|\
CA:Nunavut:Nunavut|\
CA:Ontario,:Ontario,|\
CA:Prince Edward Island:Prince Edward Island|\
CA:Quebec:Quebec|\
CA:Saskatchewan:Saskatchewan|\
CA:Yukon Territory:Yukon Territory|\
AU:Australian Capital Territory:Australian Capital Territory|\
AU:New South Wales:New South Wales|\
AU:Northern Territory:Northern Territory|\
AU:Queensland:Queensland|\
AU:South Australia:South Australia|\
AU:Tasmania:Tasmania|\
AU:Victoria:Victoria|\
AU:Western Australia:Western Australia|\
BR:Acre:Acre|\
BR:Alagoas:Alagoas|\
BR:Amapa:Amapa|\
BR:Amazonas:Amazonas|\
BR:Bahia:Bahia|\
BR:Ceara:Ceara|\
BR:Distrito Federal:Distrito Federal|\
BR:Espirito Santo:Espirito Santo|\
BR:Goias:Goias|\
BR:Maranhao:Maranhao|\
BR:Mato Grosso:Mato Grosso|\
BR:Mato Grosso do Sul:Mato Grosso do Sul|\
BR:Minas Gerais:Minas Gerais|\
BR:Para:Para|\
BR:Paraiba:Paraiba|\
BR:Parana:Parana|\
BR:Pernambuco:Pernambuco|\
BR:Piaui:Piaui|\
BR:Rio de Janeiro:Rio de Janeiro|\
BR:Rio Grande do Norte:Rio Grande do Norte|\
BR:Rio Grande do Sul:Rio Grande do Sul|\
BR:Rondonia:Rondonia|\
BR:Roraima:Roraima|\
BR:Santa Catarina:Santa Catarina|\
BR:Sao Paulo:Sao Paulo|\
BR:Sergipe:Sergipe|\
BR:Tocantins:Tocantins|\
IE:County Carlow:County Carlow|\
IE:County Cavan:County Cavan|\
IE:County Clare:County Clare|\
IE:County Cork:County Cork|\
IE:County Donegal:County Donegal|\
IE:County Dublin:County Dublin|\
IE:County Galway:County Galway|\
IE:County Kerry:County Kerry|\
IE:County Kildare:County Kildare|\
IE:County Kilkenny:County Kilkenny|\
IE:County Laois:County Laois|\
IE:County Leitrim:County Leitrim|\
IE:County Limerick:County Limerick|\
IE:County Longford:County Longford|\
IE:County Louth:County Louth|\
IE:County Mayo:County Mayo|\
IE:County Meath:County Meath|\
IE:County Monaghan:County Monaghan|\
IE:County Offaly:County Offaly|\
IE:County Roscommon:County Roscommon|\
IE:County Sligo:County Sligo|\
IE:County Tipperary:County Tipperary|\
IE:County Waterford:County Waterford|\
IE:County Westmeath:County Westmeath|\
IE:County Wexford:County Wexford|\
IE:County Wicklow:County Wicklow|\
IN:Andaman and Nicobar Islands:Andaman and Nicobar Islands|\
IN:Andhra Pradesh:Andhra Pradesh|\
IN:Arunachal Pradesh:Arunachal Pradesh|\
IN:Assam:Assam|\
IN:Bihar:Bihar|\
IN:Chandigarh:Chandigarh|\
IN:Chhattisgarh:Chhattisgarh|\
IN:Dadra and Nagar Haveli:Dadra and Nagar Haveli|\
IN:Daman and Diu:Daman and Diu|\
IN:Delhi:Delhi|\
IN:Goa:Goa|\
IN:Gujarat:Gujarat|\
IN:Haryana:Haryana|\
IN:Himachal Pradesh:Himachal Pradesh|\
IN:Jammu and Kashmir:Jammu and Kashmir|\
IN:Jharkhand:Jharkhand|\
IN:Karnataka:Karnataka|\
IN:Kerala:Kerala|\
IN:Lakshadweep:Lakshadweep|\
IN:Madhya Pradesh:Madhya Pradesh|\
IN:Maharashtra:Maharashtra|\
IN:Manipur:Manipur|\
IN:Meghalaya:Meghalaya|\
IN:Mizoram:Mizoram|\
IN:Nagaland:Nagaland|\
IN:Orissa:Orissa|\
IN:Puducherry:Puducherry|\
IN:Punjab:Punjab|\
IN:Rajasthan:Rajasthan|\
IN:Sikkim:Sikkim|\
IN:Tamil Nadu:Tamil Nadu|\
IN:Tripura:Tripura|\
IN:Uttar Pradesh:Uttar Pradesh|\
IN:Uttarakhand:Uttarakhand|\
IN:West Bengal:West Bengal|\
JP:Aichi:Aichi|\
JP:Akita:Akita|\
JP:Aomori:Aomori|\
JP:Chiba:Chiba|\
JP:Ehime:Ehime|\
JP:Fukui:Fukui|\
JP:Fukuoka:Fukuoka|\
JP:Fukushima:Fukushima|\
JP:Gifu:Gifu|\
JP:Gunma:Gunma|\
JP:Hiroshima:Hiroshima|\
JP:Hokkaido:Hokkaido|\
JP:Hyogo:Hyogo|\
JP:Ibaraki:Ibaraki|\
JP:Ishikawa:Ishikawa|\
JP:Iwate:Iwate|\
JP:Kagawa:Kagawa|\
JP:Kagoshima:Kagoshima|\
JP:Kanagawa:Kanagawa|\
JP:Kochi:Kochi|\
JP:Kumamoto:Kumamoto|\
JP:Kyoto:Kyoto|\
JP:Mie:Mie|\
JP:Miyagi:Miyagi|\
JP:Miyazaki:Miyazaki|\
JP:Nagano:Nagano|\
JP:Nagasaki:Nagasaki|\
JP:Nara:Nara|\
JP:Niigata:Niigata|\
JP:Oita:Oita|\
JP:Okayama:Okayama|\
JP:Okinawa:Okinawa|\
JP:Osaka:Osaka|\
JP:Saga:Saga|\
JP:Saitama:Saitama|\
JP:Shiga:Shiga|\
JP:Shimane:Shimane|\
JP:Shizuoka:Shizuoka|\
JP:Tochigi:Tochigi|\
JP:Tokushima:Tokushima|\
JP:Tokyo:Tokyo|\
JP:Tottori:Tottori|\
JP:Toyama:Toyama|\
JP:Wakayama:Wakayama|\
JP:Yamagata:Yamagata|\
JP:Yamaguchi:Yamaguchi|\
JP:Yamanashi:Yamanashi|\
MX:Aguascalientes:Aguascalientes|\
MX:Baja California:Baja California|\
MX:Baja California Sur:Baja California Sur|\
MX:Campeche:Campeche|\
MX:Chiapas:Chiapas|\
MX:Chihuahua:Chihuahua|\
MX:Coahuila de Zaragoza:Coahuila de Zaragoza|\
MX:Colima:Colima|\
MX:Distrito Federal:Distrito Federal|\
MX:Durango:Durango|\
MX:Guanajuato:Guanajuato|\
MX:Guerrero:Guerrero|\
MX:Hidalgo:Hidalgo|\
MX:Jalisco:Jalisco|\
MX:Mexico:Mexico|\
MX:Michoacan de Ocampo:Michoacan de Ocampo|\
MX:Morelos:Morelos|\
MX:Nayarit:Nayarit|\
MX:Nuevo Leon:Nuevo Leon|\
MX:Oaxaca:Oaxaca|\
MX:Puebla:Puebla|\
MX:Queretaro de Arteaga:Queretaro de Arteaga|\
MX:Quintana Roo:Quintana Roo|\
MX:San Luis Potosi:San Luis Potosi|\
MX:Sinaloa:Sinaloa|\
MX:Sonora:Sonora|\
MX:Tabasco:Tabasco|\
MX:Tamaulipas:Tamaulipas|\
MX:Tlaxcala:Tlaxcala|\
MX:Veracruz-Llave:Veracruz-Llave|\
MX:Yucatan:Yucatan|\
MX:Zacatecas:Zacatecas|\
US:AK:Alaska|\
US:AL:Alabama|\
US:AR:Arkansas|\
US:AZ:Arizona|\
US:CA:California|\
US:CO:Colorado|\
US:CT:Connecticut|\
US:DC:District of Columbia|\
US:DE:Delaware|\
US:FL:Florida|\
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:MI:Michigan|\
US:MN:Minnesota|\
US:MO:Missouri|\
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:RI:Rhode Island|\
US:SC:South Carolina|\
US:SD:South Dakota|\
US:TN:Tennessee|\
US:TX:Texas|\
US:UT:Utah|\
US:VA:Virginia|\
US:VT:Vermont|\
US:WA:Washington|\
US:WI:Wisconsin|\
US:WV:West Virginia|\
US:WY:Wyoming|\
';

// Countries
var country = "\
DZ:Algeria|\
AD:Andorra|\
AI:Anguilla|\
AG:Antigua and Barbuda|\
AR:Argentina|\
AM:Armenia|\
AW:Aruba|\
AU:Australia|\
AT:Austria|\
AZ:Azerbaijan|\
BS:Bahamas|\
BH:Bahrain|\
BD:Bangladesh|\
BB:Barbados|\
BE:Belgium|\
BZ:Belize|\
BM:Bermuda|\
BT:Bhutan|\
BO:Bolivia|\
BA:Bosnia-Herzegovina|\
BW:Botswana|\
BR:Brazil|\
VG:British Virgin Islands|\
BN:Brunei Darussalam|\
BG:Bulgaria|\
BF:Burkina Faso|\
MM:Burma|\
BI:Burundi|\
KH:Cambodia|\
CA:Canada|\
CV:Cape Verde|\
KY:Cayman Islands|\
TD:Chad|\
CL:Chile|\
CN:China|\
CX:Christmas Island (Australia)|\
CC:Cocos Island (Australia)|\
CO:Colombia|\
KM:Comoros|\
CG:Congo (Brazzaville),Republic of the|\
CK:Cook Islands (New Zealand)|\
CR:Costa Rica|\
CI:Cote d'Ivoire (Ivory Coast)|\
HR:Croatia|\
CY:Cyprus|\
CZ:Czech Republic|\
DK:Denmark|\
DJ:Djibouti|\
DM:Dominica|\
DO:Dominican Republic|\
TP:East Timor (Indonesia)|\
EC:Ecuador|\
EG:Egypt|\
SV:El Salvador|\
GQ:Equatorial Guinea|\
ER:Eritrea|\
EE:Estonia|\
FK:Falkland Islands|\
FO:Faroe Islands|\
FJ:Fiji|\
FI:Finland|\
FR:France|\
GF:French Guiana|\
PF:French Polynesia|\
GA:Gabon|\
GM:Gambia|\
GE:Georgia, Republic of|\
DE:Germany|\
GH:Ghana|\
GI:Gibraltar|\
GB:Great Britain and Northern Ireland|\
GR:Greece|\
GL:Greenland|\
GD:Grenada|\
GP:Guadeloupe|\
GT:Guatemala|\
GN:Guinea|\
GW:Guinea-Bissau|\
GY:Guyana|\
HT:Haiti|\
HN:Honduras|\
HK:Hong Kong|\
IS:Iceland|\
IN:India|\
IE:Ireland|\
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|\
LI:Liechtenstein|\
LT:Lithuania|\
LU:Luxembourg|\
MO:Macao|\
MK:Macedonia, Republic of|\
MG:Madagascar|\
MW:Malawi|\
MV:Maldives|\
ML:Mali|\
MT:Malta|\
MQ:Martinique|\
MR:Mauritania|\
MU:Mauritius|\
YT:Mayotte (France)|\
MX:Mexico|\
MD:Moldova|\
MC:Monaco (France)|\
MN:Mongolia|\
MS:Montserrat|\
MA:Morocco|\
MZ:Mozambique|\
NA:Namibia|\
NR:Nauru|\
NP:Nepal|\
NL:Netherlands|\
AN:Netherlands Antilles|\
NC:New Caledonia|\
NZ:New Zealand|\
NI:Nicaragua|\
NE:Niger|\
NO:Norway|\
OM:Oman|\
PA:Panama|\
PG:Papua New Guinea|\
PY:Paraguay|\
PE:Peru|\
PN:Pitcairn Island|\
PL:Poland|\
PT:Portugal|\
QA:Qatar|\
RE:Reunion|\
RU:Russian Federation|\
SH:Saint Helena|\
KN:Saint Kitts (St. Christopher and Nevis)|\
LC:Saint Lucia|\
PM:Saint Pierre and Miquelon|\
VC:Saint Vincent and the Grenadines|\
SM:San Marino|\
ST:Sao Tome and Principe|\
SA:Saudi Arabia|\
SN:Senegal|\
YU:Serbia-Montenegro|\
SC:Seychelles|\
SL:Sierra Leone|\
SG:Singapore|\
SK:Slovak Republic|\
SI:Slovenia|\
SB:Solomon Islands|\
ZA:South Africa|\
GS:South Georgia (Falkland Islands)|\
KR:South Korea (Korea, Republic of)|\
ES:Spain|\
LK:Sri Lanka|\
SR:Suriname|\
SZ:Swaziland|\
SE:Sweden|\
CH:Switzerland|\
SY:Syrian Arab Republic|\
TW:Taiwan|\
TJ:Tajikistan|\
TZ:Tanzania|\
TG:Togo|\
TK:Tokelau (Union) Group (Western Samoa)|\
TO:Tonga|\
TT:Trinidad and Tobago|\
TN:Tunisia|\
TM:Turkmenistan|\
TC:Turks and Caicos Islands|\
TV:Tuvalu|\
UG:Uganda|\
AE:United Arab Emirates|\
US:United States|\
UY:Uruguay|\
UZ:Uzbekistan|\
VU:Vanuatu|\
VA:Vatican City|\
VE:Venezuela|\
WF:Wallis and Futuna Islands|\
WS:Western Samoa|\
ZM:Zambia|\
";

function TrimString(sInString) {
	if (sInString) {
		sInString = sInString.replace(/^\s+/g, "");
		return sInString.replace(/\s+$/g, "");
	}
}


function populateCountry(defaultCountry, frmEleNameCountry) {
	var countryLineArray = country.split('|');
	var selObj = document.getElementById('countrySelect');
	selObj.options[0] = new Option('-please select-', '');
	selObj.selectedIndex = 0;
	for (var j = 0; j < countryLineArray.length; j++) {
		lineArray = countryLineArray[j].split(':');
		countryCode = TrimString(lineArray[0]);
		countryName = TrimString(lineArray[1]);
		if (countryCode != '') {
			selObj.options[j + 1] = new Option(countryName, countryCode);
		}
		if (defaultCountry == countryCode) {
			selObj.selectedIndex = j + 1;
		}
	}
}


function populateState(defaultState,frmEleNameState) {

	// get selected country
	var selectedCountry = document.getElementById('countrySelect').value;

	var selObj = document.getElementById('stateSelect');
	var foundState = false;
	if (selObj.type == 'select-one') {
		for (var i = 0; i < selObj.options.length; i++) {
			selObj.options[i] = null;
		}
		selObj.options.length = null;
		selObj.options[0] = new Option('-please select-', '');
		// selObj.selectedIndex = 0;
	}
	var stateLineArray = state.split('|');
	var optionCntr = 1;
	for (var j = 0; j < stateLineArray.length; j++) {
		lineArray = stateLineArray[j].split(':');
		countryCode = TrimString(lineArray[0]);
		stateCode = TrimString(lineArray[1]);
		stateName = TrimString(lineArray[2]);
		if (document.getElementById('countrySelect').value == countryCode && countryCode != '') {
			if (selObj.type == 'text') {
				parentObj = document.getElementById('stateSelect').parentNode;
				parentObj.removeChild(selObj);
				var inputSel = document.createElement('SELECT');
				inputSel.setAttribute('name', frmEleNameState);
				inputSel.setAttribute('id', 'stateSelect');
				parentObj.appendChild(inputSel);
				selObj = document.getElementById('stateSelect');
				selObj.options[0] = new Option('-please select-', '');
				selObj.selectedIndex = 0;
			}
			if (stateCode != '') {
				selObj.options[optionCntr] = new Option(stateName, stateCode);
			}
			if (stateCode == defaultState && countryCode == selectedCountry) {
				selObj.selectedIndex = optionCntr;
				// selObj.selectedIndex = j+1;
			}
			foundState = true;
			optionCntr++;
		}
	}
	if (!foundState) {
		// make an input text box
		parentObj = document.getElementById('stateSelect').parentNode;
		parentObj.removeChild(selObj);
		var inputEl = document.createElement('INPUT');
		inputEl.setAttribute('id', 'stateSelect');
		inputEl.setAttribute('type', 'text');
		inputEl.setAttribute('name', frmEleNameState);
		inputEl.setAttribute('size', 20);
		inputEl.setAttribute('value', defaultState);
		parentObj.appendChild(inputEl);
	}
}


function countryStateInit(country, frmEleNameCountry, state, frmEleNameState) {
	// alert(country+' - '+frmEleNameCountry+' - '+state+' - '+frmEleNameState);
	populateCountry(country,frmEleNameCountry);
	populateState(state,frmEleNameState);
}

function testIt (ddff) {
	alert(ddff);

}