﻿/// <reference path="jquery-1.5.2-vsdoc.js" />
// kell eltűntetni az alkuszok listáján a gonbot
// kell az alkuszok listáján ajaxhívást csinálni, utána becsukni.

$(document).ready(function () {

    //    $('a').each(function () {
    //        var a = new RegExp('/' + window.location.host + '/');
    //        if (!a.test(this.href)) {
    //            $(this).click(function (event) {
    //                event.preventDefault();
    //                event.stopPropagation();
    //                window.open(this.href, '_blank');
    //            });
    //        }
    //	    });
    //    this.blankwin = function(){
    //	    var hostname = window.location.hostname;
    //	    hostname = hostname.replace("www.","").toLowerCase();
    //	    var a = document.getElementsByTagName("a");	
    //	    this.check = function(obj){
    //		    var href = obj.href.toLowerCase();
    //		    return (href.indexOf("http://")!=-1 && href.indexOf(hostname)==-1) ? true : false;				
    //	    };
    //	    this.set = function(obj){
    //		    obj.target = "_blank";
    //		    obj.className = "external";
    //	    };	
    //	    for (var i=0;i<a.length;i++){
    //		    if(check(a[i])) set(a[i]);
    //	    };		
    //    };

    $(".toggleplus").click(function () {
        $(this).parent().children("span").toggle();
    });

    $(".ismember").change(function () {
        if ($(".ismember:checked").length > 0) {
            $(".hidden-from-members").hide();
        } else {
            $(".hidden-from-members").show();
        }
    });

    function handleExternalLinks() { // function makes sure that external links open in new window
        var hostName = window.location.hostname;
        var links = document.getElementsByTagName("a");
        for (var i = 0; i < links.length; i++) {
            if (links[i].href.indexOf(hostName) == -1 && (links[i].href.toLowerCase().indexOf("http://") != -1 || links[i].href.toLowerCase().indexOf("https://") != -1)) {
                var curTitle = (links[i].getAttribute("title")) ? links[i].getAttribute("title") + " - " : "";
                links[i].setAttribute("target", "_blank");
                links[i].setAttribute("title", curTitle + "opens in new window");
            }
        }
    }
    handleExternalLinks(); // Call the function

    if (!supports_input_placeholder()) {
        $("input:text").placeholder();
    }

    var brokercartremovebuttons = $(".cartform > input");

    brokercartremovebuttons.live("click", function (event) {
        event.preventDefault();
        clickCartItem($(this));
    });

    var simplebrokeraddbuttons = $(".simplebrokeritem > input");

    simplebrokeraddbuttons.live("click", function (event) {
        event.preventDefault();
        clickSimpleBrokerSelectorItem($(this));
    });

    var brokerlistaddbuttons = $(".brokeritem > input");

    brokerlistaddbuttons.live("click", function (event) {
        event.preventDefault();
        clickBrokerListItem($(this));
    });

    $("#countyselect").live("change", function (event) {
        var countyVal = $("#countyselect option:selected").val();
        var activityVal = $("#activityselect option:selected").val();
        Filter(countyVal, activityVal);
    });

    $("#activityselect").live("change", function (event) {
        var countyVal = $("#countyselect option:selected").val();
        var activityVal = $("#activityselect option:selected").val();
        Filter(countyVal, activityVal);
    });

    $('#TypeID').change(function () {
        if ($('#TypeID option:selected').attr("value") == 1809) {
            $('#brokercontact').css("display", "block");
        } else {
            $('#brokercontact').css("display", "none");
        }
    });

    $(".detailsform > input").live("click", function (event) {
        event.preventDefault();
        clickLoadDetails($(this));
    });

    $('.tipsy-tooltip').tipsy({
        gravity: 'w',
        fade: true
    });
});

//input placeholder support
function supports_input_placeholder() {
    var i = document.createElement('input');
    return 'placeholder' in i;
}



//ha nincs beállítva a removeurl akkor nem fog menni!
function clickCartItem(elem) {
    var id = elem.parents("[data-object-id]").attr("data-object-id");
    $.ajax({
        type: "POST",
        url: removeurl,
        data: "id=" + id,
        async: false,
        success: function (msg) {
            if (msg != "FAIL") {
                RemoveFromCart(elem);
                Unhide(id);
                Enable(id);
            }
        }
    });
}

