<!--

var errorContainer; // caching
var errortext_1 = '';
var errortext_2 = '';
var errortext_3 = '';
var errortext_4 = '';
var errortext_5 = '';
var errortext_6 = '';
var errortext_7 = '';
var errortext_8 = '';
var filt_url = '/filt'; // default
var img_url = '../images'; // default

var tinyFontSize = "10pt";
var tinyFontFamily = "Sans Serif";

function init(text_1, text_2, text_3, text_4, text_5, text_6, text_7, text_8, text_9) {
	errortext_1 = text_1;
	errortext_2 = text_2;
	errortext_3 = text_3;
	errortext_4 = text_4;
	errortext_5 = text_5;
	errortext_6 = text_6;
	errortext_7 = text_7;
	errortext_8 = text_8;
	errortext_9 = text_9;
	this.errorContainer = document.getElementById("errorContainer");
	//initTinyMCE();
}

function initTinyMCE(){
	
	//alert('Mode ' + advancedMode + ' prev: ' +preview);
	var functions = "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,pagebreak,|,bullist,numlist,|,forecolor,backcolor,|,insertdate,inserttime";
		
	tinyMCE.init({
		// General options
		mode : "exact",
		elements : "bodyTextAreaAdvanced",
		theme : "advanced",
		plugins : "paste,safari,insertdatetime,pagebreak",
		
		// Theme options
		theme_advanced_buttons1 : functions ,
		theme_advanced_buttons2 : "",
		theme_advanced_buttons3 : "",
		plugin_insertdate_dateFormat : "%d.%m.%Y",
		plugin_insertdate_timeFormat : "%H:%M",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_resizing : false,
		remove_script_host : false,
		convert_urls : false,
		width : "100%",
		language : "de",
		convert_newlines_to_brs : true,
		force_p_newlines : false,
		force_br_newlines : false,
		forced_root_block : '',
		invalid_elements : "p",
		pagebreak_separator : "<p style=\"page-break-after:always;\"></p>",
		nowrap : true,
		remove_linebreaks : true,
		oninit : "myTinyInit",
		setup : function(ed) {
				ed.onKeyPress.add(function(ed, e) {
					submitAjaxForm('lettermaker','update');
				});
				ed.onClick.add(function(ed, e) {
					submitAjaxForm('lettermaker','update');
				});
				ed.onChange.add(function(ed, e) {
					submitAjaxForm('lettermaker','update');
				});
		},
		paste_auto_cleanup_on_paste : true,
		paste_remove_styles: true,
        paste_preprocess : function(pl, o) {
           if(o.content!=null){
			if(o.content.indexOf('<img')!=-1 ||
				o.content.indexOf('<a')!=-1){
				o.content = '';
			}
		  }
        },
        paste_postprocess : function(pl, o) {
        }
		
	});
}


function initTextStyle(font,size){
	tinyFontSize = size;
	tinyFontFamily = font;
}

function myTinyInit(){
	tinyMCE.get('bodyTextAreaAdvanced').getBody().style.fontSize=tinyFontSize;
	tinyMCE.get('bodyTextAreaAdvanced').getBody().style.fontFamily='\''+tinyFontFamily+'\'';
}

function changeFontFamily(){
	var value = document.lettermaker.fontFamily.value;
	tinyMCE.get('bodyTextAreaAdvanced').getBody().style.fontFamily='\''+value+'\'' ;
}

function changeFontSize(){
	var value = document.lettermaker.fontSize.value;
	tinyMCE.get('bodyTextAreaAdvanced').getBody().style.fontSize=value;
}

// setzen, wenn andere pfade
function initUrls(url_filt, url_img) {
	this.filt_url = url_filt;
	this.img_url = url_img;
}

/*
 * WARENKORB
 */
var letters; // caching
var parents; // caching
var product_action; // caching
function initShipping() {
	this.letters = document.briefversand.selectedID;
	this.parents = document.briefversand.parentOrder;
	this.product_action = document.briefversand.product_action;
}
var products; // caching: 2-dimensionales array, Produkte
var express; // caching: 1-dimensionales array, Express
var nExpressCount = 0; // wird benötigt um das deselectieren richtig zu
						// berechnen
var bIsExpres = false; // wird benötigt um die Gesamtsumme zu berechnen
var orders; // caching: 2-dimensionales array, Einzelbriefe
var attachmentArea; 
var shipping_price_total = 0;
var shipping_price_selected = 0;
var shipping_selected_nr = 0;
var action_check = false;

// zeigt beide Warenkorbpreise an
function showTopPrices() {
	var total_all_div = document.getElementById("total_all");
	var total_selected_div = document.getElementById("total_selected");
	var selected_nr_div = document.getElementById("selected_nr");
	total_all_div.innerHTML = (parseFloat(this.shipping_price_total)/100).toFixed(2).toString().replace(/\./g,",");
	total_selected_div.innerHTML = (parseFloat(this.shipping_price_selected)/100).toFixed(2).toString().replace(/\./g,",");
	selected_nr_div.innerHTML = this.shipping_selected_nr;
}

// berechnet den Preis für die selektierten Briefe
// wird beim ersten Aufruf der Seite benutzt
function calculateTopPrices(){
	this.shipping_price_selected = 0;
	this.shipping_selected_nr = 0;
	
	// PREISE KINDER
	for(i = 1; i < this.letters.length; i++) {
		if(this.letters[i].checked){
			for(io = 0; io < this.orders.length; io++) {
					try{
						if(this.orders[io]["orderID"] == parseInt(this.letters[i].value)) {
							this.shipping_price_selected += this.orders[io]["price"];
							this.shipping_selected_nr++;
							break;
						}
					}catch (noOrder){}
				}
		}
	}
	
	// PREISE PARENTS
	for(i = 1; i < this.parents.length; i++) {
		if(this.parents[i].checked){
			this.shipping_price_selected += parseInt(document.getElementById('price_'+this.parents[i].value).value);
			this.shipping_selected_nr += parseInt(document.getElementById('child_nr_'+this.parents[i].value).value);
		}
	}
	
	// PREISE ANZEIGEN
	showTopPrices();
}

// Parent-Checkbox wird aufgerufen
function organizeParentCheckbox(obj){
	// "Alle markieren"-Checkbox entfernen
	if(this.letters[0]){
		this.letters[0].checked = false; 
	}
	// Preis um den Parent-Preis anpassen
	if(obj.checked) {
		if(document.getElementById('orderDetails'))
			selectPage(false);
		else {
			this.shipping_price_selected += parseInt(document.getElementById('price_'+obj.value).value);
			this.shipping_selected_nr += parseInt(document.getElementById('child_nr_'+obj.value).value);
		}
	}
	else {
		this.shipping_price_selected -= parseInt(document.getElementById('price_'+obj.value).value);
		this.shipping_selected_nr -= parseInt(document.getElementById('child_nr_'+obj.value).value);
	}
	// Preis markierter Briefe anzeigen
	showTopPrices();
}

