function generatePrice(){
    var discount_type;
    _getMsg('discountpercentoramount');
    var discount = prompt(gs_message_placeholder,'0');
    if(isNaN(parseInt(discount))){
        _getMsg('percentisvalidnumber');
        alert(gs_message_placeholder);
        return;
    } else{
        if(discount.indexOf('%') == discount.length-1){
            discount_type = 'percent';
            if(parseInt(discount)>100 || parseInt(discount)<0){
                _getMsg('percentboundaries');
                alert(gs_message_placeholder);
                return;
            }
        } else{
            discount_type = 'amount';
        }
        var d = document.getElementById('service_duration');
        var s_duration = d.value;
        if(parseInt(s_duration)<1 || isNaN(parseInt(s_duration))){
            _getMsg('durationboundaries');
            alert(gs_message_placeholder);
            d.focus();
            return;
        }
      
        var priority = document.getElementById('service_priority').value;
        var req = buildRequest(['discount','discount_type','duration','priority'], [discount, discount_type, s_duration, priority]);
        doRequest(req, 'ajax/server/generatePrice.php', 'managePrice', false);
    }
    //alert('end');
}

function managePrice(obj){
    if(!obj.server_error){
        price_box = document.getElementById('service_price');
        price_box.value = obj.calculated_price;
        price_box.style.color = 'green';
        if(obj.msg) alert(obj.msg);
    } else{
        setError(obj.server_error);
    }
}


function editEntry(jID){
    
    window.location = 'jobpost_services_add_edit.php?action=edit&jid='+jID;
    
}

function deleteServiceEntry(sID,sType){
    _getMsg('areyousure');
    if(confirm(gs_message_placeholder)){
        removeFromPackage(sID, sType, 'packageservice_list');
    }
    
}

function getServiceDurations(){
    var pr = document.getElementById('service_priority');
    var tp = document.getElementById('service_type');
    if(pr.value!=''){
        var req = buildRequest(['priority','service'], [pr.value,tp.value]);
        doRequest(req,'../js/ajax/server/getServiceDurations.php','manageDurations',false);
    } else{
        _getMsg('selectpriority');
        setError(gs_message_placeholder);
    }
}

function manageDurations(obj){
    if(!obj.server_error){
        clearErrors();
        var d_pd = document.getElementById('service_duration');
        populatePullDown(d_pd, obj.durations);
    } else{
        setError(obj.server_error);
    }
    
}

function getService(){
    var pr = document.getElementById('service_priority');
    var tp = document.getElementById('service_type');
    var du = document.getElementById('service_duration');
    if(!isNaN(parseInt(du.value))){
        _getMsg('order');
        var req = buildRequest(['priority','service','duration'], [pr.value,tp.value,du.value]);
        doRequest(req,'../js/ajax/server/getService.php','manageService', false);
    }
}

function manageService(obj){
    
    if(!obj.server_error){
        clearErrors();
        var price_box = document.getElementById('price_box');
        var btn = document.createElement('a');
        btn.href='javascript:void(0);';
        btn.style.styleFloat = 'none';
        btn.style.cssFloat = 'none';
        btn.style.marginTop = '10px';
        btn.innerHTML = gs_message_placeholder;
        btn.onclick=function(){
            orderService(obj.service.id);
        }
        btn.className = 'btn new';
        price_box.innerHTML = obj.service.price;
        price_box.appendChild(btn);
        price_box.style.display = 'block';
    }else{
        setError(obj.server_error);
    }
}

function addToPackage(sID, sType, tbl_name){
    var req = buildRequest(['id','type','action','tablename'],[sID, sType,'add',tbl_name]);
    doRequest(req, '../js/ajax/server/setService.php', 'managePackage',false);
}

function removeFromPackage(sID, sType, tbl_name){
    var req = buildRequest(['id','type','action','tablename'],[sID, sType,'remove',tbl_name]);
    doRequest(req, '../js/ajax/server/setService.php', 'managePackage',false);
}

function managePackage(obj){
    if(!obj.server_error){
        clearErrors();
        updateTable(obj);
        managePackagePrice(obj);
    }else{
        setError(obj.server_error);
    }
}

function managePackagePrice(obj){
    var package_price_box = document.getElementById('package_price');
    package_price_box.value = obj.totalprice;
}

function populateServicesTable(tbl_name){
    var req = buildRequest(['id','type','action','tablename'],['-', '-','list',tbl_name]);
    doRequest(req, '../js/ajax/server/setService.php', 'managePackage',false);
}

function orderService(sID){
    _getMsg('areyousure');
    if(confirm(gs_message_placeholder)){
        window.location = '?action=order&sid='+sID;
    }
}
// TODO: extract days selection in separate function to reuse
function warmJobpost(jID){
    var days;
    _getMsg('warmjobpost');
    if(confirm(gs_message_placeholder)){
        _getMsg('hotpositiondays');
        getRemainingDays(jID);
        days = prompt(gs_message_placeholder, gi_remaining_days);
        if(days){
            if(parseInt(days,10) <= parseInt(gi_remaining_days,10)){
                _getMsg('confirmdays', [days, (days*gf_hot_price)]);
                if(confirm(gs_message_placeholder)){
                    window.location = '?action=warm&id='+jID+'&days='+days;
                }
            } else{
                _getErr('hotpositiondays',[gi_remaining_days]);
                alert(gs_error_placeholder);
            }
        }
        
    }
}

