

function JB_Table(tab) {
	var up = String.fromCharCode(160,9650);
	var down = String.fromCharCode(160,9660);
	var no = String.fromCharCode(160,160,160,160);
	var first=1;
	var ssort;
	tab.className = tab.className + ' sorted';
	var tbdy=tab.getElementsByTagName("tbody")[0];
	var tz=tbdy.getElementsByTagName("tr");
	var nzeilen=tz.length;
	var nspalten=tz[0].getElementsByTagName("td").length;
	var Titel=tab.getElementsByTagName("thead")[0].getElementsByTagName("tr")[0].getElementsByTagName("th");
	var Arr=new Array(nzeilen);
	var S_Type=new Array(nspalten); for(var s=0;s<nspalten;s++) S_Type[s]="X";
	var ct=0;
	tab.title="Ein Klick auf die Spaltenüberschrift sortiert die Tabelle.";
	for(var i=0;i<Titel.length;i++) {
		var t=Titel[i];
		if(t.className.indexOf("sortierbar")>-1 || t.className.indexOf("vorsortiert")>-1) {
			ct++;
			t.nr=i;
			t.style.cursor="pointer";
			t.thisObj = this;
			t.onclick = function() { this.thisObj.sort(this.nr); }
			t.appendChild(document.createTextNode(no));
			t.title='Die Tabelle nach "'+t.firstChild.data+'" sortieren.';
			if(t.className.indexOf("vorsortiert-")>-1) {
				t.lastChild.data=down;
				ssort=i;
			}
			else if(t.className.indexOf("vorsortiert")>-1) {
				t.lastChild.data=up;
				ssort=i;
			}
		}
	}

	if(ct==0) {
		for(var i=0;i<Titel.length;i++) {
			var t=Titel[i];
			t.nr=i;
			t.style.cursor="pointer";
			t.thisObj = this;
			t.onclick = function() { this.thisObj.sort(this.nr); }
			t.appendChild(document.createTextNode(no));
			t.title='Die Tabelle nach "'+t.firstChild.data+'" sortieren.';
			if(t.className.indexOf("vorsortiert-")>-1) {
				t.lastChild.data=down;
				ssort=i;
			}
			else if(t.className.indexOf("vorsortiert")>-1) {
				t.lastChild.data=up;
				ssort=i;
			}
		}
	}

	var VglFkt_Str=function(a,b) {
		var ta=a[ssort].toUpperCase();
		var tb=b[ssort].toUpperCase();
		if (ta>tb) return 1;
		else if (ta<tb) return -1;
		else {
			ta=a[0].toUpperCase();
			tb=b[0].toUpperCase();
			if (ta>tb) return 1;
			else if (ta<tb) return -1;
			else return 0;
		}
	}

	var VglFkt_Num=function(a,b) {
		var ta=parseFloat(a[ssort]);
		var tb=parseFloat(b[ssort]);
		if (ta>tb) return 1;
		else if (ta<tb) return -1;
		else {
			ta=parseFloat(a[0]);
			tb=parseFloat(b[0]);
			if (ta>tb) return 1;
			else if (ta<tb) return -1;
			else return 0;
		}
	}

	var VglFkt_Datum=function(a,b) {
		var convert=function(str) {
			var ar=str.split(".");
			for(var i=0;i<3;i++) {
				var ari=parseInt(ar[i],10);
				if(ari<10) ar[i]="0"+ari ;
				else ar[i]=""+ari ;
			}
			return ""+ar[2]+ar[1]+ar[0];
		}
		var ta=convert(a[ssort].toUpperCase());
		var tb=convert(b[ssort].toUpperCase());
		if (ta>tb) return 1;
		else if (ta<tb) return -1;
		else {
			ta=convert(a[0].toUpperCase());
			tb=convert(b[0].toUpperCase());
			if (ta>tb) return 1;
			else if (ta<tb) return -1;
			else return 0;
		}
	}

	var VglFkt_Lnk=function(a,b) {
		var ta=a[ssort].substr(a[ssort].indexOf(">")+1).toUpperCase();
		var tb=b[ssort].substr(b[ssort].indexOf(">")+1).toUpperCase();
		if (ta>tb) return 1;
		else if (ta<tb) return -1;
		else {
			ta=a[0].substr(a[ssort].indexOf(">")+1).toUpperCase();
			tb=b[0].substr(b[ssort].indexOf(">")+1).toUpperCase();
			if (ta>tb) return 1;
			else if (ta<tb) return -1;
			else return 0;
		}
	}

	this.sort=function(sp) {
		if (first==1) {
			for(var z=0;z<nzeilen;z++) {
				var zeile=tz[z].getElementsByTagName("td");
				Arr[z]=new Array(nspalten);
				for(var s=0;s<nspalten;s++) {
					var val=zeile[s].innerHTML;
					Arr[z][s]=val;
					if(!isNaN(val)&&(S_Type[s]=="n"||S_Type[s]=="X")) S_Type[s]="n";
					else if(val.substr(0,2).toLowerCase()=="<a"&&(S_Type[s]=="l"||S_Type[s]=="s"||S_Type[s]=="X"))
					S_Type[s]="l";
					else {
						var arr=val.split(".");
						if(arr.length==3&&!isNaN(arr[0])&&!isNaN(arr[1])&&!isNaN(arr[2])&&(S_Type[s]=="d"||S_Type[s]=="X"))
						S_Type[s]="d";
						else if(S_Type[s]!="l") S_Type[s]="s";
					}
				}
			}
			first=0;
		}
		if(sp==ssort) {
			Arr.reverse() ;
			if ( Titel[ssort].lastChild.data==down )
			Titel[ssort].lastChild.data=up;
			else
			Titel[ssort].lastChild.data=down;
		}
		else {
			if ( ssort>=0 && ssort<nspalten ) Titel[ssort].lastChild.data=no;
			ssort=sp;
			if(S_Type[ssort]=="n")      Arr.sort(VglFkt_Num);
			else if(S_Type[ssort]=="l") Arr.sort(VglFkt_Lnk);
			else if(S_Type[ssort]=="d") Arr.sort(VglFkt_Datum);
			else                        Arr.sort(VglFkt_Str);
			Titel[ssort].lastChild.data=up;
		}
		for(var z=0;z<nzeilen;z++) {
			var zeile=tz[z].getElementsByTagName("td");
			for(var s=0;s<nspalten;s++) {
				zeile[s].innerHTML=""; // f�r den MAC-IE
				zeile[s].innerHTML=Arr[z][s];
			}
		}
	}
}

