/*
 * tools.scrollable 1.1.2 - Scroll your HTML with eye candy.
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/scrollable.html
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 *
 * Launch : March 2008
 * Date: ${date}
 * Revision: ${revision} 
 */
(function(b){b.tools=b.tools||{};b.tools.scrollable={version:"1.1.2",conf:{size:5,vertical:false,speed:400,keyboard:true,keyboardSteps:null,disabledClass:"disabled",hoverClass:null,clickable:true,activeClass:"active",easing:"swing",loop:false,items:".items",item:null,prev:".prev",next:".next",prevPage:".prevPage",nextPage:".nextPage",api:false}};var c;function a(o,m){var r=this,p=b(this),d=!m.vertical,e=o.children(),k=0,i;if(!c){c=r}b.each(m,function(s,t){if(b.isFunction(t)){p.bind(s,t)}});if(e.length>1){e=b(m.items,o)}function l(t){var s=b(t);return m.globalNav?s:o.parent().find(t)}o.data("finder",l);var f=l(m.prev),h=l(m.next),g=l(m.prevPage),n=l(m.nextPage);b.extend(r,{getIndex:function(){return k},getClickIndex:function(){var s=r.getItems();return s.index(s.filter("."+m.activeClass))},getConf:function(){return m},getSize:function(){return r.getItems().size()},getPageAmount:function(){return Math.ceil(this.getSize()/m.size)},getPageIndex:function(){return Math.ceil(k/m.size)},getNaviButtons:function(){return f.add(h).add(g).add(n)},getRoot:function(){return o},getItemWrap:function(){return e},getItems:function(){return e.children(m.item)},getVisibleItems:function(){return r.getItems().slice(k,k+m.size)},seekTo:function(s,w,t){if(s<0){s=0}if(k===s){return r}if(b.isFunction(w)){t=w}if(s>r.getSize()-m.size){return m.loop?r.begin():this.end()}var u=r.getItems().eq(s);if(!u.length){return r}var v=b.Event("onBeforeSeek");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}if(w===undefined||b.isFunction(w)){w=m.speed}function x(){if(t){t.call(r,s)}p.trigger("onSeek",[s])}if(d){e.animate({left:-u.position().left},w,m.easing,x)}else{e.animate({top:-u.position().top},w,m.easing,x)}c=r;k=s;v=b.Event("onStart");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}f.add(g).toggleClass(m.disabledClass,s===0);h.add(n).toggleClass(m.disabledClass,s>=r.getSize()-m.size);return r},move:function(u,t,s){i=u>0;return this.seekTo(k+u,t,s)},next:function(t,s){return this.move(1,t,s)},prev:function(t,s){return this.move(-1,t,s)},movePage:function(w,v,u){i=w>0;var s=m.size*w;var t=k%m.size;if(t>0){s+=(w>0?-t:m.size-t)}return this.move(s,v,u)},prevPage:function(t,s){return this.movePage(-1,t,s)},nextPage:function(t,s){return this.movePage(1,t,s)},setPage:function(t,u,s){return this.seekTo(t*m.size,u,s)},begin:function(t,s){i=false;return this.seekTo(0,t,s)},end:function(t,s){i=true;var u=this.getSize()-m.size;return u>0?this.seekTo(u,t,s):r},reload:function(){p.trigger("onReload");return r},focus:function(){c=r;return r},click:function(u){var v=r.getItems().eq(u),s=m.activeClass,t=m.size;if(u<0||u>=r.getSize()){return r}if(t==1){if(m.loop){return r.next()}if(u===0||u==r.getSize()-1){i=(i===undefined)?true:!i}return i===false?r.prev():r.next()}if(t==2){if(u==k){u--}r.getItems().removeClass(s);v.addClass(s);return r.seekTo(u,time,fn)}if(!v.hasClass(s)){r.getItems().removeClass(s);v.addClass(s);var x=Math.floor(t/2);var w=u-x;if(w>r.getSize()-t){w=r.getSize()-t}if(w!==u){return r.seekTo(w)}}return r},bind:function(s,t){p.bind(s,t);return r},unbind:function(s){p.unbind(s);return r}});b.each("onBeforeSeek,onStart,onSeek,onReload".split(","),function(s,t){r[t]=function(u){return r.bind(t,u)}});f.addClass(m.disabledClass).click(function(){r.prev()});h.click(function(){r.next()});n.click(function(){r.nextPage()});if(r.getSize()<m.size){h.add(n).addClass(m.disabledClass)}g.addClass(m.disabledClass).click(function(){r.prevPage()});var j=m.hoverClass,q="keydown."+Math.random().toString().substring(10);r.onReload(function(){if(j){r.getItems().hover(function(){b(this).addClass(j)},function(){b(this).removeClass(j)})}if(m.clickable){r.getItems().each(function(s){b(this).unbind("click.scrollable").bind("click.scrollable",function(t){if(b(t.target).is("a")){return}return r.click(s)})})}if(m.keyboard){b(document).unbind(q).bind(q,function(t){if(t.altKey||t.ctrlKey){return}if(m.keyboard!="static"&&c!=r){return}var u=m.keyboardSteps;if(d&&(t.keyCode==37||t.keyCode==39)){r.move(t.keyCode==37?-u:u);return t.preventDefault()}if(!d&&(t.keyCode==38||t.keyCode==40)){r.move(t.keyCode==38?-u:u);return t.preventDefault()}return true})}else{b(document).unbind(q)}});r.reload()}b.fn.scrollable=function(d){var e=this.eq(typeof d=="number"?d:0).data("scrollable");if(e){return e}var f=b.extend({},b.tools.scrollable.conf);d=b.extend(f,d);d.keyboardSteps=d.keyboardSteps||d.size;this.each(function(){e=new a(b(this),d);b(this).data("scrollable",e)});return d.api?e:this}})(jQuery);
/*
 * jQuery TOOLS plugin :: scrollable.autoscroll 1.0.1
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/scrollable.html#autoscroll
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 *
 * Launch : September 2009
 * Date: ${date}
 * Revision: ${revision} 
 */
