var cart_block_link = "a.show-cart";
var cart_block_string = ".block_basket .wcor4";
var cart_add_link = ".add-to-cart";
var cart_path = "/cart/";
var rp_fancylinks = "a.zoomable";
var rp_serach_field = ".head-right input[type=text]";


if( function_exists("$") ){

jQuery.fn.extend({
	check: function() {
		return this.each(function() { this.checked = true; });
	},
	uncheck: function() {
		return this.each(function() { this.checked = false; });
	}
});

var abs_fields = [];
$(function() {

	$(".catalog_buttons input").focus(function(){
		$(this).val("");
	})


	$('.add-to-compare').click(function(){
		var add = $(this).attr("rel").split(";");
		var tp = add[0];
		var ids = [];
		var comp = getCookie('compare', '').split(":");
		if( comp.length > 1 ){ ids = comp[1].split(","); }
		if( comp[0] != tp ){ ids = []; }
		if( !in_array( add[1], ids ) ){ ids[ids.length] = add[1]; }
		var str = tp + ":" + ids.join(",");
		var expire = new Date();
		expire.setTime (expire.getTime() + (365*24*3600*1000));
		setCookie('compare', str, expire, "/");
		$("#block_compare").fadeIn( 200 ).find("span").text( ids.length );
		return false;
	});
	comp = getCookie('compare', '').split(":");
	if( comp.length > 1 ){
		ids = comp[1].split(",");
		$("#block_compare").show().find("span").text( ids.length );;
	}

	$('.menu_catalog .closed i').click(function(){
		$(this).siblings('ul').slideToggle( 100 );
		$(this).parents('li').toggleClass("open");
	});

	if( $('.photo_full img').length ){
		window.photo_pos = 0;
		window.photo_cells = 4;
		window.photo_cell_width = 56+2;
		window.photo_cell_count = $('.photo_full img').length;
		$('.photo_full').width(parseInt(photo_cell_count * photo_cell_width));

		$('.photo-right').click(function(){
			if( photo_cell_count + photo_pos > photo_cells )
				photo_pos--;
				var left = photo_pos * photo_cell_width;
				$('.photo_full').animate({"left": left + "px"});
		});

		$('.photo-left').click(function(){
			if( photo_pos < 0 )
				photo_pos++;
				var left = photo_pos * photo_cell_width;
				$('.photo_full').animate({"left": left + "px"});
		});

		$('.photo_full a').click(function(){
			var img = $(this).attr('rel');
			$("dt .zoomable").attr( 'href', img.replace(".", "_zoom.") ).children().css({'background-image' : 'url(' + img.replace(".", "_big.") + ')'});
			$('.photo_full a.selected').removeClass("selected");
			$(this).addClass("selected");
		});
		$('.photo_full a:first-child').addClass("selected");

	}


	//InitShare();
	//AjaxPathLoad();
	//CommentsInit();
	//InitRate();



	// Get obligatory feilds
	$('.fb textarea,.fb input[type=text],.fb select,.fb input[type=password]').each(function(){
		var f_id = $(this).parents('form').attr('id');
		if( $(this).siblings('label').text().indexOf('*') != -1 ){
			if( !abs_fields[f_id] ) abs_fields[f_id] = "";
			abs_fields[f_id] +=  $(this).attr('name') +";";
		}
	});
	$('.fb').submit( submit_formbuilder );

	$('.ajax_form').unbind("submit", submit_formbuilder).submit(function(){
		var f_id = $(this).attr('id');
		var ret = check_frm1(abs_fields[f_id], this);
		if( ret ){
			var f_url = ($(this).attr('action') || "/form.send/") + "?ajax_form=1";
			var f_data = $(this).serialize();
			$.post( f_url, f_data, function(data, textStatus, XMLHttpRequest){
				alert( data );
				$('#' + f_id).get(0).reset();
			} );
		}
		return false;
	});

	$( rp_serach_field ).click(function(){
		if( $(this).val() == $(this).get(0).defaultValue ){
			$(this).val("");
		}
	}).blur(function(){
		if( $(this).val() == "" ){
			$(this).val( $(this).get(0).defaultValue );
		}
	});

	if( $.fancybox ){
		$( rp_fancylinks ).fancybox({
			overlayShow: true,
			overlayOpacity: 0.5,
			zoomSpeedIn: 0,
			zoomSpeedOut:0,
			titlePosition: 'inside'
		});
	}

	$( cart_block_link ).click(function(){
		GetCartDialog();
		$("#dialog").load( cart_path + "?action=getAjWindow", function(){
			$("#dialog .delete").click( DeleteBasketItem );
		});
		return false;
	});

	$( cart_add_link ).click(function(){
		GetCartDialog();
		var d = $(this).attr("rel").split(";");
		var data = {tp: d[0], id: d[1] };
		var comm = $("#size").val();
		if( comm ){
			data.comm = comm;
		}
		if( parseInt($('#kol' + data.id).val()) ){
			data.kol = $('#kol' + data.id).val();
		}
		$.post(
			cart_path + "?action=aj_additem", 
			data,
			function(html){
				$("#dialog").load( cart_path + "?action=getAjWindow", function(){
					$("#dialog .delete").click( DeleteBasketItem );
				});
				$( cart_block_string ).load("/?getbasketstring=1");
			});
		return false;
	});

	var SalesSlider = new rpSlider({
		'type': "horisontal",
		'cells' : 3,
		'cell_size': 231,
		'cell_count': $(".isales .slide_full > div").length,
		'selector_full_layer' : ".isales .slide_full",
		'selector_next_lnk' : ".isales .next",
		'selector_prev_lnk' : ".isales .prev"
	});

	var NewSlider = new rpSlider({
		'type': "horisontal",
		'cells' : 3,
		'cell_size': 231,
		'cell_count': $(".inew .slide_full > div").length,
		'selector_full_layer' : ".inew .slide_full",
		'selector_next_lnk' : ".inew .next",
		'selector_prev_lnk' : ".inew .prev"
	});

	var LeadersSlider = new rpSlider({
		'type': "horisontal",
		'cells' : 3,
		'cell_size': 231,
		'cell_count': $(".ileaders .slide_full > div").length,
		'selector_full_layer' : ".ileaders .slide_full",
		'selector_next_lnk' : ".ileaders .next",
		'selector_prev_lnk' : ".ileaders .prev"
	});


}); // end $()
}// end if