// Einzelbrief wird demarkiert/markiert
// 1) Preis rausrechnen
// 2) Markierung bei Alle und Parent Haekchen entfernen
function organizeSelections(obj, parentOrderID){ // Aufruf bei Einzelbrief
	var price;
	for(var i = 0; i < this.orders.length; i++) {
		try{
			if(this.orders[i]["orderID"] == obj.value) {
				price = this.orders[i]["price"];
				break;
			}
		}catch (noOrder){
		}
	}
	if(!obj.checked){
		this.shipping_price_selected -= price; // Preis herausrechnen
		this.shipping_selected_nr--; // Anzahl markierter Briefe -1
		this.letters[0].checked = false; // Alle entfernen
	} else {
		if(parentOrderID != null){ // den Fall gibt es nur in der Detailsicht
			for(var i = 1; i < parents.length; i++) {
				if(parents[i].value == parentOrderID) {
					if(parents[i].checked) {
						this.shipping_price_selected = 0;
						this.shipping_selected_nr = 0;
						parents[i].checked = false;
						break;
					}
				}
			}
		}
		this.shipping_price_selected += price;// Preis hineinrechnen
		this.shipping_selected_nr++; // Anzahl markierter Briefe +1
	}
	showTopPrices();
}

// All-Checkbox wird angeklickt
// hier ist ein boolean-Wert mitzugeben: selektieren oder deselektieren
function selectAll(all) {
	this.shipping_selected_nr = 0; // Anzahl selektierter auf 0 und dann zählen
	for (i = 1; i < this.letters.length; i++) {
		if(this.letters[i] && !this.letters[i].disabled){
			this.letters[i].checked = all;
	  	}
		if(all)
			this.shipping_selected_nr++;
	}
	for (i = 1; i < this.parents.length; i++) {
		if(!this.parents[i].disabled){
				this.parents[i].checked = all;
		}
		if(all)
			this.shipping_selected_nr+=parseInt(document.getElementById('child_nr_'+this.parents[i].value).value);
	}
	if(all)
		this.shipping_price_selected = shipping_price_total;
	else
		this.shipping_price_selected = 0;
  showTopPrices();
}

// Aufruf, wenn auf der Detailsicht alle Kinder markiert werden sollen
// hier ist ein boolean-Wert mitzugeben: selektieren oder deselektieren
function selectPage(all) {
	if(all) // Parent deselektieren
		this.parents[1].checked = false;
	for (i = 1; i < this.letters.length; i++) {
			if(this.letters[i] && !this.letters[i].disabled){
				this.letters[i].checked = all;
		  	}
	}
	calculateTopPrices();
}

// für Warenkorb: Alle Markierungen aufheben, wenn
// Anlage für Einzelbrief ausgewählt wird.
function deselectAllIfSingleAttachment(el){
	if(el.childNodes){
		for(var c=0; c < el.childNodes.length; c++){
			var url = el.childNodes[c].src;
			if(url){
				if(url.indexOf('open') != -1 ) {
					if(this.letters && this.letters[0]){
						this.letters[0].checked = false;
						selectAll(false);
					}
				}
			}
		}
	}
}
// Warenkorb: Beschreibung fuer Auswahlbox zuklappen
function closeDescription() {
	document.getElementById("shippingOptions").style.display="none";
	document.getElementById("sendButton").style.display = "";
	this.product_action.options[0].selected = true;
}
// Warenkorb: Beschreibung fuer Produkte
function changeDescription(){
	var action = this.product_action.value;
	if(action == "product_to_change") {
		document.getElementById("shippingOptions").style.display="none";
		document.getElementById("sendButton").style.display = "";
		return;
	}	
	var index;
	for(var i = 0; i < this.products.length; i++) {
		if(products[i]["identifier"] == action) {
			index = i;
			break;
		}
	}	
	document.getElementById("shippingOptions").style.display="block";	
	document.getElementById("productIdentifier").innerHTML = products[index]["identifier"];
	if(products[index]["basePrice"]>0){
		// mit Basispreis
		var sPrice = "";
		sPrice += (parseFloat(products[index]["basePrice"])/100).toFixed(2).toString().replace(/\./g,",");
		sPrice += "&nbsp;&euro;";
		if(products[index]["pagePrice"] > 0) {
			sPrice += "&nbsp;zzgl.&nbsp;";
			sPrice += (parseFloat(products[index]["pagePrice"])/100).toFixed(2).toString().replace(/\./g,",");
			sPrice += "&nbsp;&euro; pro Seite";
			if(!products[index]["postageIncluded"])
				sPrice += "&nbsp;und Porto";
		}
		document.getElementById("productCost").innerHTML = sPrice;
	} else if(products[index]["pagePrice"] > 0) {
		// kein Basispreis
		var sPrice = "";
		sPrice += "Preis&nbsp;pro&nbsp;Seite&nbsp;";
		sPrice += (parseFloat(products[index]["pagePrice"])/100).toFixed(2).toString().replace(/\./g,",");
		sPrice += "&nbsp;&euro;";
		document.getElementById("productCost").innerHTML = sPrice;
	}
	
	// Beschreibung
	var desc = document.getElementById("productDescription");
	if(desc) desc.innerHTML = products[index]["description"].replace(/\t/g,'<br/>');
	
	for(var q = 1; q < this.product_action.length; q++){
		if(product_action.options[q].value == action) {
			// hier wird sichergestellt, dass die ausgewählte (auch aus
			// Versehen) Option auch angezeigt wird
			this.product_action.options[q-1].selected = true; // hack, geht
																// sonst nicht
			this.product_action.options[q].selected = true;
			break;
		}
	}
	document.getElementById("shippingOptions").style.display="block";
	document.getElementById("sendButton").style.display = "none";
}

// ---- Warenkorb: Gesamtpreis ändern wenn Eilsendung gewählt ist
// diese Funktion kann nur aufgerufen werden, wenn der Parameter
// enable.express=on
function calculateExpressPrice(){
	
	if(document.getElementById("selectExpress") == null)
		return;
	
	var nExpressSelected;
	var nExpressTotal    = this.express["priceInCent"] * (letters.length -1);
		
	if( document.getElementById("selectExpress").checked ){

		// count the checked letters
		var nCheckedLetters = 0;
		for(i = 1; i < this.letters.length; i++) {
			if(this.letters[i].checked){
				nCheckedLetters++;
			}
		}
		
		// calculate the new prices
		shipping_price_selected = shipping_price_selected 
								+ (this.express["priceInCent"] * nCheckedLetters)
								- (this.express["priceInCent"] * nExpressCount);
		
		if(!bIsExpres)
			shipping_price_total = shipping_price_total + nExpressTotal;	
		
		nExpressCount = nCheckedLetters;
		bIsExpres = true;
	}
	else if(bIsExpres){
		
		// calculate the new prices
		shipping_price_total 	= shipping_price_total - nExpressTotal;
		shipping_price_selected = shipping_price_selected 
								- (this.express["priceInCent"] * nExpressCount);
		
		nExpressCount = 0;
		bIsExpres = false;
	}
	
	// Sonderregelungen wenn selectAll() gewählt
	
	// ---- all selected
	if((shipping_price_selected > shipping_price_total) ||
		(shipping_price_selected == letters.length) )
		shipping_price_selected = shipping_price_total;
	
	// ---- all unselected
	if(shipping_price_selected < 0 )
		shipping_price_selected = 0;
}

