function initPage() {
	initCufon();
	initGallery();
	initItemsPosition();
}

/* cufon */
window.addEvent('domready', function(){
    initCufon();
});
function initCufon() {
	Cufon.replace('.list-info li.call-us a', { fontFamily: 'Gotham_Medium'});	
	Cufon.replace('.list-info li.free-shipping a', { fontFamily: 'Gotham_Medium'});	
	Cufon.replace('.list-info li.quality-made a', { fontFamily: 'Gotham_Bold'});	
	Cufon.replace('.list-info li strong', { fontFamily: 'Gotham_Bold'});
	Cufon.replace('.list-info li em', { fontFamily: 'Gotham_Bold'});
	Cufon.replace('.list-info li span', { fontFamily: 'Gotham_Book_Regular'});	
	Cufon.replace('.search label', { fontFamily: 'Gotham_Medium'});
	Cufon.replace('#nav li a', { fontFamily: 'Gotham_Medium'});
	Cufon.replace('.gallery .overlay p', { fontFamily: 'Gotham_Book_Regular'});
	Cufon.replace('.gallery .overlay p strong', { fontFamily: 'Gotham_Medium'});	
	Cufon.replace('#sidebar .heading', { fontFamily: 'Gotham_Medium'});	
	Cufon.replace('.track-order h2', { fontFamily: 'Gotham_Medium'});		
	Cufon.replace('.list-nav li a', { fontFamily: 'Gotham_Medium'});	
	Cufon.replace('.promobox h3', { fontFamily: 'Gotham_Medium'});	
	Cufon.replace('.products li h3', { fontFamily: 'Gotham_Medium'});	
	Cufon.replace('.products li span', { fontFamily: 'Gotham_Book_Regular'});	
	Cufon.replace('.products li strong', { fontFamily: 'Gotham_Bold'});
	Cufon.replace('.products-block .heading', { fontFamily: 'Gotham_Medium'});	
	Cufon.replace('#content .heading1 h1', { fontFamily: 'Gotham_Medium'});		
	Cufon.replace('.breadcrumbs li', { fontFamily: 'Gotham_Book_Regular'});	
	Cufon.replace('.breadcrumbs li a', { fontFamily: 'Gotham_Bold'});
	Cufon.replace('.inner1 #content h1', { fontFamily: 'Gotham_Book_Regular'});	
	Cufon.replace('#wrapper #content .heading2', { fontFamily: 'Gotham_Medium'});	
	/* Cufon.replace('.paging .prev', { fontFamily: 'Gotham_Medium'});		
	Cufon.replace('.paging .next', { fontFamily: 'Gotham_Medium'});		 */
	Cufon.replace('.products-list li h3', { fontFamily: 'Gotham_Medium'});		
	Cufon.replace('.products-list li strong', { fontFamily: 'Gotham_Medium'});	
	Cufon.replace('.table-head td', { fontFamily: 'Gotham_Medium'});			
	Cufon.replace('.flag-customizer .main-col h3', { fontFamily: 'Gotham_Medium'});				
	Cufon.replace('.ftr-list li a', { fontFamily: 'Gotham_Medium'});	
	Cufon.replace('#footer p', { fontFamily: 'Gotham_Book_Regular'});	
}

/* gallery */

