var canSearch = true;
var hasOld = false;

function changeSelection(a){
	if (a==1){
		$('radio_bg2').removeClassName('sel');
		$('radio_bg1').addClassName('sel');
		$('radio_1').checked = true;
		$('radio_2').checked = false;
        $('vuokra_min').hide();
        $('vuokra_max').hide();
        $('hinta_min').show();
        $('hinta_max').show();
        $('kk_min').show();
        $('kk_max').show();
    	$$('.leftBlockWithBorder').each(function (el) {
            el.removeClassName('jousto');
        });
        resetAllFilters();
	}
	else{
		$('radio_bg1').removeClassName('sel');
		$('radio_bg2').addClassName('sel');
		$('radio_2').checked = true;
		$('radio_1').checked = false;
        $('hinta_min').hide();
        $('hinta_max').hide();
        $('kk_min').hide();
        $('kk_max').hide();
        $('vuokra_min').show();
        $('vuokra_max').show();
	$$('.leftBlockWithBorder').each(function (el) {
            el.addClassName('jousto');
        });
        resetAllFilters();
	}
}

// tooltip1
function tooltip1(t, content, off){
    if (!off) off = 0;
	$('tooltip1Content').innerHTML = content;
	$('tooltip1').style.display = 'block';

	$('tooltip1').style.top = Element.cumulativeOffset(t)[1]-12-off+'px';
	$('tooltip1').style.left = Element.cumulativeOffset(t)[0]-185+'px';
}

function hideTooltip1(){
	$('tooltip1').style.display = 'none';
}

// highlight
function highlight(t, content){
	t.style.backgroundColor = '#63b5fe';
	tooltip2(t, content);
}

function unHighlight(t){
	t.style.backgroundColor = '#2488d6';
	hideTooltip2();
}

// tooltip2
function tooltip2(t, content){
	$('tooltip2Content').innerHTML = content;
	$('tooltip2').style.display = 'block';

	$('tooltip2').style.top = Element.cumulativeOffset(t)[1]+20+'px';
	$('tooltip2').style.left = Element.cumulativeOffset(t)[0]-2+'px';
}

function hideTooltip2(){
	$('tooltip2').style.display = 'none';
}

function showAdditionalForm(){
	hasOld = true;
	$('additionalForm').style.display = 'block';
	$('cr1').innerHTML = 'x';
	$('cr2').innerHTML = '';
	$('hiddenInput').value = '1';
	$('leadType').value = 'kVaihto';
}

function hideAdditionalForm(){
	hasOld = false;
	$('additionalForm').style.display = 'none';
	$('cr1').innerHTML = '';
	$('cr2').innerHTML = 'x';
	$('hiddenInput').value = '0';
	$('leadType').value = 'kLisatieto';
}

function hoverMain(t){
	t.src = t.src.replace('.gif', '_selected.gif');
}

function unHoverMain(t){
	t.src = t.src.replace('_selected.gif', '.gif');
}

function hover(t){
	$(t).parentNode.parentNode.addClassName('over');
//	t.src = t.src.replace('.png', '_selected.png');
}

function unHover(t){
	$(t).parentNode.parentNode.removeClassName('over');
//	t.src = t.src.replace('_selected.png', '.png');
}

/*
function operaFix(){
    if (navigator.appName == 'Opera') $('star').style.marginRight = '-150px';
}
*/

function populateSearch() {
    $('make').update(new Element('option', {'value': ''}).update('Merkki'));
    mmlookup.each(function (pair) {
        var el = new Element('option').update(pair.key);
        el.addClassName('upcase');
        if (Cookie.getData('me') == pair.key) {
            el.selected = true;
        }
        $('make').insert(el);
    });
    makeChanged();

    $('korimalli').update(new Element('option', {'value': ''}).update('Korimalli'));
    kmlookup.each(function (item) {
        var el = new Element('option').update(item);
        if (Cookie.getData('ko') == item) {
            el.selected = true;
        }
        $('korimalli').insert(el);
    });

    /*
    setSelectedFilter('hinta_min', 'n[hm]');
    setSelectedFilter('hinta_max', 'n[hx]');
    setSelectedFilter('til_min', 'n[tm]');
    setSelectedFilter('til_max', 'n[tx]');
    setSelectedFilter('vm_min', 'n[vmm]');
    setSelectedFilter('vm_max', 'n[vmx]');
    setSelectedFilter('co2_min', 'n[cm]');
    setSelectedFilter('co2_max', 'n[cx]');
    setSelectedFilter('kk_min', 'n[kkm]');
    setSelectedFilter('kk_max', 'n[kkx]');
    setSelectedFilter('vuokra_min', 'n[vm]');
    setSelectedFilter('vuokra_max', 'n[vx]');
    */
    setSelectedFilter('vaihteisto', 'v');
    setSelectedFilter('polttoaine', 'p');
    setSelectedFilter('myymala', 'm');
    setSelectedType();
}

