/*
NQcontent NQView Javascript
Copyright © 2004 NetQuest
Author: Alexis Piperides
*/


// Browser check scripts and functions for hide/show div
var ns4 = (document.layers);
var ie4 = (document.all && !document.getElementById);
var ie5 = (document.all && document.getElementById);
var ns6 = (!document.all && document.getElementById);

function show(id){
	// Netscape 4
	if(ns4){
		document.layers[id].visibility = "show";
	}
	// Explorer 4
	else if(ie4){
		document.all[id].style.visibility = "visible";
	}
	// W3C - Explorer 5+ and Netscape 6+
	else if(ie5 || ns6){
		document.getElementById(id).style.visibility = "visible";
	}
}

function hide(id){
	// Netscape 4
	if(ns4){
		document.layers[id].visibility = "hide";
	}
	// Explorer 4
	else if(ie4){
		document.all[id].style.visibility = "hidden";
	}
	// W3C - Explorer 5+ and Netscape 6+
	else if(ie5 || ns6){
		document.getElementById(id).style.visibility = "hidden";
	}
}

function showDiv(id) {
	document.getElementById(id).style.display="block";
}

function hideDiv(id) {
	document.getElementById(id).style.display="none";
}

// WDDX SCRIPT
function serializeData(viewid, data, formField)
{  
  wddxSerializer = new WddxSerializer();
  wddxPacket = wddxSerializer.serialize(data);
  if (wddxPacket != null)
  {
    //formField.value = wddxPacket;
	window.document['frmNQView'+viewid][formField].value=wddxPacket;
	//alert(wddxPacket);
  }
  else
  {
    alert("Couldn't serialize data");
  }
}


// Open Filter Window Function
function OpenFilter() {
	wn=window.open('','filters','scrollbars,width=700,height=420');
	window.document.frmfilter.target="filters";
	
	//frmfilter.target="_blank";
	window.document.frmfilter.submit();
	//wn.focus();
}


// Submit A Form with defined actions
function FBS(viewid,action,method,target) {
	window.document.frmGo.action=action;
	window.document.frmGo.method=method;
	window.document.frmGo.target=target;
	window.document.frmGo.submit();
}

// Submit A Form with defined actions (specific for a view form)
function FBSView(viewid,action,method,target) {
	window.document['frmNQView'+viewid].action=action;
	window.document['frmNQView'+viewid].method=method;
	window.document['frmNQView'+viewid].target=target;
	window.document['frmNQView'+viewid].submit();
}	


// Add Firn Field Script (Adds dynamic form fields to a form)
function AFF (form, fieldType, fieldName, fieldValue) {
  // add custom form field
  if (document.getElementById) {
    var input = document.createElement('INPUT');
      if (document.all) { // what follows should work 
                          // with NN6 but doesn't in M14
        input.type = fieldType;
        input.name = fieldName;
        input.value = fieldValue;
      }
      else if (document.getElementById) { // so here is the
                                          // NN6 workaround
        input.setAttribute('type', fieldType);
        input.setAttribute('name', fieldName);
        input.setAttribute('value', fieldValue);
      }
    form.appendChild(input);
  }
}

// Checked Elements script
function getChecked(viewid) {
	rstring=new Array();
	
	if (window.document['frmNQView'+viewid].nqViewSelectedIds.length == undefined) {
		fto=0;
		rstring.push(window.document['frmNQView'+viewid].nqViewSelectedIds.value);
		}
	else {
		fto=window.document['frmNQView'+viewid].nqViewSelectedIds.length;
	}
	
	for (var i = 0; i < fto; i++) {
		if (window.document['frmNQView'+viewid].nqViewSelectedIds[i].checked) {
			rstring.push(window.document['frmNQView'+viewid].nqViewSelectedIds[i].value);
		}
	}
	
	if (rstring=="") {
		return false;
		}
	else {
		return rstring;
	}

}					


// Paging and Sorting functions
// Jump To Page
function gotoPage(viewid,spage) {
	window.document['frmNQView'+viewid]['nqviewspage'+viewid].value=spage;
	applyFiltersToForm(viewid);
	window.document['frmNQView'+viewid].submit();
}		

// Sort by
function sort(viewid,key){
	window.document['frmNQView'+viewid]['nqviewsort'+viewid].value=key;
	window.document['frmNQView'+viewid]['nqviewspage'+viewid].value=1;
	applyFiltersToForm(viewid);	
	window.document['frmNQView'+viewid].submit();
}

// Show / Hide Columns functions
/*
function hideColumn(field) {
	document.getElementById(field).className="headinghide";
	for (i=#this.sView.iStartRow#; i<=#this.sView.iEndRow#; i++) {
		document.getElementById(field+i).className="cellhide";
	}
}

function hideDummy(field) {
	document.getElementById(field).className="dummyhide";
	for (i=#this.sView.iStartRow#; i<=#this.sView.iEndRow#; i++) {
		document.getElementById(field+i).className="dummyhide";
	}
}

function showColumn(field) {
	document.getElementById(field).className="heading";
	for (i	=#this.sView.iStartRow#; i<=#this.sView.iEndRow#; i++) {
		document.getElementById(field+i).className="cell";
	}
}						

function showDummy(field) {
	document.getElementById(field).className="dummy";
	for (i=#this.sView.iStartRow#; i<=#this.sView.iEndRow#; i++) {
		document.getElementById(field+i).className="dummy";
	}
}		

*/

/************************* FILTERS *****************************/

var bOpen=0;

