
var HJ = {
    Version: '1.0',
	     //
    // From global variables in in Env.js
    DEVELOPER_VERSION: currentDomain == DEV_DOMAIN ? true : false,

    // re-enable the payments feature.
    ENABLE_PAYMENTS: true, 

    requestQueryString: new QueryString(),

    DESTINATION_PAGE_PARAM: 'j_dest',
    
    DESTINATION_PAGE_OUR_CAL: 'our_cal',

    DESTINATION_PAGE_SIGNUPS: 'signups',

    DESTINATION_PAGE_FRIENDS: 'friends',

    DESTINATION_PAGE_INAROUND: 'inAround',

    DESTINATION_PAGE_HOME: 'home',
    
    POST_LOGIN_ACTION_PARAM: 'j_action',
   
    POST_LOGIN_ACTION_ADD_EVENT: 'add_event',

    POST_LOGIN_ACTION_SHOW_MY_INFO: 'show_my_info',

    POST_LOGIN_ACTION_TELL_A_FRIEND: 'tellAFriend',
    
    POST_LOGIN_ACTION_ORGANIZER_VIEW_SIGNUP: 'organizerViewSignup',
    
    MYLIST_UUID_PARAM: 'l',

    YUI_HISTORY_MANAGER_MODULE_DASHBOARD: 'dashboard',

    YUI_HISTORY_MANAGER_MODULE_TEMPLATE_STEP: 'templateStep',

    COOKIE_CONTEXT_ID: '_j_context_id_',
    
    COOKIE_USER_ID: '_hj_uid_',

    COOKIE_USER_EMAIL_ID: '_j_email_id_',

    COOKIE_CONTEXT_ID_EXPIRATION_DAYS: 90,

    COOKIE_KEEP_LOGGED_IN: '_hj_keep_logged_in_',

    TEMPLATE_TYPE_ORGANIZE_VOLUNTEERS: 'OrganizeVolunteers',
    TEMPLATE_TYPE_PRACTICE_CARPOOL: 'PracticeCarpool',
    TEMPLATE_TYPE_GENERIC_SIGNUP: 'GenericSignup',
    TEMPLATE_TYPE_GENERIC_INVITATION: 'GenericInvitation',
    TEMPLATE_TYPE_SNACK_DUTY: 'SnackDuty',
    TEMPLATE_TYPE_SIMPLE_LIST: 'SimpleList',
    TEMPLATE_TYPE_ORGANIZE_SHIFTS: 'OrganizeShifts',
    TEMPLATE_TYPE_COLLECT_INFORMATION: 'CollectInformation',
    
    NO_CURRENT_SUBSCRIPTION: '__1$_no_2$__',
    NO_CURRENT_SESSION: '__1$_yes_2$__',

    postLoginActionProcessed: false,

    getDestinationPage: function() {
		return HJ.requestQueryString.get(HJ.DESTINATION_PAGE_PARAM, null);
    },

	getPostLoginAction: function() {
		return HJ.requestQueryString.get(HJ.POST_LOGIN_ACTION_PARAM, null);
	},

    createCookie: function (name, value, days, path) {
	    var expires = "";
		if (days != null && days > 0) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			//expires = "; expires="+date.toGMTString();
			expires = "; expires="+date.toUTCString();
		}
		if (path == null || path == '') {
			path='/';
		}
		value = escape(value);
		value = value.replace(/@/ig,  '%40');
		document.cookie = name+"="+value+expires+"; path="+path;
    },

    readCookie: function (name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) 
			return c.substring(nameEQ.length,c.length);
	}
	return null;
    },

    eraseCookie: function (name, path) {
		var cookie_date = new Date ();  // current date & time
		if (path == null || path == '') {
			path = '/';
		}
		document.cookie = name + "= ; expires=Thu, 01-Jan-1970 00:00:01 GMT; path="+path;
    },
    
    stopEvent: function (event) {
		if (!event) { 
			var event = window.event;
		}
		consumeEvent(event);
		return false;
    },

	// utility function for text input field in case <enter> key press should be ignored
	ignoreEnterKeyPress: function(event) {
		Event.extend(event);
	   	if (event.keyCode == Event.KEY_RETURN) {
	   	  	Event.stop(event); // ignore pressing of Enter key
	    }
	},
	
	// utility function for text input field in case any key press should be ignored
	ignoreAnyKeyPress: function(event) {
		Event.extend(event);
	   	Event.stop(event); // ignore
	},
	
	hideElements: function() {
		// hide elements on the page while refreshing
		var elem = document.getElementById("MainArea");
		if (elem != null) {
			elem.style.display = "none";
		}
		elem = document.getElementById("MainArea2");
		if (elem != null) {
			elem.style.display = "none";
		}

		elem = document.getElementById("homeFooter");
		if (elem != null) {
			elem.style.display = "none";
		}

		showModalMessageDialog("Refreshing ... please wait", 240, 40);
	},
	
	copyToClipboard: function(element) {
		if (element == null) {
			return;
		}
		Element.extend(element);
		element.focus();
		element.select();
		if (window.clipboardData != undefined && window.clipboardData != null) {
			window.clipboardData.setData("text", element.value);
		}
	}

};