// Warenkorb: prüfe, ob Briefe selektiert sind, wenn nicht -> Fehlertext
// und setze globale Variable: this.checkAction = false;
function checkAction() {
	if(errorContainer != null) errorContainer.style.display='none';
	for(var index = 1; index < this.letters.length; index++) {
		if(this.letters[index].checked){
			this.action_check = true;
			return;
		}
	}
	for(var index = 1; index < this.parents.length; index++) {
		if(this.parents[index].checked){
			this.action_check = true;
			return;
		}
	}
    this.action_check = false;
    error(errortext_1);
}
// Briefversand
function sendLetters() {
	checkAction();
	if(this.action_check) {
		// hidden selectbox setzen
		document.briefversand.shipping_action[0].selected = true;
		document.briefversand.submit();
		wait();
	}
}
// Briefe zusammenfassen
function mergeLetters() {
	checkAction();
	if(this.action_check) {
		// hidden selectbox setzen
		document.briefversand.shipping_action[1].selected = true;
		document.briefversand.submit();
		wait();
	}
}
// Produktzuweisung synchron
function changeProduct4Parents() {
	checkAction();
	if(this.action_check) {
		// hidden selectbox setzen
		document.briefversand.shipping_action[2].selected = true;
		document.briefversand.submit();
		wait();
	}
}

function getPreview(nr) { // Vorschau Einzelbrief
	var browseLink = window.location.protocol+"//"+window.location.host;
	browseLink = browseLink + filt_url + "/downloadFile?";
	
	browseLink = filt_url + "/downloadFile?";
	browseLink += "printPreview=1";
	browseLink += "&orderID="+ this.orders[nr]["orderID"];
	//window.location.href = browseLink;
	
	var prevForm = document.createElement('form');
	prevForm.setAttribute('name','prevForm');
	prevForm.setAttribute('method','post');
	prevForm.setAttribute('action',browseLink);
	document.body.appendChild(prevForm);
	//FF3.x,IE7,IE8 - OK
	prevForm.submit();
	document.body.removeChild(prevForm);
}

// Einzelbrief löschen
function deleteSingleLetter(orderID){
	var deleteLink = window.location.protocol+"//"+window.location.host;
	deleteLink = deleteLink + filt_url + "/action?shippingproduct_actionn=deleteFiles&selectedID="+orderID;
	window.location.href = deleteLink+"";
}
// Postausgang: aufruf, wenn parent(serienbrief, postkorb) auf/zu
// es wird hier nur auf js-variablen zugegriffen
function toggleAllChilds(parentOrderID,obj){
	// auf oder zu?
	var toOpen;
	if(obj && obj == "open")
		toOpen = true;
	else if(obj && obj == "close")
		toOpen = false;
	else if(obj.innerHTML.indexOf("close") != -1)
		toOpen = true;
	else
		toOpen = false;
	var childs = document.getElementById('children_'+parentOrderID).value.split(",");
	var firstNr;
	for(var i = 0; i < this.orders.length; i++) {
		if(this.orders[i]["orderID"] == childs[0]) {
			firstNr = i;
		}
	}
	// öffne bzw. schließe die Kinder
	for(var i = 0; i < childs.length-1; i++) {
		if(toOpen) {
			// 'block' bzw. 'inline' bei Tabellen nicht geeignet; kein Wert
			this.orders[i+firstNr]["row"].style.display = '';
		}
		else {
			this.orders[i+firstNr]["row"].style.display = 'none';
			if(this.orders[i+firstNr]["attachment"] != null) {
				if(this.orders[i+firstNr]["attachment"].style.display != 'none') {
					changeIcon(document.getElementById('hl_orderAttachments'+this.orders[i+firstNr]["orderID"]));
					this.orders[i+firstNr]["attachment"].style.display = 'none';
				}
			}
		}
	}
	if(toOpen)
		closeAttachments(parentOrderID);
	else
		toggleArea('addAttachment'+parentOrderID);
}
// Achtung: nur bei kleineren Sachen benutzen!
function closeArea(id){
	if(document.getElementById(id)){
		document.getElementById(id).style.display = 'none';
	} 
}

function toggleAttachmentArea(id){
	var element = this.attachmentArea[id];
	if(element.style.display=='none'){
		element.style.display = '';
	} else {
		element.style.display = 'none';
	}
	this.attachmentArea[id] = element;
}

// Achtung: nur bei kleineren Sachen benutzen!
function toggleArea(id){
	if(document.getElementById(id)) {
		if(document.getElementById(id).style.display == 'none'){
			// 'block' bzw. 'inline' bei Tabellen nicht geeignet; kein Wert
			document.getElementById(id).style.display = '';
		} else {
			document.getElementById(id).style.display = 'none';
		}
	}
}

// ---- benutzt im Serienbrief
function toggleOptionArea(id){
	var doDisplay = true;
	if(document.getElementById(id+"_0").selected != true){
		doDisplay = false;
	}
	if(document.getElementById(id)) {
		if((document.getElementById(id).style.display == 'none') && (doDisplay)){
			// 'block' bzw. 'inline' bei Tabellen nicht geeignet; kein Wert
			document.getElementById(id).style.display = '';
		} else {
			if(!doDisplay)
				document.getElementById(id).style.display = 'none';
		}
	}
}

function closeFeedbackFrame(id){
	if(document.getElementById(id)) {
		if(document.getElementById(id).style.display == 'none'){
			document.getElementById('serial_feedback_frame').style.display = 'none';
		}
	}
}
// Achtung: nur bei kleineren Sachen benutzen!
function closeAttachments(id){
	if(document.getElementById('uploadAttachment'+id)){
		document.getElementById('uploadAttachment'+id).style.display = 'none';
	}
	if(document.getElementById('addAttachment'+id)){
		document.getElementById('addAttachment'+id).style.display = 'none';
	}
	if(document.getElementById('hl_orderAttachments'+id)) {
		var tmp_var = document.getElementById('hl_orderAttachments'+id);
		if(tmp_var.childNodes){
			for(var c=0; c < tmp_var.childNodes.length; c++){
				var url = tmp_var.childNodes[c].src;
				if(url){
					tmp_var.childNodes[c].src = img_url + "/closed.gif";
					tmp_var.childNodes[c].title = "öffnen";
					return;
				}
			}
		}
	}
}

function deselectAllAttachments() {
	var availableAttachmentList = document.getElementsByName('availableAttachment');
	var availableAttachmentListLength = availableAttachmentList.length;
	if(availableAttachmentList != null) {
		for(var i = 0; i < availableAttachmentListLength; i++) {
			availableAttachmentList[i].checked = false;
		}
	}
}

// Postkorb, Serienbrief, Mehrfachbrief; die Methode wird verwendet um
// sicherzustellen, dass immer nur ein Auftrag bearbeitet wird
function closeAllSerialOrders(index, orders){
	// die Pfeilbilder heißen "img"+index
	if(document.getElementById('img'+index).src.indexOf("open") != -1) {
		document.getElementById('img'+index).src=img_url + "/closed_serial.gif";
		document.getElementById('img'+index).title="öffnen";
	} else {
		document.getElementById('img'+index).src=img_url + "/open_serial.gif";
		document.getElementById('img'+index).title="schließen";
	}
	if(index != -1) {
		document.getElementById('newSerialLetter').style.display = 'none';
		document.getElementById('img-1').src=img_url + "/closed_serial.gif";
		document.getElementById('img-1').title="öffnen";
	}
	for(var i=0; i<orders; i++){
		if(i!=index) {
			document.getElementById('orderDiv'+i+'').style.display = 'none';
			document.getElementById('img'+i).src=img_url + "/closed_serial.gif";
			document.getElementById('img'+i).title="öffnen";
		}
	}
}


