var modA = [];
var burl = "http://www.redpoint.co.uk/v2/";
var curl = "http://www.redpoint.co.uk/cgi-bin/";
var cext = 'RED';
var spacer = '-';var rsp = new RegExp(spacer,'g');

var gUndo;
var gRan = [];
var gPro = 'Promotions.html';
var z5A = ['top left','top right','bottom right','bottom left'];
var mAA = ['background-color','background-image','background-repeat','background-position'];
var durl = document.URL;
var ura = durl.replace(/\\/g,'/').split('/'),uri = unescape( ura.pop() ).replace(rsp,' ');
var urp = ura.join('/');
var uu;durl.test(/\?$/)?uu = true:uu = null;
var safari;Browser.Engine.webkit?safari = true:safari = null;
var ie6;/msie|MSIE 6/.test(navigator.userAgent)?ie6 = true:ie6 = null;

var endY = function(a,b){
if(b == $('questionresult') ){}//b.getParent('li.rowdiv').setStyle('background-color','#fff');
switch(a){
case 'news': if( !ie6 ){ //setMe();
rOver(); }break;
case 'search':
b.setStyles({'overflow':'hidden','overflow-y':'scroll','scroll':'scroll','background-color':'#fff','background-image':'none'});break;
}
}

var failY = function(a,b){
switch(a){
case 'latest': loadPromo(1); break;
default: b.setStyles('background','#fff none top left no-repeat').set('html','<span class="s-fail">Sorry, the request to the remote server failed: unable to connect..</span>');
}
}

var sendER = function(a,b,c,d,e){
var hh = 'auto';if(c && c.getCoordinates().height < 100){hh = '100px';}if( a == 'search' && $('search_result') ){hh = '22em';}
var snk = new Request.HTML({url:curl+a+cext+'.pl?'+b,evalScripts:d,update:c,
onRequest: function(){ if(e){e.setStyle('background','transparent url(IMAGE/loading.gif) center center no-repeat').set('html','<span class="s-req"></span>');} },
onSuccess: function(tree,xml,htm,js){if(a == 'latest'){gUndo?loadPromo():failY(a);} else {c.setStyles({'height':hh,'background-color':'transparent','background-image':'none','background-position':'top left','background-repeat':'repeat-x'});endY(a,e);}},
onFailure: function(){failY(a,e);}
});

snk.get();
}

var crY = function(a,b,c){
for(var i = a;i < c.length;i++){
b[i]+= '_'+c[a].replace(/ /g,'-');
}
return b;
}

var validF = function(a,b){
var eA = a.elements;
var dA = [];
var rA = [];
var q = 0;
var s = '';
for(var i=0;i<eA.length;i++){
var d;
var c = eA[i];
var f = eA[i].type;
if( c.name && c.name.test(/^pre_/) ){
var pA = c.name.split('_');
var r1 = /^(email)|(e-mail)$/i;
var r2 = /^(tel)|(telephone)|(phone)$/i;
var r3 = /^([0-9 ]+)$/i;
var r5 = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
if(f == 'text' || f == 'textarea'){ if(!(c.value) || c.value == "" || c.value == ' '){dA.push('Please complete the '+pA[1]+' field.');} else {
if( r1.test(pA[1]) ){ if(c.value.indexOf('@') < 0 || c.value.indexOf('.') < 0 ){dA.push('Please enter a valid email address.');} }
if( r2.test(pA[1]) ){ if( r3.test(c.value) == false ){dA.push('Please enter a valid phone number.');} }
} }
if(f == 'select-one'){if(c.selectedIndex < 1 || c.options[c.selectedIndex].text == ""){dA.push('Please select from the '+pA[1]+' dropdown.');}}
if(f == 'select-multiple' && a.selectedIndex < 1){dA.push('Please choose from the '+pA[1]+' options.');}
if(f == 'checkbox' && !(c.checked) ){dA.push('Please check the '+pA[1]+' box.');}
if(f == 'radio'){ if(c.name != s){s = c.name;q++;}if(c.checked){rA[q] = '';}if(rA[q] == ''){} else {rA[q] = pA[1];} }
} else {
if(f == 'checkbox'){c.checked?c.value = 'checked':c.value = "";}
}
}

for(var k=1;k<rA.length;k++){if(rA[k] != ''){dA.push('Please choose from the '+rA[k]+' group');}}
if( b.test(/(register)|(library)/) ){ if(a.elements[0].value.indexOf('@') < 0 || a.elements[0].value.indexOf('.') < 0){dA.push('Please enter a valid email address.');} }
if(dA && dA.length > 0){alert( dA.join('\n') );return false;} else {return true;}
}

