var popupWindow = '';
var refreshInterval;
var popBox = '';

function ShowPopup(url) 
{
	if (!popupWindow.closed && popupWindow.location) 
	{
		popupWindow.location.href = url;
	}
	else 
	{
		popupWindow = window.open(url, 'Popup', 'height=675,width=675,scrollbars=1,resizable=1');
		
		if (!popupWindow.opener) 
		{
		    popupWindow.opener = self;
		}
	}
  
    if (window.location && window.location.search.search(/preval=1/i) != -1 && 
        ( url.search(/edititem.aspx/i) != -1 || url.search(/editgiftmessage.aspx/i) != -1))
    {    
        if (window.setInterval)
        {
            refreshInterval = window.setInterval('FireRefreshEvent()', 750);
        }
    }
    
    if (window.focus) 
	{
	    popupWindow.focus();
	}
   	
	return false;
}


function showBox(where,url) 
{
	
	var target = document.getElementById(where); 	

	if (target) {	

			var imgs = target.getElementsByTagName("img");

			if (imgs.length == 0) {
	
				var close = document.createElement("a");
				close.setAttribute("title", "close this box");
				close.setAttribute("href", "#");
				close.setAttribute("class", "close");
				close.setAttribute("onclick", "return hideBox('delivery_box')");

				var cimage = document.createElement("img");
			        cimage.setAttribute("alt", "close this box");				
				cimage.setAttribute("src", "/img/newButtons/close-cross.gif");	
				close.appendChild(cimage);
				target.appendChild(close);


				var image = document.createElement("img");
			         image.setAttribute("alt", "delivery options");
				image.setAttribute("src", url);	
				target.appendChild(image);

				}

				target.className = 'boxover';
				return false;
			}

	return true;
}



function hideBox(where) 
{	
	var target = document.getElementById(where); 	
	if (target) {
				target.className = 'boxoff';
				return false;
			}
	return true;
}



var newWindow = '';

function OpenWindow(url)
{
    if (!newWindow.closed && newWindow.location)
    {
        newWindow.location.href = url;        
    }
    else
    {
        newWindow = window.open(url, 'new_window');
        
        if (!newWindow.opener)
        {
            newWindow.opener = self;
        }
    }
    
    if (window.focus)
    {
        newWindow.focus();
    }
    
    return false;
}

function ClosePopup(thisIsIgnored)
{       
    window.close();    
}

function FireRefreshEvent()
{     
    if (popupWindow == null || popupWindow.closed)
    {                      
        if (refreshInterval && window.clearInterval)
        {          
            window.clearInterval(refreshInterval);
        }
        
        if (window.location)
        {   
            if (window.location.search.search(/preval=1/i) != -1)
            {
                window.location.reload();
            }
        }
    }
}

function ThrowPopup(popUrl, mainUrl) 
{
	if (!popupWindow.closed && popupWindow.location) 
	{
		popupWindow.location.href = popUrl;
	}
	else 
	{
		popupWindow = window.open(popUrl, 'Popup', 'height=675,width=675,scrollbars=1,resizable=1');
		
		if (!popupWindow.opener) 
		{
		    popupWindow.opener = self;
		}
	}
		
    if (window.self != popupWindow)		
    {
	    window.location.href = mainUrl;
      
        if (window.focus) 
	    {
	        popupWindow.focus();
	    }
    }
   	
	return false;
}

function SearchOnFocus(search)
{
    if (search.value=='keyword search') {search.value=''}

    if (search.value=='gift search') {search.value=''}

}


function overOc() { overMenu(document.getElementById("dropoccasions")); } 
function outOc() { outMenu(document.getElementById("dropoccasions")); }
function overBr() { overMenu(document.getElementById("dropbrands")); }
function outBr() { outMenu(document.getElementById("dropbrands")); }
function overFa() { overMenu(document.getElementById("dropfaves")); }
function outFa() { outMenu(document.getElementById("dropfaves"));}
function overRe() { overMenu(document.getElementById("droprecipients")); }
function outRe() { outMenu(document.getElementById("droprecipients"));}
function overRo() { overMenu(document.getElementById("dropromantics")); }
function outRo() { outMenu(document.getElementById("dropromantics")); }
function overJe() { overMenu(document.getElementById("dropjewels")); }
function outJe() { outMenu(document.getElementById("dropjewels")); }




