jQuery.noConflict();
jQuery(function(){
	changeBgColor();
	fixNav();
	initDrop();
	jQuery('body').myPopup();
	jQuery('select').customSelect({
		slide:true
	});
	initOpenClose();
	jQuery('ul.accordion').acc({
		speed: 400,
		active: 'active',
		list: '.children()',
		opener: 'a.open',
		slide: 'ul'
	});
	initSelAjaxLoad();
	initLinkAjaxLoad();
	initToggleOpenClose();
	jQuery('#nav li li').each(function(){
		var _this = jQuery(this);
		var link = _this.find('>a');
		var _cl = link.clone();
		link.addClass('default');
		_this.append(_cl);
		_cl.hide().addClass('clone');
		_this.mouseenter(function(){
			link.hide();
			_cl.show();
		}).mouseleave(function(){
			link.show();
			_cl.hide();
		});
	});
});

jQuery(window).load(function(){
	var str = window.location.search;
	var reg0 = /^\?m=\w*/g;
	var reg1 = /\?archive=news\w*/g;
	if(reg0.test(str) || reg1.test(str)){
		jQuery('#nav').children().eq(0).addClass('active');
		Cufon.refresh('#nav > li > a');
	}
});

function initToggleOpenClose(){
	jQuery('.column').each(function(){
		var _this = jQuery(this);
		var link = _this.find('a.open-close');
		var slideBlock = _this.find('div.block');
		var hSlide = slideBlock.height();
		slideBlock.hide();
		link.click(function(){
			if(_this.hasClass('active')){
				_this.removeClass('active');
				slideBlock.slideUp(300);
			}
			else{
				jQuery('.column').removeClass('active').find('div.block').slideUp(300);
				jQuery('.column .frame').empty();
				_this.addClass('active');
				slideBlock.slideDown(300);
			}
			return false;
		});
	});
}

function initLinkAjaxLoad(){
	var activeClass = 'active';
	jQuery('a.ajax-load').each(function(){
		var _this = jQuery(this);
		var href = _this.attr('href');
		if(_this.parents('.column').length){
			var ajaxHolder = _this.parents('.column').find('.ajax-holder');
		}
		else{
			var ajaxHolder = _this.parents('#main').find('.ajax-holder');
		}
		_this.click(function(){
			if(href !='#' || href !=''){
				jQuery.ajax({
					url: href,
					data: 'ajax=1',
					dataType:'html',
					success:function(msg){
						ajaxHolder.empty().html(msg);
						ajaxHolder.children().show();
						if(ajaxHolder.find('.product-palette').length){
							var wait, i = 0;
							var list = ajaxHolder.find('.product-palette .frame ul > li');
							var count = list.length;
							list.css('opacity', 0);

							function initFadeColor(){
								list.eq(i).animate({opacity:1}, {queue:false, duration:200, complete:function(){
									i++;
									if(i == count) clearTimeout(wait);
									else wait = setTimeout(initFadeColor, 15);
								}})
							}
							initFadeColor();
							
						}
						jQuery('body').myPopup();
					},
					error:function(){
						alert('Ajax error !');
					}
				});
			}
			function addClassActive(){
				if(_this.parents('.block')){
					jQuery('a.ajax-load').each(function(){
						jQuery(this).removeClass(activeClass);
					});
					_this.addClass(activeClass);
				}
			}
			addClassActive();
			return false;
		});
	});
}

function initSelAjaxLoad(){
	jQuery('select').each(function(){
		var _this = jQuery(this);
		var ajaxHold = _this.parent().find('.frame');
		_this.change(function(){
			var _url = _this.attr('meta');
			jQuery.ajax({
				url: _url,
				data: 'ajax=1',
				dataType:'html',
				success:function(msg){
					ajaxHold.empty().append(jQuery(msg));
				},
				error:function(){
					alert('Ajax error !');
				}
			});
		});
	});
}

