//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?

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_close_s2f'), 'click', MN.TP.CloseSendBox);
	
	MN.TP.ClearS2FForm();
};

MN.TP.OpenSendBox = function(){
	// MN.TP.Pause();
	
	$('mn_playlist').style.display = 'none';
	$('s2f').style.display = 'block';
	
	$('mn_pl_scroller').className = 's2f';
	$('mn_pl_scroll_up').className = 's2f';
	$('mn_pl_scroll_down').className = 's2f';
	$('mn_pl_thumb').className = 's2f';

	MN.TP.sendBox = true;
};

MN.TP.CloseSendBox = function(){
	// MN.TP.Play();
	
	$('s2f').style.display = 'none';
	$('mn_playlist').style.display = 'block';
	
	$('mn_pl_scroller').className = '';
	$('mn_pl_scroll_up').className = '';
	$('mn_pl_scroll_down').className = '';
	$('mn_pl_thumb').className = '';

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

MN.TP.ClearS2FForm = function(){
	MN.TP.sendStart = 0;
	MN.TP.sendStop = -1;
	
	$('mn_senders_name').value = '';
	$('mn_senders_email').value = '';
	$('mn_friends_email').value = '';
	$('mn_comments').value = '';
};

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 success = true;
	var check = {'mn_senders_email' : MN.Validate.IsEmail, 'mn_senders_name' : MN.TP.CheckSendersName, 'mn_friends_email' : MN.TP.CheckFriendsEmails};
	
	//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){
			if(MN.nonIE)
				label.innerHTML = label.innerHTML.replace('<em>* </em>', '');
			else
				label.innerHTML = label.innerHTML.replace('<EM>* </EM>', '');  // I hate IE so much
		}
		
		var curVal = $(item).value;
		if(!check[item](curVal)){
			if(label)
				label.innerHTML = '<em>* </em>' + label.innerHTML;
			success = false;
		}
	}
	log('success: ', success);

	if(success){
		var params = {
						'show':MN.TP.curChnl.name,
						'ep':MN.ad.qvt.Metadata("id"),
						'start':0,
						'end':-1,
						'fromEmail':form.mn_senders_email.value, 
						'fromName':form.mn_senders_name.value, 
						'toEmail':form.mn_friends_email.value, 
						'comments':form.mn_comments.value,
						'cfg':'twohalfmen'// + MN.TP.curChnl.name
					 };
		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=yes,scrollbars=no,status=no,titlebar=no,toolbar=no,height=263,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;
};