function overMenu(menu)
{
    if (navigator.userAgent && navigator.userAgent.indexOf("MSIE 6") == -1)
    {
        return;
    }
        
    if (menu)
    {        
        menu.className = 'show'; 
                  
        var makeViewCtrl = document.getElementById("makeview");

        if (makeViewCtrl)
        {            
            var makeViewXY = findPos(makeViewCtrl);
            var menuXY = findPos(menu);
            
            if (makeViewXY && menuXY)
            {                
                if (menu.offsetWidth && menu.offsetHeight && makeViewCtrl.offsetWidth)
                {                                           
                    if ( ( (menuXY[0] <= makeViewXY[0] && (menuXY[0] + menu.offsetWidth) > makeViewXY[0]) ||
                           (menuXY[0] >= makeViewXY[0] && menuXY[0] < (makeViewXY[0] + makeViewCtrl.offsetWidth)) ) && 
                        menuXY[1] <= makeViewXY[1] && (menuXY[1] + menu.offsetHeight) > makeViewXY[1])
                    {
                        makeViewCtrl.style.visibility = "hidden";   
                    }
                }
            }                   
        }
    }
}

function outMenu(menu)
{
    if (menu)
    {
        var makeViewCtrl = document.getElementById("makeview");

        if (makeViewCtrl && makeViewCtrl.style.visibility == "hidden")
        {
            makeViewCtrl.style.visibility = "visible";
        }
        
        menu.className = 'hide';
    }
}

function findPos(elem) 
{
	var curleft = curtop = 0;

	if (elem.offsetParent) 
	{
  	    do
  	    {
 	        curleft += elem.offsetLeft;
	        curtop += elem.offsetTop;
	    } while (elem = elem.offsetParent);

	    return [curleft,curtop];
	}

	return null;
}



function get_ekomi() {	

 var ekomiHttp;
   if(navigator.appName == "Microsoft Internet Explorer") {
  ekomiHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } else {
  ekomiHttp = new XMLHttpRequest();
  }
        



  	ekomiHttp.open('GET', '/cgi-bin/ekomi_async.pl', true);
	ekomiHttp.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');

  	ekomiHttp.onreadystatechange = function() {
  	
						if (ekomiHttp.readyState == 4) {							
										
										if (document.getElementById('ekomi_review_holder'))
											{
											document.getElementById('ekomi_review_holder').style.display = 'block';
										 	document.getElementById('ekomi_review_holder').innerHTML = ekomiHttp.responseText;
									
											setTimeout("fadeEkomi('100')", 4000);	
											
											}
 					 					}
  						}
  ekomiHttp.send(null);
  

  return false;

  } 



function fadeEkomi(newOpacity) {			 
			
	
			if (newOpacity > 10){
						newOpacity -=3; 
						
						document.getElementById('ekomi_review_holder').style.filter = 'alpha(opacity ='+newOpacity+')';	
						document.getElementById('ekomi_review_holder').style.opacity = newOpacity/100;
						

						var index = newOpacity;

						setTimeout("fadeEkomi("+index+")", 40); 
						

										}

			
			else {
						document.getElementById('ekomi_review_holder').style.display = 'none';
						
					
				}
			}



function showHideReview() {

				var div1 = document.getElementById('ekomi_review_holder');
				var img1 = document.getElementById('ekomi_toggle_button');

				if (div1.style.display == 'none') {
						div1.style.display = 'block';
						div1.style.filter = 'alpha(opacity=100)';	
						div1.style.opacity = '1';
						img1.src = '/img/newMastButtons_v3/hideEkomiReview.gif';	
						
						
						} else {
							div1.style.display = 'none';
							img1.src = '/img/newMastButtons_v3/showEkomiReview.gif';
							}

				return false;
				}
 




  	 var POPHttp;
   if(navigator.appName == "Microsoft Internet Explorer") {
  POPHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } else {
  POPHttp = new XMLHttpRequest();
  }



