	/**
	    +----------------------------------------------------------------------+
	    | Copyright (c) 2001-2007 TechMeridian, Inc. All Rights Reserved.      |
	    +----------------------------------------------------------------------+
	    | $Id: core.js 1273 2007-06-29 19:24:27Z dsimser $
	    +----------------------------------------------------------------------+
	  */

var core = {

	vars : {
		msgConsole : {
			el		  : null,
			isActive  : false,
			hideDelay : 5
		},
		browser : {
			client : null,
			version : null
		}
	},

	init : function() {
		// determine browser info
		_userAgent = navigator.userAgent.toLowerCase();
	    if(_userAgent.indexOf("msie") > -1 ) { core.vars.browser.client = "msie"; if(_userAgent.indexOf("msie 7") > -1 ) { core.vars.browser.version = "7";} } else if (_userAgent.indexOf("safari") != -1 ) { core.vars.browser.client = "safari"; } else if (_userAgent.indexOf("gecko") != -1 ) { core.vars.browser.client = "gecko"; }

		// force gecko only!
		if(core.vars.browser.client != 'gecko') {
			window.location = '/app/tuplix/login/systemRequirements/';
		}		
		// force version 7 if using msie
		//if(core.vars.browser.client == 'msie' && core.vars.browser.version < '7') {
		//	window.location = '/app/tuplix/login/systemRequirements/';
		//}
		
		core.vars.msgConsole.el = YAHOO.util.Dom.getElementsByClassName('messageConsole','div');
	},	
	
	actions : {

		processAsync : function(action, method, debug, hideConsole) {
			if(hideConsole) {
				core.actions.hideConsoleOnly();
			}
			if(!method) { method = 'POST'; }
			if(!debug) { callback = core.callBacks.makeGeneric(); } else {	callback = core.callBacks.makeDebug(); }
			YAHOO.util.Connect.asyncRequest(method, action, callback);
		},

		processAsyncPost : function(action, method, postVars, debug, hideConsole) {
			if(hideConsole) {
				core.actions.hideConsoleOnly();
			}
			var postData = encodeURI(postVars);
			if(!method) { method = 'POST'; }
			if(!debug) { callback = core.callBacks.makeGeneric(); } else {	callback = core.callBacks.makeDebug(); }
			YAHOO.util.Connect.asyncRequest(method, action, callback, postData);
		},

		processForm : function(formEl, action, method, debug) {
			core.actions.hideMessages();
			core.actions.activityIndicator('show');
			if(!method) { method = 'POST'; }
			if(!debug) { callback = core.callBacks.makeGeneric(); } else {	callback = core.callBacks.makeDebug(); }
			YAHOO.util.Connect.setForm(formEl);	
			YAHOO.util.Connect.asyncRequest(method, action, callback);
		},

		hideConsoleOnly : function() {
            core.errorActions.quickHideConsole();
            core.successActions.quickHideConsole();
		},
			
		hideMessages : function() {
            core.errorActions.quickHideConsole();
            core.successActions.quickHideConsole();
            core.successActions.hideInternal('successMain');
            core.errorActions.hideInternal('errorMain');
		},
	
		showElement : function(oElement) {
			resp = eval(oElement);
			YAHOO.util.Dom.setStyle(resp,'display', 'block');
		},
		
		hideElement : function(oElement) {
			resp = eval(oElement);
			YAHOO.util.Dom.setStyle(resp,'display', 'none');
		},
		
		activityIndicator : function (action) {
			if(action == 'show') {
				YAHOO.util.Dom.setStyle('tpxActivityIndicator','display', 'block');
				YAHOO.util.Dom.setStyle('actionButtons','display', 'none');
			} else {
				YAHOO.util.Dom.setStyle('tpxActivityIndicator','display', 'none');
				YAHOO.util.Dom.setStyle('actionButtons','display', 'block');
			}
		}		
		
	},
	
	errorActions : {
		showConsole : function(errorText,notSticky) {
			clearInterval(core.vars.msgConsole.isActive);
			YAHOO.util.Dom.setStyle(core.vars.msgConsole.el,'display', 'block');
			YAHOO.util.Dom.setStyle('tpxErrorConsole','opacity', '1');
			YAHOO.util.Dom.setStyle('tpxErrorConsole','display', 'block');
			tpxErrorConsole.innerHTML = '<img src="/.tuplix-media/apps/tuplix/i/2007/dialog-warning-22.png" align="absmiddle" alt=""> '+errorText+'<!-- <a id="hideErrorConsole" href="javascript:core.errorActions.hideConsole();">[ hide ]</a>-->';
			if(!notSticky) {
				core.vars.msgConsole.isActive = setInterval("core.errorActions.hideConsole()",core.vars.msgConsole.hideDelay*1000);
			}
		},
		
		quickHideConsole : function () {
			YAHOO.util.Dom.setStyle(core.vars.msgConsole.el,'display', 'block');
			//YAHOO.util.Dom.setStyle('tpxErrorConsole','display', 'none');		
		},
		
		hideConsole : function() {
			//myErrorAnim.animate();
			YAHOO.util.Dom.setStyle(core.vars.msgConsole.el,'display', 'none');
		},
		
		showInternal : function(oElement,errorText) {
			core.actions.showElement('statusBar');
			resp = eval(oElement);
			YAHOO.util.Dom.setStyle(resp,'display', 'block');
			resp.innerHTML = errorText;
		},
		
		hideInternal : function(oElement) {
			core.actions.hideElement('statusBar');		
			resp = eval(oElement);
			YAHOO.util.Dom.setStyle(resp,'display', 'none');
		}
	},
	
	successActions : {
		showConsole : function(successText,notSticky) {
			clearInterval(core.vars.msgConsole.isActive);
			YAHOO.util.Dom.setStyle(core.vars.msgConsole.el,'display', 'block');
			YAHOO.util.Dom.setStyle('tpxSuccessConsole','opacity', '1');
			YAHOO.util.Dom.setStyle('tpxSuccessConsole','display', 'block');
			tpxSuccessConsole.innerHTML = successText+'<!-- <a id="hideSuccessConsole" href="javascript:core.successActions.hideConsole();">[ hide ]</a>-->';
			if(!notSticky) {
				core.vars.msgConsole.isActive = setInterval("core.errorActions.hideConsole()",core.vars.msgConsole.hideDelay*1000);
			}
		},
		
		quickHideConsole : function () {
			YAHOO.util.Dom.setStyle(core.vars.msgConsole.el,'display', 'none');
			//YAHOO.util.Dom.setStyle('tpxSuccessConsole','display', 'none');		
		},
		
		hideConsole : function() {
			//mySuccessAnim.animate();
			YAHOO.util.Dom.setStyle(core.vars.msgConsole.el,'display', 'none');
		},
		
		showInternal : function(oElement,successText) {
			core.actions.showElement('statusBar');
			resp = eval(oElement);
			YAHOO.util.Dom.setStyle(resp,'display', 'block');
			resp.innerHTML = successText;
		},
		
		hideInternal : function(oElement) {
			core.actions.hideElement('statusBar');
			resp = eval(oElement);
			YAHOO.util.Dom.setStyle(resp,'display', 'none');
		}
	},
	
	callBacks : {
		makeGeneric : function(func_success, func_failure, someArg) {
			if(func_success == null)
				func_success = core.callBacks.generic;
			if(func_failure == null)
				func_failure = core.callBacks.failed;
			if(someArg == null)
				someArg == null;
	    	return {success: func_success, failure: func_failure, argument: someArg}
		},
		makeDebug : function(func_success, func_failure, someArg) {
			if(func_success == null)
				func_success = core.callBacks.debug;
			if(func_failure == null)
				func_failure = core.callBacks.debug;
			if(someArg == null)
				someArg == null;
	    	return {success: func_success, failure: func_failure, argument: someArg}
		},
		generic : function(o){
			eval(o.responseText);
			resp.run();
		},
		debug : function(o){
			document.write(o.responseText);
		},
		failed : function(o){
		}
	}

}

Ext.onReady(function() { core.init(); });
