﻿BrowserChecker = {

    isIE: function() {
        return (navigator.appName == "Microsoft Internet Explorer");
    },

    isNS: function() {
        return (navigator.appName == "Netscape");
    }
}

///////////////////////////////////////////////////////////////////////////////
//
// Objekt pro metody vztazene k praci s odkazy pres javascript
//
Link = {

	createArticleMetaLink : function(id)
		{
			return "--"+id+".art--";
		},

	createDepartmentMetaLink : function(id)
		{
			return "--"+id+"/--";
		},
		
	createGoodsMetaLink : function(id)
		{
			return "--"+id+".gds--";
		},

	createPhotoMetaLink : function(id)
		{
			return "--"+id+".pht--";
		},

	createDocumentMetaLink : function(id)
		{
			return "--"+id+".file--";
		},
	createImageMetaLink : function(id)
		{
			return "--"+id+".img--";
		},
	createFlashMetaLink : function(id)
		{
			return "--"+id+".swf--";
		},
	createMediaMetaLink: function(id) 
		{
		return "--"+id+".media--";
		},
	isArticleMetaLink : function(type)
	    {
	        if (type == "art")
	        {
	            return true;
	        }
	        else
	        {
	            return false;
	        }
	    },
	isDepartmentMetaLink: function(type) {
	        if (type == "/") {
	            return true;
	        }
	        else {
	            return false;
	        }
	    },
	// 
	// metoda pro vytvoreni metaznacky pro odkaz z nazvu
	// typu systemu a jeho ID
	// 
	createMetaLink : function(name, id)
		{
			if(name == "article") return Link.createArticleMetaLink(id);
			if(name == "department") return Link.createDepartmentMetaLink(id);
			if(name == "document") return Link.createDocumentMetaLink(id);
			if(name == "image") return Link.createImageMetaLink(id);
			if(name == "goods") return Link.createGoodsMetaLink(id);
			if(name == "photo") return Link.createPhotoMetaLink(id);
			
			return "";
		},
	parseMetaLink : function(href)
	    {
	        var dashes = 0;
	        var metaLinkStartIndex = 0;
	        var metaLink;

	        for (var i = href.length - 1; i >= 0; i--)
	        {
	            if (href.charAt(i) == "-") {
	                dashes++;
	            }

	            if (dashes == 4) {
	                metaLinkStartIndex = i;
	                break;
	            }
	        }

	        metaLink = href.substring(metaLinkStartIndex, href.length);
	        return metaLink;
	    }
	
}

WindowManager = {
	getDialogParent : function()
		{
			// IE kontrola na predka
			if (typeof(dialogArguments) != "undefined") {
				return dialogArguments;
			}
			else {
				if(window.opener != null){
					return window.opener;
				}
			}
			
			return null;
		}
}



function createCalendar(targetInputId) {

    var jqueryId = "#" + targetInputId;
    /*var value = $(jqueryId).attr("value");*/
    
    $(jqueryId).datepicker();
    
/*
    $(jqueryId).datepicker('option', { prevText: 'Předchozí' });
    $(jqueryId).datepicker('option', { nextText: 'Další' });
    $(jqueryId).datepicker('option', { monthNames: ['Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec'] });
    $(jqueryId).datepicker('option', { dayNamesMin: ['Ne', 'Po', 'Út', 'St', 'Čt', 'Pá', 'So'] });
    $(jqueryId).datepicker('option', { dateFormat: 'dd.mm.yy' });
    $(jqueryId).datepicker('option', { firstDay: 1 });
*/

/* 
    var dateArray = value.split('.'); 
    var dateString = dateArray[1] + '-' + dateArray[0] + '-' + dateArray[2];
    var dtDate = new Date(dateString);
    dtDate.setDate(dtDate.getDate());

    $(jqueryId).datepicker('setDate', dtDate);
*/

    /*calendar.datepicker('option', {regional:
    { // Default regional settings
    closeText: 'Zavřít', // Display text for close link
    prevText: 'Předchozí', // Display text for previous month link
    nextText: 'Další', // Display text for next month link
    currentText: 'Dnes', // Display text for current month link
    monthNames: ['January', 'February', 'March', 'April', 'May', 'June',
    'July', 'August', 'September', 'October', 'November', 'December'], // Names of months for drop-down and formatting
    monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
    dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
    dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
    dayNamesMin: ['Ne', 'Po', 'Tu', 'We', 'Th', 'Fr', 'Sa'], // Column headings for days starting at Sunday
    dateFormat: 'dd.mm.yy', // See format options on parseDate
    firstDay: 1, // The first day of the week, Sun = 0, Mon = 1, ...
    isRTL: false // True if right-to-left language, false if left-to-right
    } });*/
}