function BrowserTest() {
	var kannDOM=document.getElementsByTagName;
	if (kannDOM) kannDOM=document.getElementsByTagName('body')[0].appendChild;
	if (!kannDOM) return false;
	return true;
}



function getElementsByClass_TagName(tagname,classname) {
	var tag=document.getElementsByTagName(tagname);
	var Elements=new Array();
	for(var i=0;i<tag.length;i++) {
		if(tag[i].className.indexOf(classname)>-1 && tag[i].className.indexOf('sorted') <= -1) Elements[Elements.length]=tag[i];
	}
	return Elements;
}

function JB_TabSort_Init(e) {
	if (!BrowserTest()) return;
	var Sort_Table=getElementsByClass_TagName("table","sortierbar");

	for(var i=0;i<Sort_Table.length;i++) {
		new JB_Table(Sort_Table[i]);
	}
}

var formProd = '16';

var updateAngebotAnforderung = function(value) {
	if (value == '15') {
	    if (window.gecko) {
	        // $('trSBetrag').style.display = 'none';
    		$('trSBrutto').style.display = 'table-row';
    		$('trSVerheiratet').style.display = 'table-row';
    		$('trSKinder').style.display = 'table-row';
    		$('trSGebKinder').style.display = 'table-row';
	    }else {
    	    // $('trSBetrag').style.display = 'none';
    		$('trSBrutto').style.display = 'block';
    		$('trSVerheiratet').style.display = 'block';
    		$('trSKinder').style.display = 'block';
    		$('trSGebKinder').style.display = 'block';
	    }
	}

	if (value == '16') {
	    if (window.gecko) {
	        $('trSBetrag').style.display = 'table-row';
    		$('trSBrutto').style.display = 'none';
    		$('trSVerheiratet').style.display = 'none';
    		$('trSKinder').style.display = 'none';
    		$('trSGebKinder').style.display = 'none';
	    }else {
    	    $('trSBetrag').style.display = 'block';
    		$('trSBrutto').style.display = 'none';
    		$('trSVerheiratet').style.display = 'none';
    		$('trSKinder').style.display = 'none';
    		$('trSGebKinder').style.display = 'none';
	    }
	}
	form = $('angebotAnforderungForm');
	form.elements['sVorname'].style.border = '1px solid #ccc';
	form.elements['sVorname'].style.backgroundColor = '#fff';
	form.elements['sName'].style.border = '1px solid #ccc';
	form.elements['sName'].style.backgroundColor = '#fff';
	form.elements['sBetrag'].style.border = '1px solid #ccc';
	form.elements['sBetrag'].style.backgroundColor = '#fff';
	form.elements['sGeburtsdatum'].style.border = '1px solid #ccc';
	form.elements['sGeburtsdatum'].style.backgroundColor = '#fff';
	form.elements['sBruttogehalt'].style.border = '1px solid #ccc';
	form.elements['sBruttogehalt'].style.backgroundColor = '#fff';
	form.elements['iKinder'].style.border = '1px solid #ccc';
	form.elements['iKinder'].style.backgroundColor = '#fff';
	form.elements['sGeburtsdatumKinder'].style.border = '1px solid #ccc';
	form.elements['sGeburtsdatumKinder'].style.backgroundColor = '#fff';
	form.elements['sBerufsgruppe'].style.border = '1px solid #ccc';
	form.elements['sBerufsgruppe'].style.backgroundColor = '#fff';
	form.elements['sAlterRentenbeginn'].style.border = '1px solid #ccc';
	form.elements['sAlterRentenbeginn'].style.backgroundColor = '#fff';

	formProd = value;
}

