//Main settings
var garantenDomain = 'http://lantmannen.se';
var garantenBaseUrl = garantenDomain + '/{lang}lantmannen-se/Garanten2/';
var garantenFileBaseUrl = garantenDomain + '/Web/Lantmannen-se/Garanten2/';
var searchSite = "http://www.lantmannen.se/sv/sok";
var garantenIsOpen = false;
var garantenOpenUrl = '';
var garantenLang = '';

// Search Settigs
google.load('search', '1');
var customWebSearch;
var customWebSearchAll;
var itemCount = 4;
var searchResultCount = 0;
var query;
var garantenPreShortUrl;

//Coordinates
var left;
var right;

//IE6 adjustments
var searchHTML;
var columnHTML;


// jQuery no conflict
if (typeof garantenUseNoConflictJQuery != 'undefined' && garantenUseNoConflictJQuery) {
    garantenJq13 = jQuery.noConflict(true);
}
else {
    garantenJq13 = jQuery;
}

// CSS
document.writeln('<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />');
document.writeln('<meta http-equiv="Content-Style-Type" content="text/css" />');
//document.writeln('<link type="text/css" rel="stylesheet" href="' + garantenFileBaseUrl + 'styles/garantMain.css" />');
document.writeln('<style type="text/css"> @import url("' + garantenFileBaseUrl + 'styles/garantMain.css");</style>');

document.writeln('<!--[if lte IE 6]>');
document.writeln('<script type="text/javascript" src="' + garantenFileBaseUrl + 'scripts/DD_belatedPNG.js"></script>');
//document.writeln('<link type="text/css" rel="stylesheet" href="' + garantenFileBaseUrl + 'styles/garantIE6.css" />');
document.writeln('<style type="text/css"> @import url("' + garantenFileBaseUrl + 'styles/garantIE6.css");</style>');
document.writeln('<![endif]-->');

if (typeof garantenMenu != 'undefined') {
    document.writeln('<style type="text/css"> @import url("' + garantenFileBaseUrl + 'styles/' + garantenMenu + '.css");</style>');
}


if ((typeof garantenUseNoConflictJQuery != 'undefined' && garantenUseNoConflictJQuery)
        || (typeof garantenMenu != 'undefined' && garantenMenu == 'unibake-se')) // Hack for unibake
{
    document.writeln('<!--[if IE]>');
    document.writeln('<style type="text/css"> @import url("' + garantenFileBaseUrl + 'styles/quirksModeIE.css");</style>');
    document.writeln('<![endif]-->');

    document.writeln('<!--[if lte IE 6]>');
    document.writeln('<style type="text/css"> @import url("' + garantenFileBaseUrl + 'styles/quirksModeIE6.css");</style>');
    document.writeln('<![endif]-->');

    document.writeln('<style type="text/css"> @import url("' + garantenFileBaseUrl + 'styles/quirksMode.css");</style>');
}

// When document is ready, run garantenStart
document.writeln('<script type="text/javascript">garantenJq13(function() { garantenStart(); })</script>');

// Adds garanten to the body of the page. The menu to show can be set using the variable 'garantenMenu'. Default is 'lantmannen-se'
function garantenStart() {
    garantenJq13('body').prepend('<div id="garantenMain"></div>');
    // Default menu is lantmannen-se
    var menu = 'lantmannen-se';
    if (typeof garantenMenu != 'undefined')
        menu = garantenMenu;
    garantenLang = new String(readCookie('garantLang'));
    garantenJq13.getJSON(garantenBaseUrl.replace('{lang}', garantenLang.length > 0 && garantenLang != 'null' ? garantenLang + '/' : '') + menu + '/?json=true' + "&callback=?",
        function(data) {
            garantenJq13('#garantenMain').html(data.body);
            garantenJq13('#garantenMain').fadeIn('slow');

            searchHTML = garantenJq13('#garantContentContainer').html();

            left = garantenJq13('#garantContent').attr('offsetLeft');
            right = left + garantenJq13('#garantContent').width();

			document.getElementsByClassName=function(D){var F=new Array();var E=document.getElementsByTagName("*");for(var B=0;B<E.length;B++){if(E[B].className.indexOf(" ")>=0){var C=E[B].className.split(" ");for(var A=0;A<C.length;A++){if(C[A]==D){F.push(E[B])}}}else{if(E[B].className==D){F.push(E[B])}}}return F};function sfHover(){var B=document.getElementsByClassName("ie6hover");for(var A=0;A<B.length;A++){B[A].onmouseover=function(){this.className+=" hover"};B[A].onmouseout=function(){this.className=this.className.replace(new RegExp(" hover\\b"),"")}}}if(window.attachEvent){window.attachEvent("onload",sfHover)};
        });
        
    garantenJq13(document).click(function() {
        if (garantenIsOpen) {
            if (e.pageX > left && e.pageX < right)
                e.stopPropagation();
            else if (e.pageY < 270)
                e.stopPropagation();
            else
                garantenHide();
        }
    });
    garantenJq13('#garantenMain').click(function(e) {
        if (e.pageX > left && e.pageX < right)
            e.stopPropagation();
    });
}

