// on load
window.onload = function()
{
	new Ajax.Request( 'js/newc.js' );
};



// variables
var spos = 1;
var bcount = 23;
var fuform_submiting = $H( { form_first_login: false, form_change_picture: false, form_picture_set: false, form_upload_file11: false, form_upload_file12: false } );
var msie6_bubble_sel = $H( {	bubble1: [ 'fps_slt1', 'fps_slt2', 'fps_slt3', 'fps_slt4', 'ffs_slt1', 'ffs_slt2' ],
							bubble2: [ 'fps_slt1', 'fps_slt2', 'fps_slt3', 'fps_slt4', 'ffs_slt1', 'ffs_slt2' ],
							bubble18: [ 'fps_slt1', 'fps_slt2', 'fps_slt3', 'fps_slt4', 'ffs_slt1', 'ffs_slt2' ] } );
var msie_bubble_hide_ids = $H( { bubble4: [ 'ie_h01' ] } );
var reg_style = 1;



// content load via ajax
function load( url, dest, waitinfo )
{
	dest = $( dest );
	if( !url || !dest ) return;

	if( waitinfo ) dest.update( '<div><img src="images/pino/preloader.gif" /><p class="green">čekejte ...</p></div>' );

	new Ajax.Request( url, { method: 'get', parameters: { rnd: Math.floor( Math.random() / Math.random() * 999999999 ) },

	onSuccess: function( transport )
	{
		load_success( dest, transport.responseText );
	},

	onFailure: function()
	{
		load_failure( dest );
	}

	} );
}



// content load success
function load_success( dest, content )
{
	dest = $( dest );
	if( !dest ) return;

	var return_code = rc_detect( content );
	switch( return_code )
	{
		case 0: dest.update( content ); break;
		case 9999: document.location = 'reset.php'; break;
		default:
			if( return_code > 9000 )
			{
				dest.update( content.substring( 0, content.length - 12 ) );
				rc_handle( return_code );
			}
			else document.location = 'problem.php?idp=' + return_code;
			break;
	}
}



// content load failure
function load_failure( dest )
{
	dest = $( dest );
	if( !dest ) return;

	dest.update( '<div><p class="red">chyba 36</p></div>' );
}



// window scroll
function wscroll()
{
	window.scroll( 0, 0 );
}



// return code detection
function rc_detect( content )
{
	var length = content.length;
	var return_code = 0;
	if( content.endsWith( '*rc*' ) ) return_code = parseInt( content.substring( length - 8, length - 4 ), 10 );
	return return_code;
}



// return code handling
function rc_handle( code )
{
	switch( code )
	{
		case 9001: load( 'php/act.php?id=12', 'my_page', false ); break;
		case 9003: load( 'php/act.php?id=12', 'my_page', false ); bhide( 18 ); break;
		case 9005: load( 'php/act.php?id=12', 'my_page', false ); bhide( 2 ); break;
		case 9007: load( 'php/act.php?id=30', 'content_right', true ); bhide( 6 ); break;
		case 9009: bhide( 6 ); load( 'php/act.php?id=720', 'bubble7', true ); bshow( 7 ); break;
		case 9011: load( 'php/act.php?id=30', 'content_right', true ); bhide( 7 ); break;
		case 9013: bhide( 6 ); load( 'php/act.php?id=724', 'bubble8', true ); bshow( 8 ); break;
		case 9015: load( 'php/act.php?id=30', 'content_right', true ); bhide( 8 ); break;
		case 9017: bhide( 6 ); load( 'php/act.php?id=728', 'bubble9', true ); bshow( 9 ); break;
		case 9019: load( 'php/act.php?id=30', 'content_right', true ); bhide( 9 ); break;
		case 9021: bhide( 6 ); load( 'php/act.php?id=732', 'bubble10', true ); bshow( 10 ); break;
		case 9023: load( 'php/act.php?id=30', 'content_right', true ); bhide( 10 ); break;
		case 9025: window.alert( 'Vaše heslo bylo úspěšně změněno.' ); break;
		case 9027: load( 'php/act.php?id=12', 'my_page', false ); break;
		case 9029: bshow( 11 ); break;
		case 9030: bshow( 12 ); break;
		case 9033: bhide( 15 ); load( 'php/act.php?id=300', 'content_left', true ); break;
		case 9034: bhide( 16 ); load( 'php/act.php?id=300', 'content_left', true ); break;
		case 9035: bhide( 13 ); load( 'php/act.php?id=300', 'content_left', true ); break;
		case 9036: bhide( 14 ); load( 'php/act.php?id=300', 'content_left', true ); break;
		case 9040: bhide( 6 ); load( 'php/act.php?id=746', 'bubble17', true ); bshow( 17 ); break;
		case 9042: load( 'php/act.php?id=30', 'content_right', true ); bhide( 17 ); break;
		case 9045: bhide( 4 ); load( 'php/act.php?id=200', 'content_left', true ); break;
		case 9046: bhide( 5 ); load( 'php/act.php?id=200', 'content_left', true ); break;
		case 9049: bshow( 1 ); break;
		case 9052: window.alert( 'Chyba v zadání: nezadáno jméno!' ); break;
		case 9055: window.alert( 'Chyba v zadání: nezadána mailová adresa!' ); break;
		case 9058: window.alert( 'Chyba v zadání: zadána nevalidní mailová adresa!' ); break;
		case 9061: window.alert( 'OK: doporučující zpráva byla odeslána.' ); break;
		case 9064: window.alert( 'Omlouváme se, ale zprávu s doporučením se nepodařilo odeslat.' ); break;
		case 9067: load( 'php/act.php?id=750', 'bubble21', false, true ); bhide( 21 ); window.alert( 'Omlouváme se, ale zprávu s doporučením se nepodařilo odeslat.' ); break;
		case 9070: load( 'php/act.php?id=750', 'bubble21', false, true ); bhide( 21 ); window.alert( 'OK: doporučující zpráva byla odeslána.' ); break;

		default: break;
	}
}



