function draw_grid(id, custom_options)
{
    //alert(config_grid_images_path);
    var extraparams = '';
    if (custom_options['extraparams'] != undefined)
    {
        extraparams = custom_options['extraparams'];
    }
    else
    {
        extraparams = "";
    }

    var options = {
        scroll: true,
        datatype: "json",
        rowNum: config_grid_records_per_page,
        imgpath: config_grid_images_path,
        viewrecords: true,
        sortorder: "desc",
        width:500,
        height:350,
        viewrecords: true,
        sortorder: "desc",
        pager: jQuery('#pager2'),
        gridview: false,
        url:"ajax.grid.php?gcase=" + custom_options['gcase'] + extraparams,
        gridComplete:function(data) {
            if (id == "#reject_list")
            {
                if (jQuery(id).getGridParam("records") == 0)
                {
                    jQuery(id).parent().parent().hide();
                }
                else
                {
                    jQuery(id).parent().parent().show();
                }
            }
            jQuery(id).parent().parent().find('.loading').hide();
        },
        loadComplete:function(data) {
            var colspandtd = jQuery(id + " #_empty td").length;
            if (colspandtd == 0)
            {
                colspandtd = 2;
            }
            if (jQuery(id).getGridParam("records") == 0)
            {
                jQuery(id).append('<tr id="no_group_tr" class="jqgrow"><td colspan="' + colspandtd + '" style="text-align:center;">No Record Found</td></tr>');
            }
        }
    }
    options = jQuery.extend(options, custom_options);
    jQuery(id).jqGrid(options);

    if (custom_options['callback'] != undefined)
    {
        eval(custom_options['callback'] + '()');
    }
}

function show_autocomplete(id, url)
{
    var $obj = jQuery(id);
    jQuery(id).keyup(function(e) {
        if ($obj.attr('hiddenid') != undefined)
        {
            var selectedvalue = jQuery('#' + $obj.attr('hiddenid')).attr('selectedvalue');
            var typevalue = jQuery(id).val();
            if (selectedvalue != typevalue)
            {
                if ($obj.attr('defaultvalue') != undefined)
                {
                    jQuery('#' + $obj.attr('hiddenid')).val($obj.attr('defaultvalue'));
                }
                else
                {
                    jQuery('#' + $obj.attr('hiddenid')).val('0');
                }
            }
        }
    });

    var scase = $obj.attr('selectcase');
    if (scase != undefined)
    {
        url = url + '/' + scase;
    }
    jQuery(id).autocomplete(url, {

        minChars:1,
        matchSubset:1,
        matchContains:1,
        cacheLength:10,
        onItemSelect:function(arr) {
            //Add new

            if (arr.extra[0] == -3)
            {
                $obj.val('');
                eval('open_addnew_group_dialog(arr.extra,$obj)');
                return false;
            }

            $obj.focus();
            if ($obj.attr('hiddenid') != undefined)
            {

                jQuery('#' + $obj.attr('hiddenid')).val(arr.extra[0]);
                jQuery('#' + $obj.attr('hiddenid')).attr('selectedvalue', arr.extra[1]);

            }
            if ($obj.attr('callback') != undefined)
            {
                eval($obj.attr('callback') + '(arr.extra,$obj)');
            }


        },
        autoFill:false,
        formatItem:function formatItem(row) {
            if (row[1] == -1 || row[1] == -3 || row[1] == -2)
            {
                return "<font color='red'>" + row[0] + "</font>";
            }
            else if (row[1] == -2 || row[2] == -3)
            {
                return row[0];
            }
            else
            {
                return row[0];
            }
        },
        onResponseData:function(data)
        {
            //alert(data.length);
        }
    });
}

function open_dialog(id)
{
    if (jQuery(id).attr('before_open') != undefined)
    {
        eval(jQuery(id).attr('before_open') + '()');
    }

    jQuery(id).dialog('option', 'zIndex', 15000)
    jQuery(id).dialog('open');
    if (jQuery(id).attr('after_open') != undefined)
    {
        eval(jQuery(id).attr('after_open') + '()');
    }


}

function close_dialog(id)
{
    if (jQuery(id).attr('before_close') != undefined)
    {
        eval(jQuery(id).attr('before_close') + '()');
    }

    jQuery(id).dialog('close');
}


