//loadFirebugConsole();
var album = new Album();

function Album(){
	var __this = this;
	this.album_create_selector = '#album_create';
	this.form_selector = '#album_form';
	this.album_select_selector = '[name=photoalbum]';
	this.new_photoalbum_selector = '[name=new_photoalbum]';
	this.new_photoalbum_error_selector = '#new_photoalbum_error';
	this.upload_button_div_selector = '#upload_div';
	this.upload_row_selector = '#uploadRowToClone';
	this.upload_row_clone_selector = '.uploadRow';
	this.uploadHolder_selector = '#uploadHolder';
	this.selected_album_selector = '[name=photoalbum]';
	this.submit_selector = '[name=album_submit]';
	this.add_items_holder_selector = '#add_items_to_album_holder';
	this.album_list_holder_selector = '#album_list_holder';
	this.comments_list_holder_selector = '#commentsZebra';	
	this.comment_textarea_selector = 'form[name=add_album_item_comment] textarea';
	this.comments_disable_focus_handler = false;
	
	this.selected_album_id = jQuery.jqURL.get("album");
	this.current_page = jQuery.jqURL.get("page");
	this.album_item_id = jQuery.jqURL.get("album_item_id");
	this.comment_page = jQuery.jqURL.get("comment");
	this.pid = jQuery.jqURL.get("pid");
	// photo or media
	this.UPLOADER_TYPE;
	
	this.debug = false;
	
	// SWFUpload instance
	this.file_types = swfupload_photo_file_types;
	this.file_types_description = swfupload_photo_file_types_description;
	
	this.media_file_types = swfupload_media_file_types;
	this.media_file_types_description = swfupload_media_file_types_description;
	
	this.uploader;
	this.form;
	this.post_url = root_url;
	this.thumbnail_selector = '.thumbnail';
	this.last_page_query_url;
	this.working = false;
	
	this.showUpload = function(){	
		try{
			jQuery(__this.uploadHolder_selector)[0].style.display = 'block';
			jQuery(__this.submit_selector)[0].style.height = 'auto';	
		}catch(ex){
			
		}
	};
	
	/**
	  * Replace progressbar with thumbnail and keywords
	*/
	this.removeUploadedTempObject = function(target_caller){
		try{
			var parent = target_caller.parentNode.parentNode;
			jQuery(parent).animate({opacity: 0.01}, 250, function(){
				jQuery(parent).slideUp(150, function(){											 
					jQuery(parent).remove();	
					__this.updateUploaderStatus();
				});
			});
		}catch(ex){
			if(this.debug) alert('Fel i removeUploadedTempObject: '+ex);	
		}
	}
	/**
	  * Show or hide uploader DIV
	*/
	this.updateUploaderStatus = function(){	
		try{
			if(jQuery(__this.upload_row_clone_selector, jQuery(__this.uploadHolder_selector)[0]).length < 2){
				jQuery(__this.uploadHolder_selector).slideUp(100);	
				jQuery(__this.submit_selector)[0].style.height = 0;	
			}else{
				jQuery(__this.submit_selector)[0].style.height = 'auto';					
			}
		}catch(ex){
			if(this.debug) alert('Fel i updateUploaderStatus: '+ex);	
		}
	}
	
	/**
	  * On upload done for media
	*/
	this.showMedia = function(successful, XMLDocument, fileInfoObj, ImageObject, SWFUploader_fileObj){
		try{
			if(successful){
				var holder = jQuery('#'+SWFUploader_fileObj.id)[0];
				var clone = jQuery(__this.upload_row_selector).clone()[0];	
				clone.removeAttribute('id');
				clone.id = "clone_"+SWFUploader_fileObj.id;
			
				jQuery(holder).replaceWith(clone);
				
				var _clone = jQuery('#'+clone.id)[0];
				jQuery(_clone).slideDown('fast');
				
				// ImgHolder
				if(ImageObject != null){
					ImageObject.width = 75;
					var imgHolder = jQuery('.imgHolder', _clone)[0];
					jQuery(imgHolder).empty();
					jQuery(imgHolder).append(ImageObject);
					jQuery(ImageObject).fadeIn(300);
				}
				
				// fileName
				var fileName = jQuery('.fileName', _clone)[0];
				jQuery(fileName).empty();
				var filename = SWFUploader_fileObj.name;
				if(filename.length > 30) filename = filename.substring(0, 30)+'...';
				jQuery(fileName).append(filename);	
				jQuery('[name^=temp_file_name]', _clone)[0].value = fileInfoObj.attr("filename");
			}else{				
				var holder = jQuery('#'+SWFUploader_fileObj.id)[0];
				var message = '';
				var messages = jQuery("message", XMLDocument);
				
				for(var i=0; i<messages.length; i++){
					message += messages[i].firstChild.data;
					if(i < messages.length) message += "<br />";
				}
				jQuery(holder.firstChild).replaceWith('<div><div class="progressName">'+SWFUploader_fileObj.name+'</div>Det gick inte att spara filen. ' + message + '</div>');
			}			
		}catch(ex){
			if(__this.debug) alert("Fel i showImage:"+ex);				
		}
	}
	
	/**
	  * On upload done for images
	*/
	this.showImage = function(successful, XMLDocument, fileInfoObj, ImageObject, SWFUploader_fileObj){
		try{		
			if(successful){
				var holder = jQuery('#'+SWFUploader_fileObj.id)[0];
				var clone = jQuery(__this.upload_row_selector).clone()[0];	
				clone.removeAttribute('id');
				clone.id = "clone_"+SWFUploader_fileObj.id;
			
				jQuery(holder).replaceWith(clone);
				
				var _clone = jQuery('#'+clone.id)[0];
				jQuery(_clone).slideDown('fast');
				
				// ImgHolder
				ImageObject.width = 75;
				var imgHolder = jQuery('.imgHolder', _clone)[0];
				jQuery(imgHolder).empty();
				jQuery(imgHolder).append(ImageObject);
				jQuery(ImageObject).fadeIn(300);
				
				// fileName
				var fileName = jQuery('.fileName', _clone)[0];
				jQuery(fileName).empty();
				var filename = SWFUploader_fileObj.name;
				if(filename.length > 30) filename = filename.substring(0, 30)+'...';
				jQuery(fileName).append(filename);	
				jQuery('[name^=temp_file_name]', _clone)[0].value = fileInfoObj.attr("filename");
			}else{
				var holder = jQuery('#'+SWFUploader_fileObj.id)[0];
				jQuery(holder.firstChild).replaceWith('<div><div class="progressName">'+SWFUploader_fileObj.name+'</div>Det gick inte att spara filen.</div>');
			}			
		}catch(ex){
			if(__this.debug) alert("Fel i showImage:"+ex);				
		}
	}
	
	/**
	  * Get entries for a specific page
	*/
	this.refreshComments = function(query_params, page_param){
		if(query_params && query_params != "") {
			this.last_page_query_url = query_params;
		} 
		if(page_param && page_param != "") {
			this.last_page_query_url += '&'+page_param;
		}
		try{
			var page = page_param.replace('page=', '');
			this.renderComments(this.last_page_query_url);
		}catch(err){
			if(this.debug) alert("Fel: "+err);	
		}
	}
	this.renderComments = function(query_params){	
		try{
			var url = this.post_url+refresh_album_item_comments;
			if(query_params && query_params != "") url += '&'+query_params;
			refresher.refresh(url, this.comments_list_holder_selector);
		}catch(err){
			if(this.debug) alert("Fel: "+err);	
		}
	}	
	
	this.createAlbum = function(target_caller){
		try{			
			jQuery(this.new_photoalbum_error_selector).hide(200);
			var form = jQuery(this.form_selector)[0];
			var scope = this;
			var data = jQuery(form).serializeArray();
			jQuery.post(this.post_url+album_add_file, data, function (data){
				try{
					var xml = jQuery.textToXML(data);
					var message = '';
					var messages = jQuery("message", xml);
					var successful = jQuery('status', xml).attr('successful');	
					var inserted_id = jQuery('info', xml).attr('inserted_id');
					var photoalbum_name = jQuery('info', xml).attr('photoalbum_name');
					
					for(var i=0; i<messages.length; i++){
						var err = messages[i].firstChild.data;
						var name = jQuery(messages[i]).attr('name');
						message += err;
						if(i < messages.length) message += "<br />";
					}
					
					if(successful === 'true'){
						var _select = jQuery(scope.album_select_selector, form)[0];
						var optgroup = jQuery('optgroup[id=opt_album]', form)[0];
						jQuery(optgroup).append('<option value="'+inserted_id+'">'+photoalbum_name+'</option>');	
						jQuery("[value="+inserted_id+"]", jQuery("optgroup[id=opt_album]", form)[0])[0].selected = true;
						_select.onchange();
						jQuery(scope.new_photoalbum_selector, form)[0].value = "";
						__this.refreshList();
					}else{
						// ERROR	
						jQuery(scope.new_photoalbum_error_selector).empty();
						jQuery(scope.new_photoalbum_error_selector).append(message);
						jQuery(scope.new_photoalbum_error_selector).show(200);
					}
				}catch(err){
					if(__this.debug) alert("Fel i createAlbum: "+err);	
				}
			});	
		}catch(ex){
			if(this.debug) alert('Fel i createAlbum: '+ex);	
		}
	}
	this.selectAlbum = function(_select){
		try{
			var selectedIndex = _select.selectedIndex;
			if(selectedIndex == 0){
				jQuery(this.album_create_selector).show(300, function(){
					jQuery('[type=text]', this)[0].focus();
					jQuery('[type=text]', this)[0].select();
				});
				jQuery(this.upload_button_div_selector).slideUp(100);
			}else{
				jQuery(this.album_create_selector).hide(300);
				jQuery(this.upload_button_div_selector).slideDown(100);
				jQuery(this.new_photoalbum_error_selector).hide(200);
				this.selected_album_id = _select.value;
				this.refreshList();
			}
		}catch(ex){
			if(this.debug) alert('Fel i selectAlbum: '+ex);	
		}
	}
	this.savePhoto = function(form){
		try{
			var _select = jQuery(this.selected_album_selector)[0];
			var selectedIndex = _select.selectedIndex;
			if(selectedIndex > 0){				
				var form = jQuery(this.form_selector)[0];
				var scope = this;
				var data = jQuery(form).serializeArray();
				jQuery('.submit', form).addClass('sending');
			
				jQuery.post(this.post_url+album_upload_save_file, data, function (data){
					try{
						jQuery('.submit', form).removeClass('sending');
						var xml = jQuery.textToXML(data);
						var message = '';
						var messages = jQuery("message", xml);
						var successful = jQuery('status', xml).attr('successful');	
						
						for(var i=0; i<messages.length; i++){
							var err = messages[i].firstChild.data;
							var name = jQuery(messages[i]).attr('name');
							message += err;
							if(i < messages.length) message += "<br />";
						}
						
						if(successful === 'true'){
							//jQuery(__this.uploadHolder_selector).slideUp(350, function(){
								__this.refreshAddList();
								__this.refreshList('', 0);
							//});				
						}else{
							// ERROR	
							jQuery(scope.new_photoalbum_error_selector).empty();
							jQuery(scope.new_photoalbum_error_selector).append(message);
							jQuery(scope.new_photoalbum_error_selector).show(200);
						}
					}catch(err){
						if(__this.debug) alert("Fel i xxxx: "+err);	
					}
				});	
			}else{
				// ERROR	
				jQuery(this.new_photoalbum_error_selector).empty();
				jQuery(this.new_photoalbum_error_selector).append('Vänligen välj ett album.');
				jQuery(this.new_photoalbum_error_selector).show(200);				
			}
		}catch(ex){
			if(this.debug) alert('Fel i savePhoto: '+ex);	
		}
	}
	this.saveMedia = function(form){
		try{				
			var form = jQuery(this.form_selector)[0];
			var scope = this;
			var data = jQuery(form).serializeArray();
			jQuery('.submit', form).addClass('sending');
		
			jQuery.post(this.post_url+album_upload_save_file, data, function (data){
				try{
					jQuery('.submit', form).removeClass('sending');
					var xml = jQuery.textToXML(data);
					var message = '';
					var messages = jQuery("message", xml);
					var successful = jQuery('status', xml).attr('successful');	
					
					for(var i=0; i<messages.length; i++){
						var err = messages[i].firstChild.data;
						var name = jQuery(messages[i]).attr('name');
						message += err;
						if(i < messages.length) message += "<br />";
					}
					
					if(successful === 'true'){
						jQuery(__this.uploadHolder_selector).slideUp(350, function(){
							__this.refreshAddList();
							__this.refreshList('', 0);
						});				
					}else{
						// ERROR	
						jQuery(scope.new_photoalbum_error_selector).empty();
						jQuery(scope.new_photoalbum_error_selector).append(message);
						jQuery(scope.new_photoalbum_error_selector).show(200);
					}
				}catch(err){
					if(__this.debug) alert("Fel i xxxx: "+err);	
				}
			});	
		}catch(ex){
			if(this.debug) alert('Fel i saveMedia: '+ex);	
		}
	}
	this.save = function(form){
		try{
			if(__this.UPLOADER_TYPE != 'media'){
				this.savePhoto(form);
			}else{
				this.saveMedia(form);
			}
		}catch(ex){
			if(this.debug) alert('Fel i save: '+ex);	
		}
	}
	
	/**
	  * Update item keywords/description
	*/
	this.updateItemKeyWords = function(target_caller){
		try{
			var input = jQuery('[name^=item_description]', target_caller.parentNode.parentNode);	
			var errorText = jQuery('.errorText', target_caller.parentNode.parentNode.parentNode)[0];	
			jQuery(errorText).hide(200);
			
			if(input.length > 0){
				var data = jQuery(input).serializeArray();
					
				jQuery.post(this.post_url+album_update_item_keywords_file, data, function (data){
					try{
						var xml = jQuery.textToXML(data);
						var message = '';
						var messages = jQuery("message", xml);
						var successful = jQuery('status', xml).attr('successful');	
						
						for(var i=0; i<messages.length; i++){
							var err = messages[i].firstChild.data;
							var name = jQuery(messages[i]).attr('name');
							message += err;
							if(i < messages.length) message += "<br />";
						}
						if(successful === 'true'){
							__this.refreshList();
						}else{
							// ERROR	
							jQuery(errorText).empty();
							jQuery(errorText).append(message);
							jQuery(errorText).show(200);
						}
					}catch(err){
						if(__this.debug) alert("Fel i updateItemKeyWords: "+err);	
					}
					jQuery('.btnOK', target_caller.parentNode).hide(200);	
				});
			}
		}catch(ex){
			if(this.debug) alert('Fel i updateItemKeyWords: '+ex);	
		}
	}
	
	this.addItemComment = function(target_caller, profile_param) {
		try{
			var input = jQuery('textarea,input', target_caller.parentNode.parentNode);
			var button = jQuery(target_caller);
			var errorText = jQuery('.errorText', target_caller.parentNode.parentNode.parentNode)[0];	
			jQuery(errorText).hide(200);
			button.addClass('sending');
			if(input.length > 0){
				var data = input.serializeArray();
				jQuery.post(this.post_url+album_add_item_comment, data, function (data){
					try{
						button.removeClass('sending');
						var xml = jQuery.textToXML(data);
						var message = '';
						var messages = jQuery("message", xml);
						var successful = jQuery('status', xml).attr('successful');	
						
						for(var i=0; i<messages.length; i++){
							var err = messages[i].firstChild.data;
							var name = jQuery(messages[i]).attr('name');
							message += err;
							if(i < messages.length) message += "<br />";
						}
						if(successful === 'true'){
							jQuery('textarea[name=message]', target_caller.parentNode.parentNode).empty();
							__this.refreshComments(profile_param, album_item_id_param);
						}else{
							// ERROR	
							jQuery(errorText).empty();
							jQuery(errorText).append(message);
							jQuery(errorText).show(200);
						}
					}catch(err){
						if(__this.debug) alert("Fel i addItemComment: "+err);	
					}	
				});
			}
		}catch(ex){
			if(this.debug) alert('Fel i addItemComment: '+ex);	
		}		
	}
	
	this.handleCommentInputFocus = function(target_caller) {
	  if (this.comments_disable_focus_handler) {      
      this.comments_disable_focus_handler = false;
    }	else {
      utilities.hideTip(target_caller);    
    }
  }
	
	this.replyToComment = function(target_caller, profile_param) {
		try{
			var replyToUser = jQuery('a[title]', target_caller.parentNode.parentNode).attr("title");
      this.comments_disable_focus_handler = true;
      jQuery(this.comment_textarea_selector)[0].focus();
      jQuery(this.comment_textarea_selector)[0].value = "Svar till: " + replyToUser + "\n";
		}catch(ex){
			if(this.debug) alert('Fel i addItemComment: '+ex);	
		}		
		return false;
	}	

	this.deleteComment = function(target_caller, profile_param) {
		try{
			var input = jQuery('input', target_caller.parentNode.parentNode);
			var itemId = jQuery('input[name=item_id]')[0].value;
			var errorText = jQuery('.errorText', target_caller.parentNode.parentNode.parentNode)[0];	
			jQuery(errorText).hide(200);
			
			if(input.length > 0){
				var data = input.serializeArray();
					
				jQuery.post(this.post_url+album_delete_item_comment + "?item_id=" + itemId, data, function (data){
					try{
						var xml = jQuery.textToXML(data);
						var message = '';
						var messages = jQuery("message", xml);
						var successful = jQuery('status', xml).attr('successful');	
						
						for(var i=0; i<messages.length; i++){
							var err = messages[i].firstChild.data;
							var name = jQuery(messages[i]).attr('name');
							message += err;
							if(i < messages.length) message += "<br />";
						}
						if(successful === 'true'){
							__this.refreshList(profile_param, null);
							var prnt = utilities.findParentBySelector('div.padd', target_caller);
							jQuery(prnt).animate({opacity:0}, 300);	
							setTimeout(function(){
								__this.refreshList();
							}, 200);							
							
						}else{
							// ERROR	
							jQuery(errorText).empty();
							jQuery(errorText).append(message);
							jQuery(errorText).show(200);
						}
					}catch(err){
						if(__this.debug) alert("Fel i deleteComment: "+err);	
					}
					jQuery('.btnOK', target_caller.parentNode).hide(200);	
				});
			}
		}catch(ex){
			if(this.debug) alert('Fel i deleteComment: '+ex);	
		}		
	}	
	
	/**
	  * Change the "cover picture" of an album and update the album name
	  * Basically the same as updateAlbumName, but this one also updates the cover image id
	*/
	this.saveAlbumInfo = function(target_caller) {
		try{
			var input = jQuery('[name^=photoalbum_name],[name^=photoalbum_picture_id]', target_caller.parentNode.parentNode);
			var inputImageId = jQuery('[name^=album_picture_id]', target_caller.parentNode.parentNode);			
			var errorText = jQuery('.errorText', target_caller.parentNode.parentNode.parentNode)[0];	
			jQuery(errorText).hide(200);
			
			if(input.length > 0){
				var data = jQuery(input).serializeArray();
					
				jQuery.post(this.post_url+album_update_album_info_file, data, function (data){
					try{
						var xml = jQuery.textToXML(data);
						var message = '';
						var messages = jQuery("message", xml);
						var successful = jQuery('status', xml).attr('successful');	
						
						for(var i=0; i<messages.length; i++){
							var err = messages[i].firstChild.data;
							var name = jQuery(messages[i]).attr('name');
							message += err;
							if(i < messages.length) message += "<br />";
						}
						
						if(successful === 'true'){
								__this.refreshAddList();
								__this.refreshList();
						}else{
							// ERROR	
							jQuery(errorText).empty();
							jQuery(errorText).append(message);
							jQuery(errorText).show(200);
						}
					}catch(err){
						if(__this.debug) alert("Fel i updateAlbumName: "+err);	
					}
					jQuery('.btnOK', target_caller.parentNode).hide(200);	
				});
			}
		}catch(ex){
			if(this.debug) {
				alert('Fel i updateAlbumName: '+ex);
			}
		}		
	}	
	
	/**
	  * Change albumname
	*/
	this.updateAlbumName = function(target_caller, can_update_cover_image){
		try{
			var input = jQuery('[name^=photoalbum_name]', target_caller.parentNode.parentNode);	
			var errorText = jQuery('.errorText', target_caller.parentNode.parentNode.parentNode)[0];	
			jQuery(errorText).hide(200);
			
			if(input.length > 0){
				var data = jQuery(input).serializeArray();
					
				jQuery.post(this.post_url+album_update_album_name_file, data, function (data){
					try{
						var xml = jQuery.textToXML(data);
						var message = '';
						var messages = jQuery("message", xml);
						var successful = jQuery('status', xml).attr('successful');	
						
						for(var i=0; i<messages.length; i++){
							var err = messages[i].firstChild.data;
							var name = jQuery(messages[i]).attr('name');
							message += err;
							if(i < messages.length) message += "<br />";
						}
						
						if(successful === 'true'){
								__this.refreshAddList();
								__this.refreshList();
						}else{
							// ERROR	
							jQuery(errorText).empty();
							jQuery(errorText).append(message);
							jQuery(errorText).show(200);
						}
					}catch(err){
						if(__this.debug) alert("Fel i updateAlbumName: "+err);	
					}
					jQuery('.btnOK', target_caller.parentNode).hide(200);	
				});
			}
		}catch(ex){
			if(this.debug) alert('Fel i updateAlbumName: '+ex);	
		}
	}
	/**
	  * Delete album
	*/
	this.deleteAlbum = function(target_caller){
		try{
			var li = utilities.findParentBySelector('li', target_caller);	
			var input = jQuery('[name^=album]', target_caller.parentNode);	
			var errorText = jQuery('.errorText', target_caller.parentNode.parentNode.parentNode.parentNode)[0];	
			jQuery(errorText).hide(200);
			
			if(input.length > 0){
				var data = jQuery(input).serializeArray();
					
				jQuery.post(this.post_url+album_delete_album_file, data, function (data){
					try{
						var xml = jQuery.textToXML(data);
						var message = '';
						var messages = jQuery("message", xml);
						var successful = jQuery('status', xml).attr('successful');	
						
						for(var i=0; i<messages.length; i++){
							var err = messages[i].firstChild.data;
							var name = jQuery(messages[i]).attr('name');
							message += err;
							if(i < messages.length) message += "<br />";
						}
						
						if(successful === 'true'){									
							jQuery(li)[0].style.height = '185px';
							setTimeout(function(){
								jQuery('.input_text_holder', li).remove();	
							}, 100);
							jQuery(li).animate({width:0, opacity:0}, 300);	
							setTimeout(function(){
								__this.refreshAddList();
								__this.refreshList();
							}, 200);
						}else{
							// ERROR	
							jQuery(errorText).empty();
							jQuery(errorText).append(message);
							jQuery(errorText).show(200);
						}
					}catch(err){
						if(__this.debug) alert("Fel i deleteAlbum: "+err);	
					}
				});
			}
		}catch(ex){
			if(this.debug) alert('Fel i deleteAlbum: '+ex);	
		}
	}
	
	/**
	  * Delete album
	*/
	this.deleteItem = function(target_caller){
		try{
			var input = jQuery('[name^=item]', target_caller.parentNode);	
			var errorText = jQuery('.errorText', target_caller.parentNode.parentNode.parentNode)[0];
			jQuery(errorText).hide(200);
			
			if(input.length > 0){
				var data = jQuery(input).serializeArray();
					
				jQuery.post(this.post_url+album_delete_item_file, data, function (data){
					try{
						var xml = jQuery.textToXML(data);
						var message = '';
						var messages = jQuery("message", xml);
						var successful = jQuery('status', xml).attr('successful');	
						
						for(var i=0; i<messages.length; i++){
							var err = messages[i].firstChild.data;
							var name = jQuery(messages[i]).attr('name');
							message += err;
							if(i < messages.length) message += "<br />";
						}
						
						if(successful === 'true'){
							if(__this.UPLOADER_TYPE != 'media'){
								var li = utilities.findParentBySelector('li', target_caller);
								jQuery(li)[0].style.height = '185px';
								setTimeout(function(){
									jQuery('.input_text_holder', li).remove();	
								}, 100);
								jQuery(li).animate({width:0, opacity:0}, 300);	
								setTimeout(function(){
									__this.refreshList();
								}, 200);
							}else{
								var holder = utilities.findParentBySelector('.even,.odd', target_caller);
								jQuery('object,embed', holder).animate({height:0, opacity:0}, 300);	
								setTimeout(function(){
									jQuery('.videoAndSoundElement', holder).animate({width:0, opacity:0, height:0}, 300, function(){	
										holder.style.minHeight = '0';
										jQuery(holder).animate({height:1}, 200);
									});
									setTimeout(function(){
										__this.refreshList();
									}, 200);
								}, 200);
							}
						}else{
							// ERROR	
							jQuery(errorText).empty();
							jQuery(errorText).append(message);
							jQuery(errorText).show(200);
						}
					}catch(err){
						if(__this.debug) alert("Fel i deleteItem: "+err);	
					}
				});
			}
		}catch(ex){
			if(this.debug) alert('Fel i deleteItem: '+ex);	
		}
	}
	
	/**
	  * Refresh albums
	*/
	this.refreshList = function(query, page_param){	
		try{
			if(page_param !== undefined){
				page_param += '';
				var page = parseInt(page_param.replace('page=', ''));
				if(!isNaN(page)) __this.current_page = page;
			}
		}catch(ex){
			if(this.debug) alert('Fel i refreshList: '+ex);	
		}
		
		try{
			var album_id = '&album='+__this.selected_album_id;
			if(album_id.indexOf('undefined') != -1) album_id = '';
			
			var current_page = '&page='+__this.current_page;
			if(current_page.indexOf('undefined') != -1) current_page = '';
			
			var album_item_id = '&album_item_id='+__this.album_item_id;
			if(album_item_id.indexOf('undefined') != -1) album_item_id = '';
			
			if(__this.UPLOADER_TYPE == 'media'){
				var url = __this.post_url+refresh_album_media_item_list+'&pid='+__this.pid+current_page;
				refresher.refresh(url, __this.album_list_holder_selector);	
			} else if (__this.comment_page == '1') {
				var query = 'comment=1' + current_page + album_item_id;
				__this.renderComments(query);
			} else if(album_id == ""){
				var url = __this.post_url+refresh_album_list+'&pid='+__this.pid+current_page;
				refresher.refresh(url, __this.album_list_holder_selector);	
			}else{
				var url = __this.post_url+refresh_album_items+album_id+'&pid='+__this.pid+current_page;
				refresher.refresh(url, __this.album_list_holder_selector);
			}
		}catch(ex){
			if(this.debug) alert('Fel i refreshList: '+ex);	
		}
	}
	/**
	  * Refresh albums
	*/
	this.refreshAddList = function(){
		try{
			var album_id = '&album='+__this.selected_album_id;
			if(album_id.indexOf('undefined') != -1) album_id = '';
			
			var url = __this.post_url+refresh_add_items_to_album+album_id;
			
			if(__this.UPLOADER_TYPE == 'media') url += '&media=1';
			
			refresher.refresh(url, __this.add_items_holder_selector, __this.initSWFUploader);	
		}catch(ex){
			if(this.debug) alert('Fel i refreshAddList: '+ex);	
		}
	}
	
	/**
	  *
	*/
	this.fieldOnChange = function(field, resetvalue){
		if(resetvalue == undefined) resetvalue = false;
		try{
			var parent = field.parentNode.parentNode.parentNode;
			if(field.changed() && !field.empty()){
				jQuery('.btnOK', parent).show(200);
			}else{
				jQuery('.btnOK', parent).hide(200);			
			}
			if(resetvalue){
				field.value = field.default_value;	
			}
		}catch(ex){
			if(this.debug) alert('Fel i fieldOnChange: '+ex);	
		}
	}
	/**
	  * Init SWFUploader object
	*/
	this.initSWFUploader = function(){
		try{
			var form = jQuery(this.form_selector)[0];
			__this.UPLOADER_TYPE = jQuery('[name=UPLOADER_TYPE]', form)[0].value;
		}catch(ex){}
		
		try{
			if(__this.UPLOADER_TYPE != 'media'){
				__this.uploader = new SWFUploader(__this.file_types, __this.file_types_description, 0, __this.showImage, 71, 0	, {
					uploadStart 	: __this.showUpload,
					fileQueueError	: __this.showUpload,
					uploadError		: __this.showUpload
				});	
			}else{
				 __this.uploader = new SWFUploader(__this.media_file_types, __this.media_file_types_description, 0, __this.showMedia, 71, 0	, {
					uploadStart 	: __this.showUpload,
					fileQueueError	: __this.showUpload,
					uploadError		: __this.showUpload
				});	
			}
		}catch(ex){
			if(__this.debug) alert('Fel i ready: '+ex);	
		}
	}
	
	/**
	  * Init SWFUploader object
	*/
	jQuery(document).ready(function(){
		__this.initSWFUploader();
	});
}
