// ==UserScript==
// @name         Tanszéki portál bcc
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  E-mail küldése minden hallgatónak BCC mezőben, a tárgy neve a subject mezőben
// @author       Ákos Nagy
// @match        https://www.aut.bme.hu/Course/*/*/*
// @grant        none
// ==/UserScript==
/* jshint -W097 */
'use strict';


var a_href = $('#hlSendEmail').attr('href');
if (a_href) {
    var param1=a_href.split("'")[1];
    $('#hlSendEmail').attr('href','#');
}


// Decodes the encoded e-mail adress given as parameter, and creates a mailto link from it
function SendEmailBcc( ) {	
    var body='';
    var subject=$("div#body > h1").get(0).innerText.split(':')[0];    
    var email = DecodeEmailBcc(param1);
	
	var maxUrlLength = 1970 - subject.length - body.length;
	var emails = email.split(';');
	var url = 'mailto:?bcc=';
	
	for (var i = 0; i < emails.length; i++) {
		if (url.length + email[i].length > maxUrlLength) {
			AppendSubjAndBodyAndSendBcc(url, subject, body);

			// Start new mailto link.
			url = 'mailto:?bcc=';
			i--;
		}
		else {
			url += emails[i] + ";";
		}
	}

	// Open a new windows with the last email addresses.
	if (url.length > 6) {
		AppendSubjAndBodyAndSendBcc(url, subject, body);
	}
}

function AppendSubjAndBodyAndSendBcc(url, subject, body) {
	// Concatenate the subject and body part to the url.	    
    if (subject.length > 0)        
		url += '&Subject=' + subject;
	if (body.length > 0)
		url += '&Body=' + body;

	// Open the email client with the email addresses.	
    location.href = url;
}


// Decodes the encoded e-mail adress given as parameter
function DecodeEmailBcc( encodedEmail )
{
	var email = "";
	for( var i = 0; i < encodedEmail.length ; )
	{
		var letter = "";
		letter = encodedEmail.charAt( i ) + encodedEmail.charAt( i+1 );
		email += String.fromCharCode( parseInt( letter, 16 ) );
		i += 2;
	}
	return email;
}

if (a_href) {    
    $('#hlSendEmail').click( SendEmailBcc);
}