function populateAdvSearch() {
    $('adv_make').update();
    mmlookup.each(function (pair) {
        var el = new Element('option').update(pair.key);
        el.addClassName('upcase');
        $('adv_make').insert(el);
    });
    makeAdvChanged();

    $('adv_korimalli').update(new Element('option', {'value': ''}).update('Korimalli'));
    kmlookup.each(function (item) {
        var el = new Element('option').update(item);
        $('adv_korimalli').insert(el);
    });
}

function setSelectedType() {
    var sel = Cookie.getData('t');
    if (sel) {
        if (sel == 'j') {
            changeSelection(2);
        } else if (sel == 'v') {
            changeSelection(1);
        }
    }
}

function setSelectedFilter(id, name) {
    var sel = Cookie.getData(name);
    if (sel) {
        var opts = $(id).options;
        for (i = 0; i < opts.length; i++) {
            opts[i].selected = false;
            if (opts[i].value == sel) {
                opts[i].selected = true;
            }
        }
    }
}

function resetAllFilters() {
    resetFilter('make');
    resetFilter('model');
    resetFilter('korimalli');
    /*
    resetFilter('hinta_min');
    resetFilter('hinta_max');
    resetFilter('kk_min');
    resetFilter('kk_max');
    resetFilter('vuokra_min');
    resetFilter('vuokra_max');
    resetFilter('til_min');
    resetFilter('til_max');
    resetFilter('vm_min');
    resetFilter('vm_max');
    */
    resetFilter('vaihteisto');
    resetFilter('polttoaine');
    resetFilter('myymala');
}

function resetFilter(el) {
    $(el).selectedIndex = 0;
    Cookie.setData($(el).readAttribute('name'), '');
}

function makeChanged() {
    var make = Form.Element.getValue('make');
    if (make) {
        $('model').update(new Element('option', {'value': ''}).update('Malli'));
        mmlookup.get(make).each(function (item) {
            var el = new Element('option', {'value': item}).update(item);
            if (Cookie.getData('ma') == item) {
                el.selected = true;
            }
            $('model').insert(el);
        });
    }
}

function makeAdvChanged() {
    var make = Form.Element.getValue('adv_make');
    if (make) {
        $('adv_model').update(new Element('option', {'value': 'Kaikki'}).update('-- Kaikki --'));
        mmlookup.get(make).each(function (item) {
            var el = new Element('option').update(item);
            $('adv_model').insert(el);
        });
    }
}

function modelAdvChanged() {
    var make = Form.Element.getValue('adv_make');
    var model = Form.Element.getValue('adv_model');

    var options = $('adv_selected_mm').select('option');
    var alreadyThere = false;
    var allAlreadyThere = false;

    options.each(function(item) {
        if (item.value == make+"|"+model) {
            alreadyThere = true;
        }
        if (item.value == make+"|Kaikki") {
            allAlreadyThere = true;
        }
        if (model == 'Kaikki' && item.value.substring(item.value.indexOf('|')+1) != 'Kaikki' &&
            item.value.substring(0, item.value.indexOf('|')) == make) {
            item.remove();
        }
        item.selected = false;
    });

    if (!allAlreadyThere && !alreadyThere) {
        var el = new Element('option', {'value': make+"|"+model}).update(make+" - "+model);
        $('adv_selected_mm').insert(el);
        el = new Element('option', {'value': make+"|"+model}).update(make+"|"+model);
        el.selected = true;
        $('adv_selected_mm_real').insert(el);
    }

    if (alreadyThere) {
        alert('Olet jo valinnut tämän merkin ja mallin!');
    }

    if (allAlreadyThere && model != 'Kaikki') {
        alert('Valitun merkin kaikki mallit on jo valittuna!');
    }
}

