//s2f.js
//Contains all the necessary functions for send-to-friend
MN.TP.sendStart = 0;
MN.TP.sendStop = -1;
MN.TP.sendWindow = null;
MN.TP.sendBox = false;  //is the send to friend form visible?
//Needed to maintain that a clip from VOD content is only within the VOD show
//-1 means that it is live content
MN.TP.startShow = -1;
MN.TP.stopShow = -1; 

MN.TP.InitS2F = function(){
	MN.Event.Observe($('mn_send_to_friend'), 'click', MN.TP.OpenSendBox);
	MN.Event.Observe($('mn_send'), 'click', MN.TP.SendClick);
	MN.Event.Observe($('mn_set_start'), 'click', MN.TP.SetSendStart);
	MN.Event.Observe($('mn_set_stop'), 'click', MN.TP.SetSendStop);
	MN.Event.Observe($('mn_close_s2f'), 'click', MN.TP.CloseSendBox);
	
	MN.TP.ClearS2FForm();
}

MN.TP.OpenSendBox = function(){
	if(MN.TP.maximized)
		MN.TP.Minimize();
	setTimeout("MN.TP.Pause()",100);

	$('mn_playlist_container').style.display = 'none';
	$('mn_send_friend').style.display = 'block';

	MN.TP.sendBox = true;
}

MN.TP.CloseSendBox = function(){
	MN.TP.Play();
	$('mn_playlist_container').style.display = 'block';
	$('mn_send_friend').style.display = 'none';

	MN.TP.ClearS2FForm();
	MN.TP.sendBox = false;
}

MN.TP.ClearS2FForm = function(){
	MN.TP.sendStart = 0;
	MN.TP.sendStop = -1;
	
	$('mn_share_current').checked = true;
	$('mn_start').value = '00:00';
	$('mn_end').value = '00:00';
	$('mn_senders_name').value = '';
	$('mn_senders_email').value = '';
	$('mn_friends_email').value = '';
	$('mn_comments').value = '';
}

MN.TP.SetSendStart = function(name){
	$('mn_share_clip').checked = true;
	var sec = MN.TP.qmp.CurrentPosition();
	
	if(MN.TP.qmp.CurrentQVT().PrimaryURL().search('byid') != -1 || !MN.TP.qmp.CurrentQVT().haveAnyLive){  //VOD clip
		MN.TP.startShow = MN.TP.qmp.CurrentShow();
		sec -= MN.TP.qmp.CurrentQVT().StartTime(MN.TP.startShow); //convert the seconds to relative seconds
		$('mn_start').value = MN.ConvertToTimestamp(sec, "HH:MM:SS");
	}
	else{
		MN.TP.startShow = -1;
		$('mn_start').value = MN.ConvertToTimestamp(sec, "hh:mm:ss");
	}
		
	
	MN.TP.sendStart = sec;
}

MN.TP.SetSendStop = function(name){
	$('mn_share_clip').checked = true;
	MN.TP.Pause();
	var sec = MN.TP.qmp.CurrentPosition();
	
	if(MN.TP.qmp.CurrentQVT().PrimaryURL().search('byid') != -1 || !MN.TP.qmp.CurrentQVT().haveAnyLive){  //VOD clip
		MN.TP.stopShow = MN.TP.qmp.CurrentShow();
		sec -= MN.TP.qmp.CurrentQVT().StartTime(MN.TP.stopShow); //convert the seconds to relative seconds
		$('mn_end').value = MN.ConvertToTimestamp(sec, "HH:MM:SS");
	}
	else{
		MN.TP.stopShow = -1;
		$('mn_end').value = MN.ConvertToTimestamp(sec, "hh:mm:ss");
	}
		
	MN.TP.sendStop = sec;
}

MN.TP.CheckSendersName = function(val){
	var chunks = val.strip().split(' ');
	for(var i=0; i < chunks.length; i++){
		var chunk = chunks[i];
		if(!MN.Validate.IsAlphaNumeric(chunk))
			return false;
	}
	return true;
}

MN.TP.CheckFriendsEmails = function(val){
	var chunks = val.strip().split(',');
	for(var i=0; i < chunks.length; i++){
		var chunk = chunks[i].strip();
		if(!MN.Validate.IsEmail(chunk))
			return false;
	}
	return true;
}