//------------------------------------------------------------------------
function submitForm(formName, linkId)
{
	var form = document.forms[formName];
	document.getElementById("cosmetic_hidden").value = linkId;
	try
	{
		form.submit();
	}
	catch(e){}
}

//------------------------------------------------------------------------
function prepareAndSubmit(sFormName,
						  sSeparate,
						  sSep)
{
	var aForm = document.forms[sFormName];
	var nLength = aForm.elements.length;
	var sFilter = "";

	for (var i=0; i<nLength; i++) {
		var oCurrent = aForm.elements[i];
		if(oCurrent.name.match("^"+sSeparate) == sSeparate){
			if(oCurrent.value.match("[!%]")){
				error(errortext_9);
				return;
			}
			sFilter += oCurrent.name + oCurrent.value;
		}
	}	
	document.getElementById("cosmetic_hidden").value = sFilter + sSep +sSep + sSep +"e";	
	try
	{
		aForm.submit();
	}
	catch(e){}
}

function changeIconSized(el, isBig){
	// alert("2param");
	if(el.childNodes){
		for(var c=0; c < el.childNodes.length; c++){
			var url = el.childNodes[c].src;
			if(url){
				if(url.indexOf('open') != -1 ) {
					el.childNodes[c].src = (isBig) ? img_url + "/closed_serial.gif" 
												   : img_url + "/closed.gif";
					el.childNodes[c].title = "öffnen";
					return;
				}
				else{
					el.childNodes[c].src = (isBig) ? img_url + "/open_serial.gif" 
												   : img_url + "/open.gif";
					el.childNodes[c].title = "schließen";
					return;
				}
			}
		}
	}
}

function changeIcon(el){
	changeIconSized(el, false);
}

function changeIconByRef(id){
	if(this.attachmentArea["hl_orderAttachments"+id]){
		changeIconSized(this.attachmentArea["hl_orderAttachments"+id], false);
	}
}

function changeMultiIcon(el){
	if(el.childNodes){
		for(var c=0; c < el.childNodes.length; c++){
			if(el.childNodes[c]){
				var url = el.childNodes[c].src;
				if(url){
					if(url.indexOf('open_multi') != -1 ) {
						el.childNodes[c].src = img_url + "/closed_multi.gif";
						el.childNodes[c].title = "öffnen";
						return;
					}
					else{
						el.childNodes[c].src = img_url + "/open_multi.gif";
						el.childNodes[c].title = "schließen";
						return;
					}
				}
			}  
		}
	}
}

function changeMultiIconShipping(el){
	if(el.childNodes){
		for(var c=0; c < el.childNodes.length; c++){
			if(el.childNodes[c]){
				var url = el.childNodes[c].src;
				if(url){
					if(url.indexOf('open_multi') != -1 ) {
						el.childNodes[c].src = img_url + "/closed_multi_shipping.gif";
						el.childNodes[c].title = "öffnen";
						return;
					}
					else{
						el.childNodes[c].src = img_url + "/open_multi_shipping.gif";
						el.childNodes[c].title = "schließen";
						return;
					}
				}
			}  
		}
	}
}

function startApplet(){
	var appletURL = "";
	appletURL = window.location+"";
	if(appletURL.indexOf("&applet")>=0){
		appletURL = appletURL.substring(0,appletURL.indexOf("&applet"));
	}
	appletURL =  appletURL+"&applet=start";
	window.location.href = appletURL;
}

function hidePreviewDetails(){
	var msgDiv = document.getElementById("feedbackMsg");
    if(msgDiv){
    	msgDiv.style.display = 'none';
    }
}

function getScrollXY() {  
	 var scrOfX = 0, scrOfY = 0;  
     if( typeof( window.pageYOffset ) == 'number' ) {  
            // Netscape compliant
            scrOfY = window.pageYOffset;  
            scrOfX = window.pageXOffset;  
        } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {  
            // DOM compliant
           scrOfY = document.body.scrollTop;  
           scrOfX = document.body.scrollLeft;  
       } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {  
           // IE6 standards compliant mode
           scrOfY = document.documentElement.scrollTop;  
           scrOfX = document.documentElement.scrollLeft;  
      }  
      return [ scrOfX, scrOfY ];  
}  

function showPreviewDetailsIE6(id){
	try{
		jQuery(document).ready(function(){
			var event = window.event;
			var element = document.getElementById(id);
			showPreviewDetails(element,event);
		});
	} catch(err){
		//alert(err);
	}
}

function showPreviewDetails(element, event){
	    if(element.height>100 && element.width>100){
	    
		var x = event.clientX;
		var y = event.clientY;
		
		var objWidth  = element.clientWidth;
		var objHeight = element.clientHeight;
		
		// Get the offsets for the current object
		ex = element.offsetLeft;  
		ey = element.offsetTop;
		
		var scrollY = getScrollXY()[1]; 
		var scrollX = getScrollXY()[0];
		
		
   	    // If the current object has a parent (ie contained in a table, div,
		// etc..)
		if (element.offsetParent) {  
	  		// Loop through all the parents and add up their offsets
	   		// The while loop will end when no more parents exist and a null is
			// returned
	   		while (element = element.offsetParent) {  
	    		ex += element.offsetLeft;  
	    		ey += element.offsetTop;
	    		scrollY = getScrollXY()[1]; 
	    		scrollX = getScrollXY()[0];  
	   		}  
  		}  
	    var posx = (x+scrollX)-ex;
	    var posy = (y+scrollY)-ey; 
	    
	    msgDiv = document.getElementById("feedbackMsg");
	    if(msgDiv){
	      	msgDiv.style.top  = (y+scrollY)+"px";
	    	msgDiv.style.left = (x+scrollX+15)+"px";
	    	msgDiv.style.color = 'blue';
	    } else {
	    	msgDiv = document.createElement("div");
	    	msgDiv.id  = "feedbackMsg";
	    	msgDiv.style.top  = (y+scrollY)+"px";
	    	msgDiv.style.left = (x+scrollX+15)+"px";
	    	msgDiv.style.display = 'none';
	    	msgDiv.style.color = 'blue';
	    	document.body.appendChild(msgDiv);
	    }
	     
	    //[START]
if(posx<40 || posy<6 || ((y+scrollY)>(ey+755)) || ((x+scrollX)>(ex+530))){
 msgDiv.style.color = 'red'; 
 msgDiv.innerHTML="In diesem Bereich dürfen keine Inhalte platziert werden.";
 msgDiv.style.display = 'block';
 } 
else if(posx>=51 && posx<=268 && posy>=143 && posy<=163){ 
 msgDiv.style.color = 'red'; 
 msgDiv.innerHTML="In diesem Bereich dürfen keine Inhalte platziert werden.";
 msgDiv.style.display = 'block';
 } 
else if(posx>=51 && posx<=268 && posy>=163 && posy<=232){ 
 msgDiv.style.color = 'blue'; 
 msgDiv.innerHTML="Adressfeld - Hier muss die Empfängeradresse eingetragen werden.";
 msgDiv.style.display = 'block';
 } 
else if(posx>=51 && posx<=268 && posy>=130 && posy<=232){ 
 msgDiv.style.color = 'gray'; 
 msgDiv.innerHTML="Hier können Sie die Absenderadresse eintragen.";
 msgDiv.style.display = 'block';
 } 
 else { 
 msgDiv.style.color = 'green';
 msgDiv.innerHTML="Hier können Sie beliebigen Inhalt platzieren (Text, Bilder, ...)";
 msgDiv.style.display = 'block';
 }
//[END]
	    
	    }
}