function popAddtoBasket(url) {      


  	POPHttp.open("GET", url, true);
  	POPHttp.onreadystatechange = function() {
  	
						if (POPHttp.readyState == 4) {
									
  										// clear the contents of your destination element. Should increase speed.					  									
										

										        var obj = document.getElementById('wrapper');
											// perform a shallow clone on obj
											nObj = obj.cloneNode(false);
											// insert the cloned object into the DOM before the original one
											obj.parentNode.insertBefore(nObj,obj);
											// remove the original object
											obj.parentNode.removeChild(obj);				 

										//POPHttp.responseText;

										// do dirty innerHTML replace to put result in - everyone's doing it!
										 	document.getElementById('wrapper').innerHTML = "<h1>This item was added to your basket</h1>"; 

											
				
										if (window.opener != null){	

											if (window.opener.makebasket() != null) {
																window.opener.makebasket();
																}			
							
											}
										

										if (window.resizeTo != null) {
														window.resizeTo(600,200);
														}


											setTimeout("closePop()", 1000); 
 					 					}
  						}
  POPHttp.send(null);
	
  return false;

  }   




function closePop() {			 
			window.close();  	

			}



function move_social() {	
	if (document.getElementById('twitface')) {
								   
		if (document.getElementById('shareButtonsHolder')) {
								 
						document.getElementById('twitface').innerHTML = document.getElementById('shareButtonsHolder').innerHTML;
						document.getElementById('shareButtonsHolder').innerHTML = '';
									}

							}			

}


