// lightbox

jQuery(document).ready(function($){
    $('.lightbox').lightbox();
  });


$(document).ready(function(){
						   
	$(".downloads li").click(function(){
    	window.location=$(this).find("a").attr("href");return false;
	});
 
}); 

// Focus Funktion
$(document).ready(function() {
   $(".feld").each(function(){
   var wert = $(this).val();
   $(this).focus(function(){
     if ($(this).val() == wert) {
        $(this).val("");
     }
     })
   .blur(function(){
    if ($(this).val() == "") {
       $(this).val(wert);
    }
    });
   });
});

// This method check the content of the template search field. If the template
// search field is empty a messagebox is shown. If the template search field
// contains a text the form will submitted.
function checkSearchQuery() {
    var queryText = document.getElementById("searchQuery").value;
    if (queryText.length == 0 || (queryText == "Suchbegriff eingeben")) {
        window.alert("Es wurde kein Suchbegriff eingegeben.");
    } else {
        document.searchboxForm.submit();
    }
}

// Item box countdown

function ItemBoxCountDown(countDownField, timeoutField, createdField, link, seconds) {
    this.countDownField = countDownField;
    this.timeoutField = timeoutField;
    this.createdField = createdField;
    this.link = link;
    this.endTime = (new Date().getTime() / 1000) + seconds;
    this.start = startCountDown;
    this.update = updateItemBoxCountDown;
    this.intervalId = 0;
}

function startCountDown() {
    var self = this;
    this.intervalId = window.setInterval(function(){self.update();}, 0, 1000);
}

function updateItemBoxCountDown() {

    var diffInSeconds = this.endTime - (new Date().getTime() / 1000);

    if (diffInSeconds <= 0) {
        window.clearInterval(this.intervalId);
        this.countDownField.style.visibility = 'hidden';
        this.timeoutField.style.visibility = 'hidden';
        this.createdField.style.visibility = 'visible';
        this.link.className = '';
        return;
    }

    var timeHour = Math.floor(diffInSeconds / 3600);
	var timeMinutes = Math.floor((diffInSeconds / 60) % 60);

    if (timeMinutes == '0' && timeHour == '0') {
        timeMinutes = '1';
    }

    if (timeHour == 1) {
        timeHour = timeHour + " Stunde";
    } else {
        timeHour = timeHour + " Stunden";
    }

    if (timeMinutes == 1) {
        timeMinutes = timeMinutes + " Minute";
    } else {
        timeMinutes = timeMinutes + " Minuten";
    }

    this.countDownField.childNodes[0].nodeValue = timeHour + " und " + timeMinutes;
}


var endTime = 1000;

// Countdown counters
function countDown() {
	var textHour = document.getElementById("countDownHour").childNodes[0];
	var timeHour = Math.floor((endTime - (new Date().getTime() / 1000)) / 3600);
	var textMinutes = document.getElementById("countDownMinutes").childNodes[0];
	var timeMinutes = Math.floor(((endTime - (new Date().getTime() / 1000)) / 60) % 60);  
	if ((endTime - (new Date().getTime() / 1000)) <= 0) {
		$("#countdown").hide();
		$("#pdfaccount").show();
	}
	textHour.nodeValue = timeHour;
	textMinutes.nodeValue = timeMinutes;
}

/**
 * Personal PDF: Show the countdown box and hides the pdf account box.
 */
function showCountdown() {
	$("#countdown").show();
	$("#pdfaccount").hide();
}

function sendMessage(message) {
	
	try {
		document.getElementById("PDFObj").postMessage([message]);
	} catch (error) {
		alert("Error: " + error.name + "\nError message: " + error.message);
	}
}

// Select all Checkboxes (e.g. Favorits)

var checkflag = "false";

function check(form, prefix) {

    if (checkflag == "false") {
        for (i = 0; i < form.elements.length; i++) {
            if (form.elements[i].name.indexOf(prefix) != -1) {
                form.elements[i].checked = true;
            }
        }
        checkflag = "true";
        return "alle abwählen ";
    } else {
        for (i = 0; i < form.elements.length; i++) {
            if (form.elements[i].name.indexOf(prefix) != -1) {
                form.elements[i].checked = false;
            }
        }
        checkflag = "false";
        return "alle markieren";
    }
}