function form_post(form)
{
    var type = "json";
    if (jQuery(form).attr('dataType') != undefined)
    {
        type = jQuery(form).attr('dataType');
    }
    //alert(type);
    if (jQuery(form).attr('validation') == undefined)
    {
        var check = jQuery(form).validate().form();
    }
    else
    {
        var check = true;
    }
        
    if (check) {
        if (jQuery(form).attr('id') == 'frm_imagesvideo' && type == "json") {
            jQuery('#txt_video').val(escape(jQuery('#txt_video').val()));
        }
        if (jQuery(form).attr('before_submit') != undefined) {
            eval(jQuery(form).attr('before_submit') + '()');
        }
        jQuery(form).ajaxSubmit({
            dataType: type,
            success: function(data) {
                //                console.debug("DATA:", data);
                var callback = jQuery(form).attr('response_callback');
                //                console.debug("calling " + callback);
                if (callback != undefined) {
                    eval(callback + '(data)');
                }
                if (jQuery(form).attr('dialogid') != undefined)
                {
                    if (data['result'] != undefined && data['result'] == '0')
                    {
                        // do nothing
                    }
                    else
                    {
                        close_dialog(jQuery(form).attr('dialogid'));
                    }
                }
                if (jQuery(form).attr('jqgridid') != undefined)
                {
                    jQuery(jQuery(form).attr('jqgridid')).clearGridData().trigger("reloadGrid");
                }
            }
        });
    }

    return false;
}
function delete_record(id, scase, params)
{
    if (confirm("Are you sure you want to delete this record?"))
    {

        var requiesturl = 'ajaxrequest';
        if (scase == 'showgroupdelete')
        {
            var requiesturl = 'group';
        }
        else if (scase == 'participantdelete')
        {
            var requiesturl = 'participant';
        }
        else if (scase == 'deleteappeal')
        {
            var requiesturl = 'appeal';
        }

        jQuery.getJSON('' + requiesturl + '/' + scase + '?id=' + id + (params != undefined ? params : ""), function(arr) {
            if (scase == "showgroupdelete")
            {
                jQuery("#group" + id).remove();
            }

            var formname = arr['formname'];
            if (jQuery('#' + formname).attr('gridid') != undefined)
            {
                jQuery("#" + jQuery('#' + formname).attr('gridid')).clearGridData().trigger("reloadGrid");
            }

            if (arr['gridid'] != undefined)
            {
                jQuery("#" + arr['gridid']).clearGridData().trigger("reloadGrid");
            }
            if (jQuery('#' + formname).attr('delete_response_callback') != undefined)
            {
                eval(jQuery('#' + formname).attr('delete_response_callback') + '(arr)');
            }
        });
    }
}

/*id =row id
 scase = function in ajarequest which get the records on basis of id
 params
 */
