﻿
var images = ['jpg', 'png', 'bmp', 'gif'];
var archives = ['zip'];

$(document).ready(function() {
    $(".panel_drop").click(function(event) {
        var divid = $(this).attr('childContent');
        var divname = "div#" + divid;
        $(this).panelShowHide(divname);
        event.preventDefault();
    });

    /*$("a.toolboxArgumentButton").click(function(event) {
    var postbackValue = $(this).attr('PostbackArgument');
    $(this).setUniversalPostbackVariable(postbackValue);
    });*/

    $("a[PostbackArgument]").click(function(event) {
        var postbackValue = $(this).attr('PostbackArgument');
        $(this).setUniversalPostbackVariable(postbackValue);
    });

    $("a[Check]").click(function(event) {
        var toCheck = $(this).attr('Check');
        var filter = "input[" + toCheck + "]";
        skip = false;
        $(filter).each(function() {
            var type = $(this).attr(toCheck);
            var extension = $(this).attr('value');
            if ((extension != null) && (extension != '')) {
                var innerSkip = true;
                var dot = extension.lastIndexOf(".");
                extension = extension.substring(dot + 1, extension.length).toLowerCase();
                if (type == "image") {
                    for (var i = 0; i < images.length; i++) {
                        if (images[i] == extension) {
                            innerSkip = false;
                            break;
                        }
                    }
                    if (innerSkip) alert($(this).attr('Warning'));
                } else if (type == "archive") {
                    for (var i = 0; i < archives.length; i++) {
                        if (archives[i] == extension) {
                            innerSkip = false;
                            break;
                        }
                    }
                    if (innerSkip) alert($(this).attr('Warning'));
                }
                if (innerSkip) {
                    skip = true;
                }
            }

        });
        if (skip) {
            event.preventDefault();
        }
    });

    $("fieldset.OpenClose legend").click(function(event) {
        var contentElement = $(this).next(":first");
        if ($(contentElement).is(':visible')) {
            $(contentElement).animate({ height: 'hide', opacity: 'hide' }, 'fast');
        } else {
            $(contentElement).animate({ height: 'show', opacity: 'show' }, 'fast');
        }
    });

    $("span.OpenClose").click(function(event) {
        var divid = $(this).attr('childContent');
        var divname = "div#" + divid;
        var divParent = $(this).parents(":first");
        if ($(divname).is(':visible')) {
            //$(this).parents("div.content_header").css("background-image", "url(images/arrowRight.gif)");
            if ($(divParent).hasClass('opened')) {
                $(divParent).removeClass('opened');
            }
            $(divParent).addClass('closed');
            $(divname).animate({ height: 'hide', opacity: 'hide' }, 'fast');
        } else {
            //$(this).parents("div.content_header").css("background-image", "url(images/arrowDown.gif)");
            if ($(divParent).hasClass('closed')) {
                $(divParent).removeClass('closed');
            }
            $(divParent).addClass('opened');
            $(divname).animate({ height: 'show', opacity: 'show' }, 'fast');
        }
        event.preventDefault();
    });

    $("a.toolboxButtonWithJSPostback").click(function(event) {
        //$(this).postPhotogalleryList();
        var listname = $(this).attr('listName');
        var listID = $(this).attr('listID');
        var postValue = $(this).getSelectedList(listname, listID);
        $(this).setUniversalPostbackVariable(postValue);
    });

    $("a[Action='postbackList']").click(function(event) {
        //$(this).postPhotogalleryList();
        var listname = $(this).attr('listName');
        var listID = $(this).attr('listID');
        var postValue = $(this).getPostableList(listname, listID);
        $(this).setPostbackVariable("postbackListData", postValue);
    });

    $("a.toolboxConfirmButton").click(function(event) {
        var postbackValue = $(this).attr('PostbackArgument');
        $(this).setUniversalPostbackVariable(postbackValue);
        var element = $(this).attr('elementName');
        var question = $(this).attr('Question');
        if (element != null) {
            question = question.replace('$p', '"' + element + '"');
        }
        var choice = confirm(question);
        if (choice != true) {
            event.preventDefault();
        }
    });



    $("a[Action='confirm']").click(function(event) {
        var postbackValue = $(this).attr('PostbackArgument');
        $(this).setUniversalPostbackVariable(postbackValue);
        var element = $(this).attr('elementName');
        var question = $(this).attr('Question');
        if (element != null) {
            question = question.replace('$p', '"' + element + '"');
        }
        var choice = confirm(question);
        if (choice != true) {
            event.preventDefault();
        }
    });

    $("input.select_all").click(function(event) {
        var checkboxgroup = $(this).attr('value');
        var selector = "input[name=" + checkboxgroup + "]";
        var checked_status = $(this).attr('checked');
        $(this).myToggleCheckboxes(selector, checked_status, false);
    });

    $(".numericTxtbox").keydown(function(event) {
        // Allow only backspace and delete
        if (event.keyCode == 46 || event.keyCode == 8) {
            // let it happen, don't do anything
        }
        else {
            // Ensure that it is a number and stop the keypress
            if (event.keyCode < 48 || event.keyCode > 57) {
                event.preventDefault();
            }
        }
    });

    $("input[TextType='numeric']").keydown(function(event) {
        // Allow only backspace, delete and tab
        if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9) {
            // let it happen, don't do anything
        }
        else {
            // Ensure that it is a number and stop the keypress
            if (event.keyCode < 48 || event.keyCode > 57) {
                event.preventDefault();
            }
        }
    });



    $(".percentTextbox").keydown(function(event) {
        // Allow only backspace and delete
        if (event.keyCode == 46 || event.keyCode == 8) {
            // let it happen, don't do anything
        }
        else {
            // Ensure that it is a number and stop the keypress
            if (event.keyCode < 48 || event.keyCode > 57) {
                event.preventDefault();
            } else {
                var number = parseInt($(this).attr('value')) * 10 + event.keyCode - 48;
                if (number > 100) {
                    $(this).attr('value', '100');
                    event.preventDefault();
                }
            }
        }
    });


});

