/*
    Document    : AjaxCall
    Created on  : Sep 21, 2010, 11:12:06 AM
    Author      : lijoyX
    Last Edited : Sep 22, 2010
    Description:
        This is my Jquery ajax overlay
*/
var gStrAjaxImgSmall="<img src='./images/icon-ajaxLoadingSmall.gif'></img>";
//var gStrAjaxImgBig="<img src='./images/icon-ajaxLoadingBig.gif'></img>";

/**
* <p>Used to show message</p>
* <ul>
* <li><var> Msg</var>          :   Message to display</li>
* <li><var> MsgType</var>      :   Message Type(Optional) <br>Default : INF<br>1. INF(Info) <br>2. ERR(Error)</li>
* <li><var> Interval</var>     :   Interval as seconds(Optional)<br> Default : 10 sec<br>If specified 0 message will show forever.</li>
* </ul>
*/
function mfnShowMessage(Msg,MsgType,Interval){

    /* Remove message if already exists */
    mfnRemoveMessage();
    
    var ObjCssProp;
    var lStrBgColor = "";
    var lStrBorder="";
    var lStrFontColor="";

    if(!MsgType){
        MsgType="INF";
    }
    if(Interval==undefined){
        Interval=10;
    }

    switch (MsgType) {
        case "INF":
            lStrBgColor = "#EBEFF9";
            lStrBorder="#0086B3 dotted 1px";
            break;
        case "ERR":
            lStrBgColor = "#F9E9E9";
            lStrBorder="#F00 dotted 1px";
            lStrFontColor="#000";
            break;
    }
    ObjCssProp={
        "background-color":lStrBgColor,
        "color":lStrFontColor,
        "border": lStrBorder,
        "-moz-border-radius":"3px",
        "position": "fixed",
        "padding": "3px",
        "font-weight":"bold",
        "text-align": "center",
        "left": "15%",
        "top": "1px",
        "height":"auto",
        "width":"70%"        
    }
    $("body").append('<div class="divMessage">'+Msg+'</div>');
    $(".divMessage").css(ObjCssProp);

    if(Interval!=0){
        setTimeout(mfnRemoveMessage,(Interval*1000));
    }

}

/**
* <p>Used to remove message</p>
*/
function mfnRemoveMessage(){  
    $(".divMessage").remove();
}

/**
* <p>Used to add error class to all the objects specified as parameters</p>
* <ul>
* <li><var> Obj</var>          :   Jason object containing the controls</li>
* </ul>
*/
function mfnAddErrorClass(Obj){
    //[{"ctrl":"txtUser","mess":"Invalid charecters"}]
    if(Obj.ctrls){
        $(Obj.ctrls).each(function(){
            var lStrCtrl = this.ctrl;
            var lStrCtrlMess = this.mess;
            $("#"+lStrCtrl).addClass("ctrlErr").attr("title",lStrCtrlMess);//.parent("td").css("background-color","#F9E9E9");
        });
        $(".ctrlErr").mouseover(function(){
            mfnShowMessage($(this).attr("title"),"ERR",0);
        }).focus(function(){
            mfnShowMessage($(this).attr("title"),"ERR",0);
        });
        $(".ctrlErr").blur(function(){
            mfnRemoveMessage();
        });
    }
}
/**
* <p>Used to remove error class on the control specified as the parameter</p>
* <ul>
* <li><var> CtrlName</var>          :   Control Name</li>
* </ul>
*/
function mfnRemoveErrorClass(CtrlName){
    if(!CtrlName){
        $("*.ctrlErr").removeClass("ctrlErr").unbind("mouseover").unbind("mouseout").attr("title","");
    } else{
        $("#"+CtrlName).removeClass("ctrlErr").unbind("mouseover").unbind("mouseout").attr("title","");
    }   
}

/**
* <p>Used to Load Values to combo boxes</p>
* <ul>
* <li><var> cmb</var>          		:   Combobox Name</li>
* <li><var> defaultItem</var>          	:   First Default Item</li>
* <li><var> service</var>          	:   Service Name(GetEnum.php)</li>
* <li><var> params</var>          	:   Parameters to pass</li>
* <li><var> selectedValue</var>        	:   selectedValue</li>
* </ul>
*/
function mfnLoadCombo(cmb, defaultItem, service, params, selectedValue)
{
    $.ajaxSetup ({
        timeout:100000,
        dataType:"json",
        error:function(xhr)
        {
            $("#" + cmb).html('<option value="@">'+ defaultItem +'</option>');
        }
    });

    $("#" + cmb).attr("disabled", "disabled");
    $("#" + cmb).html('<option value="@">Loading...</option>');

    //ajax call
    $.post("services/"+ service +".php",
        params,         
        function(data)
        {
            $("#" + cmb).html('<option value="@">'+ defaultItem +'</option>');
            for(i=0; i<data.length; i++){
                if(selectedValue != null && selectedValue != 'undefined') {
                    if(data[i].value==selectedValue){
                        optval = '<option value="'+data[i].value+'" selected="selected">'+data[i].text+'</option>';
                        SelectedAny = true;
                    }
                    else{
                        optval=	'<option value="'+data[i].value+'">'+data[i].text+'</option>';
                    }
                }
                else{
                    optval='<option value="'+data[i].value+'">'+data[i].text+'</option>';
                }
                $("#" + cmb).append(optval);
            }

            $("#" + cmb).attr("disabled", "");
        });
}
