var ie = jQuery.browser.msie;
var ie6 = jQuery.browser.msie && parseFloat(jQuery.browser.version, 10) >= 6;
var ie7 = jQuery.browser.msie && parseFloat(jQuery.browser.version, 10) >= 7;
$.extend({
	sliderActivate: function(obj) {

		var slider = obj;
		var imgs = slider.find('.slider-item');

		if(imgs.length < 2)
			return false;
		var img = $(imgs[0]);
		if(!img)
			return false;

		img.css({zIndex:10, position:'absolute'}).animate({opacity:0}, function() {
			$(this).insertAfter($(imgs[imgs.length-1])).removeAttr('style');
		});

	},
	sliderInit: function() {
		$('.slider-item-container').each(function() {
			var baseel = $(this);
			var el = baseel.find('.slider-item');
			var baseslider = baseel.find('.slider');
			var len = el.length;
			if(len == 2) {
				baseslider.append($(el[0]).clone());
				len++;
			}

			baseslider.css({width:(len*820) + 'px'});

			if(baseel.hasClass("autoscroll")){
				var time = /duration-(\d)/.exec($(this).attr("class"));
				if(time.length > 1){
					time = (time[1] * 1000);
					baseel.data('time', time).data('interval', setInterval(function(){
						$.sliderActivate($(baseel).closest('.slider-item-container').find('.slider'));
					}, time));
				}
			}

		});
	},
	/*basket related stuff!*/
	productAdd: function() {
		var id = $(this).attr('id').split('_')[1];
		//var name_arr = $('#namearr_' + id).attr('value');
		$('#ajax_' + id).attr('value', 1);
		if($('#form_' + id + '_add').find('[name=size]').val() == '') {
			return false;
		}
	    $(this).ajaxSubmit({dataType:'html',type:'POST',success:function(data) {
	    	$.updateBasket(data);
	    	/*$('#AddBtn').text('ADDED TO CART').animate({blind:1}, 500, function() {
	    		$('#AddBtn').text('ADD TO CART');
	    	});*/
	    	
	    	$('#ContinueBtn').fadeIn('fast');//css({display:'block'}).animate({blind:1}, 50, function() { $(this).addClass('active'); }).animate({blind:1}, 100, function() { $(this).removeClass('active'); }).animate({blind:1}, 100, function() { $(this).addClass('active'); }).animate({blind:1}, 100, function() { $(this).removeClass('active'); })
	    	$('#AddBtn').text('ADDED TO SELECTION').animate({blind:1}, 50, function() { $(this).addClass('nonactive').removeClass('active'); }).animate({blind:1}, 100, function() { $(this).removeClass('nonactive').addClass('active'); }).animate({blind:1}, 100, function() { $(this).addClass('nonactive').removeClass('active'); }).animate({blind:1}, 100, function() { $(this).removeClass('nonactive').addClass('active'); }).animate({blind:1}, 300, function() { $(this).text('ADD TO SELECTION').removeClass('active'); })
	    	
	    }});
	    return false;
	},
	setTitle: function(str) {
		document.title = (str?str + ' - ':'') + orig_title;
	},	
	setupMenu: function() {
		$('.popup_header').addClass('popup_notifier');
		$('.popup_item', $('#Menu')).each(function() {
			var select = $(this).find('select')[0];
			var options = select.options;
			var len = options.length;
			var items = [];
			var prevLetter = null;
			var single = $(this).find('.popup_header').text().toUpperCase();
			var multiple = "";
			for (var i = 0; i < len; i++) {
				var option = options[i];
				if(option.value == '') {
					multiple = option.text.toUpperCase();
					continue;
				}
				var letter = option.text.charAt(0).toUpperCase();
				letter = (!isNaN(letter)?'#':letter);
				if(letter != prevLetter) {
					//items.push({data:'<div class="empty"></div>'});
					items.push({type:'header',data:'<div class="header">' + letter + '</div>',data_continued:'<div class="header">' + letter + '<span class="subheader"> (CONTINUED)</span></div>'});
				}
				prevLetter = letter;
				items.push({type:'item',data:'<a href="' + root + option.value + '" class="item">' + option.text.toUpperCase() + '</a>'})
			}
			len = items.length;
			var index = 0;
			var cols = Math.min(Math.ceil(len*18 / 200), 3);
			var itempercol = Math.ceil(len / cols);
			var lastHeader = '';
			var offset = 0;
			var str = ''; //making own html is much more efficient than making dom-elements otf.
			for(var i = 0; i < cols; i++) {
				str += '<div class="column' + ((i+1) == cols?' last':'') + '">';
				for(var j = 0; j < itempercol+offset; j++) {
					if(index >= len) {
						break;
					}
					if(j == 0 && items[index].type != 'header') {
						if(lastHeader) str += lastHeader;
						else str += '<div class="empty"></div>';
					}
					if(items[index].type == 'header') lastHeader = items[index].data_continued;
					if((itempercol+offset) == (j+1) && items[index].type == 'header') {
						offset++;
						//alert(cols + ' ' + i)
						break;
					}
					str += items[index].data;
					index++;
				}
				str += '</div>';
			}
			str = '<div class="mainheader">CHOOSE BY ' + single + '</div><div class="headerline"></div>' + str;
			str += '<div class="clear"></div>';
			str += '<div class="headerline btm"></div>';
			str += '<div class="clear"></div>';
			str += '<div class="subline"><a href="' + root + select.name + '">OR&nbsp;VIEW&nbsp;' + multiple.replace(/ /g, '&nbsp;') + '</a></div>';
			$(this).append('<div class="popup"><div class="topleft"></div><div class="topright"></div><div class="contentfill"></div><div class="content">' + str + '</div><div class="contentfill"></div><div class="btmleft"></div><div class="btmright"></div><div class="arrow"></div><div class="clear"></div></div>');
			if(ie) {
				$(this).find('.content').css({width:(150*cols)-10});
				$(this).find('.contentfill').css({width:(150*cols)+6});
			}
		});
		
		$('#Menu').hover(function() { $('#Menu').data('enableMenu', true); });

		$('.popup_item').mouseenter(function(e) {
			if($('#Menu').data('enableMenu') !== true) return;
			$(this).find('.popup').stop();
		});
		$('.popup_item a').mouseover(function(e) {
			if($('#Menu').data('enableMenu') !== true) return;
			$(this).parent().parent().find('.popup').stop().hide();
			var obj = $(this).parent().find('.popup');
			//var linkpos = $(this).offset();
			//document.title = linkpos.top-$(window).scrollTop();
			//var position = $(this).offset()+140;/*position.top-$(window).scrollTop()*/
			obj.stop().show();
		});
		$('.popup_item').mouseleave(function(e) {
			if($('#Menu').data('enableMenu') !== true) return;
			$(this).find('.popup').stop().delay(500, function() {
				$(this).hide();
			});
		});
		$('.selector_form').remove();
	},
	basketAdd: function(id) {
		$('#upd_' + id).val(parseInt($('#upd_' + id).val(), 10)+1);
	},
	basketRemove: function(id, new_val) {
		$('#upd_' + id).val(typeof(new_val) == 'undefined'?parseInt($('#upd_' + id).val(), 10)-1:new_val);
	},
	basketPost: function() {
		$('#frm_basket').ajaxSubmit({dataType:'html',type:'POST',success:function(data) { $.updateBasket(data); }});
	},
	setupAjax: function(isopen) {
		$('#Bar .item .increase, #Bar .item .decrease').unbind().bind('click', function() {
			var id = $(this).attr('id').split('_');
			id = id[id.length-1];
			if($(this).hasClass('increase'))
				$.basketAdd(id);
			else
				$.basketRemove(id);
			$.basketPost();
			//$('#bi_val_' + id).text('3');
			//$.updateBasket();
			return false;
		}).disableSelection();
		$('#Bar .item .delete').unbind().bind('click', function(e) {
			var id = $(this).attr('id').split('_');
			id = id[id.length-1];
			var obj = $('#bi_' + id);
			obj.fadeOut('slow', function() { $(this).remove(); });
			$.basketRemove(id, 0);
			$.basketPost();
			return false;
		}).disableSelection();
		//$('#AddBtn').unbind().bind('click', $.productAdd
		/*function() {
			alert($('#form_add input[name=color]').val() + ' ' + $('#form_add select[name=size]').val() + ' ' + $('#form_add select[name=add]').val());
			$.updateBasket();
			return false;
		}*///);
		if(!isopen)
			$('#ViewCart').unbind().toggle($.openCart, $.closeCart);
		else
			$('#ViewCart').unbind().toggle($.closeCart, $.openCart);
			
		$('#CartPagingLeft').unbind().bind('click', $.scrollCartLeft);
		$('#CartPagingRight').unbind().bind('click', $.scrollCartRight);
		$.setupCart();
	},
	setupCart: function() {
		//$('#BarContainer').css({width:i + 'px'});
		$.cartScrollInit();
		$(window).unbind('resize').bind('resize', $.cartScrollInit);
	},
	cartScrollInit: function() {
		$('#BarContainer').stop(true, true).css({marginRight:0});
		var winW = $(window).width();
		var i = 135 * $('#BarContainer .item').length;
		var barW = $('#BarContainer').width();
		//$('#Debug').html(i + ' ' + barW);
		if(barW < i) {
			$('#CartPagingLeft').removeClass('hidden');
		} else {
			$('#CartPagingLeft').addClass('hidden');
			$('#CartPagingRight').addClass('hidden');
		}
	},
	scrollCartRight: function() {
		var val = parseInt($('#BarContainer').css('margin-right'), 10); if(isNaN(val)) val = 0;
		$('#BarContainer').stop(true, true).animate({marginRight:val+127});
		var i = 135 * $('#BarContainer .item').length;
		var barW = $('#BarContainer').width();
		if((val+127) == 0)
			$('#CartPagingRight').addClass('hidden');
		if(barW >= (i+(val+127)))
			$('#CartPagingLeft').removeClass('hidden');
		else
			$('#CartPagingLeft').addClass('hidden');
		return false;
	},
	scrollCartLeft: function() {
		var val = parseInt($('#BarContainer').css('margin-right'), 10); if(isNaN(val)) val = 0;
		$('#BarContainer').stop(true, true).animate({marginRight:val-127});
		$('#CartPagingRight').removeClass('hidden');
		var i = 135 * $('#BarContainer .item').length;
		var barW = $('#BarContainer').width();
		if(barW >= (i+(val-127)))
			$('#CartPagingLeft').addClass('hidden');
		//$('#Debug').html((barW+(val-127)) + ' ' + (i+(val-127)) + ' ' + i + ' ' + (val-127) + ' ' + $(window).width());
		return false;
	},
	searchHide: function(obj) {
		if(!obj) obj = $('#Search').removeClass('open');
		obj.find('input').hide();
		obj.stop().animate({marginLeft:-80}, 300);
	},
	setupSearch: function() {
		$('#Search button').remove();
		if(typeof(search_open) == 'undefined') {
			$('#Search').addClass('slided');
			$('#Search input').hide();
		} else {
		//	$('#Search').addClass('open');
		}
		$('#Search').bind('click', function() { 
			if(parseInt($('#Search').css('margin-left'), 10) >= 0) {
				$.searchHide();
			} else {
				$('#Search input').bind('click', function() { $(this).focus(); return false; }).show().bind('blur', function() { $.searchHide(); }).val('')[0].focus();
				$('#Search').stop().animate({marginLeft:'0px'}, 300, function() { $(this).addClass('open'); });
			}
		});
	},
	setupItems: function() {
		$('.itemlist').unbind().click(function(e) {
			var obj = e.target;
			var found = false;
			while(obj && obj != $(this)[0]) {
				obj = obj.parentNode;
				if($(obj).hasClass('smallitem') || $(obj).hasClass('itemcontainer')) {
					found = true;
					break;
				}
			}
			if(found) {
				var link = $(obj).find('a');
				if(link.length > 0) {
					goLoc(link[0].href);
				}
				return false;
			}
		});
		
		$('.smallitem').css({cursor:'pointer'});
	},
	scrollNext: function(e) { 
		//gör en bakåtvänd find!
		var obj = e.target;
		while(obj) {
			obj = obj.parentNode;
			if($(obj).hasClass('productitem')) {
				var val = $(obj).height();
				var marg = parseInt($(obj).css('margin-bottom'), 10); if(isNaN(marg)) marg = 0;
				val += marg;
				$('html,body').animate({scrollTop: $('body').scrollTop()+val}, 400);
				break;
			}
		}
		return false;
	},
	updateBasket: function(data) {
		isopen = false;
		if(parseInt($('#BarContent').css('height'), 10) == 190) isopen = true;
		$('#Bar').html(data);
		if(isopen) {
			$('#Footer').css({paddingBottom: 260});
			$('#ViewCart').text('HIDE SELECTION');
			$('#BarContent').css({height: 190});
			var items_basket = parseInt($('#items_basket').val(), 10);
			if(items_basket <= 0) {
				$.closeCart();
			}
		}
		$('#BarTotal').stop(true, true).css({backgroundColor: '#f9f7f7',color:'#000'}).animate({backgroundColor: '#0088c6',color:'#fff'}).animate({backgroundColor: '#f9f7f7',color:'#000'}, function() { $(this).attr('style', ''); });
		$.setupAjax(isopen);
	},
	openCart: function() {
		$('#Footer').animate({paddingBottom: 260});
		//$('body').animate({scrollTop: $('body').scrollTop()+190});
		$('#ViewCart').text('HIDE SELECTION');
		$('#BarContent').animate({height: 190});
		$.setupCart();
	},
	closeCart: function() {
		$('#Footer').animate({paddingBottom: 80});
		//$('body').animate({scrollTop: $('body').scrollTop()-190});
		$('#ViewCart').text('VIEW SELECTION');
		$('#BarContent').animate({height: 0});
		$(window).unbind('resize');
	},
	initiateAjax: function() {
		$('.noscr').hide();
		$('.forcescript').removeClass('forcescript');
		$('#parentselect,#childselect,#brandselect').bind('change', $.ajaxCategorySelect);
		$('.paging_next').unbind().bind('click', $.ajaxPagingAppend);
		$('.paging_previous').unbind().bind('click', $.ajaxPagingPrepend);
	},
	initiate: function() {
		$('.noscr').hide();
		$.setupItems();
		$('.forcescript').removeClass('forcescript');
		$.setupAutoScroll();
		//AJJJAX
		$.setupAjax();
		//$.openCart();
	},
	setupAutoScroll: function() {
		$('.scrolltolist').bind('click', function() {
			var elem = $('#Filter');
			if(elem.length) {
				var elempos = elem.offset().top;
				$('html,body').animate({scrollTop: elempos}, 400);
			}
		});
		
	},
	initiateHeader: function() {
		$('.noscr').hide();
		$('.forcescript').removeClass('forcescript');
		$.setupMenu();
		$.setupSearch();
		$.setupNewsletter();
	},
	setupNewsletter: function() {
		$('.next_item').unbind().bind('click', $.scrollNext);	
		jQuery.NewsStdText = 'Sign up for our newsletter';
		$('#Newsletter form').ajaxForm({dataType:'html',type:'POST',beforeSubmit: function() {
			var obj = $('#Newsletter input[name=newsletter_email]');
			if(obj.val() == '' || obj.val() == jQuery.NewsStdText) {
				return false;
			}
			return true;
		},success:function(data) {
			$('#Newsletter .input').val('Thank you...').delay(1000, function() {
				$(this).val(jQuery.NewsStdText);
			});
			$('#Newsletter .input')[0].blur();
		}});
		$('#Newsletter .input').val(jQuery.NewsStdText).unbind().bind('click', function() { 
			if($(this).val() == jQuery.NewsStdText) $(this).val('');
		}).bind('blur', function() {
			if($(this).val() == '') $(this).val(jQuery.NewsStdText); });
	},
	NewsletterSubmit: function() {
		var obj = $('#Newsletter input[name=newsletter_email]');
		if(obj.val() == '' || obj.val() == jQuery.NewsStdText) {
			return false;
		}
		$('#Newsletter input[name=ajax]').val('1');
		return true;
	},
	checkoutSubmit: function() {
		$('#basket_form').submit();
		return false;
	},
	checkoutPost: function(url) {
		url += (url.indexOf('?') == -1?'?':'&') + 'ajax=1';
		$.get(url, function(data) { $.checkoutUpdate(data); })
		return false;
	},
	checkoutUpdate: function(data) {
		$('#List').html(data);
		$("#TotalPrice").stop(true, true).css({background: '#0088c6',color:'#000'}).animate({backgroundColor: '#0088c6',color:'#fff'}).animate({backgroundColor: '#fff',color:'#000'}, function() { $(this).attr('style', ''); });
	},
	checkoutCheck: function() {
		if(order_posted) return false;
		order_posted = true;
		$('.sub_btn').attr('disabled', 'disabled');
		order_posted = true;
		return true;
	},
	basketInit: function() {
		$('#basket_form').ajaxForm({dataType:'html',type:'POST',success:function(data) { $.checkoutUpdate(data); }});
		$('#ajax_input').val('1');
		$('#voucher_form').ajaxForm({dataType:'html',type:'POST',success:function(data) { $.checkoutUpdate(data); }});
		$('#vouchersave,#voucherremove').unbind().bind('click', $.voucherAdd);
		$('#List .remove').unbind().bind('click', function() { if(!confirm('Remove ?')) return false; return $.checkoutPost($(this).attr('href')); });
		//$('#List .decrease').bind('click', function() {  });
	},
	checkoutInit: function() {
		$(".payment_option img").unbind().bind('click', $.paymentSelect);
		$('.payment_option input').unbind().bind('click', $.paymentActivate);
		$('#fm_address').unbind().bind('click', $.paymentSubmitAddress);
		$('#reg_pnr,#reg_pnr_old').unbind().bind('keydown', $.paymentNewAddress);
		$('#submit_form').unbind().bind('submit', function() { $('.sub_btn').attr('disabled', 'disabled'); return true; });
		$.checkoutFormInit();
	},
	checkoutFormInit: function() {
		$('#ShippingForm .notify').remove();
		$('#ShippingForm input.text').each(function() {
			var rel = $(this).attr('rel');
			var iserror = $(this).hasClass('error');
			var val = $(this).val();
			if(rel) {
				if(iserror || val != '' && val != rel) $(this).parent().append('<span class="notify' + (iserror?' error':'') + '">' + rel + '</span>');
				else if(val == '' || val == rel) $(this).val(rel).addClass('nonedit');
			}
			$(this).bind('focus', function() {
				var rel = $(this).attr('rel');
				if(rel == $(this).val()) {
					$(this).removeClass('nonedit');
					$(this).val('');
					$(this).parent().find('span').remove();
					$(this).parent().append('<span class="notify">' + rel + '</span>');
				}
			}).bind('blur', function() {
				if($(this).val() == '') {
					$(this).parent().find('span').remove();
					$(this).val($(this).attr('rel'));
					$(this).addClass('nonedit');
				}
			});
		});
	},
	voucherCheck: function() {
		$('#voucher_ajax').attr('value', 1);
		return true;
	},
	voucherAdd: function() {
		if($('#voucher_code').attr('value')) {
			$('#voucher_code').attr('readonly', 'readonly');
		}
		$('#voucher_ajax').attr('value', 1);
		$('#voucher_form').submit();
		return false;
	},
	paymentActivate: function(o, remote, inited) {
		if(!remote) o = $(this);
		var val = o.attr('id').split('_')[0];
		var paytype = o.val();
		$('#pay_method').attr('value', paytype);
		var paymentreload = false;
		$('#msg_form').addClass('hidden');
		if(!inited) {
			//$('#address_input span, label.error, a.error').removeClass('error');
			$('.error_box').addClass('hidden');
		}
		switch(val) {
		case 'cc':
			$('#reg_pnr').attr('name', 'reg_pnr_old');
			$('#pp_proceed').addClass('hidden');
			$('#normal_proceed').removeClass('hidden');
			$('#address_form').removeClass('hidden');
			$('#address_input').removeClass('hidden');
			$('#checkout_form').removeClass('hidden');
			$('#ff_form_input').addClass('hidden');
			if(lastType == 'fm') {
				if(!inited) {
					$.paymentReload();
					paymentreload = true;
				}
				$.paymentEmptyAddress();
				$.checkoutFormInit();
			}
			lastType = 'cc';
		break;
		case 'pp':
			$('#reg_pnr').attr('name', 'reg_pnr_old');
			$('#pp_proceed').removeClass('hidden');
			if($('#pp_cou_id').val() != '0') {
				$('#normal_proceed').removeClass('hidden');
			} else {
				$('#normal_proceed').addClass('hidden');
			}
			
			$('#address_form').addClass('hidden');
			$('#ff_form_input').addClass('hidden');
			$('#address_input').addClass('hidden');
			$('#checkout_form').removeClass('hidden');
			if($('#pp_cou_id').val() != '0') $('#reg_cou_id').val($('#pp_cou_id').val());
			$('#agree').attr('checked', $('#agree_pp').attr('checked'));
			if(lastType == 'fm') {
				if(!inited) {
					$.paymentReload();
					paymentreload = true;
				}
				$.paymentEmptyAddress();
				$.checkoutFormInit();
			}
			lastType = 'pp';
		break;
		case 'fm':
			$('#pp_proceed').addClass('hidden');
			$('#normal_proceed').removeClass('hidden');
			$('#shipping_header').removeClass('hidden');
			$('#address_form').removeClass('hidden');
			$('#reg_pnr').attr('name', 'reg_pnr');
			if(fmIsSet) {
				$('#checkout_form').removeClass('hidden');
				$('#address_input').removeClass('hidden');
				$('#ff_form_input').removeClass('hidden');
				if(fmData != null) $.paymentFillAddress();
			} else {
				$('#fm_address').removeClass('hidden');
				$('#checkout_form').addClass('hidden');
				$('#address_input').addClass('hidden');
				$('#ff_form_input').removeClass('hidden');
			}
			if(inited && ($('#reg_pnr').val().length > 0 && $('#reg_pnr').val().indexOf('*') == -1)) {
				$('#fm_address').attr('value', $('#fm_address').attr('rel'));
				$('#fm_address').removeAttr('disabled');
				$('#address_input').removeClass('hidden');
				$('#checkout_form').removeClass('hidden');
				$('#normal_proceed').removeClass('hidden');
				$('#fm_address').addClass('hidden');
				fmIsSet = true;
			}
			if(!inited) {
				$.paymentReload();
				paymentreload = true;
			}
			lastType = 'fm';
			if($('#fm_use_address').val() == '0') {
				$('#fm_address').addClass('hidden');
				$('#address_input').removeClass('hidden');
			}
		break;
		}
		if(!inited && !paymentreload) {
			$.paymentReload(true);
		}
		//$.updatePaymethod();
		
	},
	paymentReload: function(hideupdate) {
		$('#pay_ajax').attr('value', 1);
		$('#payment_form').ajaxSubmit({dataType:'html',type:'POST',success:function(data) { $.checkoutUpdate(data, hideupdate); }});
	},
	paymentSubmitAddress: function() {
		$(this).html('<span>Loading...</span>');
		$(this).attr('disabled', true);
		$.ajax({
		   type: "POST",
		   url: root + "payment_address",
		   dataType: "json",
		   data: "pno=" + $('#reg_pnr').val(),
		   success: $.paymentGotAddress
		 });
		return false;
		//setTimeout($.paymentGotAddress, 1000);
	},
	paymentGotAddress: function(data) {
		//$('#address_input span, label.error, a.error').removeClass('error');
		$('.error_box').addClass('hidden');
		$('#fm_address').html('<span>Continue</span>');
		$('#fm_address').removeAttr('disabled');
		$('#address_input').removeClass('hidden');
		$('#checkout_form').removeClass('hidden');
		$('#fm_address').addClass('hidden');
		fmIsSet = true;
		$.paymentFillAddress(data);
	},
	paymentFillAddress: function(data) {
		if(data.got != undefined && data.got > 0) {
			$('#reg_address,#reg_coaddress,#reg_zipcode,#reg_city,#reg_cou_id').each(function() {
				if($(this).attr('rel')) $(this).parent().append('<span class="notify">' + $(this).attr('rel') + '</span>');
			})
			$('#reg_cou_id_pp').attr('name', 'reg_cou_id');
			$('#reg_cou_id').attr('name', 'reg_cou_id_old');
			$('#reg_name').attr('value', data.firstname);
			$('#reg_sname').attr('value', data.lastname);
			$('#reg_address').attr('value', data.address);
			$('#reg_coaddress').attr('value', '');
			$('#reg_zipcode').attr('value', data.zipcode);
			$('#reg_city').attr('value', data.city);
			$('#reg_cou_id').val(data.cou_id);
			$('#reg_cou_id_pp').val(data.cou_id);
			$.checkoutUpdate(data.basket);
		}
		fmData = true;
	},
	paymentNewAddress: function() {
		if(fmIsSet) {
			$('#checkout_form').addClass('hidden');
			$('#address_input').addClass('hidden');
			$('#fm_address').removeClass('hidden');
		}
	},
	paymentEmptyAddress: function() {
		$('#reg_name,#reg_sname,#reg_address,#reg_coaddress,#reg_zipcode,#reg_city').attr('value', '');
		$('#reg_cou_id_pp').attr('name', 'reg_cou_id_pp');
		$('#reg_cou_id').attr('name', 'reg_cou_id');
		fmIsSet = false;
	},
	paymentSelect: function() { var id = $(this).attr('id').split('_'); id[2] = 'rd'; var obj = $('#' + id.join('_')); obj.attr('checked', true); $.paymentActivate(obj, true); return false; },

	checkoutUpdateShipping: function(val) {
		$('#shipping_cou_id').val(val);
		$('#shipping_form').ajaxSubmit({dataType:'html',type:'POST',success:function(data) { $.checkoutUpdate(data); }});
	}
});
$.fn.delay = function(time, callback){
    jQuery.fx.step.delay = function(){};
    return this.animate({delay:1}, time, callback);
}
function goLoc(u) {
	document.location.href = u;
}
$.extend({
	ajaxCategorySelect: function() {
		var pID = $('#parentselect').val();
		var cID = $('#childselect').val();
		var prID = $('#product_urlify').val();
		var braID = $('#brandselect').val();
		if(prID) {
			if(braID)
				var url = 'product/brand-' + (pID || cID?'category-' + (pID?pID:'') + (pID && cID?'-':'') + (cID?cID:'') + '-':'') + braID + '/' + prID;
			else
				var url = 'product/' + (pID || cID?'category-' + (pID?pID + '-':'') + (cID?cID:''):'all') + '/' + prID;
		} else if(braID) {
			var url = 'brand/' + (pID || cID?'category-' + (pID?pID:'') + (pID && cID?'-':'') + (cID?cID:'') + '/':'') + braID;
		} else {
			var url = (pID || cID?'category/' + (pID?pID + '-':'') + (cID?cID:''):'all');
		}
		$.post(root + url, 'ajax=1', function(data) { $('#Filter').html(data); $.initiateAjax(); }, 'html');
	},
	ajaxPagingPrepend: function() {
		var url = $(this).attr('href');
		$(this).find('.loading').css({display:'block'});
		$.post(url, 'ajax=1&headers=1&direction=-1', function(data) { $('.topbtn,.topbtn_clear').remove(); $('#FilterProducts').prepend(data); $.initiateAjax(); });
		return false;
	},
	ajaxPagingAppend: function() {
		var url = $(this).attr('href');
		$(this).find('.loading').css({display:'block'});
		$.post(url, 'ajax=1&headers=1&direction=1', function(data) { $('.btmbtn').remove(); $('#FilterProducts').append(data); $.initiateAjax(); });//
		return false;
	},
	initiateHash: function() {
		var hash = document.location.hash;
		if(hash) {
			$('#Filter').hide();
			location.replace(hash.substr(1));
		}
	}
});
$.extend({
	DropSelCheckMouse: function(e) {
		var t = e.target;
		if (jQuery.activeDropSelMenus != undefined) {
			if(jQuery.activeDropSelMenus.length && t == jQuery.activeDropSelMenus[0])
				return;
			while ( t.parentNode && t.parentNode != jQuery.activeDropSelMenus[0]) {
				t = t.parentNode;
			}
			if(t.parentNode) t = t.parentNode;
			if(jQuery.activeDropSelMenus.length && t == jQuery.activeDropSelMenus[0])
				return;
		}
		$.DropSelCloseAll();
		return false;
	},
	DropSelCloseAll: function() {
		$(document).unbind('mousedown');
		if(typeof(jQuery.activeDropSelMenus) != 'undefined' && jQuery.activeDropSelMenus) {
			jQuery.activeDropSelMenus.removeClass('open').css({marginTop:0});
		} else {
			
		}
		$('.dropsel .item').unbind('click');
		$('.dropsel').unbind('click').bind('click', $.DropSelOpen);
	},
	DropSelSelect: function() {
		var obj = $(this).parent();
		obj.find('.item.active').removeClass('active');
		$(this).addClass('active');
		
		var id = $(this).attr('id').split('_');
		var pid = id[0];
		id.shift();
		id = id.join('_');
		$('#' + pid).val(id != '0'?id:'');
		$.DropSelCloseAll();
		if(obj.data('clickFunction')) {
			$(this).addClass('loading');
			obj.data('clickFunction')();
		}
		return false;
	},
	DropSelOpen: function() {
		var i = 0, foundSelected = false;
		var items = $(this).find('.item');
		items.each(function() {
			if(!$(this).hasClass('active')) {
				i += 25;
			} else {
				foundSelected = true;
				return false;
			}
		});
		var len = items.length;
		if($(this).parent().hasClass('low'))
			$(this).css({marginTop: '0px'});
		else
			$(this).css({marginTop: -(len >= 10 && !$(this).parent().hasClass('showselected')?Math.floor(len/2)*25:i) + 'px'});
		$(this).addClass('open');
		jQuery.activeDropSelMenus = $(this);
		$('.dropsel').unbind('click');
		$('.dropsel .item').unbind('click').bind('click', $.DropSelSelect);
		$(document).unbind('mousedown').bind('mousedown', $.DropSelCheckMouse);
	}
});
jQuery.fn.extend({
	DropSel: function(clickFunction) {
		var selObj = this.find('select');
		var select = selObj[0];
		var options = select.options;
		var len = options.length;
		var name = select.name;
		var selected = selObj.find('option:selected')[0];
		var id = (select.id + '').split('_').join('');
		var str = '<input type="hidden" name="' + name + '" id="' + id + '" value="' + (selected?selected.value:'') + '" /><div class="dropsel">';
		for (var i = 0; i < len; i++) {
			var option = options[i];
			if(option.value == '') {
				str += '<div id="' + id + '_0" class="item' + (option == selected?' active':'') + (!i?' top':'') + ((i-1) == len?' btm':'') + '">' + option.innerHTML + '<span class="loader"></span></div>';
			} else {
				str += '<div id="' + id + '_' + option.value + '" class="item' + (option == selected?' active':'') + (!i?' top':'') + ((i+1) == len?' btm':'') + '">' + option.innerHTML + '<span class="loader"></span></div>';
			}
		}
		str += '</div>';
		this.html(str);
		this.find('.dropsel').bind('click', $.DropSelOpen).data('clickFunction', clickFunction);
	}
});








