function noNumbers(e)
{
	var keynum;
	var keychar;
	var numcheck;
	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	if(!keynum || keynum==8)
		return true;
	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;
	return numcheck.test(keychar);
}


function BindForm(form_id,load_func,error_func)
{
	var kw = {
		mimetype: "text/plain",
		//iframeProxyUrl: server_path+"dojo/src/io/xip_server.html",
		formNode: form_id,
		load: function(t, data, e) {
			if(t=='load')
			{				
				eval(load_func+'(data)');
			}
			else
			{
				eval(error_func+'(e.message)');
			}
		}
	};
	x=dojo.io.bind(kw);
	return x;
}

function BindFormToTarget(form_id,targetId)
{
	var kw = {
		mimetype: "text/plain",
		//iframeProxyUrl: path+"dojo/src/io/xip_server.html",
		formNode: form_id,
		load: function(t, data, e) {
			if(t=='load')
			{				
				dojo.byId(targetId).innerHTML=data;
			}
			else
			{
				alert(e.message);
			}
		}
	};
	x=dojo.io.bind(kw);
	return x;
}

function BindGridForm(form_id,resultId,checkboxes)
{
	var kw = {
		mimetype: "text/plain",
		//iframeProxyUrl: path+"dojo/src/io/xip_server.html",
		formNode: form_id,
		load: function(t, data, e) {
			if(t=='load')
			{				
				dojo.byId(resultId).innerHTML=data;
				try
				{
					dojo.byId('month_form');
					ConnectCheckBoxes('month_form',checkboxes);
				}
				catch(E)
				{
					ConnectCheckBoxes(form_id.getAttribute('id'),checkboxes);
				}
			}
			else
			{
				alert(e.message);
			}
		}/*,
		error: function(t, e) {
			eval(error_func+'(e.message)');
			//dojo.debug("Error!... " + e.message);
		}*/
	};
	x=dojo.io.bind(kw);
	return x;
}

function BindFormReplyComment(form_id,load_func,error_func,arg)
{
	var kw = {
		mimetype: "text/plain",
		//iframeProxyUrl: path+"dojo/src/io/xip_server.html",
		formNode: form_id,
		load: function(t, data, e) {
			if(t=='load')
			{				
				eval(load_func+'(data,arg)');
			}
			else
			{
				eval(error_func+'(e.message)');
			}
		}/*,
		error: function(t, e) {
			eval(error_func+'(e.message)');
			//dojo.debug("Error!... " + e.message);
		}*/
	};
	x=dojo.io.bind(kw);
	return x;
}

function SimpleLoadPage(url_path,divId,callback)
{
	dojo.io.bind({
	url: url_path,
	handle: function(type, data, evt){
		if(type == "load"){
			dojo.byId(divId).innerHTML = data;
			try
			{				
				if(grid_refersh_url && grid_refersh_url!='' && dojo.byId('refresh_url_path').innerHTML!='')
				{					
					grid_refersh_url=dojo.byId('refresh_url_path').innerHTML.replace(/&amp;/g,'&');
				}
			}
			catch(E){}	
			if(callback!='')
			{				
				eval(callback);
			}
		}else if(type == "error"){
			dojo.byId(divId).innerHTML = data.message;
			//alert('error');
			// here, "data" is our error object
			// respond to the error here
		}else{
			alert(type);
			// other types of events might get passed, handle them here
		}
	},
	mimetype: "text/plain"
	});	
}

function CheckGridCheckboxes(checkboxes)
{
	tmp=false;
	for(i=0;i<checkboxes.length;i++)
	{
		try
		{		
			if(!checkboxes[i].checked && checkboxes[i].name!='subscribe_id[]')	
				tmp=true;	
		}
		catch(E){}
	}
	CheckAllGridCheckboxes(checkboxes,tmp);
}

function CheckAllGridCheckboxes(checkboxes,value)
{
	checked=false;
	unchecked=false;
	for(i=0;i<checkboxes.length;i++)
	{
		try
		{		
			if(!checkboxes[i].checked)	
				unchecked=true;
			else checked=true;		
		}
		catch(E){}
	}	
	if((checked && !value) || (unchecked && value))
	{
		for(i=0;i<checkboxes.length;i++)
		{
			try
			{
				if(checkboxes[i] && checkboxes[i].name!='subscribe_id[]')
				checkboxes[i].setValue(value);
			}
			catch(E){}
		}
	}
}

function ClearGridCheckboxes(checkboxes)
{
	for(i=0;i<checkboxes.length;i++)
	{
		try
		{
			checkboxes[i].destroy();
		}
		catch(E){}
	}
	//checkboxes=new Array();
}

function DoGridSort(order,need_order,dir,url,targetID,frm,checkboxes,callback)
{
	if(order!=need_order || dir=='desc')
		dir_str='asc';
	else
		dir_str='desc';	
	
	if(dojo.byId(frm).from)
	dir_str+='&from='+dojo.byId(frm).from.value;
	if(checkboxes!='')
	SimpleLoadPage(url+'order='+need_order+'&direction='+dir_str,targetID,'ConnectCheckBoxes(\''+frm+'\',\''+checkboxes+'\')');
	else
	SimpleLoadPage(url+'order='+need_order+'&direction='+dir_str,targetID,callback);
}

function DoRequestGridSort(order,need_order,dir,formID,targetID)
{
	if(order!=need_order || dir=='desc')
		dir_str='asc';
	else
		dir_str='desc';	
	dojo.byId(formID).order.value=need_order;
	dojo.byId(formID).dir.value=dir_str;
	BindFormToTarget(formID,targetID);
}

function ConnectCheckBoxes(frm,checkboxes){	
	frm=dojo.byId(frm);
	checkboxes=eval(checkboxes);
	ClearGridCheckboxes(checkboxes);
	frm.getAttribute('id');
	try
	{
		el=frm.getElementsByTagName('input');
		for(i=0;i<el.length;i++)
		{
			e=el[i];
			if(e.getAttribute('type')=='checkbox')
			{
				var params = {id: e.getAttribute('id'), widgetId: e.getAttribute('id'), name: e.getAttribute('name'), value: e.getAttribute('value')};
				checkboxes[i] = dojo.widget.createWidget("Checkbox", params, e);
				if(e.checked)checkboxes[i].setValue(true);
			}
		}
	}
	catch(E){}
	try
	{
		e=dojo.byId('grid_month_select');
		var params = { name: 'grid_month'};
		month_select = dojo.widget.createWidget("Select", params, e);
		month_select.show();
		month_select.onValueChanged = function(x){
			dojo.byId('month_form').month_value.value=x;
			month_value=x;
			dojo.byId('submit_btn').click();
		};
	}
	catch(E){}
}

function RefreshGrid()
{
	if(grid_refersh_url && grid_refersh_url!='')
	{
		SimpleLoadPage(grid_refersh_url,'private_messages_grid','ConnectCheckBoxes("grid_form","grid_checkboxes")');		
	}
	grid_refresh_timer=setTimeout('RefreshGrid()',grid_refersh_timeout);
}


function ChangeLinkChainLink(spanId,divId)
{
	pages=dojo.byId(spanId);
	links=pages.getElementsByTagName('a');
	for(i=0;i<links.length;i++)
	{
		links[i].onclick=function(){
			SimpleLoadPage(this.href,divId,"ChangeLinkChainLink('"+spanId+"','"+divId+"')");
			return false;
		}
	}
}