var upCrumb = function(a){
if( a && $$(',crumb') ){
a = a.replace(/\?$/,'').replace(/\.html$/,'');
var c = a.split('_');
//if(c.length > 1){
var nA = [];
for(var i = 0;i < c.length;i++){ nA[i] = c[0].replace(/ /g,'-'); }
for(var d = 1;d < c.length;d++){ if( c[d] ){nA = crY(d,nA,c);} }
for(var w = 0;w < c.length;w++){c[w] = '<strong><a href="'+nA[w]+'.html">'+c[w]+'</a></strong>';}
$$('.crumb').set( 'html',c.join('<span class="textQm" style="color:#000;"> &gt; </span>') ); 
} else {
$$('.crumb').set( 'html','&nbsp;');
}
//} 
}



var upLink = function(){var b = uri;
$$('.hori').each(function(z,i){
z.getElements('li.nav').each(function(zz,ii){
if( zz.getElement('a') && zz.getElement('a').get('href') ){
var s = 0;var d = unescape(zz.getElement('a').get('href'));d = d.replace(/\-/g,' ').replace(/^\//,'');
var c = b.split('_');if(c[0] && c[0]+'\.html' == d){s++;}
if(d == b || s > 0){zz.getElement('a').addClass('off');}
}
});
});
upCrumb(b);
}

var rOver = function(){
var b = '8';if( uri.test(/library/i) ){b = '6';}
$$('.rover').addEvents({ 'mouseenter': function(){ this.setStyles({'background-color':'#dedee8','color':'#fff'}) },'mouseleave': function(){ this.setStyles({'background-color':'transparent','color':'#1f2067'}); } }); 
}

var rollAdd = function(a,b){ $(a).addEvents({ 'mouseenter': function(){this.setStyle(mAA[3],z5A[b]);},'mouseleave': function(){this.setStyle(mAA[3],z5A[0]);} }); }
var rollMe = function(){ for(var n=1;n < z5A.length;n++){$$('div#copydiv .sprite'+n).each(function(z,i){ $(z).removeEvents();rollAdd(z,n); });} }
var swfMe = function(){if(Browser.Plugins.Flash.build ){ $$('a.flash').each(function(z,i){var m =  z.getParent('dl');var s = new Swiff(z.get('href'),{ id:'swf_'+i,width:m.getStyle('width'),height:m.getStyle('height'),params:{wmode:'opaque',bgcolor:m.getStyle('background-color')},container:m });m.setStyle('background-image','none');z.dispose(); }); }}

var doRotate = function(a,b,c,d,e){ return new Rotator({'outer':a,'inner':b,'items':c,'controls':d,'dir':e}); }

var loadPromo = function(a){
$$('dd.promo').each(function(z,i){

if(a){
z.setStyle('background','#c00 url(LIB/blankpromo.gif) top left repeat-x');
} else {
var c = z.getParent('dl');var d = [c.getSize().x,c.getSize().y],t = z.getElement('a').getProperty('title');
for(var i=0;i<gUndo.length;i++){
var f = gUndo[i][1],g = 'west',h = 0;

if( gUndo[i][0].test(/^rotate_d|all_d/) ){
var u = c.getParent('li');

if( t.test(/^link to our latest promotions/) ){
var nw = new Element('dl',{'class':'cs-inner','style':'position:relative; margin:0; float:left;'}).replaces(c);
u.addClass('rotator').setStyles({'height':'auto','background':'transparent none no-repeat','overflow':'hidden'});
if( z.get('class').test(/(north|south|east|west)/) ){g = RegExp.$1;if( g.test(/north|south/) ){h = 1;}}g == 'east'?g = -1:g = 1;
for(var j=0;j<f.length;j++){ new Element('dd',{'class':'cs','html':f[j]}).setStyles({'float':'left','clear':'none'}).inject(nw); }
var p = doRotate(u,nw,'dd.cs',h,g);
} else {
if( t.test(/^view our latest promotions/) ){
for(var j=0;j<f.length;j++){ new Element('dd',{'class':'cs','html':f[j]}).setStyles({'float':'none','clear':'both'}).inject(z,'after'); }
z.destroy();
}
}

} else {
if( t == 'link to promotions page' || t == gUndo[i][0] ){var x = new Element('dl',{'html':f[0]}).setStyles({'width':d[0],'height':'auto'}).replaces(c);gUndo.erase(gUndo[i]);}
}

}

}

});
}

var rotateMe = function(){
$$('dd.rotator').each(function(z,i){
var g = 'west',h = 0;if( z.get('class').test(/(north|south|east|west)/) ){g = RegExp.$1;if( g.test(/north|south/) ){h = 1;}}g == 'east'?g = -1:g = 1;
var u = z.getParent('dl'),d = [z.getSize().x,z.getSize().y],f = z.getElements('dl');
u.setStyles({'width':d[0],'height':d[1],'overflow':'hidden'});
z.removeClass('rotator').addClass('cs-inner').setStyles({'position':'relative','width':'auto','height':'100%','margin':0,'float':'left'});
for(var j=0;j<f.length;j++){ f[j].addClass('cs').setStyles({'width':d[0],'height':'auto','float':'left','clear':'none','overflow':'hidden'}); }
var p = doRotate(u,z,'dl.cs',h,g);
});
}

var promoMe = function(){
var a,b = [];
$$('dd.promo').each(function(z,i){
z.getParent('dl').setStyle('background','#fff url(IMAGE/loading.gif) center center no-repeat');
a = z.getElement('a');
var p = a.getProperty('title').split(',');
if(p[0] == 'view our latest promotions'){p[0] = 'all_d';} else if(p[0] == 'link to our latest promotions'){p[0] = 'rotate_d';} else {if(p[0] == 'link to promotions page'){p[0] = 'random_d';}}
b.push( p.join(',') );
if( z.get('class').test(/(north|south|east|west)/) ){z.getParent().addClass(RegExp.$1);}
});
if(b.length){ sendER('latest','promo='+gPro+'&target='+b.join('|'),null,'true'); }
}

var sendY = function(a,b){
if( validF(a,b) ){
var c = $(a).get('id')+'_result';$(c)?c = $(c):c = $(a).getParent('li');
var oH = new Hash();
$(a).getElements('input,textarea,radio,select').each(function(z,i){
if(z.name && z.type != 'submit'){if( z.type.test('select') ){oH.set(z.name,z.options[z.selectedIndex].value);} else if( z.type.test('radio') ){if(z.get('checked') ){oH.set(z.name,z.value);}} else {oH.set(z.name,z.value);}
}
});
sendER(b,oH.toQueryString(),c,'',c);
}
}

var formOut = function(a){
var c = "search";
if( a.getElement('.form-sg') ){

if(a.getElement('.form-sg').get('name').test('pre_search') ){
sendY(a,c);
} else if(a.getElement('.form-sg').get('name').test('pre_email')){
c = "mail";
sendY(a,c);
} else if(a.getElement('.form-sg').get('name').test('pre_quickfind') ){
var m = a.getElement('.form-sg').selectedIndex;
if(m > 0){window.location = a.getElement('.form-sg').options[m].value;}
} else {
//
}

} else {
sendY(a,'mail');
}
}

var focusMe = function(a){ a.addEvents({ 'focus':function(){this.set('value','').setStyle('background-color','#FFCCCC'); },'blur':function(){this.setStyle('background-color','#fff');} }); }

var sendMe = function(){
$$('form').each(function(z,i){
var v = z.getElement('.form-sm');var w = z.getElement('.form-s');var x = z.getElement('.form-sg');var y = z.getElement('.form-o');
if(x){ if( !(x.get('name').test('pre_quickfind')) ){ focusMe(x); } }
if(w){ w.addEvent('click',function(){ formOut(z); }); } else if(v){ v.addEvent('click',function(){ formOut(z); }); } else { if(y){y.addEvent('click',function(){ formOut(z); });} }
});

}

var getMe = function(a,b,c){ sendER( a,b.toQueryString(),$(c),'',$(c) ); }

var isie6 = function(){
$$('div','ul','dl').each(function(z,i){ var a = z.getStyle('background-image');if( a.test(/\.PNG\)$/i) ){a = a.replace('PNG','GIF').replace('png','gif');z.setStyle('background-image',a);} });
$$('.hori a').setStyles({'height':'22px'});
}

