var uploader = {
	
	count: 0,
	countMax: 6,
	
	init: function() {
		
		this.container = $( 'imageUploader' );
		this.addGroup();
		
	},
	
	addGroup: function() {
		
		if( this.count >= this.countMax ) return;
		
		this.count++;
		
		$( 'imageCount' ).set( 'text', this.count +'/'+ this.countMax );
		
		if( this.count == this.countMax ) {
			$( 'imageCount' ).setStyles( {
				'color': '#900',
				'font-weight': 'bold'
			} );
		}
		
		var group 	= $( 'group_'+ this.count ).setStyle( 'display', 'block' );
		
		group.getElement( 'div[class=reset]' ).hide().getElement( 'a' ).addEvent( 'click', this.resetForm.bindWithEvent( this, group ) );
		group.getElement( 'div[class=loading]' ).hide();
		group.getElement( 'div[class=message]' ).hide();
		
		group.getElement( 'form' ).set( {
			'target': 'iframe_'+ this.count,
			'events': {
				'submit': this.onSubmit.bindWithEvent( this, group )
			}
		} );
		
		var iframe = new IFrame( {
			'src': wwwDocRoot +'scripts/imageUpload.php',
			'name': 'iframe_'+ this.count,
			'id': 'iframe_'+ this.count
		} );
		
		group.adopt( iframe );
		group.store( 'iframe', iframe );
		
		group.inject( this.container );
	
	},
	
	resetForm: function( e, group ) {
		e.stop();
		group.retrieve( 'iframe' ).set( 'src', wwwDocRoot +'scripts/imageUpload.php' );
		group.getElement( 'form' ).show().reset();
		group.getElement( 'div[class=loading]' ).hide();
		group.getElement( 'div[class=reset]' ).hide();
	},
	
	onSubmit: function( e, group ) {
		
		group.getElement( 'div[class=reset]' ).show();
		group.getElement( 'div[class=loading]' ).show();
		group.getElement( 'form' ).hide();
		
		var iframe = group.retrieve( 'iframe' );
		iframe.addEvent( 'load', this.onLoad.bind( this, group ) );
	
	},
	
	onLoad: function( group ) {
		var iframe = group.retrieve( 'iframe' );
		var contents = iframe.contentWindow.document.body.innerHTML;
		var message;
		
		if( contents.contains( 'SUCCESS:' ) ) {
			var value = contents.replace( 'SUCCESS:', '' );
			message = 'Image uploaded successfully.';
			
			$( 'buyStatusTag' ).adopt(
				new Element( 'input', {
					'type': 'hidden',
					'name': 'image[]',
					'value': value
				} )
			);
			
			group.getElement( 'div[class=reset]' ).hide();
		
		} else {
			
			message = contents;
		
		}
		
		group.getElement( 'div[class=loading]' ).hide();
		group.getElement( 'div[class=message]' ).empty().set( 'html', message ).show();
	}
		
	
};

window.addEvent( 'domready', uploader.init.bind( uploader ) );