/*
# $Id$
*/

/*
# @namespace GCms.UrlCommand
*/
GCms.UrlCommand = {};

/*
# @function string GCms.UrlCommand.createUrl( string controller, [string action, [array|string params]] )
# controller	= Controller
# action		= Action
# params		= Action parameters
#
# Create URL to access specified controller/action.
*/
GCms.UrlCommand.createUrl = function(controller, action, params) {

	// Vars
	if(params==null) {
		params = [];
	}
	else if(params.push==null) {
		params = [params];
	}
	if(action==null) {
		action = 'index';
	}

	// Generate URL
	var urlPrefix = GCms.Config.get('app.command.urlPrefix');
	var url = GCms.Config.get('app.urlRoot')+'/'+(urlPrefix=='' ? '' : urlPrefix+'/')+controller+'/'+action;
	for(var i=0; i<params.length; i++) {
		//url += '/'+escape(params[i]);
		url += '/'+encodeURIComponent(params[i]);
	}

	// Result
	return url;
}

/*
# @function string GCms.UrlCommand.createAbsoluteUrl( string controller, [string action, [string|array params]] )
# controller	= Controller
# action		= Action
# params		= Action parameters
#
# Create absolute URL to the specified controller/action.
*/
GCms.UrlCommand.createAbsoluteUrl = function(controller, action, params ,pro) {
	if(pro==null){pro='http'}
	// Result
	return pro+"://"+GCms.Config.get('app.domain')+GCms.UrlCommand.createUrl(controller, action, params);
}