function rpSlider( options ){
	var _self = this;
	this.options = options;
	this.options.pos = 0;

	if( this.options.type == "horisontal" ){
		this.options.anim_param = "left";
		$( this.options.selector_full_layer ).width( parseInt(this.options.cell_count * this.options.cell_size) );
	}
	else if( this.options.type == "vertical" ){
		this.options.anim_param = "top";
		$( this.options.selector_full_layer ).height( parseInt(this.options.cell_count * this.options.cell_size) );
	}

	$( this.options.selector_next_lnk ).click(function(){
		if( _self.options.cell_count + _self.options.pos > _self.options.cells ){
			var obj = {};
			obj[_self.options.anim_param] = (--_self.options.pos * _self.options.cell_size) + "px";
			$( _self.options.selector_full_layer ).animate(obj);
		}
	});

	$( this.options.selector_prev_lnk ).click(function(){
		if( _self.options.pos < 0 ){
			var obj = {};
			obj[_self.options.anim_param] = (++_self.options.pos * _self.options.cell_size) + "px";
			$( _self.options.selector_full_layer ).animate( obj );
		}
	});

}

function submit_formbuilder(){
	var f_id = $(this).attr('id');
	var ret = check_frm1(abs_fields[f_id], this);
	if( ret && $(this).find("input[name=code]").length ){
		$(this).find("input[name=code]").attr('value', RandomChars(2) + $(this).find("input[name=code]").attr("value") + RandomChars(2) );
	}
	return ret;
}

function InitRate(){
	$('.rate a').click(function(){
		window.rate_now_updating = $(this).parents('.rate');
		var action = $(this).attr('class');
		var rel = $(this).attr('rel').split(";");
		var data = {
			'action' : 'write_rate',
			'rate' : action,
			'tp' : rel[0],
			'id' : rel[1]
		};

		$.post(
			location.href, 
			data,
			function( html ){
				$( rate_now_updating ).html( $(html).html() );
				InitRate();
			});

		return false;
	});
}

