/**
 * FMIS javaskript för klientsidan, AJAX-funktioner för sökformulär
 * Version: CVS $Id: ajax_searchform.js,v 1.4 2008/07/09 10:11:49 niklas Exp $
 */
/**
 * Initierar geografi-fälten
 */
RAA.initGeographyFields = function() {
    var target = document.getElementById('county');
    var county = target ? target.value : '';
    target = document.getElementById('province');
    var province = target ? target.value : '';
    target = document.getElementById('municipality');
	var municipality = target ? target.value : '';

    if (county == '') {
        if (province != '') {
            RAA.disable('county');
        }
        RAA.disable("municipality");
        RAA.disable("cadastralUnit");
    } else if (municipality == '') {
    	RAA.disable("cadastralUnit");
    }
    if (province == '') {
        if (county != '') {
            RAA.disable('province');
        }
        RAA.disable('parish');
    }
}
YAHOO.util.Event.onDOMReady(RAA.initGeographyFields);
// kommun
RAA.updateMunicipality = function(e) {
    var elTarget = YAHOO.util.Event.getTarget(e);
    var county = elTarget.value;
    if (county == '') {
        RAA.enable('province');
    } else {
        RAA.disable('province');
    }
    var queryString = encodeURI('?county=' + county);
    var callback = {

        success: function(o) {
            // todo logging?
            if (o.responseText !== undefined) {
                var containerDiv = document.getElementById('municipalityContainer');
                containerDiv.innerHTML = o.responseText;
                YAHOO.util.Event.addListener("municipality", "change", RAA.updateCadastralUnit);
            }
            if (county == '') {
                RAA.disable('municipality');
                var cadastralUnit = document.getElementById('cadastralUnit');
                if (cadastralUnit != undefined) {
                    cadastralUnit.value = '';
                }
                RAA.disable('cadastralUnit');
            }
        },

        failure: function(o) {
            if (o.responseText !== undefined) {
                alert('Errormessage here');
            }
        },
        cache: false
    };
    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax/municipality" + queryString, callback);
}
YAHOO.util.Event.addListener("county", "change", RAA.updateMunicipality);

// fastighet
RAA.updateCadastralUnit = function(e) {
    var elTarget = YAHOO.util.Event.getTarget(e);
    var municipality = elTarget.value;
    if (municipality == '') {
        RAA.disable('cadastralUnit');
    } else {
        RAA.enable('cadastralUnit');
    }
}
YAHOO.util.Event.addListener("municipality", "change", RAA.updateCadastralUnit);

// socken
RAA.updateParish = function(e) {
    var elTarget = YAHOO.util.Event.getTarget(e);
    var province = elTarget.value;
    if (province == '') {
        RAA.enable('county');
        //RAA.enable('municipality');
    } else {
        RAA.disable('county');
    }


    var queryString = encodeURI('?province=' + province);
    var callback = {

        success: function(o) {
            // todo logging?
            if (o.responseText !== undefined) {
                var containerDiv = document.getElementById('parishContainer');
                containerDiv.innerHTML = o.responseText;
            }
            if (province == '') {
                RAA.disable('parish');
            }
        },

        failure: function(o) {
            if (o.responseText !== undefined) {
                alert('Skriv ut felmeddelandet');
            }
        },
        cache: false
    };
    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax/parish" + queryString, callback);
}
YAHOO.util.Event.addListener("province", "change", RAA.updateParish);

// rensa länsflik
RAA.clearCountyTab = function(e) {
    var county = document.getElementById('county');
    var municipality = document.getElementById('municipality');
    var cadastralUnit = document.getElementById('cadastralUnit');
    county.value = '';
    municipality.value = '';
    cadastralUnit.value = '';
    RAA.disable('county');
    RAA.disable('municipality');
    RAA.disable('cadastralUnit');
    RAA.enable('province');
}
YAHOO.util.Event.addListener("provinceTabHead", "click", RAA.clearCountyTab);

// rensa landskapsflik
RAA.clearProvinceTab = function(e) {
    var province = document.getElementById('province');
    var parish = document.getElementById('parish');
    province.value = '';
    parish.value = '';
    RAA.disable('province');
    RAA.disable('parish');
    RAA.enable('county');
}
YAHOO.util.Event.addListener("countyTabHead", "click", RAA.clearProvinceTab);

// lamningstyp
RAA.updateMonumentType = function(e) {
    var elTarget = YAHOO.util.Event.getTarget(e);
    var category = elTarget.value;
    RAA.doUpdateMonumentType(category);
}

RAA.doUpdateMonumentType = function(category) {
    var queryString = encodeURI('?category=' + category);
    var callback = {
        success: function(o) {
            // todo logging?
            if (o.responseText !== undefined) {
                var containerDiv = document.getElementById('monumentTypeContainer');
                containerDiv.innerHTML = o.responseText;
                YAHOO.util.Event.addListener("monumentType", "change", RAA.updatePropertyType);
                // todo better way
                document.getElementById('propertyType').innerHTML = "";
                document.getElementById('propertyValue').innerHTML = "";
            }
        },

        failure: function(o) {
            if (o.responseText !== undefined) {
                alert('Skriv ut felmeddelandet');
            }
        },

        cache: false
    };
    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax/monumentType" + queryString, callback);
}
YAHOO.util.Event.addListener("category", "change", RAA.updateMonumentType);

// egenskapstyp
RAA.updatePropertyType = function(e) {
    var elTarget = YAHOO.util.Event.getTarget(e);
    var monumentType = elTarget.value;
    var queryString = encodeURI('?monumentType=' + monumentType);
    var callback = {
        success: function(o) {
            // todo logging?
            if (o.responseText !== undefined) {
                var containerDiv = document.getElementById('propertyTypeContainer');
                containerDiv.innerHTML = o.responseText;
                YAHOO.util.Event.addListener("propertyType", "change", RAA.updatePropertyValue);
                // todo better way
                document.getElementById('propertyValue').innerHTML = "";
            }
        },

        failure: function(o) {
            if (o.responseText !== undefined) {
                alert('Skriv ut felmeddelandet');
            }
        },

        cache: false
    };
    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax/propertyType" + queryString, callback);
}
YAHOO.util.Event.addListener("monumentType", "change", RAA.updatePropertyType);

// egenskapsvarde
RAA.updatePropertyValue = function(e) {
    var elTarget = YAHOO.util.Event.getTarget(e);
    var propertyType = elTarget.value;
    var queryString = encodeURI('?propertyType=' + propertyType);
    var callback = {
        success: function(o) {
            // todo logging?
            if (o.responseText !== undefined) {
                var containerDiv = document.getElementById('propertyValueContainer');
                containerDiv.innerHTML = o.responseText;
            }
        },

        failure: function(o) {
            if (o.responseText !== undefined) {
                alert('Skriv ut felmeddelandet');
            }
        },

        cache: false
    };
    var request = YAHOO.util.Connect.asyncRequest('GET', "ajax/propertyValue" + queryString, callback);
}
YAHOO.util.Event.addListener("propertyType", "change", RAA.updatePropertyType);