///////////////////////////////////////////////////////////////////////////////
//
// Objekt a metody pro praci s hlaskami
//

MessageBox = {

    showError: function(message) {

        $("#universalErrorDialog #in_universalErrorDialogContent").html(message);
        $("#universalErrorDialog").dialog("open");

        return false;
    },

    showWarning: function(message) {

        $("#universalErrorDialog #in_universalErrorDialogContent").html(message);
        $("#universalErrorDialog").dialog("open");

        return false;
    },

    showInfo: function(message) {


        $("#universalInfoDialog #in_universalInfoDialogContent").html(message);
        $("#universalInfoDialog").dialog("open");

        return false;
    },

    showSaving: function() {

        $("#universalSaveDialog").dialog({
            bgiframe: true,
            modal: true,
            autoOpen: false,
            position: ['center', 100],
            draggable: false,
            resizable: false,
            width: 200,
            minHeight: 120
        });

        $("#universalSaveDialog").dialog("open");

        $(".ui-dialog-titlebar").css("height", "0px");
        $(".ui-dialog-titlebar-close").css("display", "none");

        $(".ui-widget-overlay").css("backgroundColor", "#323232");
        $(".ui-widget-overlay").css("opacity", "0.8");

        return false;
    },

    hideSaving: function() {

        $("#universalSaveDialog").dialog("close");

        $(".ui-dialog-titlebar").css("height", "32px");
        $(".ui-dialog-titlebar-close").css("display", "block");

        $(".ui-widget-overlay").css("backgroundColor", "#AAAAAA");
        $(".ui-widget-overlay").css("opacity", "0.3");

        return false;
    },

    showLoading: function() {

        $("#universalLoadDialog").dialog({
            bgiframe: true,
            modal: true,
            autoOpen: false,
            position: ['center', 100],
            draggable: false,
            resizable: false,
            width: 200,
            minHeight: 120,
            overlay: {
                backgroundColor: '#000',
                opacity: 0.8
            }
        });

        $("#universalLoadDialog").dialog("open");

        $(".ui-dialog-titlebar-close").css("display", "none");

        return false;
    },


    hideLoading: function() {

        $("#universalLoadDialog").dialog("close");

        $(".ui-dialog-titlebar-close").css("display", "block");

        return false;
    }
}

///////////////////////////////////////////////////////////////////////////////
//
// filter form override - odchyceni stisknuti enteru ve filtrovacich formularich
$(document).ready(function() {

	$("input.filterInput[type=text], select.filterInput").keypress(function(e) {
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
			$(this).change();
			$("input.filterSubmit[type=submit]").click(function(e) {
				e.preventDefault();
			});
			$("input.filterSubmit[type=submit]").click();
			e.preventDefault();
		}
	});

});

///////////////////////////////////////////////////////////////////////////////
//
// osetreni prekryvani formularu innova editorem
$.fn.dommodhandler = 
	function(options)
	{
		function setListeners()	
		{
			var eventName;
			
			if ($.browser.msie) 
				eventName = "propertychange";
			else if($.browser.mozilla) 
				eventName = "DOMAttrModified";
			
			$("div.innovaEditorHolder")
				.bind(
					eventName,
					function(e)
					{	
						if ($(this).css("display") == "block")
							$(this).css("visibility", "visible");
						else 
						if ($(this).css("display") == "none")
							$(this).css("visibility", "hidden");
					}
				);
		}
		return setListeners();
	};
$(document).ready(function() {
	$.fn.dommodhandler();
});

///////////////////////////////////////////////////////////////////////////////
//
// formatovani cisel
Number.prototype.formatCustom = function(c, d, t) {
	var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
	return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};

String.prototype.replaceAll = function(replaceThis, withThis) {
	var re = new RegExp(RegExp.quote(replaceThis), "g");
	return this.replace(re, withThis);
};

RegExp.quote = function(str) {
	return str.replace(/([.?*+^$[\]\\(){}-])/g, "\\$1");
};
