/*=============================================================================
    Variables
=============================================================================*/
var cursorX = 0;
var cursorY = 0;

var finestraX = 0;
var finestraY = 0;

var finestraW = 0;
var finestraH = 0;

var handleX = 0;
var handleY = 0;


/*=============================================================================
    Control navegador utilitzat
=============================================================================*/
var iexplore;
if( (navigator.appName == "Microsoft Internet Explorer") && (navigator.platform != "MacPPC") && (navigator.platform != "Mac68k") ){
    iexplore = true;
}
else iexplore = false;


var finestraAgafada = false;
var finestraAjax = createRequestObject();

/*=============================================================================
    Funcio creacio connexio Ajax
=============================================================================*/
function createRequestObject(){
    if(iexplore){
        return new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        return new XMLHttpRequest();
    }
}

/*=============================================================================
    Carrega Ajax finestra
=============================================================================*/
function carregarFinestra(recurs,ample,alt){
    finestraAjax.open('get','/ajax/'+recurs);
    finestraAjax.onreadystatechange = omplirFinestra;
    finestraAjax.send(null);
    finestraW = ample;
    finestraH = alt;
}

function omplirFinestra(){
    if( finestraAjax.readyState == 4 ){
        document.getElementById('finestra').innerHTML = finestraAjax.responseText;
        if( finestraAjax.responseText != "") mostrarFinestra();
    }
}


/*=============================================================================
    Funcions finestra
=============================================================================*/
function actualitzarCoordenades(evt){
    evt = (evt) ? evt : ((window.event) ? window.event : "");
    if (evt) {
        if( iexplore ){
            cursorX = (evt.clientX + document.documentElement.scrollLeft + document.body.scrollLeft);
            cursorY = (evt.clientY + document.documentElement.scrollTop + document.body.scrollTop);
        }
        else{
            cursorX = (evt.clientX + window.scrollX);
            cursorY = (evt.clientY + window.scrollY);
        }
    }
}

function centrarFinestra(){
    var fin = document.getElementById("finestra");
    fin.style.width = finestraW;
    fin.style.height = finestraH;

    //alert(screen.width+"x"+screen.height);
    //alert(document.width+"x"+document.height);
    //alert(window.offsetWidth+"x"+window.offsetHeight);

    var scrollX;
    var scrollY;
    if( iexplore ){
        scrollX = document.body.scrollLeft;
        scrollY = document.body.scrollTop;

        if( document.documentElement ){
            scrollX += document.documentElement.scrollLeft;
            scrollY += document.documentElement.scrollTop;
        }
    }
    else{
        scrollX = window.scrollX;
        scrollY = window.scrollY;
    }

    finestraX = ((document.body.clientWidth - finestraW)/2) + scrollX;
    finestraY = ((screen.height - finestraH)/2) + scrollY - 100;

    //alert(finestraX+"x"+finestraY);
    fin.style.top = finestraY;
    fin.style.left = finestraX;
}

function agafarFinestra(evt){
    actualitzarCoordenades(evt);
    handleX = cursorX - finestraX;
    handleY = cursorY - finestraY;
    finestraAgafada = true;
}

function deixarFinestra(evt){
    finestraAgafada = false;
}

function moureFinestra(evt){
    if( finestraAgafada ){
        actualitzarCoordenades(evt);

        finestraX = cursorX - handleX;
        finestraY = cursorY - handleY;
        posicionarFinestra(finestraX,finestraY);
    }
}

function posicionarFinestra(x,y){
    var fin = document.getElementById("finestra");

    fin.style.left = x;
    fin.style.top = y;
}

function mostrarFinestra(){
    centrarFinestra();
    document.getElementById("finestra").style.display = "block";
}

function tancarFinestra(){
    ocultarFinestra();
    reiniciarFinestra();
}

function ocultarFinestra(){
    document.getElementById("finestra").style.display = "none";
}