//Add field to array
function applyFiltersToForm(viewid) {
	for (var i=1; i<=numOfFilters; i++) {
		filterSetValuesFromForm(i);
	}
	//alert(a[1]["value"]);
	sObject=new Object();
	sObject['a']=a;
	sObject['d']=d;	
	sObject['cl']=cl;		
	//sObject['d']=d;

	//alert(window.document['frmNQView'+viewid]['nqviewsort'+viewid].value);
	//alert(window.document['frmNQView'+viewid]['nqviewspage'+viewid].value);
	//alert(window.document['frmNQView'+viewid].nqViewRpp.value);
	
	serializeData(viewid,sObject,'NQVIEWFILTER');
	//serializeData(viewid,f,'NQVIEWFILTERFILTERS');	
	//window.document['frmNQView'+viewid].NQVIEWFILTERNUMOFFILTERS.value=numOfFilters;
	/*
	*/

}


// Add new filter (from CF)
function filterAdd(union,name,po,filter,filterselected,filtertype,filterformat,not,pc,value,value2on,value2,caption,fieldtype,valuelist,displayvaluelist,donotuseasfilter) {
	// increase filter coutner
	numOfFilters++;	
	
	// create structure with new filter row
	a[numOfFilters] = new Object(); 
	a[numOfFilters]["union"] = union; 	
	a[numOfFilters]["name"] = name; 	
	a[numOfFilters]["po"] = po; 	
	a[numOfFilters]["filter"] = filter; 	
	a[numOfFilters]["filterselected"] = filterselected; // holds the selected value of the filter select box
	a[numOfFilters]["filtertype"] = filtertype;
	a[numOfFilters]["filterformat"] = filterformat;
	a[numOfFilters]["not"] = not; 	
	a[numOfFilters]["pc"] = pc; 	
	a[numOfFilters]["value"] = value; 	
	a[numOfFilters]["value2on"] = value2on;	
	a[numOfFilters]["value2"] = value2;	
	a[numOfFilters]["caption"] = caption; 
	a[numOfFilters]["fieldtype"] = fieldtype; 
	a[numOfFilters]["valuelist"] = valuelist; 
	a[numOfFilters]["displayvaluelist"] = displayvaluelist; 	
	a[numOfFilters]["donotuseasfilter"] = 	donotuseasfilter
}

// Add new dynamic filter (from CF)
function filterAddDynamic(union,name,po,filter,filterselected,filtertype,filterformat,not,pc,value,value2on,value2,caption,fieldtype,valuelist,displayvaluelist,donotuseasfilter) {
	// increase filter coutner
	dnumOfFilters++;	
	
	// create structure with new filter row
	d[dnumOfFilters] = new Object(); 
	d[dnumOfFilters]["union"] = union; 	
	d[dnumOfFilters]["name"] = name; 	
	d[dnumOfFilters]["po"] = po; 	
	d[dnumOfFilters]["filter"] = filter; 	
	d[dnumOfFilters]["filterselected"] = filterselected; // holds the selected value of the filter select box
	d[dnumOfFilters]["filtertype"] = filtertype;
	d[dnumOfFilters]["filterformat"] = filterformat;
	d[dnumOfFilters]["not"] = not; 	
	d[dnumOfFilters]["pc"] = pc; 	
	d[dnumOfFilters]["value"] = value; 	
	d[dnumOfFilters]["value2on"] = value2on;	
	d[dnumOfFilters]["value2"] = value2;	
	d[dnumOfFilters]["caption"] = caption; 
	d[dnumOfFilters]["fieldtype"] = fieldtype; 
	d[dnumOfFilters]["valuelist"] = valuelist; 
	d[dnumOfFilters]["displayvaluelist"] = displayvaluelist; 	
	d[dnumOfFilters]["donotuseasfilter"] = donotuseasfilter; 		
	
}

// Add new filter dynamically
function filterAddNew(viewid,i,j) {
	document.getElementById('divDyn'+j).style.display="none";
	
	for (var jj=1; jj<=numOfFilters; jj++) {
		filterSetValuesFromForm(jj);
	}
	
	filterAdd(d[i]["union"],d[i]["name"],d[i]["po"],d[i]["filter"],d[i]["filterselected"],d[i]["filtertype"],d[i]["filterformat"],d[i]["not"],d[i]["pc"],d[i]["value"],d[i]["value2on"],d[i]["value2"],d[i]["caption"],d[i]["fieldtype"],d[i]["valuelist"],d[i]["displayvaluelist"]);

	filterDisplayAll(viewid);		
	
	for (var jj=numOfFilters-1; jj>j; jj--) {
		filterSwitch(viewid,eval(jj+1),jj);		
	}
	
	bOpen=0;
}

function filterDisplayDynamic(viewid,i) {
	
	bOpen++;

	if (document.getElementById('divDyn'+i).style.display=="block"){
		bstatus=1;
	} else {
		bstatus=0;
	}
	
	
	for (var j=1; j<=numOfFilters; j++) {
		document.getElementById('divDyn'+j).style.display="none";
	}	
	
	sDynOut="";


	for (var j=1; j<=dnumOfFilters; j++) {
		sDynOut=sDynOut+"<a href=\"Javascript: filterAddNew("+viewid+","+j+","+i+");\">"+d[j]['caption']+"</a><br/>";
	}	
	
	if (bstatus){
		document.getElementById('divDyn'+i).style.display="none";
	} else {
		document.getElementById('divDyn'+i).style.display="block";
	}	
	
	document.getElementById('divDyn'+i).innerHTML=sDynOut;
	


}