function error(text){
	if(errorContainer != null)
		errorContainer.style.display="none";
	errorContainer.style.display="block";
	document.getElementById("errorContainerMessage").innerHTML = text;
	// andere zuklappen, wenn offen
	if(document.getElementById("warnContainer") != null)
		document.getElementById("warnContainer").style.display="none";
	if(document.getElementById("okContainer") != null)
		document.getElementById("okContainer").style.display="none";
	self.scrollTo(0,0);
}

function hideFeedbackFrame(){
	if(document.getElementById("feedback_frame")){
	   document.getElementById("feedback_frame").style.display="none";
	}
	if(document.getElementById("serial_feedback_frame")){
	   document.getElementById("serial_feedback_frame").style.display="none";
	}
}

function deselectCurrentLogo(){
	try{
		document.lettermaker.logoXmm.value = "105";
		document.lettermaker.logoYmm.value = "10";
	} catch(err){
	}
	if(document.lettermaker.radioImage != null){
		var allImages = document.lettermaker.radioImage;
		if(allImages.type && allImages.type=='radio'){
			allImages.checked = false;
		}else{
			for (r = 0; r < allImages.length; r++) {
				allImages[r].checked = false;
			} 
		}
	}
}

function clearLogoUpload(){
	if(document.lettermaker.myLogo != null){
		var uploadElement = document.lettermaker.myLogo;
		if( uploadElement.type == 'file' ){
			uploadElement.value = "";
		}
	}
}

/* Status Mehrfachbrief */
function getMultiSerialProcessStatus(orderID) {
		try{ 
			var obj = new Ajax.Request(filt_url+'/action', {
				method: 'post',
				parameters: {getSerialProcessStatus: 'on', orderID: orderID},
				onSuccess: function(r){
				  	try{
				  		var retVal = r.responseXML;
				  					  		
				  		var generated = '';
				  		var uploaded  = '';
				  		var errors    = '';
				  		var message   = '';
				  		
				  		total     = retVal.getElementsByTagName("TOTAL")[0].firstChild.data;
				  		generated = retVal.getElementsByTagName("GENERATED")[0].firstChild.data;
					  	uploaded  = retVal.getElementsByTagName("UPLOADED")[0].firstChild.data;
						errors    = retVal.getElementsByTagName("ERRORS")[0].firstChild.data;
						try{
							message   = retVal.getElementsByTagName("MESSAGE")[0].firstChild.data;
						} catch(error){}
						
				  		document.getElementById("dataSucc"+orderID).innerHTML = generated+' / '+uploaded;
				  		document.getElementById("dataError"+orderID).innerHTML = errors;
				  		
				  		if(message.length > 0){
				  			
				  			var link = window.location.protocol+"//"+window.location.host;
				  			if(message == 'STOPPED'){
				  				window.location.href = link + filt_url + "/index.jsp";
				  			}
				  			else if(message == 'FINISHED') {
				  				getCurrentPage('multiletter', orderID, true);
                                                                document.getElementById('okContainerMessage').innerHTML = 'Ihr Mehrfachbrief wurde erfolgreich erstellt. Legen Sie die erzeugten Briefe nun in den Warenkorb.';
				  				document.getElementById('okContainer').style.display = '';
				  			}
				  			else if(uploaded == '0' && total == '0') { // kein Weißtextfeld
				  				document.getElementById('errorContainerMessage').innerHTML = errortext_7;
				  				errorContainer.style.display = '';
				  				// hier gibt es das Dokument nicht mehr
				  				document.getElementById('multiletterDiv' + orderID).style.display = 'none';
				  				toggleArea('newSerialLetter');
				  				closeAllSerialOrders('-1','0');
				  			}
				  			else if(uploaded == '0') { // total > 0, alle Dokumente falsch
                                                                getCurrentPage('multiletter', orderID, true);
				  				document.getElementById('errorContainerMessage').innerHTML = errortext_8;
				  				errorContainer.style.display = '';
				  			} 
				  			else {
                                                                getCurrentPage('multiletter', orderID, true);
				  				document.getElementById('warnContainerMessage').innerHTML = errortext_6;
				  				document.getElementById('warnContainer').style.display = '';
				  			}
				  		}
				  		else {
				  			getMultiSerialProcessStatus(orderID);
				  		}
					}catch(err){}
				},
				onFailure: function(){
					try{}catch(err){}
				}
			});
		} catch(ajax){}
}

// Status vom Serienbrief 
function getSerialProcessStatus(orderID){
		try{ 
			var obj = new Ajax.Request(filt_url+'/action', {
				method: 'post',
				parameters: {getSerialProcessStatus: 'on', orderID: orderID},
				onSuccess: function(r){
				  	try{
				  		var retVal = r.responseXML;
				  					  		
				  		var generated = '';
				  		var uploaded  = '';
				  		var errors    = '';
				  		var total     = '';
				  		var template  = '';
				  		var message   = '';
				  		
				  		generated = retVal.getElementsByTagName("GENERATED")[0].firstChild.data;
					  	uploaded  = retVal.getElementsByTagName("UPLOADED")[0].firstChild.data;
						errors    = retVal.getElementsByTagName("ERRORS")[0].firstChild.data;
						total     = retVal.getElementsByTagName("TOTAL")[0].firstChild.data;
								  		
						try{
							template  = retVal.getElementsByTagName("TEMPLATE")[0].firstChild.data;
						} catch(error){
						}
						try{
							message   = retVal.getElementsByTagName("MESSAGE")[0].firstChild.data;
						} catch(error){
						}
						
						document.getElementById("dataSucc"+orderID).innerHTML = generated+' / '+uploaded;
				  		document.getElementById("dataError"+orderID).innerHTML = errors;
				  		document.getElementById("dataTemplateName"+orderID).innerHTML = 'Briefvorlage: '+template;
				  		document.getElementById("dataTotal"+orderID).innerHTML = total;
				  		
				  		if(message.length > 0){
				  			
				  			getCurrentPage('serial', orderID, true);
				  			
				  			var link = window.location.protocol+"//"+window.location.host;
				  			if(message == 'STOPPED')
				  				window.location.href = link + filt_url + "/index.jsp";
				  			else if(message == 'FINISHED'){
				  				document.getElementById('okContainerMessage').innerHTML = 'Ihr Serienbrief wurde erfolgreich erstellt. Legen Sie die erzeugten Briefe nun in den Warenkorb.';
				  				document.getElementById('okContainer').style.display = '';
				  			}
				  			else if(uploaded == '0'){
				  				document.getElementById('errorContainerMessage').innerHTML = errortext_5;
				  				errorContainer.style.display = '';
				  			}				  			
				  			else{
				  				document.getElementById('warnContainerMessage').innerHTML = errortext_4;
				  				document.getElementById('warnContainer').style.display = '';
				  			}
				  		}
				  		else 
				  			getSerialProcessStatus(orderID);
					}catch(err){}
				},
				onFailure: function(){
					try{
						
					}catch(err){}
				}
			});
		} catch(ajax){}
}

