loadedObjects = '';

try {
  document.execCommand("BackgroundImageCache", false, true);
}
catch(ex) { }

var savePage = null;
var saveParams = null;

var loadPage = function(page, params)
{
	var post = [];
	var el;
	
	// load page JS file
	if(loadedObjects.indexOf(page + '.js|') < 0) {
		el = document.createElement('script');
		el.setAttribute('type', 'text/javascript');
		el.setAttribute('src', root_path + '/pages/' + page + '/' + page + '.js');
		
		document.getElementsByTagName('head')[0].appendChild(el);
		loadedObjects += page + '.js|'
	}
	
	// load page CSS file
	if(loadedObjects.indexOf(page + '.css|') < 0) {
		el = document.createElement('link');
		el.setAttribute('rel', 'stylesheet');
		el.setAttribute('type', 'text/css');
		el.setAttribute('href', root_path + '/pages/' + page + '/' + page + '.css');
		
		document.getElementsByTagName('head')[0].appendChild(el);
		loadedObjects += page + '.css|';
	}
	
	// load page HTML file
	post.push('page=' + page);
	
	for(var param in params) {
		post.push(param + '=' + params[param]);
	}
	
	var to_do = function(responseHTML, params)
	{
		var main = document.getElementById('main');
		
		//Effect.Puff(main, {to: 0.25});
		
		main.innerHTML = responseHTML;
		
		correctPNG();

		if(params.page) {
			dispatchEvent(new MyEvent('onPageLoad_' + params.page));
		}
		
		//Effect[Effect.PAIRS['appear'][0]](main);
	}
	
	requestURL(root_path + '/index.php?ajax=load_page', 'POST', post.join('&'), to_do, {textCallBack: true, callBackParams: {page: page}});
	
	savePage = page;
	saveParams = params;
	
	return false;
}

var reloadPage = function()
{
	loadPage(savePage, saveParams);
}

function check_form(form_object)
{
	var errors = false;
	var form_button = null;
	var form_elements = new Array();
	var invalid = null;
	
	form_elements = form_object.elements;
	
	try {
		for(var i = 0; i < form_elements.length; i++) {
			if(form_elements[i].className.indexOf('error') >= 0) {
				form_elements[i].className = form_elements[i].className.replace(/error/g, '');
				
				if(form_elements[i].type == 'checkbox') {
					form_elements[i].parentNode.className = form_elements[i].parentNode.className.replace(/error/g, '');
				}
			}
			
			invalid = form_elements[i].getAttribute('invalid');
			
			if(!invalid) continue;
			
			if(invalid.indexOf('empty') >= 0) {
				if(form_elements[i].value == '') {
					form_elements[i].className += ' error';
					
					if(!errors) {
						form_elements[i].focus();
					}
					
					errors = true;
					continue;
				}
			}
			
			if(invalid.indexOf('format') >= 0) {
				if(form_elements[i].name == 'email' && form_elements[i].value.search(/^[^@]+@[^@\s]+\.[a-z]{2,4}\s*$/i) == -1) {
					form_elements[i].className += ' error';
					
					if(!errors) {
						form_elements[i].focus();
					}
					
					errors = true;
					continue;
				}
			}
			
			if(invalid.indexOf('non-digits') >= 0) {
				if(form_elements[i].value.search(/[^0-9]/i) >= 0) {
					form_elements[i].className += ' error';
					
					if(!errors) {
						form_elements[i].focus();
					}
					
					errors = true;
					continue;
				}
			}
			
			if(invalid.indexOf('unchecked') >= 0) {
				if(!form_elements[i].checked) {
					form_elements[i].className += ' error';
					form_elements[i].parentNode.className += ' error';
					
					if(!errors) {
						form_elements[i].focus();
					}
					
					errors = true;
					continue;
				}
			}
		}
	}
	catch(ex) {
		errors = true;
	}
	
	if(errors) {
		//document.getElementById('error_message').style.display = '';
		return false;
	}
	else {
		//document.getElementById('error_message').style.display = 'none';
		return true;
	}
}

var explode = function(el)
{
	if(!el) return false;
	
	try {
		//Effect.BlindDown(document.getElementById(el.id + '_container'), {scaleContent: true, duration: 0.2});
		document.getElementById(el.id + '_container').style.display = '';
	}
	catch(ex) { }
}

var implode = function(el)
{
	if(!el) return false;
	
	try {
		//Effect.BlindUp(document.getElementById(el.id + '_container'), {scaleContent: true, duration: 0.2});
		document.getElementById(el.id + '_container').style.display = 'none';
	}
	catch(ex) { }
}

var run = function(s)
{
	eval(s);
}

var currentFrame = 0;

var overviewFrame = function(idx, buttonEl)
{
	if(idx < currentFrame && currentFrame != 2) {
		overviewFrame(currentFrame, buttonEl);
		return;
	}
	
	try {
		if(idx == 4) {
			buttonEl.onclick = function() { loadPage('quote'); };
		}
		else if(idx == 2 && buttonEl.id != 'evaluation_slot2_btn_next') {
			buttonEl.onclick = function() {
				addListener('onPageLoad_evaluation', onPageLoad_evaluationNextHandler);
				loadPage('evaluation'); 
			};
		}
		else {
			buttonEl.onclick = function() { overviewFrame((idx + 1), this); };
		}
		
		document.getElementById('overview_frame' + idx).style.display = 'block';
		
		try {
			for(var i = 1; i <= 4; i++) {
				if(i == idx) {
					currentFrame = idx;
					continue;
				}
				
				document.getElementById('overview_frame' + i).style.display = 'none';
			}
		}
		catch(ex) { }
	}
	catch(ex) { }
}