var wpb_url='/wpb_public/ajax.php';
var wpb_download_url='wpb_public/download.php';
var wpb_wrapper=$('backupwrapper');
var wpb_state='';
var wpb_user=new Array();
var wpb_pages=new Array();

function wpbStart()
{
	if(wpb_wrapper==null) { return; }
	wpb_wrapper.innerHTML='<center>Loading... done!</center>';
	wpbShowLogin();
	wpb_user=new Array();
	
	/*
	wpb_pages[i]=new Array();
	wpb_pages[i]['code']='home';
	wpb_pages[i]['name']='Home';
	wpb_pages[i]['title']='Some statistics';
	wpb_pages[i]['onclick']='wpbPageHome();';*/
	
	var i=0;
	wpb_pages[i]=new Array();
	wpb_pages[i]['code']='sites';
	wpb_pages[i]['name']='Sites';
	wpb_pages[i]['title']='Add, remove and manage your blog(s)';
	wpb_pages[i]['onclick']='wpbPageSites();';
	
	i++;
	wpb_pages[i]=new Array();
	wpb_pages[i]['code']='restore';
	wpb_pages[i]['name']='Restore';
	wpb_pages[i]['title']='View and download the backups';
	wpb_pages[i]['onclick']='wpbPageRestore();';
	
	i++;
	wpb_pages[i]=new Array();
	wpb_pages[i]['code']='account';
	wpb_pages[i]['name']='Account';
	wpb_pages[i]['title']='Your account settings';
	wpb_pages[i]['onclick']='wpbPageAccount();';
	
	i++;
	wpb_pages[i]=new Array();
	wpb_pages[i]['code']='log';
	wpb_pages[i]['name']='Backup log';
	wpb_pages[i]['title']='The backup log for your sites';
	wpb_pages[i]['onclick']='wpbPageLog();';
	
	i++;
	wpb_pages[i]=new Array();
	wpb_pages[i]['code']='logout';
	wpb_pages[i]['name']='Logout';
	wpb_pages[i]['title']='Exit the site';
	wpb_pages[i]['onclick']='wpbPageLogout();';
	
	wpbCheckLoggedIn();
}

function wpbTT()
{
	if(window['tooltip']==null ) { return ; }
	if(typeof tooltip.init == 'function')
	{
		tooltip.init();
	}
}
function wpbTrack(page)
{
	if(page==null) { return ; }
	if(typeof urchinTracker != 'function') { return ; }
	urchinTracker('ajax#'+page);
}

function wpbCheckLoggedIn()
{
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'isauth' }, 
	    onSuccess: function(transport){
	      wpbCheckLoggedInReply(transport.responseText);
	    }
	    /*,
	    onFailure: function(){ alert('Could not login... Wait a bit and try again...') }
	    */
	  });
}