function getOrderStatus(orderID, ref, viewID, parent){
	try{ 
		var obj = new Ajax.Request(filt_url+'/action', {
			method: 'post',
			parameters: {getOrderStatus: 'on', orderID: orderID},
			onSuccess: function(r){
			  	try{
			  		var retVal = r.responseXML;
			  		if(retVal){
				  		var status   = 
				  			retVal.getElementsByTagName("status")[0].firstChild.data;
				  		var append   = 
				  			retVal.getElementsByTagName("append")[0].firstChild.data;
				  		
				  		if(retVal.getElementsByTagName("message") && 
				  			retVal.getElementsByTagName("message")[0] &&
				  			 retVal.getElementsByTagName("message")[0].firstChild.data.length>0){
				  			if(errorContainer.style.display=='none'){
					  			document.getElementById('errorContainerMessage').innerHTML = retVal.getElementsByTagName("message")[0].firstChild.data;
					  			errorContainer.style.display = '';
				  			}
				  		}
				  		if(status==ref){
				  			//ich glaube nicht, dass das hier noch benötigt wird: ? 
				  			//ist erforderlich (Lukas)
				  			getCurrentPage(viewID, orderID, false, parent);
				  			getPriceSync('0');
				  			// Detailansicht: Reload der Seite
				  			if(document.getElementById('orderDetails')) {
				  				location.reload();
				  			}
				  			// Anlagenbereich öffnen
				  			this.attachmentArea[orderID] = document.getElementById('addAttachment'+orderID);
				  			this.attachmentArea[orderID].style.display = "";
				  			toggleArea('uploadAttachment'+orderID);
				  			// Anlage anfügen fertig für Einzelbrief
				  			document.getElementById("checkBox"+orderID).style.display = "";
				  			if(document.getElementById("row_"+orderID))
				  			    document.getElementById("row_"+orderID).style.display = "";
				  			// ? verstehe ich nicht (susanne)
				  			var openChildsEl = document.getElementById("openChilds"+orderID);
				  			if(openChildsEl){
				  				openChildsEl.style.display = "";
				  			}
				  			// wait-Bildchen weg
				  			document.getElementById("waitBox"+orderID).style.display = "none";
				  			// All-Checkbox wieder aktivieren
				  		    if(append=='0'){
				  			   document.getElementById("selectAllCheckBox").disabled = ""; 
				  		    }
				  		    initShipping();
				  	    } else {
				  		   getOrderStatus(orderID, ref, viewID, parent);
				  		}
			  		} else {
			  			 getOrderStatus(orderID, ref, viewID, parent);
			  		}
				}catch(err){
					//alert(err);
				}
			},
			onFailure: function(){
				try{}catch(err){}
			}
		});
	} catch(ajax){
		//alert(ajax)
	}
}

function getPriceSync(orderID){	
	var isExpress = (document.getElementById("selectExpress") && document.getElementById("selectExpress").checked);
	if(document.getElementById('orderDetails') && orderID=='0'){
		orderID = document.getElementById('orderDetails').value;
	}
	try{ 
		var obj = new Ajax.Request(filt_url+'/action', {
			method: 'post',
			parameters: {getCurrentPrice: 'on', orderID: orderID, isExpress: isExpress},
			asynchronous: true,
			onSuccess: function(r){
			  	try{
			  		var retVal = r.responseXML;
			  		if(retVal){
			  			if(orderID=='0'){
			  				this.shipping_price_total = retVal.getElementsByTagName("price")[0].firstChild.nodeValue;
			  				var total_all_div = document.getElementById("total_all");
							total_all_div.innerHTML = (parseFloat(this.shipping_price_total)/100).toFixed(2).toString().replace(/\./g,",");
			  				for(i = 1; i < this.letters.length; i++) {
			  					try{
			  						getPriceSync(this.letters[i].value);
			  					}catch (noOrder){
			  					}
			  				}
			  				for(i = 1; i < this.parents.length; i++) {
			  					try{
			  						getPriceSync(this.parents[i].value);
			  					}catch (noOrder){
			  					}
			  				}
			  			} else {
			  				try{
			  					if(document.getElementById('orderDetails') 
			  							&& document.getElementById('children_'+orderID)){
			  						this.shipping_price_total = retVal.getElementsByTagName("price")[0].firstChild.nodeValue;
			  						var total_all_div = document.getElementById("total_all");
									total_all_div.innerHTML = (parseFloat(this.shipping_price_total)/100).toFixed(2).toString().replace(/\./g,",");
			  						var childs = document.getElementById('children_'+orderID).value.split(",");
			  						try{
			  							for(var i = 0; i < childs.length-1; i++) {
			  								getPriceSync(childs[i]);
			  							}
			  						} catch(noChilds){
			  						}
			  					}
			  					showShippingParentPrice(orderID,retVal.getElementsByTagName("price")[0].firstChild.nodeValue);
			  					if(document.getElementById("text_price_"+orderID)){
			  						document.getElementById("text_price_"+orderID).innerHTML = 
			  							(parseFloat(retVal.getElementsByTagName("price")[0].firstChild.nodeValue)/100).toFixed(2).toString().replace(/\./g,",");
			  					}
			  					if(document.getElementById("price_"+orderID)){
			  						document.getElementById("price_"+orderID).value = parseInt(retVal.getElementsByTagName("price")[0].firstChild.nodeValue);
			  					}
			  					
			  					for(var i = 0; i < this.orders.length; i++) {
			  						try{
			  							if(this.orders[i]["orderID"] == orderID) {
			  								this.orders[i]["price"]  = parseInt(retVal.getElementsByTagName("price")[0].firstChild.nodeValue);
			  								break;
			  							}
			  						}catch (noOrder){}
			  					}
			  				} catch(error){
			  					//alert(error);
			  				}
			  			}
			  		}
			  		showTopPrices();
				}catch(err){// alert(err);
				}
			},
			onFailure: function(){}
		});
	} catch(ajax){
		// alert(ajax);
	}
}