$.fn.panelShowHide = function(divname) {
    var header = $(this).parents(":first");
    if ($(divname).is(':visible')) {
        if ($(header).hasClass('elementHeader_open')) {
            $(header).removeClass('elementHeader_open');
        }
        $(header).addClass('elementHeader');
        //$(this).parents(":first").css("background-color", "#CCCCCC");
        //$(this).parents(":first").css("border-bottom", "");
        $(divname).animate({ height: 'hide', opacity: 'hide' }, 'fast');
    } else {
        if ($(header).hasClass('elementHeader')) {
            $(header).removeClass('elementHeader');
        }
        $(header).addClass('elementHeader_open');
        //$(this).parents(":first").css("background-color", "#CEE4FF");
        //$(this).parents(":first").css("border-bottom", "solid 2px #CEE4FF");
        $(divname).animate({ height: 'show', opacity: 'show' }, 'fast');
    }
};

$.fn.setUniversalPostbackVariable = function(postbackValue) {
    $(".universalPostbackVariable").attr('value', postbackValue);
};

$.fn.setPostbackVariable = function(variableName, postbackValue) {
    var filter = "input#" + variableName;
    $(filter).attr('value', postbackValue);
};

function promjenaTemplate(element) {
    var option = $(element).attr("value");
    var filter = "option[value='" + option + "']";
    var selected = $(element).find(filter).filter(":first");
    var value = $(selected).attr("url");
    var target = "." + $(element).attr("target");
    $(target).attr("innerText", " URL: [" + value + "]");
    $(target).attr("innerHTML", " URL: [" + value + "]");
}

$.fn.myToggleCheckboxes = function(filter, checked, returnChecked) {
    filter = filter || "*";
    returnChecked = returnChecked || false;
    var val = checked;
    var returnWhat = $([]);
    $(filter).each(function() {
        var obj = $(this);
        $(this).attr('checked', checked);
    });
    if (!returnChecked) {
        returnWhat = this;
    }
    return returnWhat;
};

$.fn.getSelectedCheckBoxes = function(filter) {
    var selector = "input[name=" + filter + "]";
    var val = "";
    $(selector).filter(":checked").each(function() {
        var obj = $(this);
        val = val + $(this).attr('value')+",";
    });
    return val;
};

$.fn.postSelected = function(filter) {
    var d = $("input.selectedCheckBox");
    d.attr('value', $(this).getSelectedCheckBoxes(filter));
};

$.fn.postPhotogalleryList = function() {
    var result = "";
    $("div#galleryListDiv").find("div").each(function() {
        result = result + $(this).attr('galleryID') + ",";
    });
    if (result.length > 0) {
        result = result.substring(0, result.length - 1);
    }
    alert(result);
    $(".photogalleryListData").attr('value', result);
};