function get_record(id, scase, params)
{
    if (params == undefined)
    {
        params = '';
    }
    var requiesturl = 'ajaxrequest';
    if (scase == 'showgroupedit')
    {
        var requiesturl = 'group';
    }
    else if (scase == 'getordersparticipant')
    {
        var requiesturl = 'order';
    }
    else if (scase == 'getappeal')
    {
        var requiesturl = 'appeal';
    }
    else if (scase == 'get_shipping_data')
    {
        var requiesturl = 'shoppingcart';
    }
    jQuery.getJSON(siteurl + '' + requiesturl + '/' + scase + '?id=' + id + params, function(arr) {
        responseresult = arr;

        if (arr['login'] == false)
        {
            window.location.href = siteurl;
            return false;
        }
        //alert(arr["records"]);
        if (arr["records"] != undefined)
        {
            var records = arr["records"];
            var rcount = arr["records"].length;
            var formname = arr["formname"];
            //show_progress(formname,0);

            for (var i = 0; i < rcount; i++)
            {
                var id = records[i]['id'];
                var value = records[i]['value'];
                if (value == null)
                {
                    value = "";
                }
                var type = records[i]['type'];
                var sel_options = records[i]['options'];
                var callback = '';
                switch (type)
                {

                    case 'sel' :
                        jQuery('#' + formname + ' #' + id).selectOptions(value, true);
                        //jQuery('#'+id).selectOptions(value,true);
                        break;

                    case 'muliplesel' :
                        var myarray = value.split(",");
                        for (var chkelement = 0; chkelement < myarray.length; chkelement++)
                        {
                            var nvalue = myarray[chkelement];
                            jQuery('#' + id).selectOptions(nvalue);
                        }
                        break;

                    case 'addseloptions':

                        //var selectdata="<select id='"+id+"' onchange='setprice(this)' name='"+id+"'>";
                        var selectdata = "";
                        for (var counter in sel_options)
                        {
                            var selectoption = (counter == value || (value.length > 0 && value.indexOf(counter) >= 0)) ? "selected" : "";
                            selectdata += "<option " + selectoption + " value=" + counter + ">" + sel_options[counter] + "</option>";
                        }
                        //selectdata+="</select>";
                        jQuery("#" + id).empty().append(selectdata);
                        //jQuery("#"+id).parent().html(selectdata);
                        break;

                    case 'txt' :
                        jQuery('#' + formname + ' #' + id).val(value);
                        jQuery('#' + id).val(value);

                        break;

                    case 'chk' :

                        jQuery('#' + formname + ' #' + id).attr('checked', value);
                    case 'td':
                        jQuery('#' + formname + ' #' + id).text(value);
                        break;

                    case 'radio':
                        jQuery('#' + formname + " [name='" + id + "'] ").each(function() {


                            if (jQuery(this).val() == value)
                            {
                                jQuery(this).attr('checked', 'checked');

                                if (jQuery(this).attr("callback") != undefined)
                                    callback = jQuery(this).attr("callback");
                            }
                        });
                        break;

                    case 'rating':
                        var nclick = "no";
                        jQuery('.star a').each(function() {
                            if (jQuery(this).attr('title') == value)
                            {
                                jQuery(this).trigger('click');
                                nclick = "yes";
                            }
                        });
                        if (nclick == 'no')
                        {
                            jQuery("[name='rating']").val('0');
                            jQuery('.star').each(function() {
                                jQuery(this).attr('class', 'star star_group_rating star_live star_off');
                            });
                        }
                        break;
                }

                if (jQuery('#' + formname + ' #' + id).attr("callback") != undefined && callback == '')
                    callback = jQuery('#' + formname + ' #' + id).attr("callback");

                if (callback != '')
                {
                    //var temp=callback+'("'+value+'",['+arr+'])';
                    //alert(temp)
                    eval(callback + '(value,arr)');
                }

            }
            var callback = jQuery('#' + formname).attr("callback");

            if (callback != undefined)
            {
                eval(callback + '()');
            }
        }
        var callback = jQuery("#" + formname).attr('callback');

        if (jQuery("#" + formname).attr('dialogid') != undefined)
        {
            open_dialog(jQuery("#" + formname).attr('dialogid'));
        }

        if (callback != undefined && callback != "")
        {
            eval(callback + '(arr)');
        }
    });
}


function first_focus()
{
    /*
     var found = false;
     for(i=0; i < document.forms[0].length; i++)
     {
     if(document.forms[0][i].type != "hidden")
     {
     document.forms[0][i].focus();
     found = true;
     }
     if(found == true)
     break;
     }
     */
}


function importAddress()
{
    jQuery('#txt_invite').val('');
    showPlaxoABChooser('txt_invite', '/plaxo');
    return false;
}

jQuery(document).ready(function() {
    //jQuery('input[type="text"]:eq(0)').focus();
    //jQuery('input[type="text"]:eq(0)').select();

    jQuery("textarea,input[type=text],input[type=password]").focus(function() {
        if (jQuery(this).attr('default') != undefined && jQuery(this).val() == jQuery(this).attr('default')) {
            jQuery(this).val("");
        }

    }).blur(function() {
        if (jQuery(this).attr('default') != undefined && jQuery(this).val() == "") {
            jQuery(this).val(jQuery(this).attr('default'));
        }
    });

    jQuery('span.action').bind('click', function() {
        jQuery(this).parent().parent().parent().find('div.content').slideToggle("slow");
        var strControllText = jQuery(this).text();
        if (strControllText == "Hide") {
            jQuery(this).text("Show");
        } else {
            jQuery(this).text("Hide");
        }
    });
});
function converttonumber(amountvalue)
{
    var extractnum = ""
    for (var k = 0; k < amountvalue.length; k++)
    {
        if (amountvalue[k] >= 0 && amountvalue[k] <= 9 || (amountvalue[k] == '.' && found == undefined))
        {
            extractnum += amountvalue[k];
        }
        if (amountvalue[k] == '.')
        {
            var found = 1
        }
    }
    return Number(extractnum);
}


jQuery.fn.toXML = function () {
    if (undefined != this[0].outerHTML) {
        return this[0].outerHTML;
    } else {
        var out = '';
        if (this.length > 0) {
            if (typeof XMLSerializer == 'function' ||
                typeof XMLSerializer == 'object')
            {
                var xs = new XMLSerializer();
                this.each(function() {
                    out += xs.serializeToString(this);
                });
            } else if (this[0].xml !== undefined) {
                this.each(function() {
                    out += this.xml;
                });
            } else {
                // TODO: Manually serialize DOM here,
                // for browsers that support neither
                // of two methods above.
            }
        }
        return out;
    }
};