var pickMe = function(a){ a.each(function(z,i){ if( $(z) ){var d = $(z).getElement('a');if( d && d.get('class').test('news') ){var aH = new Hash({'news':d.get('title'),'list':$(z).get('id')});getMe( d.get('class'),aH,$(z) ); }} }); }

var newDrop = new Class({
Implements:Options,options:{duration:250,transition:Fx.Transitions.linear},//duration:500,transition:Fx.Transitions.Bounce.easeOut
initialize:function(a,b){

this.menu = a;
this.setOptions(b);
this.menu = $(this.menu);
if(!$defined(this.menu)){return false;}
if(this.menu.get('tag')!='ul'){
this.menu = this.menu.getFirst('ul');
if( !$defined(this.menu) ){return false;}
}

this.menu.setStyles({'overflow':'hidden','height':'auto'});//,'margin-left':(Browser.Engine.trident?1:-1)
this.createSubmenu(this.menu);
this.menu.getChildren('li').addClass('nav').setStyles({'float':'left',display:'block',top:0});
var a = new Element('li',{html:"&nbsp;",styles:{clear:'both',display:(Browser.Engine.trident?'inline':'block'),position:'relative',top:0,height:0,width:0,fontSize:0,lineHeight:0,margin:0,padding:0}}).inject(this.menu);
this.menu.setStyles({'height':'auto','visibility':'visible','overflow':'visible'});
},

createSubmenu:function(c){
var d = c.getChildren('li');
var e = 0;d.each(function(a){a.setStyles({position:'relative',display:'block',top:-e,zIndex:1});
e+=a.getSize().y;
var b = a.getFirst('ul');
if($defined(b)){b.setStyle('display','none');
if(c == this.menu){var x = 0;var y = a.getSize().y;this.options.link = 'cancel';a.store('animation',new Fx.Elements($$(b,b.getChildren('li')).setStyle('opacity',0),this.options));
} else {
var x=a.getSize().x-a.getStyle('border-left-width').toInt();var y=-a.getStyle('border-bottom-width').toInt();this.options.link='chain';a.store('animation',new Fx.Elements($$(b,b.getChildren('li')).setStyle('opacity',0),this.options));e=a.getSize().y+a.getPosition(this.menu).y;
}

b.setStyles({position:'absolute',display:'block',top:y,left:x,marginLeft:-x,opacity:0});
this.createSubmenu(b);
a.addEvents({mouseenter:this.showChildList.bind(this,a),mouseleave:this.hideChildList.bind(this,a)}).addClass('sub')}},this);
},

showChildList:function(b){
var c = b.getFirst('ul');
var d = $$(c.getChildren('li'));
var e = b.retrieve('animation');
if(b.getParent('ul') != this.menu){e.cancel();e.start({0:{opacity:1,marginLeft:0},1:{opacity:1}});var f={};
} else {
var f = {0:{opacity:1}};
}
d.each(function(a,i){f[i+1]={top:0,opacity:1}});
b.setStyle('z-index',999);
e.start(f);
},

hideChildList:function(b){
var c = b.retrieve('animation');
var d = b.getFirst('ul');
var e = $$(d.getChildren('li'));
var f = 0;var g = {};
e.each(function(a,i){g[i+1]={top:-f,opacity:0};f+=a.getSize().y});
b.setStyle('z-index',1);
if(b.getParent('ul')!=this.menu){g[1]=null;c.cancel();c.start(g);c.start({0:{opacity:0,marginLeft:-d.getSize().x},1:{opacity:0}})
} else {
g[0] = {opacity:0};c.start(g);
}
}

});

