function eh(msg) {
 ;  //alert("blad:"+msg);
}
DWREngine.setErrorHandler(eh);
DWREngine.setWarningHandler(eh);
DWREngine.defaultMessageHandler = eh;

// uzywane np. na stronie moderacji zdjec
function getImages(id,icons,t) {
	setTimeout("askForPostImages("+id+","+icons+")", t*300);
}

function askForPostImages(id,icons) {
	Group.getPostImages(id,icons,showPostImages);
}

var forumId=0;
function showPostImages(data){
    var info = "";
    var ihtml='';
    var removedItems = false;
    var urlParams='';
    if( forumId!=0){
    	urlParams = ',1,0,'+forumId;
    }
    if( data.count >0 ){
   		for (i=0;i<data.count;i++){
   			if (data.ids[i] == 0) {
   				removedItems = true;
   			} else {
	   		    if( data.icons ==1 ){
				ihtml += 
					'<div class="left mright10"><a href="/zdjecie/'+data.ids[i]+urlParams+data.seoTitle[i] + '.html"><img class=main src="'+data.url[i]+'" border=0></a><br><span class="sub">'+data.desc[i]+'</span></div>';
				}else{
				ihtml += 
					'<a href="/zdjecie/'+data.ids[i]+urlParams+data.seoTitle[i] +'.html"><img class=main src="'+data.url[i]+'" border=0></a> <div class="sub">'+data.desc[i]+'</div>';
				}
			}
        }
        if (removedItems && ihtml == '') {
        	ihtml += '<img class=main src="/i/no_photo_6.gif" border=0>';
        }
        getElement("image"+data.id).innerHTML = ihtml;
    }else{
	getElement("image"+data.id).innerHTML = '<img class=main src="/i/no_photo_6.gif" border=0>';
    }
}

/**
 * 	shows thumbnails / large images in single post when thread's opinions list is not expanded
 */
var forumXX;
function askForPostThumbnails(id, fid, bigImages) {
	forumXX = fid;
	if (!bigImages) {
		Group.getPostImages(id,1,showPostThumbnails);
	} else {
		Group.getPostImages(id,1,showThreadPostsImages);
	}
}
// post thumbnails when displayed as a single thread post
function showPostThumbnails(data) {	
	var ihtml = '';
	var descr = '';
	var name = '';
	var url = '';
	var i = 0;
	var id = 0;
	var removedItems = false;
	
	if (data.count > 0) {
		for (i=0; i<5; i++) {
			ihtml += '<div id="big_'+i+'_'+data.id+'" style="display: none; position: relative;"></div>';
		}
		getElement("imageDiv"+data.id).innerHTML = ihtml;
		ihtml = '';
		for (i=0; i<data.count; i++) {
			if (data.ids[i] == 0) {
				removedItems = true;
			} else {
				id = data.ids[i];
				name = data.names[i];
				if (name != null && name.length > 16) {
					name = name.substring(0,13) + '...'
				}
				ihtml +=
				'<div class="left mright100" id="thumb_'+id+'_'+data.id+'"><a href="javascript:void(0)" onClick="javascript:zoomImage('+id+','+data.id+')"><img class=main src="'+data.url[i]+'" border=0><br><span class="sub">'+name+'</span></a></div>';
			}
		}
		
		if (removedItems && ihtml == '') {
        	ihtml += '<img class=main src="/i/no_photo_6.gif" border=0>';
        }
		getElement("postimage"+data.id).innerHTML = ihtml;
		
		if (data.ids[0] != 0) {
			zoomImage(data.ids[0],data.id);	// enlarge first image
		}
	}
}
/**
 * zoom image, step 1 of 3
 */
function zoomImage(fileXX, opiniaXX) {
	hideElement("thumb_"+fileXX+"_"+opiniaXX);
	var matcherStr = 'image_';
	var imageElem = getElement("big_4_"+opiniaXX);
	
	if (imageElem.innerHTML.match(matcherStr) != null) {
		for (k=0; k<4; k++) {
			getElement('big_'+k+'_'+opiniaXX).innerHTML = getElement('big_'+(k+1)+'_'+opiniaXX).innerHTML;
			if (getElement('big_'+k+'_'+opiniaXX).innerHTML.match(matcherStr) != null) {
				getElement('big_'+k+'_'+opiniaXX).style.display = 'block';
			}
		}
	}
	
	imageElem.innerHTML = '<div id="image_'+fileXX+'_'+opiniaXX+'" class="imageBigDiv"><img src="/i/kolo.gif" /></div>';
	imageElem.style.display = 'block';
		
	Group.updateViewCounter(fileXX, opiniaXX, zoomImageProxy);
}
/**
 * zoom image, step 2 of 3
 */