function InitShare(){
	if( $('.share').length ){
		$(".share a").attr("target","_blank").append("<i>");
		$(".share .twitter").attr({
			"title": "В Твиттер",
			"href": "http://twitter.com/?status=" + share.title + " " + share.url
		});
		$(".share .vkontakte").attr({
			"title": "Опубликовать ВКонтакте",
			"href": "http://vkontakte.ru/share.php?noparse=1&image=" + share.image + "&url=" + share.url + "&title=" + share.title + "&description=" + share.desc
		});
		$(".share .mailru").attr({
			"title": "В Мой мир",
			"href": "http://connect.mail.ru/share?share_url=" + share.url
		});
		$(".share .facebook").attr({
			"title": "В facebook",
			"href": "http://www.facebook.com/sharer.php?src=sp&u=" + share.url + "&t=" + share.title
		});
		$(".share .livejournal").attr({
			"title": "В ЖЖ",
			"href": "http://www.livejournal.com/update.bml?subject=" + share.title + "&event=" + share.desc + " " + share.url
		});
		$(".share .odnoklassniki").attr({
			"title": "Рассказать одноклассникам",
			"href": "http://www.odnoklassniki.ru/dk?st.cmd=addShare&st._surl=" + share.url
		});
		$(".share .yaru").attr({
			"title": "Поделиться ссылкой в Я.ру",
			"href": "http://wow.ya.ru/posts_share_link.xml?url=" + share.url + "&title=" + share.title
		});
	}
}

function SelectCheckBoxes( tp, selector ){
	switch( tp ){
		case 'all':
			$(selector + " input[type=checkbox]:not(:disabled)").check();
			break;
		case 'none':
			$(selector + " input[type=checkbox]:not(:disabled)").uncheck();
			break;
		default:
			$(selector + " input."+tp+"[type=checkbox]:not(:disabled)").check();
	}
	//return false;
}

function GetCartDialog(){
	if( !document.getElementById('dialog') ){
		$('body').append('<div id="dialog" title="Корзина товаров"></div>');
	}
	$("#dialog").dialog({bgiframe: true, width: 500, modal: true, overlay: { backgroundColor: '#000', opacity: 0.5 },
		buttons: {
			'Оформить заказ': function() {
				location.href = cart_path;
			},
			'Продолжить выбор товаров': function() {
				$( cart_block_string ).load("/?getbasketstring=1");
				$(this).dialog('destroy');
			}
		},
		close: function(event, ui) {
			$(this).dialog('destroy');
			$( cart_block_string ).load("/?getbasketstring=1");
		}
	});
}

function DeleteBasketItem( ){
	$.post( 
		cart_path + "?action=aj_delitem", 
		{ id: $(this).attr('rel') },
		function(){
			$("#dialog").load( cart_path + "?action=getAjWindow", function(){
				$("#dialog .delete").click( DeleteBasketItem );
			});
		});
	return false;
}

function check_frm1( d, frm, prefix ) {
	if( prefix == null ){
		prefix = "";
	}
	var e = d.split(";");
	for( var i = 0; (i < e.length && e[i] != ""); i++ ){
		var obj = $(frm).find('[name=' + prefix + e[i] +']');

		if( !check_frm_field( obj ) ){ return false; }
	}
	return true;
}

function check_frm_field( obj ){

	var err = 0;
	if( $( obj ).is(":hidden") ){
		return true;
	}
	var type = $( obj ).get(0).tagName;
	if( type == "input" ){
		type = $( obj ).attr("type");
	}
	switch( type ){
		case "checkbox":
			if( $(obj).attr('checked') != "checked" ) err = "Поставьте эту галочку";
			break;
		case "SELECT":
			if( $(obj).val() == "-1" ) err = "Выберите один из пунктов";
			break;
		default:
			if( $(obj).val().length == 0 ) err = "Заполните это поле";
			break;
	}

	if( err != 0 ) {
		var pos = $(obj).position();
		var msg = $('<span>' + err + '</span>').addClass('error').css({
			'position': 'absolute',
			'top': (pos.top-39) + 'px',
			'left': pos.left+'px',
			'z-index': '5'
			});
		$( obj ).after( msg );
		$(msg).delay(1000).fadeOut('slow');

		$(obj).focus();
		return false;
	}
	return true;
}

function function_exists( function_name ) {
	if (typeof function_name == 'string'){
		return (typeof window[function_name] == 'function');
	} else{
		return (function_name instanceof Function);
	}
}

