$(document).ready(function() {

    var deviceIphone = "iphone";
    var deviceIpod = "ipod";
    var deviceIpad = "ipad";

    //Initialize our user agent string to lower case.
    var uagent = navigator.userAgent.toLowerCase();

    //**************************
    // Detects if the current device is an iPhone.
    function DetectIphone()
    {
       if (uagent.search(deviceIphone) > -1)
          return true;
       else
          return false;
    }

    //**************************
    // Detects if the current device is an iPod Touch.
    function DetectIpod()
    {
       if (uagent.search(deviceIpod) > -1)
          return true;
       else
          return false;
    }

    //**************************
    // Detects if the current device is an iPod Touch.
    function DetectIpod()
    {
       if (uagent.search(deviceIpad) > -1)
          return true;
       else
          return false;
    }

    //**************************
    // Detects if the current device is an iPhone or iPod Touch.
    function DetectIphoneOrIpodOrIpad()
    {
        if (DetectIphone())
           return true;
        else if (DetectIpod())
           return true;
        else if (DetectIpad())
           return true;
        else
           return false;
    }


    if(DetectIphoneOrIpodOrIpad()){
        // Remove abonneren button
        $('#button-abonneren').remove();
    }

    // Hide the list with construction news.
    // First remove the style (which we use to hide it while loading), in case the jquery unhide() implementation changes.
    $("#result_description_container").removeAttr("style");
    // Then hide it again.
    $("#result_description_container").hide();

    // Rewrite multiple choice lists
    if ($('SELECT[multiple]').length) {
        $('#workTypes').coolMultiple();
        $('#provinces').coolMultiple();
    }

    $('.over-cobouw A').unbind('click');
    $('.over-cobouw A').click(function() {
        if ($(this).hasClass('no-active')) {
            $(this).removeClass('no-active');
            $(this).addClass('active');
            $(this).parent().children('DIV.over-text').stop(true, true).slideDown(200);
            $(this).parent('DIV').addClass('curr');
        } else if ($(this).hasClass('active')) {
            $(this).removeClass('active');
            $(this).addClass('no-active');
            $(this).parent().children('DIV.over-text').stop(true, true).slideUp(200);
            $(this).parent('DIV').removeClass('curr');
        }
    });

    //Add class to pager class when displaying search results.
    $('.resultaten .pager').addClass('pager-zoek');
    // Add tooltip text to lock symbol.
    $('.lock').addClass('tooltip');
})


function setMapDescription(resultAmount, province, city, description) {
    if (resultAmount == '') {
        resultAmount = '0';
    }
    $("#description_title").html('Vandaag ' + resultAmount + ' bouwberichten in ' + province);

    if (resultAmount == '' || resultAmount == '0' || description == '') {
        $("#result_description_container").hide();
    } else {
        $("#result_description_container").show();
        $("#result_description").html(description);
        $("#result_city").html(city);
    }
}

/*
 * Refreshes the image with the given id, avoiding the cache by adding a dummy (always unique) url parameter.
 * Used for the captcha.
 */
function refreshImageById(imageId) {
    captchaImg = document.getElementById(imageId);
    url = captchaImg.src.substring(0, captchaImg.src.indexOf('?') > 0 ? captchaImg.src.indexOf('?') : captchaImg.src.length);
    captchaImg.src = url + '?' + (new Date()).getTime()
}

/*
 * Loads a new video.
 */
function newVideo(videoTitle, videoSource) {
    document.getElementById('videoTitle').innerHTML = videoTitle;
    var new_scr = document.createElement('script');
    new_scr.src = videoSource;

}

function addUrlParameter(parameter, value) {
    var url = new String(document.location);
    alert(url);
    if (url.indexOf('?') > 0) {
        url = url + "&" + parameter + "=" + value;
    } else {
        url = url + "?" + parameter + "=" + value;
    }
    alert(url);
    document.location = url;
}

/*
 * Replace the background-image of the given element, with the image found in the given url.
 */
function replaceBgImage(elem, url) {
    elem.style.backgroundImage = "url('" + url + "')"
}

function replaceImage(elem, url) {
    elem.src = url;
}

function submitSortBy(sort){
    //default sort direction is desc
    var DESC_SORT_DIRECTION = "desc";
    var ASC_SORT_DIRECTION = "asc";

    // Set the default sorting direction
    if(sort == 'location'){
        //Default sorting direction for location is ascending
        var sortDirection = ASC_SORT_DIRECTION;
    } else {
        var sortDirection = DESC_SORT_DIRECTION;
    }

    
    var currentSortBy = document.getElementById("sortBy").value;
    // Same sortBy means toggle sortDirection
    if(currentSortBy == sort){
        var currentSortDirection = document.getElementById("sortDirection").value;
        if(currentSortDirection == DESC_SORT_DIRECTION){
            sortDirection = ASC_SORT_DIRECTION;
        } else {
        	if (currentSortDirection = ASC_SORT_DIRECTION) {
        		sortDirection = DESC_SORT_DIRECTION;
        	}
        }
    } else {
        document.getElementById("sortBy").value = sort;
    }
    document.getElementById("sortDirection").value = sortDirection;
    document.getElementById("paginatorForm").submit();
}

