



//filterstr = prompt("Enter Your Filter Condition\r\n Example \r\n like 'bet'\n=150","");

/*
list of functions to modify for anchors

grid_navigate
grid_sort
grid_pageoffset
edit_source_onstart
edit_source
edit_grid
filter_field
clear_filter
toggle_to_form
toggle_to_grid
filter_source
filter_grid_source
*/


//function fetch_download(fname) {
	
	

  // Bizarre logic because JavaScript won't behave
  /*
  idl = 1;
  if (location.search) { // for NN2
    idl = -location.search.indexOf("idl=n");
  }
  if (idl > 0) {
    window.location = newlocation;
  }
	*/


//}

/*
function download_table(gridid) {

	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	command_btn.value = "download";
	grid_form.submit();

}

*/



//uploadhandler = "/etouchdb/file_upload.asp" ;
var last_command = "none";



function element_exist_inarray(array_var,element_var) {

	for(var i=0;i<array_var.length;i++) {
		if(array_var[i]==element_var) {
			return true;
		}
	}

	return false;
}



function isblank(s) {
	for(var i=0;i<s.length;i++) {
		var c = s.charAt(i);
		if( (c!=' ') && (c != '\n') && (c!='\t') ) return false;
	}
	return true;
}

function verify_form(f) {

	var msg;
	var empty_fields="";
	var errors = "";
	var radio_array = new Array();
	
	eval(f.name + "_validate();");

	for(var i=0;i<f.elements.length;i++) {
		var e = f.elements[i];

		if(e.type=="radio") {
			if(!element_exist_inarray(radio_array,e.name)) {
				radio_array[radio_array.length] = e.name;
			}
			continue;
		}
			


		if( (e.type =="text" || e.type=="textarea") && e.required ) {
			if (e.required==-1) { 
				required = 1; 
			} else {
				required = e.required;
			}
			if( e.value==null || e.value=="" || isblank(e.value) ){
				empty_fields += "\n            " + e.name + " should be atleast " + required + " character(s)";
				continue;
			}		
		}

		
	}


	//This is too much just to get all the stuff from radio!! uh???
	//now go thro' radio_array
	eval(f.name + "_validate();");
	var radio_checked;
	for(var i=0;i<radio_array.length;i++) {
		
		var this_radio = eval("f." + radio_array[i]);
		radio_checked = false;
		//go thro radio_elements
		if(this_radio.length && this_radio.required) {
			for(var j=0;j<this_radio.length;j++) {
				if(this_radio[j].checked) {
					radio_checked = true;
					continue;
				}
			} //end for
		
			if(!radio_checked) {
				empty_fields += "\n            " + radio_array[i];
			}
		}
		
	}


	if(empty_fields) {
		msg = "- This cannot be submitted for the following reasons,\n" + "- The Following required field(s) are empty:" + empty_fields + "\n"
		alert(msg);
		return false;
	}
	
	return true;
}

function upload_image(gridid,fieldid,uploadpath) {

	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");


	elemname = gridid + "." + fieldid;
	mywin = window.open(uploadhandler + "?Title=" + 
				escape("Upload Image") + 
				"&Path=" + escape(uploadpath) + 
				"&imagefield=" + escape(elemname) 
				,"uploadwin","width=" + upload_window_width + ",height=" + upload_window_height);
	return;
	
}


function upload_file(gridid,fieldid,uploadpath) {

	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");

	elemname = gridid + "." + fieldid;
	mywin = window.open(uploadhandler + "?Title=" + 
				escape("Upload File") + 
				"&Path=" + escape(uploadpath) + 
				"&element=" + escape(elemname) 
				,"uploadwin","width=" + upload_window_width + ",height=" + upload_window_height);
	return;
	
}




function show_date(gridid,fieldid) {

	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");

	elemname = "document." + gridid + "." + fieldid;
	elemvalue = eval(elemname + ".value");

	mywin = window.open("showcal.asp?datevalue=" + 
				escape(elemvalue) + 
				"&fieldname=" + escape("opener." + elemname),"uploadwin","width=400,height=300");

}







