existing_url_hash = 'undef';

function load_page(file, action, target)
{
	try
	{
		xml_http = new XMLHttpRequest();
	}
	catch(e)
	{
		try
		{
			xml_http = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xml_http = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				alert('Your browser does not support AJAX calls');
			}
		}
	}

	//  the open request must be synchronous because a 2nd request overwrites the 1st request if it has not completed :o(
	xml_http.open ('GET', '/pgs/' + file, false);
	xml_http.send (null);

	switch (xml_http.status)
	{
		case 200:	switch (action)
							{
								case 'replace':	if (document.getElementById(target).type == 'textarea')
																	document.getElementById(target).value = xml_http.responseText;
																else
																	document.getElementById(target).innerHTML = xml_http.responseText;
																break;
								case 'before':	if (document.getElementById(target).type == 'textarea')
																	document.getElementById(target).value = xml_http.responseText + document.getElementById(target).innerHTML;
																else
																	document.getElementById(target).innerHTML = xml_http.responseText + document.getElementById(target).innerHTML;
																break;
								case 'after':	if (document.getElementById(target).type == 'textarea')
																document.getElementById(target).value += xml_http.responseText;
															else
																document.getElementById(target).innerHTML += xml_http.responseText;
															break;
								case 'popup':	document.getElementById(target).innerHTML = '<div id="outermask" class="on"></div><div id="innermask">' + document.getElementById(target).innerHTML + '</div>' + xml_http.responseText;
															break;
								case 'debug':	alert('target innerHTML:\n' + document.getElementById(target).innerHTML);
															alert('responseText:\n' + xml_http.responseText);
															break;
							}
							break;
		case 401:	load_page('show_login.php', 'replace', 'page');
							break;
		default:	document.getElementById(target).innerHTML = 'Unexpected HTTP status code: ' + xml_http.status + '<br />Trying to open: ' + file;
							break;
	}

	return false;
}

function toggle_tab(tab, state)
{
	if (state == 'on')
	{
		document.getElementById('tab_' + tab).className = 'hot';
	}
	else
	{
		document.getElementById('tab_' + tab).className = '';
	}
}

function ping()
{
	try
	{
		ping_request = new XMLHttpRequest();
	}
	catch(e)
	{
		try
		{
			ping_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				ping_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				alert ('Your browser does not support AJAX calls');
			}
		}
	}

	ping_request.onreadystatechange = function()
	{
		if (ping_request.readyState == 4)
		{
			switch (ping_request.status)
			{
				case 200:	ping_timer = setTimeout(ping,1000);
									break;
				case 401:	alert('error in /js/pgs.js - function ping()');
									break;
			}
		}
	}

	ping_request.open ('HEAD','../pgs/ping.php',true);
	ping_request.send (null);
}

function get_value_from_url(param, url)
{
	param = param.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]" + param + "=([^&#]*)";
	var regex = new RegExp(regexS);
	var results = regex.exec(url);

	if (results == null)
	{
		return "";
	}
	else
	{
		return results[1];
	}
}

function get_script_name(url)
{
	var regexS = "createyourframe.com/([^&#\?]*)"
	var regex = new RegExp(regexS);
	var results = regex.exec(url);

	return results[1];
}

function url_hash_check()
{
	if (existing_url_hash != window.location.hash)
	{
		script_name = get_script_name(window.location.href).split('.');
		old_tab = get_value_from_url('tab', existing_url_hash);
		if (old_tab == '')
		{
			old_tab = script_name[0];
		}
		if (old_tab == '')
		{
			old_tab = 'index';
		}
		toggle_tab(old_tab, 'off');

		new_tab = get_value_from_url('tab', window.location.hash);
		if (new_tab == '')
		{
			new_tab = script_name[0];
		}
		if (new_tab == '')
		{
			new_tab = 'index';
		}
		toggle_tab(new_tab, 'on');

		if ((new_tab == 'testimonials') || (new_tab == 'faq'))
		{
			document.getElementById('header_content').className = 'pop_out';
		}
		else
		{
			document.getElementById('header_content').className = '';
		}

		load_page(new_tab + '.php', 'replace', 'header_content')

		existing_url_hash = window.location.hash;
	}
	hash_timer = setTimeout(url_hash_check,100);
}

function promo_code_check(code, target)
{
	try
	{
		xml_http = new XMLHttpRequest();
	}
	catch(e)
	{
		try
		{
			xml_http = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xml_http = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				alert('Your browser does not support AJAX calls');
			}
		}
	}

	//  the open request must be synchronous because a 2nd request overwrites the 1st request if it has not completed :o(
	xml_http.open ('GET', '/pgs/promo_check.php?code=' + code, false);
	xml_http.send (null);

	results = (xml_http.responseText).split(",,");

	switch (xml_http.status)
	{
		case 200:	document.getElementById(target).innerHTML = results[0];
							break;
		case 401:	load_page('show_login.php', 'replace', 'page');
							break;
		default:	document.getElementById(target).innerHTML = 'Unexpected HTTP status code: ' + xml_http.status + '<br />Trying to open: ' + file;
							break;
	}

	return results[1];
}
