 function number_format( number, decimals, dec_point, thousands_sep ) {
    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "," : dec_point;
    var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}


 function timeDifference() {
     
     if($('#datepickerfrom').datepicker('getDate') != "" && $('#datepickerto').datepicker('getDate') != "" && $('#datepickerfrom').datepicker('getDate') != null && $('#datepickerto').datepicker('getDate') != null && document.getElementById('pickup').value != 0 && document.getElementById('dropoff').value != 0){
        
        
        var laterdate = $('#datepickerto').datepicker('getDate');
        var earlierdate = $('#datepickerfrom').datepicker('getDate');
        var difference = laterdate.getTime() - earlierdate.getTime();
        var daysDifference = Math.floor(difference/1000/60/60/24);
        if(daysDifference == 0)
            daysDifference =1;    
        days =  daysDifference;
        $("#startdate").val(Date.parse($('#datepickerfrom').datepicker('getDate'))/1000+60*60*24);
        $("#enddate").val(Date.parse($('#datepickerto').datepicker('getDate'))/1000+60*60*24);
        $("#enddatestr").val($('#datepickerto').val());
        $("#startdatestr").val($('#datepickerfrom').val());
        $("#days").val(days); 
     }
     else {
         alert(lang['allfields']);
         return false;
     }
}

 
 function calculateprice(){
     if($('#datepickerfrom').datepicker('getDate') != "" && $('#datepickerto').datepicker('getDate') != "" && document.getElementById('pickup').value != 0 && document.getElementById('dropoff').value != 0 && $('#datepickerfrom').datepicker('getDate') != null && $('#datepickerto').datepicker('getDate') != null){
        var laterdate = $('#datepickerto').datepicker('getDate');
        var earlierdate = $('#datepickerfrom').datepicker('getDate');
        var difference = laterdate.getTime() - earlierdate.getTime();
        var daysDifference = Math.floor(difference/1000/60/60/24);
        if(daysDifference == 0)
            daysDifference =1;    
        days =  daysDifference;
        startdate = Date.parse($('#datepickerfrom').datepicker('getDate'))/1000+60*60*24;
        enddate = Date.parse($('#datepickerto').datepicker('getDate'))/1000+60*60*24;  
        pickup = document.getElementById('pickup').value;
        dropoff = document.getElementById('dropoff').value;
        
        changeclasses(class_id, car_id);
     }
     else{
         alert(lang['allfields']);
     }
     
 }
 function booking(){
     
     if($('#bookpickup').val() == "" || $('#bookdropoff').val() == "" || $('#bookstartdate').val() == "" || $('#bookenddate').val() == "" || $('#bookcarid').val() == ""){
         alert("There was an error please try again later!");
         return false;
     }
     else if($('#bookfname').val() == ""){
        alert('Please fill "First name"');
        return false;
     }
     else if($('#booklname').val() == ""){
        alert('Please fill "Surname"');
        return false;
     }   
     else if($('#bookemail').val() == ""){
        alert('Please fill "E-mail address"');
        return false;
     }
     else if($('#bookphone').val() == ""){
        alert('Please fill "Phone no."');
        return false;
     }
     else
        return true;
 }
 
 var detailsHandleSuccess = function(o){
    // toggleOFFthrobber1('main_throbber1');
    setTimeout(function(){ displayDetails(o);}, 250);
}  
 var classesHandleSuccess = function(o){
    // toggleOFFthrobber1('main_throbber1');
    setTimeout(function(){ displayClasses(o);}, 250);
} 
 var extraHandleSuccess = function(o){
    // toggleOFFthrobber1('main_throbber1');
    setTimeout(function(){ displayExtra(o);}, 250);
} 
function reserve(elem){
    var els = document.getElementsByTagName('*');
    var elsLen = els.length;
    var pattern = new RegExp('(^|\\\\s)item-active');
    for (i = 0, j = 0; i < elsLen; i++) {
        if ( pattern.test(els[i].className) ) {
            els[i].className = "item";;
            
        }
    }
    elem.className = "item-active";
    
    //the lines below need fixing
}
function reverseclasses(elem){
    var els = document.getElementsByTagName('*');
    var elsLen = els.length;
    var pattern = new RegExp('(^|\\\\s)classes-active');
    for (i = 0, j = 0; i < elsLen; i++) {
        if ( pattern.test(els[i].className) ) {
            els[i].className = "classes";;
            
        }
    }
    elem.parentNode.className = "classes-active";
    
    //the lines below need fixing
}
function displayDetails(o) {
    var storyDiv = document.getElementById('detailscontent');
    if(o.responseText !== undefined){
        var stories = o.responseXML.documentElement.getElementsByTagName("story");
        var options = o.responseXML.documentElement.getElementsByTagName("options");
        storyDiv.innerHTML = "";   
        if(stories.length == 0) {
        }
        if(days > 0){
            var inputs='<div id="aditionalextras">';
            var j=1;
            for(i=0; i< options.length; i++){
                if(j%2 != 0)
                    back = '235, 235, 235';
                else
                    back = '255, 255, 255';
                if(options[i].getAttribute("byday") == 1)
                    inputs +='<div style="padding: 2px 10px; background-color: rgb('+ back +');"><span style="float: left;">'+ options[i].getAttribute("name") +' - '+ number_format(options[i].getAttribute("price"), 2, '.', '') +'<span class="currency" style="color:#888888;"> '+ symbol[currency] +'</span>/'+ lang['day'] +' </span><span style="float: right;"><input type="checkbox" value="'+ options[i].getAttribute("id") +'" name="additionalextras[]" onclick="addextra(this.value,this.id)" id="option_'+ options[i].getAttribute("id") +'"></span><br style="clear: both;"></div>';    
                else
                    inputs +='<div style="padding: 2px 10px; background-color: rgb('+ back +');"><span style="float: left;">'+ options[i].getAttribute("name") +' - '+ number_format(options[i].getAttribute("price"), 2, '.', '') +'<span class="currency" style="color:#888888;"> '+ symbol[currency] +'</span></span><span style="float: right;"><input type="checkbox" value="'+ options[i].getAttribute("id") +'" name="additionalextras[]" onclick="addextra(this.value,this.id)" id="option_'+ options[i].getAttribute("id") +'"></span><br style="clear: both;"></div>';    
                j++;   
            }
            inputs += '</div>';
        }
        else {
            inputs='<div id="aditionalextras" style="display:block;">';
            var j=1;
            for(i=0; i< options.length; i++){
                if(j%2 != 0)
                    back = '235, 235, 235';
                else
                    back = '255, 255, 255';
                if(options[i].getAttribute("byday") == 1)
                    inputs +='<div style="padding: 2px 10px; background-color: rgb('+ back +');"><span style="float: left;">'+ options[i].getAttribute("name") +'</span><span style="float: right;">'+ number_format(options[i].getAttribute("price"), 2, '.', '') +'<span class="currency" style="color:#888888;"> '+ symbol[currency] +'</span>/day </span><br style="clear: both;"></div>';    
                else
                    inputs +='<div style="padding: 2px 10px; background-color: rgb('+ back +');"><span style="float: left;">'+ options[i].getAttribute("name") +'</span><span style="float: right;">'+ number_format(options[i].getAttribute("price"), 2, '.', '') +'<span class="currency" style="color:#888888;"> '+ symbol[currency] +'</span></span><br style="clear: both;"></div>';    
                j++;   
            }
        }
        
        id  = stories[0].getAttribute("id");
        model1 = stories[0].getAttribute("model");
        passagers  = stories[0].getAttribute("passagers");
        doors = stories[0].getAttribute("doors");
        gear = stories[0].getAttribute("gear");
        ac = stories[0].getAttribute("ac");
        fuel = stories[0].getAttribute("fuel");
        fuel1 = stories[0].getAttribute("fuel1"); 
        bcases = stories[0].getAttribute("bcases");
        scases = stories[0].getAttribute("scases");
        extras = stories[0].getAttribute("extras");
        price1 = number_format(stories[0].getAttribute("price"), 2, '.', '');
        totalprice = number_format(stories[0].getAttribute("totalprice"), 2, '.', '');
        pickuplocation = stories[0].getAttribute("pickuplocation");
        pickupprice = number_format(stories[0].getAttribute("pickupprice"), 2, '.', '');
        returnprice = number_format(stories[0].getAttribute("returnprice"), 2, '.', '');
        returnlocation = stories[0].getAttribute("returnlocation");
        
        if(ac >0){
            aircondition = '<div id="ac"></div>';
        }   
        else
            aircondition = '';
            
        if(fuel ==0){
            fuel = lang['gasoline'];
        }   
        else
            fuel = lang['diesel'];
        if(days > 0){ 
            if(days > 5)
                var kilometers = '<div style="border-bottom: 1px solid #cccccc;padding:10px 10px 0;"><span style="float:left;">'+ lang['kilometers'] +':</span><span style="float:right;font-weight:bold;" id="kilometers">'+ lang['included'] +'</span><br style="clear:both" /></div>';
            else
                var kilometers = '<div style="border-bottom: 1px solid #cccccc;padding:10px 10px 0;"><span style="float:left;">'+ lang['kilometers'] +':</span><span style="float:right;font-weight:bold;" id="kilometers">'+ number_format(days*5*currencyrate, 2, '.', '') +' <span class="currency" style="color:#888888;"> '+ symbol[currency] +'</span></span><br style="clear:both" /></div>';
        }
        var locations="";
        if(pickupprice > 0){
            locations += '<div style="border-bottom: 1px solid #cccccc;padding:10px 10px 0;"><span style="float:left;">Pickup Location:</span><span style="float:right;font-weight:bold;" id="days">'+ pickuplocation +' - '+ pickupprice +' <span class="currency" style="color:#888888;"> '+ symbol[currency] +'</span></span><br style="clear:both" /></div>';
        }
        if(returnprice > 0){
            locations += '<div style="border-bottom: 1px solid #cccccc;padding:10px 10px 0;"><span style="float:left;">Return Location:</span><span style="float:right;font-weight:bold;" id="days">'+ returnlocation +' - '+ returnprice +' <span class="currency" style="color:#888888;"> '+ symbol[currency] +'</span></span><br style="clear:both" /></div>';
        }
        
        car_id = id;
        
        if( days !="" && days > 0){
            
            if(currency == 'EUR')
                currencyoptions='<option name="EUR" selected="selected">EUR</option><option name="USD">USD</option><option name="BGN">BGN</option>';
            if(currency == 'BGN')
                currencyoptions='<option name="EUR" >EUR</option><option name="USD">USD</option><option name="BGN" selected="selected">BGN</option>';
            if(currency == 'USD')
                currencyoptions='<option name="EUR" >EUR</option><option name="USD" selected="selected">USD</option><option name="BGN">BGN</option>';
            storyDiv.innerHTML += '<span id="detailstitle">'+ model1 +'</span><div id="detailsleft"><div id="passangers"><span>'+ passagers +'</span></div><div id="doors"><span>'+ doors +'</span></div><div id="gear"><span>'+ gear +'</span></div>'+ aircondition +'<br style="clear: both;"><div id="fuel">'+ lang['fuel'] +': '+ fuel +' - '+ fuel1 +' l/100 km</div><div id="bcases"><span>'+ bcases +'</span></div><div id="scases"><span>'+ scases +'</span></div></div><div id="detailsimg"><img src="'+ baseurl +'/img/cars/'+ id +'.jpg"></div><br style="clear: both;"><div id="extras">'+ extras +'</div><div id="optionsprice"><div style="border-bottom: 1px solid #cccccc;padding:10px 10px 0;font-size:13px;"><span style="float:left;color:#ED1C24;font-weight:bold;">'+ lang['price'] +':</span><span style="float:right;font-weight:bold;" id="carprice">'+ price1 +' <span class="currency" style="color:#888888;"> '+ symbol[currency] +'</span></span><br style="clear:both" /></div><div style="border-bottom: 1px solid #cccccc;padding:10px 10px 0;"><span style="float:left;">'+ lang['lenght'] +':</span><span style="float:right;font-weight:bold;" id="days">'+ days +' '+ lang['days'] +'</span><br style="clear:both" /></div>' + locations + kilometers +'</div><div id="addaditionalextras">'+ lang['addextras'] +' <img style="position: relative; top: 10px;" src="'+ baseurl +'/images/dirent/mouse.jpg"><span style="color: rgb(136, 136, 136);"> ('+ lang['clickhere'] +')</span></div>'+ inputs +'</div><div style="border-bottom:3px solid #CCCCCC;margin-top:40px;padding-bottom:5px;"><div style="float:left;"><input type="image" src="' + baseurl + '/images/dirent/continue-button_'+ lang['lang'] +'.jpg" /></div><div style="color:#ED1C24;float:right;font-size:16px;font-weight:bold;">'+ lang['totalprice'] +': <span style="color:#888;font-size:16px;font-weight:bold;" id="totalprice">'+ totalprice +'</span><span class="currency" style="color:#888888;"> '+ symbol[currency] +'</span></div><br style="clear:both" /></div> <div style="float:left;margin-top:7px;">Prices exclusive 20.00% VAT.</div><div style="float:right;margin-top:5px;"><label for="currency">Select currency:</label><select name="currency" id="currency" onchange="changecurrency();">'+ currencyoptions +'</select></div><br style="clear:both" />';
            
            $("#inputpickup").val(pickup);
            $("#inputdropoff").val(dropoff);
            $("#inputdays").val(days);
            $("#inputcar_id").val(car_id);
            $("#inputstartdate").val(startdate); 
            $("#inputenddate").val(enddate); 
            $("#inputenddatestr").val($('#datepickerto').val());
            $("#inputstartdatestr").val($('#datepickerfrom').val());
        }
        else
            storyDiv.innerHTML += '<span id="detailstitle">'+ model1 +'</span><div id="detailsleft"><div id="passangers"><span>'+ passagers +'</span></div><div id="doors"><span>'+ doors +'</span></div><div id="gear"><span>'+ gear +'</span></div>'+ aircondition +'<br style="clear: both;"><div id="fuel">'+ lang['fuel'] +': '+ fuel +' - '+ fuel1 +' l/100 km</div><div id="bcases"><span>'+ bcases +'</span></div><div id="scases"><span>'+ scases +'</span></div></div><div id="detailsimg"><img src="'+ baseurl +'/img/cars/'+ id +'.jpg"></div><br style="clear: both;"><div id="extras">'+ extras +'</div><div id="addaditionalextras">'+ lang['addextras'] +' <img style="position: relative; top: 10px;" src="'+ baseurl +'/images/dirent/mouse.jpg"><span style="color: rgb(136, 136, 136);"> ('+ lang['clickhere'] +')</span></div>'+ inputs +'</div>';
        
       hideLoading(); 
       $("#addaditionalextras").click(function () {
            $("#aditionalextras").slideToggle("slow");
        });
    }
}
function displayClasses(o) {
    var storyDiv = document.getElementById('listcontent');
    if(o.responseText !== undefined){
        var stories = o.responseXML.documentElement.getElementsByTagName("story");
        
        storyDiv.innerHTML = "";   
        if(stories.length == 0) {
            hideLoading(); 
            alert(lang['noitems']);        
        }
        else{
            
            if(car_id > 0)
                getdetails(car_id);
            else
                getdetails("item_" + stories[0].getAttribute("id"));
            for(i=0; i< stories.length; i++){
                id  = stories[i].getAttribute("id");
                model1 = stories[i].getAttribute("model");
                if(car_id>0){
                    if(i==(stories.length-1))
                        classname='item-last';    
                    if(stories[i].getAttribute("id") == car_id)
                        classname='item-active';        
                    else if(i!=(stories.length-1))
                        classname='item';
                    
                }
                else{
                if(i==0)
                    classname='item-active';
                else if(i==(stories.length-1))
                    classname='item-last';
                else
                    classname='item';
                }
                storyDiv.innerHTML += '<div onclick="getdetails(this.id);reserve(this);" class="'+ classname +'" id="item_'+ id +'"><img src="'+ baseurl +'/img/cars/thumbs/'+ id +'.jpg"><div id="title"><span id="model">'+ model1 +'</span><br /><span id="price">'+ stories[i].getAttribute("price") + symbol[currency] +' / '+ lang['day'] +'</span></div></div>';
               // class_id = id;
            }
            $('#currentbread').html(stories[0].getAttribute("class"))
            if(stories[0].getAttribute("pickup") != "" && stories[0].getAttribute("dropoff") != "")
                $('#locations').html('<span style="float:left;text-align: left">'+ lang['pickup'] +':<br />' + stories[0].getAttribute("pickup") + '</span><span style="float:right;text-align: right;">'+ lang['return'] +':<br />' + stories[0].getAttribute("dropoff") + '</span><br style="clear:both" />');
            else
                $('#locations').html('<span style="text-align: center;">'+ lang['choose'] +'</span><br style="clear: both;">');
            currencyrate = stories[0].getAttribute("rate");
            
        }
    }
    else{
        hideLoading(); 
        alert(lang['noitems']);    
    }
}

