/** 
 * javascript functions for register and my nike pages
 * @author NCoronges
 */
var JQ = jQuery.noConflict();
var profile = {};
var isLoggedIn = false;
var hasEmail = false;
var showDebug = false;
var showLabelError = false;
var ajaxProgress = false;
var confirmation = false;
var passwordLengthError = false;
var ECOM = {
	'login' : {
		'Ecom_BillTo_Online_Email' : 'login',
		'Ecom_User_Password' : 'password'
	}, 
	'create_update' : {
		'Ecom_BillTo_Postal_Name_First' : 'firstName',
		'Ecom_BillTo_Postal_Name_Last' : 'lastName',
		'Ecom_BillTo_Postal_Street_Line1' : 'homeAddress.address1',
		'Ecom_BillTo_Postal_Street_Line2' : 'homeAddress.address2',
		'Ecom_BillTo_Postal_City' : 'homeAddress.city',
		'Ecom_BillTo_Postal_StateProv' : 'homeAddress.state',
		'Ecom_BillTo_Postal_PostalCode' : 'homeAddress.postalCode',
		'Ecom_BillTo_Postal_CountryCode' : 'homeAddress.country',
		'Ecom_BillTo_Telecom_Phone_Number' : 'mobileNumber',
		'Ecom_BillTo_Online_Email' : 'email'
	}
}

function baseDomain(myUrl){
      return myUrl.match(/[^.]*\.com/)[0];
}
var b_d = baseDomain(location.hostname);

