
    
SJU.renderImgMap = function(mapName,coords /*array, coords::href*/) { //console.log("render map");
		var map = document.createElement("map");
		map.setAttribute("id",mapName);
		map.setAttribute("name",mapName);
		
		dojo.forEach(coords,function(attrbs) {
			var values = attrbs.split("::");
			var area = document.createElement("area");
			area.setAttribute("shape","rect");
			area.setAttribute("coords",values[0]);
			console.log(values[1]);
			if(values[1].match("navTab1") || values[1].match("navTab2") || values[1].match("navTab3")) {
				var a = dojo.query("#sj_xp1Content > .sj_headerhome > a");
				dojo.connect(area,"onclick",function(e){ 
					e.preventDefault();
					var navTab = "sj_tab"+sj_tc_vars.hero.navTabToOpen;
					var tab = "sj_tab"+sj_tc_vars.hero.navTabToOpen+"_content";
					SJNav.open(tab,navTab);
				});
			} else {
				area.setAttribute("href",values[1]);
			}
			area.setAttribute("href",values[1]);
			map.appendChild(area);
		});
        return map;
}
;
SJourney.touchClarity = {
	waitTime :  0,
	waitInterval : 500,
	maxWait : 5000, 
	timerRef : "",

    init: function() { //console.log("TC init");
        if(this.objectChecker()=="defined") { 
			//hero, then buckets
			this.renderHero();
			this.renderBuckets();
			this.clearTimer();
		} else if (this.waitTime >= this.maxWait) {
			this.clearTimer();
			dojo.byId('sj_xp1Content').style.display = 'none';
			dojo.byId('sj_defaultContent').style.display = 'block';
		} else { 
			this.setTimer();
			this.waitTime+=500;
		}
    },
    
	setTimer: function() { //console.log("setTimer");
		//console.warn("Homepage :: Waiting for responses from TC");
        this.timerRef = setTimeout("SJourney.touchClarity.init()",this.waitInterval);
		//console.log('timer loop');
	},
	
	clearTimer: function() { //console.log("clearTimer");
	    //console.log('xp1 cancel called'); 
		if(this.timerRef != 'undefined') {
			clearTimeout(SJTC.timerRef);
		}
	},
	
    objectChecker: function() { //console.log("objectChecker");
        //checks for the existence of the sj_tc_vars object
		if(typeof(sj_tc_vars) != 'undefined') {
			return "defined";
		} else {
			return "undefined";
		}
    },
    
    renderHero: function() { //console.log("renderHero start");
        if(sj_tc_vars["hero"]["flashplayer"]!="") { 
			SJU.renderFlash("#sj_xp1Content > .sj_headerhome",sj_tc_vars.hero.flashplayer,sj_tc_vars.hero.flashxml,890,260,sj_tc_vars.hero.url);
		} else if (sj_tc_vars["hero"]["imgmap"]!="") { 
			var img = SJU.createNewElement( {
				element:"img", 
				attribs:[{id: "hero", src: sj_tc_vars.hero.img, height: 260, width: 890, alt: sj_tc_vars.hero.text}]
			});
			var map = SJU.renderImgMap("sj_heroMap",sj_tc_vars.hero.imgmap);
			dojo.query("#sj_xp1Content > .sj_headerhome")[0].appendChild(img);
			document.body.appendChild(map);
			dojo.query("#sj_xp1Content > .sj_headerhome img")[0].setAttribute("useMap","#"+map.name);
			var h2 = document.createElement("h2");
			h2.innerHTML=sj_tc_vars.hero.headline;
			var p = document.createElement("p");
			p.innerHTML=sj_tc_vars.hero.text;
			dojo.query("#sj_xp1Content > .sj_headerhome")[0].appendChild(h2);
			dojo.query("#sj_xp1Content > .sj_headerhome")[0].appendChild(p);
		} else { 
			var img = SJU.createNewElement( {
				element:"img", 
				attribs:[{id: "hero", src: sj_tc_vars.hero.img, height: 260, width: 890, alt: sj_tc_vars.hero.text}]
			});
			var a = document.createElement("a");
			a.setAttribute("href",sj_tc_vars.hero.url);
			var aInDOM = dojo.query("#sj_xp1Content > .sj_headerhome")[0].appendChild(a);
			aInDOM.appendChild(img);
			
			var h2 = document.createElement("h2");
			h2.innerHTML=sj_tc_vars.hero.headline;
			var p = document.createElement("p");
			p.innerHTML=sj_tc_vars.hero.text;
			dojo.query("#sj_xp1Content > .sj_headerhome")[0].appendChild(h2);
			dojo.query("#sj_xp1Content > .sj_headerhome")[0].appendChild(p);
		}
		if(sj_tc_vars.hero.navTabToOpen!=undefined && sj_tc_vars.hero.navTabToOpen<=3) {
			var a = dojo.query("#sj_xp1Content > .sj_headerhome > a");
			a.onclick(function(e){ 
				e.preventDefault();
				var navTab = "sj_tab"+sj_tc_vars.hero.navTabToOpen;
				var tab = "sj_tab"+sj_tc_vars.hero.navTabToOpen+"_content";
				SJNav.open(tab,navTab);
			});
		}
    },
	
	renderBuckets: function() { //console.log("renderBuckets start");
		for(var i=1; i<4; i++) {
			if(sj_tc_vars["bucket"+i]["flashplayer"]!="") { 
				//SJU.renderFlash();
			} else if (sj_tc_vars["bucket"+i]["imgmap"]!="") { 
				//SJU.renderImgMap();
				//append
				//set usemap
			} else { 
				var parent = dojo.query("#sj_xp1Content > .sj_xrow > .sj_bucket"+i)[0];
				
				var img = SJU.createNewElement( {
					element:"img", 
					attribs:[{id: "bucket"+i, src: sj_tc_vars["bucket"+i]["img"], height: 220, width: 300, alt: sj_tc_vars["bucket"+i]["text"]}]
				});
				var a = document.createElement("a");
				a.setAttribute("href",sj_tc_vars["bucket"+i]["url"]);
				var aInDOM = parent.appendChild(a);
				aInDOM.appendChild(img);
				var h3 = document.createElement("h3");
				h3.innerHTML=sj_tc_vars["bucket"+i]["headline"];
				var p = document.createElement("p");
				p.innerHTML=sj_tc_vars["bucket"+i]["text"];
				parent.appendChild(h3);
				parent.appendChild(p);
			}	
			if(sj_tc_vars["bucket"+i]["navTabToOpen"]!=undefined && sj_tc_vars["bucket"+i]["navTabToOpen"]<=3) {
				var aBucket = dojo.query("#sj_xp1Content > .sj_xrow > .sj_bucket"+i+" a");
				aBucket.onclick(function(e) {								
					e.preventDefault();
					var num = e.target.id.replace(/bucket/,"");
					var navTab = "sj_tab"+sj_tc_vars["bucket"+num]["navTabToOpen"];
					var tab = "sj_tab"+sj_tc_vars["bucket"+num]["navTabToOpen"]+"_content";
					SJNav.open(tab,navTab);
				});
			}
		}
	}
    

};