function wpbShowLogin()
{
	if(wpb_wrapper==null) { return; }
	wpb_state='login';
	var temp='';
	temp+='<center><h2>Login..</h2>';
	temp+='<div style="width:260px; text-align:left;">';
	temp+='<label for="user" title="Your username"><span class="text" style="display:block; width:100px;">User:</span><input type="text" name="loginuser" id="loginuser" style="width:100%;"></label>';
	temp+='<br>';
	temp+='<label for="password" title="Your password"><span class="text" style="display:block; width:100px;">Password:</span><input type="password" name="loginpass" id="loginpass" style="width:100%;"></label>';
	temp+='<br>';
	temp+='<a title="Login!" class="fakebutton" href="#" onclick="wpbTryLogin(); return false;">login</a>';
	temp+='</div>';
	temp+='</center><div style="height:20px; overflow:hidden;">&nbsp;</div>';
	
	temp+='<a id="toggleformnewuser" class="toggleform" href="" onclick="wpbLoginToggleNewUser(); return false;" title="Click here to register">? New user</a>';
	temp+='<div id="divnewuser" style="display:none;" class="toggableform">';
	temp+='<div id="newuser_error" class="formerror" style="display:none;">&nbsp;</div>';
	temp+='<label for="newuser_name"><span class="text" title="Username">Username</span><input title="Username, 3 letter minimum" class="field" name="newuser_name" id="newuser_name"></label>';
	temp+='<label for="newuser_password"><span class="text" title="Password">Password</span><input title="Password, 3 letter minimum" type="password" class="field" name="newuser_password" id="newuser_password"></label>';
	temp+='<label for="newuser_email" title="E-mail"><span class="text">Email</span><input class="field" name="newuser_email" id="newuser_email"></label>';
	temp+='<span class="spacer">&nbsp;&nbsp;</span>';
	temp+='<a class="fakebutton firstbutton" href="#" onclick="wpbUserCreate(); return false;" title="Create new user">Create!</a>';
	temp+='</div>';
	
	temp+='</center><div style="height:10px; overflow:hidden;">&nbsp;</div>';
	
	temp+='<a id="toggleformactivate" class="toggleform" href="" onclick="wpbLoginToggleActivate(); return false;" title="Activate your account with the key you<br> got in the registration e-mail">? Activate account</a>';
	temp+='<div id="divactivuser" style="display:none;" class="toggableform">';
	temp+='<div id="activuser_error" class="formerror" style="display:none;">&nbsp;</div>';
	temp+='<label for="activuser_name" title="Your username"><span class="text">Username</span><input class="field" name="activuser_name" id="activuser_name"></label>';
	temp+='<label for="activuser_key" title="The key you got in the mail"><span class="text">Activation key</span><input type="text" class="field" name="activuser_key" id="activuser_key"></label>';
	temp+='<span class="spacer">&nbsp;&nbsp;</span>';
	temp+='<a class="fakebutton firstbutton" href="#" onclick="wpbUserActivate(); return false;" title="Activate...">Activate user!</a>';
	temp+='</div>';
	
	temp+='</center><div style="height:10px; overflow:hidden;">&nbsp;</div>';
	
	//temp+='<a id="toggleformforgotten" class="toggleform" href="" onclick="wpbLoginToggleForgotten(); return false;">? Forgotten password</a>';
	
	temp+='<span class="clearall">&nbsp;</span></div><br><br>';
	temp+='</center><div style="height:50px;">&nbsp;</div>';
	wpb_wrapper.innerHTML=temp;
	
	wpbTrack('login');
	wpbTT();
}

function wpbLoginToggleNewUser()
{
	var w=$('divnewuser');
	if(w==null) { return ; }
	if(w.style.display=='none') { w.show(); }
	else { w.hide(); }
}

function wpbLoginToggleActivate()
{
	var w=$('divactivuser');
	if(w==null) { return ; }
	if(w.style.display=='none') { w.show(); }
	else { w.hide(); }
}

function wpbUserActivate()
{
	var user=$('activuser_name').value;
	var key=$('activuser_key').value;
	
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'activateuser', 'user':user, 'key':key }, 
	    onSuccess: function(transport){
	      wpbUserActivateReply(transport.responseText);
	    }
	  });
}

function wpbUserActivateReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			wpbUserActivateError(data['message']);
		} 
		if(data['result']=='error') {
			wpbUserActivateError(data['reason']);
		}
	}
}

function wpbUserActivateError(text)
{
	var we=$('activuser_error');
	if(text==null) { we.hide(); return ; }
	we.innerHTML=text;
	we.show();
}



function wpbUserCreateError(text)
{
	var we=$('newuser_error');
	if(text==null) { we.hide(); return ; }
	we.innerHTML=text;
	we.show();
}


function wpbUserCreate()
{
	var user=$('newuser_name').value;
	var password=$('newuser_password').value;
	var email=$('newuser_email').value;
	
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'createuser', 'user':user, 'password':password, 'email':email }, 
	    onSuccess: function(transport){
	      wpbUserCreateReply(transport.responseText);
	    }
	  });
}

function wpbUserCreateReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			wpbUserCreateError(data['message']);
		} 
		if(data['result']=='error') {
			wpbUserCreateError(data['reason']);
		}
	}
}


function wpbUserActivateError(text)
{
	var we=$('activuser_error');
	if(text==null) { we.hide(); return ; }
	we.innerHTML=text;
	we.show();
}


function wpbTryLogin()
{
	var user=$('loginuser').value;
	var pass=$('loginpass').value;
	if(user==null || pass==null) { return ; }
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'login', 'user':user, 'pass':pass }, 
	    onSuccess: function(transport){
	      wpbLoginReply(transport.responseText);
	    },
	    onFailure: function(){ alert('Could not login... Wait a bit and try again...') }
	  });
}

function wpbLoginReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['auth']=='ok') 
		{
			wpb_user=new Array();
			wpb_user['username']=data['username'];
			wpb_user['id']=data['id'];
			wpb_user['max_sites']=data['max_sites'];
			wpb_user['max_size']=data['max_size'];
			wpb_user['can_runjob']=data['can_runjob'];
			wpbAfterLogin();
			return ;
		}
		alert('Could not login. Check user and password?');
		return ;
	} 
	wpbShowLogin();
}

function wpbCheckLoggedInReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['auth']=='ok') 
		{
			wpb_user=new Array();
			wpb_user['username']=data['username'];
			wpb_user['id']=data['id'];
			wpb_user['max_sites']=data['max_sites'];
			wpb_user['max_size']=data['max_size'];
			wpb_user['can_runjob']=data['can_runjob'];
			wpbAfterLogin();
			return ;
		}
	} 
}

function wpbAfterLogin()
{
	if(wpb_wrapper==null) { return; }
	wpb_wrapper.innerHTML='<center>Loading...</center>';
	wpbMenuOn();
	
	if(document.location.hash)
	{
		var uh=document.location.hash.replace('#','');
		if(uh=='logout' || uh=='') 
		{ 
			uh='sites'; 
			document.location.hash='#sites';
		}
		for(i=0; i<wpb_pages.length; i++)
		{
			if(uh==wpb_pages[i]['code'])
			{
				eval(wpb_pages[i]['onclick']);
				return ;
			}
		}
	}
	
	wpbPageHome();
}

function wpbMenuOn()
{
	var menu=$('wpbmenu');
	if(menu==null) { return ; }
	var temp='';
	//temp+='<a class="wpbmenu" href="#home" onclick="wpbPageHome();">Home</a>';
	var i;
	for(i=0; i<wpb_pages.length; i++)
	{
		temp+='<a title="'+wpb_pages[i]['title']+'" class="" id="wpbmenu_'+i+'" href="#'+wpb_pages[i]['code']+'" onclick="'+wpb_pages[i]['onclick']+'">'+wpb_pages[i]['name']+'</a>';
	}
	temp+='<span class="clearall undermenu">&nbsp;</span>';
	menu.innerHTML=temp;
	menu.show();
	wpbTT();
}

function wpbMenuOff()
{
	var menu=$('wpbmenu');
	if(menu==null) { return ; }
	menu.hide();
	menu.innerHTML='&nbsp;';
}

function wpbMenuSelect(code)
{
	var i;
	var tmp;
	for(i=0; i<wpb_pages.length; i++)
	{
		tmp=$('wpbmenu_'+i);
		if(tmp!=null)
		{
			if(wpb_pages[i]['code']!=code)
			{
				if(tmp.className!="") { tmp.className=''; }
			} else {
				tmp.className="selected";
			}
		}
	}
}

function wpbState(x)
{
	if(x==null) { return wpb_state; }
	else { wpb_state=x; }
}


function wpbPageLogout()
{
	wpb_user=new Array();
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'logout' }, 
	    onSuccess: function(transport){
	      wpbLoginReply(transport.responseText);
	    }
	  });
   wpbMenuOff();
   wpbShowLogin();
   
   wpbTT(); wpbTrack('logout');
}

/* @home ****************************************************************************************/
function wpbPageHome()
{
	/*wpbMenuSelect('home');
	wpbState('home');
	wpb_wrapper.innerHTML='<center><br><br>Home under (not very heavy but still a) rewrite. Soon, we promise ;).<br><br><br></center>';
	wpbTT(); wpbTrack('home');*/
	wpbPageSites();
}