function selectedAdvChanged() {
    var options_real = $('adv_selected_mm_real').select('option');
    options_real.each(function(item) {
        item.remove();
    });

    var options = $('adv_selected_mm').select('option');
    options.each(function(item) {
        if (item.selected) {
            item.remove();
        } else {
            var el = new Element('option', {'value': item.value}).update(item.value);
            el.selected = true;
            $('adv_selected_mm_real').insert(el);
        }
    });
}

function storeFilters() {
    var elements = $('sform').elements;
    for (i = 0; i < elements.length; i++) {
        var el = Element.extend(elements[i]);
        var name = el.readAttribute('name');
        Cookie.removeData(name);
        var value = Form.Element.getValue(elements[i]);
        if (value) {
            Cookie.setData(name, value);
        }
    }
}

function ajaxLoad(ael, target) {
    new Ajax.Updater(target, ael.readAttribute('href'), {method: 'get'});
}

function updateResults() {
    storeFilters();
    new Ajax.Request('/layout/set/ajax/Autot', {
        parameters: $('sform').serialize(true),
        method: 'get',
        onSuccess: function(transport, response) {
            var res = transport.responseText;
            $('results').update(res);
        }
    });
}

function doSearch() {
    storeFilters();
    if (canSearch) {
        var make = Form.Element.getValue('make');
        var model = Form.Element.getValue('model');

        if (make != '' && model == '') {
            make = make.replace(/ë/g, "e");
            make = make.replace(/ /g, "-");
            Form.Element.disable('make');
            document.searchForm.action = document.searchForm.action+"/"+make;
        }

        if (make != '' && model != '') {
            make = make.replace(/ë/g, "e");
            make = make.replace(/ /g, "-");
            model = model.replace(/ë/g, "e");
            model = model.replace(/ /g, "-");
            model = model.replace(/\(/g, "");
            model = model.replace(/\)/g, "");
            model = model.replace(/\,/g, "-");
            model = model.replace(/ /g, "-");
            Form.Element.disable('make');
            Form.Element.disable('model');
            document.searchForm.action = document.searchForm.action+"/"+make+"/"+model;
        }

        document.searchForm.submit();
    }
}

function doAdvSearch() {
    document.advSearchForm.submit();
}

function checkContactForm(f) {
    var hasErrors = false;
    var suku = f.userSurName.value.replace(/^\s+|\s+$/g, '');
    var etu = f.userForeName.value.replace(/^\s+|\s+$/g, '');
    var puhelin = f.userPhone.value.replace(/^\s+|\s+$/g, '');
    var mittari = false;
    var rekkari = false;
    if (hasOld) {
        mittari = f.userMileAge.value.replace(/^\s+|\s+$/g, '');
        rekkari = f.userRegisterNumber.value.replace(/^\s+|\s+$/g, '');
        $('userMileAge').removeClassName('error');
        $('userRegisterNumber').removeClassName('error');
        $('userMileAge_lbl').removeClassName('error');
        $('userRegisterNumber_lbl').removeClassName('error');
    }

    $('userSurName').removeClassName('error');
    $('userForeName').removeClassName('error');
    $('userPhone').removeClassName('error');
    $('userSurName_lbl').removeClassName('error');
    $('userForeName_lbl').removeClassName('error');
    $('userPhone_lbl').removeClassName('error');

    $('error').hide();

    if (suku.length == 0) {
        hasErrors = true;
        $('userSurName_lbl').addClassName('error');
        $('userSurName').addClassName('error');
    }
    if (etu.length == 0) {
        hasErrors = true;
        $('userForeName_lbl').addClassName('error');
        $('userForeName').addClassName('error');
    }
    if (puhelin.length == 0) {
        hasErrors = true;
        $('userPhone_lbl').addClassName('error');
        $('userPhone').addClassName('error');
    }
    if (hasOld && mittari.length == 0) {
        hasErrors = true;
        $('userMileAge_lbl').addClassName('error');
        $('userMileAge').addClassName('error');
    }
    if (hasOld && rekkari.length == 0) {
        hasErrors = true;
        $('userRegisterNumber_lbl').addClassName('error');
        $('userRegisterNumber').addClassName('error');
    }
    if (hasErrors) {
        $('error').show();
        return false;
    }
    doContact();
}