function zoomImageProxy(data) {
	var imageElem = getElement("big_4_"+data.opiniaXX);
	var k = 0;
	var imageObj = new Image();
	imageObj.src = data.imageURL;
	data.imageObj = imageObj;
	data.imageDiv = 'image_' +data.fileXX+'_'+data.opiniaXX;
	
	if (imageObj.complete) {
		zoomImageFinal(data);
	} else {
		imageObj.onload = function() {zoomImageFinal(data);}
	}
}
/**
 * zoom image, step 3 of 3
 */
function zoomImageFinal(data) {
	var title= '';
	var innerHTMLStr = '';
	var titleLineChars = 55;
	var k =1;

	
	if (data.name != null && data.name.length > 0 && data.name != 'null') {
		title = data.name;
	}
	if (data.description != null && data.description.length > 0 && data.description != 'null') {
		title += ' | ' + data.description;
	}
	
	innerHTMLStr =  '<div class="minusikOuter"><span class="minusikInner"><a href="/zdjecie/'+data.fileXX+',1,0,'+forumXX + data.seoTitle+'.html">';
	innerHTMLStr += '<img src="'+data.imageURL+'"/></a></span></div><div class="minusikSplitter">';
	innerHTMLStr += wrapLine(title, titleLineChars, 1, 1, '');	// [1]
	innerHTMLStr += '<a href="javascript:void(0)" onClick="javascript:iconizeImage('+data.fileXX+','+data.opiniaXX+')"><img src="/i/lupka_zmniejsz.gif" class="minusikImgM" /></a><br>';
	innerHTMLStr += wrapLine(title, titleLineChars, 2, 0, '<br />'); 	// [2,3,4,(...)];
	innerHTMLStr += '</div>';
	
	getElement(data.imageDiv).innerHTML = innerHTMLStr;
	getElement("big_4_"+data.opiniaXX).style.display='block';
	
	//location.hash = 'image_'+data.fileXX+'_'+data.opiniaXX;
}

/**
  *  wraps a line . words won't BEGIN after lineLength (can end there anyway)
  */
function wrapLine (str, lineLength, fromLine, toLine, wrapSign) {
	var ret = '';
	var re = new RegExp('\\s+\\S+$');
	var matcher = null;
	var lastMatcherIndex = 0;
	var tmp = null;
	var lineNum = 0;

	fromLine = fromLine > 0 ? fromLine : 1;
	toLine = (toLine >= fromLine) ? toLine : Number.POSITIVE_INFINITY;
	
	if (str.length > 0) 
		str = str.replace(/^\s+|\s+$/g, '');	
	tmp = str;
	
	while (tmp != null && tmp.length > 0) {
		while ((matcher = re.exec(tmp)) != null && matcher.index > lineLength) {
				lastMatcherIndex = matcher.index;
				tmp = str.substring(0, lastMatcherIndex);
		}
		lineNum++;
		if (lineNum >= fromLine && lineNum <= toLine)
				ret += tmp + wrapSign;

		str = (lastMatcherIndex != 0) ? str.substring(lastMatcherIndex+1) : null;
		tmp = str;
	}
	return ret;
}

/**
 *  minimizes image file
 */
function iconizeImage(fileXX, opiniaXX) {
	var imageObj = null;
	var matcherStr = 'image_'+fileXX+'_'+opiniaXX;
	var k = 0;
	var i = 0;
	
	for (k=0; k<5; k++) {
		imageObj = getElement('big_'+k+'_'+opiniaXX);
		if (imageObj.innerHTML.match(matcherStr) != null) {
			for (i=k; i<4; i++) {	// 0|1|2|3
				getElement('big_'+i+'_'+opiniaXX).innerHTML = getElement('big_'+(i+1)+'_'+opiniaXX).innerHTML;
				if (getElement('big_'+i+'_'+opiniaXX).innerHTML.match("minusikOuter") == null) {
					getElement('big_'+i+'_'+opiniaXX).style.display = 'none';
				}
			}
			break;
		}
	}
	getElement("big_4_"+opiniaXX).innerHTML = '';
	getElement("big_4_"+opiniaXX).style.display='none';
	showElement('thumb_'+fileXX+'_'+opiniaXX);
}

/**
 * 	shows images / thumbnails for every post when thread's opinions list is expanded
 */
