function debug(msg){
	if (window.console&&window.console.log)
		console.log(msg);
	else
		$('#debug').append('<p>'+msg+'</p>');
}

function redirect(url){
	location.href = url;
}

function goBack(){
	window.history.back();
}

var _lang = new Array();

function getL(str){
	return _lang[str]?_lang[str]:str;
}

var validationDebug = 0, validationLog = '';

(function($){
	
	$.fn.zebra = function(){
		return this.each(function(){
			$this = $(this);
			var ch = '*';
			switch (this.tagName){
				case 'UL':
				case 'OL':
					ch = '> li';
				break;
				case 'TABLE':
					ch = '> tbody > tr';
				break;
				case 'THEAD':
				case 'TBODY':
				case 'TFOOT':
					ch = '> tr';
				break;
			}
			var i = 0;
			$this.find(ch).each(function(){
				$(this).removeClass('even odd').addClass(++i%2==0?'even':'odd');
			});
		});
	}
	
	$.fn.smartInput = function(){
		return this.each(function(){
			var val = $(this).val();
			
			$(this).focus(function(){
				if ($(this).val()==val) $(this).val('');
			})
			
			$(this).blur(function(){
				if ($(this).val()==''&&val!='') $(this).val(val);
			})
		});
	}
	
	$.fn.formValidation = function(options){
		
		if (!options) options = {expr:null};
		if (options.expr) $.fn.formExpr = $.extend($.fn.formExpr, options.expr);
		
		var result = true;
		
		return this.each(function(){
			var $form = $(this);
			
			$form.find('.required').keyup(function(event){
				$(this).formCheckField(event);
				//checkField.call(this,event);
			})
			$form.find('.required').blur(function(){
				$(this).formCheckField();
				//checkField.call(this);
			})
			if ($form.get(0).tagName=='FORM') $form.submit(function(){
				var res = true;
				if (validationDebug) validationLog = '';
				$form.find('.required').each(function(){
					var r = $(this).formCheckField();
					if (validationDebug)
						validationLog += $form.attr('name')+'.'+$(this).get(0).tagName+'['+$(this).attr('name')
						+'] : '+$(this).val()+' => '+(r?'true':'false')+"\n";
					res &= r;
				})
				if (validationDebug&&!res) $(document).prompt(validationLog);
				return res ? true : false;
			})
			
		})
	}
	
	$.fn.formExpr = {
		email		: /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2,7})$/i,
		password	: /^.{6,}$/i,
		string		: /^\S+.*$/i,
		zip			: /^\S{5,10}$/i,
		phone		: /^\d{9,15}$/i,
		number		: /^\d+$/i,
		date		: /^\d{2}\/\d{2}\/\d{2}$/i,
		'float'		: /^((\d+(\.)?)|(\d*\.\d+))$/i		
	};
	
	$.fn.question = function(str){
		return confirm(str);
	}
	
	$.fn.prompt = function(str){
		alert(str);
	}
	
	$.fn.position = function(url){
		if (!$.fn.sortable) return false;
		return this.each(function(){
			$(this).sortable({
				stop : function(){
					ul = $(this);
					var str = '';
					ul.find('> li').each(function(){
						str += $(this).attr('value')+',';
					});
					ul.showLoading();
					$.post(url,{ajax:1,pos:str},function(data){
						ul.hideLoading();
						if (ul.hasClass('zebra')) ul.zebra();
					});
				}
			});
		});
	}
	
	$.fn.deleteItem = function(url,str,fn){
		return this.each(function(){
			$(this).click(function(){
				if ($(document).question(str)){
					var $li = $(this).parents('li:first');
					$.post(url,{ajax:1,id:$li.attr('value')},function(data){
						var a = eval(data);
						if (a.result){
							$li.remove();
						} else if (a.msg) $(document).prompt(a.msg);
						if (fn&&typeof fn=='function') fn.call(this,a.result);
					})
				}
				return false;
			})
		})
	}
	
	$.fn.formCheckField = function(event){
		var $form = $(this).parents('form:first');
		if (!event) event = {which:0};
		var $this = $(this);
		if ($this.hasClass('hidden')||$this.hasClass('inshadow')) return true;
		var rule = $.fn.formExpr[$this.attr('alt')] || /^\.{1,}$/i;
		var r = true;
		if ($(this).get(0).tagName=='INPUT'&&($this.attr('type')=='radio'||$this.attr('type')=='checkbox')){
			if (!$this.val()) r = false;
		} else if (($(this).get(0).tagName=='INPUT'||$(this).get(0).tagName=='TEXTAREA')&&
			($this.attr('type')=='text'||$this.attr('type')=='password'||$this.attr('type')=='hidden')){
			r &= rule.test($(this).val());
		} else if ($(this).get(0).tagName=='SELECT'){
			if (!$(this).get(0).options[$(this).get(0).selectedIndex]){
				r &= false;
			} else {
				var v = $(this).get(0).options[$(this).get(0).selectedIndex].value;
				if (v==''||v=='0'||v==0) r &= false;
			}
		}
		if ($this.hasClass('confirmation')){
			var name = $this.attr('name');
			$form.find('[name="'+name.substring(0,name.length-1)+'"]').each(function(){
				r &= $(this).val()==$this.val();
			})
		}
		var name = $(this).attr('name').replace(/[\[\]]/gi,'_');
		var $l = $('#label_'+name).removeClass('error');
		if (!r) $l.addClass('error');
		return r;
	}
	
	$.fn.loginBox = function(){
		return this.each(function(){
			var data = { login : '', pass : '' };
			var $box = $(this);
			var $l = $box.find('input[name="login"]');
			var $p = $box.find('input[name="password"]');
			data.login = $l.val();
			data.pass = $p.val();
			
			$l.focus(function(){
				if ($(this).val()==data.login) $(this).val('');
			}).blur(function(){
				if ($(this).val()=='') $(this).val(data.login);
			})
			$p.focus(function(){
				if ($(this).val()==data.pass) $(this).val('');
			}).blur(function(){
				if ($(this).val()=='') $(this).val(data.pass);
			})
		})
	}

	$.fn.gallery = function(){
		return this.each(function(){
			
			var $div = $(this);

			var $prev = $div.find('a.prev');
			var $next = $div.find('a.next');
			var $ul = $div.find('ul');
			var len = $ul.find('li').size();
			var pos = 0;
			var lim = $ul.find('> li:first img').width() > 200 ? 1 : 4;
			var mar = lim == 1 ? 0 : 8;
			
			function scroll(shift){
				pos += shift;
				if (pos>len-lim) pos = 0;
				if (pos<0) pos = len-lim;
				var w = $ul.find('> li img').width() + mar;
				var l = - pos * w;
				if (lim==1) l = - pos*(w+2) + 1;
				$ul.css('width',((w+4)*len)+'px').animate({'left':l+'px'},700);
			}
			
			function init(){
				if (len<=lim){
					$prev.remove();
					$next.remove();
				}
				if (lim==2) $prev.remove();
			}
			
			$prev.click(function(){
				scroll(-1);
				return false;
			})
			$next.click(function(){
				scroll(1);
				return false;
			})
			
			if ($.fn.fancybox) $div.find('a.image').fancybox();

			init();
		})
	}
	
	$.fn.rating = function(){
		return this.each(function(){
			var $this = $(this);
			var v = 0;
			if ($this.find('div.bg').size()>0){
				v = parseFloat($this.find('p').html());
			} else {
				v = parseFloat($this.html());
				$this.html('<div class="bg"></div><p>'+v+'</p>');
			}
			var $bg = $this.find('.bg');
			var len = $this.width();
			var l = (10-v)*len/10;
			$bg.css('background-position','-'+l+'px');
		})
	}
	
	$.fn.languageMenu = function(){
		return this.each(function(){
			
			var $this = $(this);
			var $box = $('#language-box');
			
			$this.click(function(){
				if ($box.css('display')=='none'){
					$box.show();
				} else {
					$box.hide();
				}
				return false;
			})
			
		})
	}
	
	$.fn.currencyMenu = function(){
		return this.each(function(){
			
			var $this = $(this);
			
			$this.change(function(){
				redirect(websitePath+'currency/'+$this.val());
			})
			
		})
	}
	
	$.fn.showLoading = function(){
		
	}
	
	$.fn.hideLoading = function(){
		
	}
	
})(jQuery);