// check the newsletter box by default (onload and timeout so that event handler will be attached when called) - skyle
JQ(window).load(function() {
	if(typeof(ss)!='undefined'){ss.init();}
	var $checkbox = JQ('#inputfield-receiveEmail');
	
	// check the box unless we're in EMEA
	setTimeout(function() {
		if (/en_(GB|EMEA)|(cs|de|es|fr|it|pl|ru|tr)_\2/i.test(location.href))
			$checkbox.attr('checked', false);
		else
			$checkbox.attr('checked', true).triggerHandler('click');
	}, 1000);
	
	// clear zip code if newsletter box unchecked
	$checkbox.click(function() {
		JQ('#inputfield-zipcode').val('');
	});
	
	// check for valid continue url on staging and production
	if (onNike(location.href) && !onNike(continueURL)) {
		location = 'http://nike.com';
	}
	
	/*
	function onNike(url) {
		return !/^http/i.test(url) || /^https?:\/\/([^\/]+\.)?nike.com(\/|$)/i.test(url);
	}
	*/
	
	// new onNike function
	function onNike(url) {
		var url = unescape(url);
		var domain = url.replace("http://",'').replace("https://",'').split('/')[0];
		return ( domain.match('.nike.com$')=='.nike.com' || ( !url.match(/^http:\/\//) && !url.match(/^https:\/\//) ) );
	}
	
});

function swfAjaxRequest(url, method, data, callback){ 
	this.url = url || '';
	this.method = method || 'POST';
	this.data = data || {};
	this.callback = callback || function(){ return; };
	this.req = {'url':this.url,'meth':this.method,'data':this.data,'onready':function(data){ callback(data) }};
	this.sendRequest = function() { f4a.open(this.req) };
}

function validateProtocol() {
	// if we're live switch to HTTPS
	if (location.href.indexOf(".nike.com") >= 1 && location.href.indexOf("env") < 0) {
		if (location.protocol == "http:") {
			window.location.href = location.href.replace(/http:/, "https:");
		}
	}
}

function showLoader(f){		
	if (f){
		JQ('#loader').show();
	}
	else{
		JQ('#loader').hide();
	}
}

function loadProfile(callback) {
	var url = PROFILE_SERVICE_URL;
	var data = 'action=getprofile';
	var loadProfileRequest = new swfAjaxRequest(url,'POST',data,function(data){
		var profileService = JQ.xml2json(data);
		var id = profileService.profile.id;
		profile = profileService.profile;
		var lastName = profileService.profile.lastName;
		var userType = profileService.profile.userType;
		var email = profileService.profile.email;
		if (email != "" && email != undefined && email != null) hasEmail = true;
		if (id != "" && id != undefined && id != null) isLoggedIn = true;
		callback();
	});
	loadProfileRequest.sendRequest();
}

function getProfile(){
	loadProfile(function() {
		if (isLoggedIn) {
			var screenName = JQ('screenName', profile).text();
			JQ('.input-field').each(function(){
				var field = JQ(this).attr('name');
				if(profile[field].length > 0){
					var value = profile[field];
					JQ(this).attr('value',value);
				}
			});
			JQ('.input-field-dropdown,.input-field-date,.input-field-year,.input-field-state').each(function(){
				var field = JQ(this).attr('name');
				if(profile[field].length > 0){
					var value = profile[field];
					JQ(this).find('[@value="'+value+'"]').attr('selected',true);
				}
			});
			JQ('.input-check').each(function(){
				var field = JQ(this).attr('name');
				//var value = JQ(field, profile).text();
				if(profile[field].length > 0){
					var value = profile[field];
					if(value == 'true')
						JQ(this).attr('checked', true);
				}
			});
			JQ('.input-radio').each(function(){
				var field = JQ(this).attr('name');
				//var value = JQ(field, profile).text();
				if(profile[field].length > 0){
					var value = profile[field];
					if(JQ(this).val().toLowerCase() == value){
						JQ(this).attr('checked', true);
					}
				}
			});
		}
		else{
			window.location.href = '?page=signin';
		}
	});
}

function boot(URL, comment) {
	// if we're live boot, else log to console
	//if (location.href.indexOf(".nike.com") >= 1 && location.href.indexOf("env") < 0) {
		window.location.href = URL;
	//} else {
	//	console.info(comment+' - booting to '+URL);
	//}
}

function debug(msg) {
	JQ('#debug').html( JQ('#debug').html() + "<br/>" + msg );
}

function doLogout(callback) {
	var url = PROFILE_SERVICE_URL;
	var data = 'action=logout';
	var logoutRequest = new swfAjaxRequest(url,'POST',data,function(data){
		callback ? callback() : void(0);
	});
	logoutRequest.sendRequest();
}

function doAction(data, action, callback) {
	var URL = PROFILE_SERVICE_URL+'?action='+action;
	if(action == 'logout')
		var data = '';
	showLoader(true);
	ajaxProgress = true;
	var submitRequest = new swfAjaxRequest(URL,'POST',data,function(data){
		var profileService = JQ.xml2json(data);
		showLoader(false);
		ajaxProgress = false;
		// do stuff with the data
		var status = profileService.status;
		if(action == 'logout'){
			profile = {};
			isLoggedIn = false;
		}
		callback(status, data);
	});
	submitRequest.sendRequest();
}


function loadStateList(element, country, callback) {
	if (country == 'US'){
		var url = PROFILE_SERVICE_URL+'?action=getstatelist';
		var data = 'country='+country;
		var req2 = {'url':url,'meth':'POST','data':data,'onready':function(data){
			var stateJson = JQ.xml2json(data);
			element.append("<option value=' '></option>");
			JQ(stateJson.states.state).each(function() {
				element.append("<option value='"+this.code+"'>"+this.text[0]+"</option>");
			});
			if (callback!=null){
				callback();
			}
		}};
		f4a.open(req2);
	}
}

function loadCountryList(element, locale, country, callback) {
	JQ('#inputfield-country option').each(function(){
		if(JQ(this).attr('value') == country.toUpperCase()){
			JQ(this).attr('selected', 'selected');
		}
	})
	if (callback!=null){
		callback();
	}
}

function validateField(field,value,mode) {
	if (mode=="mynike") {
		// for update we dont need to validate these
		if (field=="password" || field=="confirmpassword") {
			return true;
		}
	}
	//TODO: account for diff types of validation
	var valid = true;
	if (value == -1 || value == null || value == "" || value == "undefined") valid = false;
	return valid;
}


function initForm(){
	JQ(fieldData.fields).each(function() {
		var f = new Object();
		if(this.id != undefined){
			f.id = this.id;
		}
		else if(this.name != undefined){
			f.id = this.name;
		}
		if(this.required != undefined){
			f.required = this.required;
		}
		if(this.labelError != undefined){
			f.labelError = this.labelError;
		}
		if(this.labelServerError != undefined){
			f.labelServerError = this.labelServerError;
		}
		if(this.labelPasswordLength != undefined){
			f.labelPasswordLength = this.labelPasswordLength;
		}
		if(this.labelPasswordMatch != undefined){
			f.labelPasswordMatch = this.labelPasswordMatch;
		}
		if(this.validationType != undefined){
			f.validationType = this.validationType;
		}
		if(this.group != undefined){
			f.group = this.group;
			f.groupOrder = this.groupOrder;
			f.label = JQ('#label-'+this.group).html();
		}
		else{
			f.label = JQ('#label-'+f.id).html();
		}
		if(this.matchField != undefined){
			f.matchField = this.matchField;
		}
		allFields.push(f);
		f = null;
	});
}
	
function submitForm(){
	if(!ajaxProgress){
		var validForm = true;
		clearErrors();
		JQ(allFields).each(function(){
			showLabelError = false;
			if((JQ('#inputfield-'+this.id).val() == '' || JQ('#inputfield-'+this.id).val() == '-1') && this.required != "no"){
				showError(this, showLabelError, false, true);
				validForm = false;
			}
			else{
				if(this.validationType && this.required != 'no'){
					if(!validateField(this)){
						if(this.validationType == 'password'){
							if(passwordLengthError == true){
								this.labelError = this.labelPasswordLength;
							} else {
								this.labelError = this.labelPasswordMatch;
							}
						}
						showError(this, showLabelError, false);
						validForm = false;
					}
				}
				if(this.matchField != undefined){
					if(!validateMatch(this)){
						showError(this, showLabelError, false);
						validForm = false;
					}
				}
			}
		});
		
		if(validForm){
			var data = JQ('#'+this.id).parents('form').serializeArray();
			JQ(data).each(function(){
				this.name = translateField(this.name,'create_update');
			});
			data = serializeObjectArray(data);
			data += '&membershipid='+UPM.siteId;
			data += '&locale='+UPM.locale;
			var valid = true;
			
			doAction(data, formAction, function(status,response){
				var profileService = JQ.xml2json(response);
				showLoader(false);
				ajaxProgress = false;
				if (status=='failure') {
					var msg = "";
	
					JQ(profileService.exceptions.error).each(function(){
						var error = this.message;
						var field = this.property;
						if (this.errorcode == 'userAlreadyExists'){
							var f = findField('inputfield-email');							
							if(f != ''){
								showError(f, true, true);
							}
							else{
								msg += error;
							}
						} else if (field){
							var f = findField(field);
							if(f != ''){
								showError(f, true, true);
							}
							else{
								msg += error;
							}
						}
					});
					if(msg != ""){
						JQ('#form-errors-msg').html(msg);
						JQ('#form-errors-msg').show();
					}
				} else {
					// Set me.nike.com cookie.
					addToCookie(profileService.profile);
					if(typeof(window.inviteFrom)!="undefined" && inviteFrom != null){
						var isNumeric = inviteFrom.match(/^[0-9]*$/)
						if(isNumeric!=null){
							ss._getDPSID();
							ss.friendRequest(ss.DPSID,inviteFrom,function(data){
								ss.acceptRequest(inviteFrom, function(data){
									//Do something based on response?
									redirect();
								});
							});
						}
					} else if(typeof(UPM.refId)!="undefined" && UPM.refId != null){
						//Auto-generate friendship with refId
						ss._getDPSID();
						ss._getSecurityToken(function(){
							if(typeof(TOS)!='undefined'){
								TOS.setTerms(function(){
									redirect();
								});
							} else {
								redirect();
							}
						});
					} else {
						//Auto-generate SS DB entry based on appId (UPM.ssAppId)
						ss._getDPSID();
						ss._getSecurityToken(function(){
							if(typeof(TOS)!='undefined'){
								TOS.setTerms(function(){
									redirect();
								});
							} else {
								redirect();
							}
						});
					}
				}
			});
		}
		else{
			return validForm;
		}
	}
	
	function redirect(){
		if (JQ('#inputfield-receiveEmail').attr('checked')==true){
			tracking.click({pageName:track_site+'>register>success', eVar48:track_site+'>register>success',prop17:'registration',prop18:'registration', events:'event1,event3'});
		} else {
			tracking.click({pageName:track_site+'>register>success', eVar48:track_site+'>register>success',prop17:'registration',prop18:'registration', events:'event1'});
		}
		if (confirmation){
			var targetURL = 'profile?page=confirm&continueURL='+escape(continueURL);
			if (storeReturnURL != ''){
				targetURL += '&storeReturnURL='+escape(storeReturnURL);
			}
			window.location.href = targetURL;
		} else {
			//var targetURL = unescape(continueURL);
			var targetURL = continueURL;
			if (storeReturnURL != ''){
				targetURL += '&storeReturnURL='+escape(storeReturnURL);
			}
			window.location.href = targetURL;
		}
	}
}

function findField(name){
	var obj = '';
	JQ(allFields).each(function(){
		if(this.id == name || this.group == name){
			obj = this;
			//return this;
		}
	});
	return obj;
}

function clearErrors(){
	JQ('#form-errors-msg').html('');
	JQ('#form-errors-msg').hide();
	JQ(allFields).each(function(){
		if(this.group != undefined){
			JQ('#label-'+this.group).html(this.label);
			JQ('#label-'+this.group).removeClass('error');
		}
		else{
			JQ('#label-'+this.id).html(this.label);
			JQ('#label-'+this.id).removeClass('error');
		}
		JQ('#inputfield-'+this.id).removeClass("error");
	});
}

function showError(f, label, server, empty){
	if(empty == undefined){
		empty = false;	
	}
	if(label && server && f.labelServerError != undefined){
		var labelError = f.labelServerError;
	}
	else{
		var labelError = f.labelError;
	}
	if(label){
		if(f.group != undefined){
			JQ('#label-'+f.group).html(labelError.toUpperCase());
			JQ('#label-'+f.group).addClass('error');
		}
		else{
			JQ('#label-'+f.id).html(labelError.toUpperCase());
			JQ('#label-'+f.id).addClass('error');
		}
	}
	if(empty){
		if(f.group != undefined){
			JQ('#label-'+f.group).addClass('error');
		}
		else{
			JQ('#label-'+f.id).addClass('error');
		}
	}
	
	if(f.group != undefined){
		var group = f.groupOrder.split(',');
		JQ(group).each(function(){
			JQ('#inputfield-'+this).addClass("error");
		});
	}
	else{
		JQ('#inputfield-'+f.id).addClass("error");
		if(f.matchField != undefined){
			JQ('#inputfield-'+f.matchField).addClass("error");
		}
	}
}

function validateField(f){
	if(f.group == undefined){
		if(f.validationType == 'email'){
			return validateEmail(JQ('#inputfield-'+f.id).val());
		}
		if(f.validationType == 'phone'){
			return validatePhone(JQ('#inputfield-'+f.id).val());
		}
		if(f.validationType == 'zipcode'){
			return validateZipcode(JQ('#inputfield-'+f.id).val());
		}
		if(f.validationType == 'radio'){
			return validateRadioButtons(f);
		}
		if(f.validationType == 'password'){
			return validatePassword(JQ('#inputfield-'+f.id).val());
		}
	}
	else{
		if(f.validationType == 'date'){
			var group = f.groupOrder.split(',');
			return validateDate(JQ('#inputfield-'+group[0]).val(), JQ('#inputfield-'+group[1]).val(), JQ('#inputfield-'+group[2]).val());
		}
	}
}

function validateEmail(email){
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	showLabelError = true;
	return (filter.test(email)) ? true : false;
}

function validateDate(m, d, y){
	if(m == -1 && d == -1 && y == -1){
		showLabelError = false;
		return false;
	}
	else if(m == -1 || d == -1 || y == -1){
		showLabelError = true;
		return false;
	}
	else{
		showLabelError = true;
		m = m - 1;
		var testDate = new Date(y, m, d);
		if ((testDate.getFullYear() == y) && (testDate.getMonth() == m) && (testDate.getDate() == d))
			return true;
		else
			return false;
	}
}

function validateZipcode(zipcode){
	showLabelError = true;
	return (zipcode.length < 2 || zipcode.length > 9) ? false : true;
}

function validateRadioButtons(f){
	showLabelError = true;
	return (JQ("input[@name='"+f.id+"']:checked").val() != undefined) ? true : false;
}

function validateMatch(f){
	showLabelError = true;
	return (JQ('#inputfield-'+f.id).val() == JQ('#inputfield-'+f.matchField).val()) ? true : false;
}

function validatePassword(password){
	showLabelError = true;
	if(password.length >= 6){
		passwordLengthError = false;
		return true;
	} else {
		passwordLengthError = true;
		return false;
	}
	return (password.length >= 6) ? true : false;
}

function validatePhone(f){
	var filter = /^((\([0-9]{1,3}\))|([0-9]+)|(\+[0-9]{1}))((\s|\-|\.|\,){0,1}[0-9])+$/
	showLabelError = true;
	var phone = JQ('#'+f.formId+' #edit-'+f.id).val();
	if (phone.length > 0){
		if (phone.length < 8){ return false; }
		else {
			return (filter.test(phone)) ? true : false;
		}
	} return true;
}

function translateField(fieldId, actionType){
	if(!fieldId){
		return;
	}
	return ECOM[actionType][fieldId] ? ECOM[actionType][fieldId] : fieldId;
}

function serializeObjectArray(a){
	var s = '';
	var first = '';
	for(var i = 0; i < a.length; i++){
		s += first + a[i]['name'] + '=' + a[i]['value'];
		first = '&';
	}
	return s;
}

// login page functions

function tryLogin() {
	if(!ajaxProgress){
		var validForm = true;
		clearLoginErrors();
		
		JQ(allFields).each(function(){
			showLabelError = false;
			if((JQ('#inputfield-'+this.id).val() == '' || JQ('#inputfield-'+this.id).val() == '-1')){
				showLoginError(this);
				validForm = false;
			}
		});
		
		if(validForm){
			var data = JQ('#login_form').serializeArray();
			JQ(data).each(function(){
				this.name = translateField(this.name,'login');
			});
			data = serializeObjectArray(data);
			data += '&membershipid='+UPM.siteId;
			data += '&locale='+UPM.locale;
			data += '&lang_locale='+UPM.locale;
						
			doAction(data, 'login', function(status,response){
				var profileService = JQ.xml2json(response);
				showLoader(false);
				ajaxProgress = false;
				if (status == 'failure') {
					var msg = "";
					JQ(profileService.exceptions.error).each(function(){
						if(this.message){
							var error = this.message;
							msg += error;
						}
					});
					if(msg != ""){
						JQ('#form-errors-msg').html(msg);
						JQ('#form-errors-msg').show();
					}
				} else {
					addToCookie(profileService.profile);
					tracking.click({pageName:track_site+'>login>success',prop17:'login',prop18:'login',eVar48: track_site+'>login>success' ,events:'event5'});
					//var targetURL = unescape(continueURL);
					var targetURL = continueURL;
					if (storeReturnURL != ''){
						targetURL += '&storeReturnURL='+escape(storeReturnURL);
					}
					if(typeof(UPM.refId)!="undefined" && UPM.refId != null){
						//Auto-generate friendship with refId
						ss._getDPSID();
						ss._getSecurityToken(function(){
							window.location.href = targetURL;
						});
					} else { window.location.href = targetURL; }
				}
			});
		}
	}
}
	
function showLoginError(f){
	JQ('#inputfield-'+f.id).parent().addClass("error");
	JQ('#inputfield-'+f.id).addClass("error");
}

function resetPassword( lfp ) {
	var url = PROFILE_SERVICE_URL,
		input = JQ('input#inputfield-email').val(),
		q = JQ('#passwordquestion_form').serialize(),
		getPasswordRequest = new swfAjaxRequest(url, 'POST', q, function( data ) {
			var response = JQ.xml2json(data);
			if ( response.status == "success" ) {
				JQ('div#st_1').hide();
				JQ('div#st_2').show();
				JQ('input#login_field').val(input);
				
				JQ('div#form-errors-msg').show().css({'line-height':'16px', 'width' : '375px', 'margin-left' : '0px'});
				
				JQ('div#form-errors-msg').html(lfp.forgotPasswordSuccess_p1 + ' ' + input + '<br />' + lfp.forgotPasswordSuccess_p2 + ' &quot;' + response.passwordQuestion + '&quot; <br /><br />' + lfp.forgotPasswordSuccess_p3);
			} else {
				JQ('div#form-errors-msg').show();
				JQ('div#form-errors-msg').html(lfp.forgotPassword_error);
			}
		});
	getPasswordRequest.sendRequest();
	
	return function() {		
		var q = JQ('#changepassword_form').serialize(),
			passwordReset = new swfAjaxRequest(url, 'POST', q, function( data ) {
				var response = JQ.xml2json(data);
				
				if ( response.status == "success" ) {
					JQ('div#form-errors-msg').show();
					JQ('div#form-errors-msg').html(lfp.passwordChanged);
					
					JQ('div#st_2').hide();
					
					setTimeout( function() {
						if ( lfp.continueURL.indexOf('http://') == -1) {
							lfp.continueURL = 'http://' + lfp.continueURL;
						}
						
						window.location.href = lfp.continueURL;
					}, 3000);
				} else {
					JQ('div#form-errors-msg').show();
					JQ('div#form-errors-msg').html(lfp.passwordChangedError + ' ' + response.exceptions.error[0].message +'');
				}
			});
		passwordReset.sendRequest();
	}
}

function clearLoginErrors(){
	JQ(allFields).each(function(){
		JQ('#inputfield-'+this.id).parent().removeClass("error");
		JQ('#inputfield-'+this.id).removeClass("error");
	});
}

function changeState(){
	if (JQ('#container-state').css('visibility')=='visible') {
		var selectedCountry = JQ(this).find('*:selected').attr('value');
		loadStateList(JQ('#inputfield-state'),selectedCountry,null);
	}	
}

function charCounter(pInput, pMax) {
	var inputObj = JQ('#'+pInput.id);
	var length = inputObj.val().length;

	// Ensure we are not over the max
	if (length >= pMax) {
		length = pMax;
		inputObj.val(inputObj.val().substr(0, pMax));
	}
}

/*
 * Add field to javascript validation
 * @param field(string) = id of field to be validated
 * @param type(string) = validation type (either "id" or "name")
 * @param required(boolean) = true if field is required
 * @param labelError(string) = error to display if this field is invalid (translated)
 * @param labelServerError(string) = error to display if this field is rejected by profileService
 * @param validationType(string) = specific validation type (i.e. email, postalcode)
 * @param matchField(string) = id of field that this field must match for a successful submission (i.e. password confirm)
 */
function pushToValidationArray(fieldId,type,required,labelError,labelServerError,validationType,matchField){
	var optional = ', "required" : "no"';
	var newFieldsArray = fieldData["fields"];
	var validationString = '{ "' + type + '" : "' + fieldId + '"';
	if (labelError != null){
		validationString += ', "labelError" : "' + labelError + '"';
	}
	if (labelServerError != null){
		validationString += ', "labelServerError" : "' + labelServerError + '"';
	}
	if (validationType != null){
		validationString += ', "validationType" : "' + validationType + '"';
	}
	if (matchField != null){
		validationString += ', "matchField" : "' + matchField + '"';
	}
	if (required != true){
		validationString += optional;
	}
	validationString += ' }';
	newFieldsArray[newFieldsArray.length] = eval('(' + validationString + ')');
	fieldData = {};
	fieldData["fields"] = newFieldsArray;
}

function revertToInitialFieldData(){
	fieldData = {};
	fieldData["fields"] = [];
	for (var i =0; i<initialFieldData["fields"].length; i++){ fieldData["fields"][i] = initialFieldData["fields"][i]; }
}

function blockNonAlphaNumericChars(e){
	if ( e.which == 32 || (33 <= e.which && e.which <= 44) || e.which == 47 || (58 <= e.which && e.which <= 64) || (91 <= e.which && e.which <= 94) || e.which == 96 || 123 <= e.which){
		return false;
	} else {
		return true;
	}
}

function blockNonNumericChars(e){
	if ( e.which == 32 || (33 <= e.which && e.which <= 44) || e.which == 47 || (58 <= e.which && e.which <= 94) || 96 <= e.which){
		return false;
	} else {
		return true;
	}
}

function autoFill(){
	var autofill = JQ.getURLParam("autofill");
	var obj = {};
	if(autofill){
		var pairArray = autofill.split(',');
		for(var i = 0;i < pairArray.length; i++){
			obj[pairArray[i].split('|')[0]] = unescape(pairArray[i].split('|')[1]);
		}
		for(j in obj){
			JQ('#inputfield-'+j).val(obj[j]);
		}
	}
}

function addToCookie(data){
	var filter = ['email','screenName','id'];
	var filteredData = {};
	for(var i in data){
		for(var j = 0; j < filter.length; j++){
			if(i == filter[j]){
				filteredData[i] = data[i];
			}
		}
	}
	NIKEOS.ME.addToCookie(filteredData);
}


var tnc = {
	'showPopup' : function(){
		if (JQ.browser.msie && JQ.browser.version.substr(0,1)<7) {
			JQ.blockUI({ message: JQ('#tnc_popup_prereg'), css: { top: '30px', cursor: 'auto' } });
		} else {
			JQ.blockUI({ message: JQ('#tnc_popup_prereg'), css: { width: '100%', 'text-align': 'center', left: 'auto', top: '20%', cursor: 'auto' } });
		}
	}, 'hidePopup' : function(){
		JQ('#toc_error').hide();
		JQ.unblockUI();
	}, 'init' : function(){
		
		var html = [];
		html.push('<div id="tnc_popup_prereg" class="jqmWindow">');
		html.push('	<div id="top">');
		html.push('		<div id="close"></div>');
		html.push('	</div>');
		html.push('	<div id="body_wrapper">');
		html.push('		<div id="body">');
		html.push('			<div id="body_inner">');
		html.push('				<div class="tocPrompt">');
		html.push('					<div class="toc_header">' + tnc.trans.policyApproval + '</div>');
		html.push('					<div class="toc_subheader"><span><a href="' + tnc.trans.termsOfUseLink + '" target="_blank">' + tnc.trans.fullText + '</a></span>' + tnc.trans.termsOfUse + '</div>');
		html.push('					<div class="clear"></div>');
		html.push('					<div class="message">' + tnc.trans.termsOfUseSummary + '</div>');
		html.push('					<div class="checkbox-container"><input id="terms_of_use_checkbox" class="input-check" type="checkbox"/><label for="terms_of_use_checkbox">' + tnc.trans.accept + '</label></div><div class="clear"></div>');
		html.push('					<div class="toc_subheader second"><span><a href="' + tnc.trans.privacyPolicyLink + '" target="_blank">' + tnc.trans.fullText + '</a></span>' + tnc.trans.privacyPolicy + '</div>');
		html.push('					<div class="clear"></div>');
		html.push('					<div class="message">' + tnc.trans.privacyPolicySummary + '</div>');
		html.push('					<div class="checkbox-container"><input id="privacy_policy_checkbox" class="input-check" type="checkbox"/><label for="privacy_policy_checkbox">' + tnc.trans.accept + '</label></div><div class="clear"></div>');
		html.push('					<div id="toc_error">' + tnc.trans.youMustAccept + '</div>');
		html.push('					<div id="bottom_options">');
		html.push('						<div class="accept"><div class="accept" style="float: left;"><div id="accept" class="red_button transparent activated"> <div class="btn_left"/> <div class="btn_content"> <div id="accept_btn">' + tnc.trans.btnRegister + '</div> </div> <div class="btn_right"/></div><div class="clearme"/></div></div>');
		html.push('						<div class="cancel">' + tnc.trans.cancel + '</div>');
		html.push('					</div>');
		html.push('				</div>');
		html.push('			</div>');
		html.push('		</div>');
		html.push('	</div>');
		html.push('	<div id="bot"></div>');
		html.push('</div>');
		JQ('body').append(html.join(''));

		JQ('#tnc_popup_prereg .accept').click(function(){
			if(JQ('#privacy_policy_checkbox').attr('checked') == true && JQ('#terms_of_use_checkbox').attr('checked') == true){
				location.href=tnc.registerURL;
			} else {
				JQ('#toc_error').show();
			}
		});
		JQ('#tnc_popup_prereg #close, #tnc_popup_prereg .cancel').click(function(){ tnc.hidePopup() });

		tnc.registerURL = JQ('#button-register').attr('href');
		JQ('#button-register').attr({'href':'javascript:void(0);'}).click(function(){
			tnc.showPopup();
		});
	}, 'trans' : {}
};