function upload_to_dbimage(gridid,fieldid) {
	//mmm sometimes the grid name can be in caps..so 
	//lets figure out which one is this one
	for(i=0;i<document.forms.length;i++) {
		this_form = (document.forms[i].name).toUpperCase();
		grid_id = gridid.toUpperCase();
		if(grid_id==this_form) {
			gridid = document.forms[i].name;
			break;
		}
		
	}
	

	grid_form = eval("document." + gridid);
	elemname = gridid + "." + fieldid;


	window.name="parentform";

	mywin = window.open(uploadhandler + "?Title=" + 
				escape("Upload To Database") + 
				"&Path=" + escape("/etouchdb/temp") + 
				"&element_dbimage=" + escape(elemname) 
				,"uploadwin","width=" + upload_window_width + ",height=" + upload_window_height);

	return;


	
}



function upload_to_db(gridid,fieldid) {
	//mmm sometimes the grid name can be in caps..so 
	//lets figure out which one is this one
	for(i=0;i<document.forms.length;i++) {
		this_form = (document.forms[i].name).toUpperCase();
		grid_id = gridid.toUpperCase();
		if(grid_id==this_form) {
			gridid = document.forms[i].name;
			break;
		}
		
	}
	

	grid_form = eval("document." + gridid);
	elemname = gridid + "." + fieldid;



	mywin = window.open(uploadhandler + "?Title=" + 
				escape("Upload To Database") + 
				"&Path=" + escape("/etouchdb/temp") + 
				"&element=" + escape(elemname) 
				,"uploadwin","width=" + upload_window_width + ",height=" + upload_window_height);
	return;


	
}

function grid_navigate(gridid,cmd) {
	
	
	//date = new Date(); when navigation button(s) are clicked one after another, we get the # on url
	grid_form = eval("document." + gridid);


	command_btn = eval("document." + gridid + "." + gridid + "_command");
	command_btn.value = cmd;

	//added for anchor
	anchor_btn =  eval("document." + gridid + "." + gridid + "_anchor");
	grid_form.action = anchor_btn.value;
	date = new Date();
	//anchor_btn.value = date.getTime();

	grid_form.submit();


}	

function grid_sort(fieldname,sortorder,gridid) {
	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");

	//added for anchor
	anchor_btn =  eval("document." + gridid + "." + gridid + "_anchor");
	grid_form.action = anchor_btn.value;
	date = new Date();
	//anchor_btn.value = date.getTime();


	command_btn.value = "sort";
	params_btn.value = gridid + ";[" + fieldname + "] " + sortorder;
	grid_form.submit();
	
}



function grid_pageoffset(offset,gridid) {
	
	//mmm sometimes the grid name can be in caps..so 
	//lets figure out which one is this one
	for(i=0;i<document.forms.length;i++) {
		this_form = (document.forms[i].name).toUpperCase();
		grid_id = gridid.toUpperCase();
		if(grid_id==this_form) {
			gridid = document.forms[i].name;
			break;
		}
		
	}
	
	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	command_btn.value = "grid_offset"  ;
	params_btn =  eval("document." + gridid + "." + gridid + "_params");
	params_btn.value = offset ;


	//added for anchor
	anchor_btn =  eval("document." + gridid + "." + gridid + "_anchor");
	grid_form.action = anchor_btn.value;
	date = new Date();
	//anchor_btn.value = date.getTime();

	//anchor_btn.value = pagenum;
	grid_form.submit();

}


function edit_source_onstart(sourceid,cmd) {
	//when called from grid, it is sourceid=gridid

	gridid = sourceid;
	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");

	//added for anchor
	anchor_btn =  eval("document." + gridid + "." + gridid + "_anchor");
	grid_form.action = anchor_btn.value;
	command_btn.value = "edit_source";
	params_btn.value = sourceid + ";" + cmd ;


	//call validation
	if( cmd=="update" || cmd=="addnew") {
		if (!verify_form(grid_form)) return;
	}

	date = new Date();
	//anchor_btn.value = date.getTime();


	grid_form.method="post";
	grid_form.submit();

}