function chillJobpost(jID){
    _getMsg('chilljobpost');
    if(confirm(gs_message_placeholder)){
        window.location = '?action=chill&id='+jID;
    }
}

function refreshJobpost(jID){
    _getMsg('refreshjobpost');
    if(confirm(gs_message_placeholder)){
        window.location = '?action=refresh&id='+jID;
    }
}

function extendJobpost(jID){
    _getMsg('extendjobpost');
    if(confirm(gs_message_placeholder)){
        window.location = '?action=extend&id='+jID;
    }
}
var gi_remaning_days;
var gf_hot_price;
function getRemainingDays(jID){
    var req = buildRequest(['jID'], [jID]);
    doRequest(req,'../js/ajax/server/getRemainingDays.php','setRemainingDays',false);
}

function setRemainingDays(obj){
    if(!obj.server_error){
        if(obj.remaining_days){
            gi_remaining_days = Math.round(obj.remaining_days);
            gf_hot_price = obj.hot_price;
        }
    } else{
        setError(obj.server_error);
    }
}

function setTown(obj){
    var lbl = document.getElementById('search_town_input');
    var inp = document.getElementById('jobpost_town_input');
    var hid = document.getElementById('jobpost_town_hidden');
    if(obj.value == '-'){
        inp.value='';
        inp.disabled = false;
        lbl.style.display = 'block';

        
        hid.disabled = true;
        
    } else{
        hid.value=obj.value;
        inp.value='';
        lbl.style.display = 'none';
        inp.disabled = true;
        
        hid.disabled = false;
    }
}

function setDefaultTown(obj){
    var town_pd = document.getElementById('search_town');
    if(obj.value != '' && obj.value != 28){
        town_pd.selectedIndex = town_pd.options.length-1;
        setTown(town_pd);
    } else{
      town_pd.selectedIndex = 0;
      setTown(town_pd);
    }
}

function switchTown()
{
    if($(this).val() != '28')
    {
        $('#select_town_dropdown').hide();
        $('#search_town_input').show();
        $('#jobpost_town_input').attr('disabled','').val('');
        $('#jobpost_town_hidden').attr('disabled', 'disabled');
    }
    else
    {
        $('#select_town_dropdown').show();
        $('#jobpost_town').val('1');
        $('#search_town_input').hide();
        $('#jobpost_town_input').attr('disabled','disabled');
        $('#jobpost_town_hidden').attr('disabled', '');
    }
}

function setAdvSearch(l_id){
    switchLayer(l_id);
    var flag = document.getElementById('adv_flg');
    if(flag.value == '0') flag.value = '1';
    else flag.value = '0';
}

/**
 * @description Used to set the VAT field to default value based on company origin
 * @return null
 */
function fillVAT(){
    var vat = document.getElementById('company_vat_number');
    var vat_toggle = document.getElementById('toggle_vat');
    var eik = document.getElementById('company_eik');
    var eik_lbl = document.getElementById('eik_label');
    var origin = document.getElementById('company_origin');
    if(origin.value == 'bg'){
        vat.readOnly = true;
        eik_lbl.style.display = 'block';
        vat_toggle.style.display = 'inline';
    } else{
        eik.value = '';
        vat.value = '';
        vat.readOnly = false;
        eik_lbl.style.display = 'none';
        vat_toggle.style.display = 'none';
        vat_toggle.checked = false;
    }
}

function resetVat(){
    var vat = document.getElementById('company_vat_number');
    var vat_toggle = document.getElementById('toggle_vat');
    vat.value = '';
    vat_toggle.checked = false;
}

function toggleVAT(chk){
    var vat = document.getElementById('company_vat_number');
    var eik = document.getElementById('company_eik');
    if(chk.checked) vat.value = 'BG'+eik.value;
    else vat.value = '';
}

function toggleSalary(obj){
    var salary_layer_to = document.getElementById('salary_to');
    var salary_layer_from = document.getElementById('salary_from');
    if(obj.value == 'fixed'){
        salary_layer_from.className = '';
        salary_layer_to.className = 'hidden';
    } else if(obj.value == 'none'){
        salary_layer_from.className = 'hidden';
    } else if(obj.value == 'margin'){
        salary_layer_from.className = '';
        salary_layer_to.className = '';
    }
}

function checkSkills(){
    var skill_cat_pd = document.getElementById('skill_category_id');
    var skill_pd = document.getElementById('cmb_skill_id');

    if( (skill_cat_pd.selectedIndex != -1) && (skill_pd.selectedIndex == -1)){
        _getErr('computerskills');
        setError(gs_error_placeholder);
        return false;
    } else return true;
}
