var share={
	init:function(o){
		Overlay.init({width:400});
		if (typeof o.mode == 'undefined') o.mode = 'avs';
		
		var sHTML = share.returnHTML(o);
		sHTML +=	'<div class=pad><label for=select_where>How would you like to share this?</label><select id=select_where>'+
					'<option value=email>Send it in an email to a friend(s)</option>';
		if (fn_vip()) sHTML+='<option value=pm>Send it in an PM to a VIP friend(s)</option><option value=blog>Write a blog about it</option>';
		sHTML+=		'<option value=external>Share it with friends on another social network</option>'+
					'<option value=website>Add it to your webpage/personal blog</option></select></div>';
		
		Overlay.html({
			title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13> Share &raquo; Step 1 &raquo; How?',
			html:sHTML,
			process:[
				{
					type:'button',
					title:'Next step',
					js:'share.process(1,' + JSONSerialize(o, "\'") + ')'
				},
				{type:'cancel'}
			],
			onComplete:function(oOverlay){
				$('#select_where').focus();
			}
		});
	},
	returnHTML : function (o) {
		if (typeof GLBshareTemplate != 'undefined') return GLBshareTemplate(o)
		else return '<div class=shareoverlay><img src="'+o.img+'" class=borderpagevideo><strong>'+o.title+'</strong><br>'+o.artist+'</div>';
	},
	process:function(i,o){
		Overlay.hide();
		if (i==1) share.step(2,$('#select_where').value,o);
	},
	step:function(i,s,o){
		if (i==2){
			// send email
			var sHTML = share.returnHTML(o);
			if (s=='email') {
				sHTML +=	'<div class=pad id=form_email><div class=overlay_neu_email><label for=txt_yourname>Your&nbsp;name:</label>'+
							'<input type=text class="inputbox overlay_neu_email_email" id=txt_yourname></div>'+
							'<div class=overlay_neu_email id=friend1><label for=input_friend1>Friend #1</label>'+
							'<input type=text class="inputbox overlay_neu_email_name" id=input_friend1_name value=Name style=color:#aaa>'+
							'<input type=text class="inputbox overlay_neu_email_email" id=input_friend1_email value="Email address" style=color:#aaa></div>'+
							'<div class="mTop mBot"><span class=small_text><a href="javascript:share.email.addFriend();" id=addFriend'+
							' class=button>Add friend</a> <a href="javascript:Anim.show($(\'#message\'));Dom.del($(\'#message_link\'));Overlay.rejig();"'+
							' id=message_link class=button>Edit message</a></span></div>'+
							'<div id=message style=display:none><label for=text_message>Personalised message:</label>'+
							'<textarea id=text_message rows=5>'+GLBshare.email[o.i]+'</textarea></div>'+
							'<input type=hidden id=friends value=1></div>';
				
				Overlay.html({
					title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13 class=pngfix> Share &raquo; Step 2 &raquo; Email to a friend',
					html:sHTML,
					process:[
						{
							type:'button',
							title:'Send',
							js:'share.email.process(' + JSONSerialize(o, "\'") + ')'
						},
						{type:'cancel'}
					],
					onComplete:function(oOverlay){
						$('#txt_yourname').focus();
						Event.add($('#input_friend1_name'),'focus',share.email.inputFocus);
						Event.add($('#input_friend1_email'),'focus',share.email.inputFocus);
					}
				});
			} else if (s=='pm') {
				sHTML += '<div class=pad id=form_email><label for=input_friend1>Who would you like to PM?</label>';
				sHTML += '<br><input type=text class=inputbox id=friends>';
				sHTML += '<label for=text_message>Personalised message:</label>';
				sHTML += '<textarea id=text_message rows=5>'+GLBshare.pm[o.i]+'</textarea></div>';
				Overlay.html({
					title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13 class=pngfix> Share &raquo; Step 2 &raquo; PM a friend',
					html: sHTML,
					process:[
						{type:'button',title:'Send',js:'share.pm.process(' + JSONSerialize(o, "\'") + ')'},
						{type:'cancel'}
					],
					onComplete:function(oOverlay){
						predictlist.init($('#friends'),{
							id:'friends_predict',
							ajaxURL:'/_ajax2/search.php',
							ajaxParams:'&mode=friends'
						});
						$('#friends').focus();
						//Event.add($('#input_friend1_name'),'focus',share.email.inputFocus);
						//Event.add($('#input_friend1_email'),'focus',share.email.inputFocus);
					}
				});
			} else if (s=='external') {
				sHTML += '<div class=pad>';
				sHTML += '<label for=select_where>Which social network site would you like to share this?</label><select id=select_where>';
				sHTML += '<option value=facebook>Facebook</option>';
				sHTML += '<option value=myspace>MySpace</option>';
				sHTML += '<option value=bebo>Bebo</option>';
				sHTML += '<option value=hi5>Hi-5</option>';
				sHTML += '</select></div>';
				
				Overlay.html({
					title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13 class=pngfix> Share &raquo; Step 2 &raquo; Share with a friend...',
					html: sHTML,
					process:[
						{
							type:'button',
							title:'Go',
							js:'share.external.process(' + JSONSerialize(o, "\'") + ')'
						},
						{type:'cancel'}
					],
					onComplete:function(oOverlay){
						$('#select_where').focus();
					}
				});
			} else if (s=='blog') {
				sHTML += '<div class=pad id=form_email>';
				sHTML += '<label for=txt_subject>Subject:</label><input type=text class="inputbox mBot" id=txt_subject><br>';
				sHTML += '<label for=text_message>Blog:</label><textarea id=text_message rows=5>'+GLBshare.blog[o.i]+'</textarea>';
				sHTML += '</div>';
				
				Overlay.html({
					title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13 class=pngfix> Share &raquo; Step 2 &raquo; Create a blog',
					html: sHTML,
					process:[
						{
							type:'button',
							title:'Add blog',
							js:'share.blog.process(' + JSONSerialize(o, "\'") + ')'
						},
						{type:'cancel'}
					],
					onComplete:function(oOverlay){
						$('#txt_subject').focus();
					}
				});
			} else if (s=='website') {
				sHTML += '<div class=pad id=form_email>Copy the following code and paste it in your website.';
				sHTML += '<input type=text id=txt_code class=code readonly=true></div>';
				
				Overlay.html({
					title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13 class=pngfix> Share &raquo; Step 2 &raquo; Almost there...',
					html: sHTML,
					process:[
						{
							type:'button',
							title:'Copy code',
							js:'share.Copy($(\'#txt_code\').value)'
						},
						{type:'cancel'}
					],
					onComplete:function(oOverlay){
						$('#txt_code').value=GLBshare.website[o.i];
						$('#txt_code').focus();
					}
				});
			}
		}
	},
	Copy:function(s){
		Copy(s);
		Overlay.error({
			object:{o:$('#form_email'),where:'outer_end'},
			icon:'accept',
			nodeClass:'alert_accept',
			html:'Copied to clipboard',
			colorStart:'239,221,104',
			colorEnd:'214,246,190'
		});
	},
	pm:{
		process:function(o){
			var oSpans=$('#friends_predict_taglist:span');
			if (oSpans.length>0){
				Overlay.hide();
				var sTo = '';
				for (var i in oSpans) {if(oSpans[i].nodeName=='SPAN'){sTo+=oSpans[i].id.replace('drptag_','')+',';}}
				sTo=sTo.substr(0,sTo.length-1);
				var sMessage=$('#text_message').value;
				var sVars='&message='+escape(sMessage)+'&to='+escape(sTo)+JSONURLize(o);
				Ajax.request('/_ajax2/share/pm.php',sVars,{mode:'POST',returnmode:'JSON'},function(oReturn){
					if (oReturn.code==1) {
						Overlay.html({
							title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13> Share &raquo; Step 3 &raquo; Complete',
							html:'<div class=pad>Thanks!... your PM has been sent.</div>',
							process:[{type:'button',title:'Ok',js:'Overlay.cancel()'}]
						});
					} else {
						Overlay.html({
							title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13> Share &raquo; Step 3 &raquo; Error',
							html:'<div class=pad>There was a problem sending your PM. We\'re really sorry.</div>',
							process:[{type:'button',title:'Ok',js:'Overlay.cancel()'}]
						});
					}
				});
			} else {
				Overlay.error({
					object:{o:$('#form_email'),where:'outer_end'},
					icon:'report',
					nodeClass:'alert_info',
					html:'You need to add at least 1 VIP friend in order to send this as a PM',
					colorStart:'239,221,104',
					colorEnd:'253,247,207'
				});
			}
		}
	},
	blog:{
		process:function(o){
			Overlay.hide();
			var sSubject=$('#txt_subject').value,sBlog=$('#text_message').value;
			var sVars = '&url='+encodeURIComponent(window.location.href)+'&subject='+encodeURIComponent(sSubject);
			sVars += '&message='+encodeURIComponent(sBlog) + JSONURLize(o);
			Ajax.request('/_ajax2/share/blog.php',sVars,{mode:'POST',returnmode:'JSON'},function(oReturn){
				if (oReturn.code==1) {
					Overlay.html({
						title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13> Share &raquo; Step 3 &raquo; Complete',
						html:'<div class=pad>Thanks!... you have posted a blog</div>',
						process:[{type:'button',title:'Ok',js:'Overlay.cancel()'}]
					});
				} else {
					Overlay.html({
						title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13> Share &raquo; Step 3 &raquo; Error',
						html:'<div class=pad>There was a problem posting your blog. We\'re really sorry.</div>',
						process:[{type:'button',title:'Ok',js:'Overlay.cancel()'}]
					});
				}
			});
		}
	},
	external:{
		process:function(o){
			var s=$('#select_where').value,sURL=window.location.href;
			if (sURL.indexOf('?')>=0) sURL+='&source=share';
			else sURL+='?source=share';
			if (s=='facebook') {
				window.open('http://www.facebook.com/share.php?u='+sURL);
				Overlay.cancel();
			} else if (s=='bebo') {
				var sLocation=encodeURIComponent('\''+o.title+'\' by '+o.artist+'. Here: '+sURL);
				window.open('http://bebo.com/BlogPost.jsp?Message='+sLocation);
				Overlay.cancel();
			} else if (s=='hi5') {
				var sLocation=encodeURIComponent('\''+o.title+'\' by '+o.artist+'. Here: '+sURL);
				window.open('http://www.hi5.com/friend/mail/displayComposeMail.do?body='+sLocation);
				Overlay.cancel();
			} else if (s=='myspace') {
				var sCode='<a href="'+sURL+'">\''+o.title+'\' by '+o.artist+'</a>';
				Overlay.html({
					title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13> Share &raquo; Step 3 &raquo; Almost there...',
					html:	'<div class=pad id=form_email>Copy the following code and paste it where you like in your Myspace profile/blog.'+
							'<input type=text id=txt_code class=code /></div>',
					process:[
						{type:'button',title:'Copy code',js:'share.Copy($(\'#txt_code\').value)'},
						{type:'cancel'}
					],
					onComplete:function(oOverlay){
						$('#txt_code').value=sCode;
						$('#txt_code').focus();
					}
				});
			}
		}
	},
	email:{
		inputFocus:function(e){
			var o=Event.target(e),bCheck=false;
			if (o.id.indexOf('_name')>=0 && o.value=='Name') bCheck=true;
			else if (o.id.indexOf('_email')>=0 && o.value=='Email address') bCheck=true;
			if (bCheck==true) {
				o.value='';
				o.style.color='#000';
			}
		},
		addFriend:function(){
			var i=$('#friends').value;
			i++;
			var sHTML=	'<label for=input_friend1>Friend #'+i+'</label>'+
						'<input type=text class="inputbox overlay_neu_email_name" id=input_friend'+i+'_name>'+
						'<input type=text class="inputbox overlay_neu_email_email" id=input_friend'+i+'_email>';
			var oFriend=Dom.add($('#friend'+(i-1)),'div',{id:'friend'+i,nodeClass:'overlay_neu_email'},'outer_end');
			oFriend.innerHTML=sHTML;
			$('#friends').value=i;
			Overlay.rejig();
			if (i>=5) Dom.del($('#addFriend'));
		},
		process:function(o){
			if($('#overlay_neu_error')) Dom.del($('#overlay_neu_error'));
			var sName=$('#input_friend1_name').value,sEmail=$('#input_friend1_email').value;
			if (sName!='' && sName!='Name' && sEmail!='' && sEmail!='Email address'){
				var sError='',iFriends=$('#friends').value,sYourName=$('#txt_yourname').value;
				for (i=1;i<=iFriends;i++) {
					var sEmailChecked=$('#input_friend'+i+'_email').value.replace(/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z.-]+\.)+[a-z]{2,4}/g,'');
					if (sEmailChecked.length>0) sError+=i+',';
				}
				if (sError=='') {
					Overlay.hide();
					var sFriends='[';
					for (i=1;i<=iFriends;i++) {
						if ($('input_friend'+i+'_email').value!='') {
							var sEmail=$('#input_friend'+i+'_email').value,sName=$('#input_friend'+i+'_name').value.replace(/"/g,'\\\"');
							sFriends+='{"name":"'+sName+'","email":"'+sEmail+'"},';
						}
					}
					sFriends=sFriends.substr(0,sFriends.length-1);
					sFriends+=']';
					var sMessage=$('#text_message').value.replace(/\n/g,'<br>');
					var sVars=	'&name='+encodeURIComponent(sYourName)+'&message='+encodeURIComponent(sMessage)+
								'&to='+encodeURIComponent(sFriends)+'&url='+encodeURIComponent(window.location.href);
					sVars += JSONURLize(o);
					Ajax.request('/_ajax2/share/email.php',sVars,{mode:'POST',returnmode:'JSON'},function(oReturn){
						if (oReturn.code==1) {
							Overlay.html({
								title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13> Share &raquo; Step 3 &raquo; Complete',
								html:'<div class=pad>Thanks!... your email has been sent.</div>',
								process:[{type:'button',title:'Ok',js:'Overlay.cancel()'}]
							});
						} else {
							Overlay.html({
								title:'<img src="http://i.'+SITE_DOMAIN+'/images/icons/neu/share.png" width=13 height=13> Share &raquo; Step 3 &raquo; Error',
								html:'<div class=pad>There was a problem sending your email. We\'re really sorry.</div>',
								process:[{type:'button',title:'Ok',js:'Overlay.cancel()'}]
							});
						}
					});
				} else {
					var sHTML='There are the following error',aError=sError.split(',');
					if (aError.length>2) sHTML='There are the following errors:';
					else sHTML='There is a error:';
					sHTML+='<ul>';
					for (var i in aError) {
						if (aError[i]!='') sHTML+='<li>Friend #'+aError[i]+'\'s email address isn\'t valid';
					}
					sHTML+='</ul>';
					Overlay.error({
						object:{o:$('#form_email'),where:'outer_end'},
						icon:'report',
						nodeClass:'alert_info',
						html:sHTML,
						colorStart:'239,221,104',
						colorEnd:'253,247,207'
					});
				}
			} else {
				Overlay.error({
					object:{o:$('#form_email'),where:'outer_end'},
					icon:'report',
					nodeClass:'alert_info',
					html:'You need to at least enter one friends name and email address',
					colorStart:'239,221,104',
					colorEnd:'253,247,207'
				});
			}
		}
	},
	tooltip : {
		init : function() {
			var oAs = $('a');
			for (var i in oAs) {
				if (
						oAs[i].nodeName == 'A' &&
						oAs[i].href.indexOf('share.init')>=0
					) {
					Event.add(oAs[i], 'mouseover', share.tooltip.hover);
					Event.add(oAs[i], 'mouseout', share.tooltip.unhover);
				}
			}
		},
		hover : function(e) {
			var oA = Event.target(e);
			while (oA.nodeName != 'A') oA = oA.parentNode;
			var sDesc = oA.getAttribute('longdesc');
			var oTooltip = Dom.add(document, 'div', {id:'sharetooltip'}, 'inner_end');
			oTooltip.innerHTML = sDesc;
			Event.add(document, 'mousemove', share.tooltip.track);
			//share.tooltip.track(oTooltip);
			//console.log(sDesc);
		},
		unhover : function(e) {
			//var oA = Event.target(e);
			//while (oA.nodeName != 'A') oA = oA.parentNode;
			Dom.del($('#sharetooltip'));
			Event.remove(document, 'mousemove', share.tooltip.track);
		},
		track : function(e) {
			var oTooltip = $('#sharetooltip');
			var iLeft, iTop;
			if (browser.browser == 'Explorer') {
				iLeft = e.clientX + document.body.scrollLeft;
				iTop = e.clientY + document.body.scrollTop;
			} else {
				iLeft = e.clientX + document.body.scrollLeft;
				iTop = e.clientY + document.body.scrollTop;
			}
			oTooltip.style.left = ( iLeft + 16 ) + 'px';
			oTooltip.style.top = ( iTop + 16 ) + 'px';
		}
	}
};