function askForThreadPostThumbnails(id, fid, bigImages) {
	forumXX = fid;
	if (!bigImages) {
		Group.getPostImages(id,1,showThreadPostsThumbnails);
	} else {
		Group.getPostImages(id,1,showThreadPostsImages);
	}
}
// thumbs for every post in expanded thread's opinions list
function showThreadPostsThumbnails(data) {
	var ihtml = '';
	var descr = '';
	var name = '';
	var url = '';
	var i = 0;
	var id = 0;
	var removedItems = false;
	
	if (data.count > 0) {
		for (i=0; i<5; i++) {
			ihtml += '<div id="big_'+i+'_'+data.id+'" style="display: none; position: relative;"></div>';
		}
		getElement("imageDiv"+data.id).innerHTML = ihtml;
		ihtml = '';
		for (i=0; i<data.count; i++) {
			if (data.ids[i] == 0) {
				removedItems = true;
			} else {
				id = data.ids[i];
				name = data.names[i];
				if (name != null && name.length > 16) {
					name = name.substring(0,13) + '...'
				}
				ihtml +=
				'<div class="left mright100" id="thumb_'+id+'_'+data.id+'"><a href="javascript:void(0)" onClick="javascript:zoomImage('+id+','+data.id+')"><img class=main src="'+data.url[i]+'" border=0><br><span class="sub">'+name+'</span></a></div>';
			}
		}
		
		if (removedItems && ihtml == '') {
        	ihtml += '<img class=main src="/i/no_photo_6.gif" border=0>';
        }
		getElement("postimage"+data.id).innerHTML = ihtml;
	}
}
// enlarged images for every post in expanded thread's opinions list
function showThreadPostsImages(data) {
	var ihtml = '';
	var descr = '';
	var name = '';
	var url = '';
	var i = 0;
	var id = 0;
	var removedItems = false;
	
	if (data.count > 0) {	
		for (i=0; i<data.count; i++) {
			if (data.ids[i] == 0) {
				removedItems = true;
			} else {
				id = data.ids[i];
				name = data.names[i];
				if (name != null && name.length > 16) {
					name = name.substring(0,13) + '...'
				}
				ihtml +=
				'<div class="left mright100" id="thumb_'+id+'_'+data.id+'"><a href="javascript:void(0)" onClick="javascript:zoomImage('+id+','+data.id+')"><img class=main src="'+data.url[i]+'" border=0><br><span class="sub">'+name+'</span></a></div>';
			}
		}		
		if (removedItems && ihtml == '') {
        	ihtml += '<img class=main src="/i/no_photo_6.gif" border=0>';
        	getElement("postimage"+data.id).innerHTML = ihtml;
        } else {	
			getElement("postimage"+data.id).innerHTML = ihtml;
			ihtml = '';

			for (i=0; i<5; i++) {
				ihtml += '<div id="big_'+i+'_'+data.id+'" style="display: none; position: relative;"></div>';
			}
			getElement("imageDiv"+data.id).innerHTML = ihtml;
			for (i=0; i<data.count; i++)
				if (data.ids[i] != 0)
					zoomImage(data.ids[i], data.id);
		}
	}
}

function getGroupImages(id,order) {
	Group.getGroupImages(id,order,showGroupImages);
}

function showGroupImages(data){
    var info = "";
    var ihtml = "";
    if( data.count >0 ){
   		for (i=0;i<data.count;i++){
			ihtml = ihtml+"<div class=\"auto10\" style=\"width:120px;\"><a href=\"/7,1,"+data.ids[i]+","+data.id+".html\"><img src=\""+data.url[i]+"\" class=\"borderBig\"></a><div class=\"txt5\">"+data.names[i]+"</div></div>";
        }
    }
	getElement("groupImages").innerHTML = ihtml;
}

function glosuj(id)
{
if (confirm('Jesteś pewien, że ten post powinien być skasowany ?')){
	getElement("kosz"+id).innerHTML = "";
	Opinion.vote(id);
}
return false;
}

function removePost(id) {
	if (confirm('Czy na pewno usunąć ten komentarz?')){
		Opinions.removeOpinion(id,afterRemovePost);
	}
}
function restorePost(id) {
	Opinions.publishOpinion(id,afterRestorePost);
}
function restoreHiddenPost(id) {
	Opinions.publishOpinion(id,afterRestoreH);
}
function showDeletedPost(id) {
    getElement('op'+id).className = getElement('op'+id).className.replace(/opRemoved/, 'opRemovedD');
	hideElement("wersjaDel"+id);
	showElement("wersjaFull"+id);
}