var enTab = new Class({
Implements: [Events, Options],
options: {
b1: '', //b1: '<b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b>',
b2: '', //b2: '<b class="b4b"></b><b class="b3b"></b><b class="b2b"></b><b class="b1b"></b>',
show: 0,
selector: '.is-tab',
classWrapper: 'tab-wrap',
classMenu: 'tab-menu',
classContainer: 'tab-inner',
onSelect: function(toggle,container,index){toggle.addClass('tab-selected');container.setStyle('display','');},
onDeselect: function(toggle, container, index){toggle.removeClass('tab-selected');container.setStyle('display','none');},
onAdded: Class.empty,getContent: null,ajaxOptions:{},cache:true},

initialize: function(element,options){this.element = $(element);this.setOptions(options);this.selected = null;this.build();},

build: function() {
this.tabs = [];
this.menu = new Element('dl',{'class':this.options.classMenu});
this.wrapper = new Element('dl',{'class':this.options.classWrapper+' t-c1'});
var n = this.element.getElements(this.options.selector).length;
this.element.getElements(this.options.selector).each(function(z,i){
if( z.getNext() ){
z.setStyle('width','auto');
var v = '<dl class="'+z.get('class')+'"'+z.get('html')+'</dl>';
var w = this.options.b1+'<dl class="'+z.getNext().get('class')+' tab-element">'+z.getNext('dl').get('html')+'</dl>'+this.options.b2;
this.addTab(v,w,n,i);
}
}, this);
this.element.empty().adopt(this.menu, this.wrapper);
var tA = [];$(this.menu).getElements('dl.tab-heads').each(function(z,i){ tA.push(z.getDimensions().height); });
var l = Math.max.apply(Math,tA);
$(this.menu).getElements('dl.tab-heads').each(function(z,i){ z.setStyle('margin-top',+parseInt(l - (tA[i] - 1))+'px') });
if(this.tabs.length){this.select(this.options.show);}
},

addTab: function(a,b,n,m){
var container = new Element('dd',{'styles':{'display':'none'} }).set('html',b).addClass(this.options.classContainer).inject(this.wrapper);
var p = this.tabs.length;
var x = parseInt((100/n)-1);
if(m > 0){m = '-1px';}
var evt = (this.options.hover)?'mouseenter':'click';
var tab = { container:container,toggle:new Element('dd',{'class':'tab-heads'}).set('html',this.options.b1+a+this.options.b2).addEvent(evt,this.onClick.bindWithEvent(this,[p])).inject(this.menu) };//'styles':{'width':x+'%','margin-left':m}
this.tabs.push(tab);
return this.fireEvent('onAdded',[tab.toggle,tab.container,p]);
},

onClick: function(evt, index){this.select(index);return false;},

select: function(index) {
if (this.selected === index || !this.tabs[index]){return this;}
var tab = this.tabs[index];
var params = [tab.toggle,tab.container,index];
if(this.selected !== null){
var current = this.tabs[this.selected];
params.extend([current.toggle,current.container,this.selected]);
this.fireEvent('onDeselect',[current.toggle,current.container,this.selected]);
}
this.fireEvent('onSelect',params);
this.selected = index;
return this;
}

});

