/* js/main.js */ 
$(document).ready(function(){
	initMenu();
	initMainSlider();
	initHorizSlider();
	initFontResize();
	initPrintVersion();
	initPopup();
	initPreviewCycle();
	initSahTabs();
	initStepsWidth();
	//facebook();
});

function facebook(){
	FB.init({ apiKey: '' });
}
/* main menu in header: width, width for drop-down, show drop-down */
function initMenu(){
	var totalWidth = $('#header div.menu').width();
	var listWidth = 1;
	$('#header div.menu > ul > li').each(function(e){
		listWidth += $(this).width() - 1;
	});
	var lastWidth = totalWidth - listWidth + $('#header div.menu > ul > li:last-child > a').width() - 1;
	
	$('#header div.menu > ul > li:last-child > a').css({
		'width': lastWidth,
		'border-right': '1px solid #c8bdab'
	});
	
	var liWidth = 0;
	$('#header div.menu > ul > li').hover(function(){
		liWidth = $(this).width();
		$(this).find('ul').width(liWidth);
		$(this).addClass('hover');
	}, function(){
		$(this).removeClass('hover');
	});
}

/* slide images at home page */
function initMainSlider(){
if ( $('#main div.main-slider > div.slide-image').length == 0 ) return false;

	var countItem = $('#main div.main-slider div.bottom ul a').length;
	var active = Math.floor( Math.random() * (countItem) );
	
	$('#main div.main-slider > div.slide-image').cycle({
		slideExpr: 'div.item-image',
		pager: '#main div.main-slider > div.bottom > ul',
		timeout:500,
		speed:7000,
		pagerAnchorBuilder: function(idx, slide) {
			return '#main div.main-slider > div.bottom > ul li:eq(' + idx + ') a';
		},
		startingSlide: 0
	});
	$('#main div.main-slider > div.slide-text').cycle({
		slideExpr: 'div.item-text',
		pager: '#main div.main-slider > div.bottom > ul',
		timeout:500,
		speed:7000,
		pagerAnchorBuilder: function(idx, slide) {
			return '#main div.main-slider > div.bottom > ul li:eq(' + idx + ') a';
		},
		startingSlide: 0
	});
}

function initCycle(){
if ( $('#main div.main-slider > div.slide-image').length == 0 ) return false;

	var countItem = $('#main div.main-slider div.bottom ul a').length;
	var active = Math.floor( Math.random() * (countItem) );
	
	$('#main div.main-slider > div.slide-image').cycle({
		slideExpr: 'div.item-image',
		pager: '#main div.main-slider > div.bottom > ul',
		pagerAnchorBuilder: function(idx, slide) {
			return '#main div.main-slider > div.bottom > ul li:eq(' + idx + ') a';
		},
		startingSlide: 0
	});
	$('#main div.main-slider > div.slide-text').cycle({
		slideExpr: 'div.item-text',
		pager: '#main div.main-slider > div.bottom > ul',
		pagerAnchorBuilder: function(idx, slide) {
			return '#main div.main-slider > div.bottom > ul li:eq(' + idx + ') a';
		},
		startingSlide: 0
	});
}


function explode( delimiter, string, limit ) {
    // Splits a string on string separator and return array of components. If limit is positive only limit number of components is returned. If limit is negative all components except the last abs(limit) are returned.  
    // 
    // version: 810.114
    // discuss at: http://phpjs.org/functions/explode
    // +     original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     improved by: kenneth
    // +     improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     improved by: d3x
    // +     bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: explode(' ', 'Kevin van Zonneveld');
    // *     returns 1: {0: 'Kevin', 1: 'van', 2: 'Zonneveld'}
    // *     example 2: explode('=', 'a=bc=d', 2);
    // *     returns 2: ['a', 'bc=d']
 
    var emptyArray = { 0: '' };
    
    // third argument is not required
    if ( arguments.length < 2
        || typeof arguments[0] == 'undefined'
        || typeof arguments[1] == 'undefined' )
    {
        return null;
    }
 
    if ( delimiter === ''
        || delimiter === false
        || delimiter === null )
    {
        return false;
    }
 
    if ( typeof delimiter == 'function'
        || typeof delimiter == 'object'
        || typeof string == 'function'
        || typeof string == 'object' )
    {
        return emptyArray;
    }
 
    if ( delimiter === true ) {
        delimiter = '1';
    }
    
    if (!limit) {
        return string.toString().split(delimiter.toString());
    } else {
        // support for limit argument
        var splitted = string.toString().split(delimiter.toString());
        var partA = splitted.splice(0, limit - 1);
        var partB = splitted.join(delimiter.toString());
        partA.push(partB);
        return partA;
    }
}


