var debug=true;
var ptr=0;				// Points to the next table entry
var range=5;			// How many table entries to bring back
var newcode="";
var method='none';		// After first view should be sql or txt
var conv='no';			// Flag to note whether txt to sql conversion has taken place. Not used yet and may redundant.
var mytitle = document.title;
function simple_check(myname,myemail,mycomment,mycode){
	function isValidEmail(str) { return (str.indexOf(".") > 2) && (str.indexOf("@") > 0); } 
	
	var ret_val="";
    if (myname.length < 3)		ret_val += "Name Required\n";
    // if (myemail.length < 9)		ret_val += "Email Required\n";
    if (mycomment.length < 4)	ret_val += "Comment Required\n";
	// if (mycode.length == 0)		ret_val += "Code Required\n";
    // email can be blank or valid address.
    if (myemail != ""){
	    if (!isValidEmail(myemail))	ret_val += "Email Address " + myemail + " Seems Wrong\n";
    }
	return ret_val;	
}

//.......................................................Start of Callback Functions.............................// 
function add_comment_cb(z) 
{	// alert(z);
	if (z != "OK"){ alert("Error " + z); }
    else 
	{	ptr=0;
		view_comment();
	}
}

function del_comment_cb(z)      // z can be "password wrong"|"Cant Del"|"Empty list|Cant Save"|"OK"
{   // alert(z + " In del_comment_cb() ");	// return;
	if (z=="Empty List"){
        ptr=0;
        document.getElementById("view").innerHTML="";   // clear list
        return; 
    }
    
    if (z!="OK"){
        alert("Delete issue " + z);
    }else{
        ptr=0;
        view_comment();
    }
        
    return;
    /*
    if (z=="Error") return;
    if (z=="C"){ document.getElementById("view").innerHTML=""; return; }
	ptr=0;
    view_comment(); 
    */   
}

function view_comment_cb(z) 
{   // alert(z);
	var myObject = eval('(' + z + ')');
    document.getElementById("view").innerHTML = myObject.html;	
	ptr		=myObject.ptr;
	newcode	=myObject.newcode;
	method 	=myObject.method;
	conv   	=myObject.conv;

	var r=Math.floor(Math.random()*1001);		// because IE displays cached image (image name stays the same but content changes by GD in PHP)
	document.getElementById("bk_bg0").innerHTML = "<img width='65' src='new.png?state=" + r + "'>"; // "<img width='65' src='new.png'>";
	// document.getElementById("list").innerHTML = myObject.newcode; 	
	// sdocument.getElementById("ptr").innerHTML = ptr;
}
//.......................................................End of Callback Functions................................//    
//.......................................................Start of HTML Functions..................................// 
function add_comment() 
{
	var myname   = document.getElementById("myname").value,
		myemail  = document.getElementById("myemail").value,
		mycomment= document.getElementById("mycomment").value,
		mycode   = document.getElementById("mycode").value;
	
	var ret_val = simple_check(myname,myemail,mycomment,mycode);
	if (ret_val != "") { alert(ret_val); return false; }
    // Make a blank email a definite a none, in case a simple empty string ("") gets misinterpreted going thru js->sajax->php->js
    if(myemail==""){
        myemail="none";
    }

	// Crude filtering 
	myname.replace(/[^A-Za-z0-9\. ]+/g,"");    // Replace not regexp but everything else
	mycomment.replace(/[^A-Za-z0-9\.\,\?\!\(\)\:\'\" ]+/g,"");
	x_add_comment(myname, myemail, mycomment, mycode, newcode, mytitle, method, add_comment_cb);
}

function del_comment()
{	var a = new Array();									// temp array where ticked checkboxes are are saved
	var items = document.getElementsByTagName("input");		// number of <input type='checkbox' value=$i />
	for (var i = 0; i < items.length; i++){
		if ( (items[i].checked) && (items[i].name == 'mylist') )
			a.push(items[i].value);							// saved ticked boxes
	}
	if (a.length == 0){										// if none ticked then don't go on
		alert("No entries ticked");
		return;
	}
 	var del_list=a.join(",");								// format a coma seperated list of items to be deleted										
	var pass = document.getElementById("password").value;	// pickup the password
	// alert(del_list);
    x_del_comment(del_list, pass, mytitle, method, del_comment_cb);	// off we go  
}

function get_method() {
	var chosen = "none"
	var len = document.myform.db.length

	for (var i = 0; i <len; i++) {
		if (document.myform.db[i].checked) {
			chosen = document.myform.db[i].value
		}
	}
	return chosen;
}

function sqlite_available(){
	var ret_val='none';
	if(document.myform.sqlite.checked){
		ret_val=document.myform.sqlite.value;
	}
	return ret_val;
}

function view_comment()
{	if (debug){
        sqlite=sqlite_available();  //alert(sqlite); return;	
	    method=get_method();
    }

	x_view_comment(ptr, range, mytitle, method, conv, sqlite, view_comment_cb); 
}

//.......................................................End of HTML Functions....................................//