var jq ={
	jQuery:jQuery.noConflict(),
	validator:{}
}

jq.validator={

	errors_map: {
		'k_name':'k_name_error',
		'k_adr':'k_adres_error',
		'k_phone_code':'k_phonecode_error',
		'k_phone':'k_phone_error',
		'nlogin':'login_war',
		'categs':'categs_error',
		'npassword':'pass_error',
		'mail':'email_error',
		'captcha_word':'cap_error',
		'rules':'agreement_error'
	},

	errors_map_send: {
		'name':'name_error',
		'tel':'tel_error',
		'email':'email_error',
		'cap':'cap_error'
	},

	init: function(){
		jq.jQuery(document).ready(function(){
			jq.jQuery("#submit_reg").click(jq.validator.register_company);
			jq.jQuery("#submit_update").click(jq.validator.update_company);
			jq.jQuery("#add_adress").click(jq.validator.add_adress_form);
			jq.jQuery(".add_form_delete").live("click",jq.validator.delete_adress_form);
			jq.jQuery(".add_form_delete_all").live("click",jq.validator.delete_adress_form_all);
			jq.jQuery("#k_rub").change(jq.validator.get_subcategories);
			jq.jQuery("#add_category").click(jq.validator.add_category);
			jq.jQuery("#add_category_all").click(jq.validator.add_category_all);
			jq.jQuery(".delete_subcat").live("click",jq.validator.remove_category);
			jq.jQuery(".delete_subcat_all").live("click",jq.validator.remove_category_all);
			jq.jQuery("#LoginButton").click(jq.validator.check_login);
			jq.jQuery("#PassButton").click(jq.validator.make_password);
			jq.jQuery("#submit_gm").live("click",jq.validator.send_order);
			jq.jQuery("a.nyroModal").nyroModal({
				bgColor: '#F3F3F3',
				minWidth: 700
				});
		});
	},

	register_company : function(){
		var data={};
		data.k_name = jq.jQuery("#k_name").val();
		data.k_adr = jq.jQuery("#k_adr").val();
		data.k_phone_code = jq.jQuery("#k_phone_code").val();
		data.k_phone = jq.jQuery("#k_phone").val();
		data.k_fax_code = jq.jQuery("#k_fax_code").val();
		data.k_fax = jq.jQuery("#k_fax").val();
		data.k_rrab = jq.jQuery("#k_rrab").val();
		data.k_kont = jq.jQuery("#k_kont").val();
		data.k_web = jq.jQuery("#k_web").val();
		data.k_desc = jq.jQuery("#k_desc").val();

		var dop_adresses_name = [];
		var dop_adresses_adr = [];
		var dop_adresses_tel = [];
		var data_empty=true;
		jq.jQuery(".add_form_block").each(
			function (){
				var p=jq.jQuery(this);
				var dop_name=p.find("#dop_name");
				var dop_adr=p.find("#dop_adres");
				var dop_tel=p.find("#dop_tel");
				if (dop_name.length && dop_adr.length && dop_tel.length){
					dop_adresses_name.push(dop_name.val().replace(/[&=]/g, ''));
					dop_adresses_adr.push(dop_adr.val().replace(/[&=]/g, ''));
					dop_adresses_tel.push(dop_tel.val().replace(/[&=]/g, ''));
					data_empty=false;
				}
			}
		);
		if(!data_empty){
			data.dop_adresses_name = dop_adresses_name;
			data.dop_adresses_adr = dop_adresses_adr;
			data.dop_adresses_tel = dop_adresses_tel;
		}

		var dop_categories = [];
		jq.jQuery(".add_form_rubrics_table input:hidden").each(
			function (){
				var p=jq.jQuery(this);
				dop_categories.push(p.val().replace(/[&=]/g, ''));
			}
		);
		data.dop_categories = dop_categories;


		data.nlogin = jq.jQuery("#nlogin").val();
		data.npassword = jq.jQuery("#npassword").val();
		data.mail = jq.jQuery("#mail").val();
		data.captcha_word = jq.jQuery("#captcha_word").val();
		data.rules = (jq.jQuery("#rules:checked").length == 0) ? '' : '1';

		var query_string="";
		for (n in data){
			vl=data[n];
			if (typeof(vl)=='object'){
				var joiner="&"+n+"[]=";
				vl=vl.join(joiner);
				n=n.toString()+"[]";
			}else{
				vl=vl.toString();
				vl=vl.replace(/[&=]/g, '');
			}
			query_string+=n+"="+vl+"&";
		}

		jq.jQuery("#submit_reg").val('Подождите...');
		jq.jQuery("#submit_reg").attr('disabled','disabled');

		jq.jQuery.ajax({
			type: "POST",
			url: "/ajax/validate_reginfo/",
			data: query_string,
			dataType:'json',
			success: function(msg){
				jq.jQuery("#submit_reg").val('Добавить компанию');
				jq.jQuery("#submit_reg").removeAttr('disabled');
				jq.validator.proceed(msg);
			}
		});
	},

	send_order : function(){
		var id = jq.jQuery("#item_id").val();
		var name = jq.jQuery("#fo_name").val();
		var tel = jq.jQuery("#fo_tel").val();
		var email = jq.jQuery("#fo_email").val();
		var cap = jq.jQuery("#cap").val();
		var text = jq.jQuery("#fo_text").val();

		jq.jQuery("#submit_gm").val("Подождите...");
		jq.jQuery("#submit_gm").attr("disabled","disabled");
		var str = "id="+id+"&name="+name+"&tel="+tel+"&email="+email+"&cap="+cap+"&text="+text;
		//alert(str);

		jq.jQuery.ajax({
			type: "POST",
			url: "/ajax/validate_send_order/",
			data: str,
			dataType:'json',
			success: function(msg){
				jq.jQuery("#submit_gm").val("Отправить");
				jq.jQuery("#submit_gm").removeAttr("disabled");
				jq.validator.proceed_order(msg);
			}
		});
	},

	proceed_order : function(msg){
		if (jq.validator.ok(msg)){
			alert("Ваше сообщение отправлено!");
			jq.jQuery.nyroModalRemove();
		}else{
			for (i in msg.errors){
				//console.log(jq.validator.errors_map_send[i]);
				if (jq.validator.errors_map_send[i]!=undefined){
					el=jq.jQuery("#"+jq.validator.errors_map_send[i]);
					el.empty().append('<h6>'+msg.errors[i]+'</h6>');
				}
			}
		}
	},

	update_company : function(){
		var data={};
		data.k_name = jq.jQuery("#k_name").val();
		data.k_adr = jq.jQuery("#k_adr").val();
		data.k_phone = jq.jQuery("#k_phone").val();
		data.k_fax = jq.jQuery("#k_fax").val();
		data.k_rrab = jq.jQuery("#k_rrab").val();
		data.k_kont = jq.jQuery("#k_kont").val();
		data.k_web = jq.jQuery("#k_web").val();
		data.k_desc = jq.jQuery("#k_desc").val();

		var dop_adresses_name = [];
		var dop_adresses_adr = [];
		var dop_adresses_tel = [];
		var data_empty=true;
		jq.jQuery(".add_form_block").each(
			function (){
				var p=jq.jQuery(this);
				var dop_name=p.find("#dop_name");
				var dop_adr=p.find("#dop_adres");
				var dop_tel=p.find("#dop_tel");
				if (dop_name.length && dop_adr.length && dop_tel.length){
					dop_adresses_name.push(dop_name.val().replace(/[&=]/g, ''));
					dop_adresses_adr.push(dop_adr.val().replace(/[&=]/g, ''));
					dop_adresses_tel.push(dop_tel.val().replace(/[&=]/g, ''));
					data_empty=false;
				}
			}
		);
		if(!data_empty){
			data.dop_adresses_name = dop_adresses_name;
			data.dop_adresses_adr = dop_adresses_adr;
			data.dop_adresses_tel = dop_adresses_tel;
		}

		var query_string="";
		for (n in data){
			vl=data[n];
			if (typeof(vl)=='object'){
				var joiner="&"+n+"[]=";
				vl=vl.join(joiner);
				n=n.toString()+"[]";
			}else{
				//vl=vl.toString();
				//vl=vl.replace(/[&=]/g, '');
			}
			query_string+=n+"="+vl+"&";
		}

		jq.jQuery("#submit_reg").val('Подождите...');
		jq.jQuery("#submit_reg").attr('disabled','disabled');

		jq.jQuery.ajax({
			type: "POST",
			url: "/ajax/validate_upinfo/",
			data: query_string,
			dataType:'json',
			success: function(msg){
				jq.jQuery("#submit_reg").val('Добавить компанию');
				jq.jQuery("#submit_reg").removeAttr('disabled');
				jq.validator.proceed(msg);
			}
		});
	},

	proceed : function(msg){
		if (jq.validator.ok(msg)){
			window.location="/profile";
		}else{
			for (i in msg.errors){
				if (jq.validator.errors_map[i]!=undefined){
					el=jq.jQuery("#"+jq.validator.errors_map[i]);
					el.empty().append('<h6>'+msg.errors[i]+'<br /></h6>');
				}
			}
		}
	},

	ok : function (msg){
		for (i in msg.messages){
			if (msg.messages[i]=='[VALID]'){return true;}
		}
		return false;
	},

	add_adress_form : function(e){
		e.preventDefault();
		var target = jq.jQuery("#add_points_cont");
		target.append(jq.jQuery("#add_adress_template").html());
	},

	delete_adress_form : function(){
		var target = jq.jQuery(this).parent("#addr_block_1");
		target.remove();
	},

	delete_adress_form_all : function(){
		var id = jq.jQuery(this).parent().children("#office_id").val();
		var target = jq.jQuery(this).parent("#addr_block_1");
		jq.jQuery.ajax({
			type: "POST",
			url: "/ajax/remove_office/",
			data: "id="+id,
			dataType:'json',
			success: function(res){
				target.remove();
			}
		});
	},

	get_subcategories : function(){
		var id = jq.jQuery(this).val();
		jq.jQuery("#k_sub_rub").attr("disabled","disabled");
		jq.jQuery.ajax({
			type: "POST",
			url: "/ajax/subcategories_bymain/",
			data: "id="+id,
			dataType:'json',
			success: function(res){
				jq.jQuery("#k_sub_rub").removeAttr("disabled");
				jq.jQuery("#k_sub_rub").empty().append(res.msg);
			}
		});
	},

	add_category : function(){
		var counter_obj = jq.jQuery("#count_subcats");
		var start = parseInt(counter_obj.val());
		var html_name = jq.jQuery("#k_sub_rub option:selected").text();
		var option_id = parseInt(jq.jQuery("#k_sub_rub option:selected").val());

		if(option_id == 0 || option_id == '' || option_id == 'NaN'){
			jq.jQuery("#sel_rubs_block").empty().append('<b>Вы не выбрали подрубрику</b>');
			return;
		}

		if(start >= 3){
			jq.jQuery("#selected_title").empty().text('Вы можете выбрать только до трех рубрик');
			return;
		}

		jq.jQuery("#count_subcats").val(start+1);
		if(start == 0){
			jq.jQuery("#sel_rubs_block").empty().append(jq.jQuery("#add_category_template").html());
			jq.jQuery(".add_form_rubrics_table").append('<tr><td width="402">'+html_name+'</td><td><img src="/img/editor_icons/action_delete.gif" class="delete_subcat" alt="'+option_id+'" style="cursor: pointer; display: block;"></td></tr>');
			jq.jQuery("#sel_rubs_block table").attr("id","add_form_rubrics_table");
			jq.jQuery("#add_form_rubrics_table").append('<input type="hidden" id="rubr_'+option_id+'" value="'+option_id+'" />');
		}else{
			jq.jQuery("#add_form_rubrics_table").append('<tr><td width="402">'+html_name+'</td><td><img src="/img/editor_icons/action_delete.gif" class="delete_subcat" alt="'+option_id+'" style="cursor: pointer; display: block;"></td></tr>');
			jq.jQuery("#add_form_rubrics_table").append('<input type="hidden" id="rubr_'+option_id+'" value="'+option_id+'" />');
		}
	},

	add_category_all : function(){
		var counter_obj = jq.jQuery("#count_subcats");
		var start = parseInt(counter_obj.val());
		var html_name = jq.jQuery("#k_sub_rub option:selected").text();
		var option_id = parseInt(jq.jQuery("#k_sub_rub option:selected").val());

		if(option_id == 0 || option_id == '' || option_id == 'NaN'){
			jq.jQuery("#sel_rubs_block").empty().append('<b>Вы не выбрали подрубрику</b>');
			return;
		}

		if(start >= 3){
			jq.jQuery("#selected_title").empty().text('Вы можете выбрать только до трех рубрик');
			return;
		}

		jq.jQuery("#count_subcats").val(start+1);

		jq.jQuery.ajax({
			type: "POST",
			url: "/ajax/company_add_category/",
			data: "id="+option_id,
			dataType:'json',
			success: function(res){
				if(start == 0){
					jq.jQuery("#sel_rubs_block").empty().append(jq.jQuery("#add_category_template").html());
					jq.jQuery(".add_form_rubrics_table").append('<tr><td width="402">'+html_name+'</td><td><img src="/img/editor_icons/action_delete.gif" class="delete_subcat" alt="'+option_id+'" style="cursor: pointer; display: block;"></td></tr>');
					jq.jQuery("#sel_rubs_block table").attr("id","add_form_rubrics_table");
					jq.jQuery("#add_form_rubrics_table").append('<input type="hidden" id="rubr_'+option_id+'" value="'+option_id+'" />');
				}else{
					jq.jQuery("#add_form_rubrics_table").append('<tr><td width="402">'+html_name+'</td><td><img src="/img/editor_icons/action_delete.gif" class="delete_subcat" alt="'+option_id+'" style="cursor: pointer; display: block;"></td></tr>');
					jq.jQuery("#add_form_rubrics_table").append('<input type="hidden" id="rubr_'+option_id+'" value="'+option_id+'" />');
				}
			}
		});
	},

	remove_category : function(){
		var counter_obj = jq.jQuery("#count_subcats");
		var start = parseInt(counter_obj.val());
		var id = jq.jQuery(this).attr("alt");
		jq.jQuery("#rubr_"+id).remove();
		jq.jQuery(this).parent().parent().remove();
		jq.jQuery("#count_subcats").val(start-1);
		jq.jQuery("#selected_title").empty().text('Выбранные рубрики');
	},

	remove_category_all : function(){
		var counter_obj = jq.jQuery("#count_subcats");
		var start = parseInt(counter_obj.val());
		var id = jq.jQuery(this).attr("alt");
		var obj = jq.jQuery(this);

		jq.jQuery.ajax({
			type: "POST",
			url: "/ajax/delete_category/",
			data: "id="+id,
			dataType:'json',
			success: function(res){
				jq.jQuery("#rubr_"+id).remove();
				obj.parent().parent().remove();
				jq.jQuery("#count_subcats").val(start-1);
				jq.jQuery("#selected_title").empty().text('Выбранные рубрики');
			}
		});
	},

	check_login : function(){
		var val = jq.jQuery("#nlogin").val();
		jq.jQuery(this).text('Подожите');
		jq.jQuery(this).attr('disabled','disabled');

		jq.jQuery.ajax({
			type: "POST",
			url: "/ajax/validate_login/",
			data: "val="+val,
			dataType:'json',
			success: function(res){
				jq.jQuery("#LoginButton").text('Проверить');
				jq.jQuery("#LoginButton").removeAttr('disabled');
				if (res.error !== ''){
					jq.jQuery("#login_war").empty().append(res.error);
				}else{
					jq.jQuery("#login_war").empty().text('Логин соответствует требованиям');
				}
			}
		});
	},

	make_password : function(){
		jq.jQuery("#PassButton").text('Подождите');
		jq.jQuery("#PassButton").attr('disabled','disabled');
		jq.jQuery.ajax({
			type: "POST",
			url: "/ajax/propose_password/",
			data: "val=1",
			dataType:'json',
			success: function(res){
				jq.jQuery("#PassButton").text('Придумать');
				jq.jQuery("#PassButton").removeAttr('disabled');
				jq.jQuery("#npassword").val(res.pass);
			}
		});
	}
}
jq.validator.init();