var GalSliding=new Class({Implements:[Options],options:{holder:".holder",elementsParent:"ul",elements:"li",nextItem:".next",prevItem:".prev",stop:".stop",start:".start",pause:".btn-stop",speed:600,duration:4000,steps:1,current:0,stopOnHover:true,transition:Fx.Transitions.linear,direction:"horizontal",mode:"callback",disableClass:"disable",currentClass:"active",random:false,pagingCreate:"gallery-paging",paging:".gallery-paging li a",autoplay:4000,autoplayOpposite:false,onStart:function(_1,_2,_3){
},onPlay:function(_4,_5,_6){
}},initialize:function(_7,_8){
if(_7){
this.gallery=_7;
this.setOptions(_8);
this.holder=this.gallery.getElement(this.options.holder);
this.itemsParent=this.holder.getElement(this.options.elementsParent);
this.items=this.itemsParent.getElements(this.options.elements);
this.next=this.gallery.getElement(this.options.nextItem);
var _9=this.next;
var _a;
this.prev=this.gallery.getElement(this.options.prevItem);
this.stop=this.gallery.getElement(this.options.stop);
this.start=this.gallery.getElement(this.options.start);
this.pause=this.gallery.getElement(this.options.pause);
this.current=this.options.current;
this.bound={rotate:this.rotate.bind(this)};
if(this.options.direction=="horizontal"){
this.direction="margin-left";
this.size=this.items[0].getWidth()+parseInt(this.items[0].getStyle("margin-right"))+parseInt(this.items[0].getStyle("margin-left"));
this.visible=Math.round(this.holder.getWidth()/this.size);
}else{
this.direction="margin-top";
this.size=this.items[0].getHeight();
this.visible=Math.round(this.holder.getHeight()/this.size);
}
if(this.next==null){
this.next=new Element("a").injectInside(this.gallery);
}
if(this.prev==null){
this.prev=new Element("a").injectInside(this.gallery);
}
this.next.cl=this.next.className;
this.prev.cl=this.prev.className;
if(this.visible<this.items.length){
if(this.options.random){
Array.prototype.shuffle=function(b){
var i=this.length,j,t;
while(i){
j=Math.floor((i--)*Math.random());
t=b&&typeof this[i].shuffle!=="undefined"?this[i].shuffle():this[i];
this[i]=this[j];
this[j]=t;
}
return this;
};
this.items.shuffle(this.items);
this.hidden=new Element("div");
this.items.each(function(el,i){
this.wrap=new Element("div").adopt(el);
this.hidden.set("html",this.hidden.get("html"),this.wrap.get("html"));
}.bind(this));
this.itemsParent.set("html",this.hidden.get("html"));
this.items=this.itemsParent.getElements(this.options.elements);
}
this.options.steps=this.options.steps>this.visible?this.visible:this.options.steps;
this.options.duration=this.options.duration<1000?1000:this.options.duration;
this.options.speed=this.options.speed>6000?6000:this.options.speed;
if(this.options.paging&&!this.options.pagingCreate){
this.paging=this.gallery.getElements(this.options.paging);
for(var i=0;i<this.paging.length;i++){
if(this.paging[i].hasClass(this.options.currentClass)){
this.current=i;
}
}
}
if(this.options.mode!="circle"){
if(this.visible+this.current>=this.items.length){
this.margin=(this.items.length-this.visible)*this.size;
this.current=this.items.length-this.visible;
}else{
this.margin=this.current*this.size;
}
if(this.options.paging){
for(var i=0;i<this.items.length;i++){
if(this.items[i].hasClass(this.options.currentClass)){
this.current=i;
}
}
if(this.options.pagingCreate){
if(this.gallery.getElements("."+this.options.pagingCreate).length){
this.paging=this.gallery.getElements("."+this.options.pagingCreate)[0];
this.paging.innerHTML="";
}else{
this.paging=new Element("ul").injectInside(this.gallery).addClass(this.options.pagingCreate);
}
}else{
this.paging=new Element("ul").injectInside(this.gallery).addClass("paging");
}
for(var i=0;i<this.items.length;i++){
this.paging.innerHTML+="<li><a href=\"#\">"+parseInt(i+1)+"</a></li>";
}
this.paging=this.paging.getElements("a");
this.paging[this.current].addClass(this.options.currentClass);
this.paging.each(function(el,i){
el.addEvent("click",function(){
if(i*this.options.steps+this.visible>=this.items.length){
this.margin=(this.items.length-this.visible)*this.size;
this.current=this.items.length-this.visible;
}else{
this.current=i*this.options.steps;
}
this.margin=this.current*this.size;
this.play(this.options.speed);
return false;
}.bind(this));
}.bind(this));
}
this.play(0);
}else{
if(this.options.paging){
for(var i=0;i<this.items.length;i++){
if(this.items[i].hasClass(this.options.currentClass)){
this.current=i;
}
}
if(this.options.pagingCreate){
if(this.gallery.getElements("."+this.options.pagingCreate).length){
this.paging=this.gallery.getElements("."+this.options.pagingCreate)[0];
this.paging.innerHTML="";
}else{
this.paging=new Element("ul").injectInside(this.gallery).addClass(this.options.pagingCreate);
}
}else{
this.paging=new Element("ul").injectInside(this.gallery).addClass("paging");
}
for(var i=0;i<this.items.length;i++){
this.paging.innerHTML+="<li><a href=\"#\">"+parseInt(i+1)+"</a></li>";
}
this.paging=this.paging.getElements("a");
_a=this.paging;
this.paging[this.current].addClass(this.options.currentClass);
this.paging.each(function(el,i){
el.addEvent("click",function(){
if(this.current<i){
for(var _b=this.current;_b<i;_b++){
_9.fireEvent("click");
}
_a.removeClass("active");
el.addClass("active");
}else{
if(this.current>i){
for(var _b=this.current;_b<i+this.items.length;_b++){
_9.fireEvent("click");
}
_a.removeClass("active");
el.addClass("active");
}
}
return false;
}.bind(this));
}.bind(this));
}
for(;this.items.length<this.options.steps+this.visible;){
this.items.clone().inject(this.itemsParent,"bottom");
this.items=this.itemsParent.getElements(this.options.elements);
}
if(this.current>this.items.length-1){
this.current=this.items.length-1;
}
for(var i=0;i<this.current;i++){
this.items[i].inject(this.itemsParent,"bottom");
}
this.options.paging=false;
}
this.next.addEvent("click",function(){
if(this.options.mode!="circle"){
if(this.visible+this.current>=this.items.length){
if(this.options.mode=="callback"){
this.margin=0;
this.current=0;
}
}else{
if(this.visible+this.current+this.options.steps>=this.items.length){
this.margin=(this.items.length-this.visible)*this.size;
this.current=this.items.length-this.visible;
}else{
this.current=this.current+this.options.steps;
this.margin=this.current*this.size;
}
}
this.play(this.options.speed);
}else{
var _c=this;
this.margin=this.size*this.options.steps;
this.itemsParent.set("tween",{duration:this.options.speed,transition:this.options.transition,property:this.direction,onComplete:function(){
for(var i=0;i<_c.options.steps;i++){
if(_c.current>=_c.items.length){
_c.current=0;
}
_c.current++;
_c.items[_c.current-1].inject(_c.itemsParent,"bottom");
}
this.set(0);
_c.options.onPlay(_c.current,_c.visible,_c.items.length);
},onCancel:function(){
this.onComplete();
}});
this.itemsParent.tween(-this.margin);
_a.removeClass("active");
if(this.current+1<_a.length){
_a[this.current+1].addClass("active");
}else{
_a[this.current-_a.length+1].addClass("active");
}
}
return false;
}.bind(this));
this.prev.addEvent("click",function(){
if(this.options.mode!="circle"){
if(this.current<=0){
if(this.options.mode=="callback"){
this.margin=(this.items.length-this.visible)*this.size;
this.current=this.items.length-this.visible;
}
}else{
if(this.current-this.options.steps<=0){
this.margin=0;
this.current=0;
}else{
this.current=this.current-this.options.steps;
this.margin=this.current*this.size;
}
}
this.play(this.options.speed);
}else{
for(var i=0;i<this.options.steps;i++){
if(this.current-1<0){
this.current=this.items.length;
}
--this.current;
this.items[this.current].inject(this.itemsParent,"top");
}
this.itemsParent.setStyle(this.direction,-this.size*this.options.steps+"px");
this.margin=0;
this.play(this.options.speed);
_a.removeClass("active");
if(this.current<_a.length){
_a[this.current].addClass("active");
}else{
_a[this.current-_a.length+1].addClass("active");
}
}
return false;
}.bind(this));
if(this.options.autoplay||this.start||this.stop){
if(!this.options.autoplay){
this.gallery.addClass("stopped");
}
this.timer=this.bound.rotate.delay(this.options.duration);
this.gallery.addEvent("stopgal",function(){
this.options.autoplay=false;
$clear(this.timer);
}.bind(this));
this.gallery.addEvent("startgal",function(){
$clear(this.timer);
this.options.autoplay=true;
this.timer=this.bound.rotate.delay(this.options.duration);
}.bind(this));
this.gallery.addEvent("mouseenter",function(){
if(this.options.stopOnHover){
this.options.autoplay=false;
$clear(this.timer);
}
}.bind(this));
this.gallery.addEvent("mouseleave",function(){
if(!this.gallery.hasClass("stopped")&&this.options.stopOnHover){
$clear(this.timer);
this.options.autoplay=true;
this.timer=this.bound.rotate.delay(this.options.duration);
}
}.bind(this));
}
if(this.stop){
this.stop.addEvent("click",function(){
this.gallery.addClass("stopped").fireEvent("stopgal");
return false;
}.bind(this));
}
if(this.start){
this.start.addEvent("click",function(){
this.gallery.removeClass("stopped").fireEvent("startgal");
return false;
}.bind(this));
}
if(this.pause){
this.pause.addEvent("click",function(){
if(this.gallery.hasClass("stopped")){
this.gallery.removeClass("stopped").fireEvent("startgal");
}else{
this.gallery.addClass("stopped").fireEvent("stopgal");
}
return false;
}.bind(this));
}
}else{
this.next.addClass(this.next.cl+"-"+this.options.disableClass);
this.prev.addClass(this.prev.cl+"-"+this.options.disableClass);
this.next.addEvent("click",function(){
return false;
}.bind(this));
this.prev.addEvent("click",function(){
return false;
}.bind(this));
if(this.stop){
this.stop.addEvent("click",function(){
return false;
}.bind(this));
}
if(this.start){
this.start.addEvent("click",function(){
return false;
}.bind(this));
}
this.gallery.addClass("stopped");
}
this.options.onStart(this.current,this.visible,this.items.length);
}
},play:function(_d){
this.sidesChecking();
this.itemsParent.set("tween",{duration:_d,transition:this.options.transition});
this.itemsParent.tween(this.direction,-this.margin);
if(this.options.paging){
this.paging.removeClass("active");
this.paging[Math.ceil(this.current/this.options.steps)].addClass("active");
}
this.options.onPlay(this.current,this.visible,this.items.length);
},rotate:function(){
if(this.options.autoplay){
if(!this.options.autoplayOpposite){
this.next.fireEvent("click");
}else{
this.prev.fireEvent("click");
}
this.timer=this.bound.rotate.delay(this.options.duration);
}
},sidesChecking:function(){
if(this.options.mode=="line"){
this.next.removeClass(this.next.cl+"-"+this.options.disableClass);
this.prev.removeClass(this.prev.cl+"-"+this.options.disableClass);
if(this.visible+this.current>=this.items.length){
this.next.addClass(this.next.cl+"-"+this.options.disableClass);
}else{
if(this.current==0){
this.prev.addClass(this.prev.cl+"-"+this.options.disableClass);
}
}
}
}});
window.addEvent("domready",function(){
var _e=new GalSliding($$("#gallery1")[0],{holder:".gallery-holder",mode:"circle",nextItem:".btn-next",prevItem:".btn-prev",pause:".btn-stop",pagingCreate:"gallery-nav",paging:".gallery-nav li a",speed:300,stopOnHover:false,duration:4000});
});


