	var notFilledClassName = 'toFill';
	var notNumberClassName = 'notNumber';
	var showAlertWD = false;   


	function setValue(elementId, value){
		var element = document.getElementById(elementId);
		element.value = value;
	}

	function submitFormAndSetHidden(formId, hiddenId){
		var form = document.getElementById(formId);
		var hiddenElem = document.getElementById(hiddenId);
		hiddenElem.value = false;
		form.submit();
	}
	
	function submitForm(formId){
		var form = document.getElementById(formId);
		form.submit();
	}
	
	function setModeValue(value){
		var mode = document.getElementById('atrMode');
		mode.value = value;	
	}
	
	function trimToLength(ln, input){
		if(input.value.length > ln - 1)
			input.value = input.value.substr(0,ln);	
	}

	function hasFileSchemaExtension(inputId)
	{
		if(hasFileExtension(inputId, '.xsl') || hasFileExtension(inputId, '.xslt'))
		{
			return true;
		}
		else
		{
			alert('Wybrany plik nie ma rozszerzenia xsl lub xslt');

			return false;
		}
	}

	function hasFileExtension(inputId, extension, showAlert){
		var input = document.getElementById(inputId);
		var inputLength = input.value.length;
		
		if(inputLength <= extension.length){
			alert('Nie wczytano pliku !');
			return false;
		}
		if(input.value.lastIndexOf(extension) == inputLength - extension.length){
			return true;
		}
		if(showAlert)
		{
			alert('Wczytany plik nie ma rozszerzenia ' + extension);
		}
		return false;
	}
	
	function isInputFilled(inputId){
		if(inputId != null){
			var element = document.getElementById(inputId);
			if(element.value == ''){
				element.className = element.className + ' ' + notFilledClassName;
				alert('Nie wypenilono wymagany pol');
				return false;
			}else if (element.className.indexOf(notFilledClassName) != -1){
				element.className = element.className.replace(notFilledClassName, '');
			}
		}
		return true;
	}

	function validateFields(parentFormId, fieldPrefix){
		var form = document.getElementById(parentFormId);
		var formElems = form.elements;
		var toFillCount = 0;		
		
		for(var i=0; i<formElems.length; i++){
			var item = formElems.item(i);
			if(item.nodeName == 'INPUT'){
				if(item.id.indexOf(fieldPrefix) == 0 && item.value == ''){
					item.className = item.className + ' ' + notFilledClassName;
					toFillCount ++;
				}
				else if (item.className.indexOf(notFilledClassName) != -1){
					item.className = item.className.replace(notFilledClassName, '');
				}
			}
		}
		if(toFillCount > 0){
			alert('Nie wypelniono wymaganych pol');
			return false;
		}
		return true;
	}
	
	
	
	function isNumericField(inputId){
		
		var input = document.getElementById(inputId);
		var sText = input.value;
 		
 		if(!isNumber(sText)) {
	 		input.className = input.className + ' ' + notNumberClassName;
	       	return false;
 		}
		
	    if (input.className.indexOf(notNumberClassName) != -1){
			input.className = input.className.replace(notNumberClassName, '');
		}
		return true;
	}
	
	function fillErrorFields(formName, errorFieldIds){
		var forma = document.getElementById(formName);
		var fields = forma.elements;
		for(var i=0; i<fields.length; i++){
			var item = fields.item(i);
			if(item.id != '' && errorFieldIds.indexOf(item.id) != -1){
				item.className = item.className + ' ' + notFilledClassName;
			}
			else if (item.className.indexOf(notFilledClassName) != -1){
				item.className = item.className.replace(notFilledClassName, '');			
			}
		}
	}
	
	
	function addLoadEvent(func) {
    	var oldonload = window.onload;
	    if (typeof window.onload != 'function') {
    	    window.onload = func;
	    } else {
    	    window.onload = function() {
            	if (oldonload) {
                	oldonload();
	            }
    	        func();
        	}
	    }
	}
	
	
	function unescapeChars(DOMelem){
		
		var elems = document.getElementsByTagName(DOMelem);
			for(var i=0; i<elems.length; i++){
				var elem = elems.item(i);
				elem.value = elem.value.replace("&amp;", "&" );
				elem.value = elem.value.replace("&lt;", "<" );
				elem.value = elem.value.replace("&gt;", ">" );					
	 		}
	}
	
	
	/*function isDate(dateStr) {
		
		var datePat = /^(\d{4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
		
		if (matchArray == null) {
			alert(dateStr + " nie jest zgodny z wzorcem RRRR/MM/DD");
			return false;
		}
		month = matchArray[3]; // p@rse date into variables
		day = matchArray[5];
		year = matchArray[1];
		
		if (month < 1 || month > 12) { // check month range
			alert("Warto liczbowa miesica musi by pomidzy 1 a 12");
			return false;
		}
		
		if (day < 1 || day > 31) {
			alert("Liczba dni musi by pomidzy 1 a 31");
			return false;
		}
		
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			alert("Miesic "+month+" nie ma 31 dni!")
			return false;
		}
		
		if (month == 2) { // check for february 29th
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day > 29 || (day==29 && !isleap)) {
				alert("Luty " + year + " nie ma " + day + " dni!");
				return false;
			}
		}
		return true; // date is valid
	}*/
	
	function isNumber(value){
		var validChars = '0123456789';
		var char;
		for (i = 0; i < value.length; i++) { 
	    	char = value.charAt(i); 
		    if (validChars.indexOf(char) == -1) 
	        {
				alert('Wartosc ' + value + ' nie jest liczba');
	        	return false;	        
	        }
	    }
	    return true;
	}
	
	
	function divVisibilitySet(id, mode) {
		if (document.getElementById) { // DOM3 = IE5, NS6
			document.getElementById(id).style.display = mode;
		}
		else {
			if (document.layers) { // Netscape 4
				document.id.display = mode;
			}
			else { // IE 4
				document.all.id.style.display = mode;
			}
		}
	}
	
	
	/*function checkLinkDoWzoru(link){
		var prefix = "http://";
		var validLink = true;
				
		if(link.indexOf(prefix) != 0){
			alert("Link do wzoru musi sie zaczyna od '"+ prefix +"'");
			return false;
		}
		if(link.length > prefix.length + 6){
			var curIndex = prefix.length;
		
			var year = link.substring(curIndex, curIndex + 4); 
			if(!isNumber(year)){
				return false;
			}
			curIndex += 5;
			
			var month = link.substring(curIndex, curIndex + 2);
			if(!isNumber(month)){
				return false;
			}
			curIndex += 3;
			
			var day = link.substring(curIndex , curIndex + 2);
			if(!isNumber(day)){
				return false;
			}
			curIndex += 3;
			
			if(!isDate(year+'/'+month+'/'+day))
				return false;
				
			var number = link.substring(curIndex, curIndex + 6);
			if(!isNumber(number))
				return false;
				
			if(link.lastIndexOf('/') != curIndex + 6){
				showAlertWD = true;
				return false;
			}
				
		}
		else{
			showAlertWD = true;
			return false;
		}
		showAlertWD = true;
		return true;
	}
	
	function isValidLink(link){
		if(link.indexOf("www.") != 0 && link.indexOf("http://") != 0){
			alert("Niewaciwy format odnonika. Poprawny format to [www|http://adres]");
			return false;
		}
		return true;
	}
	
	
	function isValidLinkDoWzoru(link){
		if(checkLinkDoWzoru(link))
			return true;
		else{
			if(showAlertWD)
				alert("Niepoprawna posta link do wzoru do formularza.\nLink powinien mie nastpujc budow [http://crd.gov.pl/wzor/RRRR/MM/DD/NNNNNN/nazwa_pliku.xsd],"+
					"\ngdzie RRRR - rok (4 cyfry), MM - miesiac (2 cyfry), DD - dzie (2 cyfry), NNNNNN - 6cio cyfrowy unikalny numer.");
			return false;
		}
	}
	
	
	function isValidAdresSkrytki(link){
		if(link.length > 11 && link.indexOf('/') == 0 && isValidFormularzLink(link.substring(1), false))
			return true;
		else {
			alert("Niepoprawna posta adresu skrytki.\nAdres powinien mie nastpujc budow [/id_podmiotu(10 znakw)/nazwa_skrytki]");
			return false;
		}
	}
	
	function isValidFormularzLink(link, showAlert){
		if(link.indexOf('http://') == 0)
			return true;		
		if (link.length > 10 && link.indexOf('/') == link.lastIndexOf('/') && link.indexOf('/') == 10)
			return true;
		else {
			if (showAlert)
				alert("Niepoprawna posta linku do formularza.\nLink powinien mie nastpujc budow [id_podmiotu(10 znakw)/nazwa_formularza]");
			return false;
		}
	}*/
