jQuery.VWUtils = {
    numberFormat: function(number,options) {

        var settings = {
            ccySymbol: '',
            ccyPosition: 'before'
        }

        if (options) {
            jQuery.extend(settings,options);
        }

        var dblValue = parseFloat(number);

        var blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
        dblValue = Math.floor(dblValue*100+0.50000000001);
        var intCents = dblValue%100;
        var strCents = intCents.toString();
        dblValue = Math.floor(dblValue/100).toString();

        if(intCents<10)
            strCents = "0" + strCents;

        for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
            dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+','+
            dblValue.substring(dblValue.length-(4*i+3));

        var result;

        if (settings.ccyPosition == 'before') {
            result = (((blnSign)?'':'-') + settings.ccySymbol + dblValue + '.' + strCents);
        } else {
            result = (((blnSign)?'':'-') + dblValue + '.' + strCents + settings.ccySymbol);
        }

        return result;
    },

    dateFormat: function(options) {

        var settings = {
            date: new Date(),
            days: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
            months: ['January','February','March','April','May','June','July','August','September','October','November','December'],
            separator: ' ',
            format: 'DD MONTH YYYY'
        }

        if (options) {
            jQuery.extend(settings,options);
        }

        var result;
        var formatArray = settings.format.split(settings.separator);

        for (i=0;i<formatArray.length;i++) {
            if (formatArray[i] == 'DD') {
                result += settings.date.getDate();
            } else if (formatArray[i] == 'DAY') {
                result += settings.days[settings.date.getDay()];
            } else if (formatArray[i] == 'MM') {
                var month = settings.date.getMonth() + 1;
                if (month < 10) {
                    result += '0';
                }
                result += month;
            } else if (formatArray[i] == 'MONTH') {
                result += settings.months[settings.date.getMonth()];
            } else if (formatArray[i] == 'YY') {
                result += settings.date.getYear();
            } else if (formatArray[i] == 'YYYY') {
                result += settings.date.getFullYear();
            }

            if (i > 0 && i < formatArray.length) {
                result += settings.separator;
            }
        }

        return result;
    }
}

// serialize form into queryString
jQuery.fn.VWUtilsSerializeForm = function() {
    // create parameter map
    var params = '';
    //var elements = this.get(0).elements;
	var elements = $(this).find("input, textarea");
    for (var i=0;i<elements.length;i++) {
        if (elements[i].type) {
            if(elements[i].type == 'radio' || elements[i].type == 'checkbox'){
            	if(elements[i].checked)
            		params += elements[i].id + '=' + escape(elements[i].value);
            }else{
            	params += elements[i].id + '=' + escape(elements[i].value);
           	}
            if (i != elements.length-1) {
                params += '&';
            }
        }
    }
    return params;
}