//brokerdetailsurl nélkül nem fog működni
function clickLoadDetails(elem) {
    var dataopened = elem.attr("data-opened");
    var detailsholder = elem.parents("[data-object-id]").find(".details-holder");

    if (dataopened == "false") {
        if (detailsholder.attr("data-details-loaded") == "false") {
            $.ajax({
                type: "POST",
                url: brokerdetailsurl,
                data: "id=" + elem.parents("[data-object-id]").attr("data-object-id"),
                async: false,
                success: function (msg) {
                    if (msg != "FAIL") {
                        detailsholder.append(msg);
                        detailsholder.css("display", "block");
                        detailsholder.attr("data-details-loaded", "true");
                        elem.attr("data-opened", "true");
                    }
                }
            });
        }
        else {
            detailsholder.css("display", "block");
            elem.attr("data-opened", "true");
        }
    }
    else {
        detailsholder.css("display", "none");
        elem.attr("data-opened", "false");
    }
}

//addurl nélkül nem fog működni
function clickSimpleBrokerSelectorItem(elem) {
    var id = elem.parents("[data-object-id]").attr("data-object-id");
    $.ajax({
        type: "POST",
        url: addurl,
        data: "id=" + id,
        async: false,
        success: function (msg) {
            if (msg != "FAIL") {
                AddToCart(msg);
                //elem.parents("[data-hideable]").attr("data-object-id")
                Hide(id);
            } else {
                //alert("fail");
            }
        }
    });
}

//addurl és removeurl nélkül nem fog működni
function clickBrokerListItem(elem) {
    var incart = elem.siblings('[name="incart"]').attr("value") == "true" ? true : false;
    var id = elem.parents("[data-object-id]").attr("data-object-id");
    if (!incart) {
        $.ajax({
            type: "POST",
            url: addurl,
            data: "id=" + id,
            async: false,
            success: function (msg) {
                if (msg != "FAIL") {
                    AddToCart(msg);
                    SwitchAttributes(elem, "data-alternate-value", "value");
                    elem.siblings('[name="incart"]').attr("value", "true");
                } else {
                    //alert("fail");
                }
            }
        });
    } else {
        $.ajax({
            type: "POST",
            url: removeurl,
            data: "id=" + id,
            async: false,
            success: function (msg) {
                if (msg != "FAIL") {
                    $('ul > li[data-object-id="' + id + '"]').remove();
                    //alert($('ul > li[data-object-id="' + id + '"]').length);
                    SwitchAttributes(elem, "data-alternate-value", "value");
                    elem.siblings('[name="incart"]').attr("value", "false");
                } else {
                    //alert("fail");
                }
            }
        });
    }
}

function AddToCart(msg) {
    $(".brokercart").append(msg);
}

function RemoveFromCart(elem) {
    elem.parent().parent().remove();
}

function Unhide(id) {
    $(".brokerselect > li[data-object-id=\"" + id + "\"]").css("display", "block");
}

function Hide(id) {
    $(".brokerselect > li[data-object-id=\"" + id + "\"]").css("display", "none");
}

function Enable(id) {
    $('.brokerlistitem[data-object-id="' + id + '"]').find('form.brokeritem > input[name="incart"]').attr("value", "false");
    SwitchAttributes($('.brokerlistitem[data-object-id="' + id + '"]').find('form.brokeritem > input[type="submit"]'), "data-alternate-value", "value");
}

function Filter(countyVal, activityVal) {
    $.ajax({
        type: "POST",
        url: filterurl,
        data: "currenturl=" + currenturl + (countyVal == -1 ? "" : "&county=" + countyVal) + (activityVal == -1 ? "" : "&activity=" + activityVal),
        async: false,
        success: function (msg) {
            if (msg != "FAIL") {
                $(".simplebrokerlistroot").children().remove();
                $(".simplebrokerlistroot").append(msg);
            } else {
                //alert("fail");
            }
        }
    });
}


function SwitchAttributes(elem, attr1, attr2) {
    var tmp = elem.attr(attr1);
    elem.attr(attr1, elem.attr(attr2));
    elem.attr(attr2, tmp);
}
