if (typeof(WWE) == 'undefined') WWE = {};
if (typeof(WWE.WebTrigger) == 'undefined') {
	WWE.WebTrigger = function() {
		var url = '/webservice/bango/webtrigger.jsp';
		var params = {
			c: '',
			msisdn: '0',
			s: 'web',
			rv: 'buy'
		}
		var country = null;
		var encodedParams = '';
		var data = 0;
		var message = '';
		var txtOptin = true;
		var sku = 0;
		var usCarrier = '';
		
		return {
			init: function () {
				var myGlobalHandlers = {
					onCreate: function() {
						$("spinner").style.visibility = "visible";
						Form.disable("frmMobile");
						Element.setOpacity("formBox", .4);
					},
		
					onComplete: function() {
						if (Ajax.activeRequestCount == 0) {}
					}
				};
				Ajax.Responders.register(myGlobalHandlers);
			},
		
			setContent: function (cid) {
				params.c = cid;
			},
		
			encodeParams: function () {
				var h = $H(params);
				encodedParams = encodeURIComponent(h.toQueryString());
			},
		
			submit: function () {
				// Clean out effects from previous error
				Element.hide("idError");

				$("idCountryLbl").style.color = $("idMsisdnLbl").style.color = "#000000";
		
				// Simple validation #1: Check country
				if ($("idCountry").getValue() == "") {
					message = "You forgot an important step: Please select your country."; 

WWE.WebTrigger.displayMessage($("idCountryLbl")); return;
				} else {
					country = arCountry[$("idCountry").getValue()];
				}

				// msisdn kept as param and not converted to object to make the rest of the script flow.
				params.msisdn = $("msisdn").getValue();
				var phoneNumber = new PhoneNumber(params.msisdn);
		
				// Simple validation #2: Check phone number before it's modified
				phoneNumber.clean();
				params.msisdn = phoneNumber.getNumber();
				if (params.msisdn == "") { message = "You forgot an important step: Please enter your mobile phone number."; 

WWE.WebTrigger.displayMessage($("idMsisdnLbl")); return; }
		
				params.msisdn = phoneNumber.getParsedNumber(country);
				if (phoneNumber.isValid()) {
					sku = $("sku").getValue();
					txtOptin = ($("chkOptin").getValue() ? true : false);
					usCarrier = $('idCarrier').options[$('idCarrier').selectedIndex].text;
					if (usCarrier == 'AT&T') {
						usCarrier = 'ATT';
					}
					WWE.WebTrigger.createPixTrkImg();
                	var x = $('idCarrier').options[$('idCarrier').selectedIndex].value;
                	var y = ($("idCountry").getValue());
                	if (y == 'unitedstat') {
				  		if (x=='att' || x == 'spr') { 
							$('verizonYes').hide();
				 			$('optin').show();
				 			$('verizonNo').show();
   				  		} else {
				 			$('fldstCarrier').hide();
							$('fldstCountry').hide();
							$('verizonNo').hide();
							$('optin').hide();
							$('verizonYes').show();
   							return false;
				 		 }
					} 
					else if (y == 'india') {
						$('IndiaYes').show();
						$('fldstCarrier').hide();
						$('fldstCountry').hide();
						$('verizonNo').hide();
						$('optin').hide();
						return false;
					}
					else if (y == 'australia') {
						$('AustraliaYes').show();
						$('fldstCarrier').hide();
						$('fldstCountry').hide();
						$('verizonNo').hide();
						$('optin').hide();
						return false;
					}
					WWE.WebTrigger.encodeParams();
					new Ajax.Request(url, { 
						method: 'get', 
						parameters: 'msisdn=' + params.msisdn + '&p=' + encodedParams, 
						onSuccess: function(transport) {
							WWE.WebTrigger.showResult(transport)
						}.bind(WWE.Webtrigger)
					});
				} else {
					message = "We've detected an error: Please enter a valid mobile phone number.";
					WWE.WebTrigger.displayMessage($("idMsisdnLbl"));
				}
			},
		
			showResult: function (transport) {
				data = eval('(' + transport.responseText + ')')
		
				switch (data.webtrigger.status) {
					case 'OK':
						$("content").style.display = "none";
						$("successContent").style.display = "block";

						WWE.WebTrigger.sendAnalyticsEvent();
						break;
					case 'NO_VARS':
					case 'INVALID_MSISDN':
						$("spinner").style.visibility = "hidden";
						Form.enable("frmMobile");
						Element.setOpacity("formBox", 1.0);
		
						message = "We've detected an error: Please enter a valid mobile phone number.";
						WWE.WebTrigger.displayMessage($("idMsisdnLbl"));
						break;
					case 'MSISDN_LIMIT':
						// Make everything transparent except error message.
						$("spinner").style.visibility = "hidden";
						$("contentWrap").style.background = "#ffffff";   /* IE6 hack to fix distorted bold text when opacity filter 

used */
						Element.setOpacity("contentWrap", .25);
						Element.setOpacity("formBox", .25);
						message = "Your daily limit has been reached. Please come back tomorrow and try again.";
						WWE.WebTrigger.displayMessage();
						break;
					default:
						$("content").style.display = "none";
						$("errorContent").style.display = "block";
				}
			},
		
			sendAnalyticsEvent: function () {
				if (typeof(s.tl) == 'function') {
					s.pageName = 'WWE: Shop > WWE Mobile > Shopping Cart';
					s.prop2 = s.pageName;
					s.prop5 = 'Shop > WWE Mobile > Shopping Cart';
					s.eVar5 = s.prop5;
					s.prop8 = '';
					s.eVar8 = s.prop8;
					s.events = 'scAdd';
		
					if (txtOptin) {
						s.events = s.events + ",event10";
					}
		
					s.tl(s.account);
				}
			},
		
			displayMessage: function (errorField) {
				if (errorField) { errorField.style.color = "#ff0000"; }
				$("idError").update(message);
				$("idError").style.display = "inline";
			},
		
			createPixTrkImg: function() {
				var txtOpt = (txtOptin) ? 1 : 0;
				var randomnumber=Math.floor(Math.random()*11);

				if ($("idCountry").getValue() != "") country = arCountry[$("idCountry").getValue()];
				new Insertion.Bottom('successContent','<i' + 'mg sr'+'c="http://gen.wwe.com/trac/gif.php?PIXID=16&Str1='+ params.msisdn 

+'&Str2='+ country.name +'&Str3='+ txtOpt+'&Str4='+sku+'&Str5='+usCarrier+'&randm='+randomnumber+'" border="0" width="1" height="1"/>');
			}
		};
	}();
}

WWE.WebTrigger.init();