// Switch two fitler rows
function filterSwitch(viewid,from,to) {
	
	// Set form field values to structure
	for (var i=1; i<=numOfFilters; i++) {
		filterSetValuesFromForm(i);
	}
	
	// Save current value to temp before switch (because unions don't change)
	temp=a[from];
	tempFromUnion=a[from]['union'];
	tempToUnion=a[to]['union'];
	
	// Make the switch
	a[from]=a[to];
	a[to]=temp;
	
	// Replace values that shouldn't be switched
	a[from]['union']=tempFromUnion;
	a[to]['union']=tempToUnion;
	
	// Display all again (reset div)
	filterDisplayAll(viewid);
}

// Switch two fitler rows
function filterOnFilterChange(viewid,i) {

	// Set form field values to structure
	for (var k=1; k<=numOfFilters; k++) {
		filterSetValuesFromForm(k);
	}

	//alert(a[i]["filterselected"]);
	if (a[i]["filterselected"]=="isbetween") {
		a[i]["value2on"]=1;
	} else {
		a[i]["value2on"]=0;
	}

	
	// Display all again (reset div)
	filterDisplayAll(viewid);


}


// Set values to stuctures from from values
function filterSetValuesFromForm(i) {

	// And/Or
	if (i != 1) {
		a[i]["union"]=document.getElementById('NQFILTERunion'+i).options[document.getElementById('NQFILTERunion'+i).selectedIndex].value;
	}

	// (
	a[i]["po"]=document.getElementById('NQFILTERpo'+i).checked?1:0;
	
	// Not
	a[i]["not"]=document.getElementById('NQFILTERnot'+i).checked?1:0;
	
	// Filter
	a[i]["filterselected"]=document.getElementById('NQFILTERfilter'+i).options[document.getElementById('NQFILTERfilter'+i).selectedIndex].value;	
	
	// Value
	switch (a[i]["filtertype"]){
		case "text":
				a[i]["value"]=document.getElementById('NQFILTERvalue'+i).value;
				if (document.getElementById('NQFILTERvalue2'+i)) {
					a[i]["value2"]=document.getElementById('NQFILTERvalue2'+i).value;
				}
		break;	
		case "date":
				a[i]["value"]=document.getElementById('NQFILTERvalue'+i).value;
				if (document.getElementById('NQFILTERvalue2'+i)) {
					a[i]["value2"]=document.getElementById('NQFILTERvalue2'+i).value;
				}
		break;
		case "datetime":
				a[i]["value"]=document.getElementById('NQFILTERvalue'+i).value;
				if (document.getElementById('NQFILTERvalue2'+i)) {
					a[i]["value2"]=document.getElementById('NQFILTERvalue2'+i).value;
				}
		break;		
		case "dropdownlist":
				a[i]["value"]=document.getElementById('NQFILTERvalue'+i).options[document.getElementById('NQFILTERvalue'+i).selectedIndex].value;	
		break;
		case "multiselectlist":
				tempsel=document.getElementById('NQFILTERvalue'+i).options;
				a[i]["value"]= new Array();
				for (var cc=0; cc<tempsel.length; cc++) {
					if (tempsel[cc].selected) {
						a[i]["value"].push(tempsel[cc].value);
					}
				}
		break;		
		case "radio":
				// Done on the onclick event of radio box
		break;	
		case "checkbox":
				// Done on the onclick event of radio box
		break;				

	}		
	
	// )
	a[i]["pc"]=document.getElementById('NQFILTERpc'+i).checked?1:0;
	

}


// Delete Filter
function filterDelete(viewid,i) {
	if (i!=numOfFilters) {
		outerloop:
		for (var j=i; j<=numOfFilters; j++) {
			filterSwitch(viewid,eval(j+1),j);
			//alert(eval(j+1));alert(j);
			if (eval(j+1)==numOfFilters) {
				//filterSwitch(eval(j+1),j);
				break outerloop;
			}
		}
	}
	
	applyFiltersToForm(viewid);
	
	// Destroy last object
	delete a[numOfFilters];
	
	// Delete Last Structure Item
	numOfFilters=numOfFilters-1;
	
	// Display all again (reset div)
	filterDisplayAll(viewid);	
}


// Filter SelectBox Generator
function filterFilterSelect(viewid,i) {
	//return a[i]["filter"];
	sTemp="";
	sTemp=sTemp+"<select name=\"NQFILTERfilter"+i+"\" id=\"NQFILTERfilter"+i+"\" onChange=\"filterOnFilterChange("+viewid+","+i+");\">";
	sTemp=sTemp+"<option value=\"\">"+f['noneselected']+"</option>";	
	for (var cc=0; cc<a[i]["filter"].length; cc++) {
		sTemp=sTemp+"<option value=\""+a[i]["filter"][cc]+"\""+filterCheckFilter(i,a[i]["filter"][cc])+">"+f[a[i]["filter"][cc]]+"</option>";	
	}
	sTemp=sTemp+"</select>";	
	
	// onLoad
	if (a[i]["filterselected"]=="isbetween") {
		a[i]["value2on"]=1;
	} else {
		a[i]["value2on"]=0;
	}
	
	return sTemp;
}


function filterFilterFormat(i) {

	switch (a[i]["filtertype"]){
		case "date":
			if(a[i]["filterformat"].length) {
				return a[i]["filterformat"];
			} else {
				return "yyyy-MM-DD";
			}
		break;
		case "datetime":
			if(a[i]["filterformat"].length) {
				return a[i]["filterformat"];
			} else {
				return "yyyy-MM-DD";
			}
		break;		
	}

}