var checkAngebotAnforderungForm = function(form) {
	var error = false;

	if (form.elements['sVorname'].value == "" && (formProd == '16' || formProd == '15')) {
		error = true;
		form.elements['sVorname'].style.border = '1px solid #990000';
		form.elements['sVorname'].style.backgroundColor = '#ffd5d6';
	} else {
		form.elements['sVorname'].style.border = '1px solid #ccc';
		form.elements['sVorname'].style.backgroundColor = '#fff';
	}

	if (form.elements['sName'].value == "" && (formProd == '16' || formProd == '15')) {
		error = true;
		form.elements['sName'].style.border = '1px solid #990000';
		form.elements['sName'].style.backgroundColor = '#ffd5d6';
	} else {
		form.elements['sName'].style.border = '1px solid #ccc';
		form.elements['sName'].style.backgroundColor = '#fff';
	}

	if (form.elements['sBetrag'].value == "" && (formProd == '16' || formProd == '15')) {
		error = true;
		form.elements['sBetrag'].style.border = '1px solid #990000';
		form.elements['sBetrag'].style.backgroundColor = '#ffd5d6';
	} else {
		form.elements['sBetrag'].style.border = '1px solid #ccc';
		form.elements['sBetrag'].style.backgroundColor = '#fff';
	}

	if (form.elements['sGeburtsdatum'].value == "" && (formProd == '16' || formProd == '15')) {
		error = true;
		form.elements['sGeburtsdatum'].style.border = '1px solid #990000';
		form.elements['sGeburtsdatum'].style.backgroundColor = '#ffd5d6';
	} else {
		form.elements['sGeburtsdatum'].style.border = '1px solid #ccc';
		form.elements['sGeburtsdatum'].style.backgroundColor = '#fff';
	}

	if (form.elements['sBruttogehalt'].value == ""&& formProd == '15') {
		error = true;
		form.elements['sBruttogehalt'].style.border = '1px solid #990000';
		form.elements['sBruttogehalt'].style.backgroundColor = '#ffd5d6';
	} else {
		form.elements['sBruttogehalt'].style.border = '1px solid #ccc';
		form.elements['sBruttogehalt'].style.backgroundColor = '#fff';
	}

	if (!form.elements['iKinder'].value.match(/^([0-9])+$/i)) {
		error = true;
		form.elements['iKinder'].style.border = '1px solid #990000';
		form.elements['iKinder'].style.backgroundColor = '#ffd5d6';
	} else {
		form.elements['iKinder'].style.border = '1px solid #ccc';
		form.elements['iKinder'].style.backgroundColor = '#fff';
	}

	if (form.elements['iKinder'].value.match(/^([0-9])+$/i) && form.elements['iKinder'].value > 0) {
		if (form.elements['sGeburtsdatumKinder'].value == "") {
			error = true;
			alert('Bitte geben Sie den Geburtstag Ihrer Kinder an.');
			form.elements['sGeburtsdatumKinder'].style.border = '1px solid #990000';
			form.elements['sGeburtsdatumKinder'].style.backgroundColor = '#ffd5d6';
		} else {
			form.elements['sGeburtsdatumKinder'].style.border = '1px solid #ccc';
			form.elements['sGeburtsdatumKinder'].style.backgroundColor = '#fff';
		}
	}

	if (!form.elements['sBerufsgruppe'].value.match(/^.+$/i)) {
		error = true;
		form.elements['sBerufsgruppe'].style.border = '1px solid #990000';
		form.elements['sBerufsgruppe'].style.backgroundColor = '#ffd5d6';
	} else {
		form.elements['sBerufsgruppe'].style.border = '1px solid #ccc';
		form.elements['sBerufsgruppe'].style.backgroundColor = '#fff';
	}

	if (!form.elements['sAlterRentenbeginn'].value.match(/^\d{2}$/i) && (formProd == '16' || formProd == '15')) {
		error = true;
		form.elements['sAlterRentenbeginn'].style.border = '1px solid #990000';
		form.elements['sAlterRentenbeginn'].style.backgroundColor = '#ffd5d6';
	} else {
		form.elements['sAlterRentenbeginn'].style.border = '1px solid #ccc';
		form.elements['sAlterRentenbeginn'].style.backgroundColor = '#fff';
	}

	if (error) {
		return false;
	} else {
		return true;
	}
}

