/* ======================================================================

Walkers Corporate Site	::	Javascript [getting a bity bloated and outdated]

=======================================================================*/


var globalRoot = 'http://walkersshortbread.com/'

/* ======================================================================

domReady :)

=======================================================================*/
window.addEvent('domready', function(){
	
	// the dock nonsense was removed a while ago, but
	// the following lines were screwing with IE9


	// /*
	// Setup Dock
	// ------------------------------------*/
	// if($$('#dock li').length>0){ loadDock(); }

	// /*
	// Custom ToolTips on Dock Items
	// ------------------------------------*/
	// var customTips = $$('.tooltip');
	// var toolTips = new Tips(customTips, {
	// 	onShow: function(toolTipElement){ toolTipElement.fade(.9); toolTipElement.setStyle('z-index',1000); },
	// 	onHide: function(toolTipElement){ toolTipElement.fade(0); toolTipElement.setStyle('z-index',1); }
	// });

	// //loop through each				   
	// customTips.each(function(el,i){
	// 	if(el.alt){
	// 	    el.alt = "";
	// 	};
	// });

	/*
	Setup Breadcrumb delimiters
	------------------------------------*/
	if($$('#breadcrumbs a').length>0){ addDelims('&gt;'); }
	
	/*
	Setup Text Replacement
	------------------------------------*/
	swapTxt('.inner h2', 'bembo');
	swapTxt('.hp_c1 h1', 'bembo');
	//swapTxt('.hp_c2 h1', 'bembo');
	swapTxt('.hp_c3 h1', 'bembo');
	swapTxt('#thumbNav h2', 'bembo');
	
	$$('#wrapper a').each(function(e,i){
		if(e.id == 'mapuk' || e.id == 'mapusa'){
			e.href = e.href+'Popup';
			e.addClass('Popup'); 
		}						
	});
	if($$('.Popup').length > 0){
	  var initMultiBox = new multiBox('Popup', {
		  descClassName: '',
		  path: 'http://www.avian.co.uk/UserFiles/Flash/media/',
		  useOverlay: false,
		  maxWidth: 777,
		  maxHeight: 437,
		  addDownload: false,
		  pathToDownloadScript: './Scripts/forceDownload.asp',
		  addRollover: false,
		  addOverlayIcon: false,
		  addChain: false,
		  recalcTop: true
	  });
	};
	
	/*
	transparancy for IE6
	------------------------------------*/
	if(Browser.Engine.trident && Browser.Engine.version<5){ supersleight.run(); }
	
	/*
	Alt tag overlay
	------------------------------------*/
	if($$('.rcol','.Popup').getElements('img'))
	{
		altTagOverlay();
	};
	
	

	/* Homepage Image rotation */
	if(exists('#banner_rotation')){
		var showDuration = 5000;
		var container = $('banner_rotation');
		var images = container.getElements('div');
		var currentIndex = 0;
		var interval;
		images.each(function(img,i){ 
			if(i > 0) {
				img.setStyle('position','absolute')
				img.set('opacity',0);
			}
		});
		var show = function() {
			images[currentIndex].fade('out');
			images[currentIndex = currentIndex < images.length - 1 ? currentIndex+1 : 0].fade('in');
		};
		window.addEvent('load',function(){
			interval = show.periodical(showDuration);
		});
	}
	
	if(exists('#scrapbook')){
		var obj = $('scrapbook')

		obj.sb = new ScrapBook({ 
			container	:	obj,
			columns		:	3,
			row_height	:	200
		})

	}	
	
});

/* ======================================================================

Functions

=======================================================================*/

/*
Breadcrumb Delimiters
------------------------------------*/
function addDelims(copy){
	$$('#breadcrumbs a').each(function(el,i){
		var delim = new Element('li').injectAfter(el.getParent('li'));
		delim.set('html', copy);
	});
}

/*
Text Replacement [needs sIFR Class]
------------------------------------*/
function swapTxt(els, face){
	if($$(els).length > 0){
		var initSIFR = new sIFR({
			elements: els,
			font: face
		});
	}
}

/*
Product Menu Dock
------------------------------------*/
function loadDock(){
	$$('#dock img').each(function(el,i){
		var parent = el.getParent('li');
		parent.setStyle('position', 'relative');
		parent.setStyle('width', 95);
		parent.setStyle('height', 95);
		dockElement(parent, el);	
	});
}

function dockElement(parent, img){
	img.title = img.alt;
	img.addClass('tooltip');
	img.setStyle('position', 'absolute');
	img.morph = new Fx.Morph(img, {link: 'cancel', duration: 'short', transition: Fx.Transitions.linear});
	img.morph.set({ 'width': 95, 'height': 96, 'margin-left': 0, 'margin-top': 0 });	
	img.addEvents({
		'mouseenter': function(){ 
			this.morph.start({ 'width': 135, 'height': 135, 'margin-left': -20, 'margin-top': -20 , 'z-index': 999});
			this.getParent().getParent().setStyle('z-index', 999);
	},
		'mouseleave': function(){
			this.morph.start({ 'width': 95, 'height': 95, 'margin-left': 0, 'margin-top': 0 , 'z-index': 1});
			this.getParent().getParent().setStyle('z-index', 1);
		}
	});
}

