var countryCodes = [
["Afghanistan","AF"],["Albania","AL"],["Algeria","DZ"],["American Samoa","AS"],
["Andorra","AD"],["Angola","AO"],["Anguilla","AI"],["Antarctica","AQ"],
["Antigua and Barbuda","AG"],["Argentina","AR"],["Armenia","AM"],["Aruba","AW"],
["Australia","AU"],["Austria","AT"],["Azerbaijan","AZ"],["Bahamas","BS"],
["Bahrain","BH"],["Bangladesh","BD"],["Barbados","BB"],["Belarus","BY"],
["Belgium","BE"],["Belize","BZ"],["Benin","BJ"],["Bermuda","BM"],
["Bhutan","BT"],["Bolivia","BO"],["Bosnia and Herzegovina","BA"],["Botswana","BW"],
["Bouvet Island","BV"],["Brazil","BR"],["British Indian Ocean Territory","IO"],["British Virgin Islands","VG"],
["Brunei","BN"],["Bulgaria","BG"],["Burkina Faso","BF"],["Burundi","BI"],
["Cambodia","KH"],["Cameroon","CM"],["Canada","CA"],["Cape Verde","CV"],
["Cayman Islands","KY"],["Central African Republic","CF"],["Chad","TD"],["Chile","CL"],
["China","CN"],["Christmas Island","CX"],["Cocos Islands","CC"],["Colombia","CO"],
["Comoros","KM"],["Congo","CG"],["Cook Islands","CK"],["Costa Rica","CR"],
["Croatia","HR"],["Cuba","CU"],["Cyprus","CY"],["Czech Republic","CZ"],
["Côte d'Ivoire","CI"],["Denmark","DK"],["Djibouti","DJ"],["Dominica","DM"],
["Dominican Republic","DO"],["Ecuador","EC"],["Egypt","EG"],["El Salvador","SV"],
["Equatorial Guinea","GQ"],["Eritrea","ER"],["Estonia","EE"],["Ethiopia","ET"],
["Falkland Islands","FK"],["Faroe Islands","FO"],["Fiji","FJ"],["Finland","FI"],
["France","FR"],["French Guiana","GF"],["French Polynesia","PF"],["French Southern Territories","TF"],
["Gabon","GA"],["Gambia","GM"],["Georgia","GE"],["Germany","DE"],
["Ghana","GH"],["Gibraltar","GI"],["Greece","GR"],["Greenland","GL"],
["Grenada","GD"],["Guadeloupe","GP"],["Guam","GU"],["Guatemala","GT"],
["Guinea","GN"],["Guinea-Bissau","GW"],["Guyana","GY"],["Haiti","HT"],
["Heard Island And McDonald Islands","HM"],["Honduras","HN"],["Hong Kong","HK"],["Hungary","HU"],
["Iceland","IS"],["India","IN"],["Indonesia","ID"],["Iran","IR"],
["Iraq","IQ"],["Ireland","IE"],["Israel","IL"],["Italy","IT"],
["Jamaica","JM"],["Japan","JP"],["Jordan","JO"],["Kazakhstan","KZ"],
["Kenya","KE"],["Kiribati","KI"],["Kuwait","KW"],["Kyrgyzstan","KG"],
["Laos","LA"],["Latvia","LV"],["Lebanon","LB"],["Lesotho","LS"],
["Liberia","LR"],["Libya","LY"],["Liechtenstein","LI"],["Lithuania","LT"],
["Luxembourg","LU"],["Macao","MO"],["Macedonia","MK"],["Madagascar","MG"],
["Malawi","MW"],["Malaysia","MY"],["Maldives","MV"],["Mali","ML"],
["Malta","MT"],["Marshall Islands","MH"],["Martinique","MQ"],["Mauritania","MR"],
["Mauritius","MU"],["Mayotte","YT"],["Mexico","MX"],["Micronesia","FM"],
["Moldova","MD"],["Monaco","MC"],["Mongolia","MN"],["Montserrat","MS"],
["Morocco","MA"],["Mozambique","MZ"],["Myanmar","MM"],["Namibia","NA"],
["Nauru","NR"],["Nepal","NP"],["Netherlands","NL"],["Netherlands Antilles","AN"],
["New Caledonia","NC"],["New Zealand","NZ"],["Nicaragua","NI"],["Niger","NE"],
["Nigeria","NG"],["Niue","NU"],["Norfolk Island","NF"],["North Korea","KP"],
["Northern Mariana Islands","MP"],["Norway","NO"],["Oman","OM"],["Pakistan","PK"],
["Palau","PW"],["Palestine","PS"],["Panama","PA"],["Papua New Guinea","PG"],
["Paraguay","PY"],["Peru","PE"],["Philippines","PH"],["Pitcairn","PN"],
["Poland","PL"],["Portugal","PT"],["Puerto Rico","PR"],["Qatar","QA"],
["Reunion","RE"],["Romania","RO"],["Russia","RU"],["Rwanda","RW"],
["Saint Helena","SH"],["Saint Kitts And Nevis","KN"],["Saint Lucia","LC"],["Saint Pierre And Miquelon","PM"],
["Saint Vincent And The Grenadines","VC"],["Samoa","WS"],["San Marino","SM"],["Sao Tome And Principe","ST"],
["Saudi Arabia","SA"],["Senegal","SN"],["Serbia and Montenegro","CS"],["Seychelles","SC"],
["Sierra Leone","SL"],["Singapore","SG"],["Slovakia","SK"],["Slovenia","SI"],
["Solomon Islands","SB"],["Somalia","SO"],["South Africa","ZA"],["South Georgia And The South Sandwich Islands","GS"],
["South Korea","KR"],["Spain","ES"],["Sri Lanka","LK"],["Sudan","SD"],
["Suriname","SR"],["Svalbard And Jan Mayen","SJ"],["Swaziland","SZ"],["Sweden","SE"],
["Switzerland","CH"],["Syria","SY"],["Taiwan","TW"],["Tajikistan","TJ"],
["Tanzania","TZ"],["Thailand","TH"],["The Democratic Republic Of Congo","CD"],["Timor-Leste","TL"],
["Togo","TG"],["Tokelau","TK"],["Tonga","TO"],["Trinidad and Tobago","TT"],
["Tunisia","TN"],["Turkey","TR"],["Turkmenistan","TM"],["Turks And Caicos Islands","TC"],
["Tuvalu","TV"],["U.S. Virgin Islands","VI"],["Uganda","UG"],["Ukraine","UA"],
["United Arab Emirates","AE"],["United Kingdom","GB"],["United States","US"],["United States Minor Outlying Islands","UM"],
["Uruguay","UY"],["Uzbekistan","UZ"],["Vanuatu","VU"],["Vatican","VA"],
["Venezuela","VE"],["Vietnam","VN"],["Wallis And Futuna","WF"],["Western Sahara","EH"],
["Yemen","YE"],["Zambia","ZM"],["Zimbabwe","ZW"],["Åland Islands","AX"]];

