					var eReportType = {ImageType:1, ErrorType:2, PageType:3}; 
					
                  	function sort(type) {
				        var dir = document.getElementById('dynamicContent_dir');
				        if (dir.value == "asc")
					    dir.value = "desc";
				        else
					    dir.value = "asc";
				        var column = document.getElementById('dynamicContent_sort');
				        column.value = type;
				        acceptFilter();
                  	}
                  		
                  	function showParents(url_id, task_id) {
               			createCustomElement("dynamicContent_showParent","showParent","1");
                  		createCustomElement("dynamicContent_url","url",url_id);
                  		var tasks = getElements("website", "input");
                  		if (tasks) {
                  			for (var i = 0; i < tasks.length; i++) {
                  				if (!tasks[i].id || tasks[i].id=="") continue;
                  				document.getElementById(tasks[i].id).id = "__" + i;
                  			}
                  		}
                  		createCustomElement("dynamicContent_website","website",task_id);
                  		document.getElementById("dynamicContent_report_id").value = "1";
                  		var filterNames = getElements("filtersnames", "select");
                  		var filters = getElements("filter", "select");
                  		for (var i = 0; i < filterNames.length; i++) {
                  			filterNames[i].selectedIndex = 0;
                  			changeFilter((i+1)+"_0", false);
                  		}
                  		acceptFilter();
                  	}
                  	
                  	function getElements(elemName, tagName) {
                  	    var elements = new Array();
                  	    var tags = document.getElementsByTagName(tagName);
                  		var k = 0;
                  		for (var i = 0; i < tags.length; i++) {
                  			if (!tags[i] || !tags[i].getAttribute("name") || tags[i].getAttribute("name")!=elemName ) {
                  				continue; 
                  			}
							elements[k] = tags[i];
							k++;
						}
						return elements;
                  	}
                  	
                  	function createCustomElement(_id, _name, _value) {
                  		var elem = document.getElementById(_id);
                  		if (elem) {
                  			elem.value = _value; 
                  		} else {
                  			var pageContent = document.getElementById("page_content");                  	
                   			elem = document.createElement("input");
                  			elem.type = "hidden";
                  			elem.id = _id;
                  			elem.name = _name;  
                  			elem.value = _value;
                  			pageContent.appendChild(elem);
                  		}
                  	}
                  	
                  	function showDefaultFilter() {
                  		var filterBars = getElements("filterBar", "div");
                  		for (var i = 0; i < filterBars.length; i++) {
                  			if (filterBars[i].style.display == '') return;
                  		}
                  		var defaultFilter = document.getElementById('filter_1');
                  		defaultFilter.style.display = '';
                  		var currAddControl = getControlPanel(defaultFilter, "add");
                  		if (currAddControl && currAddControl.style.visibility=="hidden") {
                  			currAddControl.style.visibility = "visible";
                  		}
                  		setDefaultFilter(defaultFilter.getElementsByTagName("select"), 1);
                  	}
                  
                  	function appendFilter(filterBar) {
                  		if (!filterBar)
                  			return;
                  		var newFilterBar = filterBar.cloneNode(true);
                  		var addControl = getControlPanel(filterBar, "add");
                  		addControl.style.visibility = "hidden";
                  		getControlPanel(filterBar, "remove").style.display=""
                  		var _id = parseInt(filterBar.id.substring(filterBar.id.indexOf('_')+1));
                  		newFilterBar.id = "filter_" + (_id + 1);
                  		if (filterBar.className == "filter" || filterBar.className == "filter first") {
               				newFilterBar.className = "filter dark";
                  		} else {
                  			newFilterBar.className = "filter";
                  		}
                  		document.getElementById('filter_container').appendChild(newFilterBar);
                  		getControlPanel(newFilterBar, "remove").style.display="";
                  		setupFilterBehavior(filterBar, newFilterBar);
						return newFilterBar;
                  	}
                  	
                  	function removeFilter(filterBar) {
                  	    var currAddControl = getControlPanel(filterBar, "add");
                  	    filterBar.style.display='none';
                  	    var oldId = filterBar.id;
                  		var _id = parseInt(oldId.substring(oldId.indexOf('_')+1));
						var filterBars = getElements("filterBar", "div");
						manageControlPanel(filterBars, filterBar, currAddControl);
						document.getElementById('filter_container').removeChild(filterBar);
						var filters = getElements("filterBar", "div");
						if (filters && filters.length == 1) {
							getControlPanel(filters[0], "remove").style.display = "none";
						}
						acceptFilter();
                  	}
                  	
                  	function getIntId(origId) {
                  		return parseInt(origId.substring(origId.indexOf("_")+1));
                  	}
                  	
                  	function manageControlPanel(filterBars, filterBar, currAddControl) {
                  	    var filterNumber = filterBars.length - 1;
                  		var filterArray = new Array(filterNumber);
                  		var k = 0;
                  		for (var i = 0; i < filterBars.length; i++) {
                  			if (filterBars[i].id == filterBar.id) continue;
                  			filterArray[k] = parseInt(filterBars[i].id.substring(filterBars[i].id.indexOf("_")+1));
                  			k++;
                  		}
                  		filterArray.sort(function(a,b) {return a-b;});
                  		if (currAddControl.style.visibility == "visible" || currAddControl.style.visibility == "") {
                  			var prevAddControl = getControlPanel(document.getElementById("filter_"+filterArray[filterNumber-1]), "add");
                  			prevAddControl.style.visibility = "visible";
                  		}
                  	}
                  	
                  	function changeFilter (id, _accFilter) {
                  		var unvisibleFilter = document.getElementById('unvisFilter_' + id);
                  		if (!unvisibleFilter)
					return;
                  		var filter_id = id.substring(0,id.indexOf('_'));
                  		var visFilter = document.getElementById("filter_" + filter_id);

                  		if (!visFilter) return;

                  		var visFilterSelects = visFilter.getElementsByTagName("select");
                  		for (var i = 0; i < visFilterSelects.length; i++) {
                  			if (visFilterSelects[i].name == "filter" && visFilterSelects[i].style.display=='') {
                  				visFilterSelects[i].style.display = 'none';
                  				break;
                  			}
                  		}
                  		unvisibleFilter.style.display='';
                  		if (filter_id == 1)
                  			unvisibleFilter.selectedIndex = 0;
	 
				var defRepId = document.getElementById('dynamicContent_report_id').value;
				var defFilterCond = document.getElementById('dynamicContent_condition').value;

				for (var i = 0; i < unvisibleFilter.options.length; i++) {
					if (defRepId == unvisibleFilter.options[i].getAttribute("filter_report_id")){
					  if (defFilterCond == unvisibleFilter.options[i].getAttribute("filter_condition")){
						unvisibleFilter.selectedIndex = i;
						break;
						}
				    	}			
				}
				if (_accFilter)	
					acceptFilter();
				return unvisibleFilter;
                  	}
                  	
                  	function getControlPanel(filterBar, _className) {
                  	    for (var i=0; i < filterBar.childNodes.length; i++) {
 							if (filterBar.childNodes[i].nodeType == 1 && filterBar.childNodes[i].className=="controls") {
 								var control = filterBar.childNodes[i];	
 								for (var j=0; j < control.childNodes.length; j++) {
 									if (control.childNodes[j].nodeType == 1 && control.childNodes[j].className==_className) {
 										return control.childNodes[j];
									}
								}
								break;
 							} 
						}
                  	}
                  	
                  	function setupFilterBehavior(filterBar, newFilterBar) {
                  		var selects = newFilterBar.getElementsByTagName("select");
                  		var parentFilterSelects = filterBar.getElementsByTagName("select");
                  		var inputs = newFilterBar.getElementsByTagName("input");
                  		if (!selects || !inputs)
                  			return;
                  		for (var i = 0; i < inputs.length; i++) {
                  			if (inputs[i].name == "filter_report_id" || inputs[i].name == "filter_condition" 
                  				|| inputs[i].name == 'filter_report_type') {
                  				var id = inputs[i].id;
                  				inputs[i].id = id.substring(0,id.lastIndexOf('_')+1) + (parseInt(id.substring(id.lastIndexOf('_')+1)) + 1);
                  			}
                  		}
                  		var k = 0;
                  		var visFilterId;
						var newId;
						for (var i = 0; i < selects.length; i++) {
							if (selects[i].getAttribute("name") == "filter") {
						 		newId = parseInt(selects[i].id.substring(selects[i].id.indexOf('_')+1)) + 1;
						 		break;
						 	}
						}                  		
                  		for (var i = 0; i < selects.length; i++) {
                  			if (selects[i].name == "filtersnames") {
                  				var filterNameItem = selects[i];
                  				for (var c = 0; c < filterNameItem.options.length; c++) {
                  					var itemvalue = filterNameItem.options[c].value;
                  					filterNameItem.options[c].value = newId  + itemvalue.substring(itemvalue.indexOf('_'));
                  				}
                  			}
                  			if (!selects[i].id)
                  				continue;
               				if (startsWith(selects[i].id, "unvisFilter_")) {
               					selects[i].id = "unvisFilter_" + newId + "_" + k;
           						k++;
               				}
                  		}
                  		setDefaultFilter(selects);
                  	}
                  	
                  	function setDefaultFilter(selects) {
                  		for (var i = 0; i < selects.length; i++) {
                  			if (selects[i].name == "filtersnames") {
                  				changeFilter(selects[i].options[selects[i].selectedIndex].value, true);
                  				return;
                  			}
                  		}
                  	}

					function prefillStandardReportFilters() {
						var report_id = document.getElementById("dynamicContent_report_id");
						if (!report_id) return;
						if (document.getElementById("dynamicContent_condition").value != null){
							var filterName = document.getElementById("rootFilterNames");
							if (!filterName) return;
							for (var i=0; i < filterName.options.length; i++) {
							if (report_id.value == filterName.options[i].getAttribute("filter_report_type")) {
								filterName.selectedIndex = i;
								changeFilter(filterName.options[i].value, false);
								break;
							}			
						        }		
							return;
						}

						if (report_id.value == "-4" || report_id.value == "3") {
							if (report_id.value == "3")
								selectActualFilter(eReportType.ImageType, eReportType.PageType);
							else
								selectActualFilter(eReportType.ImageType);
						} else if (report_id.value == "2") {
							selectActualFilter(eReportType.ErrorType);
						}
					}
					
					function selectActualFilter(index, reportType) {
						var filterName = document.getElementById("rootFilterNames");
						if (!filterName) return;
						for (var i=0; i < filterName.options.length; i++) {
							if (index == filterName.options[i].getAttribute("filter_report_type")) {
								filterName.selectedIndex = i;
								break;
							}			
						}
						var filters = getElements("filter", "select");
						if (!filters) return;
						var k = 1;
						var actualFilter = changeFilter(k+"_"+index, false);
						var needAddFilter = false;
						if (index == eReportType.ImageType) {
							if (reportType == eReportType.PageType) {
								handleFiltersFromDashboard(actualFilter);
								var filter_count = actualFilter.options.length;
								var addedFilter = document.getElementById("filter_1");
								for (var i=0; i < filter_count; i++) {
									var selectedFilter = actualFilter.options[i];
									var page_type = selectedFilter.getAttribute('filter_condition');
									if (!startsWith(page_type, "image") && page_type != "") {
										if (needAddFilter) {
											addedFilter = appendFilter(addedFilter);
											var selects = addedFilter.getElementsByTagName("select");
											for (var j=0; j < selects.length; j++)
												if (selects[j].getAttribute("name") == "filtersnames") {
													selects[j].selectedIndex = index;
													break;
												}
											k++;										
										}
										changeFilter(k+"_"+index, false).selectedIndex = i;
										needAddFilter = true;
									}
								}
							} else {
								for (var i = 0; i < filters.length; i++)
									if (filters[i].style.display != 'none') {
										filters[i].selectedIndex = 1;
										break;
									}
								acceptFilter(); // "File type - Images" filter already selected, don't need to changeFilter(), just accept it 
								
							}			
						} else if (index == eReportType.ErrorType) {
							if (handleFiltersFromDashboard(actualFilter)) {
								return;
							}
							var codes_count = actualFilter.options.length;
							var addedFilter = document.getElementById("filter_1");
							for (var i=0; i < codes_count; i++) {
								var selectedFilter = actualFilter.options[i];
								var error_code = 0;
								try {
									error_code = parseInt(selectedFilter.getAttribute('filter_condition'));
								} catch(e) {
								}
								if (error_code > 0) {
									if (needAddFilter) {
										addedFilter = appendFilter(addedFilter);
										var selects = addedFilter.getElementsByTagName("select");
										for (var j=0; j < selects.length; j++)
											if (selects[j].getAttribute("name") == "filtersnames") {
												for (var c=0; c < selects[j].options.length; c++) {
													if (index == selects[j].options[c].getAttribute("filter_report_type")) {
														selects[j].selectedIndex = c;
														break;
													}			
												}
												break;
											}
										k++;										
									}
									changeFilter(k+"_"+index, false).selectedIndex = i;		
									needAddFilter = true;							
								}
							}
						} 
					}
					
					function handleFiltersFromDashboard(actualFilter) {
						var root_report_condition = document.getElementById("dynamicContent_condition").value;
						if (root_report_condition != "") {
							for (var i=0; i < actualFilter.options.length; i++) 
								if (actualFilter.options[i].value == root_report_condition || 
								(actualFilter.options[i].value == "Connection error" && root_report_condition == "1")) {
									actualFilter.selectedIndex = i;
									return root_report_condition != "fail";
								}
						}
						return false;
					}
								