var setTab = function(){ $$('li.tabs').each(function(z,i){if( z.getElement('dl.is-tab') ){ var t = new enTab(z); } }); }

var setRandom = function(){
$$('dd.random').each(function(z,i){
var r = z.getFirst().get('text'),m = r.split(','),f = m.shift();i = Math.floor(Math.random()*m.length);
z.set('html','<a href="Whats-New_Latest-Offers.html"><img src="LIB/'+f+'_'+m[i]+'" width="200" height="175" alt="Latest Offer" /></a>');
});
}

var imgBox = function(){ 
$$('dd.imagebox a').slimbox({},null,function(z){return [z.href,z.getFirst().alt];});
$$("a").filter(function(z){ return z.hasClass('imagebox');}).slimbox({},null,function(z){return (this == z) || this.hasClass('gallery'); });
}
var navMe = function(a){ a.each(function(z,i){ var u = new newDrop(z.getElement('ul')); }); }
var css3Me = function(){$$('a.blank').setProperty('target','_blank');document.body.setStyle('overflow-y','scroll');}

function popup(url,nme,hgt,wgt){
var params='toolbar=no,height='+hgt+',width='+wgt+',location=no,scrollbars=yes,status=no,menubar=no,resizable=no';
if(self && self.screen && self.screen.width){
params+=",left="+((self.screen.width-wgt)/2);
params+=",top="+((self.screen.height-hgt)/2);
}
window.open(url,nme,params);
}

window.addEvent('domready',function(){
if(safari){ $$('body').addClass('safari');}
navMe( $$('.pagenav') );
setRandom();
upLink();
rollMe();
if(ie6){ isie6(); } else { if( !$('newstag') && !$('newsresult') && !$('newslist') && !$('newssection') ){rOver();} }
setTab();
rotateMe();
promoMe();
swfMe();
$$('.hori').setStyle('visibility','visible');
sendMe();
imgBox();
css3Me();
});

