function size(inc)
{
	var size=parseFloat(document.getElementById('fontsize').value)+inc;
	document.getElementById('fontsize').value=size;
	document.getElementById('code').style.fontSize=size+'em';
	document.getElementById('highlighted').style.fontSize=size+'em';
}
function loadprofile()
{
	document.getElementById('code').value=getCookie('themecode');
	document.getElementById('code').style.fontSize=getCookie('themesize');
	document.getElementById('highlighted').style.fontSize=getCookie('themesize');
	document.getElementById('fontsize').value=getCookie('themesize');
	document.getElementById('base').value=getCookie('themebase');
	$('#loadsave').hide('slow',function(){
		$('#load2').show('slow',function(){
			setTimeout('$(\'#load2\').hide(\'slow\',function(){\
				$(\'#loadsave\').show(\'slow\');\
			});',2500);
		});
	});
}
var issaving=false;
function saveprofile(mode,anim)
{
	if(!issaving)
	{
		var http=xmlhttp();
		issaving=true;
		if(mode)
		{
			var dir='save';
		}
		else
		{
			var dir='load';
		}
		http.onreadystatechange=function(){
			if(http.readyState==4)
			{
				if(http.responseText.substr(0,7).toLowerCase()=='error :')
				{
					alert(http.responseText);
				}
				if(dir=='load')
				{
					var response=http.responseText;
					document.getElementById('base').value=response.substr(0,response.indexOf(','));
					updatestuff(document.getElementById('base').value);
					response=response.substr(response.indexOf(',')+1);
					var size=response.substr(0,response.indexOf(','));
					document.getElementById('fontsize').value=size;
					size+='em';
					document.getElementById('highlighted').style.fontSize=size;
					document.getElementById('code').style.fontSize=size;
					response=response.substr(response.indexOf(',')+1);
					document.getElementById('code').value=response;
					if(document.getElementById('highlighted').style.display!='none')
					{
						highlightcode(false);
					}
				}
				donesaving(anim,dir);
			}
		};
		if(mode)
		{
			var params='code='+document.getElementById('base').value+','+document.getElementById('fontsize').value+','+escape(document.getElementById('code').value);
			http.open('post','/try/save/',true);
			if(http.overrideMimeType)
			{
				http.overrideMimeType('text/html');
			}
			http.setRequestHeader('Content-type','application/x-www-form-urlencoded');
			http.setRequestHeader('Content-length',params.length);
			http.setRequestHeader('Connection','close');
			http.send(params);
		}
		else
		{
			http.open('get','/try/load/'); 
			http.send(null);
		}
		if(anim)
		{
			// Lol, so much wasted time...
			$('#loadsave').hide('slow',function(){
				$('#saving').show('slow',function(){
					setTimeout('issaving=false;',250);
				});
			});
		}
		else
		{
			document.getElementById('quicksave').style.display='none';
			document.getElementById('quicksaving').style.display='block';
			issaving=false;
		}
	}
}
function donesaving(anim,dir)
{
	if(issaving)
	{
		setTimeout('donesaving('+anim.toString()+',\''+dir+'\');',100);
	}
	else
	{
		if(anim)
		{
			$('#saving').hide('slow',function(){
				$('#'+dir+'2').show('slow',function(){
					setTimeout('$(\'#'+dir+'2\').hide(\'slow\',function(){\
						$(\'#loadsave\').show(\'slow\');\
					});',1000);
				});
			});
		}
		else
		{
			document.getElementById('quicksaving').style.display='none';
			document.getElementById('quicksaved').style.display='block';
			setTimeout('document.getElementById(\'quicksaved\').style.display=\'none\';document.getElementById(\'quicksave\').style.display=\'block\';',1000);
		}
	}
}
var previewing=true;
var sec=30;
function quicksaveprofile()
{
	if(document.getElementById('autosave').checked)
	{
		sec--;
		document.getElementById('autosavelabel').innerHTML='Autosave [<strong>'+sec+'</strong>]';
		if(!sec)
		{
			saveprofile(true,false);
			sec=30;
		}
	}
	else
	{
		sec=30;
		document.getElementById('autosavelabel').innerHTML='Autosave';
	}
}
function preview()
{
	if((parseInt(loadedbase)!=parseInt(document.getElementById('base').value) && parseInt(loadedid)!=parseInt(document.getElementById('gaiaid').value)) || !top.mainFrame.document.getElementById('gaiatoolscss'))
	{
		$('#preview').hide('slow',function(){
			$('#preview2').show('slow',function(){
				timer(10);
			});
		});
		return true;
	}
	else
	{
		top.mainFrame.document.getElementById('gaiatoolscss').innerHTML=document.getElementById('code').value;
		$('#preview').hide('slow',function(){
			$('#previewquick').show('slow',function(){
				$('#previewquick').hide('slow',function(){
					$('#preview').show('slow',function(){
					});
				});
			});
		});
		return false;	// Prevent the form from being submitted.
	}
}
function timer(step)
{
	step--;
	document.getElementById('previewtimeout').innerHTML=step;
	if(step)
	{
		if(step==1)
		{
			document.getElementById('previewtimeoutplural').innerHTML='';	// Perfectionnism ?
		}
		else
		{
			document.getElementById('previewtimeoutplural').innerHTML='s';
		}
		setTimeout('timer('+step+');',1000);
	}
	else
	{
		$('#preview2').hide('slow',function(){
			updatestuff(document.getElementById('base').value);
		});
	}
}
var isshrinking=false;
function updatestuff(val)
{
	if(parseInt(val)==5)
	{
		if(document.getElementById('gaiaid').value=='')
		{
			if(!isshrinking)
			{
				isshrinking=true;
				$('#overrideok').hide('slow');
				$('#needgaia').show('slow');
				if(document.getElementById('preview').style.display!='none' && document.getElementById('preview').style.display=='none')
				{
					$('#preview').hide('slow',function(){
						$('#needgaia').show('slow',function(){
							isshrinking=false;
						});
					});
				}
				else
				{
					if(document.getElementById('preview').style.display!='none' && document.getElementById('preview').style.display!='none')
					{
						$('#preview').hide('slow',function(){
							isshrinking=false;
						});
					}
					else
					{
						if(document.getElementById('preview').style.display=='none' && document.getElementById('preview').style.display!='none')
						{
							$('#needgaia').show('slow',function(){
								isshrinking=false;
							});
						}
						else
						{
							isshrinking=false;
						}
					}
				}
			}
		}
		else
		{
			if(document.getElementById('needgaia').style.display!='none')
			{
				$('#needgaia').hide('slow',function(){
					$('#preview').show('slow');
				});
			}
			else
			{
				$('#preview').show('slow');
			}
		}
		$('#override').show('slow',function(){
			document.getElementById('name').select();
		});
	}
	else
	{
		$('#override').hide('slow');
		if(document.getElementById('preview2').style.display=='none')
		{
			if(document.getElementById('needgaia').style.display!='none')
			{
				$('#needgaia').hide('slow',function(){
					$('#preview').show('slow');
				});
			}
			else
			{
				$('#preview').show('slow');
			}
		}
	}
}
function validategaia()
{
	var http=xmlhttp();
	isdone=false;
	http.onreadystatechange=function(){
		if(http.readyState==4)
		{
			donevalidate(parseInt(http.responseText));
		}
	};
	http.open('get','/try/validate/?name='+escape(document.getElementById('name').value));
	http.send(null);
	isanimating=true;
	$('#overrideok').hide('slow');
	$('#overridewrong').hide('slow');
	$('#override').hide('slow',function(){
		$('#overridewait').show('slow',function(){
			setTimeout('isanimating=false;',700);
		});
	});
}
var isgettingcss=false;
function getcsscode()
{
	var name=prompt('Please enter a Gaia username.\n\nNote : This feature shall not be used as a way to steal someone\'s CSS. You will be reported if you are found using someone\'s CSS code that you should not use.',document.getElementById('name').value);
	if(name!=null)
	{
		var http=xmlhttp();
		isgettingcss=true;
		http.onreadystatechange=function(){
			if(http.readyState==4)
			{
				donegettingcss(http.responseText);
			}
		};
		http.open('get','/try/getcss/?name='+escape(name));
		http.send(null);
		$('#getcss').hide('slow',function(){
			$('#getcss2').show('slow',function(){
				setTimeout('isgettingcss=false;',700);
			});
		});
	}
}
function donegettingcss(css)
{
	if(isgettingcss)
	{
		setTimeout('donegettingcss(\''+css.replace(/\\/g,'\\\\').replace(/'/g,'\\\'').replace(/\r\n|[\r\n]/g,'\\n')+'\');',100);
	}
	else
	{
		if(css.substr(0,7)=='ERROR :')
		{
			alert(css);
		}
		else
		{
			document.getElementById('base').value=css.substr(0,1);
			updatestuff(document.getElementById('base').value);
			document.getElementById('code').value=css.substr(1);
			document.getElementById('code').focus();
		}
		$('#getcss2').hide('slow',function(){
			$('#getcss').show('slow');
		});
	}
}
var isanimating=false;
function donevalidate(response)
{
	if(isanimating)
	{
		setTimeout('donevalidate('+parseInt(response)+');',100);
	}
	else
	{
		$('#overridewait').hide('slow',function(){
			$('#override').show('slow');
		});
		if(response)
		{
			$('#needgaia').hide('slow');
			$('#overrideok').show('slow',function(){
				if(document.getElementById('preview2').style.display=='none')
				{
					$('#preview').show('slow');
				}
			});
			document.getElementById('gaiaid').value=response;
		}
		else
		{
			$('#overridewrong').show('slow');
			document.getElementById('gaiaid').value='';
			updatestuff(document.getElementById('base').value);
		}
	}
}
function editcode()
{
	$('#edit').hide('slow',function(){
		$('#highlight').show('slow');
	});
	$('#highlighted').hide('slow',function(){
		$('#code').show('slow',function(){
			document.getElementById('highlighted').style.marginTop='0px';
			document.getElementById('code').style.width='100%';
			document.getElementById('code').focus();
		});
	});
}
function loaded(base,id)
{
	loadedbase=base;
	laodedid=id;
}
var loadedbase=0;
var loadedid=0;
// From http://simon.incutio.com/js/syntaxHighlight.js
// Modified by WindPower
function highlightcode(anim)
{
	var content=document.getElementById('code').value;
	if(anim)
	{
		$('#highlight').hide('slow',function(){
			$('#edit').show('slow');
		});
		$('#code').hide('slow',function(){
			$('#highlighted').show('slow',function(){
				if(navigator.appName.toLowerCase().indexOf('netscape')==-1)
				{
					var height=(document.getElementById('code').rows*12)+'px';
					document.getElementById('highlighted').style.height=height;
					document.getElementById('highlighted').style.minHeight=height;
					document.getElementById('highlighted').style.maxHeight=height;
				}
				else
				{
					document.getElementById('highlighted').style.marginTop='-10px';
				}
			});
		});
	}
	ruleRE=new RegExp('([^\\{]+)\\{([^\\}]+)\\}','g');
	idselectorRE=new RegExp('(#[a-zA-Z0-9]+)\\b','g');
	classselectorRE=new RegExp('(\\.[a-zA-Z0-9]+)\\b','g');
	pairRE=new RegExp('([a-zA-Z-]+):([^;]+);','g');
	content=content.replace(ruleRE,function(text,selector,body){
		selector=selector.replace(idselectorRE,'<span class="idselector">$1</span>');
		selector=selector.replace(classselectorRE,'<span class="classselector">$1</span>');
		body=body.replace(pairRE,'<span class="property">$1</span>:<span class="value">$2</span>;');
		return selector+'{'+body+'}';
	});
	document.getElementById('highlighted').innerHTML=content.replace(/\r\n|[\r\n]/ig,'<br/>').replace(/\t/ig,'&nbsp; &nbsp; &nbsp; ');
}
// From http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
// Modified by WindPower
function getsize()
{
	var myWidth=0,myHeight=0;
	if(typeof(window.innerWidth)=='number')
	{
		//Non-IE
		myWidth=window.innerWidth;
		myHeight=window.innerHeight;
	}
	else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))
	{
		//IE 6+ in 'standards compliant mode'
		myWidth=document.documentElement.clientWidth;
		myHeight=document.documentElement.clientHeight;
	}
	else if(document.body && (document.body.clientWidth || document.body.clientHeight))
	{
		//IE 4 compatible
		myWidth=document.body.clientWidth;
		myHeight=document.body.clientHeight;
	}
	return Array(myWidth,myHeight);
}