function BillingCountryList()
{
    var _Self = this; //handles scope for contructor vars in function, ie this in function !=  this in constructor
    this._aCountries = new Array();
    this._Country = '';
    this._StateDDObjectName = '';
    this._TagName = '';
    this._ObjectName = '';
    this._DrawDiv = '';
    this.Init = function(objDef)
    {
        _Self._Country = objDef._Country;
        _Self._StateDDObjectName = objDef._StateDDObjectName;
        _Self._TagName = objDef._TagName;
        _Self._ObjectName = objDef._ObjectName;
        _Self._DrawDiv = objDef._DrawDiv;
        _Self._aCountries = [
			{_Code:'AF',_DisplayValue:'Afghanistan'},
			{_Code:'AX',_DisplayValue:'Aland Islands'},
            {_Code:'AL',_DisplayValue:'Albania'},
            {_Code:'DZ',_DisplayValue:'Algeria'},
            {_Code:'AS',_DisplayValue:'American Samoa'},
            {_Code:'AD',_DisplayValue:'Andorra'},
            {_Code:'AO',_DisplayValue:'Angola'},
            {_Code:'AI',_DisplayValue:'Anguilla'},
            {_Code:'AG',_DisplayValue:'Antigua and Barbuda'},
            {_Code:'AR',_DisplayValue:'Argentina'},
            {_Code:'AM',_DisplayValue:'Armenia'},
            {_Code:'AW',_DisplayValue:'Aruba'},
            {_Code:'AU',_DisplayValue:'Australia'},
            {_Code:'AT',_DisplayValue:'Austria'},
            {_Code:'AZ',_DisplayValue:'Azerbaijan'},
            {_Code:'BS',_DisplayValue:'Bahamas'},
            {_Code:'BH',_DisplayValue:'Bahrain'},
            {_Code:'BD',_DisplayValue:'Bangladesh'},
            {_Code:'BB',_DisplayValue:'Barbados'},
            {_Code:'BE',_DisplayValue:'Belgium'},
            {_Code:'BZ',_DisplayValue:'Belize'},
            {_Code:'BY',_DisplayValue:'Belarus'},
            {_Code:'BJ',_DisplayValue:'Benin'},
            {_Code:'BM',_DisplayValue:'Bermuda'},
            {_Code:'BT',_DisplayValue:'Bhutan'},
            {_Code:'BO',_DisplayValue:'Bolivia'},
            {_Code:'BA',_DisplayValue:'Bosnia and Herzegovna'},
            {_Code:'BW',_DisplayValue:'Botswana'},
            {_Code:'BR',_DisplayValue:'Brazil'},
            {_Code:'VG',_DisplayValue:'British Virgin Islands'},
            {_Code:'BN',_DisplayValue:'Brunei Darussalam'},
            {_Code:'BG',_DisplayValue:'Bulgaria'},
            {_Code:'BF',_DisplayValue:'Burkina Faso'},
            {_Code:'BI',_DisplayValue:'Burundi'},
            {_Code:'KH',_DisplayValue:'Cambodia'},
            {_Code:'CM',_DisplayValue:'Cameroon'},
            {_Code:'CA',_DisplayValue:'Canada'},
            {_Code:'CV',_DisplayValue:'Cape Verde'},
            {_Code:'KY',_DisplayValue:'Cayman Islands'},
            {_Code:'CF',_DisplayValue:'Central African Republic'},
            {_Code:'TD',_DisplayValue:'Chad'},
            {_Code:'CL',_DisplayValue:'Chile'},
            {_Code:'CN',_DisplayValue:'China, Peoples Republic of'},
            {_Code:'CO',_DisplayValue:'Colombia'},
            {_Code:'CG',_DisplayValue:'Congo'},
            {_Code:'CK',_DisplayValue:'Cook Islands'},
            {_Code:'CR',_DisplayValue:'Costa Rica'},
            {_Code:'CI',_DisplayValue:'Cote d&acute;Ivoire'},
            {_Code:'HR',_DisplayValue:'Croatia'},
            {_Code:'CU',_DisplayValue:'Cuba'},
            {_Code:'CY',_DisplayValue:'Cyprus'},
            {_Code:'CZ',_DisplayValue:'Czech Republic'},
            {_Code:'KP',_DisplayValue:'Democratic People&acute;s Republic of Korea'},
            {_Code:'CD',_DisplayValue:'Democratic Republic of the Congo'},
            {_Code:'DK',_DisplayValue:'Denmark'},
            {_Code:'DJ',_DisplayValue:'Djibouti'},
            {_Code:'DM',_DisplayValue:'Dominica'},
            {_Code:'DO',_DisplayValue:'Dominican Republic'},
            {_Code:'EC',_DisplayValue:'Ecuador'},
            {_Code:'EG',_DisplayValue:'Egypt'},
            {_Code:'SV',_DisplayValue:'El Salvador'},
            {_Code:'GQ',_DisplayValue:'Equitorial Guinea'},
            {_Code:'ER',_DisplayValue:'Eritrea'},
            {_Code:'EE',_DisplayValue:'Estonia'},
            {_Code:'ET',_DisplayValue:'Ethiopia'},
            {_Code:'FO',_DisplayValue:'Faeroe Islands'},
            {_Code:'FK',_DisplayValue:'Falkland Islands (Malvinas)'},
            {_Code:'FJ',_DisplayValue:'Fiji'},
            {_Code:'FI',_DisplayValue:'Finland'},
            {_Code:'FR',_DisplayValue:'France'},
            {_Code:'GF',_DisplayValue:'French Guiana'},
            {_Code:'PF',_DisplayValue:'French Polynesia'},
            {_Code:'GA',_DisplayValue:'Gabon'},
            {_Code:'GM',_DisplayValue:'Gambia'},
            {_Code:'GE',_DisplayValue:'Georgia'},
            {_Code:'DE',_DisplayValue:'Germany'},
            {_Code:'GH',_DisplayValue:'Ghana'},
            {_Code:'GI',_DisplayValue:'Gibraltar'},
            {_Code:'GR',_DisplayValue:'Greece'},
            {_Code:'GL',_DisplayValue:'Greenland'},
            {_Code:'GD',_DisplayValue:'Grenada'},
            {_Code:'GP',_DisplayValue:'Guadeloupe'},
            {_Code:'GU',_DisplayValue:'Guam'},
            {_Code:'GT',_DisplayValue:'Guatemala'},
            {_Code:'GG',_DisplayValue:'Guernsey'},
            {_Code:'GN',_DisplayValue:'Guinea'},
            {_Code:'GW',_DisplayValue:'Guinea-Bissau'},
            {_Code:'GY',_DisplayValue:'Guyana'},
            {_Code:'HT',_DisplayValue:'Haiti'},
            {_Code:'VA',_DisplayValue:'Holy See'},
            {_Code:'HN',_DisplayValue:'Honduras'},
            {_Code:'HK',_DisplayValue:'Hong Kong'},
            {_Code:'HU',_DisplayValue:'Hungary'},
            {_Code:'IS',_DisplayValue:'Iceland'},
            {_Code:'IN',_DisplayValue:'India'},
            {_Code:'ID',_DisplayValue:'Indonesia'},
            {_Code:'IQ',_DisplayValue:'Iraq'},
            {_Code:'IR',_DisplayValue:'Iran'},
            {_Code:'IE',_DisplayValue:'Ireland'},
            {_Code:'IM',_DisplayValue:'Isle of Man'},
            {_Code:'IL',_DisplayValue:'Israel'},
            {_Code:'IT',_DisplayValue:'Italy'},
            {_Code:'JM',_DisplayValue:'Jamaica'},
            {_Code:'JP',_DisplayValue:'Japan'},
            {_Code:'JE',_DisplayValue:'Jersey'},
            {_Code:'JO',_DisplayValue:'Jordan'},
            {_Code:'KZ',_DisplayValue:'Kazakhstan'},
            {_Code:'KE',_DisplayValue:'Kenya'},
            {_Code:'KI',_DisplayValue:'Kiribati'},
            {_Code:'KW',_DisplayValue:'Kuwait'},
            {_Code:'KG',_DisplayValue:'Kyrgyzstan'},
            {_Code:'LA',_DisplayValue:'Lao People&acute;s Democratic Republic'},
            {_Code:'LV',_DisplayValue:'Latvia'},
            {_Code:'LB',_DisplayValue:'Lebanon'},
            {_Code:'LS',_DisplayValue:'Lesotho'},
            {_Code:'LR',_DisplayValue:'Liberia'},
            {_Code:'LY',_DisplayValue:'Libya Arab Jamahiriya'},
            {_Code:'LI',_DisplayValue:'Liechtenstein'},
            {_Code:'LT',_DisplayValue:'Lithuania'},
            {_Code:'LU',_DisplayValue:'Luxembourg'},
            {_Code:'MO',_DisplayValue:'Macao Special Administrative Region of China'},
            {_Code:'MG',_DisplayValue:'Madagascar'},
            {_Code:'MW',_DisplayValue:'Malawi'},
            {_Code:'MY',_DisplayValue:'Malaysia'},
            {_Code:'MV',_DisplayValue:'Maldives'},
            {_Code:'ML',_DisplayValue:'Mali'},
            {_Code:'MT',_DisplayValue:'Malta'},
            {_Code:'MH',_DisplayValue:'Marshall Islands'},
            {_Code:'MQ',_DisplayValue:'Martinique'},
            {_Code:'MR',_DisplayValue:'Mauritania'},
            {_Code:'MU',_DisplayValue:'Mauritius'},
            {_Code:'YT',_DisplayValue:'Mayotte'},
            {_Code:'MX',_DisplayValue:'Mexico'},
            {_Code:'FM',_DisplayValue:'Micronesia'},
            {_Code:'MC',_DisplayValue:'Monaco'},
            {_Code:'MN',_DisplayValue:'Mongolia'},
            {_Code:'ME',_DisplayValue:'Montenegro'},
            {_Code:'MS',_DisplayValue:'Montserrat'},
            {_Code:'MA',_DisplayValue:'Morocco'},
            {_Code:'MZ',_DisplayValue:'Mozambique'},
            {_Code:'MM',_DisplayValue:'Myanmar'},
            {_Code:'NA',_DisplayValue:'Namibia'},
            {_Code:'NR',_DisplayValue:'Nauru'},
            {_Code:'NP',_DisplayValue:'Nepal'},
            {_Code:'NL',_DisplayValue:'Netherlands'},
            {_Code:'AN',_DisplayValue:'Netherlands Antilles'},
            {_Code:'NC',_DisplayValue:'New Caledonia'},
            {_Code:'NZ',_DisplayValue:'New Zealand'},
            {_Code:'NI',_DisplayValue:'Nicaragua'},
            {_Code:'NE',_DisplayValue:'Niger'},
            {_Code:'NG',_DisplayValue:'Nigeria'},
            {_Code:'NU',_DisplayValue:'Niue'},
            {_Code:'NF',_DisplayValue:'Norfolk Island'},
            {_Code:'NB',_DisplayValue:'Northern Mariana Islands'},
            {_Code:'NO',_DisplayValue:'Norway'},
            {_Code:'PS',_DisplayValue:'Occupied Palestinian Territory'},
            {_Code:'OM',_DisplayValue:'Oman'},
            {_Code:'PK',_DisplayValue:'Pakistan'},
            {_Code:'PW',_DisplayValue:'Palau'},
            {_Code:'PA',_DisplayValue:'Panama'},
            {_Code:'PG',_DisplayValue:'Papua New Guinea'},
            {_Code:'PY',_DisplayValue:'Paraguay'},
            {_Code:'PE',_DisplayValue:'Peru'},
            {_Code:'PH',_DisplayValue:'Philippines'},
            {_Code:'PN',_DisplayValue:'Pitcairn'},
            {_Code:'PL',_DisplayValue:'Poland'},
            {_Code:'PO',_DisplayValue:'Portugal'},
            {_Code:'PR',_DisplayValue:'Puerto Rico'},
            {_Code:'QA',_DisplayValue:'Qatar'},
            {_Code:'KR',_DisplayValue:'Republic of Korea'},
            {_Code:'MK',_DisplayValue:'Republic of Macedonia'},
            {_Code:'MD',_DisplayValue:'Republic of Moldova'},
            {_Code:'RE',_DisplayValue:'Reunion'},
            {_Code:'RO',_DisplayValue:'Romania'},
            {_Code:'RU',_DisplayValue:'Russian Federation'},
            {_Code:'RW',_DisplayValue:'Rwanda'},
            {_Code:'SH',_DisplayValue:'Saint Helena'},
            {_Code:'KN',_DisplayValue:'Saint Kitts and Nevis'},
            {_Code:'LC',_DisplayValue:'Saint Lucia'},
            {_Code:'PM',_DisplayValue:'Saint Pierre and Miquelon'},
            {_Code:'VC',_DisplayValue:'Saint Vincent and the Grenadines'},
            {_Code:'WS',_DisplayValue:'Samoa'},      
            {_Code:'SM',_DisplayValue:'San Marino'},
            {_Code:'ST',_DisplayValue:'Sao Tome and Principe'},
            {_Code:'SA',_DisplayValue:'Saudi Arabia'},
            {_Code:'SN',_DisplayValue:'Senegal'},
            {_Code:'SC',_DisplayValue:'Seychelles'},
            {_Code:'SL',_DisplayValue:'Sierra Leone'},
            {_Code:'SG',_DisplayValue:'Singapore'},
            {_Code:'SK',_DisplayValue:'Slovakia'},
            {_Code:'SI',_DisplayValue:'Slovenia'},
            {_Code:'SB',_DisplayValue:'Solomon Islands'},
            {_Code:'SO',_DisplayValue:'Somalia'},
            {_Code:'ZA',_DisplayValue:'South Africa'},
            {_Code:'ES',_DisplayValue:'Spain'},
            {_Code:'LK',_DisplayValue:'Sri Lanka'},
            {_Code:'SD',_DisplayValue:'Sudan'},
            {_Code:'SR',_DisplayValue:'Suriname'},
            {_Code:'SZ',_DisplayValue:'Swaziland'},
            {_Code:'SE',_DisplayValue:'Sweden'},
            {_Code:'CH',_DisplayValue:'Switzerland'},
            {_Code:'SY',_DisplayValue:'Syrian Arab Republic'},
            {_Code:'TJ',_DisplayValue:'Tajikistan'},
            {_Code:'TH',_DisplayValue:'Thailand'},
            {_Code:'TG',_DisplayValue:'Togo'},
            {_Code:'TO',_DisplayValue:'Tonga'},
            {_Code:'TT',_DisplayValue:'Trinidad and Tobago'},
            {_Code:'TN',_DisplayValue:'Tunisia'},
            {_Code:'TR',_DisplayValue:'Turkey'},
            {_Code:'TM',_DisplayValue:'Turkmenistan'},
            {_Code:'TC',_DisplayValue:'Turks and Caicos Islands'},
            {_Code:'TV',_DisplayValue:'Tuvalu'},
            {_Code:'UG',_DisplayValue:'Uganda'},
            {_Code:'UA',_DisplayValue:'Ukraine'},
            {_Code:'AE',_DisplayValue:'United Arab Emirates'},
            {_Code:'GB',_DisplayValue:'United Kingdom'},
            {_Code:'TZ',_DisplayValue:'United Republic of Tanzania'},
            {_Code:'US',_DisplayValue:'United States of America'},
            {_Code:'UY',_DisplayValue:'Uruguay'},
            {_Code:'VI',_DisplayValue:'United States Virgin Islands'},
            {_Code:'UZ',_DisplayValue:'Uzbekistan'},
            {_Code:'VU',_DisplayValue:'Vanuatu'},
            {_Code:'VE',_DisplayValue:'Venezuela (Bolivarian Republic of)'},
            {_Code:'VN',_DisplayValue:'Viet Nam'},
            {_Code:'WF',_DisplayValue:'Wallis and Futuna Islands'},
            {_Code:'EH',_DisplayValue:'Western Sahara'},
            {_Code:'YE',_DisplayValue:'Yemen'},
            {_Code:'YE',_DisplayValue:'Zambia'},
            {_Code:'ZW',_DisplayValue:'Zimbabwe'}
        ];
    };
    this.SetSelected = function(sCountry)
    {
        _Self._Country = sCountry;
    };
    this.Draw = function(sTagName)
    {
        GetTag((arguments[0]?sTagName:_Self._DrawDiv)).innerHTML = _Self.ReturnCountrySelect();
    };
    this.ReturnCountrySelect = function()
    {
		var aHTML = new Array();
		aHTML.push('<select name="' + _Self._TagName + '" id="' + _Self._TagName + '" onchange="try{' + _Self._StateDDObjectName + '.Draw({_Country:this.options[this.selectedIndex].value,_State:\'\'});}catch(e){}"><option value="">Select a Country</option>');
		for(var i=0; i < _Self._aCountries.length; i++)
		{
		    var sSelect = (_Self._Country.trim().toLowerCase() == _Self._aCountries[i]._Code.trim().toLowerCase())?' selected="selected"':'';
			aHTML.push('<option value="' + _Self._aCountries[i]._Code + '"' + sSelect + '>' + _Self._aCountries[i]._DisplayValue + '</option>');
		}
		aHTML.push('</select>');
		return aHTML.join('');
	};
}