//function submitSortBy(sort) {
//    document.getElementById("sortBy").value = sort;
//    document.getElementById("paginatorForm").submit();
//}

function submitSortDirection(direction) {
    document.getElementById("sortDirection").value = direction;
    document.getElementById("paginatorForm").submit();
}

function submitPageNr(pageNr) {
    document.getElementById("pageNr").value = pageNr;
    document.getElementById("paginatorForm").submit();
}

/* This function is used for cleaning the input value, in case when the value of the input
 *  equals the text: "Vul een zoekterm in" */
function validateInput(elementId) {
    var inputElement = document.getElementById(elementId);
    if (inputElement != null) {
        if (inputElement.value == inputElement.title) {
            inputElement.value = '';
        }
    }
    return true;
}


/* setup the date picker for the four supplied id's (with # prepended) */
/* Obsoleted by updated code in main.js */
function setupDatePicker(picker, day, month, year, dateList, monthList, yearList, defaultDate) {
    // initialise the "Select date" link
    var myDatePick = $(picker)
            .datePicker(
            // associate the link with a date picker
            {
                createButton:false,
                startDate:'01/01/1950',
                endDate:'31/12/2025'

            }
    ).bind(
            // when the link is clicked display the date picker
            'click',
            function() {
                updateSelects($(this).dpGetSelected()[0]);
                $(this).dpDisplay();
                return false;

            }
    ).bind(
            // when a date is selected update the SELECTs
            'dateSelected',
            function(e, selectedDate, $td, state) {
                updateSelects(selectedDate);
            }
    ).bind(
            'dpClosed',
            function(e, selected) {
                updateSelects(selected[0]);
            }
    );

    var updateSelects = function (selectedDate) {
        var selectedDate = new Date(selectedDate);
        $(day + ' option[value=' + selectedDate.getDate() + ']').attr('selected', 'selected');
        $(month + ' option[value=' + (selectedDate.getMonth() + 1) + ']').attr('selected', 'selected');
        $(year + ' option[value=' + selectedDate.getFullYear() + ']').attr('selected', 'selected');

        $(dateList + ' SPAN.jquery-selectbox-currentItem').html(selectedDate.getDate());
        var mm = (selectedDate.getMonth() + 1);
        if (mm == 1) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('Januari');
        } else if (mm == 2) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('Februari');
        } else if (mm == 3) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('Maart');
        } else if (mm == 4) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('April');
        } else if (mm == 5) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('Mei');
        } else if (mm == 6) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('Juni');
        } else if (mm == 7) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('Juli');
        } else if (mm == 8) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('Augustus');
        } else if (mm == 9) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('September');
        } else if (mm == 10) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('Oktober');
        } else if (mm == 11) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('November');
        } else if (mm == 12) {
            $(monthList + ' SPAN.jquery-selectbox-currentItem').html('December');
        }
        $(yearList + ' SPAN.jquery-selectbox-currentItem').html(selectedDate.getFullYear());
    }

    // listen for when the selects are changed and update the picker
    $(day, month, year)
            .bind(
            'change',
            function() {
                var d = new Date(
                        $(year).val(),
                        $(month).val() - 1,
                        $(day).val()
                );
                $(picker).dpSetSelected(d.asString());

            }
    );

    updateSelects(defaultDate);

    // and update the datePicker to reflect it...
    $(day).trigger('change');
}
/*
 * Function to enable/disable the van and tot fields
 * when a periode is selected in uitgebreid zoeken.
 */
function updateFields(selobject) {
    if ($(selobject).val() == 'Anders') {
        $("#van1").attr("disabled", false);
        $("#tot1").attr("disabled", false);
    }
    else {
        $("#van1").attr("disabled", true);
        $("#tot1").attr("disabled", true);
    }
}

function autoComplete(elementId, url) {
    jQuery('#' + elementId).autocomplete(url);
}

/**
 * Used to clear default value from input fields.
 * @param fieldId
 */
function clearField(fieldId) {
    if ($('#' + fieldId).val() == $('#' + fieldId).attr('title')) {
        $('#' + fieldId).val('');
    }
}

/*
 * Clear the default values from the tender(result) search form.
 */
function clearTenderSearchForm() {
    clearField('searchStr');
    clearField('fromPublicationDate');
    clearField('toPublicationDate');
    clearField('fromTenderDate');
    clearField('toTenderDate');
    clearField('fromZipCode');
    clearField('toZipCode');
    clearField('city');
}

function setCheckboxes(checked, cssClazz) {
    if (checked == false) {
        $('.' + cssClazz + ':checked').attr('checked', false);
    } else {
        $('.' + cssClazz + ':not(:checked)').attr('checked', true);
    }
}
function setHiddenCheckboxValue(inputName) {
    var test = 'input[name=' + inputName + ']';
    var checked = $(test).is(':checked');

    if (checked == false) {
        $('input[name=hiddencheckbox]').val('false');
    } else {
        $('input[name=hiddencheckbox]').val('true');
    }
}


function submitForm(elem) {
    $(elem).closest('form').submit();
}


	
	
