var Info = {};
Info.Config = {
    messageContainerClass : "messageContainer",
    messageContainerId : "infoContainer",
    actionRequiredContainerClass : "actionContainer",
    actionRequiredContainerId : "actionContainer",
    popupMessageContainerClass : "popupMessageContainer",
    popupMessageContainerId : "popupInfoContainer",
    debug : false
};
Info.Ready = false;
Info.callback = function(){};
Info.init = function() {
    var mb = $('.mainBody');
    if (mb) {
        var e = '<div id="' + Info.Config.messageContainerId + '" class="' + Info.Config.messageContainerClass + '" style="display: none;">&nbsp;</div>';
        $('.mainBody > *:first').before(e);
        Info.Ready = true;
        var d = '<div id="' + Info.Config.actionRequiredContainerId + '" class="' + Info.Config.actionRequiredContainerClass + '" style="display: none;">&nbsp;</div>';
        $('#infoContainer').before(d);
        Info.Ready = true;
    }else {
        if (Info.Config.debug) alert("Main Body was not found");
    }
    var pb=$('.popupBody');
    if($('#popupBody1')){   //for shipping template, since there would be 2 classes popupBody, added id to that popupBody and attached the error div to that.
        var p1 = '<div id="' + Info.Config.popupMessageContainerId + '" class="' + Info.Config.popupMessageContainerClass + '" style="display: none;">&nbsp;</div>';
        $('#popupBody1 > *:first').before(p1);
        Info.Ready = true;
    } else if (pb) {
        var p = '<div id="' + Info.Config.popupMessageContainerId + '" class="' + Info.Config.popupMessageContainerClass + '" style="display: none;">&nbsp;</div>';
        $('.popupBody > *:first').before(p);
        Info.Ready = true;
    }
    else {
        if (Info.Config.debug) alert("Popup Body was not found");
    }    
    var prev =$('#msgDisplay');
    if (prev) {
        p = '<div id="' + Info.Config.messageContainerId + '" class="' + Info.Config.messageContainerClass + '" style="display: none;">&nbsp;</div>';
        $('#msgDisplay').html(p);
        Info.Ready = true;
    }
    else {
        if (Info.Config.debug) alert("Msg Display was not found");
    }    
}

Info.Show = {
    errorMsg : function(message) {
        var t = setTimeout(Info.Show.autoClose,5000);
        if (!document.getElementById(Info.Config.messageContainerId)) Info.init();
        document.getElementById(Info.Config.messageContainerId).innerHTML = '<div class="messageIcon"></div><div class="message" style="color:red;"><b>' + message + '</b></div><div style="float:right;padding-right:10px;" onclick="Info.Show.close(\'' + Info.Config.messageContainerId + '\');" ><div class="messageClose" style="margin-top:-2px;margin-right:-4px;">Close</div><div class="messagecross" ></div></div>';
        document.getElementById(Info.Config.messageContainerId).className = "errorMessageContainer";
        $('#' + Info.Config.messageContainerId).fadeIn("slow");
    },
    actionRequiredMsg : function(message) {
        var t = setTimeout(Info.Show.autoClose,15000);
        if (!document.getElementById(Info.Config.actionRequiredContainerId)) Info.init();
        document.getElementById(Info.Config.actionRequiredContainerId).innerHTML = '<div class="messageIcon"></div><div class="message"><b>' + message + '</b></div><div style="float:right;padding-right:10px;" onclick="Info.Show.close(\'' + Info.Config.actionRequiredContainerId + '\');"><div class="messageClose" style="margin-top:-2px;margin-right:-4px;">Close</div><div class="messagecross" ></div></div>';
        document.getElementById(Info.Config.actionRequiredContainerId).className = "actionContainer";
        $('#' + Info.Config.actionRequiredContainerId).fadeIn("slow");
    },
    infoMsg : function(message) {
        var t = setTimeout(Info.Show.autoClose,2000);
        if (!document.getElementById(Info.Config.messageContainerId)) Info.init();
        document.getElementById(Info.Config.messageContainerId).innerHTML = '<div class="messageIcon"></div><div class="message"><b>' + message + '</b></div><div style="float:right;padding-right:10px;" onclick="Info.Show.close(\'' + Info.Config.messageContainerId + '\');"><div class="messageClose" style="margin-top:-2px;margin-right:-4px;">Close</div><div class="messagecross" ></div></div>';
        document.getElementById(Info.Config.messageContainerId).className = "messageContainer";
        $('#' + Info.Config.messageContainerId).fadeIn("slow");
    },
    saveMsg : function(message) {
        if (!document.getElementById(Info.Config.messageContainerId)) Info.init();
        document.getElementById(Info.Config.messageContainerId).innerHTML = '<div class="messageIcon"></div><div class="message"><b>' + message + '</b></div>';
        document.getElementById(Info.Config.messageContainerId).className = "messageContainer";
        $('#' + Info.Config.messageContainerId).fadeIn("slow");
    },
    confirmMsg : function(message) {
        if (!document.getElementById(Info.Config.messageContainerId)) Info.init();
        document.getElementById(Info.Config.messageContainerId).innerHTML = '<div class="messageIcon"></div><div class="message"><b>' + message + '</b></div><div style="float:right;padding-right:10px;width:93px"><a class="messageClose" id="cancel">Cancel</a><a class="okButton messageOk" id="ok"></a></div>';
        document.getElementById(Info.Config.messageContainerId).className = "messageContainer";
        $('#' + Info.Config.messageContainerId).fadeIn("slow");
    },
    successMsg : function(message,callbackfn){
        var t = setTimeout(Info.Show.autoClose,2000);
        if(callbackfn != undefined)Info.callback = callbackfn;  
        else Info.callback = function(){};
        if(!document.getElementById(Info.Config.messageContainerId)) Info.init();
        document.getElementById(Info.Config.messageContainerId).innerHTML ='<div class="messageIcon"></div><div class="message"><b>'+message+'</b></div><div style="float:right;padding-right:10px;" onclick="Info.Show.close(\''+ Info.Config.messageContainerId +'\');" ><div class="messageClose" style="margin-top:-2px;margin-right:-4px;">Close</div><div class="messagecross"></div></div>';
        document.getElementById(Info.Config.messageContainerId).className = "successMessageContainer";
        $('#'+Info.Config.messageContainerId).fadeIn("slow");
    },
    close : function(closediv) {
        $('#' + closediv).remove();
        if(Info.callback() != undefined)Info.callback();
    },
    autoClose : function(){
        $('#'+Info.Config.messageContainerId).fadeOut("slow");
        if(Info.callback() != undefined)Info.callback();
        var r = setTimeout(Info.Show.removeContainer,500);
    },
    removeContainer : function(){
        $('#'+Info.Config.messageContainerId).remove();
        $('#'+Info.Config.actionRequiredContainerId).remove();
    }
}