function displayExtra(o) {
    var storyDiv = document.getElementById('optionsprice');
    
    if(o.responseText !== undefined){
        var stories = o.responseXML.documentElement.getElementsByTagName("story");
        
           
        if(stories.length == 0) {
            hideLoading(); 
            alert("No items");        
        }
        else{
            
            for(i=0; i< stories.length; i++){
                id = stories[i].getAttribute("id");
                name = stories[i].getAttribute("name");
                price1 = stories[i].getAttribute("price");
                if(stories[i].getAttribute("byday") == 1)
                    price1 = price1*days
                else
                    price1 = price1*1;
                storyDiv.innerHTML += '<div id="addedoption_'+ id +'" style="border-bottom: 1px solid rgb(204, 204, 204); padding: 10px 10px 0pt;"><span style="float: left;">'+ name +':</span><span style="float: right; font-weight: bold;" id="addedoptionprice_'+ id +'">'+ number_format(price1, 2, '.', '') +' <span class="currency" style="color:#888888;"> '+ symbol[currency] +'</span></span><br style="clear: both;"></div>';
                
            }
            
            document.getElementById('totalprice').innerHTML = number_format(parseFloat(document.getElementById('totalprice').innerHTML) + price1, 2, '.', ''); 
            hideLoading();
        }
    }
    else{
        hideLoading(); 
        alert("No items");    
    }
}