// Send PDF per Mail
function sendPDFMail(form, formArea, resultArea) {
	
	var dataString = 'mailTo=' + escape($('input#mailTo').val()) + '&subject=' + escape($('input#subject').val()) + '&message=' + escape($('textarea#message').val()); 
		
	$.ajax({
		  url: form.action,
		  data: dataString,
		  type: 'POST',
		  context: form,
		  success: function(data){
			  resultArea.firstChild.innerHTML = data;
			  formArea.style.display = 'none';
		  }
		});
}

/**
 * Returns to the input form after a mail error 
 */
function showMailForm() {
	var form = document.getElementById('form');
	var result = document.getElementById('result');
	
	form.style.display = 'block';
	result.firstChild.innerHTML = '';
}

/**
 * Prepare the E-Mail form after successfully sending a mail
 */
function showNewMailForm() {
	
	var form = document.getElementById('form');
	var result = document.getElementById('result');
	
	form.style.display = 'block';
	result.firstChild.innerHTML = '';
	document.getElementById('mailTo').value = '';
	document.getElementById('subject').value = '';
	document.getElementById('message').value = '';
	
}

/** 
 * Set lost password page
 */
function validatePasswortForm() {
	
	var password = document.getElementById("password").value;
	var password_confirm = document.getElementById("password_confirm").value;
	
	var valid = true;
	var errorMessage = "";
	
	if ((password.length < 8 || password_confirm.length < 8)
			|| password != password_confirm) {
		errorMessage += "- Password nicht angegeben bzw. Wiederholung und Password stimmen nicht überein. Außerdem muss das Passwort mindestens 8 Zeichen lang sein.\n";
		document.getElementById("password").style.borderColor = "#ff0000";
		document.getElementById("password_confirm").style.borderColor = "#ff0000";
		valid = false;
	} else {
		document.getElementById("password").style.borderColor = "";
		document.getElementById("password_confirm").style.borderColor = "";
	}
	
	if (valid == false)
		alert(errorMessage);
	else
		document.setlostpassword.submit();
}


/**
 * Register page
 */

function validateFormStep1() {

	var email = document.getElementById("email").value;
	var email_confirm = document.getElementById("email_confirm").value;
	var password = document.getElementById("password").value;
	var password_confirm = document.getElementById("password_confirm").value;
	var agb_checked = document.getElementById("agb2").checked;
	var payment_system = document.register.payment_system;

	payment_system_checked = false;
	for (i = 0; i < payment_system.length; i++) {
		if (payment_system[i].checked == true)
			payment_system_checked = true;
	}

	var valid = true;
	var errorMessage = "";

	if (payment_system_checked == false) {
		errorMessage += "- Es ist keine Zahlungsvariante ausgewählt.\n";
		valid = false;
	}

	if ((email.length == 0 || email_confirm.length == 0)
			|| email != email_confirm) {
		errorMessage += "- E-Mail nicht angegeben bzw. Wiederholung und E-Mail Adresse stimmen nicht überein\n";
		document.getElementById("email").style.borderColor = "#ff0000";
		document.getElementById("email_confirm").style.borderColor = "#ff0000";
		valid = false;
	} else {
		document.getElementById("email").style.borderColor = "";
		document.getElementById("email_confirm").style.borderColor = "";
	}

	if ((password.length < 8 || password_confirm.length < 8)
			|| password != password_confirm) {
		errorMessage += "- Password nicht angegeben bzw. Wiederholung und Password stimmen nicht überein. Außerdem muss das Passwort mindestens 8 Zeichen lang sein.\n";
		document.getElementById("password").style.borderColor = "#ff0000";
		document.getElementById("password_confirm").style.borderColor = "#ff0000";
		valid = false;
	} else {
		document.getElementById("password").style.borderColor = "";
		document.getElementById("password_confirm").style.borderColor = "";
	}

	if (agb_checked == false) {
		errorMessage += "- Sie müssen der AGB zustimmen.\n";
		document.getElementById("agb2").style.borderColor = "#ff0000";
		valid = false;
	} else {
		document.getElementById("agb2").style.borderColor = "";
	}

	if (valid == false)
		alert(errorMessage);
	else
		document.register.submit();
}

