function substr(f_string, f_start, f_length) {
	f_string += '';
    	if(f_start < 0) {
        		f_start += f_string.length;
    	}
    	if(f_length == undefined) {
        		f_length = f_string.length;
    	} else if(f_length < 0){
        		f_length += f_string.length;
    	} else {
        		f_length += f_start;
    	}
    	if(f_length < f_start) {
        		f_length = f_start;
    	}
    	return f_string.substring(f_start, f_length);
}

function explode( delimiter, string, limit ) {
    var emptyArray = { 0: '' };
    if ( arguments.length < 2
        || typeof arguments[0] == 'undefined'
        || typeof arguments[1] == 'undefined' )
    {
        return null;
    }

    if ( delimiter === ''
        || delimiter === false
        || delimiter === null )
    {
        return false;
    }

    if ( typeof delimiter == 'function'
        || typeof delimiter == 'object'
        || typeof string == 'function'
        || typeof string == 'object' )
    {
        return emptyArray;
    }

    if ( delimiter === true ) {
        delimiter = '1';
    }

    if (!limit) {
        return string.toString().split(delimiter.toString());
    } else {
        // support for limit argument
        var splitted = string.toString().split(delimiter.toString());
        var partA = splitted.splice(0, limit - 1);
        var partB = splitted.join(delimiter.toString());
        partA.push(partB);
        return partA;
    }
}

function implode( glue, pieces ) {
    return ( ( pieces instanceof Array ) ? pieces.join ( glue ) : pieces );
}

function set_cookie(name, value) {
  	var now = new Date ();
  	var expires = new Date (now.getTime () + 30 * 24 *  60 * 60 * 1000);
  	document.cookie = name + '=' + value + ';path=/;expires=' + expires.toGMTString ();
}

function get_cookie(){
         document.cookie.match(/book=([^;]+)/g);
         return RegExp.$1;
}

function is_int(mixed_var) {
    	return !isNaN(mixed_var * 1);
}

function blocking(nr, show)
{
	if (document.layers)
	{
		current = (show == 1) ? 'block' : 'none';
		document.layers[nr].display = current;
	}
	else if (document.all)
	{
		current = (show == 1) ? 'block' : 'none';
		document.all[nr].style.display = current;
	}
	else if (document.getElementById)
	{
		vista = (show == 1) ? 'block' : 'none';
		document.getElementById(nr).style.display = vista;
	}
}

//Ajax
var req = null;
function ajaxstart() {
         try{
         	req = new XMLHttpRequest();
         }
         catch(ms){
         	try{
                 	req = new ActiveXObject("Msxml2.XMLHTTP");
                 }
                 catch(nonms){
                 	try{
                         	req = new ActiveXObject("Microsoft.XMLHTTP");
                         }
                         catch(failed){
                         	req = null;
                         }
                 }
         }
         if(req == null)
         	alert("Ajax-Fehler");
}
function ajaxhandler(method, get, send){
         ajaxstart();
	if(method == "get")
         	req.open("GET", "/ajax.php?" + get, true);
         else
         	req.open("POST", "/ajax.php?"+ get, true)
         req.onreadystatechange = function(){
         	if(req.readyState == 4){
                 	if(req.status == 200){
                         	eval(req.responseText);
                         }
                         /*else{
                         	alert('Ajax-Status-Fehler: ' + req.status);
                         }*/
	        }
                 /*else{
                 	alert('Ajax-Open-Fehler');
                 }*/
         }
         req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
         req.send(send);
}

var chars = smsmaxchars;
function checkchars(){
	var content = document.getElementById('content').value.length;
         chars = smsmaxchars - content;
         if(chars > 0){
         	document.getElementById('chars').innerHTML = chars;
         }
         else{
         	document.getElementById('chars').innerHTML = 0;
                 content = document.getElementById('content').value;
                 document.getElementById('content').value = substr(content, 0, smsmaxchars);
         }
}

function book(){
	blocking('step1', 0);
         booklist();
         blocking('book', 1);
}

function booksave(){
	var message = '';
         if(document.getElementById('bookname').value.length == 0)
         	message = 'Sie haben keinen Namen eingegeben!';
         else if(document.getElementById('booknumber').value.length < 5)
                	message = 'Die angegebene Handynummer ist zu kurz!';
         else if(!is_int(document.getElementById('booknumber').value))
         	message = 'Die angegebene Handynummer ist fehlerhaft!';
         else
         	message = '';
         if(message != ""){
         	document.getElementById('addbookmessage').innerHTML = '<font color="#820321">' + message + '</font>';
                 blocking('addbookmessage', 1);
         }
         else{
		blocking('addbook', 0);
                 blocking('listbook', 1);
                 var prenumber = '';
                 for(i = 0;i < document.forms[0].elements[0].length; i++){
                         if(document.forms[0].elements[0].options[i].selected == true){
                         	prenumber = document.forms[0].elements[0].options[i].value;
                                 break;
                         }
                 }
                 var werte = liste;
         	var i = werte.length;
         	werte[i] = prenumber + '[/]' + document.getElementById('booknumber').value + '[/]' + document.getElementById('bookname').value;
                 var neu = implode('|', werte);
                 liste = werte;
                 set_cookie('book', neu);
                 booklist();
	}
}