$(document).ready(function(){
	
	$('.zebra').zebra();
	
	//if ($.browser.msie&&$.browser.version=='6.0'){
	if (browserIE6){
		$('body').append('<div id="ie6-dialog"><div class="action"><a href="#" class="close"><img src="'+websitePath+'img/ico-close.png" alt="" /></a></div><div class="text"></div></div>');
		var $box = $('#ie6-dialog');
		$box.css({'left':parseInt(($(document).width()-$box.width())/2,10)+'px'});
		$('#ie6-dialog div.text').load(websitePath+'ie6');
		$('#ie6-dialog a.close').click(function(){
			$('#ie6-dialog').remove();
			return false;
		})
	}
	
	$('a[href="#select_language"]').click(function(){
		var $box = $(this).parent().find('.box');
		if ($box.css('display')=='none') $box.show(); else $box.hide();
		return false;
	});
	
	$('#search-box ul.tab li:first').addClass('s');
	
	$('div.gallery').gallery();
	
	$('form.required').formValidation();
	
	$('.login-box').loginBox();
	
	$('div.rating').rating();
	
	$('#language-select').languageMenu();
	
	$('#currency-select').currencyMenu();
	
	$('.tooltip').tooltip({
		bodyHandler	: function(){
			return $(this).find('span.text').html();
		},
		showURL		: false
	});
	
	$('a.popup').click(function(){
		var w = 800;
		var h = 600;
		var l = (screen.availWidth-w)/2;
		var t = (screen.availHeight-h)/2;
		var w = window.open($(this).attr('href'),'printWindow','width='+w+',height:'+h+',left:'+l+',top:'+t+',scrollbars=1');
		w.moveTo(l,t);
		return false;
	})
	
});