var detailsCallback =
{
    success:detailsHandleSuccess,
    failure:detailsHandleFailure,
    argument: { foo:"foo", bar:"bar" }
}; 
var classesCallback =
{
    success:classesHandleSuccess,
    failure:classesHandleFailure,
    argument: { foo:"foo", bar:"bar" }
}; 
var extraCallback =
{
    success:extraHandleSuccess,
    failure:extraHandleFailure,
    argument: { foo:"foo", bar:"bar" }
}; 
var detailsHandleFailure = function(o){
    if(o.responseText !== undefined){
        catDiv.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
        catDiv.innerHTML += "<li>HTTP status: " + o.status + "</li>";
        catDiv.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
    }
}
var classesHandleFailure = function(o){
    if(o.responseText !== undefined){
        catDiv.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
        catDiv.innerHTML += "<li>HTTP status: " + o.status + "</li>";
        catDiv.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
    }
}
var extraHandleFailure = function(o){
    if(o.responseText !== undefined){
        catDiv.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
        catDiv.innerHTML += "<li>HTTP status: " + o.status + "</li>";
        catDiv.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
    }
}
function doDetails(){
    var sUrl = baseurl + "/details.php?id=" + g_selectedProduct + "&days=" + days  + "&pickup=" + pickup + "&dropoff=" + dropoff;
    catRequest = YAHOO.util.Connect.asyncRequest('GET', sUrl, detailsCallback);
}