function makebasket(){

if (document.getElementById('basketv5') !=0){

basket=getCookie('basket');
if (basket!=null && basket!="")
  {

  if (basket.length > 6)
                        {

                        /* It's not an empty one. get values*/


                          /* SPLIT down the "basket" further into keyValues - a list of keys, value, key, value... */

                            keyValues = basket.split("&")

                         /* FIND the LENGTH of this content list */

                            var length = keyValues.length;

                         /* SPLIT OFF each key/ value in turn */

                            for (i=0; i<keyValues.length; i++){

                                      /* ASSIGN the piece of data to "thisData" */

                                      var thisData = keyValues[i].split('&')[0];

                                      /*run a PATTERN MATCH against all the KEYS */

                                      if (thisData.match(/items/i))
                                          {
                                           /* If MATCH then next data is the "Items" value, so assign */
                                           var thisItems = keyValues[i+1].split('&')[0];
                                          }

                                      else if (thisData.match(/subtotal/i))
                                          {
                                           /* If MATCH then next data is the "Subtotal" value, so assign */
                                           var thisSubtotal = keyValues[i+1].split('&')[0];
                                          }

                                      else if (thisData.match(/user/i))
                                          {
                                           /* If MATCH then next data is the "User" value, so assign */
                                           var thisUser = keyValues[i+1].split('&')[0];
                                          }

                                      }

                            }





  }

var thisMessage = '';


if ((thisItems == null) || (thisItems == 0))
                  {
                   var baskethtmlone = "<a id=\"hckrsfpre\" title=\"McAfee SECURE certified sites prevent over 99.9% of hacker crime. Click for info.\" href=\"https://www.scanalert.com/RatingVerify?ref=www.pressies4princesses.co.uk\" onclick=\"return ShowPopup(\'https://www.scanalert.com/RatingVerify?ref=www.pressies4princesses.co.uk\')\"><img src=\"//images.scanalert.com/meter/www.pressies4princesses.co.uk/22.gif\" alt=\"McAfee SECURE certified sites prevent over 99.9% of hacker crime.\" /></a>";
                   var baskethtmltwo = "<a id=\"vrsgnpre\" href=\"https://seal.verisign.com/splash?form_file=fdf/splash.fdf&amp;dn=WWW.PRESSIES4PRINCESSES.CO.UK&amp;lang=en\" title=\"Verisign secured site. Click to verify.\" onclick=\"return ShowPopup(\'https://seal.verisign.com/splash?form_file=fdf/splash.fdf&amp;dn=WWW.PRESSIES4PRINCESSES.CO.UK&amp;lang=en\')\"><img src=\"/img/verisign/verisign_seal_small_crop.gif\" alt=\"Verisign secured site. Click to verify.\" /></a>";
                   var baskethtml = baskethtmlone + baskethtmltwo;	
		 
			document.getElementById('basketv5').innerHTML = baskethtml;
								 
		  }





else {

                                var baskethtmlone = "<div class\=\"box\"><a id=\"hckrsf\" title=\"McAfee SECURE certified sites prevent over 99.9% of hacker crime. Click for info.\" href=\"https://www.scanalert.com/RatingVerify?ref=www.pressies4princesses.co.uk\" onclick=\"return ShowPopup(\'https://www.scanalert.com/RatingVerify?ref=www.pressies4princesses.co.uk\')\"><img src=\"//images.scanalert.com/meter/www.pressies4princesses.co.uk/63.gif\" alt=\"McAfee SECURE certified sites prevent over 99.9% of hacker crime.\" /></a><p class=\"lnk\">";
                                var baskethtmltwo = "<a href=\"/Commerce/Basket.aspx\" class=\"mybasket\" title=\"Visit your basket\">My Shopping Basket</a></p>";
                                var baskethtmlthree = "<p class=\"itms\"><a href=\"/Commerce/Basket.aspx\" title=\"View items in your basket\">"+thisItems+" items</a></p>";
				var baskethtmlfour = "<p class=\"btns\"><a href=\"/Commerce/Basket.aspx\" title=\"View or make changes to your basket\">View&#47; Edit</a> \&\#187\; <a class=\"check\" href=\"/Commerce/Checkout/Checkout1.aspx\" title=\"Click to checkout now\">Secure Checkout</a></p></div>";
                               
 				var baskethtml = baskethtmlone + baskethtmltwo + baskethtmlthree + baskethtmlfour;				
                                document.getElementById('basketv5').innerHTML = baskethtml;
									      
     }
}

}


function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return "";
}


<!--

  	 var XMLHttp;
   if(navigator.appName == "Microsoft Internet Explorer") {
  XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } else {
  XMLHttp = new XMLHttpRequest();
  }


  function make_view(formid) {

	
	document.getElementById('makeviewoutput').style.filter = 'alpha(opacity=25)';	
	document.getElementById('makeviewoutput').style.opacity = '0.25';
	
	

	var parameters = '';

        var elem = document.getElementById(formid).elements;

        for(var i = 0; i < elem.length; i++)
        					{

           					if(elem[i].type=="checkbox"){
										if (elem[i].checked) {parameters += "&amp;" + elem[i].name + "=" + elem[i].value;}
										
										}

            					else {
							parameters += "&amp;" + elem[i].name + "=" + elem[i].value;
						     }	

        					} 

	var action = document.getElementById(formid).action;
	var cgibin = action.indexOf('cgi-bin');
	var script = action.substr(cgibin);
	var urlstring = '/' + script + '?' + parameters.substring(5) + '&amp;ajax=1';
		
	
  	XMLHttp.open("GET", urlstring, true);
  	XMLHttp.onreadystatechange = function() {
  	
						if (XMLHttp.readyState == 4) {
									
  										// clear the contents of your destination element. Should increase speed.
										  	so_clearInnerHTML(document.getElementById('makeviewoutput'));

										
										document.getElementById('makeviewoutput').style.opacity = '0';
										document.getElementById('makeviewoutput').style.filter = 'alpha(opacity=0)';

										// do dirty innerHTML replace to put result in - everyone's doing it!
										 	document.getElementById('makeviewoutput').innerHTML = XMLHttp.responseText;


											setTimeout("fadeIn('0')", 40); 
 					 					}
  						}
  XMLHttp.send(null);
	
  var where = document.getElementById('makeviewform1');	

  scrollPos(where);	

  return false;

  }   