/* @sites ****************************************************************************************/
function wpbPageSites()
{
	wpbMenuSelect('sites');
	wpbState('sites');
	var temp='';
	temp+='<div class="listheader" id="sites_header">Sites... <span class="shadowinfo">(click one for more info)</span></div>';
	temp+='<div id="sites_list"><center><br><br>Loading sites...<br><br><br></center></div>';
	temp+='<div class="listfooter">Sites: <span id="wpb_max_sites">(loading)</span> of '+wpb_user['max_sites']+' | Space used: <span id="wpb_max_size">(loading)</span> of '+wpb_user['max_size']+' bytes</div>';
	
	temp+='<a id="toggleformaddsite" class="toggleform" href="" style="display:none;" onclick="wpbSitesToggleAddSite(); return false;" title="Toggle new site form">+ Add a site</a>';
	temp+='<div id="divaddsite" style="display:none;" class="toggableform">';
	
	temp+='<div id="addsite_error" class="formerror" style="display:none;">&nbsp;</div>';
	
	temp+='<label for="addsite_name" title="Site name"><span class="text">Name</span><input class="field" name="addsite_name" id="addsite_name"></label>';
	temp+='<label for="addsite_url" title="Site url. Example: http://www.my.blog.com/"><span class="text">Url</span><input class="field" name="addsite_url" id="addsite_url"></label>';
	temp+='<label for="addsite_key" title="Install the plugin in your blog and you`ll find it on the Option page in your blog."><span class="text">Key</span><input class="field" name="addsite_key" id="addsite_key"></label>';
	temp+='<span class="spacer">&nbsp;&nbsp;</span>';
	temp+='<a class="fakebutton firstbutton" href="#" onclick="wpbSitesAdd(); return false;" title="Add the site">Add it!</a>';
	
	temp+='<span class="clearall">&nbsp;</span></div><br><br>';
	wpbSitesGetList();
	wpb_wrapper.innerHTML=temp;
	
	wpbTT(); wpbTrack('sites');
}

function wpbSitesToggleAddSite()
{
	var w=$('divaddsite');
	if(w==null) { return ; }
	if(w.style.display=='none') { w.show(); }
	else { w.hide(); }
	wpbTrack('sites-add');
}

function wpbSitesTotalSites(value) {  var w=$('wpb_max_sites'); 	if(w!=null) { w.innerHTML=value; } } 
function wpbSitesTotalSize(value) {  var w=$('wpb_max_size'); 	if(w!=null) { w.innerHTML=value; } }

function wpbSitesGetList()
{
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'sitelist' }, 
	    onSuccess: function(transport){
	      wpbSitesGetListReply(transport.responseText);
	    }
	  });
}