(function(b){var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.autoscroll={version:"1.0.1",conf:{autoplay:true,interval:3000,autopause:true,steps:1,api:false}};b.fn.autoscroll=function(d){if(typeof d=="number"){d={interval:d}}var e=b.extend({},a.plugins.autoscroll.conf),c;b.extend(e,d);this.each(function(){var g=b(this).scrollable();if(g){c=g}var i,f,h=true;g.play=function(){if(i){return}h=false;i=setInterval(function(){g.move(e.steps)},e.interval);g.move(e.steps)};g.pause=function(){i=clearInterval(i)};g.stop=function(){g.pause();h=true};if(e.autopause){g.getRoot().add(g.getNaviButtons()).hover(function(){g.pause();clearInterval(f)},function(){if(!h){f=setTimeout(g.play,e.interval)}})}if(e.autoplay){setTimeout(g.play,e.interval)}});return e.api?c:this}})(jQuery);
/*
 * jQuery TOOLS plugin :: scrollable.circular 0.5.1
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/scrollable.html#circular
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 *
 * Launch : September 2009
 * Date: ${date}
 * Revision: ${revision} 
 */
(function(b){var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.circular={version:"0.5.1",conf:{api:false,clonedClass:"cloned"}};b.fn.circular=function(e){var d=b.extend({},a.plugins.circular.conf),c;b.extend(d,e);this.each(function(){var i=b(this).scrollable(),n=i.getItems(),k=i.getConf(),f=i.getItemWrap(),j=0;if(i){c=i}if(n.length<k.size){return false}n.slice(0,k.size).each(function(o){b(this).clone().appendTo(f).click(function(){i.click(n.length+o)}).addClass(d.clonedClass)});var l=b.makeArray(n.slice(-k.size)).reverse();b(l).each(function(o){b(this).clone().prependTo(f).click(function(){i.click(-o-1)}).addClass(d.clonedClass)});var m=f.children(k.item);var h=k.hoverClass;if(h){m.hover(function(){b(this).addClass(h)},function(){b(this).removeClass(h)})}function g(o){var p=m.eq(o);if(k.vertical){f.css({top:-p.position().top})}else{f.css({left:-p.position().left})}}g(k.size);b.extend(i,{move:function(s,r,p,q){var u=j+s+k.size;var t=u>i.getSize()-k.size;if(u<0||t){var o=j+k.size+(t?-n.length:n.length);g(o);u=o+s}if(q){m.removeClass(k.activeClass).eq(u+Math.floor(k.size/2)).addClass(k.activeClass)}if(u===j+k.size){return self}return i.seekTo(u,r,p)},begin:function(p,o){return this.seekTo(k.size,p,o)},end:function(p,o){return this.seekTo(n.length,p,o)},click:function(p,r,q){if(!k.clickable){return self}if(k.size==1){return this.next()}var s=p-j,o=k.activeClass;s-=Math.floor(k.size/2);return this.move(s,r,q,true)},getIndex:function(){return j},setPage:function(p,q,o){return this.seekTo(p*k.size+k.size,q,o)},getPageAmount:function(){return Math.ceil(n.length/k.size)},getPageIndex:function(){if(j<0){return this.getPageAmount()-1}if(j>=n.length){return 0}return(j+k.size)/k.size-1},getVisibleItems:function(){var o=j+k.size;return m.slice(o,o+k.size)}});i.onSeek(function(p,o){j=o-k.size;i.getNaviButtons().removeClass(k.disabledClass)});i.getNaviButtons().removeClass(k.disabledClass)});return d.api?c:this}})(jQuery);
/*
 * jQuery TOOLS plugin :: scrollable.navigator 1.0.2
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/scrollable.html#navigator
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 *
 * Launch : September 2009
 * Date: ${date}
 * Revision: ${revision} 
 */
