function init(lang)
{
	prefs = new Language(lang);
	//alert(prefs.getMsg('settings.backend'));
}

function SMSCaptcha()
{
	var me = this;
	var buffer = '';
	var error = '';
	var backend = prefs.getMsg('settings.backend');
	var waittime = 5;
	
	me.smsSendButton = $('send');
	me.smsCode = $('captcha_code');
	me.smsAGB = $('cb_agb');
	me.smsNonce = $('nonce');
	me.phpSession = $('session');
	
	me.sendSMS = function()
	{
	   //Absendebutton speichern
	   buffer = me.smsSendButton.innerHTML;
	   me.smsSendButton.innerHTML = '<span class="ajaxloader">&nbsp;</span>';
	   try
	   {
		     var values = {};
		     if(me.smsCode.value != '')
		     {
		        values['code'] = me.smsCode.value;
		     }
		     else
		     {
		        throw '600';
		     }
		     if(me.smsAGB.checked)
		     {
		        values['agb'] = 1;
		     }
		     else
		     {
		        throw '700';
		     }
		     if(me.smsNonce.value != '' && me.phpSession.value != '')
		     {
		    	 values[me.phpSession.name] = me.phpSession.value; 
		    	 values['nonce'] = me.smsNonce.value;
		     }
		     else
		     {
		    	 throw '400';
		     }

			 new Ajax.Request(
					backend,
					{
						method: 'post',
						parameters: values,
						onSuccess: function(xml_http) {
							me.getSend(xml_http.responseText);						
						}
					});
	   }
	   catch(e)
	   {
	         var json = {};
	         json['error'] = e;
	         me.getSend(Object.toJSON(json));		   
	   }		
	};
	
   me.getSend = function(json)
   {
	      var html = false;
	      try
	      {
	         var data = json.evalJSON(true);
	         if(typeof data['error'] != 'undefined')
	         {
	            if(data['error'] != 100) 
	            {
	               if(prefs.getMsg('error.' + data['error']) != '')
	               {
	                  html = new Array();            
	                  html.push(prefs.getMsg('error.' + data['error']));
	               }
	               else
	               {
	                  throw Error('');
	               }
	            }
	            else
	            {
	            	Modalbox.show('<div id="modal"><p>' + prefs.getMsg('error.100')  + '</p><div id="counter">' + waittime + '</div></div>', {title: prefs.getMsg('meta.title'), width: 400});
	            	me.countdown();
	            }
	         }
	      }
	      catch(e)
	      {
	         html = new Array();            
	         html.push(prefs.getMsg('error.else'));         
	      }
	      if(html) //neue Nummer
	      {
	    	  error = data['error'];
	    	  Modalbox.show('<div id="modal"><p>' + html.join('') + '</p><input type="button" value="' + prefs.getMsg('error.button.reload') + '" class="button" id="reload"></div>', {title: prefs.getMsg('error.h1'), width: 400});
	    	 $('reload').onclick = function()
	    	 {
	    		 if(typeof error != 'undefined')
	    		 {
	    			 if(error < 600)
	    			 {
	    				 window.location.replace(prefs.getMsg('settings.home'));
	    			 }
	    			 else
	    			 {
	    				 window.location.reload();
	    			 }
	    		 }
	    	 };
	      }
	      me.smsSendButton.innerHTML = buffer;
	      return false;   
   };
   
   me.countdown = function() {
   	if(waittime != 0) {
   		waittime = waittime-1;
   		$('counter').update(waittime);
   		setTimeout("smsCaptcha.countdown()", 1000);
   	}
   	else {
   		window.location.replace(prefs.getMsg('ad.href')); 
   	}	
   }
	
	//Event-Handler
	me.smsSendButton.onclick = me.sendSMS;
}


