	
	// Application & Component Prototype
	
	/*
		Application prototype
	*/
	
	var Application = {
		
		init: function()
		{
			Application.util.init();
			Application.event.init();
			Application.debug.init();
			Application.connect.init();
			Application.effects.init();
			
			// Init Components
			Component.init();
			
			// Init queued functions
			Application.loader.init();
		},
		
		util:
		{
			init: null,
			
			connect:
			{
				init: null,
				
				ajax: null
			},
			
			browserInformation:
			{
				init: null
			},
			
			serialize:
			{
				init: null
			},
			
			style:
			{
				init: null
			},
			
			selectText:
			{
				init: null
			}
		},
		
		event:
		{
			add: null,
			remove: null
		},
		
		loader:
		{
			componentsQueue: [],
			packageQueue: [],
			queueArgs: [],
			
			init: function()
			{
				for(var i in Application.loader.packageQueue)
				{
					if(typeof Application.loader.packageQueue[ i ] != 'object')
					{
						continue;
					}
					
					switch(i)
					{
						case "richText":
							
							Application.widget.richText.init(
													Application.loader.packageQueue[ i ]
												);
							
						break;
						case "button":
							
							Application.widget.button.init(
													Application.loader.packageQueue[ i ]
												);
							
						break;
						case "rotator":
							
							Application.widget.rotator.init(
													Application.loader.packageQueue[ i ]
												);
							
						break;
						default:
							
							Application.debug.addRow({
												text: "Attempting widget load: " + i
											});
							
							(eval( "Application.widget." + i )).init(
																Application.loader.packageQueue[ i ]
															);
							
							Application.debug.addRow({
												text: "Unoptimized widget load: " + i + " done"
											});
					}
				}
				
				for(var i in Application.loader.componentsQueue)
				{
					if(typeof Application.loader.componentsQueue[ i ] != 'object')
					{
						continue;
					}
					
					switch(i)
					{
						case "siteMenu":
							
							Component.siteMenu.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "newsletter":
							
							Component.newsletter.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "recruitment":
							
							Component.recruitment.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "footerMenu":
							
							Component.footerMenu.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "content":
							
							Component.content.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "courses":
							
							Component.courses.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "counceling":
							
							Component.counceling.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "trainings":
							
							Component.trainings.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "pictureRotator":
							
							Component.pictureRotator.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "news":
							
							Component.news.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "contact":
							
							Component.contact.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "users":
							
							Component.users.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "smallPicturesMenu":
							
							Component.smallPicturesMenu.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "mainPicture":
							
							Component.mainPicture.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "misc1":
							
							Component.misc1.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "products":
							
							Component.products.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "imagePlayer":
							
							Component.imagePlayer.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						case "footerCopyright":
							
							Component.footerCopyright.init(
											Application.loader.componentsQueue[ i ]
										);
							
						break;
						default:
							
							Application.debug.addRow({
												text: "Attempting component load: " + i
											});
							
							(eval( "Component." + i )).init(
											Application.loader.componentsQueue[ i ]
										);
							
							Application.debug.addRow({
												text: "Unoptimized component load: " + i + " done"
											});
					}
				}
				
				Application.loader.packageQueue = [];
				Application.loader.componentsQueue = [];
			},
			
			add: function( args )
			{
				if( typeof args.package != 'undefined' )
				{
					var queue = Application.loader.packageQueue;
					
					if( typeof queue[ args.package ] == 'undefined' )
					{
						Application.loader.packageQueue[ args.package ] = [];
					}
					
					Application.loader.packageQueue[ args.package ][
														queue[ args.package ].length
													] = args.initArgs;
					
					return true;
				}
				
				if( typeof args.component != 'undefined' )
				{
					var queue = Application.loader.componentsQueue;
					
					if( typeof queue[ args.component ] == 'undefined' )
					{
						Application.loader.componentsQueue[ args.component ] = [];
					}
					
					Application.loader.componentsQueue[ args.component ][
														queue[ args.component ].length
													] = args.initArgs;
					
					return true;
				}
				
				return false;
			},
			
			remove: function( args )
			{
				
			}
		},
		
		widget:
		{
			
		}
	};
	
	/*
		Component prototype
	*/
	
	var Component = {
		
		init: function()
		{
			
		}
		
	};
	