//<![CDATA[
function addLoadListener(fn)
{
	if (typeof window.addEventListener != 'undefined')
	{
		window.addEventListener('load', fn, false);
	}
	else if (typeof document.addEventListener != 'undefined')
	{
		document.addEventListener('load', fn, false);
	}
	else if (typeof window.attachEvent != 'undefined')
	{
		window.attachEvent('onload', fn);
	}
	else
	{
		return false;
	}
	
	return true;
};

function attachEventListener(target, eventType, functionRef, capture)
{
    if (typeof target.addEventListener != "undefined")
    {
        target.addEventListener(eventType, functionRef, capture);
    }
    else if (typeof target.attachEvent != "undefined")
    {
        target.attachEvent("on" + eventType, functionRef);
    }
    else
    {
        return false;
    }

    return true;
};

checkBrowserWidth();

attachEventListener(window, "resize", checkBrowserWidth, false);

function checkBrowserWidth()
{
	var theWidth = getBrowserWidth();
	
	if (theWidth == 0)
	{
		var resolutionCookie = document.cookie.match(/(^|;)smf_res_layout[^;]*(;|$)/);

		if (resolutionCookie != null)
		{
			setStylesheet(unescape(resolutionCookie[0].split("=")[1]));
		}
		
		addLoadListener(checkBrowserWidth);
		
		return false;
	}

	if (theWidth > 800)
	{
		setStylesheet("1024 x 768");
		document.cookie = "smf_res_layout=" + escape("1024 x 768");
	}
	else
	{
		setStylesheet("");
		document.cookie = "smf_res_layout=";
	}
	
	return true;
};

function getBrowserWidth()
{
	if (window.innerWidth)
	{
		return window.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientWidth != 0)
	{
		return document.documentElement.clientWidth;
	}
	else if (document.body)
	{
		return document.body.clientWidth;
	}
	
	return 0;
};

function setStylesheet(styleTitle)
{
	var currTag;

	if (document.getElementsByTagName)
	{
		for (var i = 0; (currTag = document.getElementsByTagName("link")[i]); i++)
		{
			if (currTag.getAttribute("rel").indexOf("style") != -1 && currTag.getAttribute("title"))
			{
				currTag.disabled = true;

				if(currTag.getAttribute("title") == styleTitle)
				{
					currTag.disabled = false;
				}
			}
		}
	}
	
	return true;
};
		   
var d = new Date();
var year = d.getFullYear();

function getObj(name)
{
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}

function MM_preloadImages()
{ //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function doPopups()
{
if (!document.getElementsByTagName) return false;
	var anchors = document.getElementsByTagName('a');
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		var relAttribute = String(anchor.getAttribute('rel'));
		if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('popup'))){
			anchor.onclick = function () {window.open(this.href); return false;}
		}
	}
}

function clearOnFocus()
{
  if (!document.getElementsByTagName) return false;
  var fields = document.getElementsByTagName("input");
  for (var i=0; i < fields.length; i++) {
    if (fields[i].className.match("clearonfocus")) {
      fields[i].onfocus = function() {
        if (this.value.indexOf("Please") == 0) {
          this.value = "";
          return false;
		}
      }
    }
  }
  var textareas = document.getElementsByTagName("textarea");
  for (var i=0; i < textareas.length; i++) {
    if (textareas[i].className.match("clearonfocus")) {
      textareas[i].onfocus = function() {
		if (this.value.indexOf("Please") == 0) {
          this.value = "";
          return false;
		}
      }
    }
  }
}

//More information form validation
var rxEmailAddress	= /^(\w+|[.]|[-]+)+[@](\w+|[-]+)+[.](\w+|[.]|[-]+)+$/;
var rxTelephone		= /^[\(\)\+ 0-9]*$/;