function initOpenClose(){
	jQuery('.product-nav').each(function(){
		var _this = jQuery(this);
		var link = _this.find('a.open-close');
		var block = _this.find('.block');
		link.click(function(){
			if(_this.hasClass('active')){
				_this.removeClass('active');
				block.slideUp(500);
			}
			else{
				_this.addClass('active');
				block.slideDown(500);
			}
			return false;
		});
	});
}

function initDrop(){
	jQuery('#nav > li > a').each(function(){
		var _this = jQuery(this);

		var _t, _t1, i=0, y=0, wait = false;
		_this.click(function(){
			if(!_this.parent().hasClass('active')){
				var li = jQuery('#nav > li.active');
				if(li.length){
					var list = li.find('> ul');
					var count = list.children().length;
					y = count - 1;
					Cufon.refresh('#nav > li > a');
					_t = setInterval(function(){
						list.children().eq(y).animate({opacity:0}, {queue:false, duration:200, complete:function(){
							y--;
						}});
						if(y == 0) {
							clearInterval(_t);
							list.hide();
							li.removeClass('active');
							openSubList();
						}
					}, 300);
				}
				else openSubList();
			}
			return false;
		});
		function openSubList(){
			jQuery('#nav > li').removeClass('active');
			_this.parent().addClass('active');
			var drop = _this.parent().find('> ul');
			i = 0;
			Cufon.refresh('#nav > li > a');
			drop.css({'display':'block'}).children().css({'opacity':0});
			var count = drop.children().length;
			_t1 = setInterval(function(){
				drop.children().eq(i).animate({opacity:1}, {queue:false, duration:200, complete:function(){
					drop.children().eq(i).css({opacity:''});
					i++;
				}});
				if(i == count - 1) clearInterval(_t1);
			}, 300);
		}
	});
}

function fixNav(){
	jQuery('#nav li li:last').addClass('last');
}

function changeBgColor(){
	var holder = jQuery('#wrapper');
	var classHolder = [
		'#00E4F7',
		'#BC1E2D',
		'#29B273',
		'#715938',
		'#988279',
		'#1B75B9',
		'#47388D',
		'#EE5A28',
		'#739344',
		'#DCAC6C',
		'#8F6CD1',
		'#EC4036',
		'#887A16',
		'#009A3B',
		'#007164',
		'#AFA400',
		'#5D6A72',
		'#00A29B',
		'#EA4B6A',
		'#91298B',
		'#42687D',
		'#A3BA78',
		'#6C9896',
		'#A5717C',
		'#C08A5C',
		'#E40B4E'
	];
	var wait, i = 1;
	var _duration = 15000;
	holder.css({backgroundColor: classHolder[0]});

	wait = setInterval(function(){
		holder.removeClass();
		holder.stop().animate({backgroundColor: classHolder[i]}, {queue:false, duration:1500})
		i++;
		if(i == classHolder.length) i = 0;
	}, _duration);
}