var ProductZoom = {
	size: function(type) {
		switch(type) {
			case 'big':
				return [860,1145];
			break;
			default:
				return [548,730];
			break;
		}
	},
	init: function() {
		ProductZoom.slider();
		ProductZoom.zoom();
	},
	slider: function() {
		if($('.mediafield').children('img').size() == 1) {
			$('.mediafield .prev').hide();
			$('.mediafield .next').hide();
		} else {
			$('.rightSide').mouseenter(function () { $(this).children().show(); });
			$('.rightSide').mouseleave(function () {$(this).children().hide();});
			$('.leftSide').mouseenter(function () { $(this).children().show(); });
			$('.leftSide').mouseleave(function () {$(this).children().hide();});
			
			var imgs = $('.mediafield').find('img');
			$(imgs).hide();
			$($(imgs)[0]).fadeIn();
			$('.mediafield .rightSide').click(function (){  
				$('.mediafield').find('img').stop(true, true);
				var current = $('.mediafield').find('img:visible');
				$(current).css('z-index', 1);
				if($(current).next('img').size() == 1) {
					$(current).next('img').fadeIn(400, function() {
						$(current).hide();
					});
					
				} else {
					$($(imgs)[0]).css('z-index', 3).fadeIn(400, function() {
						$(current).hide();
					});
				}
			}).disableSelection();
			$('.mediafield .leftSide').click(function (){ 
				$('.mediafield').find('img').stop(true, true);
				var current = $('.mediafield').find('img:visible');
				$(current).css('z-index', 1);
				if($(current).prev('img').size() == 1) {
					$(current).prev('img').css('z-index', 3).fadeIn(400, function() {
						$(current).hide();
					});
				} else {
					$('.mediafield').children('img:last').css('z-index', 3).fadeIn(400, function() {
						$(current).hide();
					});
				}
			}).disableSelection();
		}
	},
	next: function() {
		$('#imagePopupWrapper img').stop(true, true);
		var curImg = $('#viewImg').attr('src').split('-big.jpg')[0] + '.jpg';
		var newImg;
		if($("img[src$='" + curImg + "']").next('img').size() == 1) {
			newImg = $(".mediafield img[src$='" + curImg + "']").next().attr('src').split('.jpg')[0];
		} else {
			newImg = $(".mediafield").children('img:first').attr('src').split('.jpg')[0];
		}
		$('#swapImg').attr('src', $('#viewImg').attr('src')).css('display', 'block').fadeOut(400);
		$('#viewImg').addClass('animated').attr('src', newImg + '-big.jpg');
	},
	prev: function() {
		$('#imagePopupWrapper img').stop(true, true);
		var curImg = $('#viewImg').attr('src').split('-big.jpg')[0] + '.jpg';
		var newImg;
		if($("img[src$='" + curImg + "']").prev('img').size() == 1) {
			newImg = $(".mediafield img[src$='" + curImg + "']").prev().attr('src').split('.jpg')[0];
		} else {
			newImg = $(".mediafield").children('img:last').attr('src').split('.jpg')[0];
		}
		$('#swapImg').attr('src', $('#viewImg').attr('src')).css('display', 'block').fadeOut(400);
		$('#viewImg').addClass('animated').attr('src', newImg + '-big.jpg');
	},
	zoom: function() {
		$('.mediafield img').click(function () {
			imgProd = $(this).attr('src');
			var html = '<div id="overlay"></div><div id="imagePopupContainer"><div id="exit"></div><div id="imagePopupWrapper"><img id="viewImg" alt="" /><img id="swapImg" alt="" /><div class="leftSide"><div class="prev"></div></div><div class="rightSide"><div class="next"></div></div></div></div>';
			$('body').append(html);
			$('#imagePopupWrapper .rightSide,#imagePopupWrapper .leftSide').mouseenter(function () { $(this).children().show(); }).mouseleave(function () {$(this).children().hide();});
			$('#imagePopupWrapper .rightSide').click(ProductZoom.next);
			$('#imagePopupWrapper .leftSide').click(ProductZoom.prev);
			imgProd = imgProd.split('.jpg')[0];
			$('#imagePopupContainer #viewImg').attr('src', imgProd + '-big.jpg');
			$('#overlay,#exit').click(ProductZoom.remove);
			
			$('#imagePopupContainer #viewImg').toggle(function (e) {
				$('#imagePopupContainer').addClass('big');
				imgProd = $(this).attr('src').replace('-big.jpg', '');
				var size = ProductZoom.size('big');
				$(this).attr('src', imgProd + '-full.jpg').css({width:size[0] + 'px',height:size[1] + 'px'});
				
			}, function() {
				$('#imagePopupContainer').removeClass('big');
				imgProd = $(this).attr('src').replace('-big.jpg', '').replace('-full.jpg', '');
				var size = ProductZoom.size('default');
				$(this).attr('src', imgProd + '-big.jpg').css({width:size[0] + 'px',height:size[1] + 'px'});//.css({width: '100%', height: '100%', left: 0, top: 0});
			});
			
			
		});
	},
	remove: function () {
		$('#imagePopupContainer,#overlay').remove();
	}
};