//grabs the label for the form item
MN.TP.GetLabel = function(item){
	var labels = $('mn_send_friend').getElementsByTagName('label');
	var attr;
	for(var i = 0; i < labels.length; i++){
		if(MN.nonIE)
			attr = labels[i].getAttribute('for');
		else
			attr = labels[i].htmlFor;
		if(attr == item)
			return labels[i];
	}
	
	return null;
}

MN.TP.SendClick = function(){
	log('send click');
	var qvt = MN.TP.qmp.CurrentQVT();
	var isVOD = (qvt.PrimaryURL().search('byid') != -1);
	var success = true;
	var check = {'mn_senders_email' : MN.Validate.IsEmail, 'mn_senders_name' : MN.TP.CheckSendersName, 'mn_friends_email' : MN.TP.CheckFriendsEmails};
	var checked = $('mn_share_current').checked ? 'show' : 'clip';
	
	log('S2F: checking end and start')
	//Get the appropriate start and end positions
	if(checked == 'clip'){
		if(isVOD){
			log('vod content');
			if(MN.TP.startShow != MN.TP.stopShow){
				$('mn_send').style.display = 'none';
				$('mn_invalid_vod').style.display = 'block';
				setTimeout(function(){
					$('mn_send').style.display = 'block'; 
					$('mn_invalid_vod').style.display = 'none';
				}, 5000);		
				return false;
			}
		}	

		log(MN.TP.sendStart);
		log(MN.TP.sendStop);
		if(MN.TP.sendStop < MN.TP.sendStart){
			$('mn_send').style.display = 'none';
			$('mn_clip_error').style.display = 'block';
			setTimeout(function(){
				$('mn_send').style.display = 'block'; 
				$('mn_clip_error').style.display = 'none';
			}, 5000);		
			return false;
		}
		else{
		   	$('mn_start').style.className = '';
		   	$('mn_end').style.className = '';
		}
	}
	else{ //share show
		var showNum = MN.TP.qmp.CurrentShow();
		if(showNum < 0 || showNum >= qvt.ShowCount()) //live sometimes gives bad show number
	        showNum = qvt.ShowCount() - 1;
		
		if(!isVOD){
			MN.TP.sendStart = qvt.StartTime(showNum) || 0;
			// if(qvt.IsOpenEnded() && showNum == qvt.ShowCount() - 1) //on live show
			// 	MN.TP.sendStop = -1;
			// else
				MN.TP.sendStop = qvt.StopTime(showNum) || -1;
		}
		else{
			MN.TP.sendStart = 0;
			MN.TP.sendStop = -1;
		}
		
	    $('mn_start').style.className = '';
	   	$('mn_end').style.className = '';
	}

	//Check the info form
	log('checking form');
	var form = $('mn_send_friend');
	var label;
	for(var item in check){
		log('checking: ', item);
		label = MN.TP.GetLabel(item);
		
		if(label)
			label.className = '';
		
		var curVal = $(item).value;
		if(!check[item](curVal)){
			if(label)
				label.className = 'reqError';
			success = false;
		}
	}
	log('sucess: ', success);

	if(success){
		var params = {
						'show':'', 
						'ep': qvt.PrimaryURL(),
						'start':MN.TP.sendStart, 
						'end':MN.TP.sendStop, 
						'fromEmail':form.mn_senders_email.value, 
						'fromName':form.mn_senders_name.value, 
						'toEmail':form.mn_friends_email.value, 
						'comments':form.mn_comments.value,
						'cfg':'byutv'
					 };
		log(params.show);
		log(params.ep);
		log(params.start);
		log(params.end);
	    MN.TP.sendWindow = window.open(MN.URL.SetParams("http://gksrv.movenetworks.com/scripts/s2f/Send", params), "_blank", "top=500,left=500,directories=no,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no,height=264,width=300");
	    setTimeout(MN.TP.SendWindowPoll, 750);
	}
	else{
		$('mn_send').style.display = 'none';
		$('mn_send_error').style.display = 'block';
		setTimeout(function(){
			$('mn_send').style.display = 'block'; 
			$('mn_send_error').style.display = 'none';
		}, 5000);
		return false;
	}
	
	return false;
}

MN.TP.SendWindowPoll = function(){
    if(MN.TP.sendWindow){
        if(MN.TP.sendWindow.closed)
            MN.TP.CloseSendBox();
        else
            setTimeout(MN.TP.SendWindowPoll, 750);
    }
    else
        return;
}
MN.TP.InitS2F();