/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
var MapTips = new Class({
options:{
el:''
},
delay:null,
initialize: function(options){
this.setOptions(this.options, options);
this.el = $$(this.options.el);
this.el.each(function(el,i){
el.addEvent('mouseenter', function(){
$clear(this.delay);
this.delay=this.entered.delay(500, this, el);
}.bind(this));
el.addEvent('mouseleave', function(){
$clear(this.delay);
}.bind(this));
}.bind(this));
},
entered: function(el){
this.top = new Element('div', {'id': 'tip-top'}).inject(document.body);
this.container = new Element('div', {'html':el.get('html'), 'class': 'tip'}).inject(this.top);
var p=el.getParent().getPosition(document.body);
this.top.position({
x:p.x+el.getStyle('left').toInt()-200
,y:p.y+el.getStyle('top').toInt()-230
});
this.top.addEvent('mouseleave', this.leave.bind(this, el))
},
leave: function(el){
this.top.dispose();
}
});
MapTips.implement(new Events);
MapTips.implement(new Options);
/////////////////////////////////////////////////////////////////////////////////////
var PlaceHolder = new Class({
options:{
links:'input.clear-text'
},
initialize: function(options){
this.setOptions(this.options, options);
this.links = $$(this.options.links);
this.text=[];
this.links.each(function(el,i){
this.text[i]=el.getProperty('value');
el.addEvent('focus',function(e){
this.start(el, i);
}.bind(this));
el.addEvent('blur',function(e){
this.back(el, i);
}.bind(this));
}.bind(this));
},
start: function(el, i){
var v=el.getProperty('value');
if(v==this.text[i]){
el.setProperty('value', '');
}
},
back: function(el, i){
var v=el.getProperty('value');
if(v==''){
el.setProperty('value', this.text[i]);
}
}
});
PlaceHolder.implement(new Events);
PlaceHolder.implement(new Options);
/////////////////////////////////////////////////////////////////////////////////////
var Url = new Class({
initialize: function(params){
},
formatUrl: function(str){
str = str.toString();
var index = str.indexOf('#');
if(index > -1){
str = str.substring(0, index);
}
return str;
},
formatHash: function(str){
str = str.toString();
var index = str.indexOf('#');
if(index > -1){
str = str.substr(index+1);
}
return str;
},
load: function(){
this.url = window.location.href.toString();
},
getHash: function(){
this.load();
return this.formatHash(this.url);
}
});
/////////////////////////////////////////////////////////////////////////////////////
var pageLoaderAjax = new Class({
options:{
links:'div.small-text-list h3 a'
, conteiner:'div.small-text-list'
, activeId:'small-text-list-active'
, loadInTo:'p'
, data:'a-sub-text'
, loaderHtml:'
'
, duration: 500
//, onSuccess: Class.empty
},
initialize: function(options){
this.setOptions(this.options, options);
this.links = $$(this.options.links);
this.text=[];
this.textLoader=[];
this.links.each(function(el,i){
this.text[i]='';
this.textLoader[i]=false;
el.addEvent('click',function(e){
if(e != undefined){
new Event(e).stop();
}
this.start(el, i);
}.bind(this));
}.bind(this));
},
start: function(el, i){
var parent = el.getParent(this.options.conteiner);
var contentEl = parent.getChildren(this.options.loadInTo).getLast();
if(parent.hasClass(this.options.active)) {
if(contentEl.getChildren('img')!=''){
if(contentEl.getChildren('img').hasClass('img-loader')){
return;
}
}
new Fx.Morph(contentEl, {duration: this.options.duration, transition: Fx.Transitions.Quad.easeIn})
.start({
'height': [contentEl.getSize().y, 0]
}).chain(function(){
parent.removeClass(this.options.active);
this.text[i]=contentEl.get('html');
contentEl.set('html', '');
contentEl.setStyles({
'display': 'none'
,'height': 'auto'
});
}.bind(this));
return;
}
parent.addClass(this.options.active);
contentEl.setStyles({
'overflow': 'hidden'
,'display': 'block'
});
if(this.text[i]!=''){
contentEl.set('html', this.text[i]);
//this.complete();
return;
}
if(this.options.loaderHtml!=''){
contentEl.set('html', this.options.loaderHtml);
}
contentEl.set('load',{
url: el.href,
method: 'get'
,data: this.options.data
,onSuccess: this.complete.bind(this)
}).load();
},
setContent: function(){
//var temp = new Element('div').setProperties({id:'temp'}).setStyles({display:'none'}).injectInside(document.body);
//d(text);
//parent.getChildren(this.options.loadInTo).set('html', text);
//var newEl = $('temp').getElement('#'+this.options.loadFrom);
//$(this.options.loadInTo).replaces($('temp'));
//newEl.replaces($(this.options.loadInTo));
//newEl.setProperties({id:this.options.loadInTo});
//temp.dispose();
//this.options.onComplete();
this.success();
//contentFunctions();
},
success: function(){
this.onSuccess();
},
/*onSuccess: function(){
this.fireEvent('success', arguments).callChain();
},*/
complete: function(){
contentFunctions();
}
});
pageLoaderAjax.implement(new Events);
pageLoaderAjax.implement(new Options);
/////////////////////////////////////////////////////////////////////////////////////
//predefinied clases
var ProductMenu = new Class({
initialize: function(params){
//product list subnavigation animation
var prList=$$("#product-menu li.pr-s a.pr-s");
if(prList.length>0)
$$("#product-menu li ul").setStyle('opacity', 0);
var prHeight=31;
var prHeightOr=20;
var fx = new Fx.Elements(prList, {wait: false, duration: params.sub.duration, transition: Fx.Transitions.Back.easeOut});//transition: Fx.Transitions.Back.easeOut
var fxSub = new Fx.Elements($$("#product-menu li.over"), {wait: false, duration: params.sub2.duration, transition: Fx.Transitions.Quint.easeOut});//transition: Fx.Transitions.Back.easeOut
prList.each(function(pr, i) {
pr.addEvent("mouseenter", function(event) {
var o = {};
o[i] = {height: [pr.getStyle("height").toInt(), prHeight], lineHeight: [pr.getStyle("line-height").toInt(), prHeight]};
prList.each(function(other, j) {
if(i != j) {
var h = other.getStyle("height").toInt();
var lh = other.getStyle("line-height").toInt();
if(h != prHeightOr){
o[j] = {height: [h, prHeightOr], lineHeight: [lh, prHeightOr]};
}
}
});
fx.start(o)
.chain(function(){
var subMenu=$$("#product-menu li.over ul");
if(1==subMenu.length){
var subO={};
subO[0]={opacity:[0,1]};
subO[0]={opacity:[0,1], width:[0,520]};
fxSub.elements=subMenu;
fxSub.start(subO);
}
});
pr.getParent().addClass('over');
});
//onmouse leave
pr.getParent().addEvent("mouseleave", function(event) {
//fxSub.stop();
$$("#product-menu li ul").setStyle('opacity', 0);
pr.getParent().removeClass('over');
});
});
$$("#product-menu").addEvent("mouseleave", function(event) {
var o = {};
prList.each(function(pr, i) {
o[i] = {height: [pr.getStyle("height").toInt(), prHeightOr], lineHeight: [pr.getStyle("line-height").toInt(), prHeightOr]};
});
fx.start(o);
});
}
});
/////////////////////////////////////////////////////////////////////////////////////
var ShowMenu = new Class({
initialize: function(params){
var menu=$$(params.obj);
var o={};
menu.setStyle('margin-left', -250);
var o={};
var fx = [];
var timer=0;
menu.each(function(m,i){
fx[i] = new Fx.Style(m, 'margin-left', {wait: false, duration: params.duration, transition: Fx.Transitions.backOut});
timer+=100;
fx[i].start.delay(timer, fx[i], 0);
});
}
});
/////////////////////////////////////////////////////////////////////////////////////
var TopMenu = new Class({
initialize: function(params){
//product list subnavigation animation
var menu=$$("#top-menu > ul > li > a");
var colorOriginal='ffffff'.hexToRgb(true);
var textIndentOriginal=50;
var fx = new Fx.Elements(menu, {wait: false, duration: params.duration, transition: Fx.Transitions.Quint.easeOut});//transition: Fx.Transitions.Back.easeOut
var menuColor={};
//$$("#top-menu li ul").setStyle('display', 'block');
menu.each(function(m, i) {
//terminator add for shadow
var ul=m.getNext('ul');
if(ul!=null){
var opened=false;
var ulHtml=ul.get('html');
//ul.remove();
var parent=m.getParent('li');
var el=new Element('div', {
'class': 'sub-menu-shadow',
'html': '