var lang = '';

$(document).ready(function() {
	$().mousemove(function(e){mousex = e.pageX;mousey = e.pageY;});

	lang = $('body').attr('lang');
	
	$("*[@id^=addtocart],*[@id^=putoff]").click(function(){
		add_to_cart($(this).attr('id'));
		return false;
	})
	
	$(":checkbox[@id^=compare]").click(function(){
		if(preg_array = /^compare_(\d+)_(\d+)_(\d+)_(\d+)$/.exec($(this).attr('id')))
		{
			$('#compare_block').load('/shop_compare_block.php?lang=' + lang + '&cat_id=' + preg_array[1] + '&id=' + preg_array[4] + (this.checked ? '' : '&delete=1'));
		}
	})
	
	$('#payment').change(function(){
		var pay_id = $(this).val();
		var pay_select = $(this);
		$('#pay_description').load('/shop_pay_description.php?lang=' + lang,pay_select.serializeArray());
	})
	
	$("#order_recount").click(reload_cart)

	$('#orderphys').click(function(){
		$('#cart_orderform').load('/shop_order_form.php?ordertype=phys&lang=' + lang,function(){$(this).show();init()});
	})

	$('#orderjur').click(function(){
		$('#cart_orderform').load('/shop_order_form.php?ordertype=jur&lang=' + lang,function(){$(this).show();init()});
	})

	$.get('/forms_messages.php?lang=' + lang,function(data){
		$(data).appendTo('body');
	})
	
	$('select.countryselect').change(function(){
		var sid = $(this).attr('id');
		var country = $(this).val();
		var sname = $(this).attr('name');
		$('#towndiv' + sid).load('/forms_locations.php?country=' + country + '&id=' + sid + '&name=' + sname);
	})
	
	$("form.pollform").submit(function(){
		url_str = "id=" + $(this).attr('pollid') + "&" + $(":checked",this).serialize() + "&lang=" + lang;
		$("#poll" + $(this).attr('pollid')).load("/poll.php?" + url_str);
		return false;
	});
	
	$("a[@id^=th_]").click(function(){
		if(preg_array = /^th_(\d+)_(\d+)_(\d+)$/.exec($(this).attr('id'))) open_modal_window('/open_image.php?lang=' + lang + '&file=' + preg_array[1],preg_array[2],preg_array[3]);
		return false;
	})

	$('a[id^=sitemaplink]').click(function(){
		var divid = $(this).attr('id').replace(/\D/g,'');
		var sitemap_div = $('#sitemap' + divid);
		var img = $(this).find('img');
		var img_src = img.attr('src');
		if(!sitemap_div.is(':hidden'))
		{
			sitemap_div.hide();
			$('<br id=temp_br'+divid+'>').insertAfter(sitemap_div);
			var new_src = img_src.replace(/minus/g,'plus');
			img.attr('src',new_src);
		}
		else
		{
			sitemap_div.show();
			$('#temp_br'+divid).hide();
			var new_src = img_src.replace(/plus/g,'minus');
			img.attr('src',new_src);
		}
		return false;
	})

	$('a[@id^=faqlink]').toggle(
		function(){
			var fid = $(this).attr('id').replace(/\D/g,'');
			$('#faqtext' + fid).load('/faq.php?id=' + fid);
		},function(){
			var fid = $(this).attr('id').replace(/\D/g,'');
			$('#faqtext' + fid).load('/faq.php?id=' + fid + '&short=1');
		}
	)
	
	$('*[@id^=open]').click(function(){
		var oid = $(this).attr('id').replace(/\D/g,'');
		var oblock = $('#hidden' + oid);
		oblock.is(':hidden') ? oblock.show() : oblock.hide();
		return false;
	})
	
	init();
	reevent_comments();
});

function reload_cart()
{
	$("#cart_table").load("/shop_cart_table.php?lang=" + lang,$(":text[@name^='qi['],:input[@name^='propsi['],:checkbox[@name^='d['],:hidden[@name^='p['],:checkbox[@name^='p['],select[@name=delivery]").serializeArray(),function(){
			$("#cart_block").load("/shop_cart_block.php?lang=" + lang);
			$("#cart_sum").load("/shop_cart_sum.php?lang=" + lang);
			var cc = $("#cart_options,#cart_orderform,#cart_ordertypes");
			bool_1 = $(":checkbox[@name^='d[']").length == $(":checkbox[@name^='d[']:checked").length;
			bool_2 = $(":checkbox[@name^='p[']:checked").length == $(":checkbox[@name^='d[']").length;
			if(bool_1 || bool_2) 
			{
				cc.hide();
				if(bool_1) $("#cart_button").hide()
			}
			else if(cc.is(":hidden")) cc.show();
	});
}
	
function reload_cart_block()
{
	$("#cart_block").load("/shop_cart_block.php?lang=" + lang);
}

