var mod_job = {
	setView: function(obj, arrobj)
	{
		if(obj != null)
			document.getElementById(obj).style.display = '';

		for(var i = 0; i < arrobj.length; i++)
			if(arrobj[i] != null)
				document.getElementById(arrobj[i]).style.display = 'none';
	},

	change_city: function(obj, toidobj, toidobj2, default_txt)
	{
	    obj = $(obj);
	    toobj = $('#'+toidobj);
	    toobj.get(0).disabled = true;

		if (toidobj2 != null)
		{
			obj2 = $('#'+toidobj2).get(0);
		    if($(obj).val() > 0)
		        obj2.disabled = true;
		    else
		        obj2.disabled = false;
		}

	    theme_source.get_data({
	        source:'db.location',
	        params: {type: 'area', city: obj.val()},
	        success: function(data){this.load_success(toidobj, data, default_txt);},
	        failed: function(data){this.load_failed(toidobj);},
	        scope: this});
	},

	load_success: function(to, data, default_txt)
	{
	    obj = $('#'+to).get(0);

	    obj.options.length = 0;
	    obj.options[0] = new Option((default_txt != null)?default_txt:'не задано', 0, false, false);
		for(var i in data)
			obj.options[obj.options.length] = new Option(data[i].name, Number(i), false, false);
		obj.selectedIndex = 0;
		if (obj.options.length > 0)
			obj.disabled = false;
	},

	load_failed: function(to)
	{
	    obj = $('#'+to);
		if (obj.options.length > 0)
		    obj.get(0).disabled = true;
	},

	toFavorites: function(id, type) {

		$.ajax({
            type: 'POST',
            url: '.',
            data: {'FavoriteID': id, 'action': 'toFavorites', 'type': type},
            dataType: 'json',
            error: function(data) {

            	mod_job.favorites_add_failed(data);
            },
            success: function(data) {
            	if (data.success  && data.success === true)
            		mod_job.favorites_add_success(data);
            	else
            		mod_job.favorites_add_failed(data);
            }
        });
	},

	favorites_add_success: function(data)
	{
		if ( data.FavoriteID > 0)
			$('#ln'+data.FavoriteID).get(0).style.display = 'none';

		if ( data.type && data.type == 'resume' ) {
			if ( !data.urlToFavorites )
				alert("Резюме успешно добавлено в избранные резюме!");
			else if ( confirm("Резюме успешно добавлено в избранные резюме!\nПерейти к списку избранных резюме?") )
				window.location.href = data.urlToFavorites;
		} else if ( data.type && data.type == 'vacancy' ) {
			if ( !data.urlToFavorites )
				alert("Вакансия успешно добавлена в избранные вакансии!");
			else if ( confirm("Вакансия успешно добавлена в избранные вакансии!\nПерейти к списку избранных вакансии?") )
				window.location.href = data.urlToFavorites;
		}
	},

	favorites_add_failed: function(data)
	{
		if ( data.type && data.type == 'resume' ) {
			alert('Не удалось добавить резюме');
		} else if ( data.type && data.type == 'vacancy' ) {
			alert('Не удалось добавить вакансию');
		}

	},

	show_details: function($type,$id)
	{
		if ( $('#'+$type+$id+'content').css('display') == 'none' )
		{
			if ( $('#'+$type+$id+'content').html() == '' )
			{
				$('#'+$type+$id+'loader').html('<img src="/_img/themes/frameworks/jquery/ajax/loader-big.gif" border="0" width="32" height="32"/>');
				$('#'+$type+$id+'loader').slideDown(
					'normal',
					function()
					{
						//mod_job.visible_details = $type+$id;
						$.ajax({
							url: '.',
							type: 'POST',
							dataType: 'json',
							data: {
								action: 'get_details',
								type: $type,
								id: $id
							},
							success: function (data)
							{
								$('#'+$type+$id+'loader').css('display','none');
								$('#'+$type+$id+'content').html(data.html);
								$('#'+$type+$id+'content').slideDown('slow');
							},
							failed: function()
							{
								$('#'+$type+$id+'loader').slideUp('normal');
							}
						});
					}
				);
			} else {
				$('#'+$type+$id+'content').slideDown('slow');
			}
		} else {
			$('#'+$type+$id+'content').slideUp('normal');
		}
	},

	selAll: function (name,obj)
	{
		l = document.getElementsByName(name+'[]');
		for (i=0; i<l.length; i++)
			l[i].checked = obj.checked;
	},

	getPlaceForm: function(type, append, place) {
		
		if ( !place )
			place = 0;

		if ( $('input[name*="place['+type+'][id]"]').size() >= 10 ) {
			alert('Вы можете указать максимум 10 мест.');
			return false;
		}
			
		$.ajax({
			url: '.',
			dataType: 'json',
			data: {
				action: 'place',
				type: type,
				place: place,				
				rand:Math.random()
			},
			success: function(data){
				if ( $('input[name*="place['+type+'][id]"]').size() >= 10 ) {
					alert('Вы можете указать максимум 10 мест.');
					return false;
				}
			
				//$(append).append(data.form);
				$(data.form).insertBefore(append);

				$('#suggest'+data.fix).autocomplete("/service/source/db.place", {
					extraParams: {
						action: 'search_place',
						type: type,
						code: ''
					},
					dataType: 'json',
					parse: function(json) {
						var parsed = [];

						if ( !json || !json.length )
							return parsed;

						for (var i in json)
							parsed[parsed.length] = {
								data: json[i].Name,
								value: json[i].PlaceID,
								result: json[i].Name
							};

						return parsed;
					},
					formatItem: function(text, i, max, value) {
						return text;
					},
					max: 20
				}).result(
					function(event, Name, Code) {
						$('#place'+data.fix).val(Code);

						$('#faculty_suggest'+data.fix).val('');
						$('#faculty'+data.fix).val('');

						$('#chair'+data.fix).val('');
						$('#chair_suggest'+data.fix).val('');
						
						$('#spec'+data.fix).val('');
						$('#spec_suggest'+data.fix).val('');

						$('#faculty_suggest'+data.fix).setOptions({
							extraParams: {
								action: 'search_faculty_json',
								place: Code
							}
						});

						$('#chair_suggest'+data.fix).setOptions({
							extraParams: {
								action: 'search_chair_json',
								place: Code
							}
						});
						
						$('#spec_suggest'+data.fix).setOptions({
							extraParams: {
								action: 'search_spec_json',
								place: Code
							}
						});
					}
				);

				$('#city'+data.fix).change();

				$('#faculty_suggest'+data.fix).autocomplete("/service/source/db.place",{
					extraParams: {
						action: 'search_faculty_json',
						place: place
					},
					dataType: 'json',
					parse: function(json) {
						var parsed = [];

						if ( !json || !json.length )
							return parsed;

						for (var i in json)
							parsed[parsed.length] = {
								data: json[i].Name,
								value: json[i].FacultyID,
								result: json[i].Name
							};

						return parsed;
					},
					formatItem: function(text, i, max, value) {
						return text;
					},
					max: 20
				}).result(
					function(event, Name, Code) {

						$('#faculty'+data.fix).val(Code);
						$('#chair'+data.fix).val('');
						$('#chair_suggest'+data.fix).val('');

						$('#chair_suggest'+data.fix).setOptions({
							extraParams: {
								action: 'search_chair_json',
								faculty: Code,
								place: $('#place'+data.fix).val()
							}
						});
					}
				);

				$('#chair_suggest'+data.fix).autocomplete("/service/source/db.place",{
					extraParams: {
						action: 'search_chair_json',
						place: place,
						faculty: 0
					},
					dataType: 'json',
					parse: function(json) {
						var parsed = [];

						if ( !json || !json.length )
							return parsed;

						for (var i in json)
							parsed[parsed.length] = {
								data: json[i].Name,
								value: json[i].KafedraID,
								result: json[i].Name
							};

						return parsed;
					},
					formatItem: function(text, i, max, value) {
						return text;
					},
					max: 20
				}).result(
					function(event, Name, Code) {
						$('#chair'+data.fix).val(Code);
					}
				);
				
				$('#spec_suggest'+data.fix).autocomplete("/service/source/db.place",{
					extraParams: {
						action: 'search_spec_json',
						place: place,
						faculty: 0
					},
					dataType: 'json',
					parse: function(json) {
						var parsed = [];

						if ( !json || !json.length )
							return parsed;

						for (var i in json)
							parsed[parsed.length] = {
								data: json[i].Name,
								value: json[i].ChairID,
								result: json[i].Name
							};

						return parsed;
					},
					formatItem: function(text, i, max, value) {
						return text;
					},
					max: 20
				}).result(
					function(event, Name, Code) {

					}
				);
			},
			type: 'POST'
		});
	},
		
		
	add_other_position: function(event, number, branch_id)
	{
		if (event != null)
		{
			var number = event.data.number;
			var branch_id = event.data.branch_id;			
		}
				
		var input = $('<input type="text"/>')
			.attr({
				id: 'other_position_'+number+'_'+branch_id,
				name: 'other_position['+number+']['+branch_id+']'
			})
			.css({
				'width': '50%'				
			});
		
		$('#other_position_'+branch_id).replaceWith(input);
		input.before('Другая должность: ');		
	},
		
	change_position: function(event, num, br, pos, type)
	{
		if (event != null)
		{
			var num = event.data.num;
			var br = event.data.br;
			var pos = event.data.pos;			
			var type = event.data.type;			
		}
		
		var position = $('#position_'+num+'_'+br+'_'+pos);
		var specialities = $('#specialities_'+num+'_'+br+'_'+pos);
		
		if ( type == 'radio' )
		{
			$('.position_'+num+'_'+br).removeAttr('checked');
			position.attr('checked','checked');
		}
		
		if (position.get(0).checked) {
			specialities.show();
		} else {
			specialities.hide();
		}
	},
	
	change_branch: function(branch_id, number, multi, type)
	{
		if ( !type )
			type = 'checkbox';
		var positionHolder = $('#positions_'+number);
		positionHolder.empty();
		positionHolder.css('text-align','center');
		if (branch_id == -1)
			return false;
		var countColumn = 2;
						
		var table = $('<table></table>').attr({
			'cellspacing': 0,
			'cellpadding': 0
		}).css({
			'width': '100%',
			'text-align': 'left'
		});
		
		var i = 0;
		var mirrored = false;

		var each = branches[branch_id];
			
		if (branches.mirror != undefined && branches.mirror[branch_id] != undefined)
		{
			each = branches.mirror[branch_id];
			mirrored = true;
			number+= "_1";
		}
		else
			number+= "_0";
		
		var hrefOtherPosition = $('<a></a>')
			.attr({
				'href': 'javascript:void(0);',
				'id': 'other_position_'+branch_id,
				'class': 'text11'
			})
			.bind('click', {'branch_id': branch_id, 'number': number}, mod_job.add_other_position)
			.html('Другая должность');
		
		if (!branches[branch_id])
		{
			var div = $('<div></div>').css({
					'text-align': 'left',
					'padding-left': '6px',
					'margin-bottom': '5px'
				}).attr({
					'class': 'text11'
				}).append(hrefOtherPosition);
			
					
			positionHolder.append(div);
			return false;
		}	
		
		
		
		
		for(position in each)
		{		
			if (mirrored == true)
				position = each[position];
			if (branches[branch_id][position] == undefined && !mirrored)
				continue;
				
			if (!mirrored)
				if (branches[branch_id][position].User == true  )
					continue;
				
			if (i == 0)
				var tr = $('<tr></tr>');
			var td = $('<td></td>').
				css({
					'vertical-align': 'top',
					'padding': '2px',
					'width': Math.round(100/countColumn)+'%'
				});
			
						
			var input = $('<input type="'+type+'"/>').attr({				
				'name': 'position['+number+']['+branch_id+']['+position+']',
				'id': 'position_'+number+'_'+branch_id+'_'+position,
				'class': 'position_'+number+'_'+branch_id
			}).bind('click', {pos: position, num: number, br: branch_id, type: type}, mod_job.change_position);
			
			var label_text = "";
			if (mirrored == true)
				label_text = branches_linear[position];
			else
				label_text = branches[branch_id][position].Name;
			
			var label = $('<label></label>').attr({
				'for': 'position_'+number+'_'+branch_id+'_'+position,
				'class': 'text11'
			}).html(label_text);
			
			var specialities = null;
			
			 if (mirrored == false)
			 {				
				if (branches[branch_id][position].Specialities != undefined)
				{
					var specialities = $('<div></div>').attr({					
						id: 'specialities_'+number+'_'+branch_id+'_'+position
					}).css('display', 'none');
					
					var tableSpecialities = $('<table></table>').attr({
						'cellspacing': 1,
						'cellpadding': 0,
						'width': '100%'
					});
					
					tableSpecialities.append($('<tr></tr>')
											.append($('<td colspan="2"></td>')
												.css({
													'padding': '0px',
													'vertical-align': 'top',
													'padding-left': '20px'													
												})												
												.html('<small><b>Специализации</b></small>')
											));	
					
					var j = 0;
					var color = '';
					for(speciality in branches[branch_id][position].Specialities)
					{
						color = (j%2 == 0) ? '#DFF3F2' : '#D1EBEA';
							
						var id_spec = 'position_'+number+'_'+branch_id+'_'+position+'_'+speciality;
						var name_spec = 'position['+number+']['+branch_id+']['+position+']['+speciality+']';
						
						var input2 = $('<input type="'+type+'"/>').attr({				
							'name': name_spec,
							'id': id_spec,
							'class': 'position_'+number+'_'+branch_id
						});
						var label2 = $('<label></label>').attr({
							'for': id_spec,
							'class': 'text11'
						}).html(branches[branch_id][position].Specialities[speciality]);
						
												
						var tdInputSpecialities = $('<td></td>').css({
							'padding': '0px',
							'vertical-align': 'top',							
							'background-color': color,							
							'width': '40px',
							'text-align': 'right'
							
						}).append(input2);
						
						var tdLabelSpecialities = $('<td></td>').css({
							'padding': '0px',	
							'background-color': color							
						}).append(label2);
												
						j++;						
						tableSpecialities.append($('<tr></tr>').append(tdInputSpecialities).append(tdLabelSpecialities));						
					}
					
					specialities.append(tableSpecialities);					
				}
			}
			td.append(input);
			td.append(label);
			if (specialities != null)
				td.append(specialities);
			
			tr.append(td);			
			
			i++;
			if (i >= countColumn)
			{
				table.append(tr);
				i = 0;
			}
			
		}
		if (i <= countColumn && i > 0)
		{
			table.append(tr);			
		}
		
		positionHolder.append(table);
		if (mirrored == false) 
		{			
			var div = $('<div></div>').css({
					'text-align': 'left',
					'padding-left': '6px',
					'margin-bottom': '5px'
				}).attr({
					'class': 'text11'
				}).append(hrefOtherPosition);
			
					
			positionHolder.append(div);
		}
		else
		{		
			$('table:first',positionHolder)
				.before($('<div></div>')
					.attr({
						'class': 'text11'
					})
					.css({
						'text-align': 'left'
					})
					.html('<small><b>Отметьте те отрасли, в которых вы хотите стажироваться.</b></small>')
			);			
		}
	}
}