function getCurrentPage(pageId, orderID, async, parent){
	try{ 
		var obj = new Ajax.Request(filt_url+'/index.jsp', {
			method: 'post',
			parameters: {id: pageId, detailedOrderID: parent},
			asynchronous: async,
			onSuccess: function(r){
			  	try{	
			  		var retVal  = r.responseText;
			  		var newBody = retVal.substring(retVal.indexOf('>',retVal.indexOf('<body'))+1, retVal.indexOf('</body>'));
			  		
			  		jQuery("<div id=\"tmpContent\" style=\"display:none;\">"+newBody+"</div>").appendTo("body");
			  		var tmpContent =  document.getElementById('tmpContent');

			  		if(document.getElementById('addAttachment'+orderID)!=null){
			  			replaceElement('addAttachment'+orderID, tmpContent);
			  		}
			  		if(document.getElementById('uploadAttachment'+orderID)!=null){
			  			replaceElement('uploadAttachment'+orderID, tmpContent);
			  		}
			  		if(document.getElementById('serialDiv'+orderID)!=null){
			  			replaceElement('serialDiv'+orderID, tmpContent);
			  		}
			  		if(document.getElementById('serialHeader'+orderID)!=null){
			  			replaceElement('serialHeader'+orderID, tmpContent);
			  		}
			  		if(document.getElementById('multiletterDiv'+orderID)!=null){
			  			replaceElement('multiletterDiv'+orderID, tmpContent);
			  		}
			  		if(document.getElementById('row_'+orderID)!=null){
			  			replaceElement('row_'+orderID, tmpContent);
			  		}
			  		if(document.getElementById('parentRow_'+orderID)!=null){
			  			replaceElement('parentRow_'+orderID, tmpContent);
			  		}
			  		if(document.getElementById('hl_orderAttachments'+orderID)){
			  			changeIcon(document.getElementById('hl_orderAttachments'+orderID));
			  		}
			  		
			  		if(document.getElementById('children_'+orderID)){
			  			var childs = document.getElementById('children_'+orderID).value.split(",");
						try{
							for(var i = 0; i < childs.length-1; i++) {
								if(document.getElementById('addAttachment'+childs[i])!=null){
						  			replaceElement('addAttachment'+childs[i], tmpContent);
						  		}
						  		if(document.getElementById('uploadAttachment'+childs[i])!=null){
						  			replaceElement('uploadAttachment'+childs[i], tmpContent);
						  		}
						  		if(document.getElementById('serialDiv'+childs[i])!=null){
						  			replaceElement('serialDiv'+childs[i], tmpContent);
						  		}
						  		if(document.getElementById('serialHeader'+orderID)!=null){
						  			replaceElement('serialHeader'+orderID, tmpContent);
						  		}
						  		if(document.getElementById('multiletterDiv'+childs[i])!=null){
						  			replaceElement('multiletterDiv'+childs[i], tmpContent);
						  		}
						  		if(document.getElementById('row_'+childs[i])!=null){
						  			replaceElement('row_'+childs[i], tmpContent);
						  		}
						  		if(document.getElementById('parentRow_'+childs[i])!=null){
						  			replaceElement('parentRow_'+childs[i], tmpContent);
						  		}
						  		if(document.getElementById('hl_orderAttachments'+childs[i])){
						  			changeIcon(document.getElementById('hl_orderAttachments'+childs[i]));
						  		}
							}
						} catch(noChilds){
						}
			  		}
			  		
			  		tmpContent.innerHTML = '';
				}catch(err){
					//alert('currentPage: ' + err.description);
				}
			},
			onFailure: function(){
				try{}catch(err){}
			}
		});
	} catch(ajax){
		//alert(ajax);
	}
}

var xTEMP = null;
function replaceElement(_Id, _TmpContent){
	try{
		xTEMP = null;
		findElement(_TmpContent, _Id);
		if(xTEMP!=null){
			var element = document.getElementById(_Id);
			var trOldChilds = element.childNodes;
			var trNewChilds = xTEMP.childNodes;
			var iChilds = trOldChilds.length;
			for(var iTd=0; iTd<iChilds; iTd++){
				if(trOldChilds[iTd].nodeType==1){
					try{
						if(trOldChilds[iTd].id){
							if(trOldChilds[iTd].id=='' || trOldChilds[iTd].id.indexOf('td_address_')==-1){
								trOldChilds[iTd].innerHTML = trNewChilds[iTd].innerHTML;
							} 
						} else {
							//alert(trNewChilds[iTd].innerHTML);
							trOldChilds[iTd].innerHTML = trNewChilds[iTd].innerHTML;
						}
					} catch(err3){
						//alert('replaceElement: ' + err3.description);
					}	
				}
			}
		}
	} catch(err){
		//alert('replaceElement: ' + err.description);
	}
}

function findElement(root, id){
	if(root.hasChildNodes()){
		var iChilds = root.childNodes.length;
		var childs  = root.childNodes;
		for(var c=0;c<iChilds;c++){
			if(childs[c].nodeType==1 && childs[c].getAttribute('id')!=null && childs[c].getAttribute('id')==id){
				xTEMP =  childs[c];
			}
			findElement(childs[c],id);
		}
	}
}

function uploadAttachment(orderID,
						  restriction){
	if(restriction == null)
		restriction = "";
	document.briefversand.setAttribute('action','filt/action?uploadAttachment&orderID='+orderID + '&' + restriction);
}

function changeXYPosition(radio){
	var imageID = radio.value;
	if(document.getElementById("posX"+imageID))
		document.getElementsByName("logoXmm")[0].value = 
			document.getElementById("posX"+imageID).value;
	else 
		document.getElementsByName("logoXmm")[0].value = "0";
	if(document.getElementById("posY"+imageID))
		document.getElementsByName("logoYmm")[0].value = 
			document.getElementById("posY"+imageID).value;
	else 
		document.getElementsByName("logoYmm")[0].value = "0";	
	if(document.getElementById("width"+imageID))
		document.getElementsByName("logoWidthmm")[0].value = 
			document.getElementById("width"+imageID).value;
	else 
		document.getElementsByName("logoWidthmm")[0].value = "0";
	if(document.getElementById("height"+imageID))
		document.getElementsByName("logoHeightmm")[0].value = 
			document.getElementById("height"+imageID).value;
	else 
		document.getElementsByName("logoHeightmm")[0].value = "0";
}

function updateLogoSize(el, id){
	if(document.getElementById("aspectRatio"+id).checked){
		try{
			var heightOrg = document.getElementById("orgImageHeight"+id).value;
			var widthOrg  = document.getElementById("orgImageWidth"+id).value;
			var heightNew = document.getElementById("imageHeight"+id).value;
			var widthNew  = document.getElementById("imageWidth"+id).value;
			if(el.id==('imageWidth'+id) && widthOrg > 0 ){
			  document.getElementById("imageHeight"+id).value =
				Math.round((heightOrg * widthNew)/widthOrg);
			}
			else if(el.id==('imageHeight'+id) && heightOrg > 0){
			  document.getElementById("imageWidth"+id).value =
					Math.round((widthOrg * heightNew)/heightOrg);	
			}
		} catch(error){
			//alert(error);
		}
	}
}

function submitMultiSerialLetter() {
	document.uploadForm.submit();
	wait();
}

function wait() {
	var waitLayer = document.getElementById("waitLayer");
	transparency(waitLayer,80);
	waitLayer.style.display = "block";
}

function nowait(){
	var waitLayer = document.getElementById("waitLayer");
	waitLayer.style.display = "none";
}

function resetImageSize(id){
	document.getElementById("imageHeight"+id).value = document.getElementById("orgImageHeight"+id).value;
	document.getElementById("imageWidth"+id).value = document.getElementById("orgImageWidth"+id).value;
}

/*
 * 'Transparenz 090507' (c) cybaer@binon.net -
 * http://Coding.binon.net/Transparenz
 */