function reevent_comments()
{
	$('#comments *[@id^=quote]').click(function(){
		var cid = 'comment' + $(this).attr('id').replace(/\D/g,'');
		var str = $('#' + cid).html();
		str = str.replace(/<(blockquote)>/ig,'');
		str = str.replace(/<\/(blockquote)>/ig,'');
		str = str.replace(/<(\w+)>/ig,"[$1]");
		str = str.replace(/<\/(\w+)>/ig,"[/$1]");
		str = '[QUOTE]' + str + '[/QUOTE]';
 		$('#commentarea').val(str)
		return false;
	})
}

function reload_captcha(elID)
{
	jq = !elID ? $("img[@src*=code.jpg]") : $("img[@src*=code.jpg]",$("#"+elID));
	jq.each(function(){
		var new_src = $(this).attr('src').replace(/\?.*$/g,'') + '?' + Math.random();
		$(this).attr('src',new_src);
	})
}

function show_message(msgText,msgPos,hide)
{
	if(!msgPos) msgPos = 'center';
	var ajax_message = $("<div id=ajaxmessage style='display:none'>" + msgText + "</div>").appendTo('body').css('position','absolute');
	ajax_message.css('left',($(document).scrollLeft() + ($(window).width() - ajax_message.width()) / 2));
	ajax_message.css('top',($(document).scrollTop() + ($(window).height() - ajax_message.height()) / 2));
	ajax_message.fadeIn(200);
	if(!hide) setTimeout(function(){ajax_message.fadeOut(600,function(){$(this).remove()})},1000);
	else return ajax_message;
}

function add_to_cart(n)
{
	var putoff = n.indexOf('putoff') != -1 ? 1 : 0;
	n = n.replace(/\D/g,'');
	if(!$(":text[@name='q[" + n + "]'").size()) $("<input type=hidden name=q[" + n + "] value=1>").appendTo('body');
	var qf = $("*[@name='q[" + n + "]']");

	var f = $("select[@name^='props["+n+"]'],*[@name='q[" + n + "]']").serializeArray();
	$("#cart_block").load('/shop_cart_block.php?lang=' + lang + '&putoff=' + putoff,f,function(){
		show_message($("#shop_added_message").html(),'center');
	});
}

function check_mail(str)
{
	if(str == '') return true;
	str = str.replace(/\s/g,'');
	var mails = str.split(",");
	var reg2 = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@[a-zA-Z0-9_\.-]+\.[a-zA-Z]{2,4}$/;
	for(i = 0;i < mails.length;i++) if(!reg2.test(mails[i])) return false;
	return true;
} 

function open_modal_window(file,modal_width,modal_height,func)
{
	$("#modal").remove();
	modal_height = parseInt(modal_height) + 20;
	var modal = $('<div id=modal style="display: none">Загрузка...</div>').appendTo('body');
	modal.css('position','absolute').width(modal_width).height(modal_height);
	var left_coord = parseInt($(document).scrollLeft() + ($(window).width() - modal_width) / 2);
	var top_coord = parseInt($(document).scrollTop() + ($(window).height() - modal_height) / 2);
	if(left_coord < 0) left_coord = 0;
	if(top_coord < 0) top_coord = 0;
	modal.css('left',left_coord).css('top',top_coord);
	var reg = new RegExp('^/','g');
	modal.load(file,function(){
		$("#modalimage").parents('a').click(function(){return false})
		$("#modalimage").click(function(){$("#modal").fadeOut(250,function(){$(this).remove()})})
		modal.fadeIn(250);
	});
}

function show_need_message(obj,message)
{
	var need_mess = $('<div class=needmessage needdiv=1>' + message + '</div>').insertAfter($(obj)).hide().fadeIn(600);
	$(obj).bind("keydown",function(){need_mess.remove()})
}