var SJTC = SJourney.touchClarity;

SJourney.receiveEmailOffers = {
	buttonElement: "",
	contentDivId: "receiveEmailOffers",
	
	init: function() { 
		//set element parameter
		this.buttonElement = dojo.query("#sj_emailSignup_btn span")[0];
		dojo.connect(this.buttonElement, 'onclick', function(e) { 
			SJourney.receiveEmailOffers.prepareModal();
		});
		dojo.query("#receiveEmailOffers .sj_modal_cancel").onclick(function() { console.log("yep");
            SJourney.Modal.hide(SJourney.receiveEmailOffers.contentDivId);
			document.sj_signupFrm.reset();
			dojo.addClass("sj_firstname_error","sj_youcantseeme");
			dojo.addClass("sj_lastname_error","sj_youcantseeme");
			dojo.addClass("sj_zip_error","sj_youcantseeme");
			dojo.addClass("sj_emailadd_error","sj_youcantseeme");
			dojo.addClass("sj_cemailadd_error","sj_youcantseeme");
			dojo.addClass("sj_thanksmsg","sj_youcantseeme");
			dojo.removeClass("sj_popcontent","sj_youcantseeme");
			

        });
	},
	
	prepareModal: function() {
		SJourney.Modal.show(this.contentDivId);
	}

};