// form submit via ajax or hidden temporary iframe (forms with file uploads)
function form_submit( form, action, dest, scroll, waitinfo )
{
	form = $( form );
	dest = $( dest );
	if( !form || !action || !dest ) return;

	if( form.getInputs( 'file' ).size() )
	{
		if( fuform_submiting[form.id] ) return;
		fuform_submiting[form.id] = true;

		var div = document.createElement( 'div' );
		document.body.appendChild( div );
		div = $( div );

		var ifr_name = 'ifr'+ Math.floor( Math.random() / Math.random() * 999999999 );
		div.update( '<iframe id="' + ifr_name + '" name="' + ifr_name + '" style="width:0px; height:0px; overflow:hidden; visibility:hidden; display:none;" onload="javascript:move_content( \'' + dest.id + '\', \'' + ifr_name + '\', \'' + form.id + '\' );"></iframe>' );

		form.target = ifr_name;
		form.action = action;
		if( !form.enctype ) form.enctype = 'multipart/form-data';
		form.submit();
	}
	else
	{
		new Ajax.Request( action, { method: form.method, parameters: form.serialize( true ),

		onSuccess: function( transport )
		{
			load_success( dest, transport.responseText );
		},

		onFailure: function()
		{
			load_failure( dest );
		}

 		} );

		if( waitinfo ) dest.update( '<div><img src="images/pino/preloader.gif" /><p class="green">čekejte ...</p></div>' );
	}

	if( scroll ) wscroll();
}



// content of temporary iframe to destination
function move_content( dest, iframe, form )
{
	dest = $( dest );
	iframe = $( iframe );
	form = $( form );
	if( !dest || !iframe ) return;

	if( iframe.contentDocument ) load_success( dest, iframe.contentDocument.body.innerHTML );
	else load_success( dest, iframe.contentWindow.document.body.innerHTML );
	if( form ) form.action = 'javascript:{};';
	fuform_submiting[form.id] = false;
	setTimeout( 'document.body.removeChild( $( \'' + iframe.id + '\' ).parentNode );', 5000 );
}



// bubble hide
function bhide( bid )
{
	var bubble = $( 'bubble' + bid );
	if( !bubble ) return;

	bubble.setStyle( { visibility: 'hidden' } );

	if( msie6 && msie6_bubble_sel[bubble.id] )
		$A( msie6_bubble_sel[bubble.id] ).each( function( elm )
		{
			elm = $( elm );
			if( elm ) elm.setStyle( { visibility: 'visible' } );
		} );

	if( ( msie6 || msie7 ) && msie_bubble_hide_ids[bubble.id] )
		$A( msie_bubble_hide_ids[bubble.id] ).each( function( elm )
		{
			elm = $( elm );
			if( elm ) elm.setStyle( { visibility: 'visible' } );
		} );
}



// bubble show
function bshow( bid )
{
	var bubble = $( 'bubble' + bid );
	if( !bubble ) return;

	var elm;
	$A( $R( 1, bcount ) ).each( function( i )
	{
		elm = $( 'bubble' + i );
		if( elm && elm.getStyle( 'visibility' ) == 'visible' ) bhide( i );
	} );

	if( msie6 && msie6_bubble_sel[bubble.id] )
		$A( msie6_bubble_sel[bubble.id] ).each( function( elm )
		{
			elm = $( elm );
			if( elm ) elm.setStyle( { visibility: 'hidden' } );
		} );

	if( ( msie6 || msie7 ) && msie_bubble_hide_ids[bubble.id] )
		$A( msie_bubble_hide_ids[bubble.id] ).each( function( elm )
		{
			elm = $( elm );
			if( elm ) elm.setStyle( { visibility: 'hidden' } );
		} );

	bubble.setStyle( { visibility: 'visible' } );
	elm = $( $A( bubble.select( 'form' ) ).first() );
	if( elm ) elm.focusFirstElement();
}



// bubble toggle
function btoggle( bid )
{
	var bubble = $( 'bubble' + bid );
	if( !bubble ) return;

	if( bubble.getStyle( 'visibility' ) == 'visible' ) bhide( bid ); else bshow( bid );
}



