var AConsulting = { 
	sTitle : 'Sem napište název dotazu',
	sText  : 'text dotazu',
	sEmail : 'vas@email.cz',
	uTitle : 'Odpověď na dotaz',
	uText  : 'text odpovědi',
		
	init : function  (
			loginLink, 
			consultingId,
			date,
			userName,
			avatar,
			userLink,
			alreadySend,
			consultantLogged,
			userEmail,
			isLoggedUser,		
			similarText,
			similarConfirm
		) {
			this.loginLink = loginLink; 
			this.consultingId = consultingId;
			this.date = date;
			this.userName = userName;
			this.avatar = avatar;
			this.userLink = userLink;
			this.alreadySend = alreadySend;
			this.consultantLogged = consultantLogged;
			this.userEmail = userEmail;
			this.tmp = '';
			this.isLoggedUser = isLoggedUser;
			this.similarText = similarText;
			this.similarConfirm = similarConfirm;
	},
	addNewPaper : function addNewPaper () {
		this.closeThanksBox();
		if ( this.isLoggedUser == '0' ) {
			this.showLoginWindow();
			return;
		}
		var addBox = document.getElementById('add-box');
		if(addBox){
			showErrorWindow('Už přidáváte nový dotaz');
			return;
		}
		addBox = document.createElement('div');
		addBox.id = 'add-box';
		addBox.className = 'paper-first-level paper-add-level';
		
		var email = this.userEmail ? this.userEmail : this.sEmail;
		
		//var uploadBox = document.getElementById('uploadbox');
		//uploadBox = uploadBox.innerHTML;
		//uploadBox = uploadBox.replace("SWFUpload_0", "SWFUpload_1");
		
		var photoid = Math.floor(Math.random()*90000000+10000000);
		
		var uploadBox = '<div class="photouploadbox">' +
			'<iframe src="' + juri + 'service/consultingimage.php" width="400" height="30" marginheight="0" marginwidth="0" scrolling="no" frameborder="0" style="border: 0 none;">' +
			'</iframe>' +
			'<input type="hidden" id="photoid" name="photoid" value="' + photoid + '" />' +
			'</div>';

		addBox.innerHTML = 					
				'<div class="paper-left">'+
					'<div class="paper-header">'+
						'<input type="text" name="paper-title" id="paper-title" class="paper-input-title" value="'+this.sTitle+'" onfocus="if(this.value==\''+this.sTitle+'\') this.value=\'\';"/>'+
						'<a href="javascript:showConfirm(\'javascript:AConsulting.removeAddNewPaper()\',\'Opravdu zrušit?\',\'ano, zrušit &gt;&gt;\',\'\')" class="cancel-add" title="Kliknutím zrušíte zadávání dotazu">Zrušit dotaz</a>'+
						'<div class="right-info">'+
							'<a class="user" href="'+this.userLink+'" title="Zobrazí detail uživatele">'+this.userName+'</a> | <em>'+this.date+'</em>'+
						'</div>'+
					'</div>'+														
					'<div id="editor" class="consulting-editor-question">'+						
						'<textarea id="paper-text" name="paper-text" cols="75" rows="20" style="width: 510px; height: 200px;" class="paper-text"></textarea>'+
					'</div>'+					
					'<span class="label-for-input">Vložit fotografii:</span>'+ uploadBox +
					'<br />'+
					'<span class="label-for-input">Kontaktní email:</span><input type="text" name="email" id="paper-email" class="paper-input-email" value="'+email+'" onfocus="if(this.value==\''+this.sEmail+'\') this.value=\'\';"/>'+
					'<span class="email-label">Zadejte email, na který vás upozorníme, až bude dotaz zodpovězen.<br/>(email nebude u zodpovězeného dotazu zobrazen)</span>'+
					'<br />'+
					'<input type="checkbox" name="private" id="private-check" value="1" class="paper-check"/>'+
					'<span class="check-label">Nepřeji si zveřejnění přiložené fotografie ostatním uživatelům, je určena pouze pro poradce v této poradně. (V případě nezaškrtnutí souhlasíte se zveřejněním fotografie v této poradně a zároveň potvrzujete, že vlastníte práva k jejímu poskytnutí třetím osobám.)</span>'+
					'<br />'+
					'<input type="checkbox" name="check" id="paper-check" value="1" class="paper-check"/>'+
					'<span class="check-label">Souhlasím se zasíláním informací o novinkách a soutěžích na www.prozeny.cz.</span>'+
				'</div>'+
				'<div class="paper-right consultings-avatar">'+							
					'<img src="'+this.avatar+'" alt="Uživatel"/>'+
					'<input class="paper-send" id="paper-send" type="image" title="Klikněte pro odeslání příspěvku" alt="Odeslat" src="'+juri+'/static/images/discussions/btn-send.png" onclick="javascript:AConsulting.sendPaper(\'0\',\'0\',true);"/>'+
				'</div>';
		var cleaner = document.getElementById('discussion-cleaner-id');
		if(cleaner && addBox){
			document.getElementById('discussions-container').insertBefore(addBox, cleaner.nextSibling);
		}		
	},
	removeAddNewPaper : function () {
		cancelLightbox();
		var container = document.getElementById('discussions-container');
		var addBox = document.getElementById('add-box');
		if(container && addBox){
			container.removeChild(addBox);
		}
	},
	addReaction : function (paperId,reactionId,first){	
		var pText = document.getElementById ( 'text-' + reactionId );
		var text = pText ? pText.innerHTML : '';
		text = text.replace(/<br\/>/gi,"\n");		
		text = text.replace(/<br>/gi,"\n");
        text = this._linksToBBCode(text);
		this.tmp = text;
		var paper = document.getElementById('paper-' + reactionId); 
		var container = document.getElementById('discussions-container');
		if ( paper && container ) {
			container.removeChild(paper);		
		}
		this.closeThanksBox();
		if ( this.userId == '0' ) {
			this.showLoginWindow();
			return;
		}
		var addBox = document.getElementById('reaction-box-'+paperId);
		if(addBox){
			showErrorWindow('Už přidáváte odpověď na tento dotaz');
			return;
		}
		if ( reactionId == '0' && !first) reactionId = paperId;

		var paper = document.getElementById('paper-'+paperId);
		css = paper.className;
		if ( css == 'arrow-maker' ) {
			paper.className = 'arrow-maker arrow-maker-no-last';
		}		
		addBox = document.createElement('div');
		addBox.id = 'reaction-box-'+paperId ;
		
		var rFunction = text ? 'cancelUpdate('+reactionId+','+paperId+')' : 'removeAddReaction('+paperId+','+paperId+')';

                fldTextId = 'paper-text'+reactionId;
		addBox.innerHTML = 					
'<div class="arrow-maker">'+				
    '<div class="paper-reaction-level paper-first-level paper-add-level" >'+
        '<div class="paper-left">'+
            '<div class="paper-header">'+
                '<strong>'+this.uTitle+'</strong>'+
                '<a href="javascript:showConfirm(\'javascript:AConsulting.'+rFunction+'\',\'Opravdu zrušit?\',\'ano, zrušit &gt;&gt;\',\'\')" class="cancel-add" title="Kliknutím zrušíte zadávání odpovědi">Zrušit odpověď</a>'+
                '<div class="right-info">'+
                        '<a class="user" href="" title="Zobrazí detail uživatele">'+this.userName+'</a> | <em>'+this.date+'</em>'+
                '</div>'+
            '</div>'+
            '<div id="editor" class="consulting-editor-answer">'+
                '<textarea id="'+fldTextId+'" name="paper-text" cols="75" rows="20" style="width: 510px; height: 400px;" class="paper-text">'+text+'</textarea>'+
                '<p>odkazy můžete vkládat ve tvaru [url=http://www.example.org/]text odkazu[/url]</p>'+
            '</div>'+
        '</div>'+
        '<div class="paper-right">'+
            '<img src="'+this.avatar+'" alt="Uživatel"/>'+
            '<input class="paper-send" id="paper-send" type="image" title="Klikněte pro odeslání příspěvku" alt="Odeslat" src="'+juri+'/static/images/discussions/btn-send.png" onclick="javascript:AConsulting.sendPaper(\''+reactionId+'\',\''+paperId+'\',false,\''+fldTextId+'\');"/>'+
        '</div>'+
    '</div>'+
'</div>';			
		var container = this.getContainer();
		if(container && addBox && paper){
			container.insertBefore(addBox, paper.nextSibling);
			this.setToolbarLinks(0,0,0,paperId);
		}
	},
	disablePaperSend : function (){
		this.setPaperSend(true);
	},
	enablePaperSend : function (){
		this.setPaperSend(false);
	},
	setPaperSend : function (value){
		var paperSend = document.getElementById('paper-send');
		if ( paperSend ) {
			paperSend.disabled = value;
		}
	},	
	removeAddReaction : function (reactionId,paperId){
		cancelLightbox();
		var container = document.getElementById('discussions-container');	
		var addBox = document.getElementById('reaction-box-'+reactionId);
		if(container && addBox){
			container.removeChild(addBox);
			this.setToolbarLinks(1,1,1,paperId);
		}	
		var paper = document.getElementById('paper-'+paperId);
		if(paper){
			css = paper.className;
			if(paper.className == 'arrow-maker arrow-maker-no-last'){
				paper.className = 'arrow-maker';
			}
		}
	},
	deleteQuestion : function (questionId,answerId) {		
		var url = juri + 'index.php?option=com_consultings&task=remove&id='+questionId;
		var text = "Nepodařilo se odeslat";
		this.remove (questionId, answerId, url, text);
	},
	similarQuestion : function (questionId,answerId) {
		var url = juri + 'index.php?option=com_consultings&task=similar&id='+questionId;
		var text = "Nepodařilo se smazat";
		this.remove (questionId, answerId, url, text);
	},
	remove : function (questionId,answerId,url,text){
		cancelLightbox();
		AUtility.ajaxSend (url,
			function (result){
				switch(result){
					default:
					case '0':
						showErrorWindow(text);
						break;
					case '1':
						var eContainer = AConsulting.getContainer();
						var eQuestion  = AConsulting.getPaper(questionId); //dotaz
						var eAnswer    = AConsulting.getPaper(answerId); //odpoved pokud jiz byla zadana
						if(eContainer){
							if(eQuestion){
								eContainer.removeChild(eQuestion);
							}
							if(eAnswer){
								eContainer.removeChild(eAnswer);
							}
						}
						break;
				}			
			}
		);
	},
	sendPaper : function  (reactionId,paperId,isQuestion,fldTextId) {
		this.disablePaperSend();	
		this.isQuestion = isQuestion;
		if ( isQuestion ) {
			var vText = this.uText;
		} else {
			var vText = this.sText;
		}

		if ( isQuestion ) {
			var title = document.getElementById('paper-title').value;			
		} else {
			var title = this.uTitle;
		}

                //var text = document.getElementById('paper-text').value;
                if (fldTextId == undefined) {
                    fldTextId = 'paper-text'
                }
		var text = document.getElementById(fldTextId).value;		
		
		text = text.replace(/\n\r/gi,"<br/>");
		text = text.replace(/\n/gi,"<br/>");
	
		switch(title){
			case '':
			case this.sTitle:
				this.enablePaperSend();
				showErrorWindow('Zadejte, prosím, Váš název dotazu');
				return false;
		}
		switch(text){
			case '':
			case this.sText:
				if ( isQuestion ) {
					showErrorWindow('Zadejte prosím Váš text dotazu');
				} else {
					showErrorWindow('Zadejte prosím text odpovědi');
				}
				this.enablePaperSend();
				return false;
		}
		
		var elPhotoid = document.getElementById('photoid');
		var photoid = elPhotoid ? elPhotoid.value : '';
		
		var elEmail = document.getElementById('paper-email');
		var email = elEmail ? elEmail.value : '';
		if ( email == this.sEmail ){
			email = '';
		}
		var elIscheck = document.getElementById('paper-check');
		var ischeck = 0;
		if ( elIscheck ) {
			var ischeck = elIscheck.checked ? 1 : 0;
		}
		
		var elIsprivate = document.getElementById('private-check');
		var isprivate = 0;
		if ( elIsprivate ) {
			var isprivate = elIsprivate.checked ? 1 : 0;
		}		

		if ( text.length > 2000  && isQuestion ) {
			showErrorWindow('Dotaz je příliš dlouhý. Nešel by zkrátit?',1);
			this.enablePaperSend();
			return false;
		}	
		 
		if ( title == "" || text == "" ) {
			if ( reactionId == '0' ){
				showConfirmWindow('Nemohu odeslat dotaz - obsahuje nepovolený obsah');
			} else {
				showConfirmWindow('Nemohu odeslat odpověď - obsahuje nepovolený obsah'); 		
			}
			enablePaperSend();
			return false;
		} 
 	
		var id = reactionId == paperId ? 0 : reactionId;
 	
		var url = juri + 'index.php'

		var params = 'option=com_consultings&task=save' +
			         '&reactionId='   + paperId + 
			         '&consultingId=' + this.consultingId +
			         '&title='        + title + 
			         '&text='         + encodeURIComponent(text.replace(/&/g,'&amp;')) +
			         '&id='           + id + 
			         '&email='        + email + 
			         '&check='        + ischeck +
					 '&private='      + isprivate +
					 '&photoid='      + photoid;
		
		AUtility.ajaxSendPost (url,params,
			function (result){
		    	if ( result > 0) {
		    		if ( ! AConsulting.isQuestion ) { //odpoved poradce
		    			AConsulting.setToolbarLinks(1,1,0,paperId);
		    			AConsulting.showNewReaction(result,title,text,reactionId,paperId);  
		    		} else { //dotaz navstevnika
		    			AConsulting.removeAddNewPaper();
		    			AConsulting.showThanksBox();
		    		}
				}
			}
		);
	},	
	cancelUpdate : function (reactionId,paperId){
		cancelLightbox();
		this.removeAddReaction(paperId,paperId);
		this.showNewReaction(reactionId,'Odpověď na dotaz',this.tmp,reactionId,paperId);
		this.setToolbarLinks(1,1,0,paperId);
	},
	
	showNewPaper : function (result,title,text){
		this.removeAddNewPaper ();
		var newBox = document.createElement('div');
		
		newBox.className = 'paper-first-level';
		newBox.id = 'paper-'+result;
		newBox.innerHTML =
			'<div class="paper-left" id="paper-"'+result+'">'+
				'<div class="paper-header">'+
					'<strong>'+title+'</strong>'+
					'<div class="right-info">'+
						'<a class="user" href="" title="Zobrazí detail uživatele">'+this.userName+'</a> | <em>'+this.date+'</em>'+
					'</div>'+						
				'</div>'+												
				'<p>'+text+'</p>'+
			'</div>'+
			'<div class="paper-right">'+							
				'<img src="'+this.avatar+'" alt="Uživatel"/>'+
				'<a class="reaction" href="javascript:AConsulting.addReaction(\''+result+'\',\''+result+'\',\''+title+'\');" title="Klikněte pro přidání příspěvku">reagovat</a>'+
			'</div>';
		var cleaner = document.getElementById('discussion-cleaner-id');
		var container = document.getElementById('discussions-container');
		if(container && cleaner && newBox ){
			container.insertBefore(newBox, cleaner.nextSibling);
		}
	},	
	showNewReaction : function (result,title,text,reactionId,paperId){		
		this.removeAddReaction(paperId,0);	
		var reactionBox = document.createElement('div');
		reactionBox.id = 'paper-'+result;
		reactionBox.className = 'arrow-maker';
		reactionBox.innerHTML =
			'<div class="paper-reaction-level paper-first-level">'+
				'<div class="paper-left">'+
					'<div class="paper-header">'+
						'<strong>'+title+'</strong>'+
						'<div class="right-info">'+
							'<a class="user" href="" title="Zobrazí detail uživatele">'+this.userName+'</a> | <em>'+this.date+'</em>'+
						'</div>'+						
					'</div>'+												
					'<p id="text-'+result+'">'+this._bbCodeToLinks(text)+'</p>'+
				'</div>'+
				'<div class="paper-right">'+							
					'<img src="'+this.avatar+'" alt="Uživatel"/>'+
					'<a class="reaction" href="javascript:AConsulting.addReaction(\''+paperId+'\',\''+result+'\')" title="Klikněte pro úpravu odpovědi">upravit</a>'+
				'</div>'+
			'</div>';	
						
		var paper = document.getElementById('paper-'+paperId);
		var container = document.getElementById('discussions-container'); 
		if(paper && container && reactionBox){
			container.insertBefore(reactionBox, paper.nextSibling);			
			var deleteLink = document.getElementById('delete-link-'+paperId);			
			var similarLink = document.getElementById('similar-link-'+paperId);
			if(deleteLink){
				deleteLink.setAttribute('href',"javascript:showConfirmLightbox('javascript:AConsulting.deleteQuestion(\\'"+paperId+"\\',\\'"+result+"\\')');");
			}
			if(similarLink){
				similarLink.setAttribute('href',"javascript:showConfirm('javascript:AConsulting.similarQuestion(\\'"+paperId+"\\',\\'"+result+"\\')','"+this.similarText+"','"+this.similarConfirm+"');");
			}
		}
	},
	showLoginWindow : function (){	
		var text = 'Pro vstup do poradny se, prosím, <a href="'+this.loginLink+'" title="Klikněte pro přihlášení">přihlašte</a>';
		showLightbox(text,'','','');
	},
	showThanksBox : function (){
		var thanksBox = document.createElement('div');
		thanksBox.id = 'consulting-thanks-box';
		thanksBox.innerHTML = 		
			'<h3>Váš dotaz jsme přijali. Děkujeme!</h3>'+
			'<a href="javascript:AConsulting.closeThanksBox()" title="KLiknutím odstraníte děkovací nápis">zavřít</a>';
		var cleaner = document.getElementById('discussion-cleaner-id');
		var container = document.getElementById('discussions-container');
		if(cleaner && thanksBox){
			container.insertBefore(thanksBox, cleaner.nextSibling);
		}
	},
	closeThanksBox : function (){
		var container = document.getElementById('discussions-container');
		var thanksBox = document.getElementById('consulting-thanks-box');
		if(container && thanksBox){
			container.removeChild(thanksBox);
		}
	},
	entryAnonymous : function (){
		cancelLightbox();
		this.addNewPaper(1);
	},
	ignoreQuestion : function (paperId){
		showConfirmWindow('Nemohu odeslat dotaz - obsahuje nepovolený obsah');
	},
	getContainer : function (){
		return AUtility.getDivElement('discussions-container');
	},
	getPaper : function (id){
		return AUtility.getDivElement('paper-'+id);
	},	
	setToolbarLinks : function (similarLinkSet,deleteLinkSet,answerLinkSet,paperId){
		var similarLink = document.getElementById('similar-link-'+paperId);
		var deleteLink = document.getElementById('delete-link-'+paperId);
		var answerLink = document.getElementById('answer-link-'+paperId);
		if(similarLink){
			similarLink.style.display = similarLinkSet == 1 ? 'inline' : 'none';
		}
		if(deleteLink){
			deleteLink.style.display  = deleteLinkSet  == 1 ? 'inline' : 'none';
		}
		if(answerLink){
			answerLink.style.display  = answerLinkSet  == 1 ? 'inline' : 'none';
		}
	},
    _linksToBBCode : function (text) {
        text = text.replace(/ rel="nofollow"/gi, '');
        text = text.replace(/ rel=nofollow/gi, ''); // msie
        //return text.replace(/<[a|A]\s.*href="(.*)">(.*)<\/[a|A]>/ig, '[url=$1]$2[/url]');
        text = text.replace(/<\/a>/gi, '[/url]');
        text = text.replace(/<a/gi, '[url');
        text = text.replace(/ href="/gi, '=');
        text = text.replace(/"/gi, '');
        text = text.replace(/>/gi, ']');
        return text;        
    },
    _bbCodeToLinks : function (text) {
        text = text.replace(/\[url\](.+?)\[\/url\]/ig, '<a href="$1">$1</a>');
        text = text.replace(/\[url=(.+?)\](.+?)\[\/url\]/ig, '<a href="$1">$2</a>');
        text = text.replace(/\r?\n/g, '<br />');
        return text;
    }
};