var setClosed = function() { opened = false; }
var opened = false;

var angeboteAnzeigen = function(id) {
    if (opened == true) {
        //alert('Bitte einen Moment Geduld, dass Fenster wird geöffnet...');
        return;
    }

    opened = true;

	var url = 'index.php?sPage=ajax&sStep=getAngebotInfo&iAnfrageId=' + id;
	$('angeboteAnzeigen').empty();
	$('angeboteAnzeigen').addClass('ajax-loading');
	var request = new Json.Remote(url, {
		onComplete: function(jsonObj) {
			$('angeboteAnzeigen').removeClass('ajax-loading');
			var angebote = jsonObj;

			if (angebote.sGesellschaft.length == '') {
				alert('Zu dieser Anfrage sind noch keine Angebote vorhanden.');
				return false;
			}

			var divObj = $('angeboteAnzeigen');
			var h1 = new Element('h1');
			var pStart = new Element('p');
			var close = new Element('a', {'href': '#', 'onclick': 'opened=false;removeOverlay()'});

			close.addEvent('click', function() {
			    setClosed();
				removeOverlay();
			});

			var table = new Element('table', {'class': 'list sortierbar'});
			var thead = new Element('thead');
			var theadTr = new Element('tr');
			new Element('th', {'class': 'table_head'}).setHTML('Makler').injectInside(theadTr);
			new Element('th', {'class': 'table_head sortierbar vorsortiert-'}).setHTML('Gesellschaft').injectInside(theadTr);
			new Element('th', {'class': 'table_head sortierbar'}).setHTML('Produktname').injectInside(theadTr);
			new Element('th', {'class': 'table_head sortierbar'}).setHTML('Betrag').injectInside(theadTr);
			new Element('th', {'class': 'table_head sortierbar'}).setHTML('garantierte Rente').injectInside(theadTr);
			new Element('th', {'class': 'table_head sortierbar'}).setHTML('Rente mit Überschüssen').injectInside(theadTr);
			new Element('th', {'class': 'table_head sortierbar'}).setHTML('Rente mit Wertentwicklung').injectInside(theadTr);
			//new Element('th', {'class': 'table_head sortierbar'}).setHTML('Rente 9%').injectInside(theadTr);
			new Element('th', {'class': 'table_head sortierbar'}).setHTML('Wertentwicklung').injectInside(theadTr);
			//new Element('th', {'class': 'table_head sortierbar'}).setHTML('Kosten').injectInside(theadTr);
			new Element('th', {'class': 'table_head'}).setHTML('Angebot').injectInside(theadTr);
			new Element('th', {'class': 'table_head'}).setHTML('Antrag').injectInside(theadTr);
			new Element('th', {'class': 'table_head'}).setHTML('Nachricht').injectInside(theadTr);
			theadTr.injectInside(thead);
			thead.injectInside(table);
			var trClasses = new Array('tr1', 'tr2');
			var tbody = new Element('tbody');

			for (i=0; i<angebote.sMakler.length; i++) {
				if (i % 2 == 0) {
					var trClass = trClasses[0];
				} else {
					var trClass = trClasses[1];
				}

				var tr = new Element('tr', {'class': trClass});
				var td = new Element('td');
				var img = new Element('img');

				img.src = angebote.sMakler[i];
				img.setAttribute('width' , "42px");
				img.setAttribute('height', "55px");
				img.style.width = '42px';
				img.style.height = '55px';
				img.injectInside(td);
				td.injectInside(tr);
				new Element('td').setHTML(angebote.sGesellschaft[i]).injectInside(tr);
				new Element('td').setHTML(angebote.sProduktname[i]).injectInside(tr);
				new Element('td').setHTML(angebote.sBetrag[i]).injectInside(tr);
				new Element('td').setHTML(angebote.sRente[i]).injectInside(tr);
				new Element('td').setHTML(angebote.sRente3[i]).injectInside(tr);
				new Element('td').setHTML(angebote.sRente6[i]).injectInside(tr);
				//new Element('td').setHTML(angebote.sRente9[i]).injectInside(tr);
				new Element('td').setHTML(angebote.sDynamic[i]).injectInside(tr);
				//new Element('td').setHTML(angebote.sKosten[i]).injectInside(tr);
				new Element('td').setHTML('<a href="ext.php?sAction=pdf&amp;sF=' + encode64(angebote.iLieferantId[i] + '/' + angebote.sPfadAngebot[i]) + '" target="_blank"><img border="0" src="_templates/img/pdf_icon.gif"></a>').injectInside(tr);

				if (angebote.iStatus[i] <= 0) {
					var sHtml = '<a href="#" onclick="antragSenden(' + angebote.iAngebotId[i] + ');">zusenden</a>';
    				/* var aSend = new Element('a', {
    				        'href': '#',
    				        'onclick': 'antragSenden(' + angebote.iAngebotId[i] + ')'
    				}).setHTML('zusenden'); */
				} else {
				    var sHtml = '<strong style="text-align:center">&radic;</strong>';
				}
                var tdSend = new Element('td').setHTML(sHtml);
                // aSend.injectInside(tdSend);
                tdSend.injectInside(tr);

				new Element('td').setHTML('<a href="index.php?sPage=nachricht&amp;sAction=new&amp;iEmpfaengerId=' + angebote.iLieferantId[i] + '&amp;iAngebotId=' + angebote.iAngebotId[i] + '">schreiben</a>').injectInside(tr);
				tr.injectInside(tbody);
			}

			tbody.injectAfter(thead);
			h1.style.marginLeft = '0px';
			h1.setHTML('<img src="_templates/img/header-angebote.jpg">').injectInside(divObj);

			pStart.setHTML('Hier finden Sie alle Angebote in der Liste.').injectInside(divObj);
			table.injectAfter(pStart);
			var pEnde = new Element('p');
			pEnde.setHTML('<strong>Garantierte Rente: </strong>Ist die garantierte Rente 0,00 erhält das Angebot keine Garantie.<br><strong>Angebot:</strong> Das Angebot können Sie als PDF downloaden oder anzeigen lassen.<br><strong>Antrag:</strong> Sie können bei uns für das gewünschte Angebot den dazugehörigen Antrag anfordern.<br><br><strong>Hinweis:</strong> Die von uns in der Tabelle angegebenen Werte können von den tatsächlichen Werten abweichen. Bitte entnehmen Sie die Garantiewerte, die Garantiebedingungen sowie die möglichen Ablaufwerte den hinterlegten PDF-Angeboten.').injectInside(divObj);
			pEnde.injectAfter(table);
			close.setHTML('schlie&szlig;en').injectAfter(table);
			$('angeboteAnzeigen').style.display = 'none';
			showAjaxForm('angeboteAnzeigen', true);
			$('angeboteAnzeigen').style.display = 'block';
			JB_TabSort_Init();
		}
	}).send();
}