function submitMoreInfo(valType)
{
	var txtName				= document.getElementById('txtName');
	var txtEmail			= document.getElementById('txtEmail');
	var txtTelHome		= document.getElementById('txtTelHome');
	var txtTelMobile		= document.getElementById('txtTelMobile');
	var txtTelWork		= document.getElementById('txtTelWork');
	var txaComments			= document.getElementById('txaComments');
	var txtAddress			= document.getElementById('txtAddress');
	if (valType) {
	var selProduct			= document.getElementById('selProduct');
	}
	var frmMoreInformation	= document.getElementById('frmMoreInformation');


	// WARNING: do not change the error checking below other than the messages without matching the changes in the
	//			asp.net thank_you class, otherwise exceptions will be generated by the class
	
	var errors			= '';

	if (txtName.value.length < 3 || txtName.value.length > 40 || txtName.value == "Full Name")
	{
		errors = errors + '- enter a name between 3 and 40 characters in length\r\n';
	}
	
	if (txtEmail.value.length < 6 || txtEmail.value.length > 255 || !rxEmailAddress.test(txtEmail.value))
	{
		errors = errors + '- enter a valid email address between 6 and 255 characters in length\r\n';
	}
	
	if (txtTelHome.value.length < 6 || txtTelHome.value.length > 40 || !rxTelHome.test(txtTelHome.value))
	{
		errors = errors + '- enter a valid telephone between 6 and 40 characters in length\r\n';
	}
		if (txtTelWork.value.length < 6 || txtTelWork.value.length > 40 || !rxTelWork.test(txtTelWork.value))
	{
		errors = errors + '- enter a valid telephone between 6 and 40 characters in length\r\n';
	}
		if (txtTelMobile.value.length < 6 || txtTelMobile.value.length > 40 || !rxTelMobile.test(txtTelMobile.value))
	{
		errors = errors + '- enter a valid telephone between 6 and 40 characters in length\r\n';
	}
	
	if (txtAddress.value.length < 20 || txtAddress.value.length > 255)
	{
		errors = errors + '- enter a valid full address including postcode\r\n';
	}
	
	if (valType && selProduct.selectedIndex == 0)
	{
		errors = errors + '- select the product of interest\r\n';
	}

	if (errors.length > 0)
	{
		window.alert('Sorry, please correct the following before submitting the More Information form:\r\n\r\n' + errors);
	}
	else
	{
		frmMoreInformation.submit();
	}
}

//Email Newsletter Subscription form validation
function submitEmailNewsletter()
{
	var txtName				= document.getElementById('txtSubscribeName');
	var txtEmail			= document.getElementById('txtSubscribeEmail');
	var frmSubscribeForm	= document.getElementById('frmSubscribeForm');
	
	var errors			= '';

	if (txtName.value.length < 3 || txtName.value.length > 40 || txtName.value == "Full Name")
	{
		errors = errors + '- enter a name between 3 and 40 characters in length\r\n';
	}
	
	if (txtEmail.value.length < 6 || txtEmail.value.length > 255 || !rxEmailAddress.test(txtEmail.value))
	{
		errors = errors + '- enter a valid email address between 6 and 255 characters in length\r\n';
	}

	if (errors.length > 0)
	{
		window.alert('Sorry, please correct the following before submitting the Email Newsletter Subscription form:\r\n\r\n' + errors);
	}
	else
	{
		frmSubscribeForm.submit();
	}
}

function doButtonImages() {
  if (!document.getElementsByTagName) return false;
  var inputs = document.getElementsByTagName("input");
  for (var i=0; i < inputs.length; i++) {
    if (inputs[i].type=="submit" || inputs[i].type=="button") {
      	inputs[i].onmouseover = function() {this.className += "Hover";}
		inputs[i].onmouseout = function() {this.className = this.className.replace(/Hover/g, "");}
    }
  }
}