Info.pShow = {
    errorMsg : function(message) {
        var t = setTimeout(Info.Show.autoClose,5000);
        if(!document.getElementById(Info.Config.popupMessageContainerId)) Info.init();
        document.getElementById(Info.Config.popupMessageContainerId).innerHTML = '<div class="messageIcon"></div><div class="message" style="color:red;width:auto;"><b>' + message + '</b></div>';
        document.getElementById(Info.Config.popupMessageContainerId).className = "popupErrorMessageContainer";
        $('#' + Info.Config.popupMessageContainerId).slideDown("slow");
    },
    infoMsg : function(message,callbackfn) {
        // var t = setTimeout(Info.pShow.autoClose,60000);
        if(callbackfn != undefined)Info.callback = callbackfn;
        if (!document.getElementById(Info.Config.popupMessageContainerId)) Info.init();
        document.getElementById(Info.Config.popupMessageContainerId).innerHTML = '<div class="messageIcon"></div><div style="width:auto" class="message"><b>' + message + '</b></div>';
        document.getElementById(Info.Config.popupMessageContainerId).className = "popupMessageContainer";
        $('#' + Info.Config.popupMessageContainerId).slideDown("slow");
    },
    confirmMsg : function(message) {
        if (!document.getElementById(Info.Config.popupMessageContainerId)) Info.init();
        document.getElementById(Info.Config.popupMessageContainerId).innerHTML = '<div class="messageIcon"></div><div class="message"><b>' + message + '</b></div><div style="float:right;padding-right:10px;width:93px"><a class="messageClose" id="cancel">Cancel</a><a class="okButton messageOk" id="ok"></a></div>';
        document.getElementById(Info.Config.popupMessageContainerId).className = "popupMessageContainer";
        $('#' + Info.Config.popupMessageContainerId).fadeIn("slow");
    },
    successMsg : function(message){
        var t = setTimeout(Info.pShow.autoClose,2000);
        if(!document.getElementById(Info.Config.popupMessageContainerId)) Info.init();
        document.getElementById(Info.Config.popupMessageContainerId).innerHTML ='<div class="messageIcon"></div><div class="message"><b>'+message+'</b></div><div style="float:right;padding-right:10px;" onclick="Info.pShow.close(\''+ Info.Config.popupMessageContainerId +'\');" ><div class="messageClose">CLOSE</div><div class="messagecross" ></div></div>';
        document.getElementById(Info.Config.popupMessageContainerId).className = "successMessageContainer";
        $('#'+Info.Config.popupMessageContainerId).fadeIn("slow");
    },
    close : function(closediv) {
        $('#' + closediv).remove();
        if(Info.callback() != undefined)Info.callback();
    },
    autoClose : function(){
        $('#'+Info.Config.popupMessageContainerId).fadeOut("slow");
        if(Info.callback() != undefined)Info.callback();
        var r = setTimeout(Info.Show.removeContainer,500);
    },
    removeContainer : function(){
        $('#'+Info.Config.popupMessageContainerId).remove();
    }
}