var mod_job_im_loader = {

	load: function(user_id, obj, type, title, url, reload)
	{
		reload = ( !reload ) ? 0 : 1;

		mod_passport_im_loader.params.user_id	= user_id;
		mod_passport_im_loader.params.obj		= obj;
		mod_passport_im_loader.params.type		= type;
		mod_passport_im_loader.params.title		= title;
		mod_passport_im_loader.params.url		= url;
		mod_passport_im_loader.params.reload	= reload;

		$.ajax({
			url: '/job/resume/im_send.php',
			dataType: 'json',
			data: {
				to:user_id,
				m:obj,
				type: type,
				url: url,
				title: title,
				rand:Math.random()},
			success: function(data){mod_job_im_loader.success_loaded(data, type, title, url, reload)},
			type: 'GET'});
	},

	success_loaded: function(data, type, title, url, reload)
	{
		if(data.status == 'ok' || data.status == 'login')
		{
		    $.fn.nyroModalManual({
				modal: true,
				type: 'manual',
				content: '<div id="im_form_container" style="opacity: 0;filter: alpha(opacity=0);">' + data.data + '</div>',
				endShowContent: mod_passport_im_loader.rendered,
				hideContent: mod_passport_im_loader.hideContent,
				endRemove: function(){if(reload)location.href=location.href;}
		    });

			if ( data.status == 'ok' )
				$('.nyroModalSend').click(this.send);
			else
				$('.nyroModalSend').click(this.login);
		}
		else if(data.status == 'added')
		{
			$.nyroModalRemove();
			if(reload==1)
				location.href=location.href;
		}
		else if(data.status == 'error')
		{
			$('#imSendButton').attr('disabled', false);
			alert(data.data);
		}
	},

	send: function()
	{
		$('#imSendButton').attr('disabled', true);
		$.ajax({
			url: '/passport/im/ajax_new.php',
			dataType: 'json',
			data: {
				action:	'im_ajax_new',
				to:		$('#im_form_to').val(),
				text:	$('#im_form_text').val()+"\n\nСсылка на резюме: [URL="+$('#im_select').val()+"]"+$('#im_select').text()+"[/URL]",
				itype:	mod_passport_im_loader.params.type,
				ititle:	mod_passport_im_loader.params.title,
				iurl:	mod_passport_im_loader.params.url,
				rand:Math.random()
			},
			success: function(data){mod_passport_im_loader.success_loaded(data, mod_passport_im_loader.params.type, mod_passport_im_loader.params.url, mod_passport_im_loader.params.title, mod_passport_im_loader.params.reload)},
			type: 'POST'});
	}
}

