if ( typeof( SDF_LANG ) == 'undefined' ) {
	 window.SDF_LANG = new Object();
}

String.prototype.replaceAll = function( strTarget, strSubString )
{
	var strText = this.toString();
	var intIndexOfMatch = this.indexOf( strTarget );
	while ( intIndexOfMatch != -1 )
	{
		strText = this.replace( strTarget, strSubString );
		intIndexOfMatch = strText.indexOf( strTarget );
	}
	return( strText );
}

function isArray( obj )
{
	return typeof( obj ) == 'object' && obj.constructor == Array;
}

function sdfReplaceParams( s, params )
{
	if ( params == undefined ) {
		return s;
	}
	if ( isArray( params ) ) 
	{
		for ( var i=0; i<params.length; i++ ) {
			s = s.replaceAll( '%'+(i+1)+'%', params[i] );
		}
	}
	else {
		s = s.replaceAll( '%1%', params );
	}
	return s;
}

function sdfGetText( s, params, cnt )
{
	if ( ! SDF_LANG.hasOwnProperty( s ) ) {
		return sdfReplaceParams( s, params );
	}
	if ( cnt == undefined ) {
		return sdfReplaceParams( SDF_LANG[s], params );
	}
	if ( isArray( SDF_LANG[s] ) ) 
	{
		var pluralFormIndex = sdfGetPluralFormIndex( cnt );
		return SDF_LANG[s].length > pluralFormIndex ? sdfReplaceParams( SDF_LANG[s][pluralFormIndex], params ) : sdfReplaceParams( SDF_LANG[s][0], params );
	}
	return sdfReplaceParams( SDF_LANG[s], params );
}

function sdfUrlTo()
{
	var url = '';
	var controller = '';
	var action = '';
	var view = '.html';
	var anchor = '';
	var id = '';
	var params = {};
	
	var arg = '';
	var firstChar = '';
	for ( i=0; i<arguments.length; i++ ) 
	{
		arg = arguments[i];
		if ( typeof( arg ) == 'object' ) {
			params = arg;
			continue;
		}
		firstChar = typeof(arg)=='string' && ( arg[0] || arg.charAt( 0 ) );
		if ( firstChar == '/' ) {
			url = arg;
		}
		else if ( firstChar >= 'A' && firstChar <= 'Z' ) {
			controller = arg;
		}
		else if ( firstChar >= 'a' && firstChar <= 'z' ) {
			action = arg;
		}
		else if ( /^[0-9]+$/.test( arg ) ) {
			id = arg;
		}
		else if ( firstChar == '.' ) {
			view = arg;
		}
		else if ( firstChar == '#' ) {
			anchor = arg;
		}
	}
	
	if ( ! url ) 
	{
		var p = controller.indexOf( 'C_' );
		if ( p >= 0 ) {
			url = '/'+controller.substr( 0, p )+'/'+controller.substr( p+2 );
		}
		else {
			url = '/'+controller;
		}
		if ( action ) {
			url += '/'+action; 
		}
		if ( id ) {
			url += '/'+id;
		}
		url += view;
	}
	
	if ( params ) 
	{
		var urlParams = '';
		for ( var i in params ) {
			urlParams += ( urlParams ? '&' : '?' ) + encodeURIComponent( i ) + '=' + encodeURIComponent( params[i] ); 
		}
		url += urlParams;
	}
	if ( anchor ) {
		url += anchor;
	}
	return url;
}

// TODO: Удалить это нафиг
SDF_TEST_12345678 = true;