Info.prevShow = {
    errorMsg : function(message) {
        // var t = setTimeout(Info.Show.autoClose,5000);
        if (!document.getElementById(Info.Config.messageContainerId)) Info.init();
        document.getElementById(Info.Config.messageContainerId).innerHTML = '<div class="messageIcon"></div><div class="message" style="color:red;"><b>' + message + '</b></div><div style="float:right;padding-right:10px;" onclick="Info.Show.close(\'' + Info.Config.messageContainerId + '\');" ><div class="messageClose" style="margin-top:-2px;margin-right:-4px;">Close</div><div class="messagecross" ></div></div>';
        document.getElementById(Info.Config.messageContainerId).className = "errorMessageContainer";
        $('#' + Info.Config.messageContainerId).fadeIn("slow",function(){
            $('#infoContainer').css('height','auto');
            $('#infoContainer').css('float','left');
        });
    },
   
    infoMsg : function(message) {
         
        if (!document.getElementById(Info.Config.messageContainerId)) Info.init();
        document.getElementById(Info.Config.messageContainerId).innerHTML = '<div class="messageIcon"></div><div class="message" style=""><b>' + message + '</b></div><div style="float:right;padding-right:10px;" onclick="Info.Show.close(\'' + Info.Config.messageContainerId + '\');" ><div class="messageClose" style="margin-top:-2px;margin-right:-4px;">Close</div><div class="messagecross" ></div></div>';
        document.getElementById(Info.Config.messageContainerId).className = "messageContainer";
        $('#' + Info.Config.messageContainerId).fadeIn("slow",function(){
            $('#infoContainer').css('height','auto');
            $('#infoContainer').css('float','left');
        });

    },
    saveMsg : function(message) {
        if (!document.getElementById(Info.Config.messageContainerId)) Info.init();
        document.getElementById(Info.Config.messageContainerId).innerHTML = '<div class="messageIcon"></div><div class="message"><b>' + message + '</b></div>';
        document.getElementById(Info.Config.messageContainerId).className = "messageContainer";
        $('#' + Info.Config.messageContainerId).fadeIn("slow");
    },
    confirmMsg : function(message) {
        if (!document.getElementById(Info.Config.messageContainerId)) Info.init();
        document.getElementById(Info.Config.messageContainerId).innerHTML = '<div class="messageIcon"></div><div class="message"><b>' + message + '</b></div><div style="float:right;padding-right:10px;width:93px"><a class="messageClose" id="cancel">Cancel</a><a class="okButton messageOk" id="ok"></a></div>';
        document.getElementById(Info.Config.messageContainerId).className = "messageContainer";
        $('#' + Info.Config.messageContainerId).fadeIn("slow");
    },
    successMsg : function(message,callbackfn){
        var t = setTimeout(Info.Show.autoClose,2000);
        if(callbackfn != undefined)Info.callback = callbackfn;  
        else Info.callback = function(){};
        if(!document.getElementById(Info.Config.messageContainerId)) Info.init();
        document.getElementById(Info.Config.messageContainerId).innerHTML ='<div class="messageIcon"></div><div class="message"><b>'+message+'</b></div><div style="float:right;padding-right:10px;" onclick="Info.Show.close(\''+ Info.Config.messageContainerId +'\');" ><div class="messageClose" style="margin-top:-2px;margin-right:-4px;">Close</div><div class="messagecross"></div></div>';
        document.getElementById(Info.Config.messageContainerId).className = "successMessageContainer";
        $('#'+Info.Config.messageContainerId).fadeIn("slow");
    },
    close : function(closediv) {
        $('#' + closediv).remove();
        if(Info.callback() != undefined)Info.callback();
    },
    autoClose : function(){
        $('#'+Info.Config.messageContainerId).fadeOut("slow");
        if(Info.callback() != undefined)Info.callback();
        var r = setTimeout(Info.Show.removeContainer,500);
    },
    removeContainer : function(){
        $('#'+Info.Config.messageContainerId).remove();
        $('#'+Info.Config.actionRequiredContainerId).remove();
    }
}
//        if(Info.Config.debug)alert("Error : Main body Div not found")