function so_clearInnerHTML(obj) {

			// perform a shallow clone on obj
				nObj = obj.cloneNode(false);

			// insert the cloned object into the DOM before the original one
				obj.parentNode.insertBefore(nObj,obj);

			// remove the original object
				obj.parentNode.removeChild(obj);

				}



function changePage (field, value, formid)
{    

	document.getElementById('mvfstart').value = value;
	document.getElementById('dnr').value = '1';

	make_view(formid);	

    return false;

}


function changeShowNo(num){  
	
		
	document.getElementById('pgn').value = num;	

	make_view('makeviewform1');	

    return false;

}



function fadeIn(newOpacity) {			 
			
	
			if (newOpacity < 101){
						newOpacity +=3; 
						
						document.getElementById('makeviewoutput').style.filter = 'alpha(opacity ='+newOpacity+')';	
						document.getElementById('makeviewoutput').style.opacity = newOpacity/100;
						

						var index = newOpacity;

						setTimeout("fadeIn("+index+")", 4); 
						

										}

			
			else {
						document.getElementById('makeviewoutput').style.filter = 'alpha(opacity=100)';
						document.getElementById('makeviewoutput').style.opacity = '1';
					
				}
			}


function clone_select (field, origin) {
				
				if (typeof origin === 'undefined') {
				
									var copyfield = field +'2'; 
								}
				else {					
					var copyfield = origin.id;					
					}
				

			     if(document.getElementById(copyfield).type == 'checkbox'){ 
										   if(document.getElementById(copyfield).checked){
																document.getElementById(field).checked = true;
																}
											else{
												document.getElementById(field).checked = false;
																
												}			 

										  }

		             else{
					document.getElementById(field).value = document.getElementById(copyfield).value;
					
					} 	

				make_view('makeviewform1');				

			
	
				return false;

			}



function scrollPos(obj) {
			var curtop = 0;

			if (obj.offsetParent) {

						do {
							
							curtop += obj.offsetTop;
							
						 } while (obj = obj.offsetParent);

					
						window.scrollTo(0, curtop-50);
					    }

			}




function urlAction(field, value) {				  
		

				   if (document.getElementById(field)){

							
							var type = document.getElementById(field).type;							


							if (type.toLowerCase() == 'select-one'){

															 

								 document.getElementById(field).options.length=0;
 
								 document.getElementById(field).options[0]=new Option("£"+value, value, true, true);							 
								

								}	



							
				 			  if(type.toLowerCase() == 'checkbox'){ 
										   
											document.getElementById(field).checked = true;					
														 

										  	}

							

		               				    else{

									

									


									document.getElementById(field).value = value;
					
								} 					    
				 			



							    
								make_view('makeviewform1');
									
								return false;


						}
							
	
				
			}


function reset_view() {

			var sURL = unescape(window.location.pathname);

			if (sURL != null){
								window.location.replace( sURL );								
								return false;
								}

			else {
				 
				var input = document.createElement("input");
				input.setAttribute("type", "hidden");
				input.setAttribute("name", "rst");
				input.setAttribute("id","makeviewform_rst");
				input.setAttribute("value", "1");
				document.getElementById("makeviewform1").appendChild(input);

				make_view('makeviewform1');
				return false;

				}

			return false;	

			}