// Fired when the user clicks an entry in the garanten menu
function garantenShowMenu(jsonUrl, contentClass) {
    if (garantenIsOpen && jsonUrl == garantenOpenUrl) {
        garantenHide();
        return;
    }
    if (jsonUrl == garantenOpenUrl) {
        garantenIsOpen = true;
        garantenShow();
        return;
    }
    garantenJq13.getJSON(garantenDomain + jsonUrl + "&callback=?", function(data) {
        columnHTML = data.body;
//        columnHTML = data.body.replace(/(<a.*?href=")(\/.*?)"/gi, "$1http://www.lantmannen.se$2\"")
        garantenOpenUrl = jsonUrl;
        garantenShow();
    });
}
// Hide garanten content area
function garantenHide() {
    garantenIsOpen = false;
    var garanten = garantenJq13('#garantContent');
    garanten.slideUp('slow', function() {
        garantenJq13('#garantContentContainer').html('');
        garanten.height(0);
    });
    return;
}
function garantenShow(whatToShow) {
    garantenJq13('#garantContent').animate({"height": 310}, 1000);
    
    if (whatToShow == 'search') {
        garantenJq13('#garantContentContainer').show();
    }
    else {
        query = '';
        garantenJq13('#garantContentContainer').html(columnHTML);
        garantenJq13('#garantContentContainer').show();
    }
    garantenJq13('#garantContent').slideDown('slow');
    garantenIsOpen = true;
}

// To switch language
function changeLanguage(lang) {
    if (garantenLang == lang)
        return;

    if (readCookie('garantLang'))
        eraseCookie('garantLang');
    createCookie('garantLang', lang, 30);

    var locationStr = new String(window.location);
    if (locationStr.lastIndexOf('#') > -1)
        window.location = locationStr.substr(0, locationStr.lastIndexOf('#'));
    else {
        window.location = locationStr;
    }
}
// Do the search
function doSearch() {
    if (query == garantenJq13('[id$=_garantenSearchInput]').val() && garantenIsOpen)
        return;
        
    garantenJq13('#garantContentContainer').html(searchHTML);
    query = garantenJq13('[id$=_garantenSearchInput]').val();
    
    var returnUrl = document.location;
    returnUrl = "http://" + returnUrl.host + returnUrl.pathname;
    
    var searchMoreUrl = searchSite + encodeURI("?q=" + query + "&u=" + returnUrl);
    //'http://www.google.com/cse?oe=utf8&ie=utf8&source=uds&cx=016542627260287618091%3Abexnvi1_szm&hl=sv&q=' + query;
    garantenJq13('#garantSR1More').attr('href', searchMoreUrl + '&d=' + window.location.hostname);
    garantenJq13('#garantSR2More').attr('href', searchMoreUrl);

    // Do domain search
    customWebSearch = new google.search.WebSearch();
    //customWebSearch.setSiteRestriction(window.location.hostname);
    customWebSearch.setSiteRestriction('lantmannen.se');
    customWebSearch.setSearchCompleteCallback(this, onSearchComplete, null);
    customWebSearch.execute(query);

    // Search all domains
    customWebSearchAll = new google.search.WebSearch();
    customWebSearchAll.setSiteRestriction('016542627260287618091:bexnvi1_szm');
    customWebSearchAll.setSearchCompleteCallback(this, onSearchCompleteAll, null);
    customWebSearchAll.execute(query);
}

//Searches current domain. Formats the results, and prints it
function onSearchCompleteAll() {
    garantenJq13('[id$=noSearchResults2]').hide();
    garantenJq13('#garantSR2More').hide();
    garantenJq13('#garantSR2').html('');
    if (customWebSearchAll.results && customWebSearchAll.results.length > 0) {
        var results = customWebSearchAll.results;
        var itemLength = itemCount;
        if (results.length < itemLength) {
            itemLength = results.length;
            garantenJq13('#garantSR2More').hide();
        }
        else
            garantenJq13('#garantSR2More').show();

        var searchResults = '';
        for (var i = 0; i < itemLength; i++) {
            var result = results[i];
            searchResults += createSearchItem(result);
        }
        garantenJq13('#garantSR2').html(searchResults);
    }
    else {
        garantenJq13('[id$=noSearchResults2]').show();
        garantenJq13('#garantSR2More').hide();
    }
    garantenShow('search');
    garantenOpenUrl = garantenBaseUrl;
}

//Searches all domains. Formats the results, and prints it
function onSearchComplete() {
    garantenJq13('[id$=noSearchResults1]').hide();
    garantenJq13('#garantSR1').html('');
    garantenJq13('#garantSR1More').hide();
    if (customWebSearch.results && customWebSearch.results.length > 0) {
        var results = customWebSearch.results;
        var itemLength = itemCount;
        if (results.length < itemLength) {
            itemLength = results.length;
            garantenJq13('#garantSR1More').hide();
        }
        else
            garantenJq13('#garantSR1More').show();

        var searchResults = '';
        for (var i = 0; i < itemLength; i++) {
            var result = results[i];
            searchResults += createSearchItem(result);
        }
        garantenJq13('#garantSR1').html(searchResults);
    }
    else {
        garantenJq13('[id$=noSearchResults1]').show();
        garantenJq13('#garantSR1More').hide();
    }
    
}

//Helper method to create a part of a search result
function createSearchItem(result) {
    var resultString = '<div class="garantSearchItem"><a href="' + result.url + '">' + result.titleNoFormatting + '</a>';
    resultString += '<p>' + result.content + '</p><span>' + garantenPreShortUrl + '</span><a class="garantSearchUrl" href="http://' + result.visibleUrl + '">' + result.visibleUrl + '</a></div>';
    return resultString;
}

// Cookie handling
function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return '';
}
function eraseCookie(name) {
    createCookie(name, "", -1);
}