jQuery.fn.myPopup = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		duration: 700,
		linkOpenName: '.link-popup',
		linkCloseName: 'a.close, a.btn-close',
		divFader: 'fader',
		wrapper: '#wrapper'
	},_options);

	return this.each(function(){
		var _hold = jQuery(this);
		var _speed = _options.duration;
		var _IE = jQuery.browser.msie;
		var links = _hold.find(_options.linkOpenName);
		var _select = jQuery(_options.wrapper).find('select');
		var popup;
		if(jQuery('body > .fader').length) {
			var _fader = jQuery('body > .fader');
		}
		else{
			var _fader = jQuery('<div class="fader"></div>');
			jQuery('body').append(_fader);
		}
		_fader.css({
			position: 'absolute',
			top: '0px',
			left: '0px',
			zIndex: 999,
			background: 'black',
			opacity: 0.7
		});
		
		function init(_obj){
			popup = jQuery('#popup');
			var _src = _obj;
			var img = document.createElement('img');
			var btnClose = popup.find(_options.linkCloseName);
			var submitBtn = popup.find('.link-submit');
			
			img.onload = function(){
				popup.find('.img-holder').empty().append(img);
				popup.find('img').attr('id', 'imagePopUpID'); /*SICOA_MOD_30*/
				initPopup();
			}
			img.src = _src;
			
			
			function initPopup(){
				if (_IE) _select.css({visibility: 'hidden'});
				var w = jQuery('body').width();
				var _w = jQuery(_options.wrapper).width();
				if (_w > w) w =_w;
				var h = jQuery(window).height();
				var _offset = jQuery(window).scrollTop();
				
				var img2 = document.getElementById('imagePopUpID'); /*SICOA_MOD_30*/
				var widthPOPUP1 = img2.clientWidth;/*SICOA_MOD_30*/
				
				var ret = _offset+(h/2) - popup.outerHeight(true)/2;
				if (ret < 0) ret = 0;
				var te = jQuery(_options.wrapper).height();
				if (jQuery(window).height() > te) te = jQuery(window).height();
				
				popup.css({
					top: ret,
					left: w/2 - popup.outerWidth(true)/2,
					width:widthPOPUP1/*SICOA_MOD_30*/
				}).hide();
				_fader.css({
					width: w,
					height: te
				}).fadeIn(300, function(){
					popup.fadeIn(300);
				});
			}

			jQuery(window).resize(function(){
				w = jQuery('body').width();
				_w = jQuery(_options.wrapper).width();
				if (_w > w) w =_w;
				popup.animate({
					left: w/2 - popup.outerWidth(true)/2
				}, {queue:false, duration: 300});
				_fader.css({
					width: w
				});
			});
			function closedPopup(opt1){
				popup.fadeOut(300, function(){
					popup.css({left: '-9999px'}).show();
					if (_IE) _select.css({visibility: 'visible'});
					submitBtn.unbind('click');
					jQuery(window).unbind('resize');
					if (opt1) _fader.hide();
					else {
						if (submitBtn.attr('href')) init(submitBtn.attr('href'));
						else init(submitBtn.attr('title'));
					}
				});
			}
			btnClose.click(function(){
				closedPopup(true);
				return false;
			});
			submitBtn.click(function(){
				closedPopup();
				return false;
			})
			_fader.click(function(){
				closedPopup(true);
				return false;
			});
		}
		links.unbind('click').click(function(){
			if (jQuery(this).attr('href')) init(jQuery(this).attr('href'));
			else init(jQuery(this).attr('title'));
			return false;
		});
	});
}