function antragSenden(id) {
	var bSend = confirm('Möchten Sie sich den Antrag zusenden lassen?');
	if (bSend == true) {
		var url = "index.php?sPage=ajax&sStep=sendAntrag&iAngebotId=" + id;

		new Ajax(url, {
			method: 'get',
			onComplete: function() {
			    if (this.response.text == 'error') {
			        alert('Ein Fehler ist aufgetreten.');
			    } else if (this.response.text == 'successful') {
			        alert('Der Antrag wird Ihnen in Kürze zugesendet..');
			    }
			}
		}).request();
	}
}

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) +
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);

   return output;
}

window.addEvent('domready', function() {
	try {
		JB_TabSort_Init();
		$$('#container .linkNewAngebot').addEvent('click', function(e) {
			new Event(e).stop();
			showAjaxForm('angebotAnforderung', true);

			$('angebotAnforderungForm').addEvent('submit', function(e) {
				new Event(e).stop();
				if (checkAngebotAnforderungForm(this)) {
					this.send({
						method: 'post',
						data: this.toQueryString(),
						onComplete: function() {
							if (this.response.text == 'error') {
								alert('Bitte &uuml;berpr&uuml;fen Sie Ihre Angaben. Ein Fehler ist aufgetreten.')
							} else {
								alert(this.response.text);
								removeOverlay();
								location.reload(true);
							}
						}
					});
				}
			});

			$$('#angebotAnforderungForm .abort').addEvent('click', function(e) {
				new Event(e).stop();
				removeOverlay();
			});
		});

		updateAngebotAnforderung('16');
	} catch(e) {
		//alert('Ausnahmefehler ' + e);
	}
});