/* items-position */

// calculate maxHeight
function maxHeight(_els){
	if(typeof(_els)=='object' && _els.length){
		var _maxHeight = 0;
		_els.each(function(obj,i){
			if(parseInt(obj.offsetHeight)>_maxHeight){
				_maxHeight = parseInt(obj.offsetHeight);
			}
		});
	}
	return _maxHeight;
}
// setMaxHeight
function setMaxHeight(_els){
	if(typeof(_els)=='object' && _els.length){
		var _elsMaxHeight = maxHeight(_els);
		_els.each(function(obj,i){
			obj.setStyle( 'height', _elsMaxHeight );
		});
	}
	return true;
}
// calculate maxHeight and set box-height and top-paddind=(maxHeight - box-height)
function maxHeightAndTopPadding(_els){
	if(typeof(_els)=='object' && _els.length){
		var _elsMaxHeight = maxHeight(_els);
		_els.each(function(obj,i){
			var _padding = Math.round((_elsMaxHeight-parseInt(obj.offsetHeight))/2);
			var _height = parseInt(obj.offsetHeight);
			obj.setStyle( 'padding-top', _padding );
			obj.setStyle( 'padding-bottom', _padding );
			obj.setStyle( 'height', _height );
		});
	}
	return true;
}
// reset top bottom padding to 0, height to 'auto'
function resetProperties(_els){
	if(typeof(_els)=='object' && _els.length){
		_els.each(function(obj,i){
			obj.setStyle( 'padding-top', 0 );
			obj.setStyle( 'padding-bottom', 0 );
			obj.setStyle( 'height', 'auto' );
		});
	}
	return true;
}
// get outer size
function getOuterSize(_els){
	if (typeof(_els) == 'object') {
		var _elsWidth = 0;
		if(_els.length>1){
			_els.each(function(obj,i){
				_elsWidth+= obj.getSize().x;
				// margin
				if(obj.getStyle('margin-left')){_elsWidth+= parseInt(obj.getStyle('margin-left'));}
				if(obj.getStyle('margin-right')){_elsWidth+= parseInt(obj.getStyle('margin-right'));}
				// padding
				if(obj.getStyle('padding-left')){_elsWidth+= parseInt(obj.getStyle('padding-left'));}
				if(obj.getStyle('padding-right')){_elsWidth+= parseInt(obj.getStyle('padding-right'));}
				// border
				if(obj.getStyle('border-left-width')){_elsWidth+= parseInt(obj.getStyle('border-left-width'));}
				if(obj.getStyle('border-right-width')){_elsWidth+= parseInt(obj.getStyle('border-right-width'));}
			});
			return _elsWidth;
		}else{
			var obj = _els;
			_elsWidth+= obj.getSize().x;
			// margin
			if(obj.getStyle('margin-left')){_elsWidth+= parseInt(obj.getStyle('margin-left'));}
			if(obj.getStyle('margin-right')){_elsWidth+= parseInt(obj.getStyle('margin-right'));}
			// padding
			if(obj.getStyle('padding-left')){_elsWidth+= parseInt(obj.getStyle('padding-left'));}
			if(obj.getStyle('padding-right')){_elsWidth+= parseInt(obj.getStyle('padding-right'));}
			// border
			if(obj.getStyle('border-left-width')){_elsWidth+= parseInt(obj.getStyle('border-left-width'));}
			if(obj.getStyle('border-right-width')){_elsWidth+= parseInt(obj.getStyle('border-right-width'));}
			return _elsWidth;
		}
	}
}
// set box childrens height and padding
function setChildrenMaxHeightAndPadding(_els){
	if(typeof(_els)=='object' && _els.length){
		_els[0].getChildren().each(function(_objChildren,_iChildren){
			var _itemNumb = [];
			_els.each(function(_obj,_i){
				if( typeof(_obj.getChildren()[_iChildren]) != 'undefined'){ // if children exist
					if( _els[0].getChildren()[_iChildren].tagName.toLowerCase() == _obj.getChildren()[_iChildren].tagName.toLowerCase() ){ // if children tagName equal to current
						_itemNumb.push( _obj.getChildren()[_iChildren] );
					}
				}
			});
			maxHeightAndTopPadding(_itemNumb);
		});
	}
	return true;
}
// get children of elements by lines
function sliceChildrenByLines(_els){
	if(typeof(_els)=='object' && _els.length && _els.getParent().length ){
		var _elsLength = _els.length;
		var _parent = _els.getParent()[0];
		var _elsInLines = _els.length;
		var _lines = 1;
		if(getOuterSize(_els)>_parent.getSize().x){
			_lines = Math.ceil( getOuterSize(_els) / _parent.getSize().x );
			var _linesWidth = 0;
			_elsInLines = 0;
			_els.each(function(obj,i){
				if(_linesWidth<_parent.getSize().x){
					_linesWidth+= getOuterSize(obj);
					_elsInLines++;
				}else{
					return;
				}
			});
		}
		for (var i = 0; i < _lines; i++){
			var _start = i*_elsInLines;
			var _end = (i+1)*_elsInLines;
			if(_end>_els.length-1){
				_end = _els.length-1;
			}else{
				_end--;
			}
			var _sliceArr = _els.slice(_start, _end + 1);
			setChildrenMaxHeightAndPadding(_sliceArr);
		}
	}
	return true;
}

// set product position
function itemsPosition(_items){
	if(typeof(_items)=='object' && _items.length){
		resetProperties(_items.getChildren())
		sliceChildrenByLines(_items);
	}
}
window.addEvent('load', function(){
	var product_list = $$('ul.products');
	for(n = 0; n < product_list.length; n++)
	{
		itemsPosition( $(product_list[n]).getElements('li') );
	}
	
	//itemsPosition( $$('ul.products-list li') );
});