var mod_job_incorrect_obj = {	
	ready : true,
	incorrect_id: 0,
	type: null,
	maxlength: 200,
	temp_comment: "",
	
	refresh_captha: function()
	{
		var captcha_img = $('.incorrect_container .captcha_code_img');
		var captcha_code = $('.incorrect_container .captcha_code');
		if (captcha_img!=null && captcha_code!=null)
		{
			captcha_code.val('');
			captcha_img.attr("src", "");
			captcha_img.attr("src", "/service/captcha/?r="+Math.random());
		}
	},

	hide: function()
	{
		var container = $('#incorrect_adv_div');
		container.append($('#incorrect_form'));		
		$('#incorrect_form .incorrect_reason option:first').attr('selected', 'yes');
		
		var captcha_img = $('.incorrect_container .captcha_code_img');		
		if (captcha_img!=null)
			captcha_img.attr("src", "");
			
		$('.incorrect_container').hide();		
		this.incorrect_id = 0;
	},
	
	show: function(id, _type) 
	{		
		if (!this.ready)
		{
			alert("В данный момент происходит обработка, попробуйте позднее");
			return false;
		}
		
		this.type = _type;
		
		if(this.incorrect_id == id)
		{
			this.hide();
			return;
		}	
		this.hide();		
		this.incorrect_id = id;
		
		var el = $('#incorrect_container_'+this.incorrect_id);		
		
		
		el.append($('#incorrect_form'));
		$('#incorrect_form').show();
		this.refresh_captha();
		el.show();		
		return false;
	},
	
	incorrect_adv_success: function(data, textStatus)
	{
		mod_job_incorrect_obj.ready = true;
		$('.incorrect_container .send_incorrect').removeAttr('disabled');
		if (data.status==0)
		{					
			alert(data.success);
			mod_job_incorrect_obj.hide();
			$('#incorrect_form .incorrect_reason option:first').attr('selected', 'yes');
		}
		else
		{
			alert(data.error);
			mod_job_incorrect_obj.refresh_captha();
		}
	},
	
	incorrect_adv_error: function(XMLHttpRequest, textStatus, errorThrown)
	{
		$('.incorrect_container .send_incorrect').removeAttr('disabled');
		alert("Ошибка");
		mod_job_incorrect_obj.ready = true;
		mod_job_incorrect_obj.refresh_captha();
	},
	
	incorrect_adv: function()
	{	
		if (!this.ready)
		{
			alert("В данный момент происходит обработка, попробуйте позднее");
			return false;
		}
		
		this.ready = false;
		$('.incorrect_container .send_incorrect').attr('disabled', 'true');
		$.ajax({				
			type: 'POST',
			dataType: 'json',
			data: {
				action: 'incorrect',
				type: this.type,
				reasonType: $('.incorrect_container .incorrect_reason').val(),
				id: mod_job_incorrect_obj.incorrect_id,
				comment: $('.incorrect_container .incorrect_comments').val(),
				captcha_code: $('.incorrect_container .captcha_code').val()
			},
			success: this.incorrect_adv_success,
			error: this.incorrect_adv_error
		});
		
	},
	
	onchange_incorrect_reason: function()
	{		
		var incorrect_reason = $('.incorrect_container .incorrect_reason');
		if (incorrect_reason.val()=='other_marks')
			$('.incorrect_container .incorrect_comments').show();
		else
			$('.incorrect_container .incorrect_comments').hide();
	},
	
	textarea_maxlength: function()
	{
		var incorrect_comments = $('.incorrect_container .incorrect_comments');
		var comment = incorrect_comments.val();
		if(comment.length > this.maxlength) 
		{
			incorrect_comments.val(comment.substring(0, this.maxlength));
		}
	}
}


