	/* ---------------------------- Forms page ---------------------- */	

	var saveClicked = false; // to prevent multiple ajax requests for each click

	function saveSuccess(data) {
		saveClicked = false;
		$('input.loading').removeClass('loading');
		
		var errors = [];
		
		if(data){
			if (data.substr(0, 5) == 'error') {
				
				var splitted = data.split(":");

				if (splitted[1] == '10')
					errors[0] = error_invalid_number[language];
				
				if (splitted[1] == '11')
					errors[0] = error_invalid_password[language];
				
				if (splitted[1] == '12')
					errors[0] = error_multiple_attendance[language];

				if (splitted[1] == '13')
					errors[0] = error_prize_invalid[language];

				setErrors(errors);
				return false;
			}
			
			window.location = end_page_location + data;
		}
		else{
			errors[0] = 'Could not store data';
			setErrors(errors);
		}
		
		return false;
	}
	
	function reminderSuccess(data) {
		$('input.loading').removeClass('loading');
			
		var errors = [];
		
		if(data){
			if (data.substr(0, 5) == 'error') {
				
				var splitted = data.split(":");

				if (splitted[1] == '10')
					errors[0] = error_invalid_number[language];
				
				if (splitted[1] == '11')
					errors[0] = error_invalid_password[language];
				
				if (splitted[1] == '12')
					errors[0] = error_multiple_attendance[language];

				if (splitted[1] == '13')
					errors[0] = error_prize_invalid[language];

				setErrors(errors);
				return false;
			}
			
			if(data.substr(0,7) == 'success') {
				$("#reminder").empty().html("<p>Vielen Dank f&uuml;r Ihr Vertrauen</p><p>Sie werden in 10 Sekunden zur Hauptseite von H&ouml;ffner weitergeleitet.</p>");
				window.setTimeout("redirectHome()",10000);
			}
		}
		else{
			errors[0] = 'Could not store data';
			setErrors(errors);
		}
	}
	
	function redirectHome(){
		window.location = "http://www.hoeffner.de";
	}
	
	function saveError(xhr, ajaxOptions, thrownError){
		saveClicked = false;
		$('input.loading').removeClass('loading');
        alert(xhr.status);
        alert(thrownError);
		return false;
    }    

	function submitForm() {
	
		if($(this).validate().form() && !saveClicked)
		{
			saveClicked = true;
			$("#" + this.id + ' input[type="submit"]').addClass('loading');
			
			if(this.id=='freminder'){
				$.ajax({
					type: 'POST',
					url: gateway_location + 'gateway.php?action=storeReminder',
					data: $(this).serialize(),
					success: reminderSuccess,
					error: saveError
				});
			}
			else
			{
				$.ajax({
					type: 'POST',
					url: gateway_location + 'gateway.php?action=storeCustomer',
					data: $(this).serialize(),
					success: saveSuccess,
					error: saveError
				});
			}
		
			
		}
		return false;
	}

	function setErrors(errors) {
		
		$('#errors').empty();

		if (errors.length > 0) {
			p=document.createElement('p');
			for(i=0; i<errors.length; i++) {
				// Solution to decode html entities! see: http://www.daniweb.com/forums/thread137235.html#
				tarea=document.createElement('textarea');
				tarea.innerHTML = errors[i];
				textNode = document.createTextNode(tarea.value);
				p.appendChild(textNode);
				p.appendChild(document.createElement('br'));
			}

			$('#errors').append(p);
		}
	}		

	function insertFormPrivate(id_div1) {
		insertForm(gateway_location + "gateway.php?action=getFields&lotteryid="+d.lid+"&formtype=private&isocode="  + language, id_div1, 'private');
	}

	function insertFormPublic(id_div1) {
		insertForm(gateway_location + "gateway.php?action=getFields&lotteryid="+d.lid+"&formtype=public&isocode="  + language, id_div1, 'public');
	}

	function insertFormsBoth(id_div1, id_div2) {
		insertForm(gateway_location + "gateway.php?action=getFields&lotteryid="+d.lid+"&formtype=private&isocode=" + language, id_div1, 'private');
		insertForm(gateway_location + "gateway.php?action=getFields&lotteryid="+d.lid+"&formtype=public&isocode="  + language, id_div2, 'public');				
	}
	
	function loadForm(formOptions) {
		try{
			for(i=0;i<formOptions.length;i++){
				f = formOptions[i];
				insertForm(gateway_location + "gateway.php?action=getForm&lotteryid="+d.lid+"&formtype="+f.formtype+"&isocode=" + language, f.target, f.formtype);
			}
		}
		catch(e) { loadRetry();	}
	}
	
	function loadReminder(nop, guid, target) {
		if(nop){
			insertForm(gateway_location + "gateway.php?action=getForm&lotteryid=4&formtype=reminder&isocode="+language, target, 'reminder', new Array({tag:'input',type:'hidden',value:guid,name:'guid'}));
		}
		else
		{
			$("#reminder").empty().html("<p>Vielen Dank f&uuml;r Ihr Vertrauen</p><p>Sie werden in 10 Sekunden zur Hauptseite von H&ouml;ffner weitergeleitet.</p>");
			window.setTimeout("redirectHome()",10000);
		}
	}
	
    function insertForm(src, target, formmode, appendix){
    	
    	// Add "loading" message
		
		var dest = $('#'+target);
		
    	if (show_loading_message) {
			dest.html('<div class="loading">' + loading_message[language] + '</div>');
    	}
		
		$.get(src, function(xmlDoc){
		
			dest.empty();
			form = document.createElement('form');
			form.setAttribute('id','f'+formmode);
			form.setAttribute('mode', formmode);
			form.setAttribute('method', 'POST');
			dest.append(form);
			$(form).bind('submit', submitForm);
			
			var root = xmlDoc.getElementsByTagName("Fields")[0];
			var htmlElement = xmlDoc.getElementsByTagName("html")[0];

			element = document.getElementById('f'+formmode);
			for(i=0; i<htmlElement.childNodes.length; i++) {
				cloneNamespaceSafe(htmlElement.childNodes[i], element, document, 0);
			}
			
			f_lotteryid=document.createElement('input');
			f_lotteryid.type='hidden';	f_lotteryid.name = f_lotteryid.id = 'lotteryID';
			if(typeof(d) != 'undefined'){ f_lotteryid.value = d.lid; } else { f_lotteryid.value = root.getAttribute('lotteryId'); }
			$(form).append(f_lotteryid);			
			
			if(typeof(d) != 'undefined'){
				f_priceid=document.createElement('input');
				f_priceid.type='hidden'; f_priceid.name = f_priceid.id = 'prizeID';
				f_priceid.value = d.pid; 
				$(form).append(f_priceid);

				f_price=document.createElement('input');
				f_price.type='hidden'; f_price.name = f_price.id = 'prize';
				if(d){ f_price.value = d.pv; } 
				$(form).append(f_price);
			}
			
			if(typeof(appendix) != 'undefined')
			{
				for(i=0; i<appendix.length; i++){
					field = document.createElement(appendix[i].tag);
					field.type = appendix[i].type; field.value = appendix[i].value; field.name = appendix[i].name;
					$('#f'+formmode).append(field);
				}
			}
			
			submitbutton = $('#' + formmode + '_button');
			if (submitbutton) {
				// Update submit button label
				submitbutton.val(send_button[formmode][language]);
				//submitbutton.bind('click', submitForm);
			}
		});	 
    }

	function cloneNamespaceSafe(element, destinationElement, destinationDoc, level) {
		
		if (element.nodeType == 1) 
		{
			var newElement = destinationDoc.createElement(element.nodeName);
			var i=0;
			
			for(i=0; i<element.attributes.length; i++) {
			  newElement.setAttribute(element.attributes[i].nodeName, element.attributes[i].nodeValue);
			}

			for(i=0; i<element.childNodes.length; i++) {
				cloneNamespaceSafe(element.childNodes[i], newElement, destinationDoc, level+1);
			}

			destinationElement.appendChild(newElement);
		} 
		else if (element.nodeType == 3) {
			destinationElement.appendChild(destinationDoc.createTextNode(element.nodeValue));
		}
	}

	/* ---------------------------- Confirm page ---------------------- */	
	
	var confirmTargetDivName;
	
	function confirmSuccess(data) {
		if ($.trim(data) == "ok")
			document.getElementById(confirmTargetDivName).innerHTML = confirm_success[language];
		else
			document.getElementById(confirmTargetDivName).innerHTML = confirm_fail[language];
	}		

	function confirmError(request, error) {
		document.getElementById(confirmTargetDivName).innerHTML = confirm_fail[language];
	}

	function confirmOptin(parameterNameGuid, targetDivName) {
		confirmTargetDivName = targetDivName;
		
		//parameters = getParameters();
		//var guid = parameters[parameterNameGuid];
		
		var guid = $.getURLParam(parameterNameGuid);
	    var poststr = "guid=" + encodeURI( guid );
		
		// Info: http://api.jquery.com/jQuery.post/
		$.ajax({
		  type: 'POST',
		  url: gateway_location + 'gateway.php?action=confirm',
		  data: poststr,
		  success: confirmSuccess,
		  error: confirmError,
		  dataType: 'text'
		});
	}
	
	function getParameters() {
		var qsParm = new Array();
		var query = window.location.search.substring(1);
		var parms = query.split('&');
		for (var i=0; i<parms.length; i++) {
			var pos = parms[i].indexOf('=');
			if (pos > 0) {
				var key = parms[i].substring(0,pos);
				var val = parms[i].substring(pos+1);
				qsParm[key] = val;
			}
		}
		
		return qsParm;
	} 			
		
	function trim(str, chars) {
		return ltrim(rtrim(str, chars), chars);
	}
 
	function ltrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
	}
 
	function rtrim(str, chars) {
		chars = chars || "\\s";
		return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
	}
	
	function loadRetry()
	{
		$("#formcontent").hide();
		$("#container").prepend('<div class="sorry"><h2>Es tut uns wirklich Leid, aber es trat ein Fehler auf.</h2><p>Bitte aktualisieren Sie diese Seite oder drehen Sie nocheinmal am Gl&uuml;cksrad</p><p><a href="http://hoeffner.dialogaktion.de">Zur&uuml;ck zum Gl&uuml;cksrad</a></p></div>');
	}