// right box operations
function rbox( box_id, act, p1 )
{
	var elm = $( 'box_' + box_id );
	if( !elm ) return;

	switch( act )
	{
		// roll
		case 10:
			elm = $( 'box_' + box_id + '_inner' );
			if( !elm ) return;
			load( 'php/act.php?id=40&elm=' + box_id + '&cname=' + elm.className, 'ghost', false );
			elm.toggleClassName( 'show' );
			elm.toggleClassName( 'noshow' );
			break;

		// close
		case 20:
			if( window.confirm( 'Opravdu si přejete zavřít (zrušit) box: ' + p1 + ' ?' ) )
			{
				elm.className = 'noshow';
				load( 'php/act.php?id=38&elm=' + box_id, 'ghost', false );
			}
			break;

		// reload, modify
		case 30:
			load( 'php/act.php?id=' + p1 + '&elm=' + box_id, 'box_' + box_id, true );
			break;

		// move
		case 60:
			load( 'php/act.php?id=46&elm=' + box_id + '&up=' + p1, 'content_right', true );
			break;

		// feed page
		case 50:
//			$A( 'feed_' + box_id + '_prev', 'feed_' + box_id + '_next' ).each( function( elm )
//			{
//				elm = $( elm );
//				if( elm ) elm.setStyle( { visibility: 'hidden' } );
//			} );
			load( 'php/act.php?id=36&elm=' + box_id + '&next=' + p1, 'box_' + box_id, true );
			break;

		default: break;
	}
}



// search
function search()
{
	var form = $( 'form_search' );
	if( !form || !$F( 'fs_query' ) ) return;

	switch( spos )
	{
		case 1:
			form.method = 'get';
			form.action = 'http://www.google.com/search';
			form.target = '_blank';
			form.submit();
			form.action = 'javascript:{};';
			form.target = '';
			break;

		case 2:
			form.method = 'get';
			form.action = 'http://images.google.com/images';
			form.target = '_blank';
			form.submit();
			form.action = 'javascript:{};';
			form.target = '';
			break;

		case 3:
			form.method = 'post';
			form.action = 'php/act.php?id=645';
			form.target = '_blank';
			form.submit();
			form.action = 'javascript:{};';
			form.target = '';
			break;

		default:
			form.method = 'post';
			form_submit( 'form_search', 'php/act.php?id=640&spos=' + spos, 'content_left', false, true );
			break;
	}
}



// commands
function cmd( idc, p1, p2, p3 )
{
	switch( idc )
	{
		case 10: load( 'php/act.php?id=' + p1, 'content_left', false ); break;
		case 11: load( 'php/act.php?id=' + p1, 'content_left', true ); break;
		case 20: load( 'php/act.php?id=' + p1 + '&pos=' + p2, 'content_left', false ); break;
		case 21: load( 'php/act.php?id=' + p1 + '&pos=' + p2, 'content_left', true ); break;
		case 30: load( 'php/act.php?id=' + p1 + '&elm=' + p2, 'content_left', false ); break;
		case 31: load( 'php/act.php?id=' + p1 + '&elm=' + p2, 'content_left', true ); break;
		case 40: load( 'php/act.php?id=' + p1 + '&pos=' + p2 + '&elm=' + p3, 'content_left', false ); break;
		case 41: load( 'php/act.php?id=' + p1 + '&pos=' + p2 + '&elm=' + p3, 'content_left', true ); break;

		case 50: btoggle( p1 ); break;
		case 51: bhide( p1 ); break;
		case 52: bshow( p1 ); break;

		case 200: if( window.confirm( 'Opravdu si přejete odstranit: ' + p1 + ' ?' ) ) load( 'php/act.php?id=218&elm=' + p2, 'content_left', true ); break;
		case 205: if( window.confirm( 'Opravdu si přejete odstranit adresář: ' + p1 + ' ?' ) ) load( 'php/act.php?id=310&pos=' + p2 + '&elm=' + p3, 'content_left', true ); break;
		case 210: if( window.confirm( 'Opravdu si přejete odstranit soubor: ' + p1 + ' ?' ) ) load( 'php/act.php?id=305&pos=' + p2 + '&elm=' + p3, 'content_left', true ); break;
		case 215: spos = p1; load( 'php/act.php?id=11&np=' + p1, 'search_menu', false ); break;
		case 220:
			if( reg_style == p1 ) return;
			$A( [reg_style, p1] ).each( function( elm )
			{
				elm = $( 'reg_style_a' + elm );
				if( elm )
				{
					elm.toggleClassName( 'sel' );
					elm.toggleClassName( 'nosel' );
				}
			} );
			reg_style = p1;
			break;

		case 300: load( 'php/act.php?id=102&rs=' + reg_style, 'content_left', true ); break;
		case 301: form_submit( 'form_register', 'php/act.php?id=105&rs=' + reg_style, 'content_left', true, true ); break;

		default: break;
	}
}