// Display Filter Value Form Fields
function filterDisplayFilter(i) {
	//a[i]["filtertype"]

	sTemp="";
	switch (a[i]["filtertype"]){
		case "text":
				if (!a[i]["value2on"]) {
					sTemp=sTemp+"<input type=\"text\" size=\"33\" name=\"NQFILTERvalue"+i+"\" id=\"NQFILTERvalue"+i+"\" value=\""+a[i]["value"]+"\">";
				} else {
					sTemp=sTemp+"<input type=\"text\" size=\"12\" name=\"NQFILTERvalue"+i+"\" id=\"NQFILTERvalue"+i+"\" value=\""+a[i]["value"]+"\"> ";				
					sTemp=sTemp+" - ";					
					sTemp=sTemp+"<input type=\"text\" size=\"12\" name=\"NQFILTERvalue2"+i+"\" id=\"NQFILTERvalue2"+i+"\" value=\""+a[i]["value2"]+"\">";
				}	
				break;
		case "date":
				if (!a[i]["value2on"]) {
					sTemp=sTemp+"<input size=\"10\" type=\"text\" name=\"NQFILTERvalue"+i+"\" id=\"NQFILTERvalue"+i+"\" value=\""+a[i]["value"]+"\" readonly>";
					sTemp=sTemp+"<A HREF=\"javascript: void(0);\" onClick=\"showCalendar('NQFILTERvalue"+i+"','"+filterFilterFormat(i)+"');\"><IMG SRC=\""+nqViewFolder+"/images/calendar.gif\" BORDER=\"0\" align=\"middle\"></a>";
					sTemp=sTemp+"<A HREF=\"javascript:void(0);\" onClick=\"document.getElementById('NQFILTERvalue"+i+"').value='';\"><IMG SRC=\""+nqViewFolder+"/images/clearvalue.gif\" BORDER=\"0\" align=\"middle\"></A>";
				} else {
					sTemp=sTemp+"<input size=\"10\" type=\"text\" name=\"NQFILTERvalue"+i+"\" id=\"NQFILTERvalue"+i+"\" value=\""+a[i]["value"]+"\" readonly>";
					sTemp=sTemp+"<A HREF=\"javascript:void(0);\" onClick=\"showCalendar('NQFILTERvalue"+i+"','"+filterFilterFormat(i)+"');\"><IMG SRC=\""+nqViewFolder+"/images/calendar.gif\" BORDER=\"0\" align=\"middle\"></a>";
					sTemp=sTemp+"<A HREF=\"javascript:void(0);\" onClick=\"document.getElementById('NQFILTERvalue"+i+"').value='';\"><IMG SRC=\""+nqViewFolder+"/images/clearvalue.gif\" BORDER=\"0\" align=\"middle\"></A>";
					sTemp=sTemp+" - ";
					sTemp=sTemp+"<input size=\"10\" type=\"text\" name=\"NQFILTERvalue2"+i+"\" id=\"NQFILTERvalue2"+i+"\" value=\""+a[i]["value2"]+"\" readonly>";
					sTemp=sTemp+"<A HREF=\"javascript:void(0);\" onClick=\"showCalendar('NQFILTERvalue2"+i+"','"+filterFilterFormat(i)+"');\"><IMG SRC=\""+nqViewFolder+"/images/calendar.gif\" BORDER=\"0\" align=\"middle\"></a>";
					sTemp=sTemp+"<A HREF=\"javascript:void(0);\" onClick=\"document.getElementById('NQFILTERvalue2"+i+"').value='';\"><IMG SRC=\""+nqViewFolder+"/images/clearvalue.gif\" BORDER=\"0\" align=\"middle\"></A>";
				}	
				break;
		case "datetime":
				if (!a[i]["value2on"]) {
					sTemp=sTemp+"<input size=\"17\" type=\"text\" name=\"NQFILTERvalue"+i+"\" id=\"NQFILTERvalue"+i+"\" value=\""+a[i]["value"]+"\" readonly>";
					sTemp=sTemp+"<A HREF=\"javascript:void(0);\" onClick=\"showCalendar('NQFILTERvalue"+i+"','"+filterFilterFormat(i)+"',1);\"><IMG SRC=\""+nqViewFolder+"/images/calendar.gif\" BORDER=\"0\" align=\"middle\"></a>";
					sTemp=sTemp+"<A HREF=\"javascript:void(0);\" onClick=\"document.getElementById('NQFILTERvalue"+i+"').value='';\"><IMG SRC=\""+nqViewFolder+"/images/clearvalue.gif\" BORDER=\"0\" align=\"middle\"></A>";
				} else {
					sTemp=sTemp+"<input size=\"17\" type=\"text\" name=\"NQFILTERvalue"+i+"\" id=\"NQFILTERvalue"+i+"\" value=\""+a[i]["value"]+"\" readonly>";
					sTemp=sTemp+"<A HREF=\"javascript:void(0);\" onClick=\"showCalendar('NQFILTERvalue"+i+"','"+filterFilterFormat(i)+"',1);\"><IMG SRC=\""+nqViewFolder+"/images/calendar.gif\" BORDER=\"0\" align=\"middle\"></a>";
					sTemp=sTemp+"<A HREF=\"javascript:void(0);\" onClick=\"document.getElementById('NQFILTERvalue"+i+"').value='';\"><IMG SRC=\""+nqViewFolder+"/images/clearvalue.gif\" BORDER=\"0\" align=\"middle\"></A>";
					sTemp=sTemp+"<br/>";
					sTemp=sTemp+"<input size=\"17\" type=\"text\" name=\"NQFILTERvalue2"+i+"\" id=\"NQFILTERvalue2"+i+"\" value=\""+a[i]["value2"]+"\" readonly>";
					sTemp=sTemp+"<A HREF=\"javascript:void(0);\" onClick=\"showCalendar('NQFILTERvalue2"+i+"','"+filterFilterFormat(i)+"',1);\"><IMG SRC=\""+nqViewFolder+"/images/calendar.gif\" BORDER=\"0\" align=\"middle\"></a>";
					sTemp=sTemp+"<A HREF=\"javascript:void(0);\" onClick=\"document.getElementById('NQFILTERvalue2"+i+"').value='';\"><IMG SRC=\""+nqViewFolder+"/images/clearvalue.gif\" BORDER=\"0\" align=\"middle\"></A>";
				}	
				break;				
		case "dropdownlist":
				sTemp=sTemp+"<select name=\"NQFILTERvalue"+i+"\" id=\"NQFILTERvalue"+i+"\">";
				for (var cc=0; cc<a[i]["valuelist"].length; cc++) {
					sTemp=sTemp+"<option value=\""+a[i]["valuelist"][cc]+"\" "+filterGetSelected(i,a[i]["valuelist"][cc])+">"+a[i]["displayvaluelist"][cc]+"</option>";	
				}
				sTemp=sTemp+"</select>";					
				break;
		case "radio":
				for (var cc=0; cc<a[i]["valuelist"].length; cc++) {
					sTemp=sTemp+"<input type=\"radio\" name=\"NQFILTERvalue"+i+"\" id=\"NQFILTERvalue"+i+"\" value=\""+a[i]["valuelist"][cc]+"\" "+filterGetCheckedOptionBox(i,a[i]["valuelist"][cc])+" onclick=\"a["+i+"]['value'][0]='"+a[i]["valuelist"][cc]+"'\">"+a[i]["displayvaluelist"][cc]+"<br/>";
					//sTemp=sTemp+"<option value=\""+a[i]["valuelist"][cc]+"\" "+filterGetSelected(i,a[i]["valuelist"][cc])+">"+a[i]["displayvaluelist"][cc]+"</option>";	
				}
				break;				
		case "checkbox":
				for (var cc=0; cc<a[i]["valuelist"].length; cc++) {
					//sTemp=sTemp+"<input type=\"radio\" name=\"NQFILTERvalue"+i+"\" id=\"NQFILTERvalue"+i+"\" value=\""+a[i]["valuelist"][cc]+"\" "+filterGetChecked(i,a[i]["valuelist"][cc])+" onclick=\"a["+i+"]['value']='"+a[i]["valuelist"][cc]+"'\">"+a[i]["displayvaluelist"][cc]+"<br/>";
					sTemp=sTemp+"<input name=\"NQFILTERvalue"+i+"\" id=\"NQFILTERvalue"+i+"\" type=\"checkbox\" value=\""+a[i]["valuelist"][cc]+"\""+filterGetCheckedCheckBox(i,a[i]["valuelist"][cc])+" onclick=\"filterCheckUncheck(this.checked,"+i+",'"+a[i]["valuelist"][cc]+"');\">"+a[i]["displayvaluelist"][cc]+"<br/>";;					
				}
				break;
		case "multiselectlist":
				sTemp=sTemp+"<select name=\"NQFILTERvalue"+i+"\" class=\"values\" id=\"NQFILTERvalue"+i+"\" multiple>";
				for (var cc=0; cc<a[i]["valuelist"].length; cc++) {
					sTemp=sTemp+"<option value=\""+a[i]["valuelist"][cc]+"\" "+filterGetMultiSelected(i,a[i]["valuelist"][cc])+">"+a[i]["displayvaluelist"][cc]+"</option>";	
				}
				sTemp=sTemp+"</select>";					
				break;		
		default: 
			sTemp=sTemp;
			break;
	}	

	return sTemp;
}
	