function init()
{
	lang = $("body").attr("lang");

	$('a[@id^=delete_compare]').click(function(){
		var cid = $(this).attr('id').replace(/\D/g,'');
		$('#compare_block').load('/shop_compare_block.php?lang=' + lang + '&delete_compare_id=' + cid,function(){
			$('#comparelist').load('/shop_compare.php',function(){init()});
		});
		return false;
	})
	
	$('*[@id^=cancelorder]').click(function(){
		var order_id = $(this).attr('id').replace(/\D/g,'');
		$('#shop_history').load('/shop_history.php?cancel_id=' + order_id,function(){
			init();
		});
		return false;
	})
	
	$("form[validate]").submit(function(){
			var submit_form = true;
			var form_id = $(this).attr('id');
			if(!form_id) form_id = $(this).attr('id','form' + document.uniqueID).attr('id');
			var form = $(this);
			$(this).find("div[needdiv]").remove();
			$(':input[need]',this).each(function(){
				if($(this).val() == '' && !$("div[needdiv]").length)
				{
					show_need_message(this,$("div[@fmessage=fill]").html());
					if($(this).is(":visible")) $(this).focus();
					return submit_form = false;
				}
			});
			$(':input[mail]',this).each(function(){
				if($(this).val() && !check_mail($(this).val()) && !$("div[needdiv]").length)
				{
					show_need_message(this,$("div[@fmessage=mail]").html());
					this.focus();
					return submit_form = false;
				}
			});
			$(':input[minlength],:password[minlength]',this).each(function(){
				var val_length = $(this).val().length;
				var min_length = parseInt($(this).attr('minlength'));
				if(val_length < min_length && !$("div[needdiv]").length)
				{
					show_need_message(this,$("div[@fmessage=min]").html().replace(/#n#/g,min_length));
					this.focus();
					return submit_form = false;
				}
			});
			$(':file[exts]',this).each(function(){
				var exts = $(this).attr('exts').split(' ');
				var file_name = $(this).val();
				if(file_name)
				{
					var valid_ext = false;
					var ext = (preg = new RegExp('\.([a-zA-Z]+)$','g').exec(file_name)) ? preg[1] : '';
					for(i = 0;i < exts.length; i++)
					{
						if(ext == exts[i])
						{
							valid_ext = true;
							break;
						}
					}
					if(!valid_ext && !$("div[needdiv]").length)
					{
						show_need_message(this,$("div[@fmessage=fileext]").html().replace('#formats#',exts.join(',')));
						if($(this).is(":visible")) $(this).focus();
						return submit_form = false;
					}
				}
			});
						
			if((pss = $(':password[password]',this)) && pss.length)
			{
				var pss_val = $(this).find(':password[password]:first').val();
				pss.each(function(){
					if($(this).val() != pss_val && !$("div[needdiv]").length)
					{
						show_need_message(this,$("div[@fmessage=pwds]").html());
						this.focus();
						return submit_form = false;
					}
				})
			}
			if(submit_form)
			{
				$(':file',this).each(function(){
					if($(this).val())
					{
						form.attr('direct','1');
						if(form.attr('action').indexOf('forms_handler.php') != -1) form.attr('action','');
						return;
					}
				})
				if(!$(this).is("[@direct=1]"))
				{
					var is_order_form = $(this).attr('action').indexOf('shop_order_send.php') != -1;
					var sending = show_message($("div[@fmessage=send]").html(),'center',true);
					if(this.method == 'get') $("#" + form_id + "_result").load($(this).attr('action'),function(){sending.remove();reload_captcha(form_id)});
					else
					{ 
						var to = $(this).attr('action');
						$("#" + form_id + "_result").load(to,form.serializeArray(),function(){
							sending.remove();
							reload_captcha(form_id);
							reevent_comments();
							$('#comments textarea').val('');
							if($(this).find('#form_message_ok,.success').size())
							{
								form.remove();
								if(is_order_form) reload_cart_block()
							}
						});
					}
				}
				else return true;
			}
			return false;
	})
}

function getCaretPos(obj)
{
	obj.focus();
	if(obj.selectionStart) return obj.selectionStart;
	else if(document.selection)
	{
		var sel = document.selection.createRange();
		var clone = sel.duplicate();
		sel.collapse(true);
		clone.moveToElementText(obj);
		clone.setEndPoint('EndToEnd', sel);
		return clone.text.length;
	}
	return 0;
}

function add_smile(str,id)
{
	var area = $('#' + id);
	var pos = getCaretPos(document.forms['comments'].comment);
	newtext = area.val();
	newtext = newtext.substr(0,pos) + str + newtext.substr(pos);
	area.val(newtext);
}

function bbcode(str,id,res_obj)
{
	var area = $('#' + id);
	var areaobj = area.get(0);
	area.focus();
	var temp = res_obj ? '[#str#=#value#]#text#[/#str#]' : '[#str#]#text#[/#str#]';
	if(res_obj) var val = $(res_obj).val();
	if(document.selection) 
	{
		var s = document.selection.createRange(); 
		shit = s.text;
		newtext = temp.replace(/#text#/g,shit);
		newtext = newtext.replace(/#str#/g,str);
		if(res_obj) newtext = newtext.replace(/#value#/g,val);
		s.text = newtext;
		if(!shit) s.moveEnd('character',-(str.length + 3))
		s.select();
	}
	else if (typeof(areaobj.selectionStart) == 'number')
	{
		var start = areaobj.selectionStart;
		var end = areaobj.selectionEnd;
		text = areaobj.value.substr(start,end-start);
		shit = text;
		newtext = temp.replace(/#text#/g,shit);
		newtext = newtext.replace(/#str#/g,str);
		if(res_obj) newtext = newtext.replace(/#value#/g,val);
		fp = areaobj.value.substr(0,start).length;
		areaobj.value = areaobj.value.substr(0,start) + newtext + areaobj.value.substr(end);
		if(!shit) ss = start + str.length + (!res_obj ? 2 : 3 + val.length) ;
		else ss = fp + 2 * str.length + (!res_obj ? 5 : 6 + val.length) + shit.length;
		areaobj.setSelectionRange(ss,ss);
	}
}


