
// Set up One to One before login form
var redirectIfCookieIsSet = Class.create();
Object.extend(redirectIfCookieIsSet.prototype, {
	formObj: null,
	redirectPage: null,
	cookieName: null,
	
	initialize: function(formObj) {
		(typeof formObj === 'string')?
			this.setValueForKey($(formObj), 'formObj'):
			this.setValueForKey(formObj, 'formObj');

		this.setEvents();
	},
	
	setValueForKey: function(value, key) {
		this[key] = value;
	},
	
	setEvents: function() {
		Event.observe(this.formObj, 'submit', this.submitForm.bindAsEventListener(this));
	},
	
	setCookieName: function(name) {
		this.setValueForKey(name, 'cookieName');
	},
	
	setCookie: function(name, value, daysToExpire) {
	    var expire = '';
	    if (daysToExpire != undefined) {
	      var date = new Date();
	      date.setTime(date.getTime() + (86400000 * parseFloat(daysToExpire)));
	      expire = '; expires=' + date.toGMTString();
	    }

	    return (document.cookie = escape(name) + '=' + escape(value || '') + expire);
	},
	
	setRedirect: function(page) {
		// see if cookie already exists and get the value
		this.cookieValue = this.getCookie(this.cookieName);
		
		// redirect if cookie is true, if not set redirect page
		(this.cookieValue === "true")?
			this.doRedirect(page):
			this.setValueForKey(page, 'redirectPage');
	},
	
	doRedirect: function(page) {
		window.location.replace(page);
		//console.log('redirecting to: '+redirectPage);
	},
	
	getCookie: function(name) {		
		var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
	    return (cookie ? unescape(cookie[2]) : null);
	},
	
	submitForm: function(evt) {
		if (evt) {
			Event.stop(evt);
		}
		
		// set cookie
		var params = this.formObj.serialize().toQueryParams();
		this.setCookie(this.cookieName, params.dontshow);
		
		// send to next page
		this.doRedirect(this.redirectPage);
	},
	
});

Event.onDOMReady(function() {
	// redirect if there's a cookie set
	var oneToOneLogin = new redirectIfCookieIsSet($('beforeloginform'));
	oneToOneLogin.setCookieName('OneToOneBeforeLogin')
	oneToOneLogin.setRedirect('http://onetoone.apple.com/')
});
