﻿
//Javascript Kommentar

var FSPHPcurrenObject = null;


function  FSPHPcomment (sUrl, iCommentsPerSide,iTotalComments, iShortCommentLength, iArticleID, bClosed, oComments) {
	this.iCommentsPerSide= iCommentsPerSide;
	this.iTotalComments=iTotalComments;
	this.iAvailableSides=0;
	this.iSide=1;
	this.bClosed = bClosed;
	this.sURL=sUrl;
	this.iArticleID=iArticleID;
	this.bInit=false;
	this.iReportID=null;
	this.sStoredContent=null;
	this.iShortCommentLength=iShortCommentLength;
	this.oCommentTPL = T$("#FSPHPcomments" + this.iArticleID+" p").html();
	
	this.oKeyField = null;
	
	this.iElements = 1;
	this.aMonth=["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli","August", "September", "Oktober", "November", "Dezember"];
	
	FSPHPcurrenObject = this;
	
	this.commentsLoaded= function (aCommentsData) {
		
		
		var i=1;
		
		
		for (var l =1; l<=FSPHPcurrenObject.iCommentsPerSide; l++) {
			
			if (FSPHPcurrenObject.iElements < l) {
				
				var aReprets = new Array ();
				aReprets['FSPHPtitle' + FSPHPcurrenObject.iArticleID + '_1'] = 'FSPHPtitle' + FSPHPcurrenObject.iArticleID + '_' +l;
				aReprets['FSPHPtime' + FSPHPcurrenObject.iArticleID + '_1'] = 'FSPHPtime' + FSPHPcurrenObject.iArticleID + '_' +l;
				aReprets['FSPHPreport' + FSPHPcurrenObject.iArticleID + '_1'] = 'FSPHPreport' + FSPHPcurrenObject.iArticleID + '_' +l;
				aReprets['FSPHPshort' + FSPHPcurrenObject.iArticleID + '_1'] = 'FSPHPshort' + FSPHPcurrenObject.iArticleID + '_' +l;
				aReprets['FSPHPlong' + FSPHPcurrenObject.iArticleID + '_1'] = 'FSPHPlong' + FSPHPcurrenObject.iArticleID + '_' +l;
				aReprets['FSPHPdisplay' + FSPHPcurrenObject.iArticleID + '_1'] = 'FSPHPdisplay' + FSPHPcurrenObject.iArticleID + '_' +l;
				
				aReprets['(1)'] = '(' + l +')';
				var sTPL = '<p id="FSPHPco' + FSPHPcurrenObject.iArticleID + '_' +l +'">' +FSPHPcurrenObject.oCommentTPL+'</p>';
				
				for (var p in aReprets) {
					sTPL = sTPL.split (p).join (aReprets[p]);
				}
				//Einträge der ersten Seite wegmachen
				if(T$("#FSPHPco" + FSPHPcurrenObject.iArticleID+'_'+l)) T$("#FSPHPco" + FSPHPcurrenObject.iArticleID+'_'+l).remove();
				
				
				T$("#FSPHPcomments" + FSPHPcurrenObject.iArticleID).append (sTPL);
				FSPHPcurrenObject.iElements++;
				
			}
			
			
			T$("#FSPHPco"+FSPHPcurrenObject.iArticleID +'_' + i).css ("display", (aCommentsData.aComments.length < i)?"none":"block");
			
			T$("#FSPHPdisplay"+FSPHPcurrenObject.iArticleID + '_'  + i).text ("mehr");
			T$("#FSPHPlong" +FSPHPcurrenObject.iArticleID + '_'  + i).attr ('class' ,'Tcomh');
			if (i<=aCommentsData.aComments.length ) {
				
				T$("#FSPHPtitle"+FSPHPcurrenObject.iArticleID +'_' + i).text (aCommentsData.aComments[i-1].sName);
				T$("#FSPHPtime" +FSPHPcurrenObject.iArticleID +'_' + i).text (FSPHPcurrenObject.formatTime (aCommentsData.aComments[i-1].lDate));
				var sComment = '<b>' + aCommentsData.aComments[i-1].sSubject+'</b><br/>' + aCommentsData.aComments[i-1].sComment;
				var lCommentLength = FSPHPcurrenObject.iShortCommentLength;
				if (sComment.length <= lCommentLength) {
					T$("#FSPHPdisplay"+FSPHPcurrenObject.iArticleID + '_'  + i).text ("");
					T$("#FSPHPshort" +FSPHPcurrenObject.iArticleID +'_' + i).html (sComment);
				}
				else {
					var iFirstSpace = sComment.indexOf (" ");
					if (iFirstSpace !=-1) {
						while (sComment.charAt (lCommentLength)!=' ' && lCommentLength >iFirstSpace) lCommentLength--;
					} else lCommentLength++;
			
				T$("#FSPHPshort" +FSPHPcurrenObject.iArticleID +'_' + i).html (sComment.substring (0, lCommentLength));
				T$("#FSPHPlong" +FSPHPcurrenObject.iArticleID +'_' + i).html (sComment.substr (lCommentLength+1));	
				}
				T$("#FSPHPreport" +FSPHPcurrenObject.iArticleID +'_' + i).attr ('href', 'javascript:FSPHPcommentObj' + FSPHPcurrenObject.iArticleID +'.reportComment ('+ aCommentsData.aComments[i-1].lCommentsID +');');
			}
			i++;
		}
			
		
		T$('#FSPHPcombem' + FSPHPcurrenObject.iArticleID).val("");
		T$('#FSPHPcomname'+FSPHPcurrenObject.iArticleID).val("");
		T$('#FSPHPcombetreff'+FSPHPcurrenObject.iArticleID).val("");
		T$('#FSPHPcomkom'+FSPHPcurrenObject.iArticleID).val("");
		
		FSPHPcurrenObject.createNavigation ();
		
	};
	
	this.formatTime= function (iTimestamp) {
		
		var oDate = new Date (iTimestamp *1000);
		var sHour = '';
		if (oDate.getHours() < 10) sHour='0';
		sHour+=oDate.getHours();
		var sMin = '';
		if (oDate.getMinutes() < 10) sMin='0';
		sMin+=oDate.getMinutes();
		var sSec = '';
		if (oDate.getSeconds() < 10) sSec='0';
		sSec+=oDate.getSeconds();
		var sTimeObj = 'am ' + oDate.getDate() + '. ' + FSPHPcurrenObject.aMonth [oDate.getMonth ()] + ' ' + oDate.getFullYear () +' um ' + sHour+ ':' +sMin +':'+sSec ;
		return sTimeObj;
	};
	
	
	
	this.createNavigation= function () {
		 
		var sNavi = '';
		var i = 1;
		T$("#FSPHPnocomments"+FSPHPcurrenObject.iArticleID).css ("display", "none");
		
		FSPHPcurrenObject.iAvailableSides  = Math.floor (FSPHPcurrenObject.iTotalComments / FSPHPcurrenObject.iCommentsPerSide);
		
		if (FSPHPcurrenObject.iAvailableSides*FSPHPcurrenObject.iCommentsPerSide < FSPHPcurrenObject.iTotalComments) FSPHPcurrenObject.iAvailableSides++;
		
		if (FSPHPcurrenObject.iAvailableSides ==1 ||FSPHPcurrenObject.iTotalComments==0) {
			
			T$("#FSPHPNavigation" +FSPHPcurrenObject.iArticleID).css ("display", "none");
			if (FSPHPcurrenObject.iTotalComments==0) {
				
				T$("#FSPHPnocomments"+FSPHPcurrenObject.iArticleID).css ("display", "block");
			}
			return;
		}
		T$("#FSPHPNavigation"+FSPHPcurrenObject.iArticleID).css ("display", "block");
	
		
		if (FSPHPcurrenObject.iAvailableSides>6) {
			i= FSPHPcurrenObject.iSide-2;
			if (i+5 >FSPHPcurrenObject.iAvailableSides) i=FSPHPcurrenObject.iAvailableSides-5;
		}
		if (i<1) i=1;
		var iTo = i+5;
		
		if (iTo > FSPHPcurrenObject.iAvailableSides) iTo = FSPHPcurrenObject.iAvailableSides;
		while (i<=iTo) {
		
			if (FSPHPcurrenObject.iSide == i) sNavi+='<a href="javascript: FSPHPcommentObj' + FSPHPcurrenObject.iArticleID +'.navigateTo (' + i +');" class="FSPHPactpage">'+i+'</a>';
			else if (FSPHPcurrenObject.iAvailableSides>6) {
				if (i==iTo-1 && i!=FSPHPcurrenObject.iAvailableSides-1) sNavi+='<a href="javascript:;">...</a>';
				else if (i==iTo) sNavi+='<a href="javascript: FSPHPcommentObj' + FSPHPcurrenObject.iArticleID +'.navigateTo (' + FSPHPcurrenObject.iAvailableSides +');">'+FSPHPcurrenObject.iAvailableSides+'</a>';
				else sNavi+='<a href="javascript: FSPHPcommentObj' + FSPHPcurrenObject.iArticleID +'.navigateTo (' + i +');">'+i+'</a>';
			}
			else sNavi+='<a href="javascript: FSPHPcommentObj' + FSPHPcurrenObject.iArticleID +'.navigateTo (' + i +');">'+i+'</a>';
			if (sNavi!='' && i< iTo) sNavi+='<span class="FSPHPspacer"></span>';
			i++;
		}
		
		T$('#FSPHPnavsides'+FSPHPcurrenObject.iArticleID).html (sNavi );
		
	};
	
	
	this.writeComment = function () { 
		T$('#FSPHPaddcomment' +this.iArticleID).css ("display", "block");
		T$('#FSPHPcommentadded'+this.iArticleID).css ("display", "none");
		T$('#FSPHPcomto'+this.iArticleID).slideDown();
	};
	
	this.writeCommentClose = function () { 
		T$('#FSPHPcommentClose'+this.iArticleID).css ("display", "block");
		T$('#FSPHPcomClose'+this.iArticleID).slideDown();
	};
	this.submitComment = function () {
		var err=nerr=berr=kerr=0;
		var errstr="";
		var to;
		if (  ! (to=T$('#FSPHPcomname' +this.iArticleID)).val() || to.val().length == 0 ) { nerr=1; err++; errstr+='Name'; to.addClass('Tcomier'); }
		else to.removeClass('Tcomier');
		if (  ! (to=T$('#FSPHPcombetreff'+this.iArticleID)).val() || to.val().length == 0 ) { berr=1; err++; errstr+=errstr.length>0?',':'';errstr+=' Betreff'; to.addClass('Tcomier'); }
		else to.removeClass('Tcomier');
		if (  ! (to=T$('#FSPHPcomkom'+this.iArticleID)).val() || to.val().length == 0 ) { kerr=1; err++; errstr+=errstr.length>0?' und ':'';errstr+='Kommentar'; to.addClass('Tcomker'); }
		else to.removeClass('Tcomker');
	
		if (err>1) errstr='Bitte füllen Sie die Felder '+errstr+' aus!'
		else if (err>0) errstr='Bitte füllen Sie das Feld '+errstr+' aus!';
		if (err>0) { T$('#FSPHPcomerr'+this.iArticleID).html(errstr); T$('#FSPHPcomerr'+this.iArticleID).show(); }
		else { 
			FSPHPcurrenObject = this;
			T$('#FSPHPcomerr'+this.iArticleID).hide(); 
	    
			var aSendValues = {};
			aSendValues.sInterface = 'JASONP';
			aSendValues.sAction = 'AddComment';
			aSendValues.lArticleID = this.iArticleID;
			aSendValues.sName = T$('#FSPHPcomname'+this.iArticleID).val();
			aSendValues.sSubject= T$('#FSPHPcombetreff'+this.iArticleID).val();
			aSendValues.sComment = T$('#FSPHPcomkom'+this.iArticleID).val();
			
			T$('#FSPHPcomname'+this.iArticleID).val("");
			T$('#FSPHPcombetreff'+this.iArticleID).val("");
			T$('#FSPHPcomkom'+this.iArticleID).val("");
			T$('#FSPHPcomkomTouch'+this.iArticleID).html('Maximal 500 Zeichen');
			FSPHPcurrenObject.loadAndSendJsonP (FSPHPcurrenObject.sURL, aSendValues, FSPHPcurrenObject.addCommentDone);
	    
		}
	};
	this.mInit = function (oComments) {	
			
		this.bInit = true;
		T$('#FSPHPcommentadded' +this.iArticleID).css ("display", "none");
		T$('#FSPHPcommentreported' +this.iArticleID).css ("display", "none");	
		T$('.Tclose').click( function(){
			T$('#'+T$(this).parent().attr('id')).slideUp('fast');
		   
		});
		
		
		
		if (this.bClosed ) {
			
			
			T$("#FSPHPcomedt" + this.iArticleID).css ("display", "none");
			T$("#FSPHPcommeNone" + this.iArticleID).css ("display", "block");
			T$("#FSPHPTextNocomments" + this.iArticleID).css ("display", "inline");
			T$("#FSPHPTextNocomments" + this.iArticleID).html("Hinweis: Zu diesem Thema können keine weiteren Kommentare abgegeben werden");
		}
		
		
		T$('#FSPHPcomkom'+FSPHPcurrenObject.iArticleID).keyup( function() {
			
			var n=T$(this).val().length;
			
			var sBaseID = T$(this).attr("id").substring (11);
			if (n>499) {
				T$(this).val(T$(this).val().substr(0,500));
				n=500;
			}
			if (n==0) T$('#FSPHPcomkomTouch'+sBaseID).html('Maximal 500 Zeichen');
			else T$('#FSPHPcomkomTouch'+sBaseID).html('noch '+(500-n)+' Zeichen');
		});
		T$('#FSPHPcombem'+FSPHPcurrenObject.iArticleID).keyup( function() {
			
			var n=T$(this).val().length;
			
			var sBaseID = T$(this).attr("id").substring (11);
			if (n>499) {
				T$(this).val(T$(this).val().substr(0,500));
				n=500;
			}
			if (n==0) T$('#FSPHPcomkomBem'+sBaseID).html('Maximal 500 Zeichen');
			else T$('#FSPHPcomkomBem'+sBaseID).html('noch '+(500-n)+' Zeichen');
		});
		
		
		
		
		
		//this.commentsLoaded (oComments);
		
	};
	
	
	this.loadComments= function () {
		
		//bemerkungsfeld offen
		T$('#FSPHPcommeld'+ this.iArticleID).slideUp('fast');
		var aSendValues = {};
		aSendValues.sInterface = 'JASONP';
		aSendValues.sAction = 'GetComments';
		aSendValues.lArticleID = this.iArticleID;
		aSendValues.lOffset =( this.iSide-1) * this.iCommentsPerSide ;
		aSendValues.lCommentCount =this.iCommentsPerSide;
		FSPHPcurrenObject  = this;
		this.loadAndSendJsonP (this.sURL, aSendValues, FSPHPcurrenObject.commentsLoaded);	
	};
	
	this.addCommentDone= function (oReceivedData) {
		FSPHPcomment.iSide = 1;
		T$('#FSPHPaddcomment' + FSPHPcurrenObject.iArticleID).css ("display", "none");
		T$('#FSPHPcommentadded'+ FSPHPcurrenObject.iArticleID).css ("display", "block");
		FSPHPcurrenObject.commentsLoaded (oReceivedData);
		
	};
	this.reportDone =  function (oReceivedData) {
		 
		T$('#FSPHPcommentreported' +FSPHPcurrenObject.iArticleID).css ("display", "block");
		T$('#FSPHPreportcomment'+FSPHPcurrenObject.iArticleID).css ("display", "none");
		
	};
	this.displayComment= function (iCommentID) {
		var FSPHP_counter=0;
		
		T$("#FSPHPlong" +this.iArticleID + '_'  + iCommentID).toggleClass('Tcomh');
		
		if (T$("#FSPHPdisplay"+this.iArticleID + '_'  + iCommentID).text () =='mehr')
			{
			T$("#FSPHPdisplay"+this.iArticleID + '_'  + iCommentID).text ("weniger");
			T$('#FSPHPcomments'+this.iArticleID).css('position','');
			T$('#FSPHPcomments'+this.iArticleID).css('height','100%');
			
			}
		else { 
		        T$('#FSPHPcomments'+this.iArticleID).css('position','relative');
		        
		        T$('#FSPHPcomments'+this.iArticleID+' span[class="Tcomh"]').each(function(index) {
			  FSPHP_counter++;
			  });
			
		    	if(FSPHP_counter >(this.iCommentsPerSide-1))
	        	T$('#FSPHPcomments'+this.iArticleID).css('height','260px');
	                T$("#FSPHPdisplay"+this.iArticleID + '_'  + iCommentID).text ("mehr");
	        }
	
	};
	this.readRights= function () {
		
		T$('#FSPHPrecht' +this.iArticleID).slideDown();
		T$('#FSPHPrechtcontent'+ this.iArticleID).html('<h4>Rechtliche Hinweise</h4><p>Die Kommentare geben die Meinung des jeweiligen Verfassers wieder, die Deutsche Telekom AG distanziert sich daher von den Inhalten der Kommentare.</p><p>Der Verfasser ist einverstanden, dass sein Kommentar in die Webseiten der Deutschen Telekom AG (v.a. in den Portalen von t-online.de) eingestellt und dort zum Abruf bereitgehalten wird. Er räumt der Deutschen Telekom AG hiermit das räumlich, inhaltlich und zeitlich sowie nach Abrufmengen unbeschränkte und unwiderrufliche Recht ein, seinen Kommentar in den Webseiten der Deutschen Telekom AG einzustellen, zu vervielfältigen, zum Abruf bereit zu halten und öffentlich zugänglich zu machen.</p><p>Außerdem sichert der Verfasser der Deutschen Telekom AG die Rechtmäßigkeit seines Kommentares zu und wird keine rechtsverletzenden sowie strafrechtlich relevanten Inhalte einstellen</p><p>Bleiben Sie bitte sachlich und themenbezogen in Ihren Beiträgen. </p><p>Unterlassen Sie bitte links- und rechtsradikale, pornographische, rassistische, beleidigende und verleumderische Aussagen in Ihren Kommentaren.</p>');
	};
	
	this.submitReport = function () {
		var err=0;
		FSPHPcurrenObject = this;
		
		//if (  ! (to=T$('#FSPHPcombem' + this.iArticleID)).val() || to.val().length == 0 ) { err++; to.addClass('Tcomker'); }
		//else to.removeClass('Tcomker');
	
		if (err>0) { T$('#FSPHPcommerr'+ this.iArticleID).html('Bitte schreiben Sie eine Bemerkung.'); T$('#FSPHPcommerr'+ this.iArticleID).show(); }
		else { 
			T$('#FSPHPcommerr'+ this.iArticleID).hide(); 
						
			var aSendValues = {};
			aSendValues.sInterface = 'JASONP';
			aSendValues.sAction = 'ReportComment';
			aSendValues.lArticleID = this.iArticleID;
			aSendValues.lCommentID = this.iReportID;
			aSendValues.sNotice= ' ';
			//aSendValues.sNotice= T$('#FSPHPcombem' + this.iArticleID).val();
			
			T$('#FSPHPcombem' + this.iArticleID).val("");
			T$('#FSPHPcomkomBem'+this.iArticleID).html('Maximal 500 Zeichen');
			FSPHPcurrenObject.loadAndSendJsonP (this.sURL, aSendValues, this.reportDone);	
		}
	};
	this.reportComment= function (iCommentID) {
		
		this.iReportID = iCommentID;
		
		T$('#FSPHPcombem' + this.iArticleID).val("");
		T$('#FSPHPcomkomBem'+this.iArticleID).html('Maximal 500 Zeichen');
		T$('#FSPHPreportcomment' + this.iArticleID).css ("display", "block");
		T$('#FSPHPcommentreported'+ this.iArticleID).css ("display", "none");
		
		T$('#FSPHPcommeld'+ this.iArticleID).slideDown();
	
	};
	this.loadAndSendJsonP= function (sUrl, aData, oCallBack) {
		
		var sQuery = sUrl;
		sQuery+="?";
		
		var iCount =0;
		
		for (var p in aData) {
			if (iCount>0) sQuery+="&";
			sQuery+=p+"=" + encodeURIComponent (aData[p]);
			iCount++;
		}

		T$.ajax({
  				dataType: 'jsonp',
  				jsonp: 'jsonp_callback',
  				url: sQuery,
 				success: oCallBack
			});
	};
	
	this.navigateTo= function (iTargetPage) {
		T$('#FSPHPcomments'+this.iArticleID).css('height','260px');
		this.iSide = iTargetPage;
		this.loadComments ();
	};
	this.prevPage= function () {
		T$('#FSPHPcomments'+this.iArticleID).css('height','260px');
		if (this.iSide-1 >0) this.iSide--;
		this.loadComments ();
	};
	this.nextPage= function () {
		T$('#FSPHPcomments'+this.iArticleID).css('height','260px');
		if (this.iSide< this.iAvailableSides) this.iSide++;
		this.loadComments ();
	};
	this.lastPage= function () {
		T$('#FSPHPcomments'+this.iArticleID).css('height','260px');
		this.iSide = this.iAvailableSides;
		this.loadComments ();
	};
	this.mInit (oComments);
}