function wpbSitesGetListReply(reply)
{
	var wl=$('sites_list');
	var data=reply.evalJSON();
	if(data['result']==null || data['result']!='ok') { wl.innerHTML='Error!. <a href="" onclick="wpbPageSites();">Try again?</a>'; return ; }
	var total=data['total'];
	if(total<=0) 
	{ 
		wl.innerHTML='<div title="No sites added yet. Click on the option below."><br><center>No sites..<br>Use the form to add some..</center><br></div>';
		wpbSitesTotalSites(0);
		wpbSitesTotalSize(0);
	} else {
		wpbSitesTotalSites(total);
		var tsize=0;
		var i;
		temp='';
		for(i=0;i<total;i++)
		{
			temp+='<div class="asite" id="site_'+data[i]['id']+'">';
			temp+='<a class="title" href="" onclick="wpbSitesToggleInfo('+data[i]['id']+'); return false;" title="Click for details">'+(i+1)+'. '+data[i]['name']+'</a>';
			temp+='<div class="asiteinfo" style="display:none;" id="site_info_'+data[i]['id']+'">';

			temp+='<div id="asite_error'+data[i]['id']+'" class="formerror" style="display:none;">&nbsp;</div>';

			temp+='<label title="Start / pause the backups" for=""><span class="text">Status</span><div class="field" title="Start / pause the backups"><a id="site_status_'+data[i]['id']+'" href="" onclick="wpbSitesTogglePause('+data[i]['id']+'); return false;">';
			if(data[i]['paused_status']=='y') {
				temp+='Paused';
			} else {
				temp+='Running';
			}
			temp+=' <span style="font-size:9px; color:grey; text-decoration:none;">(click to change)</span></a></div>';
			temp+='<label for="site_info_name_'+data[i]['id']+'"><span class="text">Name</span><input class="field" name="site_info_name'+data[i]['id']+'" id="site_info_name'+data[i]['id']+'" value="'+data[i]['name']+'"></label>';
			temp+='<label for="site_info_url'+data[i]['id']+'"><span class="text">Url</span><input class="field" name="site_info_url'+data[i]['id']+'" id="site_info_url'+data[i]['id']+'" value="'+data[i]['url']+'"></label>';
			temp+='<label for="site_info_key'+data[i]['id']+'"><span class="text">Key</span><input class="field" name="site_info_key'+data[i]['id']+'" id="site_info_key'+data[i]['id']+'" value="'+data[i]['wordpress_key']+'"></label>';
			temp+='<label title="If you choose RootFile you need to read on<br> the plugin SelfTest page how to make it work" for="site_api_name_'+data[i]['id']+'"><span class="text">API Type</span>';
			
			
			temp+='<select class="field" name="site_api_type_'+data[i]['id']+'" id="site_api_type_'+data[i]['id']+'">';
			var apilist=new Array()
			apilist[0]=new Array();
			apilist[0]['value']='wpplugin';
			apilist[0]['name']='Plugin';
			apilist[1]=new Array();
			apilist[1]['value']='rootfile';
			apilist[1]['name']='Root File (requires at least version 0.5 of the plugin)';
			var j;
			for(j=0;j<apilist.length;j++)
			{
				temp+='<option value="'+apilist[j]['value']+'"';
				if(data[i]['apitype']==apilist[j]['value'])
				{
					temp+=' SELECTED ';
				}
				temp+='>'+apilist[j]['name']+'</option>';
			}			
			temp+='</select></label>';
			
			temp+='<span class="clearall">&nbsp;</span>';
			
			temp+='<span class="spacer">&nbsp;&nbsp;</span>';
			temp+='<a class="fakebutton firstbutton" href="#" onclick="wpbSitesSave('+data[i]['id']+'); return false;">Save changes!</a>';
			
			if(wpb_user['can_runjob']=='y')
			{
				temp+='<a class="fakebutton" href="" onclick="wpbSitesRunJob('+data[i]['id']+'); return false;">Run backup!</a>';
			}
			
			temp+='<a class="fakebutton" href="" onclick="wpbSitesRunTest('+data[i]['id']+'); return false;">Test settings (please save first).</a>';
			
			temp+='<a class="fakebutton elsebutton warnbutton" href="#" onclick="wpbSitesRemove('+data[i]['id']+'); return false;">Erase!</a>';
								
			temp+='</div>';
			temp+='</div>';
			tsize+=parseInt(data[i]['lastsize']);
		}
		wl.innerHTML=temp;
		wpbSitesTotalSize(tsize);
	}
	
	//alert(total);
	if(total<wpb_user['max_sites'])
	{
		$('toggleformaddsite').show();
	} else {
		$('toggleformaddsite').hide();
		$('divaddsite').hide();
	}
	wpbTrack('sites');
	wpbTT();
}

function wpbSitesRunJob(id)
{
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'runjob', 'id':id }, 
	    onSuccess: function(transport){
	      wpbSitesRunJobReply(transport.responseText);
	    }
	  });
	wpbTrack('sites-runjob');
	return false;
}

function wpbSitesRunTest(id)
{
	wpbSitesSaveError(id,'Testing.. (please don`t click again, it might take a little while)');
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'runtest', 'id':id }, 
	    onSuccess: function(transport){
	      wpbSitesRunJobReply(transport.responseText);
	    }
	  });
	wpbTrack('sites-runtest');
	return false;
}

function wpbSitesRunJobReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		wpbSitesSaveError(data['id'],data['reason']);
	}
}

function wpbSitesTogglePause(id)
{
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'sitetogglepause', 'id':id }, 
	    onSuccess: function(transport){
	      wpbSitesTogglePauseReply(transport.responseText);
	    }
	  });
	return false;
}
function wpbSitesTogglePauseReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			txt=$('site_status_'+data['id']);
			if(txt==null) { alert('?'); return ; }	
			if(data['paused_status']=='y')
			{
				txt.innerHTML='Paused';
			} else {
				txt.innerHTML='Running';
			}
		} else {
			wpbSitesSaveError(data['id'],data['reason']);
		}
	}
}

function wpbSitesToggleInfo(id)
{
	var ti=$('site_info_'+id);
	if(ti==null) { return ; }
	if(ti.style.display=='none') { ti.show(); }
	else { ti.hide(); }
}