(function(b){var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.navigator={version:"1.0.2",conf:{navi:".navi",naviItem:null,activeClass:"active",indexed:false,api:false,idPrefix:null}};b.fn.navigator=function(d){var e=b.extend({},a.plugins.navigator.conf),c;if(typeof d=="string"){d={navi:d}}d=b.extend(e,d);this.each(function(){var i=b(this).scrollable(),f=i.getRoot(),l=f.data("finder").call(null,d.navi),g=null,k=i.getNaviButtons();if(i){c=i}i.getNaviButtons=function(){return k.add(l)};function j(){if(!l.children().length||l.data("navi")==i){l.empty();l.data("navi",i);for(var m=0;m<i.getPageAmount();m++){l.append(b("<"+(d.naviItem||"a")+"/>"))}g=l.children().each(function(n){var o=b(this);o.click(function(p){i.setPage(n);return p.preventDefault()});if(d.indexed){o.text(n)}if(d.idPrefix){o.attr("id",d.idPrefix+n)}})}else{g=d.naviItem?l.find(d.naviItem):l.children();g.each(function(n){var o=b(this);o.click(function(p){i.setPage(n);return p.preventDefault()})})}g.eq(0).addClass(d.activeClass)}i.onStart(function(o,n){var m=d.activeClass;g.removeClass(m).eq(i.getPageIndex()).addClass(m)});i.onReload(function(){j()});j();var h=g.filter("[href="+location.hash+"]");if(h.length){i.move(g.index(h))}});return d.api?c:this}})(jQuery);
/**
 * aheadWorks Co.
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the EULA
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://ecommerce.aheadworks.com/LICENSE-M1.txt
 *
 * @category AW
 * @package AW_Productupdates
 * @copyright Copyright (c) 2003-2009 aheadWorks Co. (http://www.aheadworks.com)
 * @license http://ecommerce.aheadworks.com/LICENSE-M1.txt
 */

var ANDetect = navigator.userAgent.toLowerCase();
var anOS,anBrowser,anVersion,anTotal,anThestring;

function anGetBrowserInfo() {
 if (anCheckIt('konqueror')) {
 anBrowser = "Konqueror";
 anOS = "Linux";
 }
 else if (anCheckIt('safari')) anBrowser = "Safari"
 else if (anCheckIt('omniweb')) anBrowser = "OmniWeb"
 else if (anCheckIt('opera')) anBrowser = "Opera"
 else if (anCheckIt('webtv')) anBrowser = "WebTV";
 else if (anCheckIt('icab')) anBrowser = "iCab"
 else if (anCheckIt('msie')) anBrowser = "Internet Explorer"
 else if (!anCheckIt('compatible')) {
 anBrowser = "Netscape Navigator"
 anVersion = ANDetect.charAt(8);
 }
 else anBrowser = "An unknown browser";

 if (!anVersion) anVersion = ANDetect.charAt(place + anThestring.length);

 if (!anOS) {
 if (anCheckIt('linux')) anOS = "Linux";
 else if (anCheckIt('x11')) anOS = "Unix";
 else if (anCheckIt('mac')) anOS = "Mac"
 else if (anCheckIt('win')) anOS = "Windows"
 else anOS = "an unknown operating system";
 }
}

function anCheckIt(string) {
 place = ANDetect.indexOf(string) + 1;
 anThestring = string;
 return place;
}

/*-----------------------------------------------------------------------------------------------*/

Event.observe(window, 'load', anGetBrowserInfo, false);

