
			window.name = "opener";

			function goPowershot()
			{
				window.open("http://www.canon.co.uk/For_Home/Product_Finder/index.asp");
			}

			function MM_reloadPage(init) {  //reloads the window if Nav4 resized
				if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
				document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
				else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
			}
			MM_reloadPage(true);

			function MM_findObj(n, d) { //v4.01 needed for the rollover
				var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
				d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
				if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; 
				for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
				if(!x && d.getElementById) x=d.getElementById(n); return x;
			}
			
			function MM_openBrWindow(theURL,winName,features) { //v2.0
				window.open(theURL,winName,features);
			}

			// args: 1=Full brouwser functionalities, 0=Only scrollbars and resize handles
			function NewWindow (URL,args){
			if (args==1)
			 {
			    var xw,yw
			    xw=(screen.width/3)*2;
			    yw=(screen.height/3)*2;
			    window.open(URL, "", "height="+yw+",width="+xw+",scrollbars=1,resizable=1,location=1,menubar=1,status=1,toolbar=1");
			 }

			else if (args==9)
			 {
			    var xw,yw, win1
			    xw=788;
			    yw=469;
			    win1 = window.open(URL, "", "height="+yw+",width="+xw+",scrollbars=1,resizable=1");
			    win1.moveTo((screen.width/2)-((xw/2)),(screen.height/2)-((yw/2)));
			 }
			 else if (isNaN(args))
			 {
			    var arrWFeatures = args.split(",");
			    var intFeature = 0;
			    var winWidth  = arrWFeatures[0].substring(arrWFeatures[1].indexOf('='),arrWFeatures[0].length);
			    var winHeight = arrWFeatures[1].substring(arrWFeatures[1].indexOf('=')+1,arrWFeatures[1].length);
			    var intLeft = (screen.width - winWidth)/2;
			    var intTop  = (screen.height - winHeight)/2 - 50;
			    if(intLeft<0){intLeft=0;}
			    if(intTop<0){intTop=0;}
			    var strCenter  = ",left=" + intLeft + ",screenX=" + intLeft;
			       strCenter += ",top=" + intTop + ",screenY=" + intTop;
			    args += strCenter;
			    var winNew = window.open(URL, 'winNew', args);
			    winNew.focus()
			    // .moveto method causes an error: access denied
			    //winNew.moveTo((screen.width/2)-((winWidth/2)),(screen.height/2)-((winHeight/2)));
			 }

			 else
			 {
			    var xw,yw, win1
			    xw=(screen.width/3)*2;
			    yw=(screen.height/3)*2;
			    win1=window.open(URL, 'win2', "height="+yw+",width="+xw+",scrollbars=1,resizable=1");
			    win1.moveTo((screen.width/2)-((xw/2)),(screen.height/2)-((yw/2)));
			 }

			return false;   }


			function printPage() {
				if (window.print) {
				 if(navigator.userAgent.toLowerCase().indexOf('mozilla') != -1)
				 {
				    if(navigator.userAgent.toLowerCase().indexOf('msie') !=-1)
				       {
				       // much better browser, so do nothing
				       }

				    else
				       {
					if(parseInt(navigator.appVersion)>3 && parseInt(navigator.appVersion)<5)
					{
					  alert('you are using nav4 so print format not supported');
					}
				       }

				 }

				 window.print();
				} else {
				 alert("Sorry, your browser doesn't support this feature.");
				}
			}

			function MM_showHideLayers() { //v6.0
			  var i,p,v,obj,args=MM_showHideLayers.arguments;
			  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
			    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
			    obj.visibility=v; }
			}					
			
			var __focusControl = new Array();
			
			function __addFocusControl(anId)
			{
				if(__focusControl.length == 0)
				{
					__focusControl[__focusControl.length] = anId;
				}
			}
			
			function __focusDefaultControl()
			{
				if(__focusControl.length > 0)
				{
					
					var cntrlId = __focusControl[0];
					
					var cntrl = document.getElementById(cntrlId);
					
					if(cntrl != null)
					{						
						cntrl.focus();
					}
				}
			}
			
			function __disableMaxLength()
			{				
				var coll = document.getElementsByTagName("input");
				for(var i = 0; i < coll.length; i ++)
				{
					if(coll[i].type == "text")
					{
						coll[i].maxLength = "1000";
					}
				}
			}
			
			function __disableClientValidation()
			{			
				var coll = document.getElementsByTagName("a");
				for(var i = 0; i < coll.length; i ++)
				{
					if(coll[i].type == "text")
					{
						coll[i].maxLength = "1000";
					}
				}
			
			}
			
			function toggleCheckBoxes(boolChecked)
			{
				var coll = document.getElementsByTagName("input");
				for(var i = 0; i < coll.length; i ++)
				{
					if(coll[i].type == "checkbox")
					{
						coll[i].checked = boolChecked;
					}
				}
			}
			function checkAllBoxes()
			{
				toggleCheckBoxes(true);		
			}
			
			function clearAllBoxes()
			{
				toggleCheckBoxes(false);
			}	
			
			function CallQueueItem(calltype, content){
			    this.calltype = calltype;
			    this.content = content;
			}
			
			var __callQueue = new Array();
			
			function __addToCallQueue(calltype, content)
			{
			    __callQueue[__callQueue.length] = new CallQueueItem(calltype, content);
			}
			
			function __getCallQueue(calltype)
			{
			    var tempArray = new Array();
			    
			    for(var i = 0; i < __callQueue.length; i++)
			    {
			        var thisItem = __callQueue[i];
			        
			        if(thisItem.calltype == calltype)
			        {
			            tempArray[tempArray.length] = thisItem.content;
			        }
			    }
			    
			    return tempArray;
			}
			
			function __alertMessages(calltype)
			{
			    var temparray = __getCallQueue(calltype);
			    
				var message = "";
				
				for(var i = 0; i < temparray.length; i++)
				{
					message += temparray + "\n\n";
				}
				if(message != "")
				{
					alert(message);
				}			
			}
			
			function __callMethods(calltype)
			{
			    var temparray = __getCallQueue(calltype);
			    for(var i = 0; i < temparray.length; i++)
			    {
			        eval(temparray[i]);
			    }			
			}
			
			function __addScrollMethodCall(methodcall)
			{
			    __addToCallQueue("scrollcall",methodcall);
			}
			
			function __callScrollMethods()
			{
			    __callMethods("scrollcall");
			}
						
			function __addLoadMethodCall(methodcall)
			{			    
			    __addToCallQueue("loadcall",methodcall);
			}
			
			function __callLoadMethods()
			{
			   __callMethods("loadcall");
			}
						
			function __addLoadMessage(message)
			{
			    __addToCallQueue("loadmessage",message);
			}			

			function __alertLoadMessages()
			{
			    __alertMessages("loadmessage");
			}			
			
			function __addUnloadMethodCall(methodcall)
			{
			    __addToCallQueue("unloadcall",methodcall);
			}
			
			function __callUnloadMethods()
			{
			    __callMethods("unloadcall");
			}
			
			var __unloadConfirm = null;	
			
			function __addUnloadConfirm(message)
			{
				__unloadConfirm = message;
			}
			
			function __clearUnloadConfirm()
			{
				__unloadConfirm = null;
			}

			function __confirmUnload()
			{
				if(__unloadConfirm != null)
				{
					return confirm(__unloadConfirm);
				}
				else
				{
					return true;
				}			
			}
			
			function __handleDocumentScroll()
			{
			    __callScrollMethods();
			}
			
			function __handleDocumentLoad()
			{
			    __callLoadMethods();
				__alertLoadMessages();
				__focusDefaultControl();
				//__disableMaxLength();
				//__disableClientValidation();
			}				
			
			function  __handleDocumentUnload()
			{
				    __callUnloadMethods();
				    
					return __confirmUnload();
			}
			
			function writeFlash(divId, height, width , movieSrc)
			{
				var divCont = '<OBJECT id="flashAnimation" codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"';
				divCont += '	height="' + height + '" width="' + width + '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" VIEWASTEXT>';
				divCont += '	<PARAM NAME="_cx" VALUE="16484">';
				divCont += '	<PARAM NAME="_cy" VALUE="10795">';
				divCont += '	<PARAM NAME="FlashVars" VALUE="">';
				divCont += '	<PARAM NAME="Movie" VALUE="' + movieSrc + '">';
				divCont += '	<PARAM NAME="Src" VALUE="' + movieSrc + '">';
				divCont += '	<PARAM NAME="WMode" VALUE="Window">';
				divCont += '	<PARAM NAME="Play" VALUE="-1">';
				divCont += '	<PARAM NAME="Loop" VALUE="-1">';
				divCont += '	<PARAM NAME="Quality" VALUE="High">';
				divCont += '	<PARAM NAME="SAlign" VALUE="">';
				divCont += '	<PARAM NAME="Menu" VALUE="-1">';
				divCont += '	<PARAM NAME="Base" VALUE="">';
				divCont += '	<PARAM NAME="AllowScriptAccess" VALUE="">';
				divCont += '	<PARAM NAME="Scale" VALUE="ShowAll">';
				divCont += '	<PARAM NAME="DeviceFont" VALUE="0">';
				divCont += '	<PARAM NAME="EmbedMovie" VALUE="0">';
				divCont += '	<PARAM NAME="BGColor" VALUE="">';
				divCont += '	<PARAM NAME="SWRemote" VALUE="">';
				divCont += '	<PARAM NAME="MovieData" VALUE="">';
				divCont += '	<PARAM NAME="SeamlessTabbing" VALUE="1">';
				divCont += '	<PARAM NAME="Profile" VALUE="0">';
				divCont += '	<PARAM NAME="ProfileAddress" VALUE="">';
				divCont += '	<PARAM NAME="ProfilePort" VALUE="0">';
				divCont += '	<embed src="' + movieSrc + '" name="flashAnimation" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer"';
				divCont += '		type="application/x-shockwave-flash" width="' + width + '" height="' + height + '"> </embed>';
				divCont += '</OBJECT>';

				document.getElementById(divId).innerHTML = divCont;
			}
			
            function opacity(id, opacStart, opacEnd, millisec) {
                //speed for each frame
                var speed = Math.round(millisec / 100);
                var timer = 0;

                //determine the direction for the blending, if start and end are the same nothing happens
                if(opacStart > opacEnd) {
                    for(i = opacStart; i >= opacEnd; i--) {
                        setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
                        timer++;
                    }
                } else if(opacStart < opacEnd) {
                    for(i = opacStart; i <= opacEnd; i++)
                        {
                        setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
                        timer++;
                    }
                }
            }

            //change the opacity for different browsers
            function changeOpac(opacity, id) {
                var object = document.getElementById(id).style;
                object.opacity = (opacity / 100);
                object.MozOpacity = (opacity / 100);
                object.KhtmlOpacity = (opacity / 100);
                object.filter = "alpha(opacity=" + opacity + ")";
            } 			
            
            function setCookie(name,value,duration){
	            var cookiestring=name+"="+escape(value)
	            cookiestring += ";path=/";
	            if(duration != null) cookiestring += ";EXPIRES="+getexpirydate(duration);
	            document.cookie=cookiestring;
            }

            function getCookie(cookiename) {
 	            var cookiestring=""+document.cookie;
 	            var index1=cookiestring.indexOf(cookiename);
 	            if (index1==-1 || cookiename=="") return ""; 
 	            var index2=cookiestring.indexOf(';',index1);
 	            if (index2==-1) index2=cookiestring.length; 
 	            return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
            }
                        