/**
* @author wangxiang
* @email:flyxiang228@gmail.com
* @copyright privite
*/
var countryProvcity = function(data){
this.data = data;
}
countryProvcity.prototype = {
init: function (){
var _t = this;
var _d = this.data;
_d.cid = _d.cid?_d.cid:"cid"; //country id
_d.pid = _d.pid ? _d.pid : "pid";//city id
_d.pnum = _d.pnum ? _d.pnum : "pnum";//country number
//_d.cnum = _d.cnum ? _d.cnum : "";//city number
_d.box = _d.box ? _d.box : "box"; //container id
var provinces = {
"United states":1000840000,"Canada":1001124000,"Afghanistan":3040004000,"Albania":2200008000,"Algeria":5010012000,"American Samoa":3070016000,"Andorra":2100020000,"Angola":5020024000,"Anguilla":6010660000,"Antigua and Barbuda":6010028000,"Argentina":6030032000,"Armenia":3040051000,"Aruba":6010533000,"Australia":3010036000,"Austria":2100040000,"Azerbaijan":3040031000,"Bahamas":6010044000,"Bahrain":4000048000,"Bangladesh":3050050000,"Barbados":6010052000,"Belarus":2200112000,"Belgium":2100056000,"Belize":6020084000,"Benin":5020204000,"Bermuda":6010060000,"Bhutan":3050064000,"Bolivia":6030068000,"Bosnia and Herzegovina":2200070000,"Botswana":5020072000,"Brazil":6030076000,"British Virgin Islands":6010092000,"Brunei":3060096000,"Bulgaria":2200100000,"Burkina Faso":5020854000,"Burundi":5020108000,"C?te d'Ivoire":5020384000,
"Cambodia":3060116000,"Cameroon":5020120000,"Cape Verde":5020132000,"Cayman Islands":6010136000,"Central African Republic":5020140000,"Chad":5020148000,"Chile":6030152000,"China":3030156000,"Colombia":6030170000,"Comoros":5020174000,"Congo":5020178000,"Cook Islands":3070184000,"Costa Rica":6020188000,"Croatia":2200191000,"Cuba":6010192000,"Cyprus":2100196000,"Czech Republic":2200203000,"Democratic Republic of Congo":5020180000,"Denmark":2100208000,"Djibouti":5020262000,"Dominica":6010212000,"Dominican Republic":6010214000,"East Timor":3060626000,"Ecuador":6030218000,"Egypt":5010818000,"El Salvador":6020222000,"Equatorial Guinea":5020226000,"Eritrea":5020232000,"Estonia":2200233000,"Ethiopia":5020231000,"Falkland Islands":6030238000,"Federated state1s of Micronesia":3070583000,
"Fiji":3070242000,"Finland":2100246000,"France":2100250000,"French Guiana":6030254000,"French Polynesia":3070258000,"Gabon":5020266000,"Gambia":5020270000,"Georgia":3040239000,"Germany":2100276000,"Ghana":5020288000,"Gibraltar":2100292000,"Greece":2100300000,"Greenland":2104304000,"Grenada":6010308000,"Guadeloupe":6010312000,"Guam":3070316000,"Guatemala":6020320000,"Guinea":5020324000,"Guinea-Bissau":5020624000,"Guyana":6030328000,"Haiti":6010332000,"Honduras":6020340000,"Hong Kong":3030344000,"Hungary":2200348000,"Iceland":2100352000,"India":3050356000,"Indonesia":3060360000,"Iran":3040364000,"Iraq":4000368000,"Ireland":2100372000,"Israel":4000376000,"Italy":2100380000,"Jamaica":6010388000,"Japan":3020392000,"Jordan":4000400000,"Kazakhstan":3040398000,"Kenya":5020404000,"Kiribati":3070296000,"Korea":3020410000,
"Kuwait":4000414000,"Kyrgyzstan":3040417000,"Laos":3060418000,"Latvia":2200428000,"Lebanon":4000422000,"Lesotho":5020426000,"Liberia":5020430000,"Libya":5010434000,"Liechtenstein":2100438000,"Lithuania":2200440000,"Luxembourg":2100442000,"Macau":3030446000,"Macedonia":2200807000,"Madagascar":5020450000,"Malawi":5020454000,"Malaysia":3060458000,"Maldives":3050462000,"Mali":5020466000,"Malta":2200470000,"Marshall Islands":3070584000,"Martinique":6010474000,"Mauritania":5020478000,"Mauritius":5020480000,"Mexico":6020484000,"Moldova":2200498000,"Monaco":2100492000,"Mongolia":3020496000,"Montserrat":6010500000,"Morocco":5010504000,"Mozambique":5020508000,"Myanmar":3050104000,"Namibia":5020516000,"Nauru":3070520000,"Nepal":3050524000,"Netherlands Antilles":6010530000,"Netherlands":2100528000,"New Caledonia":3070540000,
"New Zealand":3010554000,"Nicaragua":6020558000,"Niger":5020562000,"Nigeria":5020566000,"North Korea":3020408000,"Northern Mariana Islands":3070580000,"Norway":2100578000,"Oman":4000512000,"Pakistan":3050586000,"Palau":3070585000,"Panama":6020591000,"Papua New Guinea":3070598000,"Paraguay":6030600000,"Peru":6030604000,"Philippines":3060608000,"Poland":2200616000,"Portugal":2100620000,"Puerto Rico":6010630000,"Qatar":4000634000,"Romania":2200642000,"Russia":2200643000,"Rwanda":5020646000,"Saint Kitts & Nevis":6010659000,"Saint Lucia":6010662000,"Saint Vincent and The Grenadines":6010670000,"Samoa":3070882000,"San Marino":2100674000,"Saudi Arabia":4000682000,"Senegal":5020686000,"Serbia":2200688000,"Seychelles":5020690000,"Sierra Leone":5020694000,"Singapore":3060702000,"Slovakia":2200703000,"Slovenia":2200705000,"Solomon Islands":3070090000,
"Somalia":5020706000,"South Africa":5020710000,"Spain":2100724000,"Sri Lanka":3050144000,"Sudan":5020736000,"Suriname":6030740000,"Swaziland":5020748000,"Sweden":2100752000,"Switzerland":2100756000,"Syria":4000760000,"Taiwan":3030158000,"Tajikistan":3040762000,"Tanzania":5020834000,"Thailand":3060764000,"Togo":5020768000,"Tonga":3070776000,"Trinidad and Tobago":6010780000,"Tunisia":5010504000,"Turkey":4000792000,"Turkmenistan":3040795000,"Turks and Caicos Islands":6010796000,"Tuvalu":3070798000,"US Virgin Islands":6010850000,"Uganda":5020800000,"Ukraine":2200804000,"United Arab Emirates":4000784000,"United Kingdom":2100826000,"Uruguay":6030858000,"Uzbekistan":3040860000,"Vanuatu":3070548000,"Vatican":2100336000,"Venezuela":6030862000,"Vietnam":3060704000,"Yemen":4000887000,"Zambia":5020894000,"Zimbabwe":5020716000
};
var selObj = document.createElement("select");
var inpObj = document.createElement("input");
var inpId = document.createAttribute("id");
var inpName = document.createAttribute("name");
var inpClass = document.createAttribute("class");
var inpType = document.createAttribute("type");
inpId.value="plain";
inpName.value="state";
inpType.value = "text";
inpClass.value="plain_hidden";
inpObj.setAttributeNode(inpId);
inpObj.setAttributeNode(inpName);
inpObj.setAttributeNode(inpType);
selObj.name = _d.cid;
selObj.id = _d.cid;
selObj.onchange = function() {
_t._(_d.pid) ? _t._('state1').removeChild(_t._(_d.pid)) : '';
return _t._setcity(_d.cid, _d.pid, _d.box);
};
this._(_d.box).appendChild(selObj);
_t._(_d.cid).className = "select_style3_100 m_right_10";//set country select class
_t._("state1").appendChild(inpObj);
selObj.options[0] = new Option("Select Country", "");
var j = 1;
for(i in provinces) {
selObj.options[j] = new Option(i, provinces[i]);
j++;
}
if(_d.pnum != "")
{
typeof(_d.cnum) == 'string' ? inpObj.setAttribute("value",_d.cnum) : '';
inpObj.setAttributeNode(inpClass);
_t._initprovcity(_d.cid, _d.pnum);
return;
}
else{
inpClass.value="plain_show";
inpObj.setAttributeNode(inpClass);
}
},
_: function (id){
if(document.getElementById(id)){
return document.getElementById(id);
}
},
_setcity: function (provinceid, cityid,boxid) {
var province = parseFloat(this._(provinceid).value);
switch (province) {
case 1000840000 :
var cityOptions = {
"Alabama":1000840301,"Alaska":1000840802,"Arizona":1000840704,"Arkansas":1000840305,"California":1000840806,"Colorado":1000840608,"Connecticut":1000840109,"Delaware":1000840210,"District of Columbia":1000840211,"Florida":1000840312,
"Georgia":1000840313,"Hawaii":1000840815,"Idaho":1000840616,"Illinois":1000840417,"Indiana":1000840418,"Iowa":1000840519,"Kansas":1000840520,"Kentucky":1000840421,"Louisiana":1000840322,"Maine":1000840123,"Maryland":1000840224,"Massachusetts":1000840125,
"Michigan":1000840426,"Minnesota":1000840427,"Mississippi":1000840328,"Missouri":1000840529,"Montana":1000840630,"Nebraska":1000840531,"Nevada":1000840732,"New Hampshire":1000840133,"New Jersey":1000840134,"New Mexico":1000840735,"New York":1000840136,
"North Carolina":1000840237,"North Dakota":1000840538,"Ohio":1000840439,"Oklahoma":1000840540,"Oregon":1000840841,"Pennsylvania":1000840442,"Rhode Island":1000840144,"South Carolina":1000840345,"South Dakota":1000840546,"Tennessee":1000840347,"Texas":1000840748,
"Utah":1000840649,"Vermont":1000840150,"Virginia":1000840251,"Washington":1000840853,"West Virginia":1000840254,"Wisconsin":1000840455,"Wyoming":1000840656
};
break;
case 1001124000 :
var cityOptions = {
"Alberta":1001124002,
"British Columbia":1001124008,
"Manitoba":1001124012,
"New Brunswick":1001124018,
"Newfoundland and Labrador":1001124022,
"Northwest Territories":1001124028,
"Nova Scotia":1001124032,
"Nunavut":1001124038,
"Ontario":1001124042,
"Prince Edward Island":1001124048,
"Quebec":1001124052,
"Saskatchewan":1001124058,
"Yukon Territory":1001124062
};
break;
default:
var cityOptions = null;
break;
}
if(cityOptions == null && this._(cityid))
{
this._("state1").removeChild(this._(cityid));
this._("plain").setAttribute("name","state");
this._("plain").setAttribute("value","");
this._("plain").className = "plain_show";
return;
}else if (cityOptions == null && !this._(cityid))
{
this._("plain").setAttribute("name","state");
this._("plain").className = "plain_show";
return;
}
else if(!this._(cityid))
{
var selObj = document.createElement("select");
selObj.name = cityid;
selObj.id = cityid;
this._("plain").className = "plain_hidden";
this._("plain").setAttribute("name","testing");
this._("state1").appendChild(selObj);
this._("state").className = "select_style3_100 m_right_10";
}
var cityObject = this._(cityid);
var j = 0;
for(i in cityOptions){
cityObject.options[j] = new Option(i,cityOptions[i]);
j++;
}
if(this.data.cnum != null && typeof(this.data.cnum) == "number"){
for(var i = 0; i < cityObject.options.length; i++) {
if (cityObject.options[i].value == this.data.cnum) {
cityObject.selectedIndex = i;
break;
}
}
}
},
_initprovcity: function (provinceid, province) {
var provObject = this._(provinceid);
for(var i = 0; i < provObject.options.length; i++) {
if (provObject.options[i].value == province) {
provObject.selectedIndex = i;
break;
}
}
this._setcity(provinceid, this.data.pid);
}
}
<html>
<style type="text/css">
#selectbox{position:relative;}
.plain_show{display:block;}
.plain_hidden{display:none;}
</style>
<head>
<script type="text/javascript" src="selectcity_n.js"></script>
</head>
<body>
<div id="country"><label for="">Country</label></div>
dsafsafasfdasdfasdfasdfasd
<div id="state1"><label for="">State Province</label></div>
<script type="text/javascript">
var countryProvcity = new countryProvcity({cid:'province', pid:'state', pnum:'2100246000', cnum:'', box:'country'});
countryProvcity.init();
</script>
</body>
</html>