/*	
switch (variable) {
case value1 : {…code1…} 
case value2 : {…code2…} 
…
case valueN : {…codeN…} 
default: {…default code…}	
}
*/

// Filter Checks
// Check Union
function filterCheckUnion(i,choice) {
	if (a[i]["union"]==choice){
		return "selected";
	} 
	else {
		return "";
	}
}

// Check (
function filterCheckPo(i) {
	if (a[i]["po"]){
		return "checked";
	} 
	else {
		return "";
	}
}

// Check Not
function filterCheckNot(i) {
	if (a[i]["not"]){
		return "checked";
	} 
	else {
		return "";
	}
}

// Check )
function filterCheckPc(i) {
	if (a[i]["pc"]){
		return "checked";
	} 
	else {
		return "";
	}
}

// Check Union
function filterCheckFilter(i,choice) {
	if (a[i]["filterselected"]==choice){
		return "selected";
	} 
	else {
		return "";
	}
}

// Check Rpp
function filterCheckRpp(choice) {
	if (nqfilterrppselected==choice){
		return "selected";
	} 
	else {
		return "";
	}
}

// Set Rpp
function filterSetRpp() {
	nqfilterrppselected=document.getElementById('NQFILTERrpp').options[document.getElementById('NQFILTERrpp').selectedIndex].value;
}

// Get Selected Default Value for Select Box
function filterGetSelected (i,choice) {
	if (a[i]["value"]==choice){
		return "selected";
	} 
	else {
		return "";
	}
}

// Get Selected Default Value for Multi Select Box
function filterGetMultiSelected (i,choice) {
	for (var jj=0; jj<=a[i]["value"].length; jj++) {
		if (a[i]["value"][jj]==choice){
			return "selected";
		} 
	}
}

// Get Selected Default Value for OptionBox
function filterGetCheckedOptionBox (i,choice) {
	//alert(a[i]["value"].length);
	ttt=a[i]["value"][0];
	for (var jj=0; jj<=a[i]["value"].length; jj++) {
		a[i]["value"].pop();		
	}
	a[i]["value"].push(ttt);
	if (a[i]["value"][0]==choice){
		return "checked";
	} 	
}


// Get Selected Default Value for CheckBox
function filterGetCheckedCheckBox (i,choice) {
	for (var jj=0; jj<=a[i]["value"].length; jj++) {
		if (a[i]["value"][jj]==choice){
			return "checked";
		} 
	}
}

