function submitForm( form_id, act, block_id ) {
	requestBlock( $j( 'form#' + form_id ).serialize(), act, block_id );
}

function showHideDhtml( params, act, blockId ) {
	var block = $j( '#' + blockId );
	block.toggle();
	
	if( block.css( 'display') != 'none' ) {
		requestBlock( params, act, blockId );
	}
}

function requestBlock( formdata, act, blockId, preload ) {
	var url = ROOT_URL + 'index.php?';
	if( act != '' ) url += 'act=' + act;
	
	generalRequest( url, formdata, blockId, preload );
}

function generalRequest( url, params, blockId, preload ) {

	if ( url == '' || blockId == '' ) {
		return false;
	}

	// preloader
	if( preload ) {
		showPreloader( blockId );
	}
	
	var requestOptions = {
		url: url,
		type: 'GET',
		data: params,
		success: function ( response ) {
			$j( '#' + blockId ).html( response );
		}
	};

	$j.ajax( requestOptions );
}

function showPreloader( blockId, second ) {
	
	var image = 'preloader.gif';
	if( second ) {
		image = 'preloader2.gif';
	}
	
	$j( '#' + blockId ).html( '<div class="preloader"><img src="' + IMG_URL + 'dec/' + image  + '" style="width:24px; height: 24px;" /></div>' );
}

function showDhtml( id ) {
	dhtml = $( id );
	if( !dhtml ) return;
	
	if( dhtml.style.display == 'none' ) {
		$j( '#' + id ).toggle();
	}
}

function hideDhtml( id, strong ) {
	dhtml = $( id );
	if( !dhtml ) return;
	
	if( dhtml.style.display != 'none' ) {
		if( strong ) {
			$j( '#' + id ).toggle();
		} else {
			$j( '#' + id ).fadeOut( 500 );
		}
		document.onkeyup = "";
	}
}

function showHideManifest( params ) {
	
	if( $( 'manifest' ).style.display == 'none' ) {
		hideDhtml( 'manifest_cont', true );
		showDhtml( 'manifest' );
		$j( '#manifest_cont' ).fadeIn( 500, requestBlock( params, 'js/cell_center/manifest', 'manifest_cont' ) );
	} else {
		$j( '#manifest' ).fadeOut( 500 ); 
		showWebcam();
		document.onkeyup = "";
	}
}

function showPopup( params, act, popup_block_id, popup_container_id ) {
	
	if( $( popup_block_id ) && $( popup_block_id ).style.display == 'none' ) {
		showDhtml( popup_block_id );
	}
	
	hideDhtml( popup_container_id, true );
	$j('#' + popup_container_id).fadeIn( 1000, requestBlock(params, act, popup_container_id ? popup_container_id : popup_block_id));
}

function hidePopup(popup_block_id) {
	hideDhtml(popup_block_id);
}

function changeManifestStatus ( status ) {

	var url = ROOT_URL + 'index.php?act=js/cell_center/manifest/change_status&status=' + Number( status );
	var requestOptions = {
		url: url,
		type: 'GET',
		dataType: 'json',
		success: function ( response ) {
			if( response == 1 ) {
				showHideManifest();
			}
		}
	};
	
	$j.ajax( requestOptions );
}

function showLogin( params ) {
	
	if( $( 'login' ).style.display == 'none' ) {
		showDhtml( 'login' );
	}
	
	hideDhtml( 'login_cont', true );
	$j( '#login_cont' ).fadeIn( 1000, requestBlock( params, 'js/cell_right/login/process', 'login_cont' ) );
	
}

function showRegister( params ) {
	
	if( $( 'login' ).style.display == 'none' ) {
		showDhtml( 'login' );
	}
	
	hideDhtml( 'login_cont', true );
	$j( '#login_cont' ).fadeIn( 1000, requestBlock( params, 'js/cell_right/register', 'login_cont' ) );
	
}

function logoutSiteUser() {
	
	var url = ROOT_URL + 'index.php?act=js/cell_right/logout';
	var requestOptions = {
		url: url,
		type: 'GET',
		success: function ( response ) {
			if( response == 1 ) {
				requestBlock( '', 'js/cell_left/shoutbox', 'shoutbox' );
				requestBlock( '', 'js/cell_right/login', 'login_block' );
				requestBlock( '', 'js/cell_right/sound_machine', 'sound_machine' );
			}
		}
	};
	
	$j.ajax( requestOptions );
}

function logSong( song_id ){
	
	if( !song_id ) return false;
	
	var url = ROOT_URL + 'index.php?act=js/cell_right/sound_machine/log_song&song_id=' + song_id;
	var requestOptions = {
		url: url,
		type: 'GET',
		success: function ( response ) {
			return true;
		}
	};
	
	$j.ajax( requestOptions );
}

function readUrl() {

	url = top.location.href;
	url = url.split( '#' );
	
	if( !url[1] ) return;
	params = url[1].split( '&' );
	
	if( !params ) return;
	
	var regex_topic_id = /topic_id=/;
	var regex_for_press = /for_press/;
	
	for( var idx in params ) {
		if( params[idx].match( regex_topic_id ) ) {
			topic_id = params[idx].split( '=' );
			if( topic_id[1] ) {
				if( $( 'manifest' ).style.display == 'none' ) {
					requestBlock( { 'topic_id' : topic_id[1], 'scroll' : '1' }, 'js/cell_center/blog/topic', 'cell_center', true );
				} else {
					requestBlock( { 'topic_id' : topic_id[1] }, 'js/cell_center/blog/topic', 'cell_center', true );
				}
			}
		}
		if( params[idx].match( regex_for_press ) ) {
			if( $( 'manifest' ).style.display == 'none' ) {
				requestBlock( { 'scroll' : '1' }, 'js/cell_center/for_press', 'cell_center', true );
			} else {
				requestBlock( {}, 'js/cell_center/for_press', 'cell_center', true );
			}
		}
	}
}

function rewriteUrl( new_url ) {
	url = '#';
	if( new_url ) url+= new_url;
	top.location.href = url;
}