$(document).ready(function(){
    if(typeof(functions_to_call) != 'undefined')
    {
        callFunctions(functions_to_call)
    }

    var email_confirmation = $(jqid('email_confirmation'));
    if(email_confirmation.val() != undefined)
    {
        //var submit_value = $(jqid('submit_button')).text();
        //var cancel_value = $(jqid('cancel_button')).text();
		$(jqid('email_confirmation')).dialog({
	        bgiframe: true,
			resizable: false,
			draggable: false,
			height: 200,
			width: 400,
			modal: true,
			overlay: {
				backgroundColor: '#000',
				opacity: 0.5
			},
			buttons: {
				'Senden': function() {
					$(this).dialog('close');
					sendRequest('function=handleMsgDiv&value=submit', 16);
				},
				'nicht Senden': function() {
					$(this).dialog('close');
					sendRequest('function=handleMsgDiv&value=cancel', 16);
				}
			}
		});
    }

    var ressource_planning_width = $(jqid('ressource_planning_width'));
    if(ressource_planning_width.val() != undefined)
    {
        function setRessourcePlanningWidth()
        {
            var width = parseInt($(jqid('ressource_planning_width')).val()) * 108.58;
            $(jqid('content')).css('width', width+"px");
            $(jqid('header_row')).css('width', width-10+"px");
        };
        function setRessourcePlanningHeight()
        {
            var val = parseInt($(jqid('ressource_planning_height')).val());
            var height = (val * 136.5) - 3*val;
            $('.content_height').css('height', height+"px");
        };
        setRessourcePlanningWidth();
        setRessourcePlanningHeight();

        ressource_planning_width.keyup(function() {
            setRessourcePlanningWidth();
        });
        $(jqid('ressource_planning_height')).keyup(function() {
            setRessourcePlanningHeight();
        });
    };

    var tabs = $(jqid('tabs'));
    if(tabs.val() != undefined)
    {
        $(jqid('tabs')).tabs();
    };
if($('#sms_message').val() != undefined) {
        smsCounter($('#sms_message'));
        $('#sms_message').bind('keyup', function() {
            smsCounter($(this));
        });
    }
});


var gsm7bitChars = "@£$¥èéùìòÇ\nØø\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\"#¤%&'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑÜ§¿abcdefghijklmnopqrstuvwxyzäöñüà";
var gsm7bitExChar = "^{}\\[~]|€";

function smsCounter(element) {
    // hole den Wert und filtere direkt alle falschen Zeichen raus
    var message = sanitizeSMS(element.val());
    if(message != element.val()) {
        element.val(message);
    }
    
    var char_count = smsCharCount(message);
    char_count = char_count[0];
    
    // bei mehr als 160 Zeichen hat eine SMS nur noch 152 Zeichen
    var sms_count = char_count > 160 ? Math.ceil(char_count / 152) : 1;
    
    // Anzahl der benutzten Zeichen setzen
    $('#sms_char_counter').html(char_count +' Zeichen');
    $('#char_count').val(char_count);

    // Anzahl der verwendeten SMS setzen
    $('#sms_counter').html(sms_count +' SMS');
    $('#sms_count').val(sms_count);
}

/**
 * schmeißt alle Zeichen, die nicht GSM 7 Bit sind aus der SMS raus
 */
function sanitizeSMS(message) {
    var new_message = [];
    for (var i = 0, len = message.length; i < len; i++) {
        if(gsm7bitChars.indexOf(message.charAt(i)) > -1 || gsm7bitExChar.indexOf(message.charAt(i)) > -1) {
            new_message.push(message.charAt(i));
        }
    }
    return new_message.join('');    
}

function smsCharCount(message) {
    var gsm7bitUnits = 0;
    var utf16codeUnits = 0;
    
    for (var i = 0, len = message.length; i < len; i++) {
        if (gsm7bitUnits != null) {
            if (gsm7bitChars.indexOf(message.charAt(i)) > -1) {
                gsm7bitUnits++;
            } else if (gsm7bitExChar.indexOf(message.charAt(i)) > -1) {
                gsm7bitUnits += 2;
            } else {
                gsm7bitUnits = null;
            }
        }
        utf16codeUnits += message.charCodeAt(i) < 0x10000 ? 1 : 2;  
    }
    return [gsm7bitUnits, utf16codeUnits];
}

