//REQUIRES: jquery, jquery.cookie, NIKEOS.global.js (NIKEOS.AjaxController AC), f4a

var TermsOfService = function(options){
	var self = this;
	
	self.config = options; //merge this with default options eventually
	
	self.trans = {}; //stores translations from localeConfig that are set in platypus templates
	
	self.init = function(){
		self.setUpPopup();
		if(self.isLoggedIn()){
			if(!self.hasCookie()){
				self.checkTerms();
			}
		}
	};

	self.hasCookie = function(){
		if(JQ.cookie(self.config['COOKIE'])){
			return (JQ.cookie(self.config['COOKIE']) == 'CONFIRMED');
		}
		return false;
	};
	
	self.setCookie = function(){
		JQ.cookie(self.config['COOKIE'],'CONFIRMED',{path:'/'});
	};

	self.checkTerms = function(){
		var data = {
			url : self.config['PS'],
			method : "POST",
			post_data : "action=getattribute&membershipid=" + self.config["membershipid"] + "&attributeName=" + self.config["COOKIE"]
		};
		var callback = function(data){
			var data = JQ.xml2json(data);
			if(data.status == 'success'){
				if(data.attributes[self.config['COOKIE']] == 'CONFIRMED'){
					self.setCookie();
				} else {
					self.showPopup();
				}
			}
		};
		AC.request(data, callback);
	};
	
	self.setTerms = function(cb){
		var cb = cb || function(){};
		var data = {
			url : self.config['PS'],
			method : "POST",
			post_data : "action=setattribute&membershipid=" + self.config["membershipid"] + "&attributeName=" + self.config["COOKIE"] + "&attributeValue=CONFIRMED"
		};
		var callback = function(data){
			var data = JQ.xml2json(data);
			if(data.status == 'success'){
				self.setCookie();
				cb();
			} else {
				console.warn('Error setting Terms and Conditions Attribute');
			}
		};
		AC.request(data, callback);
	};
	
	self.logout = function(cb){
		var data = {
			url : self.config['PS'],
			method : "POST",
			post_data : "action=logout"
		};
		var callback = function(data){
			location.href = "http://www.nike.com/nikefootball";
		};
		AC.request(data, callback);
	};
	
	self.isLoggedIn = function(){
		if(JQ.cookie('id.nike.com')){
			if(Base64.decode(JQ.cookie('id.nike.com')).split(':')[0] != 'null'){
				return true;
			}
		}
		return false;
	};
	
	self.showPopup = function(){
		if (JQ.browser.msie && JQ.browser.version.substr(0,1)<7) {
			JQ.blockUI({ message: JQ('#tnc_popup'), css: { top: '30px', cursor: 'auto' } });
		} else {
			JQ.blockUI({ message: JQ('#tnc_popup'), css: { width: '100%', 'text-align': 'center', left: 'auto', top: '20%', cursor: 'auto' } });
		}
	};
	
	self.hidePopup = function(){
		JQ.unblockUI();
	};
	
	self.setUpPopup = function(){
		var html = [];
		html.push('<div id="tnc_popup" 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">' + self.trans.termsHeader + '</div>');
		html.push('					<div class="clear"></div>');
		html.push('					<div class="message">' + self.trans.termsCopy + '</div>');
		html.push('					<div class="clear"></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">' + self.trans.accept  + '</div> </div> <div class="btn_right"/></div><div class="clearme"/></div></div>');
		html.push('						<div class="cancel">' + self.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 .accept').click(function(){
			self.setTerms(self.hidePopup);
		});
		JQ('#tnc_popup #close, #tnc_popup .cancel').click(function(){ self.logout(); self.hidePopup(); });
	};
}