function showThumb (url, id, e) {
			var thumb_url = '/img/our-gifts/'+url;
			var prev_box = document.getElementById("lgthumb");			
			if (prev_box == null) { return false }
			// remove the previous image if currently in there!
			var prev_box_img;

			if (prev_box_img = document.getElementById("lgthumb_img") ){			
								if (document.getElementById("link_lgthumb_img") ){
														document.getElementById("link_lgthumb_img").parentNode.removeChild(document.getElementById("lgthumb_CuleList"));										
														document.getElementById("link_lgthumb_img").parentNode.removeChild(document.getElementById("link_lgthumb_img"));
														}


								else {
									prev_box_img.parentNode.removeChild(document.getElementById("lgthumb_CuleList"));															
									prev_box_img.parentNode.removeChild(prev_box_img);
									}
								}														


			var thumb = document.createElement("img");
				thumb.setAttribute("alt", "large thumbnail");
				thumb.setAttribute("src", thumb_url);	
				thumb.setAttribute("id", "lgthumb_img");

			var lid = 'a_'+id;
			if ( document.getElementById(lid) ){
									var uri = document.getElementById(lid).getAttribute("href");

									var link = document.createElement("a");
			 						link.setAttribute("title", "click for more information");
									link.setAttribute("id", "link_lgthumb_img");
									link.setAttribute("href", uri);
									link.appendChild(thumb);
									prev_box.appendChild(link);
									}

			else {			
				prev_box.appendChild(thumb);
				}


			var rid = 'ul_'+id;		
			var outer = document.getElementById(rid);

			if (outer != null) {
					var htmlcopy = document.createElement("ul");
					htmlcopy.setAttribute("class", "unCuleList");
					htmlcopy.setAttribute("id", "lgthumb_CuleList");
						
						for (var n=0; n<outer.childNodes.length; n++) {
   										var fromChild = outer.childNodes[n];
										var newChild = fromChild.cloneNode(true);									
  										htmlcopy.appendChild(newChild);
 							}	
					prev_box.appendChild(htmlcopy);
				    }			 
			
			var posx = 0;
			var posy = 0;
			if (!e) var e = window.event;
			if (e.pageX || e.pageY) {
						posx = e.pageX-205;
						posy = e.pageY-260;
							}
			else if (e.clientX || e.clientY) {
			posx = e.clientX + document.body.scrollLeft
					+ document.documentElement.scrollLeft -205;
			posy = e.clientY + document.body.scrollTop
				+ document.documentElement.scrollTop - 260;
				}
			prev_box.className = 'active';
			prev_box.style.position = 'absolute';
			prev_box.style.top = posy+'px';
			prev_box.style.left = posx+'px';
			prev_box.style.display = 'block'; 
			addEvent(document, "mousemove", mouseoff); 			
			//var store = document.createElement('script');
			  //  store.type = 'text/javascript';			   
			  //  store.innerHTML = 'var posy = '+posy+'; var posx = '+posx+'; ';		    	
			  //  var wh=document.getElementById("lgthumb");
			  //  wh.parentNode.insertBefore(store,wh);

			document.flgthumb.posx.value = posx;
			document.flgthumb.posy.value = posy;

			}

function hideZoom(id){	
			var element = document.getElementById(id) 			 
			if (element != null) {	element.style.display = 'none'; }
			removeEvent(document, "mousemove", mouseoff);
			return false;
			}			

function mouseoff (e) {
			var posy =  document.getElementById("fposy").value;
			var posx =  document.getElementById("fposx").value;

			var minx = 1*posx+0;
			var maxx = 1*posx+350;			
			var miny = 1*posy+0;
			var maxy = 1*posy+425;			

			if (!e) var e = window.event;
			if (e.pageX || e.pageY) {
						if ((e.pageX < minx) || (e.pageX > maxx) ) { hideZoom('lgthumb'); }
						else if ((e.pageY < miny) || (e.pageY > maxy) ) { hideZoom('lgthumb'); } 
							}
			else if (e.clientX || e.clientY) {
			  if ( ( (e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft) < minx) || ( (e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft) > maxx)  ) { hideZoom('lgthumb'); }
			  else if ( ( (e.clientY + document.body.scrollTop + document.documentElement.scrollTop) < miny) || ( (e.clientY + document.body.scrollTop + document.documentElement.scrollTop) > maxy) ) { hideZoom('lgthumb'); }
				}			
			 return true;
			}



