/***********************************\
*																*
*    JavaScript Document for edit textareas		*
*    Coder: Szymon Kosydor vel. BuBi 				*
*  	  szymon [_at_] kosydor [_dot_] pl				*
*																*
\***********************************/

function updatePhotoRel( class_n, selform, target ) {
	var ajax = new myAjax();
	ajax.action = 'updatePhotoRelation';
	var sel = document[ 'form_1' ][ selform ];
	for( j = 0; j < sel.length; j++ ) {
		if( sel.options[ j ].selected ) {
			selected = sel.options[ j ].value;
		}
	}
	ajax.post( 'class='+class_n+'&id='+selected, target );	

}

function insertMainPhotoPopup( target ) {
	if ( newokno ){ newokno.close(); }
	var opcje = "scrollbars=yes,width=500,height=500";	
	var newokno = window.open( '/popup_main_photo/target'+target+'/', 'Zdjecie', opcje );
}

function insertMainPhoto( target, id, file_name, type ) {
	var t 	= window.opener.document.getElementById( target );
	var s 	= window.opener.document.getElementById( 'sample' );
	var n 	= window.opener.document.getElementById( target+'_name' );
	t.value 	= id;
	n.value 	= file_name;
	s.src 		= '/img/small/'+id+'.'+type;
	window.close();
}

function deleteMainPhoto( target ) {
	var t 	= get( target );
	var s 	= get( 'sample' );
	var n 	= get( target+'_name' );
	t.value = '';
	n.value = '';
	s.src= '/graph/sample.jpg';
}

function helpEdit() {
	popup( '/popup/helpEdit.html' );
}

function editer_insertPhoto( target ) {
	var newokno;
	if (newokno){ newokno.close(); }
	var tytul = "Dostosuj";
	var opcje = "scrollbars=yes,width=500,height=500";
	newokno = window.open( '/popup_photos/target/'+target+'/', tytul, opcje );
}

function insertPhotoToForm( id, target ) {
	var text = get( 'photo_size_'+id );
	var inText = '[zdjecie id="'+id+'" rozmiar="'+text.value+'" podpis="" otaczanie="brak" wyrownanie="lewa"]';
	var tar = window.opener.document.getElementById( target );
	insertTextAtCursorPos( tar, inText, '', true );
	window.close();
}

function editer_horizontalLine( target ) {
	insertTextAtCursorPos( target, '[linia]', '' );
}

function editer_adv( target ) {
	insertTextAtCursorPos( target, '[reklama id=""]', '' );
}

function editer_newPage( target ) {
	insertTextAtCursorPos( target, '[koniec_strony]', '' );
}

function editer_subTitle( target ) {
	insertTextAtCursorPos( target, '[srodtytul]', '[/srodtytul]' );
}

function editer_table( target ) {
	insertTextAtCursorPos( target, "[tabelka naglowek=\"Tytuł\"]\n[wiersz]\n[komorka][/komorka]\n[komorka][/komorka]\n[/wiersz]\n[/tabelka]", '' );
}

function editer_iteration( target ) {
	insertTextAtCursorPos( target, "[wypunktowanie][punkt][/punkt][punkt][/punkt][/wypunktowanie]", '' );
}

function editer_numeration( target ) {
	insertTextAtCursorPos( target, "[numerowanie][punkt][/punkt][punkt][/punkt][/numerowanie]", '' );
}

function editer_href_in( target ) {
	insertTextAtCursorPos( target, "[a name=\"nazwa\"]\n[a href=\"#nazwa\"]Odwołanie[/a]", '' );
}

function editer_ramka( target ) {
	insertTextAtCursorPos( target, '[ramka wyrownanie="lewa" szerokosc="300"]', '[/ramka]' );		
}

function editer_wyrownanie( target ) {
	insertTextAtCursorPos( target, '[wyrownanie id="srodek"]', '[/wyrownanie]' );
}

function editer_enter1_5( target ) {
	insertTextAtCursorPos( target, '[enter15]' );
}

