var activateMenuTab = function ( node, value, params ) {
	try {
		var params = params || {};
		SC.launch( { main_menu: { v: value, c: $pcn( node, "niceBox"), p: "A,BLOCKQUOTE", data: params } } );
	} catch ( e ) { }
};

var activateVTab = function ( node, value ) {
	try {
		SC.launch( { vtab: { v: value, c: $( node ).parentNode.parentNode, p: "childNodes", d: 2 } } );
	} catch ( e ) { }
};

var expandVTab = function ( node, value ) {
	try {
		SC.launch( { vexpand: { v: value, c: $( node ).parentNode.parentNode, p: "childNodes", d: 2 } } );
		if ( !value ) activateVTab( node, 1 );
	} catch ( e ) { }
}; 

var swapInfo = function ( node, value, execOptions ) {
	try {
		var isActive = $matchClassName( node, "active" );

		var scObj = { txtab: { v: (isActive)? "none" : value, c: $( node ).parentNode.parentNode, p: "childNodes", d: 2 } };
		if ( execOptions ) scObj.txtab.data = execOptions;
		SC.launch( scObj );
	} catch ( e ) { }
};

var loadNews = function ( node, id ) {
	try {
		var tmpData = {};
		var container = $pcn( node, "newsItemContainer" );
		SC.launch( 
			{ collect: { c: container, p: "childNodes", data: tmpData } },
 			{ news: { v: id, c: container.parentNode, p: "childNodes" } }
		);
		if ( !tmpData.ntc ) return;
		RM.makeDataRequest( tmpData.ntc, { formAttr: { action: "/a/utils/news.php" }, data: { id: id } } );
	} catch ( e ) { }
};

var CS_loadPage = function ( node, execOptions, args ) {
	try {
		if (args[0] && args[0] == "once" && node.innerHTML != "") return;
		execOptions.cID = node.id;
		RM.makeDataRequest( node, execOptions );
	} catch ( e ) { }
};

var CS_amxBansLogin = function( node, action, e ) {
	try {
		if( e ) { 
			var e = e || window.event;
			var keyCode = e.keyCode;
			if ( keyCode != 13 ) return; 
		};

		var tmpData = {};

		SC.launch ( { collect: { c: $ptn( node, "TABLE" ), p: "INPUT", data: { obj: tmpData } } } );

		tmpData.action = action;

		RM.makeDataRequest( "CS_amxBansLoginResult", { formAttr: { action: "/a/utils/amxbans/login.php", method: "POST" }, data: tmpData } );

	} catch ( e ) { }
};

var CS_amxBansLogout = function() {
	try {

		RM.makeDataRequest( "CS_amxBansLoginResult", { formAttr: { action: "/a/utils/amxbans/logout.php", method: "POST" } } );

	} catch ( e ) { }
};

var CS_openLogBox = function( node, type ) {
	try {

		SC.launch( { popup: { v: type, c: [ $(node).parentNode, "CS_popupBlock" ], p: "childNodes,INPUT" } } );

	} catch ( e ) { }
};


