// for BROL ONLY
Object.extend(marketMessagService, {
	view:{
		constants:{
			CA_COUNTRY_CODE:"CA",
			GB_COUNTRY_CODE:"GB",
			CA_PRIVACY_POLICY:"http://www.bananarepublic.ca/br_eng/privacy_policy.html",
			GB_PRIVACY_POLICY:"http://bananarepublic.gap.eu/privacypolicy/",
			CA_MORE_INFO_LINK:"https://bananarepubliccanada.p.delivery.net/m/p/gap/can/pref/brpref.asp?email=",
			GB_MORE_INFO_LINK:"http://bananarepublic.gap.eu/mailinglist/",
			CA_STAGING_LINK:"https://staging.merchantmail.net/m/p/gap/can/jemail/brjapiprocess.asp",
			GB_XML_STRING:"?req=<?xml version='1.0' encoding='UTF-8'?><DRRESPONSE><LOGIN>BananaRepublicUKRegistration</LOGIN><PASSWORD>QlJVbml0ZWRLaW5nZG9tUmVn</PASSWORD><SOURCE>"
	
		},
		emailRegistrationDisplayManager:{
			interceptMarket:null,
			nowTime:null,
			timeNowInMilliSecs:null,
			interceptDateRaw:null,
			interceptBrand:null,
			interceptBusinessUnit:null,
			interceptSeenCookieKey:null,
			interceptSeenExpire:null,
			userRegisteredForMarketList:null,
			hasUserSubmittedEmail:null,
			hasUserSeenInPast30Days:null,
			isInterceptDisplayRequired:null,
			linkForMoreInfo:null,
			
		    init:function() {
		     	//set variables
		     	//update: 4.07
		     	var constants = marketMessagService.view.constants;
		 		var emailRegistrationDisplayManager = marketMessagService.view.emailRegistrationDisplayManager;
				if (window["marketMessagService"] != undefined){
					//if window (string is not undefined)
			    	if (marketMessagService.isCanadaMarketCandidate == 'true') {
						emailRegistrationDisplayManager.interceptMarket = constants.CA_COUNTRY_CODE;
					}
					else if (marketMessagService.isEuMarketCandidate == 'true') {
						emailRegistrationDisplayManager.interceptMarket = constants.GB_COUNTRY_CODE;
					}
					/*	
					if (marketMessagService.requestOriginCountryCode){
						this.interceptMarket = marketMessagService.requestOriginCountryCode;
						}
					*/	
				}	
		
				if (emailRegistrationDisplayManager.interceptMarket == 'CA' || emailRegistrationDisplayManager.interceptMarket == "GB") {
					emailRegistrationDisplayManager.interceptEvaluator();
				}
					
		    },
		
		      
		    interceptEvaluator:function() {
		    		var constants = marketMessagService.view.constants;
		 			var emailRegistrationDisplayManager = marketMessagService.view.emailRegistrationDisplayManager;
		    		
		    		//get current date to compare with cookie
					emailRegistrationDisplayManager.nowTime = new Date();
					emailRegistrationDisplayManager.timeNowInMilliSecs = emailRegistrationDisplayManager.nowTime.getTime();
					
					//start forced mode testing
						if (gidLib.getQuerystringParam('interceptDate',true)) {
							emailRegistrationDisplayManager.interceptDateRaw = gidLib.getQuerystringParam('interceptDate');
							emailRegistrationDisplayManager.timeNowInMilliSecs = Date.parse(emailRegistrationDisplayManager.interceptDateRaw);
						}	
					//end forced mode testing
			
			    	emailRegistrationDisplayManager.interceptBrand = brandConst.BRAND_ID;
					emailRegistrationDisplayManager.interceptBusinessUnit = emailRegistrationDisplayManager.interceptBrand+emailRegistrationDisplayManager.interceptMarket;
						
					//grab cookies	
					emailRegistrationDisplayManager.interceptSeenCookieKey = "interceptSeen"+emailRegistrationDisplayManager.interceptBusinessUnit;
					emailRegistrationDisplayManager.interceptSeenExpire = gidLib.getCookieVar("mktUniversalPersist", emailRegistrationDisplayManager.interceptSeenCookieKey);
					emailRegistrationDisplayManager.userRegisteredForMarketList = gidLib.getCookieVar("mktUniversalPersist", "userRegisteredForMarketList");
					
			    	
		    		//check if interceptGotEmailValue exists and if it is true for current brand/origin
					if ((emailRegistrationDisplayManager.userRegisteredForMarketList != "") && (emailRegistrationDisplayManager.userRegisteredForMarketList.indexOf(emailRegistrationDisplayManager.interceptBusinessUnit) > -1)) {
						emailRegistrationDisplayManager.hasUserSubmittedEmail = true;				
					} 
					else {
						emailRegistrationDisplayManager.hasUserSubmittedEmail = false;	
					}
				
					//check date expire for interceptSeenPersist
					if ((emailRegistrationDisplayManager.interceptSeenExpire != "") && (emailRegistrationDisplayManager.timeNowInMilliSecs < emailRegistrationDisplayManager.interceptSeenExpire)) {
						emailRegistrationDisplayManager.hasUserSeenInPast30Days = true;		
					}
					else {
						emailRegistrationDisplayManager.hasUserSeenInPast30Days = false;
					}
			
				//if did not submit email (current brand and origin)
				//AND 
				//session cookie is expired
				//THEN show popup with the brandOrigin variable
				if ( (emailRegistrationDisplayManager.hasUserSubmittedEmail == false) && (emailRegistrationDisplayManager.hasUserSeenInPast30Days == false) ) {
					emailRegistrationDisplayManager.isInterceptDisplayRequired = true;				}
			},
			
		 	launchInterceptPrivacyPolicy:function(interceptLocation) {
		 		switch (interceptLocation)
		 		{
		 		case "CA":
		 			//var winObj = window.open('http://www.gapcanada.ca/gap_eng/privacy_policy.html','Details','width=1000,height=700,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
		 			var winObj = window.open(marketMessagService.view.constants.CA_PRIVACY_POLICY,'Details','width=1000,height=700,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
		 			return false;
		 			break;
		 		case "GB":
		 			var winObj = window.open(marketMessagService.view.constants.GB_PRIVACY_POLICY,'Details','width=1000,height=700,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
		 			return false;
		 			break;
		 			
		 			return false;
		 		}		
		
			},
			
			
			checkEmailAddress:function(emailAddress) {
				var constants = marketMessagService.view.constants;
		 		var emailRegistrationDisplayManager = marketMessagService.view.emailRegistrationDisplayManager;
		 		
				var form = $('interceptEmailRegForm');
				emailRegistrationDisplayManager.goodEmail = emailRegistrationDisplayManager.field.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\.ca)|(\.uk)|(\..{2,2}))$)\b/gi);
				emailRegistrationDisplayManager.isValidEmail = false;
			
				$("email1_enter_error").hide();
				
				if (goodEmail){
				   isValidEmail = true;
				} else {
					
				   $("email1_enter_error").show();
				   emailRegistrationDisplayManager.field.focus();
				   emailRegistrationDisplayManager.field.select();
				   isValidEmail = false;
				}
				 
				return isValidEmail;
			},
				
			emailValidation:function(thisButton) {
				var constants = marketMessagService.view.constants;
		 		var emailRegistrationDisplayManager = marketMessagService.view.emailRegistrationDisplayManager;	

				emailRegistrationDisplayManager.interceptEmailRegForm = document.getElementById('SignUpPopupContent').contentDocument.getElementById('interceptEmailRegForm');
				//emailRegistrationDisplayManager.interceptEmailRegForm = $('interceptEmailRegForm');
				emailRegistrationDisplayManager.interceptEmailField = emailRegistrationDisplayManager.interceptEmailRegForm.em;
				emailRegistrationDisplayManager.interceptEmailAddress = emailRegistrationDisplayManager.interceptEmailField.value;
				emailRegistrationDisplayManager.goodEmail = emailRegistrationDisplayManager.interceptEmailAddress.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\.ca)|(\.uk)|(\..{2,2}))$)\b/gi);
				//emailRegistrationDisplayManager.isValidEmail = emailRegistrationDisplayManager.checkEmailAddress(emailRegistrationDisplayManager.interceptEmailAddress);
				
				emailRegistrationDisplayManager.isValidEmail = false;
			
				document.getElementById('SignUpPopupContent').contentDocument.getElementById("email1_enter_error").hide();
				// show/display error messages
				if (emailRegistrationDisplayManager.goodEmail){
				   emailRegistrationDisplayManager.isValidEmail = true;
				} 
				else {
					document.getElementById('SignUpPopupContent').contentDocument.getElementById("email1_enter_error").show();
				   emailRegistrationDisplayManager.interceptEmailField.focus();
				   emailRegistrationDisplayManager.interceptEmailField.select();
				   isValidEmail = false;
				}
				
			   	if (emailRegistrationDisplayManager.isValidEmail) {
			   		emailRegistrationDisplayManager.submitInterceptEmail();
				} 
				
				return false;
				
				
				
			},
			
			submitInterceptEmail:function() {
				var constants = marketMessagService.view.constants;
		 		var emailRegistrationDisplayManager = marketMessagService.view.emailRegistrationDisplayManager;
		 
				emailRegistrationDisplayManager.srcPage = omni.strCurrentPageName;
				
				if(emailRegistrationDisplayManager.interceptMarket == 'CA'){
					//var thisURL = 'https://staging.merchantmail.net/m/p/gap/can/jemail/gpjapiprocess.asp?src='+srcPage+'&email='+thisEmail;
					//isMarketEmailRegistrationStagingActive=true
					if (location.href.indexOf('gidapps') > -1) {
						emailRegistrationDisplayManager.emailApiURL = constants.CA_STAGING_LINK+'?src='+emailRegistrationDisplayManager.srcPage+'&email='+emailRegistrationDisplayManager.interceptEmailAddress;
					}
					else if (parent.marketMessagService.canadaMarketEmailRegistrationUrl) {
						emailRegistrationDisplayManager.emailApiURL = parent.marketMessagService.canadaMarketEmailRegistrationUrl+'?src='+emailRegistrationDisplayManager.srcPage+'&email='+emailRegistrationDisplayManager.interceptEmailAddress;
					}
				}
				else if(emailRegistrationDisplayManager.interceptMarket == 'GB') {
					//var thisURL = 'https://gap.p.delivery.net/m/p/gap/uk/new/apiprocess_reg.asp?src=&email='+thisEmail;
					emailRegistrationDisplayManager.emailApiURL = marketMessagService.euMarketEmailRegistrationUrl+constants.GB_XML_STRING+emailRegistrationDisplayManager.srcPage+"</SOURCE><EMAIL>"+emailRegistrationDisplayManager.interceptEmailAddress+"</EMAIL><CONFIRMEMAIL>"+emailRegistrationDisplayManager.interceptEmailAddress+"</CONFIRMEMAIL></DRRESPONSE>";
				}
				
				//update iframe and send email
				document.getElementById('SignUpPopupContent').contentDocument.getElementById("iFrameContent").src = emailRegistrationDisplayManager.emailApiURL;
		
		                setTimeout(function(){
		                    document.getElementById('SignUpPopupContent').contentDocument.getElementById('iFrameContent').style.display = 'block';
		                    document.getElementById('SignUpPopupContent').contentDocument.getElementById('iFrameContent').style.visibility = 'visible';
		                    document.getElementById('SignUpPopupContent').contentDocument.getElementById('emailSubmitForm').setStyle({display:'none'});
		 					document.getElementById('SignUpPopupContent').contentDocument.getElementById('interceptPrivacyPolicyBox').setStyle({display:'none'});
		                }, 1);
				
					switch (emailRegistrationDisplayManager.interceptMarket)
					{
				 		case "CA":
				 			document.getElementById('SignUpPopupContent').contentDocument.getElementById('welcomeCA').setStyle({display:'none'});   
		 					document.getElementById('SignUpPopupContent').contentDocument.getElementById('thankyouCA').setStyle({display:'block'}); 
		 					break;
		
				 		case "GB":
				 			document.getElementById('SignUpPopupContent').contentDocument.getElementById('welcomeGB').setStyle({display:'none'});   
		 					document.getElementById('SignUpPopupContent').contentDocument.getElementById('thankyouGB').setStyle({display:'block'});  
				 			break;
				 	}
				
		        	
		       	// set persist cookie
		       	emailRegistrationDisplayManager.userRegisteredForMarketList = gidLib.getCookieVar("mktUniversalPersist", "userRegisteredForMarketList");
		       	if (emailRegistrationDisplayManager.userRegisteredForMarketList == ""){
		       		emailRegistrationDisplayManager.interceptEmailUpdate = emailRegistrationDisplayManager.interceptBusinessUnit;
		       	}
		       	else{
		       		emailRegistrationDisplayManager.interceptEmailUpdate = emailRegistrationDisplayManager.userRegisteredForMarketList+'-'+emailRegistrationDisplayManager.interceptBusinessUnit;
		       	}
				parent.gidLib.setCookieVar("mktUniversalPersist","userRegisteredForMarketList",emailRegistrationDisplayManager.interceptEmailUpdate);	
				
							
	// send omniture info for thankYou page
		        emailRegistrationDisplayManager.omniPageNameForSignUp = emailRegistrationDisplayManager.interceptBrand.toLowerCase()+':'+emailRegistrationDisplayManager.interceptMarket+':pre_launch_intercept_thank_you';
		        s.pageName = emailRegistrationDisplayManager.omniPageNameForSignUp;				s.tl(this,'o', emailRegistrationDisplayManager.omniPageNameForSignUp);
			},
			
			launchInterceptMoreInfoWindow:function(interceptLocation) {
				var constants = marketMessagService.view.constants;
		 		var emailRegistrationDisplayManager = marketMessagService.view.emailRegistrationDisplayManager;	
		 			
		 		switch (emailRegistrationDisplayManager.interceptMarket)
		 		{
			 		case "CA":
			 			//emailRegistrationDisplayManager.linkForMoreInfo = "https://gapcanada.p.delivery.net/m/p/gap/can/pref/gppref.asp?email=";
			 			emailRegistrationDisplayManager.urlForMoreInfo = constants.CA_MORE_INFO_LINK+emailRegistrationDisplayManager.interceptEmailAddress;
			 			emailRegistrationDisplayManager.winObj = window.open(emailRegistrationDisplayManager.urlForMoreInfo, 'Details','width=500,height=500,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
			 			return false;
			 			break;
			 		case "GB":
			 			emailRegistrationDisplayManager.winObj = window.open(constants.GB_MORE_INFO_LINK,'Details','width=1000,height=700,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
			 			return false;
			 			break;
			 			
			 			return false;
		 		}		
		
			}
						
		}//end 	emailRegistrationDisplayManager
	}//end view
}); //end obj extend