function edit_source(sourceid,cmd) {
	//when called from grid, it is sourceid=gridid

	gridid = sourceid;
	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");


	//added for anchor
	anchor_btn =  eval("document." + gridid + "." + gridid + "_anchor");
	grid_form.action = anchor_btn.value;
	command_btn.value = "edit_source";
	params_btn.value = sourceid + ";" + cmd ;

	//call validation
	if( cmd=="update" || cmd=="addnew") {
		if (!verify_form(grid_form)) return;
	}

	date = new Date();
	//anchor_btn.value = date.getTime();

	grid_form.method="post";
	grid_form.submit();

}


function edit_grid(row,gridid,cmd) {
	if(cmd=="delete") {
		 if ( !confirm("Do you really want to delete the row?") ) return;
	}
		
	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");

	//added for anchor
	anchor_btn =  eval("document." + gridid + "." + gridid + "_anchor");
	grid_form.action = anchor_btn.value;
	command_btn.value = "edit_grid";
	params_btn.value = gridid + ";" + cmd + ";" + row;

	//call validation
	if( cmd=="update" || cmd=="addnew") {
		if (!verify_form(grid_form)) return;
	}

	date = new Date();
	//anchor_btn.value = date.getTime();

	grid_form.method="post";
	grid_form.submit();

}




function filter_field(gridid,fieldname,fldtype) {
	promptstr = "Enter Criteria for the field " + fieldname + " in the form Operator Value.\n" +
	     "Operator must be one of the following: <, >, <=, >=, <>, =, or LIKE.\n" ;

	filterstr = prompt(promptstr,"");
	if(filterstr=="") {
		alert("Criteria cant be empty!");
		return;
	}

	if(filterstr==null) {
		return;
	}


	//validate 
	if (!( filterstr.indexOf("> ") != -1 || filterstr.indexOf("< ") != -1  || filterstr.indexOf("= ") != -1 
	   || filterstr.indexOf("<= ") != -1  || filterstr.indexOf(">= ") != -1   || filterstr.indexOf("<> ") != -1 
	   || (filterstr.toLowerCase()).indexOf("like ") != -1 ))
	{
		alert("The Operator does not seem to be valid!");
		return;
	}
	//check if quote was entered
	//get field value ..after space to rest
	spacepos = filterstr.indexOf(" ");
	fldvalue = filterstr.substring(spacepos+1);
	if(fldvalue=="") {
		alert("Value cant be empty!");
		return;
	}


	if(fldtype==1) {
		if(fldvalue.indexOf("'") != -1) {
			alert("The Field You're trying to filter is a Numeric Field.\n Do not enter Value within Quotes");
			return;
		}
	}

	if(fldtype==2) {
		if(fldvalue.indexOf("'") == -1) {
			alert("The Field You're trying to filter is a Text Field.\n Enter Value within Quotes");
			return;
		}

	}
	if(fldtype==3) {
		if(fldvalue.indexOf("#") == -1) {
			alert("The Field You're trying to filter is a Date Field.\n Enter Value within Pound signs");
			return;
		}

	}

	//should be alright to submit now
	
	
	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");

	command_btn.value = "filter_grid";
	params_btn.value = fieldname + " " + filterstr;
	grid_form.submit();
}


function clear_filter(gridid) {

	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");

	command_btn.value = "filter_grid_clear";
	params_btn.value = "filter_grid_clear";
	grid_form.submit();

}

function toggle_to_form(gridid) {
	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");

	command_btn.value = "form_mode";
	grid_form.submit();
}

function toggle_to_grid(gridid) {
	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");

	command_btn.value = "grid_mode";
	//command_btn.value = "next_page";
	grid_form.submit();
}



function filter_source(sourceid,cmd) {
	gridid = sourceid;
	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");

	command_btn.value = cmd;
	grid_form.submit();

}


function filter_grid_source(gridid,cmd) {

	grid_form = eval("document." + gridid);
	command_btn = eval("document." + gridid + "." + gridid + "_command");
	params_btn =  eval("document." + gridid + "." + gridid + "_params");

	command_btn.value = cmd;
	grid_form.submit();

}



function reset_form(gridid) {

	grid_form = eval("document." + gridid);
	grid_form.reset();
}



