if(!!ajax===false) var ajax=new Array();
var sfObj;

searchForm=function() {
	sfObj=this;
	
	this.init=function() {
		this.f=document.getElementById('searchForm');
		this.context=document.getElementById('context').value;
	//	this.prepareParams();
	//	this.loadCategoriesList();
	//	this.loadLettersList();
	}
	this.showPars=function() {
		this.f.area_every_0.disabled=!this.displayPars;
		this.f.area_every_1.disabled=!this.displayPars;
		this.f.words_any_0.disabled=!this.displayPars;
		this.f.words_any_1.disabled=!this.displayPars;
		this.f.without_words.disabled=!this.displayPars;
		this.f.rubricator.disabled=!this.displayPars;
		this.f.city.disabled=!this.displayPars;
		this.f.currency.disabled=!this.displayPars;
		this.f.worktime.disabled=!this.displayPars;
		this.f.experience.disabled=!this.displayPars;
		this.f.education.disabled=!this.displayPars;
		this.f.gender.disabled=!this.displayPars;
		this.f.salary_from.disabled=!this.displayPars;
		this.f.salary_to.disabled=!this.displayPars;
		this.f.age_from.disabled=!this.displayPars;
		this.f.age_to.disabled=!this.displayPars;
		this.f.limitation.disabled=!this.displayPars;
		this.f.sort.disabled=!this.displayPars;
		this.f.per_page.disabled=!this.displayPars;
		this.f.show_all.disabled=!this.displayPars;
		
		if(!!this.f.company_type) this.f.company_type.disabled=!this.displayPars;
		if(!!this.f.show_auth) this.f.show_auth.disabled=!this.displayPars;
	}
	this.changeMode=function(mode) {
		switch(mode) {
			case 'cats':
				this.displayCats=(this.displayCats)? 0 : 1;
				this.catsBlock.style.display='block';
				this.showPars();
			break;
			
			case 'pars':
				this.displayPars=(this.displayPars)? 0 : 1;
				this.parsBlock.style.display='block';
				this.showPars();
			break;
		}
	}
	this.getURLParam=function(param) {
		param=param.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
		var regexS="[\\?&]"+param+"=([^&#]*)";
		var regex=new RegExp(regexS);
		var results=regex.exec(window.location.href);
		if(results==null)	return "";
		else return results[1];
	}
	this.prepareParams=function() {
		if(this.getURLParam(this.f.area_every_0.name)==0)	this.f.area_every_0.checked=true;
		if(this.getURLParam(this.f.area_every_1.name)==1)	this.f.area_every_1.checked=true;
		if(this.getURLParam(this.f.words_any_0.name)==0)	this.f.words_any_0.checked=true;
		if(this.getURLParam(this.f.words_any_1.name)==1)	this.f.words_any_1.checked=true;
		if(this.getURLParam(this.f.show_all.name)==1)			this.f.show_all.checked=true;
		if(!!this.f.show_auth && this.getURLParam(this.f.show_auth.name)==1) this.f.show_auth.checked=true;
	}
	this.loadCategoriesList=function() {
		var index=ajax.length;
		ajax[index]=new sack();
		ajax[index].requestFile='/misc/?do=load_categories_list&context='+this.context+'&limitation='+this.f.limitation.options[this.f.limitation.selectedIndex].value;
		ajax[index].onCompletion=function() {sfObj.makeCategoriesList(index);}
		ajax[index].runAJAX();
	}
	this.makeCategoriesList=function(index) {
		this.catsBlock.innerHTML=ajax[index].response;
	}
	this.loadLettersList=function() {
		var index=ajax.length;
		ajax[index]=new sack();
		ajax[index].requestFile='/misc/?do=get_companies_letters';
		ajax[index].onCompletion=function() {sfObj.makeLetterList(index);}
		ajax[index].runAJAX();
	}
}

// добавляем в избранное
if(!!ajax===false) var ajax=new Array();
var favsObj;