function checkChangeForm(f) {
    var hasErrors = false;
    var suku = f.userSurName.value.replace(/^\s+|\s+$/g, '');
    var etu = f.userForeName.value.replace(/^\s+|\s+$/g, '');
    var puhelin = f.userPhone.value.replace(/^\s+|\s+$/g, '');
    var mittari = f.userMileAge.value.replace(/^\s+|\s+$/g, '');
    var rekkari = f.userRegisterNumber.value.replace(/^\s+|\s+$/g, '');

    $('userSurName').removeClassName('error');
    $('userForeName').removeClassName('error');
    $('userPhone').removeClassName('error');
    $('userSurName_lbl').removeClassName('error');
    $('userForeName_lbl').removeClassName('error');
    $('userPhone_lbl').removeClassName('error');
    $('userMileAge').removeClassName('error');
    $('userRegisterNumber').removeClassName('error');
    $('userMileAge_lbl').removeClassName('error');
    $('userRegisterNumber_lbl').removeClassName('error');

    $('error').hide();

    if (suku.length == 0) {
        hasErrors = true;
        $('userSurName_lbl').addClassName('error');
        $('userSurName').addClassName('error');
    }
    if (etu.length == 0) {
        hasErrors = true;
        $('userForeName_lbl').addClassName('error');
        $('userForeName').addClassName('error');
    }
    if (puhelin.length == 0) {
        hasErrors = true;
        $('userPhone_lbl').addClassName('error');
        $('userPhone').addClassName('error');
    }
    if (mittari.length == 0) {
        hasErrors = true;
        $('userMileAge_lbl').addClassName('error');
        $('userMileAge').addClassName('error');
    }
    if (rekkari.length == 0) {
        hasErrors = true;
        $('userRegisterNumber_lbl').addClassName('error');
        $('userRegisterNumber').addClassName('error');
    }
    if (hasErrors) {
        $('error').show();
        return false;
    }
    doContact();
}

function doContact() {
    $('contactForm').request({
        onComplete: function(resp) {
            document.location = resp.responseText;
        }
    });
}

function addToComparison(id) {
    xajax_addToComparison(id);
}

function addToComparisonDone() {
    document.location = comparePageURL;
}

function removeFromComparisonDone() {
    document.location.reload();
}

function updateComparisonCount(count) {
    if (count > 0) {
        $('compare').show();
    } else {
        $('compare').hide();
    }
	$('count').innerHTML = count;
}

function removeFromComparison(id) {
    xajax_removeFromComparison(id);
}

function removeAllFromComparison() {
    xajax_removeAllFromComparison();
}

function showInfo(message) {
    $('info-content').innerHTML = message;
    var vpHeight = null;
    var vpWidth = null;
    if (Prototype.Browser.IE) {
        vpHeight = document.documentElement.clientHeight;
        vpWidth = document.documentElement.clientWidth;   
    } else {
        vpHeight = window.innerHeight;
        vpWidth = document.width || document.body.offsetWidth;
    }

    $('infobox').style.display = 'block';
    $('infobox').style.top = vpHeight/2-40+'px';
    $('infobox').style.left = vpWidth/2-100+'px';
}

function hideInfo() {
    $('infobox').style.display = 'none';
}

function changeSearchImage(imgID, small_image, large_image) {
    $(imgID).src = small_image;
    $($(imgID).parentNode).rel = large_image;
}

document.observe("dom:loaded", function() {
    Cookie.init({name: 'searchFilters', path: '/', expires: 0});
//    operaFix();
    populateSearch();

    $$('.search_image a').each(function(el) {
        Event.observe(el, 'mouseover', function(event) {
            $("carHoverImage").src = this.rel;
            $('carHoverContainer').style.display = 'block';
            $('carHoverContainer').style.top = Element.cumulativeOffset(el)[1]-76+'px';
            $('carHoverContainer').style.left = Element.cumulativeOffset(el)[0]+120+'px';
        }, false);
        Event.observe(el, 'mouseout', function(event) {
            $("carHoverContainer").hide();
        }, false);
    });
//    updateResults();
});