function addEvent(element, type, handler) {
	if (element.addEventListener) {
		element.addEventListener(type, handler, false);
	} else {
		// assign each event handler a unique ID
		if (!handler.$$guid) handler.$$guid = addEvent.guid++;
		// create a hash table of event types for the element
		if (!element.events) element.events = {};
		// create a hash table of event handlers for each element/event pair
		var handlers = element.events[type];
		if (!handlers) {
			handlers = element.events[type] = {};
			// store the existing event handler (if there is one)
			if (element["on" + type]) {
				handlers[0] = element["on" + type];
			}
		}
		// store the event handler in the hash table
		handlers[handler.$$guid] = handler;
		// assign a global event handler to do all the work
		element["on" + type] = handleEvent;
	}
};
// a counter used to create unique IDs
addEvent.guid = 1;

function removeEvent(element, type, handler) {
	if (element.removeEventListener) {
		element.removeEventListener(type, handler, false);
	} else {
		// delete the event handler from the hash table
		if (element.events && element.events[type]) {
			delete element.events[type][handler.$$guid];
		}
	}
};


function handleEvent(event) {
  // grab the event object (IE uses a global event object)
  event = event || window.event;
  // get a reference to the hash table of event handlers
  var handlers = this.events[event.type];
  // execute each event handler
  for (var i in handlers) {
    this.$$handleEvent = handlers[i];
    this.$$handleEvent(event);
  }
};


 //-->



var _thumbnails = null;
var _currentIndex = null;


function ShowInGallery2(containerId, anchor, e, target)
{
	var gallery = document.getElementById(target);

	if (gallery)
	{
		var galleryImage = document.getElementById("galleryImg");

	    if (galleryImage)
	    {
	        var sourceImage = GetImageFromAnchor(anchor);
	        
	        if (sourceImage)
	        {	    
	            var pic = new GalleryPic(sourceImage.src, sourceImage.alt);
	            
		        galleryImage.src = pic.src;
		        galleryImage.alt = pic.title;

                if (_thumbnails == null)
                {	
		            LoadThumbnailInfo(containerId);
		        }
    		
		        ConfigureNextButton(pic.src);
    		
			var myWidth = 0;
  			if( typeof( window.innerWidth ) == 'number' ) {
    							//Non-IE
  						  myWidth = window.innerWidth;
 						   
 				 } else if( document.documentElement && ( document.documentElement.clientWidth) ) {
   			 //IE 6+ in 'standards compliant mode'
   					 myWidth = document.documentElement.clientWidth;
 					   
				  } else if( document.body && ( document.body.clientWidth ) ) {
 			   //IE 4 compatible
 					   myWidth = document.body.clientWidth;
 					   
				  }
 


		       
			var posy = 0;
			if (!e) var e = window.event;
			if (e.pageY) 	{							
							posy = e.pageY;
							}
			else if (e.clientY) {								
								posy = e.clientY + document.body.scrollTop
								+ document.documentElement.scrollTop;
							}
			// posy contain the mouse position relative to the document
			
			posy = posy-400;
			posx = (myWidth - 960) / 2;			 


			gallery.style.position="absolute";
			gallery.style.top=posy+'px';
			gallery.style.left=posx+'px';
		        gallery.style.display="block";
		        gallery.style.visibility="visible";
		    }
	    }
    }

	return false;
}



function GetImageFromAnchor(anchor)
{
    var images = anchor.getElementsByTagName("img");
    
    if (images != null && images.length > 0)
    {
        return images[0];
    }
    
    return null;
}


function GalleryPic(imageUrl, title)
{
    this.src = imageUrl.replace("\/Thumbnails\/", "\/img\/");
    this.src = this.src.replace("\/s_small\/", "\/");
    this.title = title;
}