var CS_showBanForm = function ( targetContainer, obj ) {
	try {

		var val = ( typeof obj == "string" )? obj : obj.scVal;
		var tmpData = ( typeof obj == "string" )? {} : obj;

        if ((targetContainer=="CS_offlineBanForm") && (obj=="new"))
            tmpData = {player_id: "STEAM_ID_LAN"};

		var targetContainer = $( targetContainer );

		var cloneNode = $( "CS_banForm").cloneNode(true);
		cloneNode.id = "";
		$clearNodeContent( targetContainer );
		targetContainer.appendChild( cloneNode );

		$clearNodeContent( "CS_banActionResult" );

		SC.launch( 
			{ show: { v: val, c: targetContainer, p: "TR" } }, 
			{ fill: { c: targetContainer, p: "INPUT,SELECT,TEXTAREA", data: tmpData } }
		); 

	} catch ( e ) { }
};
var CS_banSave = function ( node, options, level ) {
	try {

		if ( options && options._confirm_ ) {
			if ( !confirm( options._confirm_ ) ) return;
		};

		var tmpData = {};
		var tmpObj = {};

		var container = ( $matchClassName( node, "formContainer") )? node : $pcn( node, "formContainer" );

		var scObj = { collect: { c: container, p: "INPUT,SELECT,TEXTAREA", data: { obj: tmpData } } };

		var action = "/a/utils/amxbans/ban_admin.php";

		if ( level ) scObj.collect.l = level;
		if ( options && options.l ) scObj.collect.l = options.l;
	
		if ( level == "new" ) {
			action = "/a/utils/amxbans/admin.php?" + obj2url( options );
		};

		SC.launch( 
			scObj, 
			{ collect: { c: container, p: "BLOCKQUOTE", data: tmpObj } }
		); 

		if ( !tmpObj.rc ) return

		RM.makeDataRequest( tmpObj.rc, { formAttr: { action: action, method: "POST" }, data: tmpData } );

	} catch ( e ) { }
};

var clearForm = function ( node ) {
	try {

        var tmpData = {};

        if (node=="CS_offlineBanForm")
            tmpData = {player_id: "STEAM_ID_LAN"};

		var node = $(node);

		var parent = node.parentNode;
		
		$clearNodeContent("globalTrashNode");

		var formNode = document.createElement( "FORM" );

		$("globalTrashNode").appendChild( formNode );

		formNode.appendChild( node );

		formNode.reset();

		parent.appendChild( node );

    	SC.launch( 
			{ fill: { c: node, p: "INPUT", data: tmpData } }
		); 

	} catch ( e ) { }
};

var CS_disableForms = function ( e, containerID, node, val ) {
	try {
		var e = e || window.event;
		var keyCode = e.keyCode;

		if ( keyCode == 13  ){
			CS_amxSearchBan( containerID ); 
			return;
		};
		if ( node.nodeName == "INPUT" && node.type == "checkbox" ) {
			var scVal = ( node.checked != node.defaultChecked )? val : "none";
		}
		else
		{
			var scVal = ( node.value != node.defaultValue )? val : "none";
		};
		SC.launch( { disable: { v: scVal, c: containerID, p: "INPUT" } } );
	} catch ( e ) {}
};

var CS_amxSearchBan = function( ) {
	try {
		var tmpData = {};

		SC.launch( { collect: {  c: "CS_searchForm", p: "INPUT", data: { obj: tmpData } } } );

		RM.makeDataRequest( "CS_banSearchResult", { formAttr: { action: "/a/utils/amxbans/search.php", method: "POST" }, data: tmpData } );

	} catch ( e ) {}

};

var CS_hideBanLists = function ( node, execOptions, scParams ) {
	try {
		SC.launch( { show: { v: scParams[0], c: node.parentNode, p: "childNodes" } } );
	} catch ( e ) {}
};

var NEWS_getNews = function ( node, execOptions ) {
	try {
		if( !execOptions.params ) return;

		var params = $splitGET(execOptions.params);

		if( !params.id ) return;

		var newsID = params.id;

		var stack = new stackManager();
		stack.add( function(){ SC.launch( { click: { v: newsID, c: "NEWS_newsList", p: "A" } } ) }, { cond: function(){ return ( $$( "H3", "NEWS_newsList" ).length > 0 ) } } );
		stack.exec();
	} catch ( e ) {}
};

var CS_searchBan = function ( node, execOptions ) {
	try {
		if( !execOptions.params ) return;

		var params = $splitGET(execOptions.params);

		if( !params.bid ) return;

		var bid = params.bid;

		var stack = new stackManager();
		stack.add( function(){ 
				SC.launch( 
					{ click: { v: "ban_search", c: "FP_banList", p: "childNodes", d: 2 } },
					{ fill: { c: "CS_searchForm", p: "INPUT", data: { bid: bid } } },
					{ click: { v: "search", c: "CS_searchForm", p: "A" } }
				); 
			}, { cond: function(){ return ( $( "CS_searchForm" ) ) } } );
		stack.exec();
	} catch ( e ) {}
};