function Uri2Obj( str ){
	var obj = { 
		'qs': str,
		'protocol': '', 
		'host': '',
		'url':'',
		'dir':'', 
		'params': [],
		'anchor': '' };

	obj.url = obj.qs.indexOf('?') != -1 ? obj.qs.split("?")[0] : obj.qs.split("#")[0];
	var tmp = obj.url.split("://");
	obj.protocol = tmp[0] ? tmp[0] : "";
	if( tmp[1] ){
		obj.host = tmp[1].split("/")[0];
		obj.dir = tmp[1].replace(obj.host, "");
	}

	tmp = obj.qs.split("#");
	obj.anchor = tmp[1] ? tmp[1] : "";

	tmp = tmp[0].split("?");
	tmp = tmp[1] ? tmp[1].split("&") : [];
	for( var i = 0; i<tmp.length; i++ ){
		var key_val = tmp[i].split("=");
		obj.params[unescape(key_val[0])] = (key_val[1] ? unescape(key_val[1]) : "");
	}
	return obj;
}

function GetAjaxPath(){
	var uri = Uri2Obj( location.href );
	if( uri.anchor.length && uri.anchor.split("/")[0] == "nav" ){
		return uri.anchor.substr(3);
	}
	return false;
}

function AjaxPathLoad(){

	var ajax_path = GetAjaxPath();
	if( ajax_path != false ){
		$("#static").load( ajax_path + " #dinamic");
	}

	$('.menu_top a').click(function(){
		url = $(this).attr('href');
		$("#static").load( url + " #dinamic" );
		location.href = "#nav" + url;
		return false;
	});

}

function LoadAudio( container, filename ){
	AudioPlayer.setup("/images/swf/audio_player.swf", { width: 290 });
	AudioPlayer.embed(container, {soundFile: filename, autostart: "yes", transparentpagebg: "yes"});
}

var Digital = new Date();
var Expon = new Date();
	Expon.setTime (Expon.getTime() + (365*24*3600*1000));
function getCookie (name, defVal) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
			return getCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0)
			break;
	}
	return defVal;
}
function getCookieVal (offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
		endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
function setCookie (name, value) {
	var argv = setCookie.arguments;
	var argc = setCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : '/';
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +
		((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
		((path == null) ? "" : ("; path=" + path)) +
		((domain == null) ? "" : ("; domain=" + domain)) +
		((secure == true) ? "; secure" : "");
}

function CommentsInit(){
	$(".comments_form input[name=LOGIN]").val(getCookie('username',''));
	$(".comments_form").submit(function(){
		var registered = $('.login ul').length;
		if( !registered){
			if( !registered && !check_frm1('LOGIN;TXT', this) ){
				return false;
			}
			setCookie('username',$(this).find("input[name=LOGIN]").val());
		}
		var data = $(this).serialize();
		$.post(location.href, data,
			function(result) {
				 $('#comments_box').html( $(result).find('#comments_box').html() );
				 CommentsInit();
			});
		return false;
	}).keydown(function(e){
		if( e.ctrlKey && e.which==13 ){
			$(this).submit();
		}
	});

}

function http_build_query( formdata, numeric_prefix, arg_separator ) {	// Generate URL-encoded query string
	// 
	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: Legaev Andrey
	// +   improved by: Michael White (http://crestidg.com)

	var key, use_val, use_key, i = 0, tmp_arr = [];

	if(!arg_separator){
		arg_separator = '&';
	}

	for(key in formdata){
		use_key = escape(key);
		use_val = escape((formdata[key].toString()));
		use_val = use_val.replace(/%20/g, '+');

		if(numeric_prefix && !isNaN(key)){
			use_key = numeric_prefix + i;
		}
		tmp_arr[i] = use_key + '=' + use_val;
		i++;
	}

	return tmp_arr.join(arg_separator);
}

function in_array(needle, haystack, strict) {
	var found = false, key, strict = !!strict;
	for (key in haystack) {
		if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
			found = true;
			break;
		}
	}
	return found;
}

function RandomChars( n, chars ){
	if( chars == null ) chars = "qwertyuiopasdfghjklzxcvbnm1234567890";
	if( n == null ) n = 2;
	var str = "";
	for( i = 0; i < n; i++ ){
		str += chars.charAt( Math.round( Math.random()*chars.length-1 ) );
	}
	return str;
}