/*slideshow rewrite*/
jQuery.fn.extend({
	slideshowInit: function(w) {
		var selected = 0;
		var i = 0;
		var nponly = this.hasClass('nextprevonly');
		this.append('<div class="control' + (nponly?'_nponly':'') + '"></div>');
		var str = '<div class="slide prev first"></div>';
		var elem = this.find('img');
		var len = elem.length;
		elem.each(function() {
			if(!i) {
				var id = $(this).attr('id');
				imgW = 0;
				if($(this).hasClass('center'))
					imgW = (w - $(this).width())/2;
				else if($(this).hasClass('right'))
					imgW = w - $(this).width();
				$(this).css({left:imgW,opacity:0}).animate({opacity:1}, 400);
				if(id.indexOf('image') !== false) {
					id = id.split('_')[1];
					h = $('#text_' + id).height();
					if(h <  20) h = 20; //toofast-bug.
					$('#text_' + id).parent().css({height:h});
				}
			} else {
				$(this).css({left:w+'px'});
			}
			if(len != 1 && !nponly) str += '<div class="controlitem' + (!i?' first':'') + ((i+1) == len?' last':'') + '"></div>';
			i++;
		});
		if(len == 1) return;
		str += '<div class="slide next"></div><div class="clear"></div>';
		var control = this.find('div.control' + (nponly?'_nponly':'')).html(str).css({opacity:0,width:(nponly?w:(i*20)+104),marginLeft:(nponly?0:-(((i*20)+104)/2))});	
		delete str;
		var selObj = $(this.find('div.controlitem')[0]);
		this.data('selWidth', w);
		this.data('selectedObj', selObj);
		this.data('selectedImg', $(elem[0]));
		this.data('selected', selected);
		this.data('itemlength', len);
		selObj.addClass('selected');
		if(nponly) {
			this.mousemove(function(e) {
				var pos = e.pageX - 160;
				var proc = pos / $(this).width();
				var elem = $(this).find('div.control_nponly').stop().css({opacity:1});
				if(proc > 0.5) {
					elem.find('.prev').addClass('hidden');
					elem.find('.next').removeClass('hidden');
				} else {
					elem.find('.next').addClass('hidden');
					elem.find('.prev').removeClass('hidden');
				}
			}).mouseleave(function() {
				$(this).find('div.control_nponly').stop().css({opacity:0});
			});
		} else {
			this.hover(function() {
				$(this).find('div.control').stop().animate({opacity:1});
			}, function() {
				$(this).find('div.control').stop().animate({opacity:0});
			});
		}
		$(this).find('div.slide').bind('click', function() {
			if(!nponly && $(this).hasClass('first')) return false;
			var obj = $(this).parent().parent();
			var selObj = obj.data('selectedObj');
			var sel = obj.data('selected');
			var len = obj.data('itemlength');
			var elem = obj.find('div.controlitem');
			if($(this).hasClass('prev')) {
				if(!sel) {
					sel = len;
					//return false;
				}
				sel--;
			} else if($(this).hasClass('next')) {
				if((sel+1) == len) {
					sel = -1;
				}
				sel++;
			}
			obj.slideshowActivate($(elem[sel]), sel);
			
			return false;
		}).disableSelection();
		$(this).bind('click', function(e) {
			if(nponly) {
				var pos = e.pageX - 160;
				var proc = pos / $(this).width();
				if(proc > 0.5) {
					$(this).find('.next').click();
				} else {
					$(this).find('.prev').click();
				}
			} else {
				$(this).find('.next').click();
			}
			return false;
		}).disableSelection();
		$(this).find('div.controlitem').bind('click', function() {
			var i = 0;
			var obj = $(this);
			var elems = $(this).parent().find('div.controlitem').each(function() {
				if(this == obj[0]) {
					return false;
				}
				i++;
			});
			obj.parent().parent().slideshowActivate(obj, i);
			return false;
		}).disableSelection();
	},
	slideshowActivate: function(obj, sel) {
		this.data('selectedObj').removeClass('selected');
		
		//image
		var w = this.data('selWidth');
		this.data('selectedImg').css({zIndex:10}).stop().animate({opacity:0}, function() { $(this).css({left:w + 'px'})});
		var id = this.data('selectedImg').attr('id');
		var oldobj = null;
		if(id.indexOf('image') !== false) {
			id = id.split('_')[1];
			oldobj = $('#text_' + id);
		}
		var imgs = this.find('img');
		var x = 0;
		if($(imgs[sel]).hasClass('center'))
			x = (w - $(imgs[sel]).width())/2;
		else if($(imgs[sel]).hasClass('right'))
			x = w - $(imgs[sel]).width();
		if($(imgs[sel]).attr('id').indexOf('image') !== false) {
			var id = $(imgs[sel]).attr('id').split('_')[1];
			$('#text_' + id).data('fadeoutobj', oldobj);
			$('#text_' + id).stop().css({visibility:'visible',zIndex:8,opacity:0}).animate({opacity:1});
			$('#text_' + id).parent().stop().animate({height:$('#text_' + id).height()});
		}
		if(oldobj) oldobj.stop().animate({opacity:0});
		$(imgs[sel]).stop().css({opacity:1,zIndex:7,left:x});
		this.data('selectedImg', $(imgs[sel]));
		
		
		obj.addClass('selected');
		this.data('selectedObj', obj);
		this.data('selected', sel);
		var len = this.data('itemlength');
		if(sel == (len-1)) {
			this.find('.next').addClass('last');
		} else {
			this.find('.next').removeClass('last');
		}
		if(!sel) {
			this.find('.prev').addClass('first');
		} else {
			this.find('.prev').removeClass('first');
		}
	}
});