// Check / Unckeck
function filterCheckUncheck (status,i,value) {
	if (status) {
		a[i]["value"].push(value);
	} else {
		for (var jj=0; jj<=a[i]["value"].length; jj++) {
			if (a[i]["value"][jj]==value) {
				delete a[i]["value"][jj];			
				break;
			}
		}
	}
}

// Display Filter Item
function filterDisplayFilterItem(viewid,i) {

	sOut=sOut+"<tr>";

	// And/Or
	if (i != 1) {
	sOut=sOut+"<td>";
	sOut=sOut+"<select name=\"NQFILTERunion"+i+"\" id=\"NQFILTERunion"+i+"\">";
	sOut=sOut+"<option value=\"AND\" "+filterCheckUnion(i,'AND')+">AND</option>";
	sOut=sOut+"<option value=\"OR\" "+filterCheckUnion(i,'OR')+">OR</option>";
	sOut=sOut+"</select>";
	sOut=sOut+"</td>";
	}
	else {
		sOut=sOut+"<td>";
		sOut=sOut+"<input name=\"NQFILTERunion"+i+"\" type=\"hidden\" value=\"\">";
		sOut=sOut+"</td>";		
	}

	// ( (Opening Parenthesis)
	sOut=sOut+"<td>";
	sOut=sOut+"<input id=\"NQFILTERpo"+i+"\" type=\"checkbox\" value=\"1\""+filterCheckPo(i)+">";
	sOut=sOut+"</td>";
		
	// Not
	sOut=sOut+"<td>";
	sOut=sOut+"<input name=\"NQFILTERnot"+i+"\" id=\"NQFILTERnot"+i+"\" type=\"checkbox\" value=\"1\""+filterCheckNot(i)+">";
	sOut=sOut+"</td>";	

	// Name
	sOut=sOut+"<input name=\"NQFILTERname"+i+"\" id=\"NQFILTERname"+i+"\" type=\"hidden\" value=\""+a[i]["name"]+"\">";
	
	// Caption
	sOut=sOut+"<td>";
	sOut=sOut+"<b>"+a[i]["caption"]+"</b>";
	sOut=sOut+"<input name=\"NQFILTERcaption"+i+"\" id=\"NQFILTERcaption"+i+"\" type=\"hidden\" value=\""+a[i]["caption"]+"\">";
	sOut=sOut+"</td>";

	// Filter
	sOut=sOut+"<td>";
	sOut=sOut+filterFilterSelect(viewid,i);
	sOut=sOut+"</td>";
	
	// Filter Type
	sOut=sOut+"<td>";	
	//sOut=sOut+"<i>"+a[i]["filtertype"]+filterDisplayFilter(i)+"</i>";	
	sOut=sOut+filterDisplayFilter(i);		
	sOut=sOut+"</td>";	
	
	// Field Type (CF_SQL)
	sOut=sOut+"<td>";	
	sOut=sOut+"<input name=\"NQFILTERfieldtype"+i+"\" type=\"hidden\" value=\""+a[i]["fieldtype"]+"\">";
	sOut=sOut+"</td>";	
	
	// Value
	
	// ) (Closing Parenthesis)
	sOut=sOut+"<td>";	
	sOut=sOut+"<input id=\"NQFILTERpc"+i+"\" type=\"checkbox\" value=\"1\""+filterCheckPc(i)+">";
	sOut=sOut+"</td>";	
		
	
	// Move Up
	if (i != 1) {
		sOut=sOut+"<td>";	
		sOut=sOut+" ";
		sOut=sOut+"<a href=\"Javascript: filterSwitch("+viewid+",'"+i+"','"+eval(i-1)+"');\">^</a>";
		sOut=sOut+"</td>";		
	} else {
		sOut=sOut+"<td> </td>";
	}
	
	// Move Down
	if (i != numOfFilters) {
		sOut=sOut+"<td>";	
		sOut=sOut+" ";	
		sOut=sOut+"<a href=\"Javascript: filterSwitch("+viewid+",'"+i+"','"+eval(i+1)+"');\">v</a>";
		sOut=sOut+"</td>";			
	} else {
		sOut=sOut+"<td> </td>";	
	}
	
	// Delete Filter
	sOut=sOut+"<td>";	
	sOut=sOut+" ";
	sOut=sOut+"<a href=\"Javascript: filterDelete("+viewid+","+i+");\">X</a>";
	sOut=sOut+"</td>";	
	
	// Add Filter
	sOut=sOut+"<td>";	
	sOut=sOut+" ";
	sOut=sOut+"<a href=\"Javascript: void(0);\" onClick=\"filterDisplayDynamic("+viewid+","+i+")\"><IMG SRC=\""+nqViewFolder+"/images/fadd.gif\" BORDER=\"0\" align=\"middle\"></a><div id=\"divDyn"+i+"\"></div>";
	sOut=sOut+"</td>";	
	sOut=sOut+"</tr>";	
	
}

function filterDisplayFilterItems(viewid) {
	for (var i=1; i<=numOfFilters; i++) {
		filterDisplayFilterItem(viewid,i);
	}
}

function filterDisplayFooter(viewid) {
	tsOut="";
	tsOut=tsOut+"</table>";
	sOut=sOut+tsOut;
	//return tsOut;
}