SJourney.Nav = {
    pageName: SJourney.pageInfo.pageName,
    cancelReference: null,
	contentPanel: "",
	
    slideOpen: function() {
		dojo.fx.wipeIn({node: SJNav.contentPanel,duration:400,onEnd: function(){ SJNav.contentPanel.style.overflow="visible";} }).play();
	},
	slideClosed: function() {
		dojo.fx.wipeOut({node: SJNav.contentPanel,duration:400,onEnd: function() {}}).play();
	},
	open: function(tab,navButton) {
        if(dojo.query(".sj_navContentActive").length == 0 ){           
			dojo.addClass(navButton, "sj_navContentActive");
			dojo.addClass(tab, "sj_showNavContent");
			SJNav.slideOpen(); 
        } else { 
			dojo.removeClass(dojo.query(".sj_navContentActive")[0], "sj_navContentActive");
			dojo.removeClass(dojo.query(".sj_showNavContent")[0], "sj_showNavContent"); 
			
			dojo.addClass(navButton, "sj_navContentActive");
			dojo.addClass(tab, "sj_showNavContent");
			SJNav.slideOpen();
        }
	},
	/*close: function(tab) { //not used yet, made stub available
		var slideClosed = dojo.fx.wipeOut({node: SJNav.contentPanel,duration:400});
	},*/
	
    init: function() {
		this.contentPanel = dojo.byId("sj_navContent");
        var tabTriggers = dojo.query(".sj_tabNav");
		
        // use classes as handles to toggle whether nav is open or closed
        // id is the tab div id
        tabTriggers.onclick(function(e){
            var tabContent = dojo.query("#" + this.id + "_content" )[0];
            
            if( dojo.query(".sj_navContentActive").length == 0 ){           
                dojo.addClass(this, "sj_navContentActive");
                dojo.addClass(tabContent, "sj_showNavContent");
                SJNav.slideOpen(); 
            }
            else if( dojo.hasClass(this, "sj_navContentActive") ){ 
                SJNav.slideClosed(); 
                dojo.removeClass(this, "sj_navContentActive");
                dojo.removeClass(tabContent, "sj_showNavContent");  
            }
            else {
                var lastTab = dojo.query(".sj_navContentActive")[0];
                var lastTabContent = dojo.query("#" + lastTab.id + "_content" )[0];
                dojo.removeClass(lastTab, "sj_navContentActive");
                dojo.removeClass(lastTabContent, "sj_showNavContent");
                
                dojo.addClass(this, "sj_navContentActive");
                dojo.addClass(tabContent, "sj_showNavContent");
            }     
        });
		//add flyouts for tab3
		this.addFlyoutHandlers();       
        // determine if tab 2 is displayed
        this.handleTab2ContentVisisble(); 
        //get element to stop link action on in nav based on active page
        this.setCancelReference();
        //event listener for canceling
        if(SJourney.Nav.cancelReference) {
            this.cancelNavLinkAction();  
        } 
        //init nav Tab 4 links/modals
        SJourney.Nav.Tab4.whyAmex.init();
        SJourney.Nav.Tab4.respondToMailOffer.init();
		
		//did the user come from iNav?
		//sj_tabToOpen = 3;
		this.queryStringOpen();
    },
	
	queryStringOpen: function() {
		//coming from server variable
		if(typeof(sj_tabToOpen)!='undefined'&&sj_tabToOpen!="0") {
			var navTab = dojo.query("#sj_tab"+sj_tabToOpen)[0];
			var tab = dojo.query("#sj_tab"+sj_tabToOpen+"_content")[0];
			if(dojo.hasClass( dojo.query("#sj_tab2_content")[0],"sj_showNavContent" ) ) {
				/*var tab2 = dojo.query("#sj_navTab2_content")[0];
				var button2 = dojo.query("#sj_navTab2")[0];
				var callback = function() { console.log("callback"); SJNav.open(tab,navTab); };
				SJNav.close(tab2,button2,callback);*/
			} else {
				SJNav.open(tab,navTab);
			}
		} else {
			console.log("sj_tabToOpen not set");
		}
		
		//coming from querystring, for modals
		if(sj_modalToOpen && typeof(sj_modalToOpen)!="undefined" && sj_modalToOpen!="null") {
			if(sj_modalToOpen=="rsvp") {
				setTimeout("SJourney.Nav.Tab4.respondToMailOffer.prepareModal()",1000);
			}
		} else {
			console.log("sj_modalToOpen not set");
}
    },
    
    setCancelReference: function(){
        //PRODUCT
        //pageType replacement, when ready
        if(SJU.pageType=="product") {
            this.cancelReference = "#sj_pmc_"+pmcCode;
        }
        //FLASH PAGES
        //else if(SJU.pageType=="quiz" || SJU.pageType=="hubandspoke") {}
        //COMPARE
        else if(SJU.pageType=="compare") {
            //console.log("compare cards CANCEL");
            var pageURL = window.location.pathname;
            var tabs = dojo.query("a[id*='sj_tab2']");
            for(var i=0;i<tabs.length;i++) {
                var tabHrefUnique = tabs[i].href.split('/');
                if(pageURL.match(tabHrefUnique[5])) { this.cancelReference="#"+tabs[i].id; console.log(this.cancelReference); } else {}
            }
        } else {}
        //console.log("cancelCurrentPageLink DONE");
    },
    
    cancelNavLinkAction: function () {
        var cancelItem = dojo.query(this.cancelReference);
        cancelItem.onclick(function(e){
            e.preventDefault();
            dojo.stopEvent(e); 
        });
    },
    
    handleTab2ContentVisisble: function(){
        //console.log("handleTab2ContentVisisble");
        if(document.getElementById('sj_tab2_content') == 'undefined') return;
        
        if(SJU.pageType=="compare") {
                dojo.addClass("sj_tab2", "sj_navContentActive");
                dojo.addClass("sj_tab2_content", "sj_showNavContent");
                var contentPanel = dojo.byId("sj_navContent");
                contentPanel.style.overflow="visible";
                contentPanel.style.height="auto";
        }
        // sets the highlight of the tab 2 content button
        var new_pagename = omn_pagename.substr(0,(omn_pagename.length-1));
        dojo.addClass('sj_tab2_content', new_pagename);
    },
	
	addFlyoutHandlers: function (){
		// Add card flyout rollovers for tab 3.
		
		/* used to obtain viewport information for positioning of popup layers */
		function sj_getYCoord(id) {
			for (var ly=0; id != null; ly += id.offsetTop, id=id.offsetParent);
			return {y:ly}
		}
		
		dojo.query("#sj_tab3_content a.sj_cardListImg").onmouseenter(function(e){
			var sj_wrapper = dojo.query(this.parentNode, this.parentNode.parentNode)[0];
			var sj_layer = dojo.query(".sj_pop_window", this.parentNode)[0];
			var sj_arrow = dojo.query(".sj_poparrow", this.parentNode)[0];

			sj_wrapper.style.position = "relative";
			sj_layer.style.display = "block";
			sj_layer.style.position = "absolute";
			sj_layer.style.top = "-25px"; 
			sj_layer.style.left = "50px";
			var heightVal = sj_layer.offsetHeight;
			sj_arrow.style.height = (heightVal - 25) + "px";
			sj_arrow.style.width = "11px";
			var yValOfTop = sj_getYCoord(sj_layer);
			var yValOfBot = yValOfTop.y + heightVal;
			var screenBot = SJU.screenTop() + SJU.screenHeight();

			//If bottom of popup is being cut off 
			if (yValOfBot > screenBot) {
				sj_layer.style.top = "-" + (yValOfBot - screenBot + 25) + "px";
				sj_arrow.style.height = (heightVal - 25) + "px";
				sj_arrow.style.backgroundPosition = "1px " + (yValOfBot - screenBot + 25) + "px";
			}
			//If top of popup is being cut off 
			else if (yValOfTop.y < SJU.screenTop()) {
				sj_layer.style.top = "0";
				sj_arrow.style.backgroundPosition = "1px 7px";
			}

		});

		dojo.query("#sj_tab3_content li").onmouseleave(function(e){
			// skip the first one as it's a header
			if(dojo.query("h4", this).length > 0)
				return;
		 
			var sj_wrapper = dojo.query(this, this)[0];
			var sj_layer = dojo.query(".sj_pop_window", this)[0];
			var sj_arrow = dojo.query(".sj_poparrow", this)[0];

			sj_wrapper.style.position = "static";
			sj_layer.style.display = "none";
			sj_arrow.style.backgroundPosition = "1px 30px";
		});
	}
};
var SJNav = SJourney.Nav;