var CS_liveKick = function( node, userID ) {
	try {

		var tmpData = { };
		var tmpObj = { obj: tmpData };

		SC.launch( { collect: {  c: $ptn( node, "BLOCKQUOTE" ) , p: "childNodes", data: tmpObj } } );

		if( !tmpObj.rc || !tmpData.kick_confirm ) return;

		tmpData.kick = 1;
		tmpData.user_reason = "Server Rules violation";
		tmpData.player_uid = userID;

		//if( !confirm( tmpData.kick_confirm ) ) return;

		RM.makeDataRequest( tmpObj.rc, { formAttr: { action: "/a/utils/amxbans/admin.php?site=ban_add_online", method: "POST" }, data: tmpData } );

	} catch ( e ) {}
};
var CS_liveBan = function( node, scVal ) {
	try {

		var tmpData = { };
		var tmpObj = { obj: tmpData };

		var container = $ptn( node, 'BLOCKQUOTE' );

		SC.launch( { collect: {  c: [container, node.parentNode], p: "childNodes", data: tmpObj } } );

		if( !tmpObj.fc ) return;

		SC.launch( 
			{ players: { v: scVal, c: container, p: 'TR,childNodes' } },
			{ fill: { c: tmpObj.fc, p: "INPUT,SELECT", data: tmpData } }
		);

	} catch ( e ) {}
};

var CS_liveBanAdd = function( node ) {
	try {

		var tmpData = { };
		var tmpObj = { obj: tmpData };

		var container1 = $ptn( node, 'BLOCKQUOTE' );
		var container2 = $ptn( node, 'TABLE' ).parentNode;
		SC.launch( { collect: {  c: container1, p: "childNodes", data: tmpObj } } );
		SC.launch( { collect: {  c: container2, p: "INPUT,SELECT", data: tmpObj } } );

		if( !tmpObj.rc || !tmpData.ban_confirm ) return;

		tmpData.ban = 1;

		//if( !confirm( tmpData.ban_confirm ) ) return;

		RM.makeDataRequest( tmpObj.rc, { formAttr: { action: "/a/utils/amxbans/admin.php?site=ban_add_online", method: "POST" }, data: tmpData } );

	} catch ( e ) {}
};

var CS_loadServerInfo = function ( node, execOptions, args ) {
	try {
		var tmpData = { };

		if ( !args[0] ) return;

		tmpData.sid = args[0];

		if ( args[1] && args[1] == "once" && node.innerHTML != '' ) return; 

		RM.makeDataRequest( node, { cID: args[0], formAttr: { action: "/a/utils/amxbans/srv_info.php", method: "POST" }, data: tmpData } );

	} catch ( e ) {}
};

var CS_getServer = function ( node, execOptions ) {
	try {
		if( !execOptions.params ) return;

		var params = $splitGET(execOptions.params);

		if( !params.sid ) return;

		var sid = params.sid;

		var stack = new stackManager();
		stack.add( function(){ SC.launch( { click: { v: sid, c: "FP_serverList", p: "childNodes", d: 2 } } ) }, { cond: function(){ return ( $( "CS_srvListMark" ) ) } } );
		stack.exec();
	} catch ( e ) {}
};

var remYOffset = function ( alias, clear ) {
	try {
			
		if ( clear ) SC.set( alias, undefined );
		else SC.set( alias, window.pageYOffset || (document.documentElement && document.documentElement.scrollTop) );
			
	} catch ( e ) { return false };
};
var restoreYOffset = function ( alias ) {
	try {
			
		var y = SC.get( alias );
		if ( y ) window.scrollTo( 0, y );
			
	} catch ( e ) { return false };
}