$.fn.postList = function() {
    var result = "";
    $("ul#postableList").find("li").each(function() {
        result = result + $(this).attr('listID') + ",";
    });
    if (result.length > 0) {
        result = result.substring(0, result.length - 1);
    }
    alert(result);
    $(".photogalleryListData").attr('value', result);
};

$.fn.getPostableList = function(listName, atributeName) {
    var result = "";
    var filter = "ul#" + listName;
    $(filter).find("li").each(function() {
        result = result + $(this).attr(atributeName) + ",";
    });
    if (result.length > 0) {
        result = result.substring(0, result.length - 1);
    }
    return result;
};

$.fn.getSelectedList = function(divListName,atributeName) {
    var result = "";
    var filter = "div#" + divListName;
    $(filter).find("div").each(function() {
    result = result + $(this).attr(atributeName) + ",";
    });
    if (result.length > 0) {
        result = result.substring(0, result.length - 1);
    }
    return result;
};

$.fn.makeListDiv = function(listID, listName, divPrefix) {
    var div = document.createElement('div');

    $(div).attr("id", divPrefix + listID);
    $(div).attr("listID", listID);
    $(div).addClass("divListType");

    var link = document.createElement('a');
    var galleryLinkHref = $(".listLinkPrefix").val() + "=" + listID;
    $(link).addClass("contentLinkButton");
    $(link).attr("href", galleryLinkHref);
    $(link).append(listName);
    $(div).append(link);

    var rem = document.createElement('a');
    var fja = "javascript:removeElementFromList('" + divPrefix + listID + "')";
    $(rem).attr("href", fja);
    $(rem).attr("toRemove", divPrefix + listID);
    $(rem).addClass("removeListElement");
    $(rem).append("makni...");
    $(div).append(rem)

    return div;
};


$.fn.makeListElement = function(galleryID, elementTitle, IdPrefix, LinkPrefiks) {
    var li = document.createElement('li');

    $(li).attr("id", IdPrefix + galleryID);
    $(li).attr("listID", galleryID);

    var link = document.createElement('a');
    var galleryLinkHref = LinkPrefiks + galleryID;
    $(link).addClass("contentLinkButton");
    $(link).attr("href", galleryLinkHref);
    $(link).append(elementTitle);
    $(li).append(link);

    var rem = document.createElement('a');
    var fja = "javascript:removeFromList('" + $(li).attr('id') + "');";
    $(rem).attr("href", fja);
    $(rem).addClass("removeElement");
    $(li).append(rem)

    return li;
};

$.fn.appendToParentFrame = function(selector, galleryID, elementTitle, IdPrefix, LinkPrefiks) {
    var li = document.createElement('li');
    $(li).attr("id", IdPrefix + galleryID);
    $(li).attr("listID", galleryID);

    var link = document.createElement('a');
    var galleryLinkHref = LinkPrefiks + galleryID;
    $(link).addClass("contentLinkButton");
    $(link).attr("href", galleryLinkHref);
    $(link).append(elementTitle);
    $(li).append(link);

    var rem = document.createElement('a');
    var fja = "javascript:removeFromList('" + $(li).attr('id') + "');";
    $(rem).attr("href", fja);
    $(rem).addClass("removeElement");

    $(li).append(rem);
    $(window.opener.parent.document.body).find(selector).append(li);
};





function removeFromList(liID) {
    var toRemove = "li#" + liID;
    $(toRemove).remove();
}

function removeElementFromList(toRemove) {
    $("div#"+toRemove).remove();
}

$.fn.formTag = function(title) {
    title = title.trim();
    return title.replace(/ /g, '-').replace(/[.,:;()]/g, '-').replace(/[čć]/g, 'c').replace(/š/g, 's').replace(/ž/g, 'z').replace(/đ/g, 'd').replace(/[ČĆ]/g, 'C').replace(/Š/g, 'S').replace(/Ž/g, 'Z').replace(/Đ/g, 'D').replace(/[*]/g, '').replace(/[']/g, '');
}

$.fn.fillTag = function(from, to) {
    var toVal = $(to).attr('value');
    if ((toVal == null) || (toVal == "")) {
        $(to).attr('value', $(this).formTag($(from).attr('value')));
    }
}



