var core = {};
$().ready(bindEvents);
function bindEvents(){
	$('html').removeClass('no_js');
//	$('#slideshow').cycle({fx: 'fade',height:390,next:$('div.slideshow a.btn.next'),prev:$('div.slideshow a.btn.prev'),
//		before:function() {
//			var t = $(this), alt = t.attr('alt');
//			if( !alt =='' ){
//				$('#caption').html(alt).delay(600).fadeIn(600,function(){$(this).delay(1500).fadeOut(600)});
//			}
//        },
//		onPrevNextEvent: function(){$('#caption').hide(); }
//});
	$('#slideshow_collection').cycle({fx:'fade',height:390});
	
	// set active -----------------------
	var nav = $('#nav a'), p = window.location.pathname.split('/');
	//console.log(p,p[p.length-2]);
	nav.filter('[href*='+p[1]+']').addClass('active');
}

function tab_over(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"collection/images/buttons/bt_"+tabname+"_sm_over.gif";
}


function tab_out(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"collection/images/buttons/bt_"+tabname+"_sm.gif";
}
function menu_over(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"collection/images/buttons/bt_"+tabname+"_over.gif";
}


function menu_out(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"collection/images/buttons/bt_"+tabname+".gif";
}
function Bottommenu_over(tabname)
{
	var o=document["mnu_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"collection/images/buttons/bt_"+tabname+"_lrg_over.gif";
}


function Bottommenu_out(tabname)
{
	var o=document["mnu_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"collection/images/buttons/bt_"+tabname+"_lrg.gif";
}
function filter_over(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"filter/images/"+tabname+"_over.gif";
}


function filter_out(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"filter/images/"+tabname+".gif";
}
function tab_over2(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"designhouse/images/buttons/bt_"+tabname+"_sm_over.gif";
}


function tab_out2(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"designhouse/images/buttons/bt_"+tabname+"_sm.gif";
}
function boutique(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"collection/images/buttons/bt_"+tabname+"_over.gif";
}


function boutiqueOut(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"collection/images/buttons/bt_"+tabname+".gif";
}

function contact_large(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"collection/images/buttons/bt_"+tabname+"_over.gif";
}


function contact_largeOut(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"collection/images/buttons/bt_"+tabname+".gif";
}

function articles_large(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"media/images/"+tabname+"_over.gif";
}


function articles_largeOut(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"media/images/"+tabname+".gif";
}

function video_large(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"media/images/"+tabname+"_over.gif";
}

function video_largeOut(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"media/images/"+tabname+".gif";
}

function press(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"pressroom/images/buttons/"+tabname+"_over.gif";
}


function pressOut(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"pressroom/images/buttons/"+tabname+".gif";
}

function mediaIn(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"media/images/"+tabname+".gif";
}


function mediaOut(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"media/images/"+tabname+"_over.gif";
}

function bottomMenu_over2(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"designhouse/images/buttons/bt_"+tabname+"_over.gif";
}


function bottomMenu_out2(tabname)
{
	var o=document["img_"+tabname];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"designhouse/images/buttons/bt_"+tabname+".gif";
}

function pressdownloads(tabname,num)
{
	var o=document["img_"+tabname+num];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"pressroom/images/"+tabname+"_over.gif";
}

function pressdownloadsOut(tabname,num)
{
	var o=document["img_"+tabname+num];
	if (!o)
	{
		return;
	}
	o.src=dotdotpath+"pressroom/images/"+tabname+".gif";
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}



var IOS = window.navigator.userAgent.match(/iPhone|iPad|iPod/ig) ? true : false;
var IE = window.navigator.userAgent.match(/MSIE 6|MSIE 7|MSIE 8/ig) ? true : false;
Slider = function(opts){
	if(!opts.wrap){ return false; }
	var t = this, bn = opts.next || '.next',bp = opts.prev || '.prev',pagingWrap = opts.pagingWrap || '.paging',scroller = opts.scroller || 'div.scroll', items = opts.items || 'ul.items > li';

	this.index = 0; this.row = opts.row || 1; this.offset = opts.offset || 0; this.speed = opts.speed || 200;
	this.wrap = $(opts.wrap);
	this.mask = this.wrap.find('div.mask');
	this.scroller = this.wrap.find(scroller);
	this.items = this.scroller.find(items);
	this.total = Math.ceil(this.items.length / this.row);
	this.btn_next = this.wrap.find(bn);
	this.btn_prev = this.wrap.find(bp);
	this.pagingNav = this.wrap.find(pagingWrap);
	this.auto = opts.auto || false;
	this.touch = opts.touch || true;
	this.cb = opts.cb || function(){};
	this.parent = opts.parent || false;
	
	(function(t){
		t.bindTouch();t.init();t.layout();	
		t.btn_next.click( function(){ t.stop(); t.next();return false;} );
		t.btn_prev.click( function(){ t.stop(); t.prev();return false;} );
		
		t.auto ? t.timer = setInterval(function(){ t.next(); },t.auto) : '';
		if( t.pagingNav.length ) { t.initPaging(); }
		t.setBtnStatus();
	})(this); 
	return t;
}
Slider.prototype = {
	layout:function(){
		var t = this, ma = t.mask.width(), m = (t.row-1)*(t.offset*2);
		var w = t.row > 1 ? (ma - m) / t.row : ma;
		t.items.css({float:'left',marginLeft:t.offset,marginRight:t.offset,width:w });
		t.itemW = t.items.outerWidth(true) * t.row;
		t.scroller.width(t.items.length/t.row * t.itemW );
		t.scroller.css({marginLeft:-t.offset});	
		
		t.parent && !t.pagingNav ? t.parent.setHeight() : '';
	},
	getIndex:function (){
		if( this.index <=0 ){ this.index = 0 }
		else if(this.index > this.total - 1 ) { this.auto ? this.index = 0 : this.index = this.total-1 }
		return this.index;
	},
	bindTouch:function(){},
	init:function(){ },
	next:function(){ this.index++;this.goTo(this.getIndex()); },
	prev:function(){ this.index--;this.goTo(this.getIndex()); },
	stop:function(){ if(this.auto) { clearInterval(this.timer); this.auto = false; }; },
	aMove:function(n){ var t = this; this.scroller.animate({left: -this.itemW * n},this.speed,function(){ t.cb();t.setActive()} );},
	goTo:function(n){ this.aMove(n);this.index = parseInt(n);this.setBtnStatus();},
	initPaging: function(){
		if(this.total == 1){ this.pagingNav.html('').hide(); return false;}
		var pi = '<ul class="sliderPaging">',t=this;
		if(this.total > 1){
			for(var i=0; i<this.total; i++){ pi+='<li><a href="#"><span>'+parseInt(i)+'</span><span class="subtitle"></span></a></li>';}
			this.pagingNav.html(pi+'</ul>');
			this.pagingLinks = this.pagingNav.find('a');
			this.pagingLinks.click(function(){ t.stop();t.goTo( $(this).find('span').text() ); return false; })
			this.setActive();
		}
		t.parent ? t.parent.setHeight() : '';
	},
	setActive: function(){
		var pl = this.pagingLinks || [];
		if(pl.length){ pl.removeClass('active').slice(this.index,this.index+1).addClass('active'); }
	},
	setBtnStatus:function(){
		if( this.index == 0 ){ this.btn_prev.addClass('disabled');this.btn_next.removeClass('disabled'); if(this.total == 1){this.btn_next.addClass('disabled')} }
		else if(this.index >= this.total -1 ){ this.btn_next.addClass('disabled');this.btn_prev.removeClass('disabled'); }
		else { this.btn_prev.add(this.btn_next).removeClass('disabled'); }
	},
	reInit: function(sliderIndex){
		var n = sliderIndex || this.getIndex();
		this.total = Math.ceil(this.items.length / this.row);
		this.scroller.width( this.total * this.itemW );
		if( n === 'first' ){ n = 0 }
		this.goTo(n);
		if( this.pagingNav.length ) { this.initPaging(); }
		this.setBtnStatus();
	}
}
if(IOS){
	Slider.prototype.aMove = function(n){
		var t = this;
		this.scroller[0].style.webkitTransition = t.speed*2+'ms ease';
		this.scroller[0].style.webkitTransform = 'translate3d('+-t.itemW*n+'px,0,0)';
		this.scroller.one('webkitTransitionEnd',function(){ transitionEnd(this); });
		
		function transitionEnd(ele){
			t.getPosition(ele.style.webkitTransform);
			ele.style.webkitTransition = '';
			t.setActive();
		}
	}
	Slider.prototype.getPosition = function(transform){
		var v = transform.replace(/[a-z]/g,'').replace('3(','').replace(')','').split(',') || [0,0,0];
		this.x = parseInt(v[0]); this.y = v[1];
	}
	Slider.prototype.bindTouch = function(){
		if(!this.scroller.length){ return false; }
		var t = this;
		//console.log(this.constructor.name,this.touch);
		if(this.touch){
			this.scroller[0].ontouchstart = function(e){ t.onTouchStart(e); }
			this.scroller[0].ontouchmove = function(e){ t.onTouchMove(e); }
			this.scroller[0].ontouchend = function(e){ t.onTouchEnd(e); }
			//this.goTo(0);
			this.getPosition(this.scroller[0].style.webkitTransform);
		}
	}
	Slider.prototype.move = function(x,y){
		var newX = parseInt(this.x+x);
		this.scroller[0].style.webkitTransform = 'translate3d('+newX+'px,0,0)';
	}
	Slider.prototype.onTouchStart = function(e){
		var t = this;
		this.auto ? this.stop() : '';
		if (e.targetTouches.length != 1) {return false;}
		this.scroller[0].style.webkitTransition = '';
		this.startX = e.targetTouches[0].clientX;
		this.cTouch = this.startX;
		this.startY = e.targetTouches[0].clientY;
		this.getPosition(this.scroller[0].style.webkitTransform);
		
	}
	Slider.prototype.onTouchMove = function(e) {
		//e.preventDefault();
		if (e.targetTouches.length != 1) { return false; }
		var leftDelta = e.targetTouches[0].clientX - this.startX;
		var topDelta = e.targetTouches[0].clientY - this.startY;
		//if( topDelta > -5 || topDelta < 5 ){ e.preventDefault(); }
		this.move(leftDelta,0);
		this.cTouch = e.targetTouches[0].clientX;
	}
	Slider.prototype.onTouchEnd = function(e){
		var t =this, difX = this.startX - this.cTouch, limit = t.mask.width()*0.3;
		e.preventDefault();
		if (e.targetTouches.length > 0) { return false; }
		if(difX > limit){this.next();}
		else if( difX < -limit ){ this.prev(); }
		else {this.goTo(this.getIndex());}
	}
} // /if IOS

function ThumbSlider(opts){
	this.btnW = opts.btnW || false;
	this.w = opts.width || false;
	Slider.call(this,opts);
}

thumbSliderMethods = {
	init: function(){
		var t = this;
		var width = this.w || (t.wrap.width() -t.offset) - t.btnW*2;
		this.mask.width(width).css({float:'left'});
	}
}
extendClass(ThumbSlider,thumbSliderMethods,Slider);

function extendClass(cla,methods,parent){
	cla.prototype = new parent({});
	cla.prototype.constructor = cla;
	for( prop in methods ){cla.prototype[prop] = methods[prop];}
}


// designhouse slideshow triggers ----------------------------------- 

function Slideshow(opts){
	this.loader = opts.loader;
	this.ele = opts.ele;
	this.thumbsWrap = opts.thumbsWrap || false;
	(function(t){ t.init(); })(this)
}
Slideshow.prototype = {
	init:function(){
		var t = this;
		this.thumbsWrap ? t.bindThumbs() : ''; 
	},
	bindThumbs: function(){
		var t = this;
		t.thumbs = new ThumbSlider({wrap:t.thumbsWrap,row:6,offset:7,btnW:25,width:871});
		t.thumbLinks = t.thumbs.items.find('a');
		t.thumbLinks.click(function(){ t.setActive($(this)); t.loadSlideshow($(this).attr('href'));return false; });
		t.rebindSlideshow();
	},
	setActive:function(ele){
		var t = this;
		t.thumbs.items.find('a').filter('.active').removeClass('active');
		ele.addClass('active');	
	},
	loadSlideshow:function(url){
		var t = this, e = t.ele;
		t.loader.fadeIn(200);
		
		$.ajax({
			url: url,
			success: function(data){
				e.html(data);
				e.cycle('destroy');
			},
			complete:function(){
				t.loader.fadeOut(200);
				t.rebindSlideshow();
			}
		});
		return false;
	},
	rebindSlideshow: function(){
		var t = this;
		this.ele.cycle({
			fx: 'fade',
			height:390,
			width:968,
			next:$('div.slideshow a.btn.next'),
			prev:$('div.slideshow a.btn.prev'),
			before:function() {
				var t = $(this), alt = t.attr('alt');
				if( !alt =='' ){
					$('#caption').html(alt).delay(600).fadeIn(600,function(){$(this).delay(1500).fadeOut(600)});
				}
			},
			onPrevNextEvent: function(){$('#caption').hide(); },
			nowrap:true,
			end:function(){
				var active = t.thumbLinks.filter('.active'), i = t.thumbLinks.index(active), total = t.thumbLinks.length -1;
				if(i < total){
					t.thumbLinks.eq(i+1).click()
				} else {
					t.thumbLinks.eq(0).click();
					t.thumbs.goTo(0);
				}
			}
		});	
	}
}


function loadSlideshow(url){
	var ss = $('#slideshow');
	$.ajax({
		url: url,
		success: function(data){
			ss.html(data);
			ss.cycle('destroy');
		},
		complete:function(){
			rebindSlideshow(ss);
		}
	})
	return false;
}

function rebindSlideshow(ele){
	ele.cycle({
		fx: 'fade',
		height:390,
		next:$('div.slideshow a.btn.next'),
		prev:$('div.slideshow a.btn.prev'),
		before:function() {
			var t = $(this), alt = t.attr('alt');
			if( !alt =='' ){
				$('#caption').html(alt).delay(600).fadeIn(600,function(){$(this).delay(1500).fadeOut(600)});
			}
        },
		onPrevNextEvent: function(){$('#caption').hide(); },
		nowrap: true
	});
}

