/**
* IMPORTANT : READ THIS BEFORE DEVELOPING !!! IMPORTANT : READ THIS BEFORE DEVELOPING !!!
* 1 - REPLACE "NM" IN THE CODE BELOW, BY THE ABBREVIATION NAME OF THE PROJECT YOU ARE DEVELOPING, IN CAPITAL LETTERS, MAX 3 TO 4 CHARS
*
* EXAMPLE: jcdecaux - JD, tmn - TMN, Montepio - MP, samsung.pt - SP
* THE NAMESPACE IS GOOD TO BE SHORTEN TO LATER ON USE IN THE CODE
*
* 2 - THE FUNCTIONS publicFunction1, publicFunction2, privateFunction1 AND THE VAR iPrivateVar THEY ARE TO BE REMOVED BY YOU,
*     THEY ARE FOR ILLUSTRATIVE PURPOSES ONLY, IN HOW TO COMMUNICATE IN THE MODULE, PLEASE REMOVE THEM WHEN DEVELOPING.
*
* 3 - PLEASE REMOVE THIS ENTIRE COMMENT AFTER MAKING THESE CHANGES ABOVE.
*/


// DETECTS IF NAMESPACE OF THE APP EXISTS, CREATES THE NAMESPACE OF THE APP.
if (!DUL) var DUL = {};
else if (DUL && typeof (DUL) != "object")
    throw new Error("DUL is not an Object type");

// APP MAIN INIT - MODULE PATTERN.
DUL.Main = (function () {

    // PRIVATE ATTRIBUTES. ONLY PRIVELEGED METHODS MAY VIEW/EDIT/INVOKE
    var iPrivateVar = 10;

    // PRIVATE MEMBERS. ONLY PRIVELEGED METHODS MAY VIEW/EDIT/INVOKE.
    function privateFunction1() {
        $('.main').height($(window).height());
    }




    //RETURN OBJECT LITERAL.
    return {
        //PUBLIC ATTRIBUTES ANYONE MAY READ/WRITE.
        NAME: "Application initialize module",
        VERSION: 1.1,
        publicVar1: "i am a public variable",

        // PUBLIC MEMBERS ANYONE MAY READ/WRITE. (MAY BE OVERRIDEN).
        // PUBLIC METHOD THAT INITIALIZES MAIN APP.
        init: function () {

            bindForm();

            privateFunction1(); 	// CALL TO PRIVATE FUNCTION.

        }
    }

} ());     // THE PARENS HERE CAUSE THE ANONYMOUS FUNCTION TO EXECUTE AND RETURN.

// ON DOM READY INIT APPLICATION.
$(document).ready(function () {

    //THE APP MAIN MODULE CODE HAS ALREADY EXECUTED, SO WE CAN ACCESS THE INIT METHOD IMMEDIATELY.
    DUL.Main.init();

});

/**
* Outputs a log of the passed in object. This is centralized in one method so
* that we can keep info logs around the site and easily disable/enable them
* when jumping between live/dev.
* @param {string} o Message to log to console.
*/
DUL.log = function (o) {
    if (window.console && o) {
        window.console.log(o);
    }
};


