﻿google.load('search', '1');

function DemoSearch() {
    $('#search').val('Scorpions - Hour One');
    Search();
};

function xtractFile(data) {
    data = data.replace(/^\s|\s$/g, "");
    if (data.match(/([^\/\\]+)\.(jpg|png|jpeg|gif)$/i))
        return { filename: RegExp.$1, ext: RegExp.$2 };
    else
        return { filename: null, ext: null };
}
function isSquare(result) {
    return (Math.abs(result.width / result.height - 1) < 0.1)
}

var imageSearch, fi = [], n=4, c=0;
function WriteResults() {
    if (fi.length > 0) {
        for (var i = 0; i < fi.length; i++) {
            result = fi[i];
            var filename = result.url;
            var name = xtractFile(filename).filename;
            var ext = xtractFile(filename).ext;
            var item = $('<a href="/images/' +
                result.unescapedUrl.replace('http://', '') +
                '/' + $('#search').val() + '.' +
                ext + '" class="c"><img src="' + result.tbUrl + '" alt="' +
                result.ContentNoFormatting + '"><i>' +
                result.width + 'x' + result.height + '</i></a>');
            $('#SearchResults').append(item);
        }
    } else AlertNothingFound();
}
function AlertNothingFound() {
    var item = "<span>Ничего не найдено.</span>";
    $('#SearchResults').html(item);
}
function searchComplete() {
    if (imageSearch.results && imageSearch.results.length > 0) {
        var results = imageSearch.results;
        for (var i = 0; i < results.length; i++) {
            var result = results[i];
            var filename = result.titleNoFormatting;
            var name = xtractFile(filename).filename;
            var ext = xtractFile(filename).ext;

            //if (isSquare(result))
            //if ((name != null) && (ext != null)) 
                fi[fi.length] = result;
           
        }
    }
    if (imageSearch.results.length < 8) {
        AlertNothingFound();
    }
    else if ((fi.length > 6) || (c > n)) {
        WriteResults();
    } else {
        c++;
       
        imageSearch.gotoPage(c);
    }
    $('#search').focus();
}
function OnLoad() {
    if (!/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
        $('body').append($('<iframe id="imgIframe"></iframe>'));
        $('#SearchResults a.c').live('click', function(e) {
            e.preventDefault();
            $('#Info').remove();
            $('#imgIframe').attr('src', $(this).attr('href'));
            $('#search').focus();
        });
    }
    imageSearch = new google.search.ImageSearch();
    imageSearch.setResultSetSize(google.search.Search.LARGE_RESULTSET);
    imageSearch.setSearchCompleteCallback(this, searchComplete, null);
    
    $('#search').handleEnter(Search);
    if ($('#search').val().length) Search();
    $('#search')
        .focus()
        .after(
            $('<input type="button" id="x" />')
            .click(function() {
                $('#search').val('').focus();
                $('#SearchResults').html('');
                $("#x").hide();
            }))
        .keyup(function() {
            if ($(this).val().length > 0) {
                $("#x").show();
            } else {
                $("#x").hide();
            }

    });
}
google.setOnLoadCallback(OnLoad);

function Search() {
    c = 0;
    fi = [];
    $('#SearchResults').html('');
    imageSearch.execute($('#search').val());
}
(function($) {
    $.fn.handleEnter = function(callback) {
        $(this)
        .unbind('keypress')
        .keypress(function(e) {
            if (e.which == 13) {
                callback.call();
                return false;
            };
        });
    };

})(jQuery);

function ShowFileNotExists(fileurl) {
    $('#SearchResults').prepend('<div id="Info">The resource file no longer exists :(</div>');
    $('#Info').fadeIn();
    $("#SearchResults a[href*='" + fileurl + "']").addClass('inactive');
    setTimeout("$('#Info').fadeOut()", 5000);
};