/* slide news at home page */
function initHorizSlider(){
	var countItem = $('#main div.horizontal-slider > div.navigation ul > li').length;
	var widthItem = $('#main div.horizontal-slider > div.navigation ul > li').width();
	var paddItem = parseInt($('#main div.horizontal-slider > div.navigation  ul > li').css('padding-right'));
	var widthHoriz = countItem * (widthItem + paddItem);
	$('#main div.horizontal-slider div.navigation div.bg-right').css({'width':widthHoriz+'px'});
	
	var sliding = false;
	$('#main div.horizontal-slider > div.navigation a').each(function(e){
		$(this).click(function(){
			if ( sliding ) return false;
			sliding = true;
			
			$('#main div.horizontal-slider > div.navigation ul > li').removeClass();
			$(this).parent().addClass('active');
			
			var marginHoriz = -(e*930)+'px';
			$('#main div.horizontal-slider div.slide-box div.inner').animate({marginLeft : marginHoriz},1000,function(){
				sliding = false;
			});
			
			return false;
		});
	});
}


/* resize of content */
function initFontResize(){
	var pageFontSize = 100;
	if($.cookie('fclass')){
		var curFontSize = $.cookie('fclass');
		$('body').attr('className',curFontSize);
		switch (curFontSize){
			case 'font100': pageFontSize = 100; break;
			case 'font110': pageFontSize = 110; break;
			case 'font120': pageFontSize = 120; break;
			case 'font130': pageFontSize = 130; break;
			case 'font140': pageFontSize = 140; break;
			case 'font150': pageFontSize = 150; break;
		};
	};
	
	$('a.plus').click(function(e){
		e.preventDefault();
		if (pageFontSize < 150) pageFontSize = pageFontSize + 10;
		$('body').removeClass();
		$('body').addClass('font'+pageFontSize);
		$.cookie('fclass','font'+pageFontSize);
	});
	$('a.minus').click(function(e){
		e.preventDefault();
		if (pageFontSize > 100) pageFontSize = pageFontSize - 10;
		$('body').removeClass();
		$('body').addClass('font'+pageFontSize);
		$.cookie('fclass','font'+pageFontSize);
	});
}


/* print page */
function initPrintVersion(){
	$('a.print').click(function(){
		window.print();
		return false;
	});
	$('a.web-version').click(function(){
		return false;
	});
}


/* slider for images at right column in product pages */
var firstCycle = true;

function initPreviewCycle(){
	if ( $('div.preview-photos').length == 0 ) return false;
	
	$('div.preview-photos div.image div.container img').each(function(){
		$(this).wrap('<span></span>');
	});
	
	$('#main div.preview-photos div.image > div.container').cycle({
		pager:  '#main div.preview-photos > ul.icons', 
		pagerAnchorBuilder: function(idx, slide) {
			return '#main ul.icons li:eq(' + idx + ') a';
		},
		before: function(currSlideElement, nextSlideElement, options, forwardFlag){
			$('#main div.preview-photos > ul.icons img').css('opacity','1');
			var currItemSlide = 0;
			if (firstCycle) {
				currItemSlide = options.nextSlide;
				firstCycle = false;
			}
			else {
				currItemSlide = options.nextSlide + 1;
			}
			$('#main div.preview-photos > ul.icons li:nth-child('+ currItemSlide +') img').css('opacity','0.4');
		}
	});
}


/* show popup */
function initPopup(){
	if ( $('#fader').length == 0 ) return false;
	
	$('#fader').css('opacity','0.6');
	
	$('div.popup a.close').click(function(){
		$('div.popup').css('display','none');
		$('#fader').fadeOut(2000);
		
		return false;
	});
	
	/* #popup-gallery */
	$('#main div.preview-photos div.view-all a').click(function(){
		$('#fader').fadeIn(2000,function(){
			$('#popup-gallery').css({
				'top': ( self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop) ) + 50,
				'display':'block'
			});
			
			initPopupGallery();
		});
		return false;
	});
	$('#popup-gallery a.close').click(function(){
		$('#main div.preview-photos div.image > div.container').cycle('resume');
	});
	
	/* #popup-price-chart */
	$('div.view-popup-chart a').live('click', function (e){
		e.preventDefault();
		var id = $(this).attr('href').substring($(this).attr('href').indexOf('#')+1);
		if ($('#' + id).length){
			$('#fader').fadeIn(1000,function(){
				$('#' + id).css({
					'top': ( self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop) )+100,
					'display': 'block'
				});
			});
			return false;
		}
	});
}

