class Helper{

    constructor(){

    }
    
    static setTheme(new_theme, window){
			if(window){
				window.localStorage.setItem('jqxtheme', new_theme);
				this.theme = new_theme;
				return true;
			} else {
				return false;
			}
    }
    
    static getTheme(window){
    	if(window){
				if(window.localStorage.getItem('jqxtheme')){
    			var the_theme = window.localStorage.getItem('jqxtheme');
    			return the_theme.toLowerCase().replace(' ', '');
    		}
    	} 
    	return 'energyblue';
    }
    
    static toDateString(indate){
    	if(indate instanceof Date){
    		return indate.toLocaleDateString();
    	} else {
    		if(typeof indate == 'string'){
    			//Make a Javascript Date
    			if(indate.indexOf('/') >= 0){
    				var s = indate.split('/');
    				var d = new Date(s[2], s[0]-1, s[1]);
    				return d.toLocaleDateString();
    			} else {
    				if(indate.indexOf ('-') >= 0){
    					var s = indate.split('-');
    					var d = new Date(s[0], s[1]-1, s[2]);
    					return d.toLocaleDateString();
    				} else {
    					return null;
    				}
    			}
    		} else {
    			return null;
    		}
    	}
    }

	  static toDateObject(indate){
    	if(indate instanceof Date){
    		return indate;
    	} else {
    		if(typeof indate == 'string'){
    			//Make a Javascript Date
    			if(indate.indexOf('/') >= 0){
    				var s = indate.split('/');
    				return new Date(s[2], s[0]-1, s[1]);
    			} else {
    				if(indate.indexOf ('-') >= 0){
    					var s = indate.split('-');
    					return new Date(s[0], s[1]-1, s[2]);
    				} else {
    					return null;
    				}
    			}
    		} else {
    			return null;
    		}
    	}	  	
	  }
    // Returns a Mysql Date Formated String
    static toMysqlDate(indate){
        if(indate instanceof Date){
            return indate.toISOString().substring(0, 10);
        } else {
            if(typeof indate == 'string'){
                if(indate.indexOf('/') >= 0){
                    var s = indate.split('/');
                    if(s && s.length == 3){
                        return s[2] + '-' + s[0] + '-' + s[1];
                    }
                }  else {
                    return null;
                }
            }            
        }
    }

    static toMysqlDateTime(indate){
        // A Data Object
        if(indate instanceof Date){
        	//alert(indate.toISOString());
        	//alert(indate);
        	//alert(indate.getHours());
        	//alert(indate.toLocaleString());
            //var mdate = new Date(indate.getFullYear(), indate.getMonth(), indate.getDate(), indate.getHours(), indate.getMinutes(), 0).toISOString().replace('T', ' ').replace('Z', '');
            var mdate = indate.getFullYear() + '-' + (indate.getMonth()+1) + '-' + indate.getDate() + ' ' + indate.getHours() + ':' + indate.getMinutes() + ':00.000';
            //alert(mdate);
            return mdate;
        } else {
            //if(typeof indate == 'string'){
                //if(indate.indexOf('/') >= 0){
                    //var s = indate.split('/');
                    //if(s && s.length == 3){
                    //    return s[2] + '-' + s[0] + '-' + s[1];
                    //}
                //}  else {
                    return null;
                //}
            //}            
        }        
    }

    static fromMysqlDate(instr){
        if(typeof instr == 'string'){
            var s = instr.split('-');
            return new Date(s[0], s[1]-1, s[2]);
        } else {
            return null;
        }
    }

    static post(url, parms, cb){
        var response = new Object();
        response.error = null;
        response.data = null;
        $.ajax({
            url: url,
            type: 'POST',
            data: parms,
            success: function (data, status, xhr) {
            	if(status == 'success'){
            		response.error = data.error;
            		response.data = data.data;
            	} else {
            		response.error = status;
            		response.data = [];
            	}
            },
            error: function(jqXhr, textStatus, errorMessage){
                response.error = errorMessage;
                response.data = [];
            },
            complete: function(){
                cb(response);
            }
        });
    }
    
   

}