SJourney.Nav.Tab4 = {};


SJourney.Nav.Tab4.whyAmex = {
    init: function(){
        //event handlers
        var whyAmexLink = dojo.query("#whyChooseAmexLink");
        whyAmexLink.onclick(function(e) {
            e.preventDefault();
            SJourney.Nav.Tab4.whyAmex.prepareModal();
        });
        dojo.query(".sj_modal_cancel").onclick(function() {
            SJourney.Modal.hide("whyChooseAmex");
        });
    },
    
    prepareModal: function() {
        SJourney.Modal.show("whyChooseAmex");
    }
};

SJourney.Nav.Tab4.respondToMailOffer = {
	//should be rewritten to be more mvc in the validator section - if an error is encountered, call rsvpCodeError method which display message, zip calls zipError, etc
	responseContainer: "",
	error: "",
	zip: "",
	rsvp: [],
	rsvpError: "",
	zipError: "",
	serviceURL: "",
	attempts: "0",
	domain: "",
	responseFlag: "",

    init: function(){
		console.log("init");
		this.responseContainer = dojo.query("div#respondToMailOffer div#amexResponse")[0];
		this.rsvpError = dojo.query("#rsvp_error1")[0];
		this.zipError = dojo.query("#rsvp_error2")[0];
		this.spinner = dojo.query("div#respondToMailOffer .sj_modalWindowBody img")[0];
		var inputs = dojo.query("#rsvpCodeDiv input");
		this.attempts = sj_rsvpAttempts;
        //event handlers
        var respondToMailOfferLink = dojo.query("#respondToMailOfferLink");
        respondToMailOfferLink.onclick(function(e) {
            e.preventDefault();
            SJRSVP.prepareModal();
        });
		dojo.query(".sj_modal_cancel").onclick(function() {
            SJM.hide("respondToMailOffer");
			document.rsvp.reset();
			SJRSVP.rsvpError.style.display="none";
			SJRSVP.zipError.style.display="none";
			SJRSVP.responseContainer.style.display="none";
        });
		inputs.onkeyup(function(e) {
			SJRSVP.autoTab(e);
		});
		dojo.query("div#respondToMailOffer a#rsvpSubmit").onclick(function() {
				SJRSVP.responseContainer.style.display="none";
				if(SJourney.Nav.Tab4.respondToMailOffer.validator()) {
					SJRSVP.spinner.style.display="block";
					
					if(window.location.protocol == "https:"){
						SJRSVP.domain = "/secure";
					}
					else{
						SJRSVP.domain = "/getthecard";
					}
					var response = SJRSVP.submit(SJRSVP.rsvp,SJRSVP.zip);
				} 
		});
    },
    
    prepareModal: function() {
				dojo.query("#respondToMailOffer")[0].style.display="block";
		SJRSVP.stateHandler(SJRSVP.attempts);
        SJM.show("respondToMailOffer");
    },
    
	autoTab: function(e) { //console.log("autoTab");
		var currentField = e.target;
		var value = e.target.value.length;
		var maxLen = e.target.getAttribute("maxlength");

		//check against value of maxlength attrb
		if(value==maxLen) { 
			if(currentField.id!="txtRSVPID4") {
				
				currentField.nextSibling.nextSibling.focus();
			} else {
				dojo.query("#zipCodeDiv input")[0].focus();
			}
		}
	},
	
    validator: function() { //console.log("validator");
		var error = [];
		var rsvpPattern = /\w/g;
		var zipPattern = /\D/g;
		var rsvp = [document.rsvp.txtRSVPID1.value,document.rsvp.txtRSVPID2.value,document.rsvp.txtRSVPID3.value,document.rsvp.txtRSVPID4.value];
		var zip = document.rsvp.zipCode.value;
		
		error[0] = (rsvp[0]=="" || rsvp[1]=="" || rsvp[2]=="" || rsvp[3]=="") ? 1 : 0;	
		error[1] = (zip=="") ? 1 : 0;

		if(error[0]==0) {
			for(i=0;i<4;i++) {
				if(rsvp[i].match(rsvpPattern).length!=rsvp[i].length) {
					error[0]++;
				}
				if(error[0]==0) {
					error[0] = (rsvp[0].length!=4 || rsvp[1].length!=3 || rsvp[2].length!=3 || rsvp[3].length!=4) ? 1: 0;
				}
			}
		}
		error[1] = (zip.match(zipPattern)) ? 1 : 0;
			if(error[1]==0) {
				error[1] = (zip.length!=5) ? 1 : 0;
			}
		//rsvp
		if(error[0]!=0) {
			this.rsvpError.style.display="block";
		} else {
			this.rsvpError.style.display="none";
		}
		//zip
		if(error[1]!=0) {
			this.zipError.style.display="block";
		} else {
			this.zipError.style.display="none";
		}
		
		if(error[0]==0 && error[1]==0) {
			this.zip=zip;
			this.rsvp=rsvp;
			this.serviceURL = "/getthecard/services?name=rsvpdtw&txtRSVPID1="+rsvp[0]+"&txtRSVPID2="+rsvp[1]+"&txtRSVPID3="+rsvp[2]+"&txtRSVPID4="+rsvp[3]+"&zipCode="+zip;
			return true;
		} else {
			return false;
		}
	},
	
	stateHandler: function(attempts) {
		
		attempts = (SJRSVP.responseText=="") ? 0 : SJRSVP.attempts;

		if(SJRSVP.attempts>3) {
			dojo.query("#respondToMailOffer .sj_modalWindowBody h2")[0].style.display="none";
			dojo.query("#respondToMailOffer .sj_modalWindowBody p")[0].style.display="none";
			dojo.query("#respondToMailOffer .sj_modalWindowBody form")[0].style.display="none";	
			dojo.query("#respondToMailOffer #amexResponse")[0].style.display="block";
			SJRSVP.responseContainer.innerHTML = "We are sorry, you have tried to enter our website unsuccessfully and have been locked out. To get pre-selected for Cards that may be right for you please visit <a href='https://www201.americanexpress.com/secure/my-special-offers'>special offers</a>";
		} else {		 console.log("else");			
			dojo.query("#respondToMailOffer .sj_modalWindowBody h2")[0].style.display="block";
			dojo.query("#respondToMailOffer .sj_modalWindowBody p")[0].style.display="block";
			dojo.query("#respondToMailOffer .sj_modalWindowBody form")[0].style.display="block";	
		}
	},
	
	submit: function(rsvp, zip) {
	
		console.log("Inside Submit...:");
		var response = dojo.xhrGet( { 
		//url: jsContextPath+"exampleJSON.js",
			url: SJRSVP.domain+"/services?name=rsvpdtw&txtRSVPID1="+rsvp[0]+"&txtRSVPID2="+rsvp[1]+"&txtRSVPID3="+rsvp[2]+"&txtRSVPID4="+rsvp[3]+"&zipCode="+zip, 

			
			handleAs: "text",

			timeout: 5000, // Time in milliseconds

			// The LOAD function will be called on a successful response.
			load: function(response, ioArgs) { console.log("load block");
				console.log("response IO:"+response);
				var evalR = eval(response);
				SJRSVP.attempts = sj_rsvpAttempts;
				console.log("SJRSVP.attempts: "+SJRSVP.attempts);
				//console.log(sj_responseText);
				SJRSVP.responseText = sj_responseText;
				SJRSVP.stateHandler(SJRSVP.attempts);
				if(SJRSVP.attempts>3) {
					SJRSVP.responseContainer.innerHTML = SJRSVP.responseText;
					SJRSVP.responseContainer.style.display="block";
				} else {
					SJRSVP.responseContainer.innerHTML = SJRSVP.responseText;
					SJRSVP.responseContainer.style.display="block";
					SJRSVP.responseFlag = sj_rsvpStatus;
					if(SJRSVP.responseFlag==0) {
						window.location.href = sj_offerURL;
					}
				}
				SJRSVP.spinner.style.display="none";
			    return response; 
			},

			// The ERROR function will be called in an error case.
			error: function(response, ioArgs) { console.log("error block");
				console.log("sj_responseText: "+sj_responseText);
				SJRSVP.responseContainer.innerHTML = sj_responseText;
				SJRSVP.responseContainer.style.display="block";
				SJRSVP.responseFlag = sj_rsvpStatus;
				if(SJRSVP.responseFlag==0) {
					window.location.href = sj_offerURL;
				}
			    console.error("HTTP status code: ", ioArgs.xhr.status); 
				console.log("error:"+ioArgs.xhr.responseText);
				console.log("statusText:"+ioArgs.xhr.statusText);
				console.log("url:"+ioArgs.xhr.channel.URI.asciiHost);
				spinner.style.display="none";
			    return response; 
			}
        });
		return response;
	}

};

var SJRSVP = SJourney.Nav.Tab4.respondToMailOffer;

SJourney.validation = {
	//for zip codes
	zip: function(value) {
		var pattern = /\D/g;
		error = (value.match(pattern)) ? "fail" : "pass";
		if(error=="pass") {
			error = (value.length==5) ? "pass" : "fail";
		}
		return error;
	},
	//pass any value and any regexp *DOES NOT CHECK LENGTH*
	open: function(value,pattern) {
		error = (value.match(pattern)) ? "fail" : "pass";
		return error;
	}
};