﻿var subPagesUser = new Array();
subPagesUser[""] = "start.aspx"; // default page
subPagesUser["whyadmine.aspx"] = "howitworks.aspx";
subPagesUser["terms.aspx"] = "howitworks.aspx";
subPagesUser["profile.aspx"] = "myaccount.aspx";
subPagesUser["getpaid.aspx"] = "myaccount.aspx";
subPagesUser["refine.aspx"] = "interests.aspx";
subPagesUser["subscriptions.aspx"] = "interests.aspx";
subPagesUser["viewmyads_viewed.aspx"] = "viewmyads_imageview.aspx";
subPagesUser["viewmyads_deleted.aspx"] = "viewmyads_imageview.aspx";

var subPagesAdv = new Array();
subPagesAdv["terms.aspx"] = "faq.aspx";
subPagesAdv["linkingpolicy.aspx"] = "faq.aspx";
subPagesAdv["createad2.aspx"] = "createad.aspx";
subPagesAdv["createad3.aspx"] = "createad.aspx";
subPagesAdv["createad4.aspx"] = "createad.aspx";
subPagesAdv["advprofile.aspx"] = "account.aspx";
subPagesAdv["editpage.aspx"] = "account.aspx";


function documentReady() {
    SetupIETextShadow();

    var enterTimeout, leaveTimeout, loginLeaveTimeout;

    // Determine current page
    var pathname = window.location.pathname;
    pathname = pathname.substring(pathname.lastIndexOf('/') + 1).toLowerCase();

    // Determine which subpages to use        
    var isAdvPages = (window.location.pathname.indexOf('/a/') != -1);
    var subPages = (isAdvPages) ? subPagesAdv : subPagesUser;
    if (window.location.pathname.indexOf('/f/') != -1)
        subPages = new Array();

    // Sub-pages
    var subPage = subPages[pathname];
    if (subPage)
        pathname = subPage;

    // Select top menu item
    $('#navbar > li > a[href=' + pathname + ']').parent().addClass("selected");

    SetupCheckboxes();
    SetupDropDowns();
    SetupFileInputs();
    SetupCallOuts();
    SetupMessageHiding();
    SetupCopyOnlyTextBoxes();
    SetupTags();
}

function SetupIETextShadow() {
    if (!$.browser.msie)
        return;

    $(".shadow, .sub-nav-bar h1, .sub-nav-bar a, .page-title").each(function (index, obj) {
        var span = document.createElement("span");
        span.setAttribute("class", "back");
        span.innerHTML = obj.innerHTML;
        $(obj).append(span);
    });
}

function SetupCheckboxes() {
    // Add code to checkboxes to help styling (HACK because IE doesn't support ":checked")
    $('input[type=checkbox]').click(function () {
        if (this.checked) {
            $(this).next().addClass('checked');
            $(this).next().removeClass('unchecked');
        }
        else {
            $(this).next().addClass('unchecked');
            $(this).next().removeClass('checked');
        }
    });
}

function SetupDropDowns() {
    $("select").each(function (index, obj)
    {
        // Ignore listboxes
        if ($(obj).attr('size'))
            return;

        // Hide original select
        var style = obj.getAttribute("style");
        $(obj).hide();

        // Create new list for styling
        var ul = document.createElement("ul");
        ul.setAttribute("style", style);
        $(ul).addClass("dropdown");
        var opts = obj.options;
        for (var i = 0; i < opts.length; ++i)
        {
            // Create list item
            var li = document.createElement("li");
            li.appendChild(document.createTextNode(opts[i].text));
            li.selectID = obj.id;
            li.selIndex = opts[i].index;
            li.onclick = function () { OnDropDownClick(this); }

            // Add classes
            if (i == 0)
                $(li).addClass("top");
            else if (i == opts.length - 1)
                $(li).addClass("bottom");
            if (opts[i].selected)
                $(li).addClass("selected");

            // Support hover in IE
            if (window.attachEvent)
            {
                li.onmouseover = function () { this.className += " hover"; }
                li.onmouseout = function () { this.className = this.className.replace(new RegExp(" hover\\b"), ""); }
            }

            // Add item to list
            ul.appendChild(li);
        }

        // Wrap new drop-down in div and add after the old
        var div = document.createElement("div");
        $(div).addClass("dropdown-container");
        div.setAttribute("style", style);
        div.appendChild(ul);
        $(obj).after(div);
    });
}

function OnDropDownClick(obj) {
    $(obj).parent().toggleClass("dropdown-open");
    $(obj).parent().children().removeClass("selected");
    $(obj).addClass("selected");

    // Select actual item
    var actual = document.getElementById(obj.selectID);
    if (actual.selectedIndex != obj.selIndex)
    {
        actual.selectedIndex = obj.selIndex;
        $(actual).change();
    }
}