// Unobtrusive scroller object
var fdScroller = {
        scrollLoop:false,
        scrollInterval:null,
        currentBlock:null,
        lastY:0,
        requestedY:0,
        init: function() {
                var lnks = document.getElementsByTagName('a');
                var removeLoc = window.location + ' ';

                // strip any #target, force a String cast
                if(removeLoc.indexOf('#') != -1) {
                        removeLoc = removeLoc.substr(0, removeLoc.indexOf('#'));
                } else {
                        removeLoc = removeLoc.substr(0, removeLoc.length - 1);
                }

                for(var i = 0, lnk; lnk = lnks[i]; i++) {
                        tmploc = lnk.href.replace(removeLoc,'');
                        if(tmploc.charAt(0) == '#' && !lnk.onclick) lnk.onclick = fdScroller.initScroll;
                }
        },
        getWindowHeight: function(){
                var myHeight = 0;
                if( typeof( window.innerWidth ) == 'number' ) {
                        //Non-IE
                        myHeight = window.innerHeight;
                } else if( document.documentElement &&
                                ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
                        //IE 6+ in 'standards compliant mode'
                        myHeight = document.documentElement.clientHeight;
                } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                        //IE 4 compatible
                        myHeight = document.body.clientHeight;
                }
                return myHeight;
        },
        getScrollLeft: function(){
                if(document.all) return (document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
                else return window.pageXOffset;
        },
        getScrollTop: function(){
                if(document.all) return (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
                else return window.pageYOffset;
        },
        getElementYpos: function(el){
                var y = 0;
                while(el.offsetParent){
                        y += el.offsetTop
                        el = el.offsetParent;
                }
                return y;
        },
        initScroll: function(e){
                var targ;

                if (!e) var e = window.event;
                if (e.target) targ = e.target;
                else if (e.srcElement) targ = e.srcElement;
                if (targ.nodeType == 3) targ = targ.parentNode;

                if(targ.href && targ.href.indexOf('#') != -1) {
                        var where = targ.href.substr(targ.href.indexOf('#')+1,targ.href.length);
                        fdScroller.currentBlock = document.getElementById(where);
                        if(!fdScroller.currentBlock) return;

                        var documentHeight = document.getElementsByTagName('body').offsetHeight;
                        var windowHeight = fdScroller.getWindowHeight();
                        var ypos = fdScroller.getElementYpos(fdScroller.currentBlock);
                        if(ypos > documentHeight - windowHeight) ypos = documentHeight - windowHeight;
                        fdScroller.requestedY = ypos;
                        fdScroller.scroll();
                }

                return false;
        },
        scroll: function(){
                var left = fdScroller.getScrollLeft();
                var top  = fdScroller.getScrollTop();

                if(Math.abs(top-fdScroller.requestedY) <= 1){
                        window.scrollTo(0,fdScroller.requestedY);
                        fdScroller.lastY = -1;
                } else {
                        fdScroller.lastY = top;
                        window.scrollTo(0, Math.round(top+((fdScroller.requestedY-top)/2)));
                        setTimeout(fdScroller.scroll,50);
                }
        }
}

//var message="Function Disabled!";

function clickIE4(){
if (event.button==2){
//alert(message);
return false;
}
}
function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
//alert(message);
return false;
}
}
}
if (document.layers) {
	document.captureEvents(Event.MOUSEDOWN);
	document.onmousedown=clickNS4;
} else if (document.all&&!document.getElementById) {
	document.onmousedown=clickIE4;
}
document.oncontextmenu=new Function("return false")

function showElement(element)
{		
	var ElementToShow = new getObj(element);
	
	if (!ElementToShow) return;

	if (ElementToShow.style.display == 'block') {
		ElementToShow.style.display = 'none';
		//ElementClicked.style.backgroundImage = 'url(images/interface/spec_closed.gif)';
	} else {
		ElementToShow.style.display = 'block';
		//ElementClicked.style.backgroundImage = 'url(images/interface/spec_opened.gif)';
	}
}

window.onload = function ()
{
	doPopups();
	clearOnFocus();
	doButtonImages();
	fdScroller.init();
	
	var exists = false;
	
	try
	{
		if (customOnLoad)
			exists = true;
	}
	catch(e){}

	if (exists)
		customOnLoad();
	
}
//]]>