function wpbSitesAddError(text)
{
	var we=$('addsite_error');
	if(text==null) { we.hide(); return ; }
	we.innerHTML=text;
	we.show();
}

function wpbSitesAdd()
{
	var params=new Array();
	var name=$('addsite_name').value;
	var url=$('addsite_url').value;
	var key=$('addsite_key').value;
	if(name==null || url==null || key==null || name.length<3 || url.length<3 || key.length<3)
	{
		wpbSitesAddError('All fields must have at least 3 characters');
		return ;
	}
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'addsite', 'name':name, 'url':url, 'key':key }, 
	    onSuccess: function(transport){
	      wpbSitesAddReply(transport.responseText);
	    }
	  });
	wpbSitesAddError('Adding site.. please wait!');
	wpbTrack('sites-adding');
}

function wpbSitesAddReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			wpbSitesGetList();
			wpbSitesAddError('Done! Add another?');
		} 
		if(data['result']=='error') {
			wpbSitesAddError(data['reason']);
		}
	}
}

function wpbSitesSaveError(id,text)
{
	var we=$('asite_error'+id);
	if(text==null) { we.hide(); return ; }
	we.innerHTML=text;
	we.show();
}
function wpbSitesSave(id)
{
	var params=new Array();
	var name=$('site_info_name'+id).value;
	var url=$('site_info_url'+id).value;
	var key=$('site_info_key'+id).value;
	var apitype=$('site_api_type_'+id).value;
	if(name==null || url==null || key==null || name.length<3 || url.length<3 || key.length<3)
	{
		wpbSitesSaveError(id,'All fields must have at least 3 characters');
		return ;
	}
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'savesite', 'id':id, 'name':name, 'url':url, 'key':key, 'apitype':apitype }, 
	    onSuccess: function(transport){
	      wpbSitesSaveReply(transport.responseText);
	    }
	  });
	wpbSitesSaveError(id,'Saving site.. please wait!');
	wpbTrack('sites-save');
}
function wpbSitesSaveReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			///alert(data['id']);
			wpbSitesSaveError(data['id'], 'Site saved!');
		} 
		if(data['result']=='error') {
			wpbSitesSaveError(data['id'],data['reason']);
		}
	}
}

function wpbSitesRemove(id)
{
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'removesite', 'id':id }, 
	    onSuccess: function(transport){
	      wpbSitesRemoveReply(transport.responseText);
	    }
	  });
	wpbSitesSaveError(id,'Removing site.. please wait!');
}

function wpbSitesRemoveReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			wpbSitesGetList();
		} 
		if(data['result']=='error') {
			wpbSitesSaveError(id,data['reason']);
		}
	}
}

/* @restore ****************************************************************************************/
function wpbPageRestore()
{
	wpbMenuSelect('restore');
	wpbState('restore');
	wpb_wrapper.innerHTML='<center><br><br>Loading backup lists...<br><br><br></center>';
	wpbPageRestoreInfo();
	
}

function wpbPageRestoreInfo()
{
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'restoreinfo' }, 
	    onSuccess: function(transport){
	      wpbPageRestoreInfoReply(transport.responseText);
	    }
	  });
}

function wpbPageRestoreInfoReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			var temp='';
			temp+='<div><center id="sites">Site to restore: <select id="sitelist" onchange="wpbPageRestoreSelSite();">';
			temp+='<option value="">-</option>';
			var i;
			for(i=0;i<data['total'];i++)
			{
				temp+='<option value="'+data[i]['siteid']+'">'+data[i]['name']+'</option>';
			}
			temp+='</select></center></div>';
			temp+='<div id="backuplists"><center>(select a site from above to see a lists of backups)</center></div><br><br><iframe name="fakepage" id="fakepage" style="border:0px; margin:0px; padding:0px; background-color:white; padding-top:3px; padding-left;3px; overflow:hidden; width:1px; height:1px;" ></iframe>';
			wpb_wrapper.innerHTML=temp;
			if(data['total']>0) { wpbPageRestoreSelSite(); }
		} 
		if(data['result']=='error') {
			wpb_wrapper.innerHTML=data['reason'];
		}
	}
	wpbTrack('restore');
}

