var _azActions = {
	'sign-up.php':'_handleSignUpAction',
	'designers.php':'_handleDesignersAction'
};

String.prototype.wikify = String.prototype.wikify || function() {
	return this.toLowerCase().replace(/[\s\/\\%&\*\+\)\(\[\]\{\}]+/ig, '_');
};

String.prototype.unwikify = String.prototype.unwikify || function() {
	return this.replace('_', ' ');
};

String.prototype.capitalize = String.prototype.capitalize || function() {
	return (this != '')?this[0].toUpperCase() + this.substr(1):'';
};

String.prototype.ucwords = String.prototype.ucwords || function() {
	var _tokens = this.split(' ');
	for (var i=0;i<_tokens.length;i++) {
		_tokens[i] = _tokens[i].capitalize();
	}
	return _tokens.join(' ');
};

function _handleSignUpAction() {
	$('input[type=radio][name=type]').change(function() {
		$('.placetag, input.toggled[type=text]').toggle();
		$('input.toggled[type=text]:visible').focus();
	});
	
	$('input.toggled[type=text]').blur(function() {
		$('input.toggled[type=text]:hidden').val($('input.toggled[type=text]:visible').val());
	});
	
	$("input.designer.autocomplete[type=text]")
		.autocomplete(designers || [], {
			minChars: 0,
			autoFill: false,
			formatItem: function(row, i, max) {return row.name;},
			formatMatch: function(row, i, max) {return row.name;},
			formatResult: function(row) {return row.name;}
		});
		
	$('form').submit(function() {
		$('input.toggled[type=text]:hidden').val($('input.toggled[type=text]:visible').val());
		return true;
	})
};

function _handleDesignersAction() {
	$('ul.alphabet a').click(function() {
		var l = $(this).text();
		$('ul.designers-list>li[letter]').hide();
		$('ul.designers-list>li[letter=' + l + ']').show();
		$('ul.designers-list').each(function() {
			if ($('li[letter]:visible', this).length==0) {
				$('li.no-items', this).show();
			}
			else {
				$('li.no-items', this).hide();
			}
		});
		return false;
	});
	
	$('#designers-alphabet-wrapper a.all').click(function() {
		$('ul.designers-list>li[letter]:hidden').show();
		$('ul.designers-list>li.no-items').hide();
		return false;
	});
};

$(function() {
	var drodDownLeft = $('.products-list').offset() || {left:0};
	
	$('select')
		.bind('dropdown-render', function() {
			if (this.dd_BoxContainer) {
				var dynClass = $(this).attr('dynclass');
				$(this.dd_BoxContainer).addClass('dropdown fl');
				if (dynClass != '') $(this.dd_BoxContainer).addClass(dynClass);
				/**Chrome position fix**/
				if (/chrome/i.test(navigator.userAgent)) {
					var p = $(this.dd_BoxContainer).parent(), w=0;
					p.children().each(function() {
						if (this.tagName.toLowerCase()!='select') w+=$(this).outerWidth(true);
					});
					p.width(w);
				}
			}
		})
		.bind('dropdown-reset', function() {
			this.selectedIndex = -1;
			$(this).change();
		});
	
	$('select.ab-dropdown')
		.dropdown({
			defaultText:function() {
				var t = $(this).attr('defaultText');
				return (t && t.length > 0)?t:'All';
			},
			left:drodDownLeft.left || 0
		});
		
	if (jQuery.fn.categories_dropdown) {
		$('select.c-dropdown').categories_dropdown({left:drodDownLeft.left || 0});
	}
	
	$('input:text[title]').hint();
	$('ul.main-icon-menu>li').submenu();
		
	var action = document.location.pathname.split('/').pop();
	if (_azActions[action] && window[_azActions[action]] && typeof window[_azActions[action]] == 'function') {
		window[_azActions[action]].apply(this, arguments);
	}
	
	$('button.sale').click(function() {
		document.location.search = $.query.set('sale', $.query.get('sale')?0:1).toString();
		return false;
	});
	
	$('#categories-select').change(function(){
		var id=$(this).val(), _q = $.query;
		if (!id) _q=_q.REMOVE('category_id'); else _q=_q.SET('category_id', parseInt(id));
		document.location.search = _q.toString();
		return false;
	});
	
	$('#designers-select').change(function(){
		var id=$(this).val(), _q = $.query;
		if (!id) _q=_q.REMOVE('designer_id'); else _q=_q.SET('designer_id', parseInt(id));
		document.location.search = _q.toString();
		return false;
	});
	
	$('#boutique-select').change(function(){
		var id=$(this).val(), _q = $.query;
		if (!id) _q=_q.REMOVE('boutique_id'); else _q=_q.SET('boutique_id', id);
		document.location.search = _q.toString();
		return false;
	});
	
	var _getSortByClass = function(element) {
		var _this = $(element), sort = '';
		if (_this.hasClass('asc')) sort = 'd';
		if (_this.hasClass('desc')) sort = 'a';
		return sort;
	};
	
	$('a.sort.name').click(function() {
		var q = $.query, sort = _getSortByClass(this); if (sort.length>0) q=q.set('s', sort);
		document.location = q.set('order', 'name').toString();
		return false;
	});
	
	$('a.sort.price').click(function() {
		var q = $.query, 
			sort = _getSortByClass(this); 
		if (sort.length>0) q=q.set('s', sort);
		document.location = q.set('order', 'price').toString();
		return false;
	});
	
	$('a.sort.added').click(function() {
		var q = $.query, 
			sort = _getSortByClass(this); 
		if (sort.length>0) q=q.set('s', sort);
		document.location = q.set('order', 'added').toString();
		return false;
	});
	
	$('form[name=sf]').submit(function() {
		var typeSelect = this.elements['tp'];
		switch (typeSelect.value) {
			case 'alll':
				this.action = '/designers-search.php';
				break;
			case 'all':
				this.action = '/boutiques.php';
				break;
			case 'catw':
				this.elements.category_id.value = 3;break;
			case 'catm':
				this.elements.category_id.value = 4;break;
			case 'cats':
				this.elements.category_id.value = 2;break;
			case 'cata':
				this.elements.category_id.value = 1;break;
			case 'catj':
				this.elements.category_id.value = 5;break;
			case 'allp':
				break;
			default:
				return false;
				break;
		}
	})
});