/**
 * Javascript library for template ExtremeMagento
 * @copyright 2007 Quick Solution LTD. All rights reserved.
 * @author Giao L. Trinh <giao.trinh@quicksolutiongroup.com>
 */

(function() {
	
// EM.tools {{{
	
if (typeof BLANK_IMG == 'undefined') 
	var BLANK_IMG = '';

// declare namespace() method
String.prototype.namespace = function(separator) {
  this.split(separator || '.').inject(window, function(parent, child) {
    var o = parent[child] = { }; return o;
  });
};


'EM.tools'.namespace();


// slideshow footer
	
function decorateSlideshow() {
	var $$li = $$('#slideshow ul li');
	if ($$li.length > 0) {
		
		// reset UL's width
		var ul = $$('#slideshow ul')[0];
		var w = 0;
		$$li.each(function(li) {
			w += li.getWidth();
		});
		ul.setStyle({'width':w+'px'});
		
		// private variables
		var previous = $$('#slideshow a.previous')[0];
		var next = $$('#slideshow a.next')[0];
		var num = 1;
		var width = ul.down().getWidth() * num;
		var slidePeriod = 3; // seconds
		var manualSliding = false;
		
		// next slide
		function nextSlide() {
			new Effect.Move(ul, { 
				x: -width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				afterFinish: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ bottom: ul.down() });
					ul.setStyle('left:0');
				}
			});
		}
		
		// previous slide
		function previousSlide() {
			new Effect.Move(ul, { 
				x: width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				beforeSetup: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ top: ul.down('li:last-child') });
					ul.setStyle({'position': 'relative', 'left': -width+'px'});
				}
			});
		}
		
		function startSliding() {
			sliding = true;
		}
		
		function stopSliding() {
			sliding = false;
		}
		
		// bind next button's onlick event
		next.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			nextSlide();
		});
		
		// bind previous button's onclick event
		previous.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			previousSlide();
		});
		
		
		// auto run slideshow
		new PeriodicalExecuter(function() {
			if (!manualSliding) nextSlide();
			manualSliding = false;
		}, slidePeriod);
		
		
	}
}


/*
 * Extends EM0025
 */