var getCountryCodes = function(countryCodes){
	Common.Utils.log(Common.Utils.tostr(countryCodes, 3));

	var preferCountry;
	var preferLocale;
	if (jQuery.browser.msie) {
		preferLocale = navigator.userLanguage;
	} else {
		preferLocale = navigator.language;
	}
	if (preferLocale.indexOf('-') > 0) {
		preferCountry = preferLocale.split('-')[1].toUpperCase();
	}

	var selCountry = DWRUtil.byId('country');
	for (var i = 0; i < countryCodes.length; i++) {
		var optCountry = new Option();
		optCountry.text = countryCodes[i][0];
		optCountry.value = countryCodes[i][1];
		selCountry.options.add(optCountry);

		if (preferCountry != null && preferCountry == optCountry.value) {
			selCountry.options[i].selected = true;
		}
	}
};

var initPage = function(){
	jQuery('#sbSalesLink').removeClass('sidebarNav').addClass('sidebarNavCur');
	jQuery('#salesForm').submit(send);
	jQuery('#salesForm #send').click(send);
	jQuery('#salesForm #firstName').focus();

	getCountryCodes(countryCodes);
	loadCaptcha();
};

jQuery(document).ready(function(){
	initPage();
});

var send = function(){
	var firstName = jQuery('#salesForm #firstName').val();
	if (jQuery.trim(firstName) == '') {
		jQuery('#salesForm #firstName').focus();
		alert('Please enter your first name.');
		return false;
	}

	var lastName = jQuery('#salesForm #lastName').val();
	if (jQuery.trim(lastName) == '') {
		jQuery('#salesForm #lastName').focus();
		alert('Please enter your last name.');
		return false;
	}

	var company = jQuery('#salesForm #company').val();
	if (jQuery.trim(company) == '') {
		jQuery('#salesForm #company').focus();
		alert('Please enter your company name.');
		return false;
	}

	var position = jQuery('#salesForm #position').val();
	if (jQuery.trim(position) == '') {
		jQuery('#salesForm #position').focus();
		alert('Please enter your job position.');
		return false;
	}

	var phone = jQuery('#salesForm #phone').val();
	if (jQuery.trim(phone) == '') {
		jQuery('#salesForm #phone').focus();
		alert('Please enter your contact number.');
		return false;
	}

	var validEmail = validateFormat(emailFormat, jQuery('#salesForm #email').val());
	if (!validEmail) {
		jQuery('#salesForm #email').focus();
		alert('Please enter a valid E-mail address.');
		return false;
	}

	var website = jQuery('#salesForm #website').val();
	if (jQuery.trim(website) == '') {
		jQuery('#salesForm #website').focus();
		alert('Please enter a valid website URL.');
		return false;
	}

	var country = jQuery('#salesForm #country').val();
	if (jQuery.trim(country) == '') {
		jQuery('#salesForm #country').focus();
		alert('Please select the country you live in.');
		return false;
	}

	var validInterest = jQuery('#salesForm #interestTypes :radio:checked').length;
	if (validInterest <= 0) {
		jQuery('#salesForm #hardwareBundle').focus();
		alert('Please select your business interest.');
		return false;
	}

	var comment = jQuery('#salesForm #comment').val();
	if (jQuery.trim(comment) == '') {
		jQuery('#salesForm #comment').focus();
		alert('Please give your comments.');
		return false;
	}

	var validCaptcha = validateFormat(captchaFormat, jQuery('#salesForm #captchaId').val());
	if (!validCaptcha) {
		jQuery('#salesForm #captchaId').focus();
		alert('Please enter the correct Secure ID you see in the image.');
		return false;
	}

	var param = jQuery('#salesForm').serialize();
	Common.Utils.log("salesForm form: \n" + Common.Utils.tostr(param, 2));
	ajaxPostJson("/contact/ContactSalesCall.call", param, 'json', afterSend);

	// force browser ignore the another event at one time because this method binds the event 'onsubmit' and 'onclick'
	return false;
};

var afterSend = function(data, textStatus){
	Common.Utils.log(Common.Utils.tostr(data, 2));

	if (DWRUtil._isObject(data)) {
		if (data.type == 'INFO') {
			var ignoredNames = new Array();
			ignoredNames.push('country');
			ignoredNames.push('interest');
			jQuery('#salesForm').clearForm(ignoredNames);
			alert(data.message);
		} else {
			// occur exception
			alert(data.message);
		}
	}
};