/* SMS Formular Klasse */
function SMSForm()
{
   var me = this;
   var smsMaxLength = 160;
   var smsLength = 0;
   var smsText = '';   
   var backend = prefs.getMsg('settings.backend');
   var buffer = '';
   
   /* DOM-Objekte */
   me.smsTextField = document.getElementById('smsText');
   me.smsNumberField = document.getElementById('smsNumber');
   me.smsLengthField = document.getElementById('smsLength');
   me.smsCompressField = document.getElementById('compress');
   me.smsDLRCB = document.getElementById('dlr_cb'); //Checkbox angeklickt : 1 sonst 0 --> Antwort SMS
   me.smsTimeCB = document.getElementById('time_cb'); //Checkbox angeklickt : 1 sonst 0 --> VerspŠteter Versand
   me.smsSendButton = document.getElementById('send');
   me.smsDLRField = document.getElementById('smsDLR');
   me.smsDay = document.getElementById('day');
   me.smsDayUp = document.getElementById('dayUp');
   me.smsDayDN = document.getElementById('dayDN');
   me.smsMonth = document.getElementById('month');
   me.smsMonthUp = document.getElementById('monthUp');
   me.smsMonthDN = document.getElementById('monthDN');
   me.smsYear = document.getElementById('year');
   me.smsYearUp = document.getElementById('yearUp');
   me.smsYearDN = document.getElementById('yearDN');
   me.smsHours = document.getElementById('hours');
   me.smsHoursUp = document.getElementById('hoursUp');
   me.smsHoursDN = document.getElementById('hoursDN');
   me.smsMinutes = document.getElementById('minutes');
   me.smsMinutesUp = document.getElementById('minutesUp');
   me.smsMinutesDN = document.getElementById('minutesDN');


   
   /* SMS-Formular Funktionen */
   
   me.countSMS = function() //zŠhlt noch verbleibende Zeichen
   {
      var chars = smsMaxLength - me.smsTextField.value.length;
      if(chars != smsLength)
      {
         if(chars < -999)
         {
            chars = -999;
         }
         me.smsLengthField.innerHTML = chars;
      }
      smsLength = chars;
   };
   
   me.compressSMS = function()
   {
      var words = me.smsTextField.value.split(' ');
	  smsText = me.smsTextField.value;
	  for(var i = 0; i < words.length; i++)
	  {
	     words[i] = words[i].charAt(0).toUpperCase()+words[i].substr(1);
	  }
	  me.smsTextField.value = words.join('');
	  me.countSMS();
	  me.smsTextField.setAttribute('readOnly', 'readOnly');
	  me.smsCompressField.innerHTML = '<a href="' + prefs.getMsg("form.link.href.decompress") + '">' + prefs.getMsg("form.link.decompress") + '</a>';
   };
	   
   me.decompressSMS = function()
   {
	   me.smsTextField.value = smsText;
	   me.countSMS();
	   smsText = '';
	   me.smsTextField.removeAttribute('readOnly');
	   me.smsCompressField.innerHTML = '<a href="' + prefs.getMsg("form.link.href.compress") + '">' + prefs.getMsg("form.link.compress") + '</a>';
   };
   
   //Die aktuelle Zeit in den Textfeldern einfŸgen bei weiteren Optionen in der Canvas View
   me.loadTime = function() 
   {
      var dateobj = new Date();
      var day = dateobj.getDate();
      var str = day.toString();
      str = (day < 10) ? '0' + str : str; //fŸhrende Null anfŸgen
	  me.smsDay.value = str;
	  var month = dateobj.getMonth()+1;
	  var str = month.toString();
	  str = (month < 10) ? '0' + str : str; //fŸhrende Null anfŸgen
	  me.smsMonth.value = str;
	  me.smsYear.value = dateobj.getFullYear();
	  var hours = dateobj.getHours();
	  var str = hours.toString();
	  str = (hours < 10) ? '0' + str : str; //fŸhrende Null anfŸgen
	  me.smsHours.value = str;
	  var minutes = dateobj.getMinutes();
	  var str = minutes.toString();
	  str = (minutes < 10) ? '0' + str : str; //fŸhrende Null anfŸgen
	  me.smsMinutes.value = str;
	  me.setTimeHandler();
   };
   
   //erhšht den Wert von elem bis zum Maximum
   me.changeTimeUp = function (event, elem, max, min)
   {
   	var t = elem.value;
	var int = parseInt(t, 10); //in integer umwandeln zur Basis 10
	t = min || '01';
	if(int < parseInt(max, 10))
	{
		int = int + 1;
		t = (int < 10) ? 0 + int.toString() : int.toString();
	}
	elem.value = t;
	me.getEventSource(event).blur();
   };
   
   //verringert den Wert von elem bis zum Minimum
   me.changeTimeDN = function (event, elem, max, min)
   {
   	var t = elem.value;
	var int = parseInt(t, 10);
	t = max;
	var minValue = min || '01'
	if(int > parseInt(minValue, 10))
	{
		int = int - 1;
		t = (int < 10) ? 0 + int.toString() : int.toString();
	}
	elem.value = t;
	me.getEventSource(event).blur();
   };
   

/* Sende Teil begin */  
   me.sendSMS = function()
   {
	   //Absendebutton speichern
	   buffer = me.smsSendButton.innerHTML;
	   me.smsSendButton.innerHTML = '<span class="ajaxloader">&nbsp;</span>';
	   try
	   {
		     var values = {};
		     if(me.smsNumberField.value != '')
		     {
		        values['smsNumber'] = me.smsNumberField.value;
		     }
		     else
		     {
		        throw '200';
		     }
		     if(me.smsTextField.value != '')
		     {
		        values['smsText'] = me.smsTextField.value;
		     }
		     else
		     {
		        throw '300';
		     }
		     values['email'] = (me.smsDLRCB.checked) ? me.smsDLRField.value : 0;
		     values['time'] = (me.smsTimeCB.checked) ? Date.UTC(me.smsYear.value,me.smsMonth.value-1,me.smsDay.value,me.smsHours.value,me.smsMinutes.value,0,0) / 1000 : 0;		
			 new Ajax.Request(
					backend,
					{
						method: 'post',
						parameters: values,
						onSuccess: function(xml_http) {
							me.getSend(xml_http.responseText);						
						}
					});
	   }
	   catch(e)
	   {
	         var json = {};
	         json['error'] = e;
	         me.getSend(Object.toJSON(json));		   
	   }
   };
   
   me.getSend = function(json)
   {
	      var html = false;
	      try
	      {
	         var data = json.evalJSON(true);
	         if(typeof data['error'] != 'undefined' && data['error'] != '')
	         {
	            if(data['error'] != 100) 
	            {
	               if(prefs.getMsg('error.' + data['error']) != '')
	               {
	                  html = new Array();            
	                  html.push(prefs.getMsg('error.' + data['error']));
	               }
	               else
	               {
	                  throw Error('');
	               }
	            }
	            else if (typeof data['nonce'] != 'undefined')
	            {
	            	$('nonce').value = data['nonce'];
	            	$('form').submit();
	            }
	            else
	            {
	               throw Error('');
	            }
	         }
	      }
	      catch(e)
	      {
	         html = new Array();            
	         html.push(prefs.getMsg('error.else'));         
	      }
	      if(html) //neue Nummer
	      {
	    	  Modalbox.show('<div id="modal"><p>' + html.join('') + '</p><input type="button" value="' + prefs.getMsg('error.button.ok') + '" class="button" onclick="Modalbox.hide();"></div>', {title: prefs.getMsg('error.h1'), width: 400});
	    	  me.smsSendButton.innerHTML = buffer;
	      }
	      return false;   
   };
   
   
   /* Event-Handler hinzufŸgen */
   //€nderungen im SMS-Textfeld
   me.smsTextField.onfocus = me.countSMS;
   me.smsTextField.onblur = me.countSMS;
   me.smsTextField.onchange = me.countSMS;
   me.smsTextField.onkeyup = me.countSMS;
   me.smsTextField.onkeydown = me.countSMS;
   
   
   //Einstellen der SMS fŸr verzšgerten Versand
   me.setTimeHandler = function()
   {
      me.smsDayUp.onclick = function(event){ me.changeTimeUp(event, me.smsDay, '31'); };
      me.smsDayDN.onclick = function(event){ me.changeTimeDN(event, me.smsDay, '31'); };
      me.smsMonthUp.onclick = function(event){ me.changeTimeUp(event, me.smsMonth, '12'); };
      me.smsMonthDN.onclick = function(event){ me.changeTimeDN(event, me.smsMonth, '12'); };
      me.smsYearUp.onclick = function(event)
      {
         var date = new Date();
         me.changeTimeUp(event, me.smsYear, (date.getFullYear() + 3).toString(), date.getFullYear().toString());
      };
      me.smsYearDN.onclick = function(event)
      {
         var date = new Date();
         me.changeTimeDN(event, me.smsYear, (date.getFullYear() + 3).toString(), date.getFullYear().toString());
      };
      me.smsHoursUp.onclick = function(event){ me.changeTimeUp(event, me.smsHours, '23', '00'); };
      me.smsHoursDN.onclick = function(event){ me.changeTimeDN(event, me.smsHours, '23', '00'); };
      me.smsMinutesUp.onclick = function(event){ me.changeTimeUp(event, me.smsMinutes, '59', '00'); };
      me.smsMinutesDN.onclick = function(event){ me.changeTimeDN(event, me.smsMinutes, '59', '00'); };
   };

   
   /* Browserweichen */
   
   me.getEventSource = function(event)
   {
      if(event) // Moz
      {
         return event.target;
      }
      if(window.event) // IE
      {
         return window.event.srcElement;
      }
   };
   
}