function decorateSlideshow1() {
	var $$li = $$('#slideshow1 ul li');
	if ($$li.length > 0) {
		
		// reset UL's width
		var ul = $$('#slideshow1 ul')[0];
		var w = 0;
		$$li.each(function(li) {
			w += li.getWidth();
		});
		ul.setStyle({'width':w+'px'});
		
		// private variables
		var previous = $$('#slideshow1 a.previous')[0];
		var next = $$('#slideshow1 a.next')[0];
		var num = 1;
		var width = ul.down().getWidth() * num;
		var slidePeriod = 3; // seconds
		var manualSliding = false;
		
		// next slide
		function nextSlide() {
			new Effect.Move(ul, { 
				x: -width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				afterFinish: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ bottom: ul.down() });
					ul.setStyle('left:0');
				}
			});
		}
		
		// previous slide
		function previousSlide() {
			new Effect.Move(ul, { 
				x: width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				beforeSetup: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ top: ul.down('li:last-child') });
					ul.setStyle({'position': 'relative', 'left': -width+'px'});
				}
			});
		}
		
		function startSliding() {
			sliding = true;
		}
		
		function stopSliding() {
			sliding = false;
		}
		
		// bind next button's onlick event
		next.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			nextSlide();
		});
		
		// bind previous button's onclick event
		previous.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			previousSlide();
		});
		
		
		// auto run slideshow
		/*new PeriodicalExecuter(function() {
			if (!manualSliding) nextSlide();
			manualSliding = false;
		}, slidePeriod);*/
		
		
	}
}
function decorateSlideshow2() {
	var $$li = $$('#slideshow2 ul li');
	if ($$li.length > 0) {
		
		// reset UL's width
		var ul = $$('#slideshow2 ul')[0];
		var w = 0;
		$$li.each(function(li) {
			w += li.getWidth();
		});
		ul.setStyle({'width':w+'px'});
		
		// private variables
		var previous = $$('#slideshow2 a.previous')[0];
		var next = $$('#slideshow2 a.next')[0];
		var num = 1;
		var width = ul.down().getWidth() * num;
		var slidePeriod = 3; // seconds
		var manualSliding = false;
		
		// next slide
		function nextSlide() {
			new Effect.Move(ul, { 
				x: -width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				afterFinish: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ bottom: ul.down() });
					ul.setStyle('left:0');
				}
			});
		}
		
		// previous slide
		function previousSlide() {
			new Effect.Move(ul, { 
				x: width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				beforeSetup: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ top: ul.down('li:last-child') });
					ul.setStyle({'position': 'relative', 'left': -width+'px'});
				}
			});
		}
		
		function startSliding() {
			sliding = true;
		}
		
		function stopSliding() {
			sliding = false;
		}
		
		// bind next button's onlick event
		next.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			nextSlide();
		});
		
		// bind previous button's onclick event
		previous.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			previousSlide();
		});
		
		
		// auto run slideshow
		/*new PeriodicalExecuter(function() {
			if (!manualSliding) nextSlide();
			manualSliding = false;
		}, slidePeriod);*/
		
		
	}
}
function decorateSlideshow3() {
	var $$li = $$('#slideshow3 ul li');
	if ($$li.length > 0) {
		
		// reset UL's width
		var ul = $$('#slideshow3 ul')[0];
		var w = 0;
		$$li.each(function(li) {
			w += li.getWidth();
		});
		ul.setStyle({'width':w+'px'});
		
		// private variables
		var previous = $$('#slideshow3 a.previous')[0];
		var next = $$('#slideshow3 a.next')[0];
		var num = 1;
		var width = ul.down().getWidth() * num;
		var slidePeriod = 3; // seconds
		var manualSliding = false;
		
		// next slide
		function nextSlide() {
			new Effect.Move(ul, { 
				x: -width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				afterFinish: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ bottom: ul.down() });
					ul.setStyle('left:0');
				}
			});
		}
		
		// previous slide
		function previousSlide() {
			new Effect.Move(ul, { 
				x: width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				beforeSetup: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ top: ul.down('li:last-child') });
					ul.setStyle({'position': 'relative', 'left': -width+'px'});
				}
			});
		}
		
		function startSliding() {
			sliding = true;
		}
		
		function stopSliding() {
			sliding = false;
		}
		
		// bind next button's onlick event
		next.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			nextSlide();
		});
		
		// bind previous button's onclick event
		previous.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			previousSlide();
		});
		
		
		// auto run slideshow
		/*new PeriodicalExecuter(function() {
			if (!manualSliding) nextSlide();
			manualSliding = false;
		}, slidePeriod);*/
		
		
	}
}
function decorateSlideshow4() {
	var $$li = $$('#slideshow4 ul li');
	if ($$li.length > 0) {
		
		// reset UL's width
		var ul = $$('#slideshow4 ul')[0];
		var w = 0;
		$$li.each(function(li) {
			w += li.getWidth();
		});
		ul.setStyle({'width':w+'px'});
		
		// private variables
		var previous = $$('#slideshow4 a.previous')[0];
		var next = $$('#slideshow4 a.next')[0];
		var num = 1;
		var width = ul.down().getWidth() * num;
		var slidePeriod = 3; // seconds
		var manualSliding = false;
		
		// next slide
		function nextSlide() {
			new Effect.Move(ul, { 
				x: -width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				afterFinish: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ bottom: ul.down() });
					ul.setStyle('left:0');
				}
			});
		}
		
		// previous slide
		function previousSlide() {
			new Effect.Move(ul, { 
				x: width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				beforeSetup: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ top: ul.down('li:last-child') });
					ul.setStyle({'position': 'relative', 'left': -width+'px'});
				}
			});
		}
		
		function startSliding() {
			sliding = true;
		}
		
		function stopSliding() {
			sliding = false;
		}
		
		// bind next button's onlick event
		next.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			nextSlide();
		});
		
		// bind previous button's onclick event
		previous.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			previousSlide();
		});
		
		
		// auto run slideshow
		/*new PeriodicalExecuter(function() {
			if (!manualSliding) nextSlide();
			manualSliding = false;
		}, slidePeriod);*/
		
		
	}
}
function decorateSlideshow5() {
	var $$li = $$('#slideshow5 ul li');
	if ($$li.length > 0) {
		
		// reset UL's width
		var ul = $$('#slideshow5 ul')[0];
		var w = 0;
		$$li.each(function(li) {
			w += li.getWidth();
		});
		ul.setStyle({'width':w+'px'});
		
		// private variables
		var previous = $$('#slideshow5 a.previous')[0];
		var next = $$('#slideshow5 a.next')[0];
		var num = 1;
		var width = ul.down().getWidth() * num;
		var slidePeriod = 3; // seconds
		var manualSliding = false;
		
		// next slide
		function nextSlide() {
			new Effect.Move(ul, { 
				x: -width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				afterFinish: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ bottom: ul.down() });
					ul.setStyle('left:0');
				}
			});
		}
		
		// previous slide
		function previousSlide() {
			new Effect.Move(ul, { 
				x: width,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				beforeSetup: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ top: ul.down('li:last-child') });
					ul.setStyle({'position': 'relative', 'left': -width+'px'});
				}
			});
		}
		
		function startSliding() {
			sliding = true;
		}
		
		function stopSliding() {
			sliding = false;
		}
		
		// bind next button's onlick event
		next.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			nextSlide();
		});
		
		// bind previous button's onclick event
		previous.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			previousSlide();
		});
		
		
		// auto run slideshow
		/*new PeriodicalExecuter(function() {
			if (!manualSliding) nextSlide();
			manualSliding = false;
		}, slidePeriod);*/
		
		
	}
}
function decorateSlideshow6() {

	var $$li = $$('#slideshow6 ul li');
	if ($$li.length > 4) {
	
		var ul = $$('#slideshow6 ul')[0];
		var w = 0;
		$$li.each(function(li) {
			w += li.getHeight();
		});
		ul.setStyle({'height':w+'px'});
		
		// private variables
		var previous = $$('#slideshow6 a.next')[0];
		var next = $$('#slideshow6 a.previous')[0];
		var num = 1;
		var height = ul.down().getHeight() * num;
		var slidePeriod = 3; // seconds
		var manualSliding = false;
	
		function nextSlide() {
			new Effect.Move(ul, { 
				//x: -width,
				y:-height,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				afterFinish: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ bottom: ul.down() });
					ul.setStyle('top:0');
				}
			});
		}
		
		// previous slide
		function previousSlide() {
			new Effect.Move(ul, { 
				//x: width,
				y:height,
				mode: 'relative',
				queue: 'end',
				duration: 1.0,
				//transition: Effect.Transitions.sinoidal,
				beforeSetup: function() {
					for (var i = 0; i < num; i++)
						ul.insert({ top: ul.down('li:last-child') });
					ul.setStyle({'position': 'relative', 'top': -height+'px'});
				}
			});
		}
		
		function startSliding() {
			sliding = true;
		}
		
		function stopSliding() {
			sliding = false;
		}
		
		// bind next button's onlick event
		next.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			nextSlide();
		});
		
		// bind previous button's onclick event
		previous.observe('click', function(event) {
			Event.stop(event);
			manualSliding = true;
			previousSlide();
		});
		
	}
}
function menu()
{
	var Width_ul=0;
	var Width_li=0;
	var Width_before=0;
	var Width_div=0;
	var Width=0;
    $$(".menu").each(function(elem) {
		Width_ul=960;
		elem.childElements().each(function(li) {
			li.addClassName("li_menu");
            Width_li=li.getWidth();
			Width=Width_ul-Width_before;
			Width_before+=Width_li;
			$div=li.select('div')[0];
			if(typeof $div != 'undefined'){
				li.addClassName("submenu");
				Width_div=$div.getWidth();
				sub=Width_div-Width;
				if(sub>0){
					$div.addClassName(' position-right')
					li.addClassName('position-right-li')
				}
			}
        });
		
	});
}