function validateFormBankStep2() {

	var firstname = document.getElementById("user_firstname").value;
	var lastname = document.getElementById("user_lastname").value;
	var address_city = document.getElementById("user_address_city").value;
	var address_zip = document.getElementById("user_address_zip").value;
	var address_street = document.getElementById("user_address_street").value;
	var address_country = document.getElementById('user_address_country').options[document
			.getElementById('user_address_country').selectedIndex].value

	var valid = true;
	var errorMessage = "";

	if (firstname.length == 0) {
		errorMessage += "- Vorname nicht angegeben\n";
		document.getElementById("user_firstname").style.borderColor = "#ff0000";
		valid = false;
	} else
		document.getElementById("user_firstname").style.borderColor = "";

	if (lastname.length == 0) {
		errorMessage += "- Nachname nicht angegeben\n";
		document.getElementById("user_lastname").style.borderColor = "#ff0000";
		valid = false;
	} else
		document.getElementById("user_lastname").style.borderColor = "";

	if (address_city.length == 0) {
		errorMessage += "- Ort nicht angegeben\n";
		document.getElementById("user_address_city").style.borderColor = "#ff0000";
		valid = false;
	} else
		document.getElementById("user_address_city").style.borderColor = "";

	if (address_zip.length == 0) {
		errorMessage += "- Postleitzahl nicht angegeben\n";
		document.getElementById("user_address_zip").style.borderColor = "#ff0000";
		valid = false;
	} else
		document.getElementById("user_address_zip").style.borderColor = "";

	if (address_street.length == 0) {
		errorMessage += "- Straße nicht angegeben\n";
		document.getElementById("user_address_street").style.borderColor = "#ff0000";
		valid = false;
	} else
		document.getElementById("user_address_street").style.borderColor = "";

	if (address_country.length == 0 || address_country == "-1"
			|| address_country == "-2") {
		errorMessage += "- Kein Land ausgewählt\n";
		document.getElementById("user_address_country").style.borderColor = "#ff0000";
		valid = false;
	} else
		document.getElementById("user_address_country").style.borderColor = "";

	if (valid == false)
		alert(errorMessage);
	else
		document.register.submit();

}

/**
 * Order further PDF's
 */
function validateBuyPDFsForm() {

	var agb_checked = document.getElementById("agb2").checked;
	var payment_system = document.buy.payment_system;

	payment_system_checked = false;
	for (i = 0; i < payment_system.length; i++) {
		if (payment_system[i].checked == true)
			payment_system_checked = true;
	}

	var valid = true;
	var errorMessage = "";

	if (payment_system_checked == false) {
		errorMessage += "- Es ist keine Zahlungsvariante ausgewählt.\n";
		valid = false;
	}

	if (agb_checked == false) {
		errorMessage += "- Sie müssen der AGB zustimmen.\n";
		document.getElementById("agb2").style.borderColor = "#ff0000";
		valid = false;
	} else {
		document.getElementById("agb2").style.borderColor = "";
	}

	if (valid == false)
		alert(errorMessage);
	else
		document.buy.submit();
}

/**
 * Delete account
 */
function validateDeleteAccount() {

	var deleteConfirmChecked = document.getElementById("deleteConfirm").checked;

	if (deleteConfirmChecked == false) {
		document.getElementById("deleteConfirm").style.borderColor = "#ff0000";
		alert("Sie müssen die Löschung bestätigen.");
	} else {
		document.getElementById("deleteConfirm").style.borderColor = "";
		document.deleteaccount.submit();
	}
}

function openPersonalPDF(link, baseLink, additionalSettings) {
	
	if (additionalSettings == undefined) {
		additionalSettings = "";
	} 
	
	format = $("#pdfTransformation").val();
	$(link).attr("href", baseLink + "/Format," + format + additionalSettings);
}