function editer_bold( target ) {
	insertTextAtCursorPos( target, '[b]', '[/b]' );
//	insertTextAtCursorPos( get( target ), '[b][/b]' );	
}

function editer_italic( target ) {
	insertTextAtCursorPos( target, '[i]', '[/i]' );	
}

function editer_underline( target ) {
	insertTextAtCursorPos( target, '[u]', '[/u]' );
}

function validateForm( form_name, names ) {
	hide( 'submiter_1' );
	hide( 'submiter_2' );
//	alert( 'validate ' + form_name );
	var sd = get( 'form_debug' );
	sd.innerHTML = '';
	
	var arr = names.split( '|' );
	var s = arr.length;
	var startText = "Proszę wypełnić pola :<br/>";
	var str = startText;
	
	for( i = 0; i < s - 1; i += 2 ) {
		var elem = get( arr[ i ] );
		if( trim( elem.value ) == '' ) {
			str += arr[ i + 1 ]+"<br/>";
		}
	}
	
	var p 	= get( 'password' );
	var p_r 	= get( 'password_repeat' );
	
	if( ( inArray( arr, 'password' ) ) && ( inArray( arr, 'password_repeat' ) ) && ( p.value !=  p_r.value ) ) {
		sd.innerHTML += 'Hasło nie zgadza się z powtórzeniem hasła<br/><br/>';
	} 
	
	if( str == startText ) {
		passed	= new Array( false, false, false );

		if( inArray( arr, 'password' ) ) {
			var ajax = new myAjax();
			ajax.action = 'validate_password';
			ajax.post( 'password='+get( 'password' ).value );
			ajax.onLoad = function() {
				if( this.response != 'ok' ) {
					show( sd );
					show( 'submiter_1' );
					show( 'submiter_2' );
					var resp = this.response.split( '|' );
					sd.innerHTML += "Hasło jest zbyt proste do odgadnięcia,<br/>użyj różnych wielkości liter, cyfr, albo dłuższego hasła<br/>Aktualna trudność hasła to ( "+resp[ 0 ]+" ) a wymagana ( "+resp[ 1 ]+" )<br/><br/>";
				} else {
					passed[ 0 ] = true;
					checkAllValidators( passed, form_name );					
				}
				delete ajax;
			}
		} else {
			passed[ 0 ] = true;
		}

		if( inArray( arr, 'email' ) ) {	
			var ajax = new myAjax();
			ajax.action = 'validate_email';
			ajax.post( 'email='+get( 'email' ).value );
			ajax.onLoad = function() {
				if( this.response != 'ok' ) {
					show( sd );
					show( 'submiter_1' );
					show( 'submiter_2' );
					sd.innerHTML += "To nie jest poprawny adres e-mail<br/><br/>";
				} else {
					passed[ 1 ] = true;
					checkAllValidators( passed, form_name );					
				}
				delete ajax;
			}
		} else {
			passed[ 1 ] = true;
		}
		
		if( ( getValue( 'action' ).substr( 0, 3 ) == 'add' ) && inArray( arr, 'nick' ) ) {
			var ajax = new myAjax();
			ajax.action = 'is_nick_in_base';
			ajax.post( 'nick='+get( 'nick' ).value );
			ajax.onLoad = function() {
				if( this.response == 'yes' ) {
					show( sd );
					show( 'submiter_1' );
					show( 'submiter_2' );
					sd.innerHTML += "Istnieje już osoba o takim nicku w bazie, wybierz inny<br/><br/>";
				} else if( this.response == 'no' ) {
					passed[ 2 ] = true;
					checkAllValidators( passed, form_name );
				}
				delete ajax;
			}
		} else {
			passed[ 2 ] = true;
		}
		
		checkAllValidators( passed, form_name );
	} else {
		show( sd );	
		show( 'submiter_1' );
		show( 'submiter_2' );
		sd.innerHTML = str;
	}
}