/* Lizenz CC <http://creativecommons.org/licenses/by-nc-sa/2.5/> */
function transparency(element,percentage) {
 var i, count, objStyle, filterValue, opacityValue;
 if(document.getElementById) {
  if(typeof(element)=="object" && element) { obj=element; }
  else if (document.getElementsByName(element) && document.getElementsByName(element)[0]) { obj=document.getElementsByName(element); }
  else if (document.getElementById(element)) { obj=document.getElementById(element); }
  else if (document.getElementsByTagName && document.getElementsByTagName(element) && document.getElementsByTagName(element)[0]) { obj=document.getElementsByTagName(element); }
  else { obj=false; }
  if(obj) {
   percentage=(typeof(percentage)=="undefined")?50:100-percentage;
   filterValue="Alpha(opacity="+percentage+")";
   opacityValue=""+percentage/100;
   count=(obj.length)?obj.length:1;
   for(i=0;i<count;i++) {
    objStyle=(obj.length)?obj[i].style:obj.style;
    objStyle.filter=filterValue;
    objStyle.MozOpacity=opacityValue;
    objStyle.KhtmlOpacity=opacityValue;
    objStyle.opacity=opacityValue;
   }
  }
 }
}

// =============================== Direkt-Code ===============================

xJStrans=true; // Externes JavaScript geladen!

// -->
var invocations = 0;
var ajaxRequests    = 0;
var previewPageCount = 0;
var initTime = 0;
var ajaxFinished = true;
var counter = 0;
var lost = 0; 
function submitAjaxForm(id, action){
	invocations++;
	var hidden;
	var options = { 
	        //target:        '#output2',   // target element(s) to be updated with server response 
	        beforeSubmit:  showRequest,  // pre-submit callback 
	        success:       showResponse,  // post-submit callback 
	 
	        // other available options: 
	        //url:       url         // override for form's 'action' attribute 
	        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
	        dataType:  'xml'        // 'xml', 'script', or 'json' (expected server response type) 
	        //clearForm: true        // clear all form fields after successful submit 
	        //resetForm: true        // reset the form after successful submit 
	 
	        // $.ajax options can be used here too, for example: 
	        //timeout:   3000 
	    };
	var previewDiv = document.getElementById('webLetterPreview');
	var display = previewDiv.style.display;
	if(!display || display!='none' || action=='open'){
		if(ajaxFinished){
			jQuery('#'+id).ajaxSubmit(options);
		} else {
			lost++;
		}
	}
	
	// pre-submit callback 
	function showRequest(formData, jqForm, options) { 
		ajaxFinished = false;
		hidden = document.createElement('input');
		hidden.setAttribute('id','hiddenPreview');
		hidden.setAttribute('type','hidden');
		hidden.setAttribute('name','preview');
		document.getElementById(id).appendChild(hidden);
		
		if(document.getElementById('submitCreateLetterTop')
			&& document.getElementById('submitCreateLetterBottom')){
			document.getElementById('submitCreateLetterTop').disabled='disabled';
			document.getElementById('submitCreateLetterBottom').disabled='disabled';
		}
		ajaxRequests++;
	   // var queryString = jQuery.param(formData); 
	   // alert('About to submit: \n\n' + queryString); 
		document.getElementById('previewWait').style.display = 'block';
	    return true; 
	} 
	 
	// post-submit callback 
	function showResponse(responseXML, statusText)  { 
	    //alert('status: ' + statusText + '\n\nresponseXML: \n' + responseXML.getElementsByTagName("numberOfPages")[0].firstChild.data);
		try{
			document.getElementById('previewWait').style.display = 'none';
			previewPageCount =  responseXML.getElementsByTagName("numberOfPages")[0].firstChild.data;
		    var img =  document.getElementById('webLetterPreviewImage');
		    var src = img.src+"";
		    var tIndex = src.indexOf('&time=');
		    if(tIndex > 0 ){
		    	src = src.substring(0, tIndex);
		    }
		    if(parseInt(previewPageCount)>0){
		    	img.src =  src.substring(0, (src.lastIndexOf("_")+1)) + previewPageCount + '&time='+new Date().getTime();
		    	document.getElementById('numberPreviewPages').innerHTML = previewPageCount;
		    	document.getElementById('currentPreviewPage').value = previewPageCount;
		    	updatePageNavigator(parseInt(previewPageCount));
		    	if(document.getElementById('submitCreateLetterTop')
				&& document.getElementById('submitCreateLetterBottom')){
					document.getElementById('submitCreateLetterTop').disabled='';
					document.getElementById('submitCreateLetterBottom').disabled='';
				}
		    }
	    } catch(err){
	    	//alert(err);
	    }
	    try{
	   		document.getElementById(id).removeChild(hidden);
	    } catch(err2){
	    	
	    }
	    ajaxFinished = true;
	    if(lost>1){
	    	lost = 0;
	    	submitAjaxForm(id, action);
	    }
	    
	    return true; 
	}	
	
}

function showInvocations(){
	//alert('Aufrufe: ' + invocations + '; Requests: ' + ajaxRequests);
}

function getNextPreviewPage(){
	var img =  document.getElementById('webLetterPreviewImage');
    var src = img.src+"";
    var tIndex = src.indexOf('&time=');
    if(tIndex > 0 ){
    	src = src.substring(0, tIndex);
    }
    var currentPage = parseInt(src.substring((src.lastIndexOf("_")+1))); 
    var next = currentPage+1;
    if(next > previewPageCount){
    	next = 1;
    }
    img.src =  src.substring(0, (src.lastIndexOf("_")+1)) + next + '&time='+new Date().getTime();
    document.getElementById('currentPreviewPage').value = next;
    updatePageNavigator(next);
}

function getPreviousPreviewPage(){
	var img =  document.getElementById('webLetterPreviewImage');
    var src = img.src+"";
    var tIndex = src.indexOf('&time=');
    if(tIndex > 0 ){
    	src = src.substring(0, tIndex);
    }
    var currentPage = parseInt(src.substring((src.lastIndexOf("_")+1))); 
    var prev = currentPage-1;
    if(prev <= 0){
    	prev = previewPageCount;
    }
    img.src =  src.substring(0, (src.lastIndexOf("_")+1)) + prev + '&time='+new Date().getTime();
    document.getElementById('currentPreviewPage').value = prev;
    updatePageNavigator(prev);
}

function getPreviewPage(){
	var img =  document.getElementById('webLetterPreviewImage');
    var src = img.src+"";
    var tIndex = src.indexOf('&time=');
    if(tIndex > 0 ){
    	src = src.substring(0, tIndex);
    }
    var newPage = document.getElementById('currentPreviewPage').value;
    try{
    	var iNewPage = parseInt(newPage);
    	if(iNewPage>0 && iNewPage<=previewPageCount){
    		img.src =  src.substring(0, (src.lastIndexOf("_")+1)) + iNewPage + '&time='+new Date().getTime();
    		updatePageNavigator(newPage);
    	}  
    } catch(err){
    	//alert(err);
    }
}

function updatePageNavigator(current){
	if(previewPageCount<=1){
		document.getElementById('currentPreviewPage').readonly = 'readonly';
	} else {
		document.getElementById('currentPreviewPage').readonly = '';
	}
	if(current<previewPageCount){
    	document.getElementById('actionNextPage').disabled = '';
    } else{
    	document.getElementById('actionNextPage').disabled = 'disabled';
    }
	if(current>1){
    	document.getElementById('actionPreviousPage').disabled = '';
    } else{
    	document.getElementById('actionPreviousPage').disabled = 'disabled';
    }
}

function changeSize() {
	var width = 595.0;
	var height = 841.0;
	var image = document.getElementById('webLetterPreview');
	var size = parseFloat(document.changeSizeForm.previewSize.value);
	width = width * size;
	height = height * size;
	image.style.width = width + 'px';
	image.style.height = height + 'px';
} 