function reiniciarFinestra(){
    var fin = document.getElementById("finestra");
    //fin.innerHtml = "";
    fin.style.top = 0;
    fin.style.left = 0;
}


/*=============================================================================
    Blog
=============================================================================*/
var postComentari;
var paginaActual;

function afegirComentari(post,pagina){
    postComentari = post;
    paginaActual = pagina;
    carregarFinestra('comentari.php',430,200);
}

function enviarComentari(){
    document.formulari_comentari_form.post.value = postComentari;
    document.formulari_comentari_form.pagina.value = paginaActual;
    document.formulari_comentari_form.submit();
}


/*=============================================================================
    Album de fotografies
=============================================================================*/
var albumNumero;
var albumActual = 1;
var albumTotal;
var darreraAccio = 0;

function albumCarregar(num,fotos){
    albumNumero = num;
    albumTotal = fotos;
}

function albumImatgeAnterior(){
    reproduccio = 0;
    darreraAccio = -1;

    if( albumActual > 1 ){
        --albumActual;
        albumRefrescaImatge();
    }
}

function albumImatgeSeguent(){
    reproduccio = 0;
    darreraAccio = 1;

    if( albumActual < (albumTotal) ){
        ++albumActual;
        albumRefrescaImatge();
    }
}

function albumImatgeConcreta(){
    var nou = document.getElementById('albumActual').value;
    if( imatgeValida(nou) && nou >=1 && nou <= albumTotal && nou != albumActual ){
        albumActual = nou;
        albumRefrescaImatge();
    }
    else document.getElementById('albumActual').value = albumActual;
}

function albumControl(evt){
    evt = (evt) ? evt : ((window.event) ? window.event : "");
    if( (iexplore && evt.keyCode == "51") || (evt.keyCode == "13") ) albumImatgeConcreta();
}

function imatgeValida(num){
    var valid = true;
    if( num.length == 0 ) return false;
    for( var i=0; i < num.length && valid; ++i ){
        valid = esNombre(num.charAt(i));
    }
    return valid;
}

function esNombre(n){
    return ( n=="0"||n=="1"||n=="2"||n=="3"||n=="4"||n=="5"||n=="6"||n=="7"||n=="8"||n=="9" );
}


function albumRefrescaImatge(){
    document.getElementById('albumActual').value = albumActual;
    var url = 'albums/'+albumNumero+'/'+albumActual+'.jpg';

    document.getElementById('imatge_album').src = url;
    //setTimeout("espera_completada()",delay);

    if( darreraAccio >= 0 ){
        preloadSeguent = new Image(640,480);
        var indexSeguent = albumActual+1;
        preloadSeguent.src = 'albums/'+albumNumero+'/'+indexSeguent+'.jpg';
    }
    if( darreraAccio <= 0 ){
        preloadAnterior = new Image(640,480);
        var indexAnterior = albumActual-1;
        preloadAnterior.src = 'albums/'+albumNumero+'/'+indexAnterior+'.jpg';
    }
}


/*=============================================================================
    Recursos
=============================================================================*/
function habilitarRecursWeb(){
    var web = document.getElementById("recurs_web");
    web.disabled = false;

    var fitxer = document.getElementById("recurs_fitxer");
    fitxer.disabled = true;

    document.getElementById("formulari_recurs_web").style.backgroundImage="url(img/punt_taronja.gif)";
    document.getElementById("formulari_recurs_fitxer").style.backgroundImage="url(img/punt_blanc.gif)";
}

function habilitarRecursFitxer(){
    var fitxer = document.getElementById("recurs_fitxer");
    fitxer.disabled = false;

    var web = document.getElementById("recurs_web");
    web.disabled = true;

    document.getElementById("formulari_recurs_fitxer").style.backgroundImage="url(img/punt_taronja.gif)";
    document.getElementById("formulari_recurs_web").style.backgroundImage="url(img/punt_blanc.gif)";
}