function filterDisplayButtons(viewid) {
	tsOut="";
	tsOut=tsOut+"<table>";
	tsOut=tsOut+"<tr>";
	tsOut=tsOut+"<td width=\"100%\">";
	tsOut=tsOut+"<input type=\"button\" value=\"Reset\" onClick=\"filterReset("+viewid+");\">";
	tsOut=tsOut+" ";
	tsOut=tsOut+"<input type=\"button\" value=\"Clear All Filters\" onClick=\"filterClearAll("+viewid+");\">";			
	tsOut=tsOut+" ";	
	tsOut=tsOut+"</td>";	
	tsOut=tsOut+"<td nowrap>";
	tsOut=tsOut+"<b>Display rows </b>";
	tsOut=tsOut+"<select name=\"NQFILTERrpp\" id=\"NQFILTERrpp\" onChange=\"filterSetRpp();\">";
	for (var jj=0; jj<nqfilterrppvalues.length; jj++) {
		tsOut=tsOut+"<option value=\""+nqfilterrppvalues[jj]+"\" "+filterCheckRpp(nqfilterrppvalues[jj])+">"+nqfilterrppdisplayvalues[jj]+"</option>";
	}
	tsOut=tsOut+"</select>";	
	tsOut=tsOut+"</td>";			
	tsOut=tsOut+"<td>";
	tsOut=tsOut+"<input type=\"submit\" value=\"Search\" onClick=\"filterSubmit("+viewid+");\">";
	tsOut=tsOut+"</td>";	
	tsOut=tsOut+"</tr>";
	tsOut=tsOut+"</table>";
	return tsOut;
}

function filterSubmit(viewid) {
	applyFiltersToForm(viewid);
	window.document['frmNQView'+viewid].nqViewPostFiltersOnLoad.value='0';
	window.document['frmNQView'+viewid]['nqviewspage'+viewid].value='';
	window.document['frmNQView'+viewid].nqViewRpp.value=nqfilterrppselected;	
	window.document['frmNQView'+viewid].submit();
}

function filterBackup(viewid) {
	
	// create structure with new filter row
	for (var i=1; i<=numOfFilters; i++) {
		b[i] = new Object(); 
		b[i]["union"] = a[i]["union"].valueOf();
		b[i]["name"] = a[i]["name"].valueOf();
		b[i]["po"] = a[i]["po"].valueOf();
		b[i]["filter"] = a[i]["filter"].valueOf();
		b[i]["filterselected"] = a[i]["filterselected"].valueOf();
		b[i]["filtertype"] = a[i]["filtertype"].valueOf();
		b[i]["filterformat"] = a[i]["filterformat"].valueOf();
		b[i]["not"] = a[i]["not"].valueOf();
		b[i]["pc"] = a[i]["pc"].valueOf();
		b[i]["value"] = a[i]["value"].valueOf();
		b[i]["value2on"] = a[i]["value2on"].valueOf();		
		b[i]["value2"] = a[i]["value2"].valueOf();		
		b[i]["caption"] = a[i]["caption"].valueOf();
		b[i]["fieldtype"] = a[i]["fieldtype"].valueOf();
		b[i]["valuelist"] = a[i]["valuelist"].valueOf();
		b[i]["displayvaluelist"] = a[i]["displayvaluelist"].valueOf();
		b[i]["donotuseasfilter"] = a[i]["donotuseasfilter"].valueOf();		
		
	}
}

function filterReset(viewid) {
	delete a;

	a = new Object();
	 
	for (var i=1; i<=bnumOfFilters; i++) {
		a[i] = new Object(); 
		a[i]["union"] = b[i]["union"].valueOf();
		a[i]["name"] = b[i]["name"].valueOf();
		a[i]["po"] = b[i]["po"].valueOf();
		a[i]["filter"] = b[i]["filter"].valueOf();
		a[i]["filterselected"] = b[i]["filterselected"].valueOf();
		a[i]["filtertype"] = b[i]["filtertype"].valueOf();
		a[i]["filterformat"] = b[i]["filterformat"].valueOf();
		a[i]["not"] = b[i]["not"].valueOf();
		a[i]["pc"] = b[i]["pc"].valueOf();
		a[i]["value"] = b[i]["value"].valueOf();
		a[i]["value2on"] = b[i]["value2on"].valueOf();		
		a[i]["value2"] = b[i]["value2"].valueOf();		
		a[i]["caption"] = b[i]["caption"].valueOf();
		a[i]["fieldtype"] = b[i]["fieldtype"].valueOf();
		a[i]["valuelist"] = b[i]["valuelist"].valueOf();
		a[i]["displayvaluelist"] = b[i]["displayvaluelist"].valueOf();
		a[i]["donotuseasfilter"] = b[i]["donotuseasfilter"].valueOf();		
	}	
	
	//a=b.valueOf();
	numOfFilters=bnumOfFilters;
	filterDisplayAll(viewid);
}

function filterClearAll(viewid) {
	window.document['frmNQView'+viewid]['nqviewspage'+viewid].value='1';
	window.document['frmNQView'+viewid].nqViewRpp.value='';
	window.document['frmNQView'+viewid].nqViewPostFiltersOnLoad.value='1';
	window.document['frmNQView'+viewid].NQVIEWFILTER.value="";
	window.document['frmNQView'+viewid].nqViewByPassClient.value='1';
	window.document['frmNQView'+viewid].submit();
}

function filterDisplayHeader(viewid) {
				sOut=sOut+"<table>";
				sOut=sOut+"<tr>";
				sOut=sOut+"<th>";
				sOut=sOut+"AND/OR";
				sOut=sOut+"</th>";
				sOut=sOut+"<th>";
				sOut=sOut+"(";
				sOut=sOut+"</th>";
				sOut=sOut+"<th>";
				sOut=sOut+"NOT";
				sOut=sOut+"</th>";
				sOut=sOut+"<th>";
				sOut=sOut+"Caption";
				sOut=sOut+"</th>";		
				sOut=sOut+"<th>";
				sOut=sOut+"Filter";
				sOut=sOut+"</th>";	
				sOut=sOut+"<th colspan=2>";
				sOut=sOut+"Value";
				sOut=sOut+"</th>";										
				sOut=sOut+"<th>";
				sOut=sOut+")";
				sOut=sOut+"</th>";
				sOut=sOut+"<th colspan=2>";
				sOut=sOut+"Move";
				sOut=sOut+"</th>";		
				sOut=sOut+"<th>X</th>";									
				sOut=sOut+"<th>&nbsp;+</th>";													
				sOut=sOut+"</tr>";
}

