var ajaxObj = new XMLHTTP("ajax.php");
var detailPhotos = false;
var detailThumbs = false;

/* list */
function gotoPage(intOffset, event) {
    var objOffset = $("offset");

    if (objOffset) {
        objOffset.value = intOffset;
        objOffset.form.submit();
    }

    return cancelEvent(event);
}

/* detail */
function swichTab(objCurTab, strContentId, event) {
    var objLi = objCurTab.parentNode;
    var objUl = objLi.parentNode;
    var objText = $(strContentId);

    if (objUl && objLi && objText) {
        for (var i = 0; i < objUl.childNodes.length; i++) {
            if (objUl.childNodes[i].nodeType == 1) {
                objUl.childNodes[i].className = "";
            }
        }

        $("description2").style.display = "none";
        $("zoneinfo").style.display = "none";

        objLi.className = "current";
        objText.style.display = "block";
    }

    return cancelEvent(event);
}

function switchBidsTable(event) {
    var objBidsTbl = $("bidsTbl");
    
    if (objBidsTbl) {
        objBidsTbl.style.display = "block";
    }

    Effect.toggle('bidCnt', 'slide');

    return cancelEvent(event);
}

function initDetailPhotos(arrPhotos, arrThumbs) {
    detailPhotos = arrPhotos;
    detailThumbs = arrThumbs;
}

function nextPhoto(blnLeft, event) {
    var objPhoto = $("pzoom");
    var objThumb = $("pthumb");
    var current = 0;

    if (objPhoto && objThumb) {
        for (var i = 0; i < detailPhotos.length; i++) {
            if (objPhoto.getAttribute("href") == detailPhotos[i]) {
                current = i;
            }
        }

        if (blnLeft) {
            if (current == detailPhotos.length - 1) {
                current = 0;
            } else {
                current = current + 1;
            }
        } else {
            if (current == 0) {
                current = detailPhotos.length - 1;
            } else {
                current = current - 1;
            }        
        }

        objPhoto.setAttribute("href", detailPhotos[current]);
        Effect.Fade(objThumb, {delay: 0, duration: .1, afterFinish: function() { objThumb.style.backgroundImage = "url(" + detailThumbs[current] + ")"; Effect.Appear(objThumb, {delay: 0, duration: .4}); } });
        Lightview.updateViews();
    }
    
    return cancelEvent(event);
}

/* bid */
function sendBid(event) {
    var oTerms = $("termsok");

    if (oTerms && oTerms.checked == true) {
        return true;
    }

    alert("Para poder confirmar la puja debe leer y aceptar las condiciones y términos.\nMarque la casilla 'He leído y acepto los términos y condiciones de uso'.");
    return cancelEvent(event);
}

/* products */
function setCoords(lat, lng) {
    var objAddressLatitude = document.getElementById("addressLatitude");
    var objAddressLongitude = document.getElementById("addressLongitude");

    if (objAddressLatitude && objAddressLongitude) {
        objAddressLatitude.value = lat;
        objAddressLongitude.value = lng;
    }
}

function searchAddress(strAddress, strCode) {
    notFound = function() { showCoords(41.6205435317236, 0.6188178062438965, strCode, "Adreça no trovada: s'ha d'establir manualment", "", 16, function(lat, lng) { setCoords(lat, lng); } ); };

    strAddress = replaceAll(strAddress, " ", "_");
	strAddress = strAddress + "," + $("addressProvince").value + ",Spain";

    initMap('map');
    showAddress(strAddress, strCode, '', '', notFound, 16, function(lat, lng) { setCoords(lat, lng); }, function(lat, lng) { setCoords(lat, lng); });
}

function selectIdTown(oElement, oSelected) {
    var oId = document.getElementById("idTown");

    if (oId) {
        oId.value = getChild(oSelected, 0).innerHTML;
    }
}

function showTownMap(strTown) {
    geocoder.getLatLng(strTown + ",Spain", function(point) {
        if (point) {
            map.setCenter(point, 13);
        }
    });
}

function getMorgateInstalment() {
    var objInterest = $("interest");
    var objTerm = $("term");
    var objAmount = $("amount");
    var objInstalment = $("instalment_amount");
    
    if (objInterest && objTerm && objAmount && objInstalment) {
        var interest = ((parseFloat(replaceAll(objInterest.value, ",", "")) / 100) / 12);
        var term = parseInt(replaceAll(objTerm.value, ",", "")) * 12;
        var amount = parseFloat(replaceAll(objAmount.value, ",", ""));

        var instalment = amount / ((Math.pow((1 + interest), term) - 1) / (interest * Math.pow((1 + interest), term)));

        objInstalment.innerHTML = number_format(instalment, 2, ",", ".");
    }   
}

function getMorgateAmount(instalment) {
    var objInterest = $("interest");
    var objTerm = $("term");
    var objAmount = $("amount_amount");

    if (objInterest && objTerm && objAmount) {
        var interest = ((parseFloat(replaceAll(objInterest.value, ",", "")) / 100) / 12);
        var term = parseInt(replaceAll(objTerm.value, ",", "")) * 12;

        var amount = instalment * ((Math.pow((1 + interest), term) - 1) / (interest * Math.pow((1 + interest), term)));

        objAmount.innerHTML = number_format(amount, 2, ",", ".") + "&euro;";
    }
}

/* favorites */
function addFavorite(strCode, objSource) {
    ajaxObj.abort_timeout = 30000;
    ajaxObj.format = "JSON";
    ajaxObj.call("action=ajax/addFavorite&code=" + strCode, function(result) {
        if (result !== false) {
            $("fcount").innerHTML = result;
        }
    });

    objDelete = getChild(objSource.parentNode, 1);

    objSource.style.display = "none";
    objDelete.style.display = "block";
}

function deleteFavorite(strCode, objSource) {
    addFavorite(strCode, objSource);

    objAdd = getChild(objSource.parentNode, 0);

    objSource.style.display = "none";
    objAdd.style.display = "block";
}

function deleteClientFavorite(strCode, objSource) {
    Effect.Fade("product_" + strCode, {delay: 0, duration: .3, afterFinish: function() { deleteFavorite(strCode, objSource); }});
}

/* calendar */
function selectDay(strDay, objControl, event) {
    var objTable = $("calendar");
    var arrChilds = objTable.getElementsByTagName("a");
    var objDate = $("date");

    for (var i = 0; i < arrChilds.length; i++) {
        arrChilds[i].className = "";
    }
    
    if (objDate) {
        objControl.className = "selected";
        objDate.value = strDay;
    }
    
    return cancelEvent(event);
}