var Advancednewsletter = Class.create();
Advancednewsletter.prototype = {
 yPos : 0,
 xPos : 0,
 isLoaded : false,

 initialize: function(ctrl, url) {
 if (url){
 this.content = url;
 } else {
 this.content = ctrl.href;
 }
 ctrl.observe('click', function(event){this.activate();Event.stop(event);}.bind(this));
 $('advancednewsletter').hide().observe('click', (function(event) {if (event.element().id == 'advancednewsletter-cancel') this.deactivate(); }).bind(this));
 },

 activate: function(){
 if (anBrowser == 'Internet Explorer'){
 this.getScroll();
 this.prepareIE('100%', 'hidden');
 this.setScroll(0,0);
 this.hideSelects('hidden');
 }
 this.displayProductupdates("block");
 },

 prepareIE: function(height, overflow){
 bod = document.getElementsByTagName('body')[0];
 bod.style.height = height;
 bod.style.overflow = overflow;

 htm = document.getElementsByTagName('html')[0];
 htm.style.height = height;
 htm.style.overflow = overflow;
 },

 hideSelects: function(visibility){
 selects = document.getElementsByTagName('select');
 for(i = 0; i < selects.length; i++) {
 selects[i].style.visibility = visibility;
 }
 },

 getScroll: function(){
 if (self.pageYOffset) {
 this.yPos = self.pageYOffset;
 } else if (document.documentElement && document.documentElement.scrollTop){
 this.yPos = document.documentElement.scrollTop;
 } else if (document.body) {
 this.yPos = document.body.scrollTop;
 }
 },

 setScroll: function(x, y){
 window.scrollTo(x, y);
 },

 displayProductupdates: function(display){
 $('advancednewsletter-overlay').style.display = display;
 $('advancednewsletter').style.display = display;
 if(display != 'none') this.loadInfo();
 },

 loadInfo: function() {
 $('advancednewsletter').className = "loading";
 var myAjax = new Ajax.Request(
 this.content,
 {method: 'post', parameters: "", onComplete: this.processInfo.bindAsEventListener(this)}
 );

 },

 processInfo: function(response){
 $('anContent').update(response.responseText);
 $('advancednewsletter').className = "done";
 this.isLoaded = true;
 },

 deactivate: function(){
 if (anBrowser == "Internet Explorer"){
 this.setScroll(0,this.yPos);
 this.prepareIE("auto", "auto");
 this.hideSelects("visible");
 }

 this.displayProductupdates("none");
 }
}

/*-----------------------------------------------------------------------------------------------*/


function addAdvancednewsletterMarkup() {
 bod = document.getElementsByTagName('body')[0];
 overlay = document.createElement('div');
 overlay.id = 'advancednewsletter-overlay';
 an = document.createElement('div');
 an.id = 'advancednewsletter';
 an.className = 'loading';
 an.innerHTML = '<div id="anLoadMessage">' +
 '<p>Loading</p>' +
 '</div>';
 bod.appendChild(overlay);
 bod.appendChild(an);
}

var AdvancednewsletterForm = Class.create();
AdvancednewsletterForm.prototype = {
 initialize: function(form){
 this.form = form;
 if ($(this.form)) {
 this.sendUrl = $(this.form).action;
 $(this.form).observe('submit', function(event){this.send();Event.stop(event);}.bind(this));
 }
 this.loadWaiting = false;
 this.validator = new Validation(this.form);
 this.onSuccess = this.success.bindAsEventListener(this);
 this.onComplete = this.resetLoadWaiting.bindAsEventListener(this);
 this.onFailure = this.resetLoadWaiting.bindAsEventListener(this);
 var container = $('subscribe-login-container');
 if (container && container.style.display == 'none'){
 this._disableEnableAll(container, true);
 }
 },

 send: function(){
 if(!this.validator.validate()) {
 return false;
 }
 this.setLoadWaiting(true);
 var request = new Ajax.Request(
 this.sendUrl,
 {
 method:'post',
 onComplete: this.onComplete,
 onSuccess: this.onSuccess,
 onFailure: this.onFailure,
 parameters: Form.serialize(this.form)
 }
 );
 },

 success: function(transport) {
 this.resetLoadWaiting();
 if (transport && transport.responseText){
 try{
 response = eval('(' + transport.responseText + ')');
 }
 catch (e) {
 response = {};
 }
 }
 if (response.error){
 if (response.error_type == 'no_login'){
 var container = $('subscribe-login-container');
 if (container){
 container.show();
 this._disableEnableAll(container, false);
 }
 }
 if ((typeof response.message) == 'string') {
 alert(response.message);
 } else {
 alert(response.message.join("\n"));
 }
 return false;
 }
 $('anContent').update(transport.responseText);
 },

 _disableEnableAll: function(element, isDisabled) {
 var descendants = element.descendants();
 for (var k in descendants) {
 descendants[k].disabled = isDisabled;
 }
 element.disabled = isDisabled;
 },

 setLoadWaiting: function(isDisabled) {
 var container = $('subscribe-button-container');
 if (isDisabled){
 container.setStyle({opacity:.5});
 this._disableEnableAll(container, true);
 Element.show('subscribe-please-wait');
 this.loadWaiting = true;
 } else {
 container.setStyle({opacity:1});
 this._disableEnableAll(container, false);
 Element.hide('subscribe-please-wait');
 this.loadWaiting = false;
 }
 },

 resetLoadWaiting: function(transport){
 this.setLoadWaiting(false);
 }
}