function LoadThumbnailInfo(containerId)
{
	var container = document.getElementById(containerId);

	if (container != null)
	{
		var candidates = container.getElementsByTagName("img");
		
		if (candidates != null)
		{
		    var ti = 0;
		
            for(ci=0; ci < candidates.length; ci++)
            {
                if (_thumbnails == null)
                {
                    _thumbnails = new Array();
                }  
                
                _thumbnails[ti] = new GalleryPic( candidates[ci].src, candidates[ci].alt );                
                                   
                ti++;   
            }
		}	
	}	
}




function ConfigureNextButton(imageUrl)
{       
    var nextButton = document.getElementById("galleryNext");
        
    if (nextButton)
    {
        if (_thumbnails != null && _thumbnails.length > 1)
        {        
            _currentIndex = 0;
        
            for(ti = 0; ti < _thumbnails.length; ti++)
            {            
                if (_thumbnails[ti].src.search(imageUrl) >= 0)
                {
                    _currentIndex = ti;
                    break;
                }
            }
            
            nextButton.style.visibility = "visible";
        }   
        else
        {
            nextButton.style.visibility = "hidden";
        }        
    }    
}


function ShowNext()
{
    if (_thumbnails != null && _thumbnails.length > 0)
    {
        if (_currentIndex == null)
        {
            _currentIndex = 0;
        }
    
        _currentIndex++;
        
        if (_currentIndex >= _thumbnails.length)
        {
            _currentIndex = 0;
        }
        
		var galleryImage = document.getElementById("galleryImg");

	    if (galleryImage)
	    {
		    galleryImage.src = _thumbnails[_currentIndex].src;
		    galleryImage.alt = _thumbnails[_currentIndex].title;
        }
    }
    
    return false;
}


function CloseGallery()
{
	var gallery = document.getElementById("gallery");	

	if (gallery)
	{
		gallery.style.display="none";
		gallery.style.visibility="hidden";
	}

	return false;
}


function ShowInGalleryBigPic(containerId, e)
{
	var gallery = document.getElementById("gallery");

	if (gallery)
	{
		var galleryImage = document.getElementById("galleryImg");

	    if (galleryImage)
	    {
	        var sourceImage = GetImageFromContainer(containerId);	        
					
	        if (sourceImage)
	        {	    
	            var pic = new GalleryPic(sourceImage.src, sourceImage.alt);
	            
		        galleryImage.src = pic.src;
		        galleryImage.alt = pic.title;

                if (_thumbnails == null)
                {	
		            LoadThumbnailInfo(containerId);
		        }
    		

			var myWidth = 0;
  			if( typeof( window.innerWidth ) == 'number' ) {
    							//Non-IE
  						  myWidth = window.innerWidth;
 						   
 				 } else if( document.documentElement && ( document.documentElement.clientWidth) ) {
   			 //IE 6+ in 'standards compliant mode'
   					 myWidth = document.documentElement.clientWidth;
 					   
				  } else if( document.body && ( document.body.clientWidth ) ) {
 			   //IE 4 compatible
 					   myWidth = document.body.clientWidth;
 					   
				  }


		        ConfigureNextButton(pic.src);
    		
			var posx = 0;
			var posy = 0;
			if (!e) var e = window.event;
			if (e.pageX || e.pageY) 	{
							posx = e.pageX;
							posy = e.pageY;
							}
			else if (e.clientX || e.clientY) {
								posx = e.clientX + document.body.scrollLeft
								+ document.documentElement.scrollLeft;
								posy = e.clientY + document.body.scrollTop
								+ document.documentElement.scrollTop;
							}
			// posx and posy contain the mouse position relative to the document
			
			posy = posy-300;
			posx = (myWidth - 960) / 2;
			 
			gallery.style.position="absolute";
			gallery.style.top=posy+'px';
			gallery.style.left=posx+'px';
		        gallery.style.display="block";
		        gallery.style.visibility="visible";


		    }
	    }
    }

	return false;
}


function GetImageFromContainer(containerId)
{
    var images = document.getElementById(containerId).getElementsByTagName("img");
    
    if (images != null && images.length > 0)
    {
        return images[0];
    }
    
    return null;
}