function afterRemovePost(data){
    if( data.loggedout ){
   	   window.location.reload();
   	   return;
    }
	if( data.removed ){
		getElement("a"+data.id).innerHTML = 'Komentarz jest usunięty: <a href="javascript:restorePost('+data.id+');" class="lnk1 lnk_restoreRemoved">Przywróć</a>';
                getElement('op'+data.id).className = getElement('op'+data.id).className.replace(/opRemovedD/, '');
                getElement('op'+data.id).className += ' opRemoved';
        if( data.owner ){
        	try{
            if( data.banned ){
        	 getElement('blockA2'+data.id).className="oaD";
   	    	 getElement('blockB2'+data.id).className="hidden";
   	    	}else{
   	    	 getElement('blockA2'+data.id).className="hidden";
        	 getElement('blockB2'+data.id).className="oaD";
			}   
			}catch(e){}	    	
        }
	}else if( data.restored ){
		getElement("a"+data.id).innerHTML = '<a href="javascript:removePost('+data.id+');" class="lnk1 lnk_remove">Usuń komentarz</a>';
                getElement('op'+data.id).className = getElement('op'+data.id).className.replace(/opRemovedD/, '');
                getElement('op'+data.id).className = getElement('op'+data.id).className.replace(/opRemoved/, '');
	}
}

function afterRestorePost(data){
    if( data.loggedout ){
   	   window.location.reload();
   	   return;
    }
	if( data.removed ){
		getElement("a"+data.id).innerHTML = 'Komentarz jest usunięty: <a href="javascript:restorePost('+data.id+');" class="lnk1 lnk_restoreRemoved">Przywróć</a>';
                getElement('op'+data.id).className = getElement('op'+data.id).className.replace(/opRemovedD/, '');
                getElement('op'+data.id).className += ' opRemoved';
	}else if( data.restored ){
		getElement("a"+data.id).innerHTML = '<a href="javascript:removePost('+data.id+');" class="lnk1 lnk_remove">Usuń komentarz</a>';
                getElement('op'+data.id).className = getElement('op'+data.id).className.replace(/opRemovedD/, '');
                getElement('op'+data.id).className = getElement('op'+data.id).className.replace(/opRemoved/, '');
	}
}

function afterRestoreH(data){
	if( data.removed ){
		getElement("aH"+data.id).innerHTML = 'Komentarz jest usunięty: <a href="javascript:restorePost('+data.id+');" class="lnk1 lnk_restoreRemoved">Przywróć</a>';
		getElement("a"+data.id).innerHTML = 'Komentarz jest usunięty: <a href="javascript:restorePost('+data.id+');" class="lnk1 lnk_restoreRemoved">Przywróć</a>';
	}else if( data.restored ){
		getElement("a"+data.id).innerHTML = '<a href="javascript:removePost('+data.id+');" class="lnk1 lnk_remove">Usuń komentarz</a>';
		hideElement("wersjaDel"+data.id);
		showElement("wersjaFull"+data.id);
                getElement('op'+data.id).className = getElement('op'+data.id).className.replace(/opRemovedD/, '');
                getElement('op'+data.id).className = getElement('op'+data.id).className.replace(/opRemoved/, '');
	}
}

function sendPost() {
	if( getElement("file0").value != null && getElement("file0").value.length >0 ||
	    getElement("file1").value != null && getElement("file1").value.length >0 ||
	    getElement("file2").value != null && getElement("file2").value.length >0 ||
	    getElement("file3").value != null && getElement("file3").value.length >0 ||
	    getElement("file4").value != null && getElement("file4").value.length >0 ){
		addPostSubmit();
	}else{
		hImages(); 
		document.opinia.submit();
	}
}

function blockUser(elemId,user){
	Opinions.addBanned(user, elemId, afterBlockUser );
}

function blockUser2(elemId,user){
	Opinions.addBanned(user, elemId, afterBlockUser2 );
}

function afterBlockUser (data){

   try{
   if( data.loggedout ){
   	   window.location.reload();
   }else if( data.added ){
   	    getElement('blockB'+data.elemId).className="hidden";
   	    getElement('blockA'+data.elemId).className="oaD";
   }
   }catch(e ){
   	  // alert('Blad='+e.lineNumber+' m='+e.message+' stack='+e.stack);
   }
}

function afterBlockUser2(data){

   if( data.loggedout ){
   	   window.location.reload();
   }else if( data.added ){
   	    getElement('blockB2'+data.elemId).className="hidden";
   	    getElement('blockA2'+data.elemId).className="oaD";
   }
}

function textCounter(field, maxlimit) {
if (field.value.length > maxlimit){
  field.value = field.value.substring(0, maxlimit);
  alert("Uwaga, maksymalna długość ("+maxlimit+" znaków) treści została przekroczona!");
}
}