function checkAllValidators( globals, form_name ) {
	if( !inArray( globals, false ) ) {
		submitForm( form_name );
	} else {
		show( 'submiter' );
	}
}

function submitForm( form_name ) {
	document.forms[ form_name ].submit();
}


function insertTextAtCursorPos( tar, startTag, endTag, popup ) {
	if( endTag == undefined ) { endTag = ''; }
	if( popup == undefined ) { popup = false; }
	var doc = ( !popup ) ? document : window.opener.document;
	if( typeof( tar ) != 'object' ) {
		tar = doc.getElementById( tar );
	}
	if ( doc.selection ) {
		//IE 
		var sel 		= doc.selection.createRange();		
		if( sel.text != '' ) {
			// zaznaczone coś, do wstawienia
			var dupl 	= sel.duplicate();
			sel.text = startTag + dupl.text + endTag;
		} else {
			var pos = js_getCursorPosition( tar, popup );
			tar.value = tar.value.substr( 0, pos.start ) + startTag + endTag + tar.value.substr( pos.end, tar.value.length );
		}
	} else {
		// FF
		var st = tar.scrollTop;
		var startPos = tar.selectionStart;
		var endPos = tar.selectionEnd;
		var selT = tar.value.substr( startPos, endPos - startPos );
		tar.value = tar.value.substr( 0, startPos ) + startTag + selT + endTag + tar.value.substr( endPos, tar.value.length );
		tar.scrollTop = st;
	}
  //MOZILLA/NETSCAPE support
  /*
  else if (tar.selectionStart || tar.selectionStart == '0') {
    var startPos = tar.selectionStart;
    var endPos = tar.selectionEnd;
    tar.value = tar.value.substring(0, startPos)
                  + text
                  + tar.value.substring(endPos, tar.value.length);
  } else {
    myField.value += myValue;
  }
	*/
// calling the function
//insertAtCursor(document.formName.fieldName, ‘this value’);	
	/*
	if( popup == undefined ) {
		popup = false;
	}
	var pos = js_getCursorPosition( tar, popup );
	tar.value = tar.value.substr( 0, pos.start ) + text + tar.value.substr( pos.end, tar.value.length );
	tar.scrollTop = pos;
//	js_setCursorPosition( tar, pos );
*/
}

function countChars(text) {
    var n = 0;
    for (var i = 0; i < text.length; i++) {
		n++;
    }
    return n;
}

function js_CursorPos(start, end) {
    this.start = start;
    this.end = end;
}

function js_getCursorPosition( textArea, popup ) {
	if( popup == undefined ) {
		popup = false;
	}
    var start = 0;
    var end = 0;
    if ( document.selection ) { // IE…
        textArea.focus();
		var doc = ( !popup ) ? document : window.opener.document;
		var sel1 = doc.selection.createRange();
		var sel2 = sel1.duplicate();
		sel2.moveToElementText( textArea );
		var selText = sel1.text;
		var inT = "_010_";
        sel1.text = inT;
        var index = sel2.text.indexOf( inT );
        start = countChars( ( index == -1 ) ? sel2.text : sel2.text.substring( 0, index ) );
        end = countChars( selText ) + start;
        sel1.moveStart( 'character', - ( inT.length ) );
        sel1.text = selText;
    } else if ( textArea.selectionStart || ( textArea.selectionStart == "0" ) ) { // Mozilla/Netscape…
        start = textArea.selectionStart;
        end = textArea.selectionEnd;
    }
    return new js_CursorPos( start, end );
}

function js_setCursorPosition(textArea, cursorPos) {
    if (document.selection) { // IE…
        var sel = textArea.createTextRange();
        sel.collapse(true);
        sel.moveStart("character", cursorPos.start);
        sel.moveEnd("character", cursorPos.end - cursorPos.start);
        sel.select();
    } else if (textArea.selectionStart || (textArea.selectionStart == "0" )) { // Mozilla/Netscape…
        textArea.selectionStart = cursorPos.start;
        textArea.selectionEnd = cursorPos.end;
    }
    textArea.focus();
} 