function doClasses(){
    if(days > 0)
        var sUrl = baseurl + "/classes.php?id=" + g_selectedclass + "&pickup=" + pickup + "&dropoff=" + dropoff + "&days=" + days;
    else
        var sUrl = baseurl + "/classes.php?id=" + g_selectedclass + "&pickup=" + pickup + "&dropoff=" + dropoff;
    catRequest = YAHOO.util.Connect.asyncRequest('GET', sUrl, classesCallback);
}

function doClassesandcurrency(){
    if(days > 0) 
        var sUrl = baseurl + "/classes.php?id=" + g_selectedclass + "&pickup=" + pickup + "&dropoff=" + dropoff + "&currency=" + currency + "&days="+ days;
    else
        var sUrl = baseurl + "/classes.php?id=" + g_selectedclass + "&pickup=" + pickup + "&dropoff=" + dropoff + "&currency=" + currency;
    catRequest = YAHOO.util.Connect.asyncRequest('GET', sUrl, classesCallback);
}

function doExtra(){
    var sUrl = baseurl + "/extras.php?id=" + g_selectedextra;
    catRequest = YAHOO.util.Connect.asyncRequest('GET', sUrl, extraCallback);
}
function addextra(id,elid) {
    
    showLoading();
    if(document.getElementById(elid).checked){
        g_selectedextra = id;
        doExtra();    
    }
    else
        removeextra(elid, id);

} 
function removeextra(elid, id){
    var storyDiv = document.getElementById('optionsprice');  
    var toremove = document.getElementById('added'+elid)

    price1 = parseFloat(document.getElementById('addedoptionprice_'+id).innerHTML);
    document.getElementById('totalprice').innerHTML = number_format(parseFloat(document.getElementById('totalprice').innerHTML) - price1, 2, '.', '');
    storyDiv.removeChild(toremove);
    hideLoading();
}
function getdetails(id) {
    showLoading();
    g_pageType = 0;
    g_selectedProduct = id;
    //toggleONthrobber1('main_throbber1');
    doDetails();
} 

function changecurrency() {
    currency = $("#currency option:selected").val();
    changeclassesandcurrency(class_id, car_id);
    
} 
function changeclasses(classes_id, cars_id) {
    showLoading();
    g_pageType = 0;
    g_selectedclass = classes_id;
    class_id = classes_id;
    car_id=cars_id;
    
    
    //toggleONthrobber1('main_throbber1');
    doClasses();
}

function changeclassesandcurrency(classes_id, cars_id) {
    showLoading();
    g_pageType = 0;
    g_selectedclass = classes_id;
    class_id = classes_id;
    car_id=cars_id;
    
    
    //toggleONthrobber1('main_throbber1');
    doClassesandcurrency();
}

function showLoading() {
  $("#loading").show();
}

function hideLoading() {
  $("#loading").hide();
}

