var jUrl, countVacancyOnPage = 40, countEmployerOnPage = 24, currentPage = 1, companyName = '', jLetter = '', timer = true, jUser = 0;

function jVacanciesList(numberPage, companyName, statusCompany) {		
	currentPage = numberPage;	
	if(numberPage < 1)
		return;
	$("#divLoader").css("display","block");	
	$.post('http://' + jUrl + '/company/vacancies/' + currentPage,
		{
			page:currentPage == 1 ? 0 : currentPage - 1,			
			countElement:countVacancyOnPage,			
			companyName:companyName,
			letter:jLetter,
			statusCompany:statusCompany
		},		
		callBackVacanciesList,
		"json"	
	);
}

function jEmployerList(numberPage) {	
	currentPage = numberPage;		
	$("#divLoader").css({"height":"250px","display":"block","width":"678px","margin-left":"-15px"});	
	if(timer != false) 
		clearTimeout(timer);
	timer = setTimeout(function(){		
		$.post('http://' + jUrl + '/home/employers/' + currentPage,
			{			
				page:currentPage == 1 ? 0 : currentPage - 1,
				letter:jLetter,
				countElement:countEmployerOnPage
			},		
			callBackEmployerList,
			"json"	
		);
	}, 750);	
}


/** In array */
function in_array(mass, p_val) {
	for(var i = 0; i < mass.length;i++) 
		if(mass[i] == p_val) 
			return true;			
	return false;
}

/** Navigate button. */
function jobNavigationButton(numberPage, countAllVacancies, companyName) {	
	var html = '';		
	if(countAllVacancies > 0) {		
	var allPage = Math.ceil(countAllVacancies/countVacancyOnPage);			
	var	leftButtonClass = (numberPage == 1) ? 'off' : 'on',
		rightButtonClass = (numberPage == allPage) ? 'off' : 'on';									
		html += '<li class="prev' + leftButtonClass + '">';
		html += '<a href="#" onclick="jVacanciesList(' + (numberPage == 1 ? 0 : numberPage - 1) + ',\'' + companyName + '\');return false;" title="Go to the previuos"></a>';
		html += '</li>';				
		html += '<li class="next' + rightButtonClass + '">';
		html += '<a ' + (numberPage < allPage ? 'href="#" onclick="jVacanciesList(' + (numberPage < allPage ? numberPage + 1 : allPage) + ',\'' + companyName + '\');return false;"' : '' ) + 'title="Go to the Next page"></a>';
		html += '</li>';				
	}					
	return html;
}



/** Navigate button. */
function jobNavigationEmployer(numberPage, countAllEmployers) {	
	var html = '';		
	if(countAllEmployers > 0) {		
	var allPage = Math.ceil(countAllEmployers/countEmployerOnPage);			
	var	leftButtonClass = (numberPage == 1) ? 'off' : 'on',
		rightButtonClass = (numberPage == allPage) ? 'off' : 'on';			
		html += '<li class="prev' + leftButtonClass + '">';
		html += '<a href="#" onclick="jEmployerList(' + (numberPage == 1 ? 0 : numberPage - 1) + ');return false;" title="Go to the previuos"></a>';
		html += '</li>';				
		html += '<li class="next' + rightButtonClass + '">';
		html += '<a ' + (numberPage < allPage ? 'href="#" onclick="jEmployerList(' + (numberPage < allPage ? numberPage + 1 : allPage) + ',\'' + companyName + '\');return false;"' : '' ) + 'title="Go to the Next page"></a>';
		html += '</li>';				
	}					
	return html;
}


/** Set letter. */
function setLetter(status,id, letter) {		
	if(jLetter == letter)
		return true;
	jLetter = letter;
	$("div li > a").removeClass("activeLetter");	
	$("#" + id).addClass("activeLetter");	
	currentPage = 1;		
	if(!status)
		jVacanciesList(currentPage, companyName);
	else
		jEmployerList(1);
}


/** Display Letters */
function jDisplayLetters(letter, obj, status, navigate) {
	var html = '',
		letters	=  ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
	html += '<span class="pagenav" align="center">';
	for(var i in letters){
		if(in_array(obj, letters[i]))
			html += '&nbsp;&nbsp;<u><a class="textlink" id="letter' + letters[i] + '" href="#" onclick="setLetter(' + status + ',this.id,\'' + letters[i] + '\');return false;">' + letters[i] + '</a></u>';
		else
			html += ' ' + letters[i] + ' ';
	}
	html += navigate;
	html += '</span><br/><br/>';
	return html;				
}

