﻿var vacancies = new Array();    
var departments = new Array();
var Vacancy = function(name,depName,imageUrl,visibleOnMain,text,weight,id)
{
    this.Name = name;
    this.Department = depName;
    this.ImageURL = imageUrl;
    this.VisibleOnMainPage = visibleOnMain;
    this.VacancyText = text;
    this.Weight = weight; 
	this.Id = id;
};
Vacancy.prototype.Draw = function ()
{
    var dep = FindDepartmentByName(this.Department);    
	
	var res ='<div class=\"vacancy\">'+
	'<div class=\"department\"><img src=\"'+dep.ImageURL+'\"/></div>'+
	'<div class=\"name\"><a href=\"'+"careerall.aspx?vacancyId="+this.Id+'\"><img src=\"'+this.ImageURL+'\"/></a></div>'+
    '<a href=\"'+"careerall.aspx?vacancyId="+this.Id+'\" class=\"arrow\">подробнее о вакансии</a>'+
    '</div>';	
	var res = '<td width=\"100\"><div class=\"tab\"><div class=\"department\"><img src=\"'+dep.ImageURL+'\"/></div>';
	//res += '<div class=\"name\"><a href=\"'+"careerall.aspx?vacancyId="+this.Id+'\"><img src=\"'+this.ImageURL+'\"/></a></div>';
	res += '<div class=\"name\"><a href=\"'+"http://go.microsoft.com/?linkid="+this.Id+'\"><img src=\"'+this.ImageURL+'\"/></a></div>';
	//res += '<a href=\"'+"careerall.aspx?vacancyId="+this.Id+'\" class=\"arrow\">подробнее о вакансии</a></div></td>';
	res += '<a href=\"'+"http://go.microsoft.com/?linkid="+this.Id+'\" class=\"arrow\">подробнее о вакансии</a></div></td>';
    return res;
};

var Department = function(name,imageUrl,localizedName)
{
    this.Name = name;
    this.ImageURL = imageUrl;    
    this.LocalizedName = localizedName;
};

var SelectVacanciesForMainPage = function(department)
{    
    var vacanciesToSelectFrom = new Array();
    if(department=='')
    {		
        vacanciesToSelectFrom = vacancies;
    }
    else
    {
        vacanciesToSelectFrom = FindVacanciesByDepartment(department);
    }    
	var filteredVacancies = new Array();	
    for(var i=0;i<vacanciesToSelectFrom.length;i++)
	{
			if(vacanciesToSelectFrom[i].VisibleOnMainPage == "True")
			{				
				filteredVacancies.push(vacanciesToSelectFrom[i]);
			}
	}
	vacanciesToSelectFrom = filteredVacancies;
			
		
    var vacanciesToShow = new Array();
    for(var k=0;k<5;k++)
    {    
        var rndArray = new Array();
        var weightSumm = 0;
        
        for(var i=0;i<vacanciesToSelectFrom.length;i++)
        {
            weightSumm += parseInt(vacanciesToSelectFrom[i].Weight);
            for(var j=0;j<parseInt(vacanciesToSelectFrom[i].Weight);j++)
            {
                rndArray.push(i);
            }
        }
        var rand_no = Math.random();
        rand_no = rand_no * weightSumm;        
        rand_no = Math.ceil(rand_no);        
        vacanciesToShow.push(vacanciesToSelectFrom[rndArray[rand_no-1]]); 
        vacanciesToSelectFrom = RemoveVacancyFromArray(vacanciesToSelectFrom,vacanciesToSelectFrom[rndArray[rand_no-1]]);                
        if(vacanciesToSelectFrom.length==0 || rndArray.length==0)
            break;           
    }
    return vacanciesToShow;
};
var RemoveVacancyFromArray = function (arrayToClear,vacancyToRemove)
{
    var results = new Array();
    for(var i=0;i<arrayToClear.length;i++)
    {
        if(arrayToClear[i].Id!=vacancyToRemove.Id)
        {                       
            results.push(arrayToClear[i]);
        }
    }
    return results;
}
var RemoveFromArray = function(arrayToClear,valueToRemove)
{
    var results = new Array();
    for(var i=0;i<arrayToClear.lenght;i++)
    {
        if(arrayToClear[i]!=valueToRemove)
        {                       
            results.push(arrayToClear[i]);
        }
    }
    return results;
}
var FindVacanciesByDepartment = function(department)
{
    var vacanciesfound = new Array();
    for(var i=0;i<vacancies.length;i++)
    {
        if(vacancies[i].Department == department)
        {
            vacanciesfound.push(vacancies[i]);
        }        
    }
    return vacanciesfound;
};