function filterDisplayAll(viewid) {
	sOut="";
	//step 1: Display Header
	filterDisplayHeader(viewid);
	
	//step 2: Display Filter Items	
	filterDisplayFilterItems(viewid);
	
	//step 3: Display Footer
	filterDisplayFooter(viewid);

	// step 4: Replace div's innerHTML
	document.getElementById('divFilters').innerHTML=sOut;
	
}

// COLUMNS *****************************************



function columnAdd(values,displayvalues,checked) {
	cl["values"]=values;
	cl["displayvalues"]=displayvalues;
	cl["checked"]=checked;
}

function columnDisplayHeader(viewid) {
		scOut=scOut+"<table>";
		scOut=scOut+"<tr>";
		scOut=scOut+"<th width=\"100%\">";
		scOut=scOut+"Column Name";
		scOut=scOut+"</th>";
		scOut=scOut+"<th>";
		scOut=scOut+"Display";
		scOut=scOut+"</th>";
		scOut=scOut+"<th colspan=2>";
		scOut=scOut+"Move";
		scOut=scOut+"</th>";		
		scOut=scOut+"</tr>";
}

function columnDisplayColumnItems(viewid) {


	// Checkbox
	for (var jj=0; jj<cl["values"].length; jj++) {
		scOut=scOut+columnDisplayColumn(jj,viewid);
	}
	

}

function columnDisplayColumn(i,viewid) {
	tsOut="";
	tsOut=tsOut+"<tr>";
	
	// Value caption
	tsOut=tsOut+"<td>";
	tsOut=tsOut+cl["values"][i];
	tsOut=tsOut+"</td>";	

	// Checkbox
	tsOut="";
	tsOut=tsOut+"<td>";
	tsOut=tsOut+cl["displayvalues"][i];
	tsOut=tsOut+"</td>";	
	tsOut=tsOut+"<td>";
	tsOut=tsOut+"<input name=\"NQCOLUMNvalue"+i+"\" id=\"NQCOLUMNvalue"+i+"\" type=\"checkbox\" value=\"1\""+columnGetCheckedCheckBox(i)+" onclick=\"columnCheckUncheck(this.checked,"+i+","+viewid+");\">";					
	tsOut=tsOut+"</td>";	
	
	// Move Up
	if (i != 0) {
		tsOut=tsOut+"<td>";	
		tsOut=tsOut+" ";
		tsOut=tsOut+"<a href=\"Javascript: columnSwitch("+viewid+",'"+i+"','"+eval(i-1)+"');\">^</a>";
		tsOut=tsOut+"</td>";		
	} else {
		tsOut=tsOut+"<td> </td>";
	}

	// Move Down
	if (i != eval(cl["values"].length-1)) {
		tsOut=tsOut+"<td>";	
		tsOut=tsOut+" ";	
		tsOut=tsOut+"<a href=\"Javascript: columnSwitch("+viewid+",'"+i+"','"+eval(i+1)+"');\">v</a>";
		tsOut=tsOut+"</td>";			
	} else {
		tsOut=tsOut+"<td> </td>";	
	}	
	
	tsOut=tsOut+"</tr>";	
	return tsOut;
}

// Switch two column rows
function columnSwitch(viewid,from,to) {
	
	tempvvalue=cl["values"][from];
	tempvdisplayvalue=cl["displayvalues"][from];
	tempvchecked=cl["checked"][from];	
	
	cl["values"][from]=cl["values"][to];
	cl["displayvalues"][from]=cl["displayvalues"][to];
	cl["checked"][from]=cl["checked"][to];		
	
	cl["values"][to]=tempvvalue;
	cl["displayvalues"][to]=tempvdisplayvalue;
	cl["checked"][to]=tempvchecked;
		
	
	// Display all again (reset div)
	columnDisplayAll(viewid);
}

// Get Selected Default Value for CheckBox
function columnGetCheckedCheckBox (i) {
	if (cl["checked"][i]==1){
		return "checked";
	} else {
		return "";
	}

}

// Check / Unckeck
function columnCheckUncheck (status,i,viewid) {
	if (status) {
		cl["checked"][i]=1;
	} else {
		cl["checked"][i]=0;
	}
	applyFiltersToForm(viewid);
}


function columnDisplayFooter(viewid) {
	scOut=scOut+"</table>";
}

function columnDisplayAll(viewid) {
	scOut="";
	//step 1: Display Header
	columnDisplayHeader(viewid);
	
	//step 2: Display Column Items	
	columnDisplayColumnItems(viewid);
	
	//step 3: Display Footer
	columnDisplayFooter(viewid);

	// step 4: Replace div's innerHTML
	document.getElementById('divColumns').innerHTML=scOut;
	
}


function checkIfAnySelected(viewid,msg) {
	var selectedObj=document['frmNQView'+viewid].nqViewSelectedIds;

	if (selectedObj.value==undefined) {
		for (i=0; i < selectedObj.length; i++)		{			
			if (selectedObj[i].checked){
				return true;		
				}
		}
	} else {
		if (selectedObj.checked) {
			return true;
		}
	}
	
	alert(msg);		
	return false;		
}