jQuery.fn.customSelect = function(_options) {
var _options = jQuery.extend({
	selectStructure: '<div class="selectArea"><div class="left"></div><div class="center"></div><a href="#" class="selectButton">&nbsp;</a><div class="disabled"></div></div>',
	hideOnMouseOut: true,
	copyClass: false,
	selectText: '.center',
	selectBtn: '.selectButton',
	selectDisabled: '.disabled',
	optStructure: '<div class="selectOptions"><div class="t"></div><ul></ul><div class="b"></div></div>',
	optList: 'ul',
	slide: false
}, _options);
return this.each(function() {
	var select = jQuery(this);
	if(!select.hasClass('outtaHere')) {
		if(select.is(':visible')) {
			var hideOnMouseOut = _options.hideOnMouseOut;
			var copyClass = _options.copyClass;
			var replaced = jQuery(_options.selectStructure);
			var selectText = replaced.find(_options.selectText);
			var selectBtn = replaced.find(_options.selectBtn);
			var selectDisabled = replaced.find(_options.selectDisabled).hide();
			var optHolder = jQuery(_options.optStructure);
			var optList = optHolder.find(_options.optList);
			if(copyClass) optHolder.addClass(select.attr('class'));
			
			if(select.attr('disabled')) selectDisabled.show();
			select.find('option').each(function() {
				var selOpt = jQuery(this);
				var _opt = jQuery('<li><a href="#">' + selOpt.html() + '</a></li>');
				if(selOpt.attr('selected')) {
					selectText.html(selOpt.html());
					_opt.addClass('selected');
				}
				_opt.children('a').click(function() {
					optList.find('li').removeClass('selected');
					select.find('option').removeAttr('selected');
					jQuery(this).parent().addClass('selected');
					selOpt.attr('selected', 'selected');
					selectText.html(selOpt.html());
					select.attr('meta', selOpt.attr('title'))
					select.change();
					// if(_options.slide){
						// var h = optHolder.height();
						// optHolder.animate({height:0}, {queue:false, duration:700, complete:function(){
							// optHolder.hide().height(h);
							// optHolder.addClass('optionsDivInvisible').removeClass('optionsDivVisible');
						// }});
					// }
					// else optHolder.hide();
					return false;
				});
				optList.append(_opt);
			});
			replaced.width(select.outerWidth());
			replaced.insertBefore(select);
			optHolder.css({
				width: select.outerWidth(),
				display: 'none',
				position: 'absolute'
			});
			jQuery(document.body).append(optHolder);
			
			var optTimer;
			replaced.hover(function() {
				if(optTimer) clearTimeout(optTimer);
			}, function() {
				if(hideOnMouseOut) {
					optTimer = setTimeout(function() {
						// optHolder.hide();
					}, 200);
				}
			});
			optHolder.hover(function(){
				if(optTimer) clearTimeout(optTimer);
			}, function() {
				if(hideOnMouseOut) {
					optTimer = setTimeout(function() {
						// optHolder.hide();
					}, 200);
				}
			});
			selectBtn.click(function() {
				if(optHolder.is(':visible')) {
					if(_options.slide){
						var h = optHolder.height();
						optHolder.animate({height:0}, {queue:false, duration:700, complete:function(){
							optHolder.hide().height(h);
							optHolder.addClass('optionsDivInvisible').removeClass('optionsDivVisible');
						}});
					}
					else{
						optHolder.hide();
						optHolder.addClass('optionsDivInvisible').removeClass('optionsDivVisible');
					}
				}
				else{
					optHolder.children('ul').css({height:'auto', overflow:'hidden'});
					optHolder.css({
						top: replaced.offset().top + replaced.outerHeight(),
						left: replaced.offset().left,
						display: 'block'
					}).addClass('optionsDivVisible').removeClass('optionsDivInvisible');
					if(_options.slide){
						var h = optHolder.height();
						optHolder.height(0).stop().animate({height:h}, {queue:false, duration:700});
					}
					// if(optHolder.children('ul').height() > 200) optHolder.children('ul').css({height:200, overflow:'auto'});
				}
				return false;
			});
			select.addClass('outtaHere');
		}
	}
});
}

jQuery.fn.acc = function(_options){
	var _options = jQuery.extend({
		speed: 400,
		active: 'active',
		list: '.children()',
		opener: 'a.opener',
		slide: 'div.slide'
	}, _options);
	return this.each(function(){
		var _list = eval('jQuery(this)' + _options.list);
		var _active = _options.active;
		var _speed = _options.speed;
		var _a = _list.index(_list.filter('.' + _active + ':eq(0)'));
		if(_a != -1) _list.removeClass(_active).eq(_a).addClass(_active);
		for(var i = 0; i < _list.length; i++){
			_list.eq(i).data('btn', _list.eq(i).find(_options.opener).eq(0));
			_list.eq(i).data('box', _list.eq(i).children(_options.slide).eq(0));
			if(i == _a) _list.eq(i).data('box').css('display', 'block');
			else _list.eq(i).data('box').css('display', 'none');
			_list.eq(i).data('btn').data('ind', i);
			_list.eq(i).data('btn').click(function(){
				if (_list.eq(jQuery(this).data('ind')).data('box').length != 0) {
					changeEl(jQuery(this).data('ind'));
					return false;
				}
			});
		}
		var anim_f = true;
		var a_h, ind_h, _k;
		function changeEl(_ind){
			if(anim_f){
				anim_f = false;
				if(_a == _ind){
					_list.eq(_a).removeClass(_active).data('box').animate({height: 0}, {
						duration: _speed,
						complete: function(){
							jQuery(this).css({display:'none', height:'auto'});
							_a = -1;
							anim_f = true;
						}
					});
				}
				else{
					_list.eq(_ind).data('box').css('display', 'block');
					ind_h = _list.eq(_ind).data('box').outerHeight();
					_list.eq(_ind).data('box').height(0);
					if(_a != -1){
						a_h = _list.eq(_a).removeClass(_active).data('box').outerHeight();
						_k = a_h/ind_h;
					}
					_list.eq(_ind).addClass(_active).data('box').animate({height: ind_h}, {
						duration: _speed,
						step: function(t_h){
							if(_a != -1) _list.eq(_a).data('box').height(a_h - t_h*_k);
						},
						complete: function(){
							_list.eq(_ind).data('box').height('auto');
							if(_a != -1) _list.eq(_a).data('box').css({display:'none', height: 'auto'});
							_a = _ind;
							anim_f = true;
						}
					});
				}
			}
		}
	});
}

