$(document).ready(function(){
	C.init();
});

var C={

	init: function(){
		C.events();
		C.chboxInit('chboxRemember');
		C.sboxInit('sboxClient');
		C.sboxInit('sboxTag');
	},
	
	events: function(){
		$('body').click(function(evt){
			C.sboxTry2Hide(evt);
		});
		var $links=$('#projectWork p.image a');
		if($links.length > 0){
			$links.css({display: 'block'});
			$links.each(function(){
				$(this).bind('mouseover mouseout',function(event){
					if(event.type=='mouseover'){
						$(this).css({opacity: 1});
					}else if(event.type=='mouseout'){
						$(this).css({opacity: 0});
					}
				}).trigger('mouseout');
				
				$(this).bind('click', function(event) {
					var href = $(this).attr('href');
					C.workLoad(href, event);
					return false;
				});
			});
		}
		
		var $links = $('span.links a');
		if ($links.length > 0) {
			$links.each(function() {
				$(this).bind('click', function(event) {
					var href = $(this).attr('href');
					C.workLoad(href, event);
					return false;
				});
			});
		}
	},
	
	chboxInit: function(id){
		if($('#'+id).length){
			var input_name=$('#'+id+' input').attr('name');
			var input_value=$('#'+id+' input').attr('value');
			var input_checked=$('#'+id+' input').get(0).checked;
			$('#'+id+' input').remove();
			$('<input type="hidden" name="'+input_name+'" value="">').appendTo('#'+id);
			$('<input type="hidden" name="checked_value_" value="'+input_value+'">').appendTo('#'+id);
			//$('<input type="hidden" name="'+input_name+'_checked_value" value="'+input_value+'">').appendTo('#'+id);
			var label_txt=$('#'+id+' label').text();
			$('#'+id+' label').remove();
			$('<a href="#">'+label_txt+'</a>').appendTo('#'+id).click(
				function(){C.chboxUnCheck(id);return false;}
			).keyup(
				function(e){
					if(e.which==32) {
						C.chboxUnCheck(id);
						return false;
					}
				}
			);
			$('#'+id).addClass('chb');

			C.chboxUnCheck(id,input_checked);
		}
	},

	chboxUnCheck: function(id){
		//вытаскиваем значения обоих полей <input>
		var val0=$('#'+id+' input').eq(0).val();
		var val1=$('#'+id+' input').eq(1).val();

		if(arguments.length==2){
			//если передан второй аргумент, то установим <input> в переданное значение true|false
			var bool=arguments[1];
		}else{
			//если второй аргумент не передан, то определяем будущее состояние <input> как противоположное текущему
			var bool=(val0=='');
		}

		//устанавливаем новое состояние нашему <input>
		if(bool){
			$('#'+id+' input').eq(0).val(val1);
			$('#'+id+' a').addClass('checked');
		}else{
			$('#'+id+' input').eq(0).val('');
			$('#'+id+' a').removeClass('checked');
		}
	},

	sboxInit: function(id){
		if($('#'+id).length){
			var action=($('#'+id).parents('form').eq(0).attr('action') || '');
			var name=$('#'+id).attr('name');
			var wrap=$('#'+id).wrap('<span class="sbox"></span>').parent().get(0);
			var ops='';
			var first='';
			var selected=$('#'+id).get(0).selectedIndex;
			$('#'+id+' option').each(function(i){
				var text=$(this).text();
				var val=$(this).val();
				if(i!=selected){
					if (val.length == 0) {
						ops+='<a href="/">'+text+'</a>';
					} else {
						ops+='<a href="'+action+val+'/">'+text+'</a>';
					}
				}else{
					ops+='<b>'+text+'</b>';
					first='<b class="first">'+text+'</b><a class="arr" id="'+id+'_arr" href="javascript:C.sboxShow(\''+id+'\');"></a>';
				}
			});
			$(wrap).empty().append('<span class="options">'+ops+'</span>').attr('id',id);
			$(first).prependTo($(wrap));
			var last_e_index=$('.options *', wrap).length - 1;
			$('.options *', wrap).eq(last_e_index).addClass('btm');
		}
	},

	sboxShow: function(id){
		$('#'+id+'_arr').get(0).blur();
		$('span.sbox').each(function(){
			$('.arr', this).removeClass('active');
			$('.options', this).css('display','none');
		})
		//показываем нужный sbox
		$('#'+id+' .arr').addClass('active');
		$('#'+id+' span.options').css('display','block');
	},

	sboxTry2Hide: function(evt){
		//определяем, имеется ли видимый sbox
		if($('span.sbox > a.active').length){
			var sbox=$('span.sbox > a.active').parent().get(0);
			var target=evt.target;
			var body=$('body').get(0);
			var hide=true;
			var cancel=true;
			while(target!=body){
				if(target==sbox){
					//произошел клик по текущему sbox
					hide=false;
					cancel=false;
					break;
				}else if(target.tagName=='SPAN' && target.className=='sbox'){
					//произошел клик по другому sbox
					cancel=false;
					break;
				}
				target=target.parentNode;
			}
			if(hide){
				//скрываем sbox
				$('.arr',sbox).removeClass('active');
				$('span.options',sbox).css('display','none');
			}
			if(cancel){
				//запрещаем действие по-умолчанию
				evt.preventDefault();
			}
		}
	},
	
	workLoad: function(href, event) {
		$elem = $(event.target);
		$elem.blur();
		if ($elem.attr('class') == 'next') {
			$elem.css('background', 'url(/img/preloader_right.gif) 100px 50% no-repeat');
		} else if ($elem.attr('class') == 'previous') {
			$elem.css('background', 'url(/img/preloader_left.gif) 150px 50% no-repeat');
		} else if ($elem.attr('class') == 'link_previous') {
			$elem.empty().append($('<img src="/img/preloader_left.gif" alt="preloader">'));
		} else if ($elem.attr('class') == 'link_next') {
			$elem.empty().append($('<img src="/img/preloader_right.gif" alt="preloader">'));
		}
		
		$.get(href, function(data, status) {
			$work = $('#projectWork');
			$work.children('div.wpTop').remove();
			$work.children('div.wpBottom').remove();
			$work.children('p.image').remove();
			
			$(data).insertAfter('div.ctw');
			C.events();
		});
	},
	
	_f: function(){
	}
};