// set Height auto Grid Catalogy

function setHeightAutoGridCatagoryDefault(){
	$$ul=$$(".col-main .products-grid");
	if($$ul.length>0){
	     for($i=0;$i<$$ul.length;$i++){
                $ul=$$ul[$i];
                $height=0;
                $ul.select("li").each(function(li){
                    if($height<li.getHeight())
				        $height=li.getHeight(); 
                });
				$ul.select("li").each(function(li){
				li.setStyle('height:'+$height+"px");
				});
	    }
    }
}

function setHeightAutoGridCatagory(){
	$$ul=$$(".col2-left-layout .col-main .products-grid");
	if($$ul.length>0){
	     for($i=0;$i<$$ul.length;$i++){
                $ul=$$ul[$i];
                $height=0;
                $ul.select("li").each(function(li){
                    if($height<li.getHeight())
				        $height=li.getHeight(); 
                });
				$height+=30;
				$ul.select("li").each(function(li){
				li.setStyle('height:'+$height+"px");
				});
	    }
    }
}

// set Height slideshow3

function setHeightAutoGridCatagorySlideshow3(){
	$$ul=$$("#slideshow3 .products-grid");
	if($$ul.length>0){
	     for($i=0;$i<$$ul.length;$i++){
                $ul=$$ul[$i];
                $height=0;
                $ul.select("li").each(function(li){
                    if($height<li.getHeight())
				        $height=li.getHeight(); 
                });
				//$height-=30;
				$ul.select("li").each(function(li){
				li.setStyle('height:'+$height+"px");
				});
	    }
    }
}