var FindDepartmentByName = function(name)
{
    for(var i=0;i< departments.length; i++)
     if(departments[i].Name==name)
        return departments[i];
     return null;
};
var UpdateList = function(department)
{    
	$("ul#ul1").hide();
	$("ul#ul2").hide();
	$("ul#ul3").hide();
    var vacanciesForMainPage = new Array();
    if(department == null)
        vacanciesForMainPage = SelectVacanciesForMainPage('');
    else
        vacanciesForMainPage = SelectVacanciesForMainPage(department);
    $("div#vacancies").fadeOut(150);
    $("div#vacancies").html("");
	var vacancieshtml = "<table cellpadding=\"0\" cellspacing=\"0\" width=\"984\" border=\"0\" style=\"margin: 21px 0 38px 20px;\"><tr valign=\"top\">";
    for(var i=0;i<vacanciesForMainPage.length;i++)
    {
        vacancieshtml = vacancieshtml + vacanciesForMainPage[i].Draw();
		if(i<vacanciesForMainPage.length+1)
		{
			vacancieshtml = vacancieshtml + "<td width=\"20%\"><img src=\"img/empty.gif\" alt=\"\" width=\"10\" height=\"1\" /></td>";
		}
    }
						
	vacancieshtml = vacancieshtml + "<td width=\"20%\"><img src=\"img/empty.gif\" alt=\"\" width=\"10\" height=\"1\" /></td>";
	vacancieshtml = vacancieshtml + '<td width=\"102\"><a href=\"http://members.microsoft.com/careers/international/default.aspx?lang=EN&amp;loc=RUS\"><img src=\"img/all_button.png\" alt=\"\" width=\"80\" height=\"80\" style=\"margin-right: 22px;\" /></a></td>';
	vacancieshtml = vacancieshtml + "</tr></table>";
	$("div#vacancies").html(vacancieshtml);
    $("div#vacancies").fadeIn(150);    
}
var FindVacancyByName = function (vacancyName)
{
    for(var i=0;i<vacancies.length;i++)    
        if(vacancies[i].Name == vacancyName)
            return vacancies[i];            
    return null;
}
var FindVacancyById = function (id)
{
    for(var i=0;i<vacancies.length;i++)    
        if(vacancies[i].Id == id)
            return vacancies[i];            
    return null;
}
var UpdateVacancy = function(vacancyId)
{			
	if(vacancyId=="")
	{		
		if(QueryString("vacancyId")!="")
		{				
				UpdateVacancy(QueryString("vacancyId"));
				return;
		}
		else
		{			
			
		}
	}
	else
	{
		var vacancy = FindVacancyById(vacancyId);
			
		$("div#career_details_head").fadeOut(150);
		$("div#career_details").html(vacancy.VacancyText);
		$("div#career_details").append('<p><a href=\"javascript:void(0);\" onclick=\"OpenPrintWindow(\''+vacancyId+'\');\" class=\"arrow\" style=\"color:white;\"><b>версия для печати</b></a></p>');
		$("div#career_details").fadeIn(150);	
	}    	
	UpdateTrees(vacancyId);
}
var OpenPrintWindow = function(vacancyId)
{
	var url = "print.aspx?vacancyId="+vacancyId;	
	window.open(url,"_blank","toolbar=0,scrollbars=1,width=800,height=600,titlebar=1,");
}
var RenderVacancyList = function(department,selectedVacancyId)
{
	var list = new Array();
	list = FindVacanciesByDepartment(department)
	var listhtml = "<ul>";
	for(var i=0;i<list.length;i++)
	{
		if(selectedVacancyId == list[i].Id)
		{
			listhtml=listhtml+'<li><a href=\"javascript:UpdateVacancy(\''+list[i].Id+'\');\" onclick=\"UpdateVacancy(\''+list[i].Id+'\');\" style=\"color:#3a3a3a;border-bottom: 1px dashed #3a3a3a;\">'+list[i].Name+'</a></li>';
		}
		else
		{
			listhtml=listhtml+'<li><a href=\"javascript:UpdateVacancy(\''+list[i].Id+'\');\" onclick=\"UpdateVacancy(\''+list[i].Id+'\');\">'+list[i].Name+'</a></li>';
		}
	}
	listhtml = listhtml+"</ul>";
	return listhtml
}
var UpdateTrees = function(vacancyId)
{	
	//Sales
	$("div#a_1").html(RenderVacancyList("Sales",vacancyId));
	//	
	//PreSale	
	$("div#a_2").html(RenderVacancyList("PreSale",vacancyId));
	//
	//Service
	$("div#a_3").html(RenderVacancyList("Services",vacancyId));
	//
	//Technical
	$("div#a_4").html(RenderVacancyList("Technical",vacancyId));
	//
	//Marketing
	$("div#a_5").html(RenderVacancyList("Marketing",vacancyId));
	//	
	//Media
	$("div#a_6").html(RenderVacancyList("Media",vacancyId));
	//
	//toggle
	var vacancy = FindVacancyById(vacancyId);
	if(vacancy != null)
	{
		switch(vacancy.Department)
		{
			case "Sales":
				toggle(1,"mcl");
			break;
			case "PreSale":
				toggle(2,"mcl");
			break;
			case "Services":
				toggle(3,"mcl");
			break;
			case "Technical":
				toggle(4,"mcl");
			break;
			case "Marketing":
				toggle(5,"mcl");
			break;
			case "Media":
				toggle(6,"mcl");
			break;
		}
		$.scrollTo($("div#scrollToId"), {speed:500});
	}
}
var QueryString = function ( name )
{  
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    if( results == null )
        return "";
    else
        return results[1];
}

var GetClassByDepartment = function(department)
{
	if(department=="Internet")
		return "internet";
	if(department=="Marketing")
		return "marketing";
	if(department=="Sales")
		return "sales";
	if(department=="PreSale")
		return "presale";
	if(department=="Service")
		return "service";
	if(department=="Technical")
		return "technical";
}