;(function(jQuery){

    // We override the animation for all of these color styles
    jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){
        jQuery.fx.step[attr] = function(fx){
            if ( !fx.colorInit ) {
                fx.start = getColor( fx.elem, attr );
                fx.end = getRGB( fx.end );
                fx.colorInit = true;
            }

            fx.elem.style[attr] = "rgb(" + [
                Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
                Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
                Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)
            ].join(",") + ")";
        }
    });

    // Color Conversion functions from highlightFade
    // By Blair Mitchelmore
    // http://jquery.offput.ca/highlightFade/

    // Parse strings looking for color tuples [255,255,255]
    function getRGB(color) {
        var result;

        // Check if we're already dealing with an array of colors
        if ( color && color.constructor == Array && color.length == 3 )
            return color;

        // Look for rgb(num,num,num)
        if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
            return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];

        // Look for rgb(num%,num%,num%)
        if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
            return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];

        // Look for #a0b1c2
        if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
            return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];

        // Look for #fff
        if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
            return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];

        // Look for rgba(0, 0, 0, 0) == transparent in Safari 3
        if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
            return colors['transparent'];

        // Otherwise, we're most likely dealing with a named color
        return colors[jQuery.trim(color).toLowerCase()];
    }

    function getColor(elem, attr) {
        var color;

        do {
            color = jQuery.curCSS(elem, attr);

            // Keep going until we find an element that has color, or we hit the body
            if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") )
                break;

            attr = "backgroundColor";
        } while ( elem = elem.parentNode );

        return getRGB(color);
    };

    // Some named colors to work with
    // From Interface by Stefan Petre
    // http://interface.eyecon.ro/

    var colors = {
        aqua:[0,255,255],
        azure:[240,255,255],
        beige:[245,245,220],
        black:[0,0,0],
        blue:[0,0,255],
        brown:[165,42,42],
        cyan:[0,255,255],
        darkblue:[0,0,139],
        darkcyan:[0,139,139],
        darkgrey:[169,169,169],
        darkgreen:[0,100,0],
        darkkhaki:[189,183,107],
        darkmagenta:[139,0,139],
        darkolivegreen:[85,107,47],
        darkorange:[255,140,0],
        darkorchid:[153,50,204],
        darkred:[139,0,0],
        darksalmon:[233,150,122],
        darkviolet:[148,0,211],
        fuchsia:[255,0,255],
        gold:[255,215,0],
        green:[0,128,0],
        indigo:[75,0,130],
        khaki:[240,230,140],
        lightblue:[173,216,230],
        lightcyan:[224,255,255],
        lightgreen:[144,238,144],
        lightgrey:[211,211,211],
        lightpink:[255,182,193],
        lightyellow:[255,255,224],
        lime:[0,255,0],
        magenta:[255,0,255],
        maroon:[128,0,0],
        navy:[0,0,128],
        olive:[128,128,0],
        orange:[255,165,0],
        pink:[255,192,203],
        purple:[128,0,128],
        violet:[128,0,128],
        red:[255,0,0],
        silver:[192,192,192],
        white:[255,255,255],
        yellow:[255,255,0],
        transparent: [255,255,255]
    };

})(jQuery);