var liste = '';
var cliste = 0;
function getlist(){
	liste = explode('|', get_cookie());
}

function booklist(){
	var list = '<table border="0" width="90%" cellpadding="1" cellspacing="0"><tr bgcolor="#009F00"><td width="50%"><b>Name</b></td><td></td></tr>';
         if(cliste == 0){
         	getlist();
                 cliste = 1;
         }
         werte = liste;
         var colors = new Array('#ffffff', '#8AFF8A');
         for(var i = 0; i < werte.length; i++){
                 if(werte[i] == '')
                 	continue;
         	var name = explode('[/]', werte[i]);
                 if(name[2] == undefined)
                 	continue;
                 list = list + '<tr bgcolor="' + ((i % 2 == 0) ? colors[1] : colors[0]) + '"><td>' + name[2] + '</td><td><a href="#" onClick="chose(\'' + i + '\');return false;">Wählen</a> | <a href="#" onClick="entf(\'' + i + '\');return false;">Löschen</a></td></tr>';
         }
         if(liste == '' || name[2] == undefined)
         	list = list + '<tr><td bgcolor="' + colors[0] + '" colspan="2">Keine Einträge vorhanden!</td></tr>';
         list = list + '</table>';
         document.getElementById('liste').innerHTML = list;
}

function entf(id){
         var neu = new Array();
         var x = 0;
	for(i = 0;i < liste.length; i++){
         	if(id != i){
                 	neu[x] = liste[i];
                         x++;
                 }
         }
         liste = neu;
         var werte = implode('|', neu);
         set_cookie('book', werte);
         booklist();
}

function chose(id){
         var name = explode('[/]', liste[id]);
         document.getElementById('prenumber').value = name[0];
         document.getElementById('number').value = name[1];
         blocking('book', 0);
         blocking('step1', 1);
}

var capture = 0;
function send(){
	var message = '';
         if(document.getElementById('content').value.length == 0)
         	message = 'Sie haben keinen Text eingegeben!';
         else if(document.getElementById('content').value.length > smsmaxchars)
         	message = 'Sie haben mehr als ' + smsmaxchars + ' Zeichen eingegeben!';
         else if(document.getElementById('number').value.length < 5)
         	message = 'Die angegebene Handynummer ist zu kurz!';
         else if(!is_int(document.getElementById('number').value))
         	message = 'Die angegebene Handynummer ist fehlerhaft!';
         else
         	message = '';
         if(message != ""){
         	document.getElementById('message').innerHTML = '<font color="#820321">' + message + '</font>';
                 blocking('message', 1);
         }
         else{
                 blocking('message', 0);
                 blocking('step1', 0);
                 document.getElementById('ccontent').value = document.getElementById('content').value;
                 var prenumber = '';
                 for(i = 0;i < document.forms[1].elements[0].length; i++){
                         if(document.forms[1].elements[0].options[i].selected == true){
                         	prenumber = document.forms[1].elements[0].options[i].value;
                                 break;
                         }
                 }
                 document.getElementById('cnumber').value = prenumber + ' ' + document.getElementById('number').value;
                 blocking('step2', 1);
                 if(capture == 0){
                         document.getElementById('capture').innerHTML = '<b>Code wird geladen...</b><br><img src="/images/loading.gif" border="0">';
                         ajaxhandler('get', 'action=getCapture', '');
                 }
         }
         return false;
}

function sendprocess(){
	document.getElementById('message3').innerHTML = '<b>SMS wird gesendet</b><br>Verbindung zum Gateway wird hergestellt...<br><img src="/images/loading.gif" border="0">';
         setTimeout('sendprocess2()', 5000);
}

function sendprocess2(){
	document.getElementById('message3').innerHTML = '<b>SMS wird gesendet</b><br>SMS-Text wird codiert und übertragen...<br><img src="/images/loading.gif" border="0">';
         setTimeout('sendprocess3()', 5000);
}

function sendprocess3(){
	document.getElementById('message3').innerHTML = '<b>Herzlichen Gl&uuml;ckwunsch!</b><br>Ihre SMS wurde erfolgreich gesendet!';
}

function newads(){
	window.open('/ads.php', 'ads');
}

function checkcapture(){
	var message = '';
         var code = document.getElementById('ccapture').value;
         if(capture == 0)
         	message = 'Bitte warten Sie bis der Code geladen wurde!';
         else if(document.getElementById('ccapture').value.length < 5)
         	message = 'Der angegebene Code ist zu kurz!';
         if(message != ""){
         	document.getElementById('message2').innerHTML = '<font color="#820321">' + message + '</font>';
                 blocking('message2', 1);
         }
         else{
                 document.getElementById('capture').innerHTML = '<b>Code wird überprüft...</b><br><img src="/images/loading.gif" border="0">';
                 blocking('message2', 0);
                 ajaxhandler('get', 'action=checkCapture&id=' + capture + '&code=' + code, '');
         }
}