/*
Alt tag overlay
------------------------------------*/
function altTagOverlay()
{
	//grab images
	var arrImgs = $$('.rcol img','.Popup img');
	
	//loop through each				   
	arrImgs.each(function(el,i){
		if(el.alt)
		{
			//create div and wrap it around image
			var imgWrap = new Element('div').addClass('imgWrap').wraps(el).setStyles({
				position: 'relative',
				overflow: 'hidden',
				clear: 'both'
			});
			
			//create span to inject alt tag into
			var altSpan = new Element('span').addClass('altSpan').inject(imgWrap).setStyles({
				position: 'absolute',
				right: 0,
				bottom:0,
				background: '#fff',
				opacity: 0.85,
				padding: 5
			});
			
			//create span to inject alt tag span as we need to set opacity to 1
			var altSpanText = new Element('span').inject(altSpan).setStyles({
				position: 'static',
				background: 'none',
				opacity: 1,
				color: '#000',
				'font-size': '90%'
			});
			
			//set html text of span
			altSpanText.set('text',el.alt);

			// remove alt text
			el.alt = "";
		};
	});
};


/* ======================================================================

Classes

=======================================================================*/

/*
sIFR Text Replacement
------------------------------------*/
var sIFR = new Class({
    Implements : Options,
    options:{
        swfPath: './portals/walkers/flash/',
        font: 'bembo'
    },
    initialize:function(options){  
        this.setOptions(options);
        this.elements = $$(this.options.elements);
        this.elements.each(this.createSWF,this);
    },
    createSWF:function(el){
        var text = el.get('html');
        var dimension = el.getSize();
        var styles = el.getStyles('text-align','padding-top','padding-bottom','padding-left','padding-right','font-size','color','padding-left','line-height'); 
        var swf_width = dimension.x - ( styles['padding-left'].toInt() + styles['padding-right'].toInt() );
        var swf_height = dimension.y - ( styles['padding-top'].toInt() + styles['padding-bottom'].toInt() );
        var obj = new Swiff(this.options.swfPath+this.options.font+'.swf', {
            width: swf_width ,
            height: swf_height ,
            container:el,
            params: { wmode: 'transparent' },
            vars: {
                txt: text,
                w: swf_width ,
                h: swf_height ,
                textalign: styles['text-align'],
                textcolor: styles['color'],
                offsetTop: styles['padding-top']
            }
        });
    }
});


/* ======================================================================

Utility Functions

=======================================================================*/

/*
supersleight - transparancy for IE6
------------------------------------*/
var supersleight = function() {
	var root = false;
	var applyPositioning = true;
	// Path to a transparent GIF image
	var shim = './portals/walkers/script/x.gif';
	// RegExp to match above GIF image name
	var shim_pattern = /x\.gif$/i;
	var fnLoadPngs = function() { 
		if (root) { root = document.getElementById(root); }
		else{ root = document; }
		for (var i = root.all.length - 1, obj = null; (obj = root.all[i]); i--) {
			// background pngs
			if (obj.currentStyle.backgroundImage.match(/\.png/i) !== null) { bg_fnFixPng(obj); }
			// image elements
			if (obj.tagName=='IMG' && obj.src.match(/\.png$/i) !== null){ el_fnFixPng(obj); }
			// apply position to 'active' elements
			if (applyPositioning && (obj.tagName=='A' || obj.tagName=='INPUT') && obj.style.position === '')
			{ obj.style.position = 'relative'; }
		}
	};
	var bg_fnFixPng = function(obj) {
		var mode = 'scale';
		var bg	= obj.currentStyle.backgroundImage;
		var src = bg.substring(5,bg.length-2);
		if (obj.currentStyle.backgroundRepeat == 'no-repeat') { mode = 'crop'; }
		obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + mode + "')";
		obj.style.backgroundImage = 'url('+shim+')';
	};
	var el_fnFixPng = function(img) {
		var src = img.src;
		img.style.width = img.width + "px";
		img.style.height = img.height + "px";
		img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";
		img.src = shim;
	};	
	var addLoadEvent = function(func) {
		var oldonload = window.onload;
		if (typeof window.onload != 'function') { window.onload = func; } 
		else { window.onload = function() {
				if (oldonload) { oldonload(); }
				func();
			};
		}
	};	
	return {
		init: function() { addLoadEvent(fnLoadPngs); },
		limitTo: function(el) { root = el; },
		run: function() { fnLoadPngs(); }
	};
}();
 
 
/*
Check to see a given element exists
------------------------------------*/
function exists(chk){ 
	if($$(chk).length>0)
		return true;
	else
		return false; 
}

