﻿if (typeof Fivestarday == "undefined" || !Fivestarday) {
    var Fivestarday = {};
}

function addDocument() {
	if(jQuery('#filelist')[0].getStatus() == 'done') {
		jQuery('#filelist').parent().find('.error_text').hide();
		li = jQuery('#filelist').parent().find('li').get(0);
		
		newLi = jQuery(li).clone();
				
		newLi.find('span').text(jQuery('#filelist')[0].getFile());
		
		newLi.data('orgFileName',jQuery('#filelist')[0].getFile());
		newLi.data('newFileName',jQuery('#filelist')[0].getValue());
		
		newLi.show();
		
		jQuery('#filelist').parent().find('ul').append(newLi);
		
		jQuery('.feng_action').find('button').removeAttr('disabled');
	}
	
	if(jQuery('#filelist')[0].getStatus() == 'error') {
		jQuery('#filelist').parent().find('.error_text').show();
		jQuery('.feng_action').find('button').removeAttr('disabled');
	}

	if(jQuery('#filelist')[0].getStatus() == 'uploading') {
		jQuery('.feng_action').find('button').attr('disabled','disabled');
	}
	
}

function removeDocument(docElement) {
	jQuery(docElement).parent().remove();
} 

FutureLab.addNamespace(Fivestarday,'Fivestarday.UI.Forms');

Fivestarday.UI.Forms = {
    initialize : function() {
        var me = this;
        me.updateFileUploads();
    },
    
	updateFileUploads : function () {
		jQuery('input.filereplace').each( function(){
			jQuery(this).replaceWith('<div id="' + this.id +'"><iframe name="' + this.id +'_input" height="23" width="258" id="' + this.id +'_input" src="Controls/documentUpload/documentupload.aspx?id='+ this.id +'" frameborder="0" marginwidth="0" marginheight="0" style="display:block;overflow:hidden;" scrolling="no" allowtransparency="true"></iframe></div>')
						
			addMethods(this.id);
			
			jQuery('#' + this.id).get(0).setStatus('initialized');
		});
	}
};

jQuery(document).ready(function() {
    Fivestarday.UI.Forms.updateFileUploads();
    jQuery('#filelist').bind('statuschange', addDocument);	
}); 

function addMethods(id) {
	jQuery('#' + id).addMethod('setStatus', 
		function(status) {     
			var element = jQuery(this); 
			var _input = jQuery(this).contents().filter('#' + element.attr('id') + '_input');
			var _el;
			
			if(status == 'initialized') {};
			
			if(status == 'error') {
			    
			};
			
			if(status == 'done') {
			    jQuery('#file_name').html(element.get(0).getFile());	    
			};
			
			if(status == 'uploading') {
				if(element.get(0).getFilename().length > 0){
					
					_el = jQuery(this).contents().filter('#' + element.attr('id') + '_input');
					
					for(var i=0;i<window.frames.length;i++) {
					    try {
						    if(window.frames[i].name==_el.attr('name')) {
							    window.frames[i].document.form1.submit();
							    break;
						    }
					    } catch(err) { }
					}
				}
				else{
					//keep old status
					status = element.data('status');
				}
			};

			element.data('status',status);
			element.trigger('statuschange');
		}			
	);
	
	jQuery('#' + id).addMethod('getStatus', 
		function() {     
			var element = jQuery(this);     
			return element.data('status')
		}
	);
	
	jQuery('#' + id).addMethod('getFilename', 
		function() {     
			var element = jQuery(this);
			    
			var _el = jQuery(this).contents().filter('#' + element.attr('id') + '_input');
			var _val;
				
			for(var i=0;i<window.frames.length;i++) {
			    try {   
				    if(window.frames[i].name==_el.attr('name')) {_val =  window.frames[i].document.getElementById('fileUpload').value;break;}
			    } catch(err) {}
			}			
			return _val
		}	
	);
	

	jQuery('#' + id).addMethod('getFile', 
		function() {     
			var element = jQuery(this);
			return element.data('filename'); 
		}
	);

	jQuery('#' + id).addMethod('setFile', 
		function(filename) {     
			var element = jQuery(this); 
			element.data('filename',filename);  
		} 
	);
	
	jQuery('#' + id).addMethod('getValue', 
		function() {     
			var element = jQuery(this);
			return element.data('value'); 
		}
	);

	jQuery('#' + id).addMethod('setValue', 
		function(filename) {     
			var element = jQuery(this); 
			element.data('value',filename);  
		} 
	);
}