function setCallBackCommonData(obj, status, navigate) {
	$("#divLoader").css("display","none");		
	for(var i = 0; i < obj.letters.length; i++)		
		if(!parseInt(obj.letters[i])) break;													
		
	jLetter	= jLetter ? jLetter : obj.letters[i];		
	var letters  = jDisplayLetters(jLetter, obj.letters, status, navigate);
	$("#jLetters").html(letters);
	$("#letter" + jLetter).addClass("activeLetter");
}

/** List vacancies */
function callBackEmployerList(obj) {	
	var navigate = jobNavigationEmployer(currentPage, obj.allElements);
	setCallBackCommonData(obj, 1, navigate);
	var html = '', urlName = '';
	var count_company = Math.ceil(obj.employers.length/2), allEmployerCount = 0;

	//for(var i = 0; i < 2; i++) { 
		var j;

		//allEmployerCount = (i+1)*count_company >= obj.employers.length ? obj.employers.length : (i+1)*count_company;
		allEmployerCount = 2*count_company;
		//alert(allEmployerCount);
		html += '<div class="b-list" style="float:left">';
		for(j = 0; j < allEmployerCount/2; j++){ 				
			html += '<a href="http://' + jUrl + '/company/' + obj.employers[j]['companyUrlName'] + '">' + obj.employers[j]['companyName'] + '</a><br/>';
		}	
		html += '</div>';
		
		//alert("j ="+ allEmployerCount/2 +"; j < "+allEmployerCount+"; j++");
		
		html += '<div class="b-list" style="float:right">';	
		//for(j ; j < allEmployerCount; j++)
		for(j ; j < allEmployerCount-1; j++){
			html += '<a href="http://' + jUrl + '/company/' + obj.employers[j]['companyUrlName'] + '">' + obj.employers[j]['companyName'] + '</a><br/>';
		}	
		html += '</div>';
	//}
	html += '<br class="clear" />';		
	$("#searchEmployer").html(html);	
}

/** List vacancies. */
function callBackVacanciesList(obj) {			
	var navigate = jobNavigationButton(currentPage, obj.allElements, companyName);	
	setCallBackCommonData(obj, 0, navigate);		
	var count_vacancy = Math.ceil(obj.vacancies.length/4), infoCompany = '';	
	var countRow = 0, allVacancyCount = 0, classRow = '', html = '';		
	for(var i = 0; i < count_vacancy; i++){
		countRow = 0;
		html += '<div class="b-one-item">';
		allVacancyCount = (i+1)*4 >= obj.vacancies.length ? obj.vacancies.length :(i+1)*4;
		for(j = i*4; j < allVacancyCount; j++) {
			countRow++;
			classRow = countRow == 1 ? 'b-left' : countRow == 2 ? 'b-middle' : countRow == 3 ? 'b-middle2' : 'b-right';												
			html +=	'<div class="' + classRow + '">';
			if(obj.vacancies[j].impressionurl == 'iJ'){
				infoCompany = obj.vacancies[j].info.split(",")
				html +=	'<h3><a href="mailto:' + infoCompany[2] + '">' + obj.vacancies[j].name.replace(/"/g,'&quot;') + '</a></h3>';
			}	
			else	
				html +=	'<h3><a ' + (jUser ? 'href="' + obj.vacancies[j].buyurl + '" target="_blank"' : 'href="/signin"') + '>' + obj.vacancies[j].name.replace(/"/g,'&quot;') + '</a></h3>';
			html += '<p>Location: <em>' + obj.vacancies[j].keywords + '</em></p>';
			if(obj.vacancies[j].impressionurl == 'iJ'){				
				html += '<p>Phone: <em>' + infoCompany[0] + '</em></p>';
				html += '<p>Fax:   <em>' + infoCompany[1] + '</em></p>';
				html += '<p>Email: <em>' + infoCompany[2] + '</em></p>';
			}
			html += '</div>';
		}					
		html += '</div>';						
	}	
	$("#vacancies").html(html);
}

function jobLCompanyIni(url, numberPage, company, user, statusCompany) {	
	jUrl = url;			
	currentPage = numberPage;	
	companyName = company;	
	jUser = user;	
	$(document).ready(function (){jVacanciesList(numberPage, companyName, statusCompany);});	
}

function jobLHomeIni(url) {	
	jUrl = url;			
	$(document).ready(function (){jEmployerList(1);});	
}
