/*!
 * @author stefan.schult
 * @id $Id: functions.js 322 2010-05-06 15:05:42Z stefan.schult $
 */
var isStartPage = false;




function init() {

	$('body').addClass('JS');
	$('input[type=radio], input[type=checkbox]').addClass('raCheck');

	$('textarea').maxlength({
			events: [], // Array of events to be triggerd
			maxCharacters: 450, // Characters limit
			status:	true, // True to show status indicator bewlow the element
			statusClass: "status", // The class on the status div
			statusText: "Zeichen sind übrig", // The status text
			notificationClass: "notification",	// Will be added to the emement when maxlength is reached
			showAlert: false, // True to show a regular alert message
			alertText: "You have typed too many characters.", // Text in the alert message
			slider:	false // Use counter slider
		});
	// Plugins
//	/*$('input.preFilled').inpPrefilled();
//	$('.contactTeaserMod').toggleHiddenContent('img');
//	$('.intrCalcMod').intrCalc();
	$('.faqMod').faq(function(){
		var $this = $(this);
		var textAnzeigen = $this.find( "input[name=toggleTextOpen]" ).val();
		var textVerbergen = $this.find( "input[name=toggleTextClose]" ).val();
		return {
				init: function( condition ) {
					var a = $(" <a />");
					a.attr("href", "javascript:void(0);").text( textAnzeigen ).attr("class", "showDD");
					$(this).wrapInner($("<span />"));
					$(this).append(a);
//					a = $(" <a />");
//					a.attr("href", "javascript:void(0);").text( textVerbergen ).attr("class", "hideDD");
//					$(this).next().append(a);
				},
				doSomething: function( condition ) {
					$(this).find("a").text(condition ? textVerbergen : textAnzeigen);
					if(condition){
						var h = $(this).next().outerHeight();
						$(this).find("a").css('bottom', (-h)+"px");
					} else {
						$(this).find("a").css('bottom', 0+"px");
					}
				}
			};
	});

	$('input[id*=disclosure_disclosure.form.both.debt]').moneyCalculator(function(value){
		$('#summaryDept input')[0].value = value;
	});
	$('input[id*=disclosure_disclosure.form.both.monthRates]').moneyCalculator(function(value){
		$('#summaryRates input')[0].value = value;
	});

	if($('#header label').hasElements()){
		var label = $('#header form label').text();
		$('#header form input')[0].value = label;
		$('#header form input')
				.focus(function(){
					if(this.value == label){
						this.value = '';
					}
				})
				.blur(function(){
					if(this.value == ''){
						this.value = label;
					}
				});
	};

	if($('.calculatorMod').hasElements()){
		function arrayKeys(array){
			return r;
		}
		var calcMod = $('.calculatorMod');
		var tableObject, calcMonthlyNettoIncome, calcMonthlyNettoIncomeResult, calcPersons, calcPersonsResult, calcResult, calcResultDefault, calcMonthlyNettoIncomeValue, calcPersonsValue;

		calcMod.setTableObject();
		tableObject = calcMod.data('tableObject');

		calcMod.addClass('JS');

		calcMonthlyNettoIncome = calcMod.find('.monthlyNettoIncome .iSlider');
		calcMonthlyNettoIncomeResult = calcMod.find('.monthlyNettoIncome .result');
		calcPersons = calcMod.find('.persons .iSlider');
		calcPersonsResult = calcMod.find('.persons .result');
		calcResult =  calcMod.find('.calculaterResult .fieldValue');
		calcResultDefault = "Einkommen nicht pfändbar";

		calcMonthlyNettoIncomeValue = 0;
		calcPersonsValue = 0;

		var updateResults = function(){
			var v = tableObject.getValue(calcMonthlyNettoIncomeValue);
			calcMonthlyNettoIncomeResult.text(v.result + " Euro");
			var p = v.persons[calcPersonsValue];
			if(p == "0" || p == "0,00"){
				calcResult.text(calcResultDefault);
			} else {
				calcResult.text(p + " Euro");
			}
		};

		calcMonthlyNettoIncome.slider({
			max: tableObject.getKeys().length-1,
			animate: true,
			change: function(event, ui) {
				calcMonthlyNettoIncomeValue = ui.value;
				updateResults();
			},
			slide: function(event, ui) {
				calcMonthlyNettoIncomeValue = ui.value;
				updateResults();
			}
		});
		calcPersons.slider({
			max: tableObject.valueArray[0].persons.length-1,
			animate: true,
			change: function(event, ui) {
				calcPersonsValue = ui.value;
				calcPersonsResult[0].className = '';
				calcPersonsResult.addClass('result res' + ui.value);
				updateResults();
			},
			slide: function(event, ui) {
				calcPersonsValue = ui.value;
				calcPersonsResult[0].className = '';
				calcPersonsResult.addClass('result res' + ui.value);
				updateResults();
			}
		});

	};

	if($('.registration fieldset.selfEmployed').hasElements()){
		var fieldset = $('.registration fieldset.selfEmployed');
		var errorP = $(fieldset.find('.error')[0].firstChild.nodeValue);
		fieldset.find('input[value="ja"]').click(function(){
			fieldset.find('.raCheckBoxes').before(errorP);
		});
		fieldset.find('input[value="nein"]').click(function(){
			fieldset.find('.errorText').remove();
		});
	}

	if($('.disclosure input[name=sessionKeepAlive]').hasElements()){
		var sessionKeepAlive = $('.disclosure input[name=sessionKeepAlive]')[0].value;
		$(document).everyTime(180000, function(i) {
			$.get(sessionKeepAlive, { timestamp: Number(new Date())}, function(data) {});
		});
	}

	/* tabindex */
	if($('.disclosure input').hasElements()){
		var tabIndex = 1;
		$('.disclosure fieldset').each(function(){
			$(this).find('tr td:nth-child(2n) :input').each(function(){
				tabIndex+=100;
				$(this).attr('tabindex', tabIndex);
			});
			$(this).find('tr td:nth-child(3n) :input').each(function(){
				tabIndex+=100;
				$(this).attr('tabindex', tabIndex);
			});
		});
		$('.disclosure button').each(function(){
			tabIndex+=100;
			$(this).attr('tabindex', tabIndex);
		});
		tabIndex = $('.disclosure .donorsList :input').first().attr('tabindex') || tabIndex;
		$('.disclosure .donorsList :input').each(function(){
			$(this).attr('tabindex', tabIndex++);	
		});
//		var tempInputs = [];
//		$('[tabindex]').each(function(){
//			tempInputs[$(this).attr('tabindex')*1] = $(this);
//		});
//		tabIndex = 1;
//		$(tempInputs).each(function(){
//			if(this != undefined && this != window) {
//				this.attr('tabindex', tabIndex++);
//			}
//		});
	}

	if($('.disclosure:not(.disclosureSuccess) .donorsList').hasElements() && typeof(isLteIe7) == 'undefined'){
		var trs = $('.donorsList tr:not(.summary):not(.error):not(:first-child)');
		var inputs = trs.find(':input');
		var indexFilled = -1;
		inputs.each(function(i){
			if(this.value != ""){
				indexFilled = i;
			}
		});
		indexFilled = Math.ceil((indexFilled/4)/3);
		if(indexFilled == 0){
			indexFilled = 1;
		}
		var packages = [];
		var p = $();
		trs.each(function(i){
			p.push(this);
			if(i%3 == 2){
				packages.push(p);
				if(packages.length>indexFilled){
					p.addClass('inv');
					p.find(':input').each(function(){
						$(this).data('tabindex', $(this).attr('tabindex'));
						$(this).removeAttr('tabindex');
					});
				}
				p = $();
			};
		});
		if(p.length > 0) {
			packages.push(p);
			if(packages.length>indexFilled){
				p.addClass('inv');
				p.find(':input').each(function(){
					$(this).data('tabindex', $(this).attr('tabindex'));
					$(this).removeAttr('tabindex');
				});
			}
		}
		if(indexFilled < packages.length){
			var sumTd = $('.donorsList tr.summary>td');
			sumTd
				.append(
					$('<a href="javascript:void(0)"><strong>+</strong> ' + sumTd[0].firstChild.nodeValue + '</a>"').click(function(){
						packages[indexFilled++].removeClass('inv')
						.find(':input').each(function(){
							$(this).attr('tabindex', $(this).data('tabindex'));
						});
						if(indexFilled>=packages.length){
							$(this).remove();
						}
					})
				);
		}
	}

}
$(document).ready(init);

function initializeGoogleMap( companyName, street, zipCity ) {
	if(typeof GBrowserIsCompatible != 'undefined') {
		if (GBrowserIsCompatible()) {
			var map = new GMap2(document.getElementById("map_canvas"));
			map.setCenter(new GLatLng(53.5545, 9.999), 15);

			var marker = new GMarker( new GLatLng( 53.553525, 10.002499 ) );

			map.addOverlay( marker );
			map.addControl(new GSmallMapControl());
			marker.bindInfoWindowHtml( "<p>"+ companyName +"<br />&nbsp;<br />"+ street +"<br />"+ zipCity +"</p>" );


		}
	}
}