function initPopupGallery(){
	$('#main div.preview-photos div.image > div.container').cycle('pause');

	firstCycle = true;
	$('#popup-gallery div.preview-photos div.slide').cycle({
		pager:  '#popup-gallery div.preview-photos > ul.icons',
		timeout: 0,
		pagerAnchorBuilder: function(idx, slide) {
			return '#popup-gallery ul.icons li:eq(' + idx + ') a';
		},
		before: function(currSlideElement, nextSlideElement, options, forwardFlag){
			$('#popup-gallery div.preview-photos > ul.icons img').css('opacity','1');
			if (firstCycle) {
				$('#popup-gallery div.preview-photos > ul.icons li:nth-child('+ options.nextSlide +') img').css('opacity','0.4');
				firstCycle = false;
			}
			else {
				$('#popup-gallery div.preview-photos > ul.icons li:nth-child('+ (options.nextSlide + 1) +') img').css('opacity','0.4');
			}
		}
	});
}


/* ajax Tabs */
var first_sub_tab;
function initTabs(value){

	var countries = new ddajaxtabs("countrytabs", "countrydivcontainer");
	countries.setpersist(true);
	countries.setselectedClassTarget("link"); //"link" or "linkparent"
	countries.init();
	
	var fadeInSpeed = 200;
	var fadeOutSpeed = 200;
	var animateSpeed = 350;
	
	var tabsContentOldHeight = $('div.tabs div.fade-effect').height();
	var tabsContentOld = $('div.tabs div.fade-effect').html();

	countries.onajaxpageload = function(pageurl){
		var tabsContentNew = $('div.tabs div.fade-effect').html();
		
		if (tabsContentOld != tabsContentNew) {
			$('div.tabs div.fade-effect').html(tabsContentOld);
			$('div.tabs div.fade-effect').fadeOut(fadeOutSpeed, function(){
				$('div.tabs div.fade-effect').html(tabsContentNew);
				
				var tabsContentNewHeight = $('div.tabs div.fade-effect').css({'display':'block','visibility':'hidden'}).height();
				$('div.tabs div.fade-effect').css({'height':tabsContentOldHeight});
				$('div.tabs div.fade-effect').animate(
					{'height':tabsContentNewHeight},
					animateSpeed,
					'',
					function(){
						$(this).css({'visibility':'visible','height':'auto','display':'none'});
						$(this).fadeIn(fadeInSpeed);
						tabsContentOldHeight = $(this).height();
						tabsContentOld = $('div.tabs div.fade-effect').html();
						first_sub_tab = true;
						initTabs2(value, pageurl);
					}
				);
			});
		}
	}
}

function initTabs2(value, pageurl){
	if (pageurl.indexOf(value) != -1){
		provinces = new ddajaxtabs("provincetabs", "provincedivcontainer");
		provinces.setpersist(true);
		provinces.setselectedClassTarget("link"); //"link" or "linkparent"
		provinces.init();

		var fadeInSpeed = 200;
		var fadeOutSpeed = 200;
		var animateSpeed = 350;
	
		var tabsContentOldHeight2 = $('div.tabs div.fade-effect2').height();
		var tabsContentOld2 = $('div.tabs div.fade-effect2').html();
		
		provinces.onajaxpageload = function(pageurl){
			
			var tabsContentNew2 = $('div.tabs div.fade-effect2').html();
		
			if (tabsContentOld2 != tabsContentNew2) {
				$('div.tabs div.fade-effect2').html(tabsContentOld2);
				$('div.tabs div.fade-effect2').fadeOut(fadeOutSpeed, function(){
					$('div.tabs div.fade-effect2').html(tabsContentNew2);
					
					var tabsContentNewHeight2 = $('div.tabs div.fade-effect2').css({'display':'block','visibility':'hidden'}).height();
					$('div.tabs div.fade-effect2').css({'height':tabsContentOldHeight2});
					$('div.tabs div.fade-effect2').animate(
						{'height':tabsContentNewHeight2},
						animateSpeed,
						'',
						function(){
							$(this).css({'visibility':'visible','height':'auto','display':'none'});
							$(this).fadeIn(fadeInSpeed);
							tabsContentOldHeight2 = $(this).height();
							tabsContentOld2 = $('div.tabs div.fade-effect2').html();
						}
					);
				});
			}
		}
		
	}
}


