/**
 * objectscript.js
 * 
 * core javascript library
 *
 * @author         Joseph Mastey <jmmastey@gmail.com>
 * @author         $Author$
 * @version        $Id: objectscript.js 241 2009-12-07 06:04:34Z evtsoft $
 * @package        evt
 * @subpackage     js
 * @copyright      Copyright (c) Joseph Mastey, 2007-
 */

core = {
    'loadJsLibrary' : function( script ) {
		var scp = document.createElement('script');
		$(scp).attr('type', 'text/javascript').attr('src', '../js/'+script);
		$('head').append(scp);
	},//end loadJsLibrary
    
    'loadCssLibrary' : function( script ) {
		var link = document.createElement('link');
		$(link).attr('rel', 'stylesheet').attr('type', 'text/css').attr('href', '../css/'+script);
		$('head').append(link);
	},//end loadCssLibrary

    'systemid' : function() {
		return $('meta[@name=evtsoft_systemid]').attr('content');
	},//end systemid
           
    'translateUrl'  : function( url ) {
		// get site url
		var surl    = $('#urlbase').attr('href');
		var mode	= $('body').attr('class');
		
		surl		= surl + "/";
		
		// non-local address
		if(0 === url.indexOf('http://') && -1 == url.indexOf(surl)) {
			return url;
		}
		
		// we aren't in translation mode.
		// JMM: currently broken. this is legacy. need
		// to backtranslate to .php files.
		if('mode-translate' != mode) {
			url			= url + ".php";
		}
		
		var params      = [];
		if(-1 != url.indexOf('?')) {
			params      = url.split('?');
			url         = params[0];
			params      = params[1].split('&');
		}
		
		// process params
		var params2     = "";
		if(params.length > 0) {
			params2     = "?";
			for(var i = 0, len = params.length; i < len; i++) {
				
				// append to url
				if(0 === params[i].indexOf('act=')) {
					url = url + params[i].replace('act=', '') + '/';
					continue;
				}
				
				// append to params
				params2 = params2 + params[i] + "&";
			}
			
			// trim trailing ampersand
			params2     = params2.substr(0, params2.length-1);
		}
		
		return surl + url + params2;
	}//end translateUrl
};//end core

objecttable = {
    'tblClass'  : "objecttable",
    
    'init'      : function() {
		if($('div.'+objecttable.tblClass).length) {
			$('div.'+objecttable.tblClass+' .rpp .submit').remove();
			$('div.'+objecttable.tblClass+' .rpp select.rpp').change( function() {
				$(this).parents('form').eq(0).trigger('submit');
			});
		}
	}//end init
};//end objecttable

pagedlist = {
    'setup'  : 0, // has this object been setup before?

    'init'	: function() {
		if(pagedlist.setup == 1) { return; }
		pagedlist.setup = 1;
		$('.orderform select').change(pagedlist.resolveSort);
	},//end init
    

    'resolveSort' : function() {
		$(this).parents('.orderform').submit();
	}//end resolveRpp
}; //end pagedlist

actionmenu = {
    'finickyTimeout'    : '',
    'timeout'           : 500,
    'open'              : '',
    
    'init'  : function() {
		// target this javascript only to internet explorer <= 6.0 
		if($.browser.msie && 6 >= $.browser.version) {
			$('.action-menu').hover(actionmenu.showMenu, actionmenu.hideMenu);
		}
	},//end init
        
    'showMenu'  : function() {
		if(this == actionmenu.open) {
			clearTimeout( actionmenu.finickyTimeout );
			return;
		} else if('' !== actionmenu.open) {
			actionmenu.hideMenuForReal( );
		}
		
		$(this).addClass('hover');
		actionmenu.open             = this;
	},//end showMenu
        
    'hideMenu'  : function() {
		clearTimeout(actionmenu.finickyTimeout);
		actionmenu.finickyTimeout   = '';
		actionmenu.finickyTimeout   = setTimeout(actionmenu.hideMenuForReal, actionmenu.timeout);
	},//end hideMenu
	
    'hideMenuForReal'   : function( ) {
		$( actionmenu.open ).removeClass('hover');
		actionmenu.finickyTimeout   = '';
		actionmenu.open             = '';
	}//end hideMenuForReal
};//end actionmenu

objectmenu  = {
    'open'  : false,
	
    'init'  : function(){
		$('.menu-div').removeClass('open');
		$('.menu-icon').click(function(){
			if(objectmenu.open) {
				$('.table-menu').removeClass('open');
				objectmenu.open = false;
			} else {
				$('.table-menu').addClass('open');
				objectmenu.open = true;
			}
			
			return false;
		});
		
		$('.menu-icon').hover(function(){
			$('.menu-div').removeClass('open');
			$(this).parents('.table-menu').eq(0).find('.menu-div').addClass('open');
		}, function(){});
	}//end init
};//end objectmenu

/**
 * page init
 */
if(typeof($) != 'undefined') {
	$(document).ready( function() {
	    pagedlist.init();
        objecttable.init();
        actionmenu.init();
        objectmenu.init();
	});//end document.ready
}//end page init