// set Height product Slideshow4

function setHeightAutoGridCatagorySlideshow4(){
	$$ul=$$("#slideshow4 .products-grid");
	if($$ul.length>0){
	     for($i=0;$i<$$ul.length;$i++){
                $ul=$$ul[$i];
                $height=0;
                $ul.select("li").each(function(li){
                    if($height<li.getHeight())
				        $height=li.getHeight(); 
                });
				//$height-=30;
				$ul.select("li").each(function(li){
				li.setStyle('height:'+$height+"px");
				});
	    }
    }
}

// set Height product Slideshow4

function setHeightAutoGridCatagorySlideshow5(){
	$$ul=$$("#slideshow5 .products-grid");
	if($$ul.length>0){
	     for($i=0;$i<$$ul.length;$i++){
                $ul=$$ul[$i];
                $height=0;
                $ul.select("li").each(function(li){
                    if($height<li.getHeight())
				        $height=li.getHeight(); 
                });
				$height+=30;
				$ul.select("li").each(function(li){
				li.setStyle('height:'+$height+"px");
				});
	    }
    }
}

// set  Height product List

function setHeightAutoListCatagoryDefault(){
	$$li=$$("#products-list li.item");
	if($$li.length>0){
		$$li.each(function(li){
			$height=0;
			li.select(".product-image").each(function(div){
				$height=div.getHeight();
			});

			li.select(".f-fix").each(function(div){
				if($height<div.getHeight())
					$height=div.getHeight();
			});
			//$height-=100;
			li.select(".short-infomation").each(function(div){
				div.setStyle('height:'+$height+"px");
			});
		});
	}
}

/* set Hieght Header Catalory */

function setHeightHeaderCatagory(){
	$height=0;
	$$div=$$(".header-category .title_info");
	if($$div.length>0){
		$$(".header-category .title_info").each(function(div){
			if($height<div.getHeight())
			$height=div.getHeight();
		});
	}
	$$div=$$(".header-category .content_info");
	if($$div.length>0){
		$$(".header-category .content_info").each(function(div){
			if($height<div.getHeight())
			$height=div.getHeight();
		});
	}
	$$div=$$(".header-category .content_info img");
	if($$div.length>0){
		$$(".header-category .content_info img").each(function(img){
			if($height<img.getHeight())
			$height=img.getHeight()-40;
		});
	}
	$$div=$$(".header-category .title_info");
	if($$div.length>0&&$height>0){
		$$(".header-category .title_info").each(function(div){
			$height_title=div.getHeight();
			$padding_top=($height-$height_title)/2;
			div.setStyle('height:'+($height-$padding_top)+'px');
			div.setStyle('padding-top:'+$padding_top+'px');
		});
	}
	$$div=$$(".header-category .content_info ");
	if($$div.length>0&&$height>0){
		$$(".header-category .content_info ").each(function(div){
			div.setStyle('height:'+$height+'px');
		});
	}
}

// set background left - slide bar left - use when emppty 
//block-related
//block-tab-reviews
//block-layered-nav
function setClassBlockLeft(){
	$blockRelated=$$(".block-related");
	$blockTabReviews=$$(".block-tab-reviews");
	$blockLayeredNav=$$(".block-layered-nav");
	$check1=false;
	$check2=false;
	if($blockRelated.length>0)
	$check1=true;
	if($blockLayeredNav.length>0)
	$check2=true;
	if($check1==true&&$check2==true){
		$$(".block-layered-nav").each(function(div){
				div.addClassName(" block-top-nav");
		});
	}
	if($check1==false&&$check2==false){
		$$(".block-tab-reviews").each(function(div){
				div.addClassName(" block-top-reviews");
		});
	}
}


document.observe("dom:loaded", function() {
	decorateSlideshow();
	decorateSlideshow1();
	decorateSlideshow2();
	decorateSlideshow3();
	decorateSlideshow4();
	decorateSlideshow5();
	decorateSlideshow6();
	setClassBlockLeft();
	menu();
	//setHeightHeaderCatagory();
	setHeightAutoGridCatagoryDefault();
	setHeightAutoGridCatagory();
	setHeightAutoGridCatagorySlideshow3();
	setHeightAutoGridCatagorySlideshow4();
	setHeightAutoGridCatagorySlideshow5();
	//setHeightAutoListCatagoryDefault();
});

// }}}

})();
