
var arrMenu = new Array();
var m_bShadows=false;

//---------------------------------------------------------------------------------------

$(document).ready(function(){

	jQuery.validator.addMethod("phoneext", function(value, element) {

		return this.optional(element) || /^[0-9+ ()'\"\s]+$/i.test(value);

	},"<br>Please enter a valid phone number.");

	$("#header").html("<div style='float:right;padding-top:4px;'><img src='images/titletext.gif' alt=''></div>");
	$("#baseLine").html(baseLine);

	$.history.init( function(hash) {

		var page="";
		var gid=0;
		var owner="";

		if(hash && hash.length)
		{
			var arr=hash.split(";");

			page=arr[0];
			gid=arr[1];
			owner=arr[2];
		}

		DrawContentSubMenu(page,gid,owner);
	});

	if($.browser.msie && ($.browser.version > 7 || document.documentMode > 7)) // IE only
	{
		$(window).resize(function() { RedrawShadows(); });
	}
	else
	{
		$(document).resize(function() {	RedrawShadows(); });
	}

});

//---------------------------------------------------------------------------------------

function RedrawShadows()
{
	if(m_bShadows==false)
	{
		$("#header").dropShadow();
		$("#menu").dropShadow();
		$("#content").dropShadow();
		$("#amazon").dropShadow();
	}
	else
	{
		$("#header").redrawShadow();
		$("#menu").redrawShadow();
		$("#content").redrawShadow();
		$("#amazon").redrawShadow();
	}

	m_bShadows=true;
}

//---------------------------------------------------------------------------------------

function GetHomePage()
{
	var ret="";

	for(var i=0;i<arrMenu.length;i++)
	{
		var prts=arrMenu[i].split(";");

		if(prts[2]==1)
		{
			ret=prts[0]; break;
		}
	}

	return ret;
}

//---------------------------------------------------------------------------------------

function IsHomePage(page)
{
	var ret=0;

	for(var i=0;i<arrMenu.length;i++)
	{
		var prts=arrMenu[i].split(";");

		if(page==prts[0])
		{
			if(prts[2]==1) ret=1;
		}

		break;
	}

	return ret;
}

//---------------------------------------------------------------------------------------

function GetContactPage()
{
	var ret="";

	for(var i=0;i<arrMenu.length;i++)
	{
		var prts=arrMenu[i].split(";");

		if(prts[3]==1)
		{
			ret=prts[0]; break;
		}
	}

	return ret;
}

//---------------------------------------------------------------------------------------

function IsContactPage(page)
{
	var ret=0;

	for(var i=0;i<arrMenu.length;i++)
	{
		var prts=arrMenu[i].split(";");

		if(page==prts[0])
		{
			if(prts[3]==1) ret=1;
			break;
		}
	}

	return ret;
}

//---------------------------------------------------------------------------------------

function GetMenuGid(page)
{
	var ret=0;

	for(var i=0;i<arrMenu.length;i++)
	{
		var prts=arrMenu[i].split(";");

		if(page==prts[0])
		{
			ret=prts[1]; break;
		}
	}

	return ret;
}

//---------------------------------------------------------------------------------------

function GetMenuPageId(page)
{
	var ret=0;

	for(var i=0;i<arrMenu.length;i++)
	{
		var prts=arrMenu[i].split(";");

		if(page==prts[0])
		{
			ret=prts[4]; break;
		}
	}

	return ret;
}

//---------------------------------------------------------------------------------------

function DrawMenuAjax(page)
{
	if(!arrMenu.length)
	{
		$.ajax({

			type: "POST",
			url: "data.php",
			data: "mode=menu",
			dataType: "xml",
			async: false,

			error:function (xhr, ajaxOptions, thrownError){

				$("#menu").html(xhr.status+" - "+thrownError);
			},

			success: function(xml){

				var err=jQuery('error',xml).text();

				if(err && err.length)
				{
					$("#menu").html(err);
				}
				else
				{
					var mn=jQuery('menu',xml).text();

					if(mn && mn.length)
					{
						var arr=mn.split("#");

						for(var i=0;i<arr.length;i++)
						{
							arrMenu[arrMenu.length]=arr[i];
						}

						if(!page.length) page=GetHomePage();

						DrawMenu(page);
					}
				}
			}
		});
	}
	else DrawMenu(page);
}

//---------------------------------------------------------------------------------------

function DrawMenu(page)
{
	var o="";

	for(var i=0;i<arrMenu.length;i++)
	{
		var prts=arrMenu[i].split(";");

		o+=MenuItem(page,prts[0]);
	}

	$("#menu").html(o).show();
}

//---------------------------------------------------------------------------------------

function MenuItem(pageActive,name)
{
	var o="";

	o+="<span id='";
	if(pageActive==name) o+="menuActive";
	else o+="menuItem";
	o+="' onclick='DrawContent(\""+name+"\");'>";
	o+=name;
	o+="</span>";

	return o;
}

//---------------------------------------------------------------------------------------

function PageFooter(name)
{
	var o="";

	o+="<br clear='all'>";

	o+="<div id='pageFooter'>";
	o+="<img src='images/phone.jpg' alt='' align='left'>&nbsp;";
	o+="<span style='font-weight:bold;font-size:1.1em;margin-bottom:12px;'>"+phoneNumber+"</span>";
	o+="<br>&nbsp;<span id='footerLink' onclick='DrawContent(\""+name+"\");'>For advice, appointments or further information please do not hesitate to get in touch.</span>";
	o+="</div>";

	return o;
}

//---------------------------------------------------------------------------------------

function DrawContent(page)
{
	var tmp=page;

	if(tmp==null)
	{
		tmp=GetHomePage();
		DrawContentSubMenu(tmp,0,"")
	}
	else $.history.load(tmp+";0;");
}

//---------------------------------------------------------------------------------------

function DrawContentSubMenu(page,gid,owner)
{
	DrawMenuAjax(page);

	if(!page.length) page=GetHomePage();

	$("#content").html(ContentLoad(page));

	AjaxPage(page,gid,owner);
}

//---------------------------------------------------------------------------------------

function ContentLoad(page)
{
	var o="";

	o+="<div id='pageInfoPane'></div>";

	o+="<div id='pageContent'>";

		if(!IsHomePage(page))
		{
			o+="<div id='pageTitle'>"+page+"</div>";
			o+="<br>";
		}

		o+="<div id='loadContent'>";
		o+="<img src='images/submitloader.gif' alt=''>&nbsp;<span style='font-size:13px;'>Loading...</span>";
		o+="</div>";

	o+="</div>";

	return o;
}

//--------------------------------------------------------------------------------------------

function DrawFormTemplate(id,name,prompt,css,val,bRequired)
{
	var o='';

	o+="<tr>";
	o+="<td valign='top' nowrap><label for='"+id+"' class='promptLabel'>";
	o+=prompt+":&nbsp;";
	if(bRequired) o+="<span style='color:red;'>*</span>";
	o+="</label></td>";
	o+="<td><div class='input-container'><input class='"+css+"' name='"+name+"' id='"+id+"' type='text' value='"+val+"' /></div></td>";
	o+="</tr>";

	return o;
}

//--------------------------------------------------------------------------------------------

function DrawFormSubmit(txt)
{
	var o='';

	o+="<tr>";
	o+="<td>&nbsp;</td>";
	o+="<td align='left'>";
	o+="<button style='margin-top:10px;font-size:13px;font-weight:normal' id='submitButton' type='submit'>";
	o+=txt;
	o+="</button>";

	o+='<span class="message" style="margin-left:10px;display:none;">';
	o+='<img src="images/tick.jpg" alt="" width="24" height="24" style="margin: -5px 10px 0px 0px; " />';
    o+='<span></span>';
    o+='</span>';

	o+="<div id='submitLoader' style='margin-top:15px;margin-left:10px;display:none;'><img src='images/submitloader.gif' alt='' />&nbsp;"+"Please Wait..."+"</div>";

	o+='<div class="error" style="display:none;">';
	o+='<br><img src="images/warning.gif" alt="'+"Warning!"+'" width="24" height="24" style="float:left; margin: -5px 10px 0px 0px; " />';
    o+='<span></span><br clear="all" />';
    o+='</div><br clear="all" />';

	o+="</td>";
	o+="</tr>";

	return o;
}

//---------------------------------------------------------------------------------------------------------------

function ContentContact()
{
	var o="";

	o+="<center>";
	o+="<br>";

	o+="<div id='contactPanel'>";

	o+="<form id='regForm' action='' method=''>";
	o+="<table>";
	o+="<tbody>";

	o+=DrawFormTemplate("name","name","Name","","",true);
	o+=DrawFormTemplate("phone","phone","Phone","","",false);
	o+=DrawFormTemplate("email","email","Email","","",true);

	o+="<tr>";
	o+="<td valign='top'><label for='message' class='promptLabel'>"+"Message:"+"<span style='color:red;'>&nbsp;*</span></label></td>";
	o+="<td align='left'><div class='input-container'>";
	o+="<textarea name='message' id='message' rows='5' cols='70' wrap='virtual'></textarea>";
	o+="</div></td>";
	o+="</tr>";

	o+=DrawFormSubmit("Submit");

	o+="</tbody>";
	o+="</table>";
	o+="</form>";

	o+="</div>";

	o+="</center>";
	o+="<br>";

	return o;
}

//---------------------------------------------------------------------------------------------------------------

function ValidateContact()
{
	$("#regForm").validate({

		rules: {

			name:		{ required: true, maxlength: 30 },
			email:		{ required: true, maxlength: 80, email: true },
			phone:		{ required: false, maxlength: 15, phoneext: true },
			message:	{ required: true }
		},

		messages: {

			name:		{ required: "<br>Please enter a name.", maxlength: "<br>Maximum number of characters is {0}." },
			email:		{ required: "<br>Please enter an email address.", maxlength: "<br>Maximum number of characters is {0}.", email: "<br>Please enter a valid email address." },
			phone:		{ maxlength: "<br>Maximum number of characters is {0}." },
			message:	{ required: "<br>Please enter a message." }
		},

		invalidHandler: function(form, validator) {  },

		submitHandler: function(form) {

			$("#submitButton").hide();
			$("#submitLoader").show();
			$("div.error").hide();

			$.ajax({

				type: "POST",
				url: "contactmail.php",
				data: $('#regForm').serialize(),
				dataType: "json",

				error:function (xhr, ajaxOptions, thrownError){

					$("#submitLoader").hide();
					$("#submitButton").show();
					$("div.error span").html(xhr.status+" - "+thrownError);
					$("div.error").show();

					setTimeout(function() { $("div.error").fadeOut("slow", function () { }); },2000);
				},

				success: function(msg){

					if(parseInt(msg.status)==1) // Good
					{
						$("#message").val("");
						$("#submitLoader").hide();
						$("#submitButton").show();
						$("span.message span").html(msg.txt);
						$("span.message").show();
					}
					else if(parseInt(msg.status)==0) // Problem
					{
						$("#submitLoader").hide();
						$("#submitButton").show();
						$("div.error span").html(msg.txt);
						$("div.error").show();

						setTimeout(function() { $("div.error").fadeOut("slow", function () {  }); },2000);
					}
				}
			});

			return false;
	   }

	});
}

//---------------------------------------------------------------------------------------------------------------

function URLDecode(str)
{
	return unescape(String(str).replace( /\+/g, " "));
}

//---------------------------------------------------------------------------------------

function AjaxPage(page,gid,owner)
{
	if(parseInt(gid)==0) gid=GetMenuPageId(page);

	$('html, body').animate({scrollTop:0}, 'fast');

	$.ajax({

		type: "POST",
		url: "data.php",
		data: "menugid="+GetMenuGid(page)+"&gid="+gid,
		dataType: "xml",

		error:function (xhr, ajaxOptions, thrownError){

			$("#loadContent").html(xhr.status+" - "+thrownError);
		},

		success: function(xml){

			var err=jQuery('error',xml).text();
			var o="";

			if(err && err.length) o+=err;
			else
			{
				var tl=jQuery('title',xml).text();
				if(tl && tl.length) $("#pageTitle").html(URLDecode(tl));

				var pn=jQuery('panel',xml).text();
				if(pn && pn.length) $("#pageInfoPane").html(URLDecode(pn));

				var mn=jQuery('menu',xml).text();
				var ct=jQuery('content',xml).text();
				var cd=jQuery('coded',xml).text();

				if(owner.length) o+=DrawBackPage(owner);
				if(mn && mn.length) o+=DrawSubMenu(mn,page);
				if(ct && ct.length) o+=URLDecode(ct);
				if(IsContactPage(page)) o+=ContentContact();
				if(cd && cd.length) o+=convertSpecialChars(URLDecode(cd));
				if(!IsContactPage(page)) o+=PageFooter(GetContactPage());
			}

			$("#loadContent").html(o);
			RedrawShadows();

			if(IsContactPage(page)) ValidateContact();
		}
	});
}

//---------------------------------------------------------------------------------------

function convertSpecialChars(str)
{
	var cde=str.replace(/&lt;/g,"<").replace(/&gt;/g,">");

	return cde;
}
//---------------------------------------------------------------------------------------

function DrawBackPage(owner)
{
	var o="";

	o+="<span id='pageBack' onclick='DrawContent(\""+owner+"\");'>";
	o+="Back to "+owner;
	o+="</span>";
	o+="<br><br>";

	return o;
}

//---------------------------------------------------------------------------------------

function DrawSubMenu(mn,owner)
{
	var o="";
	var arr=mn.split("#");

	o+="<ul id='listMenu'>";

	for(var i=0;i<arr.length;i++)
	{
		var prt=arr[i].split(";");

		o+="<li onclick='$.history.load(\""+prt[0]+";"+prt[1]+";"+owner+"\");'>";
		o+=prt[0];
		o+="</li>";
	}

	o+="</ul>";

	return o;
}

//---------------------------------------------------------------------------------------

