IDidItInterface = {	
	ClickActions: {
		defaultaction: function(e) {
			if (canvaselement.selected) {
				var target = getTarget(e, 'a');
				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true);
			}
		},

		but_favs_photoshow: function(e) {
			var target = getTarget(e, 'a');
			IDidItInterface.loadContent(target.href, true, IDidItInterface.favs_photoshow_Callback);
		},

		but_photo_view: function(e) {
			if(canvaselement.selected) {
				var target = getTarget(e, 'a');
				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true, IDidItInterface.photo_view_Callback);
			}
		},

		but_photo_edit: function(e) {
			if(canvaselement.selected) {
				var target = getTarget(e, 'a');
				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true, IDidItInterface.media_edit_Callback);
			}
		},

		but_photo_filter: function(e) {
			if (canvaselement.selected) {
				var target = getTarget(e, 'a');
				var args = {};
				args.target = target;
				args.ID = canvaselement.selected._ID;

				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true, function() { IDidItInterface.but_do_filter_Callback(args) });
			}
		},

		but_photo_download: function(e) {
			if (canvaselement.selected) {
				var target = getTarget(e, 'a');
				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true, IDidItInterface.photodownload_Callback);
			}
		},

		but_video_download: function() {
			if (canvaselement.selected)
				IDidItInterface.downloadItem(canvaselement.selected);
		},

		but_photo_delete: function() {
			if(canvaselement.selected && canvaselement.selected.deletable) {
				CanvasAjax.deleteItem(canvaselement.selected);
				canvaselement.delImage(canvaselement.selected);
				IDidItInterface.updateTopMenu(canvaselement.selected, false);
				canvaselement.selected = null;
				if (YAHOO.env.ua.ie <= 0) 
					canvaselement.renderAll();
			}
		},

		but_photoshow_delete: function() {
			if(canvaselement.selected && canvaselement.selected.deletable) {
				CanvasAjax.deleteItem(canvaselement.selected);
				canvaselement.delImage(canvaselement.selected);
				IDidItInterface.updateTopMenu(canvaselement.selected, false);
				canvaselement.selected = null;
				if (YAHOO.env.ua.ie <= 0)
					canvaselement.renderAll();
			}
		},

		but_photo_share: function(e) {
			if (canvaselement.selected) {
				var target = getTarget(e, 'a');
				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true, IDidItInterface.photoexport_Callback);
			}
		},

		but_photoshow_share: function(e) {
			if (canvaselement.selected) {
				var target = getTarget(e, 'a');
				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true, IDidItInterface.photoshowexport_Callback);
			}
		},

		but_video_play: function(e) {
			if (canvaselement.selected) {
				var target = getTarget(e, 'a');
				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true, IDidItInterface.videoplay_Callback);
			}
		},

		but_video_edit: function(e) {
			if(canvaselement.selected) {
				var target = getTarget(e, 'a');
				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true, IDidItInterface.media_edit_Callback);
			}
		},

		but_video_share: function(e) {
			if (canvaselement.selected) {
				if(!canvaselement.selected || canvaselement.selected.elementtype != 'video') {
					alert('Please select a video to share');
					return;
				}
				var target = getTarget(e, 'a');	
				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true, IDidItInterface.videoexport_Callback);
			}
		},

		but_photoshow_view: function(e) {
			if(canvaselement.selected) {
				var target = getTarget(e, 'a');
				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true, IDidItInterface.photoshow_view_Callback);
			}
		},

		but_photoshow_edit: function(e) {
			if(canvaselement.selected) {
				var target = getTarget(e, 'a');
				IDidItInterface.loadContent(target.href.replace('_ID_', canvaselement.selected._ID), true, IDidItInterface.media_edit_Callback);
			}
		},

		but_create_photoshow: function() {
			IDidItInterface.updateTopMenu(canvaselement.selected, false);
			var backtocanvas = YS.query('div.back-to-proof');
			// Hide back button, because user won't be able to see their latest Photoshow if they finish one
			for(var i=0; i<backtocanvas.length; i++) {
				backtocanvas[i].style.display = 'none';
			}
			IDidItInterface.loadContent("MediaPhotoshow/add/", true, IDidItInterface.photoshow_Callback);
		},

		but_logout: function() {
			window.location = "user/logout";
		}
	},

	initLoad: function() {
		var pagelinks = YS.query('.contentlink');

		for(var i=0; i < pagelinks.length; i++) {
			var actionname = pagelinks[i].id;
			if(actionname in this.ClickActions)
	 			YE.addListener(pagelinks[i], "click", this.ClickActions[actionname]);
	 		else 
				YE.addListener(pagelinks[i], "click", this.ClickActions.defaultaction);
		}
		
		// right column links
		if (document.getElementById('share-photos-link')) YE.addListener(document.getElementById('share-photos-link'), "click", this.ClickActions['but_photo_share']);
		if (document.getElementById('share-videos-link')) YE.addListener(document.getElementById('share-videos-link'), "click", this.ClickActions['but_video_share']);
		
		document.body.setAttribute('onselectstart', 'return false');
		var content = YD.get('content');

		if(content) {
			var regexp = /#.+#/;
			var matches = regexp.exec(content.innerHTML)
			if(matches && matches[0] != '')  {
				var url = matches[0].replace('#', '', 'g');
				
				if(url.search(/MediaVideo\/view/) >= 0) {
					var id = url.replace('MediaVideo/view/', '', 'g');
					this.loadContent(url, true, this.videoplay_Callback);
				} else if(url.search(/MediaPhoto\/view/) >= 0) {
					var id = url.replace('MediaPhoto/view/', '', 'g');
					this.loadContent(url, true, this.photo_view_Callback, url.replace(/MediaPhoto\/view\//, ''));
				} else {
					var id = url.replace('MediaPhotoshow/view/', '', 'g');								
					this.loadContent(url, true);
				}
				
				for(var i = 0; i < canvaselement._aImages.length; i++) {
					if(canvaselement._aImages[i]._ID == id)
						canvaselement.selected = canvaselement._aImages[i];
				}
			}
		}
		
		this.facebookFormHandler();
	},

	facebookFormHandler: function() {
		var FacebookForm = YD.get('Form_FacebookForm');
		
		var ajaxSubmit = function(e) {
			//alert('yass!');
			var formObject = (e.srcElement) ? e.srcElement : e.target;
			CanvasAjax.facebookForm_submit(formObject);
		}
 
		if(FacebookForm) {
			FacebookForm.setAttribute('onsubmit', 'return false;');
			YE.addListener(FacebookForm, 'submit', ajaxSubmit);
		}
	},
	
	updateTopMenu: function(oImg, show) {
		if(oImg) {
			var menuel = false;
			switch(oImg.elementtype) {
				case 'image':
					menuel = document.getElementById('photomenu');
					var deleteel = YD.get('but_photo_delete');
					if(deleteel) {
						var liel = deleteel.parentNode;
						if(oImg.deletable)
							YD.removeClass(liel, 'hidden');
						else
							YD.addClass(liel, 'hidden');
							
					}
					
					var editel = YD.get('but_photo_edit');
					if(editel) {
						var liel2 = editel.parentNode;
						if(oImg.promotional)
							YD.addClass(liel2, 'hidden');
						else
							YD.removeClass(liel2, 'hidden');
					}
					break;
				case 'video':
					menuel = document.getElementById('videomenu');
					break;
				case 'photoshow':
					menuel = document.getElementById('photoshowmenu');
					break;
				default:
					break;
			}

			if(menuel) {
				if(show)
					YD.removeClass(menuel, 'hidden');
				else
					YD.addClass(menuel, 'hidden');
			}
		}
	},
	
	showCanvas: function() {
		var canvascontainer = YD.get('canvas_c');
		if(canvascontainer)
			YD.removeClass(canvascontainer, 'hidden');
			
		var leftdiv = YD.getElementsByClassName('left', 'div');
		if(leftdiv)
			YD.addClass(leftdiv, 'leftforcanvas');
	},
	
	hideCanvas: function() {
		var canvascontainer = YD.get('canvas_c');
		if(canvascontainer)
			YD.addClass(canvascontainer, 'hidden');
		
		var leftdiv = YD.getElementsByClassName('left', 'div');
		if(leftdiv)
			YD.removeClass(leftdiv, 'leftforcanvas');
	},
	
	switchToDiv: function(container, content) {
		if(!container)
			return false;

		this.hideCanvas();

		YD.removeClass(container, 'hidden');

		var backtocanvas = YS.query('div.back-to-proof', container);
		for(var i=0; i<backtocanvas.length; i++) {
			var me = this;
			YE.addListener(backtocanvas[i], 'click', function(e) { me.switchToCanvas(container, content) });
		}
	},
	
	switchToCanvas: function(container, content) {
		this.showCanvas();
		
		if(container)
			YD.addClass(container, 'hidden');
		
		var backtocanvas = YS.query('div.back-to-proof', container);
		for(var i=0; i<backtocanvas.length; i++) {
			YE.removeListener(backtocanvas, 'click');
		} 
	},
	
	loadContent: function(URL, loading, callback, args) {
		var container = YD.get('content_c');
		var content = YD.get('content');
		var errorcontainer = YD.get('error_c');
		var errorcontent = YD.get('errorcontent');
		
		if(!container || !content || !errorcontainer) 
			return false;
	 	
	 	if(loading) {
			var loadingcontainer = YD.get('loading_c');
			this.hideCanvas();
			YD.removeClass(loadingcontainer, 'hidden');
		 	
		 	me = this;
		 	var successLoadContent = function(o) {
		 		YD.addClass(loadingcontainer, 'hidden');
		 		content.innerHTML = o.responseText;
				me.switchToDiv(container, content);

				if(callback)
					callback(args);
		 	};
		 	
		  	var failureLoadContent = function(o) {
		 		YD.addClass(loadingcontainer, 'hidden');
				me.switchToDiv(errorcontainer, errorcontent);			
	 		};
	 	} else {
		 	me = this;
		 	var successLoadContent = function(o) {
		 		content.innerHTML = o.responseText;
				me.switchToDiv(container, content);
				
				if(callback)
					callback();	
		 	};
		  	
		  	var failureLoadContent = function(o) {
				me.switchToDiv(errorcontainer, errorcontent);
	 		};
	 	}

		var loadContentCallback = {
			success: successLoadContent,
			failure: failureLoadContent
		};
		
		// Scroll back to top so we can see any messages
		scroll(0,0);
		
		YAHOO.util.Connect.asyncRequest('POST', URL, loadContentCallback);
	},

	dropDownMenu: function(ID, menuname) {
	 	var menudiv = YD.get(menuname);
	 		
	 	if(menudiv) {
	 		YD.removeClass(menudiv, 'hidden');
	 		var links = YS.query('ul li a', menudiv);
	 	} else
	 		return false; 

		me = this;
		var onMenuClick = function(e) {
			var target = getTarget(e, 'a');
			
			var functionname = target.id + '_Callback'; 
			if(functionname in me) 
	 			callback = me[functionname];
	 		else
	 			callback = function() {return true;};
	 			
	 		var args = {ID: ID, target: target};
			
			me.loadContent(target.href.replace('_ID_', ID), true, callback, args);
		};

		for(var i=0; i<links.length; i++) {
			YE.removeListener(links[i]);
			YE.addListener(links[i], 'click', onMenuClick);
		}
	},

	downloadItem: function (oImg) {
		if(downloadFrame = document.getElementById('downloadIframe')) {
			downloadFrame.src="Media/download/"+oImg._ID;
		} else {
			downloadFrame=document.createElement("iframe");
			downloadFrame.name="downloadIframe";
			downloadFrame.id="downloadIframe";
			downloadFrame.setAttribute('width', '0px', null);
			downloadFrame.setAttribute('height', '0px', null);
			downloadFrame.src="Media/download/"+oImg._ID;
			document.body.appendChild(downloadFrame);
		}
	},
	
	do_crop_Callback: function(args) {
		var cropMoveHandler = function (e, args) {
			var results = YD.get('crop_copy_div');
			var res_img = YD.get('crop_copy_img');
			var img = YD.get('crop_orig_img');
			var origwidth = img.width;
			var origheight = img.height;
			var region = args.crop.getCropCoords();
			var env = YD.get('crop_copy_env');
			
			if (origwidth/region.width > origheight/region.height) {
				res_img.style.width = origwidth*(origheight/region.height) + 'px';
				res_img.style.height = origheight*(origheight/region.height) + 'px';
				res_img.style.top = '-' + region.top*(origheight/region.height) + 'px';
				res_img.style.left = '-' + region.left*(origheight/region.height) + 'px';
				results.style.width = region.width*(origheight/region.height) + 'px';
				results.style.height = origheight + 'px';
			} else {
				res_img.style.width = origwidth*(origwidth/region.width) + 'px';
				res_img.style.height = origheight*(origwidth/region.width) + 'px';
				res_img.style.top = '-' + region.top*(origwidth/region.width) + 'px';
				res_img.style.left = '-' + region.left*(origwidth/region.width) + 'px';
				results.style.width = origwidth + 'px';
				results.style.height = region.height*(origwidth/region.width) + 'px';
			}
			
			env.style.width = origwidth + 'px';
			env.style.height = origheight + 'px';
		};
		
		var doCrop = function (e, args) {
			IDidItInterface.disableSubmit(YD.get('cropbutton'));
			CanvasAjax.cropImage(args.ID, args.crop.getCropCoords(), args.callback);
		};		
		
		var cropCallback = function(response) {
			if(response) {
				img = new Image();
				img.src = response.Thumbnail;
				YD.addClass(img, 'mediaitem');
				YD.addClass(img, 'canvas-image');
				YD.addClass(img, 'deletable');
				if (img.height > img.width)
					YD.addClass(img, 'portrait');
				else
					YD.addClass(img, 'landscape');
				img.setAttribute('id', 'mediaitem_' + response.ID);
				var freeitems = YS.query('#hiddenimages div ul');
				
				var liel = document.createElement('li');
				YD.addClass(liel, 'image');
				YD.addClass(liel, 'item');
				freeitems[0].insertBefore(liel, freeitems[0].firstChild);
				liel.appendChild(img);
				
				img.onload = function() {
					if((YAHOO.env.ua.ie <= 0)) {
						newImage = new Canvas.Img(img, response.ID, {scalex: 100/img.width, scaley: 100/img.width}, true);
						canvaselement.addImage(newImage, "image");
						canvaselement.renderAll();
					}
					
					YE.addListener(img, "click", ImageClickHandler);
					IDidItInterface.switchToCanvas(YD.get('content_c'), YD.get('content'));
				};
			} else {
				var content = YD.get('content');
				content.innerHTML = "<div class='error'>There was an error processing your request. Please retry later.</div>";
			}
		}
		
		var crop = new YAHOO.widget.ImageCropper('crop_orig_img');
		crop.on('moveEvent', cropMoveHandler, {crop: crop});
		
		cropMoveHandler(null, {crop: crop});
		
		args.crop = crop;
		args.callback = cropCallback;
		var cropbutton = YD.get('cropbutton');
		if(cropbutton)
			YE.addListener(cropbutton, 'click', function(e) {doCrop(e, args)});
	},

	loadContentForFilter: function(URL, callback, args) {
		var container = YD.get('innercontent_c');
		var content = YD.get('innercontent');
		var errorcontainer = YD.get('error_c');
		var errorcontent = YD.get('errorcontent');

		if(!container || !content || !errorcontainer) 
			return false;

		var loadingcontainer = YD.get('innerloading_c');
		YD.addClass(container, 'hidden');
		YD.removeClass(loadingcontainer, 'hidden');

	 	me = this;
	 	var successLoadContent = function(o) {
	 		YD.addClass(loadingcontainer, 'hidden');
	 		var oldli = YS.query('li.on');
	 		if(oldli)
	 			YD.removeClass(oldli, 'on');
	 		YD.addClass(args.li, 'on');
	 		
	 		content.innerHTML = o.responseText;
	 		YD.removeClass(container, 'hidden');
			
			if(callback)
				callback(args);		
	 	};

	  	var failureLoadContent = function(o) {
	 		YD.addClass(loadingcontainer, 'hidden');
			YD.removeClass(errorcontainer, 'hidden');			
 		};

		var loadContentCallback = {
			success: successLoadContent, 
			failure: failureLoadContent
		};

		YAHOO.util.Connect.asyncRequest('POST', URL, loadContentCallback);
	},

	but_do_filter_Callback: function(args) {
		var links = YS.query('div.filter_selector ul li a');
		
		var selectorCallback = function(e) {
			if (canvaselement.selected) {
				var target = getTarget(e, 'a');
				args.target = target;
				args.li = target.parentNode;
				if(args.target.id == 'but_photo_crop') {
					IDidItInterface.loadContentForFilter(
						target.href.replace('_ID_', canvaselement.selected._ID), 
						function(o) { IDidItInterface.do_crop_Callback(args) }, 
						args
					);
				} else {
					IDidItInterface.loadContentForFilter(
						target.href.replace('_ID_', canvaselement.selected._ID), 
						function(o) { IDidItInterface.do_filter_Callback(args) }, 
						args
					);				
				}
			}
		}		
		
		for(var i=0; i < links.length; i++) {
			YE.addListener(links[i], 'click', selectorCallback);
		}
		
		args.target = YD.get('but_photo_crop');
		args.li = args.target.parentNode;
		IDidItInterface.loadContentForFilter(
			args.target.href.replace('_ID_', canvaselement.selected._ID), 
			function(o) { IDidItInterface.do_crop_Callback(args) }, 
			args
		);		
	},
	
	do_filter_Callback: function(args) {
		var doFilter = function (e, args) {
			IDidItInterface.disableSubmit(YD.get(args.filter + 'button'));
			CanvasAjax.filterImage(args.ID, args.filter, args.callback);
		};
		
		var filterCallback = function(response) {
			if(response) {
				img = new Image();
				img.src = response.Thumbnail;
				YD.addClass(img, 'mediaitem');
				YD.addClass(img, 'canvas-image');
				YD.addClass(img, 'deletable');
				if (img.height > img.width)
					YD.addClass(img, 'portrait');
				else
					YD.addClass(img, 'landscape');
				img.setAttribute('id', 'mediaitem_' + response.ID);
				var freeitems = YS.query('#hiddenimages div ul');
				
				var liel = document.createElement('li');
				YD.addClass(liel, 'image');
				YD.addClass(liel, 'item');
				freeitems[0].insertBefore(liel, freeitems[0].firstChild);
				liel.appendChild(img);
				
				
				img.onload = function() {
					if((YAHOO.env.ua.ie <= 0)) {
						newImage = new Canvas.Img(img, response.ID, {scalex: 100/img.width, scaley: 100/img.width}, true);
						canvaselement.addImage(newImage, "image");
						canvaselement.renderAll();
					}
					
					YE.addListener(img, "click", ImageClickHandler);
					IDidItInterface.switchToCanvas(YD.get('content_c'), YD.get('content'));
				};
			} else {
				var content = YD.get('content');
				content.innerHTML = "<div class='error'>There was an error processing your request. Please retry later.</div>";
			}
		}
		
		var pattern = /filter=.*&/;
		var tmp = args.target.href.match(pattern);

		if(tmp && tmp.length == 1) 
			args.filter = tmp[0].replace('filter=', '').replace('&', '');
		else
			return false;

		args.callback = filterCallback;
		var filterbutton = YD.get(args.filter + 'button');
		if(filterbutton)
			YE.addListener(filterbutton, 'click', function(e) {doFilter(e, args)});
	}, 
	
	photoshow_Callback: function(args) {
    var psConfig = {
        postShow: baseURL  + 'MediaPhotoshow/postShow',
        userId: userID,
        getAlbum: baseURL  +  'MediaPhotoshow/getAlbum',
        getAlbumList: baseURL  +  'MediaPhotoshow/getAlbumList', 
        viewerWidth: 400, 
        divId: 'photoshowcreator'
    }
    
    PhotoShow.widgets.embedMakePhotoShow('wf8nqfs5hx8cj9b4nchsnsd9493ageg6', psConfig);
	},

	photoexport_Callback: function(args) {
		YAHOO.example.DDApp.init(YAHOO.example.DDApp);
		
		for (var i=0; i < document.exporterlist.service.length; i++) {
			if (document.exporterlist.service[i].value == 'Mail_Service') {
				YAHOO.util.Event.on(document.exporterlist.service[i], "click", function() {
					IDidItInterface.photoexport_ToggleSteps('hide')
				});
			} else {
				YAHOO.util.Event.on(document.exporterlist.service[i], "click", function() {
					IDidItInterface.photoexport_ToggleSteps('show')
				});
			}
		}
	},

	photodownload_Callback: function(args) {
		YAHOO.example.PhotoDownload.init();
	},
	
	photoexport_ToggleSteps: function(state) {
		if (state == 'hide') {
			YD.addClass(YD.get('step2'), 'hidden');
		} else {
			YD.removeClass(YD.get('step2'), 'hidden');
		}
	},
	
	videoexport_Callback: function(args) {
		var doSubmit = function() {
			for (var i=0; i < document.exporterlist.service.length; i++) {
				if (document.exporterlist.service[i].checked) {
					var rad_val = document.exporterlist.service[i].value;
				}
			}
			
			var args = {};
			args.service = rad_val;
			
			IDidItInterface.videoexport_Submit(args);
		}
		
		
		YAHOO.util.Event.on("media_video_export_button", "click", doSubmit);
	},

	photoshowexport_Callback: function(args) {
		var doSubmit = function() {
		if (document.exporterlist.service[0]){
			for (var i=0; i < document.exporterlist.service.length; i++) {
				if (document.exporterlist.service[i].checked) {
					var rad_val = document.exporterlist.service[i].value;
				}
			}
		}
		else{
			var rad_val = document.exporterlist.service.value;
		}
			var args = {};
			args.service = rad_val;
			
			IDidItInterface.photoshowexport_Submit(args);
		}

		YAHOO.util.Event.on("media_photoshow_export_button", "click", doSubmit);
	},

	photoshowexport_Submit: function(args) {
		service = args.service;
		var ajaxcallback = function(response) {		
			if(response) {
				var url = 'exporter/export/MediaPhotoshow/' + response.ID + '?service=' + service;
				IDidItInterface.loadContent(url, true);
			} else {
				var content = YD.get('content');
				content.innerHTML = "<div class='error'>There was an error processing your request. Please retry later.</div>";
			}
		}
		
		args.callback = ajaxcallback;
		
		CanvasAjax.photoshowExport(args.service, args.callback);
	},
	
	photoexport_Submit: function(args) {
		service = args.service;
		var ajaxcallback = function(response) {
			if(response) {
				var url = 'exporter/export/MediaCollection/' + response.ID + '?service=' + service;
				IDidItInterface.loadContent(url, true, IDidItInterface.photoexport_authFormCallback);
			} else {
				var content = YD.get('content');
				content.innerHTML = "<div class='error'>There was an error processing your request. Please retry later.</div>";
			}
		}
		
		args.callback = ajaxcallback;
		
		CanvasAjax.photoExport(args.order, args.service, args.callback);
	},
	
	photodownload_Submit: function(args) {
		var callback = function() {
			if (YAHOO.env.ua.ie <= 0)
				document.location = document.getElementsByTagName("base")[0].href + 'MediaPhoto/doDownload/';
		}
 		var paramstring = "items=" + args.order + "&ie=" + YAHOO.env.ua.ie;
		IDidItInterface.loadContent('MediaPhoto/startDownload/?' + paramstring, true, callback);
	},
	
	videoexport_Submit: function(args) {
		service = args.service;
		
		var ajaxcallback = function(response) {		
			if(response) {
				var url = 'exporter/export/MediaVideo/' + response.ID + '?service=' + service;
				IDidItInterface.loadContent(url, true, IDidItInterface.videoexport_authFormCallback);
			} else {
				var content = YD.get('content');
				content.innerHTML = "<div class='error'>There was an error processing your request. Please retry later.</div>";
			}
		}
		
		args.callback = ajaxcallback;
		CanvasAjax.videoExport(args.service, args.callback);
	}, 
	
	photoexport_authFormCallback: function(args) {
		var exportForm = YD.get('Form_AuthenticationForm');
		
		var ajaxSubmit = function(e) {
			var formObject = (e.srcElement) ? e.srcElement : e.target;
			
			CanvasAjax.photoExport_submit(formObject);			
			return false;
		}
 
		if(exportForm) {
			exportForm.setAttribute('onsubmit', 'return false;');
			YE.addListener(exportForm, 'submit', ajaxSubmit);
		}
	},
	
	photodownload_authFormCallback: function(args) {
		var exportForm = YD.get('Form_AuthenticationForm');
		
		var ajaxSubmit = function(e) {
			var formObject = (e.srcElement) ? e.srcElement : e.target;
			
			CanvasAjax.photoExport_submit(formObject);			
			return false;
		}
 
		if(exportForm) {
			exportForm.setAttribute('onsubmit', 'return false;');
			YE.addListener(exportForm, 'submit', ajaxSubmit);
		}
	},
	
	videoexport_authFormCallback: function(args) {
		var exportForm = YD.get('Form_AuthenticationForm');

		var ajaxSubmit = function(e) {
			var formObject = (e.srcElement) ? e.srcElement : e.target;
			CanvasAjax.videoExport_submit(formObject);	
			return false;	
		}
 
		if(exportForm) {
			exportForm.setAttribute('onsubmit', 'return false');
			YE.addListener(exportForm, 'submit', ajaxSubmit);
		}
	},

	photoshowexport_authFormCallback: function(args) {
		var exportForm = YD.get('Form_AuthenticationForm');

		var ajaxSubmit = function(e) {
			var formObject = (e.srcElement) ? e.srcElement : e.target;
			CanvasAjax.videoExport_submit(formObject);		
			return false;
		}
 
		if(exportForm) {
			exportForm.setAttribute('onsubmit', 'return false');
			YE.addListener(exportForm, 'submit', ajaxSubmit);
		}
	},
	
	commentFormCheck: function(form) {
		
		var message = "";
		
		if(form.Name.value == "")
			message += "You must enter a name\n";
		
		if(form.Email.value == "")
			message += "You must enter an Email address\n";		
			
		if(form.Comment.value == "")
			message += "You must enter a Comment\n";
		
		if(message != "") {
			alert(message);
			return false;
		}

		return true;
	},
	
	videoplay_Callback: function() {
		var playerdiv = YD.get('flowplayer');
	
		if(playerdiv) {
			var source = playerdiv.innerHTML.replace(/^\s+|\s+$/g,"");		
			flashembed("flowplayer", "ididit/javascript/flowplayer/FlowPlayerLight.swf", {config: { 
				// Flowplayer configuration as comma separated list   
				videoFile: '../../../' + source
				//initialScale: 'scale'
			}});
		}
		
		var commentForm = YD.get('Form_CommentForm');
		
		var ajaxSubmit = function(e) {
			var formObject = (e.srcElement) ? e.srcElement : e.target;
			if(IDidItInterface.commentFormCheck(formObject))
				CanvasAjax.ajaxForm_submit(formObject, canvaselement.selected._ID);
		}

		if(commentForm) {
			commentForm.setAttribute('onsubmit', 'return false');
			YE.addListener(commentForm, 'submit', ajaxSubmit);
		}

		var edit = YD.get('edit');
		if(edit)
			YE.addListener(edit, "click", IDidItInterface.ClickActions.but_video_edit);
	},
	
	photoshow_view_Callback: function(id) {
		var edit = YD.get('edit');
		if(edit)
			YE.addListener(edit, "click", IDidItInterface.ClickActions.but_photoshow_edit);

		var commentForm = YD.get('Form_CommentForm');

		var ajaxSubmit = function(e) {
			var formObject = (e.srcElement) ? e.srcElement : e.target;
			if(IDidItInterface.commentFormCheck(formObject))
				CanvasAjax.ajaxForm_submit(formObject, canvaselement.selected._ID);			
		}

		if(commentForm) {
			commentForm.setAttribute('onsubmit', 'return false');
			YE.addListener(commentForm, 'submit', ajaxSubmit);
		}
	},

	photo_view_Callback: function(id) {
		var do_prev = function(e, id) {
			if(id) {
				for(var i = 0; i<canvaselement._aImages.length; i++) {				
					if(canvaselement._aImages[i].elementtype == 'image') {
						if(canvaselement._aImages[i]._ID == id) {
							canvaselement.selected = canvaselement._aImages[i];
							canvaselement.selected.highlighted = true;
						} 
					}
				}			
			}
			
			var indexes = [];
			for(var i = 0; i<canvaselement._aImages.length; i++) {
				if(canvaselement._aImages[i].elementtype == 'image')
					indexes.push(i);
			}
			
			for(i = 0; i<indexes.length; i++) {
				if(canvaselement.selected._ID == canvaselement._aImages[indexes[i]]._ID)
					break;
			}
			
			if(i == 0) {
				canvaselement.selected.highlighted = false;
				canvaselement.selected = canvaselement._aImages[indexes[indexes.length - 1]];
				canvaselement.selected.highlighted = true;
			} else {
				canvaselement.selected.highlighted = false;
				canvaselement.selected = canvaselement._aImages[indexes[i - 1]];
				canvaselement.selected.highlighted = true;
			}
			
			IDidItInterface.ClickActions.but_photo_view(e);
		}
		
		var do_next = function(e, id) {
			if(id) {
				for(var i = 0; i<canvaselement._aImages.length; i++) {
					if(canvaselement._aImages[i].elementtype == 'image') {
						if(canvaselement._aImages[i]._ID == id) {
							canvaselement.selected = canvaselement._aImages[i];
							canvaselement.selected.highlighted = true;
						}
					}
				}
			}
			
			var indexes = [];
			for(var i=0; i<canvaselement._aImages.length; i++) {
				if(canvaselement._aImages[i].elementtype == 'image')
					indexes.push(i);
			}

			for(i=0; i<indexes.length; i++) {
				if(canvaselement.selected._ID == canvaselement._aImages[indexes[i]]._ID)
					break;
			}
			
			if(i == indexes.length - 1) {
				canvaselement.selected.highlighted = false;
				canvaselement.selected = canvaselement._aImages[indexes[0]];
				canvaselement.selected.highlighted = true;
			} else {
				canvaselement.selected.highlighted = false;
				canvaselement.selected = canvaselement._aImages[indexes[i + 1]];
				canvaselement.selected.highlighted = true;
			}
			
			IDidItInterface.ClickActions.but_photo_view(e);
		}
		
		var prev = YD.get('prev');
		if(prev)
			YE.addListener(prev, "click", function(e) {do_prev(e, id)});
			
		var next = YD.get('next');
		if(next)
			YE.addListener(next, "click", function(e) {do_next(e, id)});

		var edit = YD.get('edit');
		if(edit)
			YE.addListener(edit, "click", IDidItInterface.ClickActions.but_photo_edit);

		var commentForm = YD.get('Form_CommentForm');
		
		var ajaxSubmit = function(e) {
			var formObject = (e.srcElement) ? e.srcElement : e.target;
			if(IDidItInterface.commentFormCheck(formObject))
				CanvasAjax.ajaxForm_submit(formObject, canvaselement.selected._ID);			
		}
 
		if(commentForm) {
			commentForm.setAttribute('onsubmit', 'return false');
			YE.addListener(commentForm, 'submit', ajaxSubmit);
		}
	}, 
	
	media_edit_Callback: function() {
		var editForm = YD.get('Form_EditForm');
		
		/*
		var ajaxSubmit = function(e) {
			var formObject = (e.srcElement) ? e.srcElement : e.target;
			CanvasAjax.ajaxForm_submit(formObject, canvaselement.selected._ID);			
		}
 
		if(editForm) {
			editForm.setAttribute('onsubmit', 'return false;');
			YE.addListener(editForm, 'submit', ajaxSubmit);
		}
		*/
	},
	
	favs_photoshow_Callback: function() {
		var thumbdowns = YD.getElementsByClassName('thumbdown', 'span');
		var thumbeddowns = YD.getElementsByClassName('thumbeddown', 'span');
		
		for(i in thumbdowns) {
			YE.addListener(thumbdowns[i], 'click', ThumbManager.thumbDownFavouritesPage);
		}
		
		for(i in thumbeddowns) {
			YE.addListener(thumbeddowns[i], 'click', ThumbManager.thumbDownFavouritesPage);
		}
	},
	
	disableSubmit: function(button, message) {
		if (!message) message = 'Loading...';
		
		YD.addClass(button, 'disabled');
		
		if (button.tagName.toLowerCase() == 'input' || button.tagName.toLowerCase() == 'button')
			button.setAttribute('value', message);
		else
			button.innerHTML = message;
		
		YE.addListener(button, 'click', function(e) { 
			YE.stopEvent(e);
		});	
	}
};

function successfulUpload(message) {
	var container = YD.get('content_c');
	var content = YD.get('content');
	var loadingcontainer = YD.get('loading_c');
	
	if(!container || !content || !loadingcontainer) 
		return false;
		  
	this.showCanvas();
	content.innerHTML = message;
	YD.addClass(loadingcontainer, 'hidden');
	IDidItInterface.switchToDiv(container, content);
	
};

function getTarget(e, tagName) {
	var target = YAHOO.util.Event.getTarget(e);
	if (target.tagName.toLowerCase() != tagName.toLowerCase()) {
		target = YAHOO.util.Dom.getAncestorByTagName(target, 'a');
	}
	return target;
}