function SetupFileInputs() {
    $("input[type=file]").each(function (index, obj) {
        var div = document.createElement("div");
        div.setAttribute("class", "file-input");
        div.setAttribute("style", obj.getAttribute("style"));
        $(obj).before(div);
        div.appendChild(obj);

        obj.removeAttribute("style");
        obj.setAttribute("onchange", "$(this).parent().children('input')[1].value = this.value.split(/[\\\\/]/).pop(); $('#' + this.getAttribute('onchoosefile')).click();");

        var text = document.createElement("input");
        text.setAttribute("type", "text");
        text.setAttribute("disabled", "disabled");
        text.setAttribute("value", (obj.getAttribute("filename")) ? obj.getAttribute("filename") : "");
        text.style.width = div.style.width;
        div.style.width = "auto";
        div.appendChild(text);

        var button = document.createElement("input");
        button.setAttribute("type", "button");
        button.setAttribute("value", "browse");
        div.appendChild(button);
    });
}

function SetupCallOuts() {
    $(".show-call-out").each(function (index, obj) {
        var span = document.createElement("span");
        span.setAttribute("class", "call-out");
        $(obj).before(span);
        span.appendChild(obj);
        $(span).prepend($(span).prev("css3-container"));

        obj.setAttribute("onMouseOver", "$(this).nextAll('span').addClass('hover');");
        obj.setAttribute("onMouseOut", "$(this).nextAll('span').removeClass('hover');");

        var text = document.createElement("span");
        text.innerHTML = obj.getAttribute("callout");
        span.appendChild(text);
    });
}

function SetupMessageHiding() {
    $("input[type=text], input[type=password], textarea").each(function (index, obj) {
        $(obj).keyup(function () {
            $("span[controltovalidate=" + this.getAttribute("id") + "]").hide();
            $(this).nextAll('.message').first().hide();
        });
    });
}

function SetupCopyOnlyTextBoxes()
{
    $('input[copyonly=true]').each(function (index, obj)
    {
        obj.setAttribute("original", obj.value);

        var reset = function () { this.value = this.getAttribute('original'); this.select(); };
        $(obj).keyup(reset);
        $(obj).click(reset);
    });
}

function SetupTags()
{
    var ShowMenu = function ()
    {
        if (!$(this).hasClass("selected"))
        {
            $(".tags li").removeClass("selected");
            $(this).addClass("selected").removeClass("above");
            var menu = this.getElementsByTagName("div")[0];

            // Move to top if not enough room
            if ($(document).scrollTop() + $(window).height() < $(menu).offset().top + $(menu).height())
                $(this).addClass("above");
        }

        return false;
    };
    $('.tags li').click(ShowMenu).mouseenter(ShowMenu);

    $(document.body).click(function (event)
    {
        // Ignore button clicks
        if (event.target.getAttribute("type") == "submit")
            return;

        $(".tags li").removeClass("selected");
    });

    $('.tags li div').click(function (event)
    {
        if (typeof OnTagChange == 'function')
        {
            var x = event.pageX - $(this).offset().left;
            var mid = $(this).width() / 2;
            var id = this.parentNode.getAttribute("value");

            if (x < mid) // Check
                $(".tags li[value=" + id + "]").removeClass("dislike").toggleClass("like");
            else // X
                $(".tags li[value=" + id + "]").removeClass("like").toggleClass("dislike");

            // Call local function
            var like = ($(this).parent().hasClass("like")) ? 1 : 0;
            var dislike = ($(this).parent().hasClass("dislike")) ? -1 : 0;
            OnTagChange(id, (like + dislike));

            $(".tags li").removeClass("selected");
        }

        return false;
    });
}

function FlashAdClick(userId, adId, url) {
    AdClick(userId, adId, false);
    window.open(url, '_blank');
}

function AdClick(userId, adId, view, aEvent) {
    if (view)
        EndUserWebService.ViewAndClickAd(userId, adId, null, null, null);
    else
        EndUserWebService.ClickAd(userId, adId, null, null, null);

    // Delayed refresh of page
    setTimeout("window.location.reload()", 2000);
}

function testEnterKey(aEvent) {
    if (aEvent.keyCode == 13) {
        document.getElementById('<%= btnLogin.ClientID %>').click();
    }
}

function LimitTextBox(textBox, maxLength, display) {
    var length = textBox.value.length;
    if (length > maxLength) {
        textBox.value = textBox.value.substring(0, maxLength);
        length = maxLength;
    }

    document.getElementById(display).innerHTML = (maxLength - length) + " characters left";
}