/* tabs at page "Shop at Home"  */
function initSahTabs(){
	if ($('div.sah-tabs').length == 0) return false;
	
	$('div.sah-tabs ul.tabs-list a').css({
		'float':'none',
		'display':'inline'
	});
	
	var allStepsWidth = $('div.sah-tabs ul.tabs-list').width();
	
	var textWidth = 0;
	var count = 0;
	$('div.sah-tabs ul.tabs-list > li > a').each(function(){
		textWidth += $(this).width();
		count++;
	});
	
	var paddingSpan = Math.round(((allStepsWidth - textWidth)/count)/2);
	
	$('div.sah-tabs ul.tabs-list > li > a').css({
		'float':'left',
		'padding-left': paddingSpan,
		'padding-right': paddingSpan
	});
	
	$('div.sah-tabs ul.tabs-list > li.last > a').css({
		'float':'none',
		'display':'block',
		'padding-left': paddingSpan,
		'padding-right': 0
	});
	
	var animation = false;
	$('div.sah-tabs ul.tabs-list > li > a').click(function(e){
		
		if ($(this).attr('href').charAt(0) == '#'){
			var clickedLink = $(this);
			
			if (animation) return false;
			animation = true;
			
			var id = $(this).attr('href').substring(1);
			
			var tabsContentOldHeight = $('div.sah-tabs div.active-content').height();
			
			$('div.sah-tabs div.active-content').fadeOut(200, function(){
				$('div.sah-tabs ul.tabs-list > li > a').removeClass('active');
				$('div.sah-tabs ul.tabs-list > li').removeClass('active'); /* added 3/25/11 for csi page */
				$('div.sah-tabs div.tabs-content').removeClass('active-content');
				
				$(clickedLink).addClass('active');
				$(clickedLink).parent().addClass('active'); /* added 3/25/11 for csi page */
				$('#'+id).addClass('active-content');
				
				var tabsContentNewHeight = $('div.sah-tabs div.active-content').css({'display':'block','visibility':'hidden'}).height();
				
				$('div.sah-tabs div.active-content').css({'height':tabsContentOldHeight});
				$('div.sah-tabs div.active-content').animate(
					{'height':tabsContentNewHeight},
					350,
					'',
					function(){
						$(this).css({'visibility':'visible','height':'auto','display':'none'});
						$(this).fadeIn(200,function(){
							animation = false;
						});
						tabsContentOldHeight = $(this).height();
					}
				);
			});
			
			return false;
		}
	});
}


/* steps expand to fill the width of the bar */
function initStepsWidth(){
	if ($('#content div.steps').length == 0) return false;
	
	$('#content div.steps').each(function(){
		var allStepsWidth = $(this).width();
		
		var textWidth = 0;
		var count = 0;
		$(this).find('ul li').css({'float':'left','display':'inline'}).find('span').css({'float':'left','display':'inline','padding':0});
		
		$(this).find('ul li').each(function(){
			textWidth += $(this).width();
			count++;
		});
		
		var paddingSpan = Math.round((((allStepsWidth - textWidth)/count)-3)/2);
		
		$(this).find('ul li > span').css({
			'padding-left': paddingSpan,
			'padding-right': paddingSpan + 3
		});
		
		$(this).find('ul li.active > span').css({
			'padding-right': paddingSpan + 3 + 15
		});
		
		$(this).find('ul li > span.first').css({
			'padding-right': 0
		}).find('span').css({
			'padding-right': paddingSpan + 3
		});
		$(this).find('ul li.active > span.first').css({
			'padding-right': 0
		}).find('span').css({
			'padding-right': paddingSpan + 3 + 15
		});
		
		$(this).find('ul li.last').css({
			'float': 'none'
		});
		$(this).find('ul li.last > span.last').css({
			'padding': 0
		}).find('span').css({
			'padding-left': paddingSpan,
			'padding-right': 0
		});
	});
}

