﻿var hasScrolled = false;
String.join = function(delimiter)
{
    if (arguments.length < 2)
        return null;

    var str = "";

    for (var i = 1; i < arguments.length; ++i)
    {
        if (arguments[i] != null)
            str += arguments[i];

        if (i + 1 != arguments.length)
            str += delimiter;
    }

    return str;
}

String.isNullOrEmpty = function(str)
{
    return str == null || str == '';
}

var Persister = {
    searchKey: {
        _value: null,
        set: function(value)
        {
            Persister.searchKey._value = value;
            Persister.persist();
        },
        get: function()
        {
            Persister.searchKey._value = Persister.getNthArgument(0);
            return Persister.searchKey._value;
        }
    },
    pageOffset: {
        _value: null,
        set: function(value)
        {
            Persister.pageOffset._value = value;
            Persister.persist();
        },
        get: function()
        {
            Persister.pageOffset._value = Persister.getNthArgument(1);
            return Persister.pageOffset._value;
        }
    },
    persist: function()
    {
        var persistString = String.join("¤", Persister.searchKey._value, Persister.pageOffset._value);
        location.href = "#" + persistString;
    },
    getNthArgument: function(index)
    {
		var hashIndex = location.href.indexOf('#');
        if (hashIndex < 0)
            return null;
        var hash = location.hash.substring(1);
        return hash.split('¤')[index];
    }
};

$(document).ready(function()
{
    $("#ControlResult_resultsDiv").click(function(event)
    {
		//if (window.pageYOffset) //for mozilla
		//debugger;
		var offset = f_scrollTop();
		Persister.pageOffset.set(offset);
		//alert('offset = ' + offset);
		//else //for ie
		//Persister.pageOffset.set(window.screenTop);
		
		
    });
});


function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