function wpbPageRestoreSelSite() {
	if($('sitelist').value=='') { return ; }
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'restorelist', 'siteid':$('sitelist').value }, 
	    onSuccess: function(transport){
	      wpbPageRestoreSelSiteReply(transport.responseText);
	    }
	  });
}

function wpbPageRestoreSelSiteReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			var temp='<center><br><table>';
			temp+='<tr><th>Start Time</th><th>Size</th><th>Duration</th><th>(un)Lock</th><th>Options</th></tr>';
			for(i=0;i<data['total'];i++)
			{
				temp+='<tr>';
				temp+='<td style="text-align:right; padding-right:2px;">'+data[i]['starttime']+'</td>';
				temp+='<td style="text-align:right; padding-right:2px;">'+data[i]['size']+'</td>';
				temp+='<td style="text-align:right; padding-right:2px;">'+data[i]['duration']+'</td>';
				temp+='<td><div>';
				if(data[i]['locked']=='y')
				{
					temp+='<a id="lockstatus_'+data[i]['id']+'" href="#" onclick="wpbPageRestoreUnLock('+data[i]['id']+'); return false;">locked</a>';
				} else {
					temp+='<a id="lockstatus_'+data[i]['id']+'" href="#" onclick="wpbPageRestoreUnLock('+data[i]['id']+'); return false;"><span style="color:grey;">unlocked</span></a>';
				}
				temp+='</div></td>';
				temp+='<td> <a target="fakepage" href="'+wpb_url+'?do=download&id='+data[i]['id']+'">download</a> &nbsp; </td>';
				temp+='</tr>';
			}
			temp+'</table></center>';
			$('backuplists').innerHTML=temp;
		} 
		if(data['result']=='error') {
			$('backuplists').innerHTML=data['reason'];
		}
	}
	wpbTrack('restore-list');
}

function wpbPageRestoreUnLock(id)
{
	var psy;
	psy=$('lockstatus_'+id);
	if(psy==null) {  return ; }
	if(psy.innerHTML=='locked')
	{
		new Ajax.Request(wpb_url,
		  {
		    method:'get',
		    parameters: { 'do': 'restoreunlock', 'id':id }, 
		    onSuccess: function(transport){
		      wpbPageRestoreUnLockReply(transport.responseText);
		    }
		  });
	} else {
		new Ajax.Request(wpb_url,
		  {
		    method:'get',
		    parameters: { 'do': 'restorelock', 'id':id }, 
		    onSuccess: function(transport){
		      wpbPageRestoreUnLockReply(transport.responseText);
		    }
		  });
	}
	return false;
}

function wpbPageRestoreUnLockReply(reply)
{
	var data=reply.evalJSON();
	
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			var psy;
			psy=$('lockstatus_'+data['id']);
			if(psy==null) {  return ; }
			
			if(data['lock']=='y')
			{
				psy.innerHTML='locked';
				return ;
			} else {
				psy.innerHTML='<span style="color:grey;">unlocked</span>';
				return ;
			}
		} else {
			alert('data not ok');
		}
	} else {
		alert('no json?');
	}
}

/* @account ****************************************************************************************/
function wpbPageAccount()
{
	wpbMenuSelect('account');
	wpbState('account');
	wpb_wrapper.innerHTML='<center><br><br>Loading account info...<br><br><br></center>';
	wpbPageAccountInfo();
}

function wpbPageAccountInfo()
{
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'accountinfo' }, 
	    onSuccess: function(transport){
	      wpbPageAccountInfoReply(transport.responseText);
	    }
	  });
}

function wpbPageAccountInfoReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			var temp='<h2>Your account information</h2><br>';
			temp=temp+'<div><b>User:</b> '+data['username']+'</div>';
			temp=temp+'<div><b>E-mail:</b> '+data['email']+'</div>';
			temp=temp+'<div><b>Maximum sites to back up:</b> '+data['max_sites']+'</div>';
			temp=temp+'<div><b>Maximum storage size per site:</b> '+data['max_size']+'</div>';
			temp=temp+'<div><b>Can run job on demand:</b> ';
				if(data['can_runjob']=='y') { temp+=' yes '; } else { temp+=' no '; }
				temp+='</div>';
			
	temp+='<br>';			
	temp+='<a id="toggleformpass" class="toggleform" href="" onclick="wpbPageAccountTogglePass(); return false;">? Change password</a>';
	temp+='<div id="divaddsite" style="display:none;" class="toggableform">';
	
	temp+='<div id="addsite_error" class="formerror" style="display:none;">&nbsp;</div>';
	
	temp+='<label for="acchpass_old"><span class="text">Old password:</span><input type="password" class="field" name="acchpass_old" id="acchpass_old"></label>';
	temp+='<label for="acchpass_new1"><span class="text">New password:</span><input type="password" class="field" name="acchpass_new1" id="acchpass_new1"></label>';
	temp+='<label for="acchpass_new2"><span class="text">New again:</span><input type="password" class="field" name="acchpass_new2" id="acchpass_new2"></label>';
	temp+='<span class="spacer">&nbsp;&nbsp;</span>';
	temp+='<a class="fakebutton firstbutton" href="#" onclick="wpbPagesAccountChPass(); return false;">Change it!</a>';
	
	temp+='<span class="clearall">&nbsp;</span></div><br><br>';
				
			wpb_wrapper.innerHTML=temp;
		} 
		if(data['result']=='error') {
			wpb_wrapper.innerHTML=data['reason'];
		}
	}
}

function wpbPageAccountTogglePass()
{
	var w=$('divaddsite');
	if(w==null) { return ; }
	if(w.style.display=='none') { w.show(); }
	else { w.hide(); }
}

function wpbPagesAccountChPass()
{
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'chpass', 'old':$('acchpass_old').value, 'new1':$('acchpass_new1').value, 'new2':$('acchpass_new2').value }, 
	    onSuccess: function(transport){
	      wpbPagesAccountChPassReply(transport.responseText);
	    }
	  });
}

function wpbPagesAccountChPassReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			wpbSitesAddError('Done! Don`t forget it ;) We sometimes do...');
		} 
		if(data['result']=='error') {
			wpbSitesAddError(data['reason']);
		}
	}
}


/* @log ****************************************************************************************/
function wpbPageLog()
{
	wpbMenuSelect('log');
	wpbState('log');
	wpb_wrapper.innerHTML='<center><div id="pages" name="pages">page: (loading, please wait)</div></center>'+'<br>'+'<div id="page">&nbsp;</div><br><br>';
	wpbPageLogPages();
}

function wpbPageLogPages()
{
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'logpages' }, 
	    onSuccess: function(transport){
	      wpbPageLogPagesReply(transport.responseText);
	    }
	  });
}

function  wpbPageLogPagesReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			var temp='Page: ';
			temp+='<select id="pageselect" onchange="wpbPageLogShow();">';
			var i;
			for(i=data['min'];i<data['max'];i++)
			{
				temp+='<option value="'+i+'">'+(i+1)+'</option>';
			}
			temp+='</select>';
			$('pages').innerHTML=temp;
			wpbPageLogShow();
		} 
		if(data['result']=='error') {
			$('pages').innerHTML=data['reason'];
		}
	}
}

function wpbPageLogShow()
{
	var pagenr=$('pageselect').value;
	new Ajax.Request(wpb_url,
	  {
	    method:'get',
	    parameters: { 'do': 'logpage', 'nr':pagenr }, 
	    onSuccess: function(transport){
	      wpbPageLogShowReply(transport.responseText);
	    }
	  });
}

function  wpbPageLogShowReply(reply)
{
	var data=reply.evalJSON();
	if(data['result']!=null)
	{
		if(data['result']=='ok')
		{
			var temp='';
			var total;
			total=data['total'];
			var i;
			for(i=0;i<total;i++)
			{
				temp+='<div class="logelement">';
				temp+='Site '+data[i]['name']+' at '+data[i]['starttime']+' took '+data[i]['duration']+' seconds and the backup is '+data[i]['size']+' bytes.';
				if(data[i]['error'].length>0)
				{
					temp+='<div style="color:grey; padding-left:10px; padding-right:10px;">'+data[i]['error']+'</temp>';
				}
				temp+='</div>';
			}
			$('page').innerHTML=temp;
		} 
		if(data['result']=='error') {
			$('page').innerHTML=data['reason'];
		}
	}
}

/**********************************************************************************************/

/** the_end **/
wpbStart();