favourites=function() {
	favsObj=this;
	this.addVacancy=function(obj, id) {
		this.el=obj;
		var index=ajax.length;
		ajax[index]=new sack();
		ajax[index].requestFile='/misc/?do=add_vacancy_to_favs&id='+id;
		ajax[index].onCompletion=function() {favsObj.processVacancy(index);}
		ajax[index].runAJAX();
	}
	this.processVacancy=function(index) {
		this.el.className='success';
		this.el.innerText='Добавлено в избранное';
		var index=ajax.length;
		ajax[index]=new sack();
		ajax[index].requestFile='/misc/?do=get_num_vacancies_favs';
		ajax[index].onCompletion=function() {favsObj.updateNumVacancies(index);}
		ajax[index].runAJAX();
	}
	this.updateNumVacancies=function(index) {
		if(!!document.getElementById('num_in_favs')) document.getElementById('num_in_favs').innerHTML=ajax[index].response;
	}
	this.addResume=function(obj, id) {
		this.el=obj;
		var index=ajax.length;
		ajax[index]=new sack();
		ajax[index].requestFile='/misc/?do=add_resume_to_favs&id='+id;
		ajax[index].onCompletion=function() {favsObj.processResume(index);}
		ajax[index].runAJAX();
	}
	this.processResume=function(index) {
		this.el.className='success';
		this.el.innerText='Добавлено в избранное';
		var index=ajax.length;
		ajax[index]=new sack();
		ajax[index].requestFile='/misc/?do=get_num_resumes_favs';
		ajax[index].onCompletion=function() {favsObj.updateNumResumes(index);}
		ajax[index].runAJAX();
	}
	this.updateNumResumes=function(index) {
		if(!!document.getElementById('num_in_favs')) document.getElementById('num_in_favs').innerHTML=ajax[index].response;
	}
}

// направляем резюме/вакансию
if(!!ajax===false) var ajax=new Array();
var resObj;

response=function() {
	resObj=this;
	this.init=function() {
		this.div=document.getElementById('response_win');
		this.title=document.getElementById('resTitle');
		this.contentBox=document.getElementById('contentBox');
		this.confirmRes=document.getElementById('confirmRes');
	}
	this.showWin=function(obj) {
		var coords=this.getPos(obj);
		this.div.style.top=coords.top+12;
		this.div.style.left=coords.width-10;
		this.div.style.visibility='visible';
	}
	this.hideWin=function() {
		this.div.style.visibility='hidden';
	}
	this.move=function() {
		selectedItem=this.div;
		selectedX=selectedItem.style.pixelLeft;
		selectedY=selectedItem.style.pixelTop;
		aMouseX=event.clientX;
		aMouseY=event.clientY;
		document.onmousemove=this.drag;
		document.onmouseup=this.drop;
	}
	this.drag=function() {
		selectedItem.style.left=selectedX+(event.clientX-aMouseX);
		selectedItem.style.top=selectedY+(event.clientY-aMouseY);
		return false;
	}
	this.drop=function() {
		document.onmousemove=null;
		document.onmouseup=null;
	}
	this.getPos=function(obj) {
		var w=obj.offsetWidth;
		var h=obj.offsetHeight;
		var l=0;
		var t=0;
		
		while(obj) {
			l+=obj.offsetLeft;
			t+=obj.offsetTop;
			obj=obj.offsetParent;
		}
		return {'left':l, 'top':t, 'width': w, 'height':h};
	}
	this.resume=function(obj, id) {
		this.el=obj;
		this.vacancy_id=parseInt(id);
		this.showWin(obj);
		this.loadResumes();
	}
	this.loadResumes=function() {
		var index=ajax.length;
		ajax[index]=new sack();
		ajax[index].requestFile='/misc/?do=load_resumes';
		ajax[index].onCompletion=function() {resObj.showList(index);}
		ajax[index].runAJAX();
	}
	this.sendResume=function(id, title) {
		if(confirm('Вы действительно хотите направить резюме "'+title+'"?')) {
			this.processResume(id);
		}
	}
	this.processResume=function(id) {
		var index=ajax.length;
		ajax[index]=new sack();
		ajax[index].requestFile='/misc/?do=send_resume&resume_id='+id+'&vacancy_id='+this.vacancy_id;
		ajax[index].onCompletion=function() {resObj.showStatus(index);}
		ajax[index].runAJAX();
	}
	this.vacancy=function(obj, id) {
		this.el=obj;
		this.resume_id=parseInt(id);
		this.showWin(obj);
		this.loadVacancies();
	}
	this.loadVacancies=function() {
		var index=ajax.length;
		ajax[index]=new sack();
		ajax[index].requestFile='/misc/?do=load_vacancies';
		ajax[index].onCompletion=function() {resObj.showList(index);}
		ajax[index].runAJAX();
	}
	this.sendVacancy=function(id, title) {
		if(confirm('Вы действительно хотите направить вакансию "'+title+'"?')) {
			this.processVacancy(id);
		}
	}
	this.processVacancy=function(id) {
		var index=ajax.length;
		ajax[index]=new sack();
		ajax[index].requestFile='/misc/?do=send_vacancy&resume_id='+this.resume_id+'&vacancy_id='+id;
		ajax[index].onCompletion=function() {resObj.showStatus(index);}
		ajax[index].runAJAX();
	}
	this.showList=function(index) {
		this.contentBox.innerHTML=ajax[index].response;
	}
	this.showStatus=function(index) {
		if(parseInt(ajax[index].response)>0) {
			alert('Данные успешно отправлены.');
			this.el.className='success';
		}
		else alert(ajax[index].response);
		this.hideWin();
	}
}
