/* licuit.com */
/* ajaxCalls.js */
/* Created Nov, 2010 */
/* Modified Nov, 2010
--------------------------------------- */

licuitCore.ajaxCalls = new Class({ 
        Extends: licuitCore.licuit,
			
		initialize : function(){},
		
		newPHPRequest : function(params){
			if(params == undefined || params.component == undefined || params.method == undefined)
				return;
				
			var component = params.component;
			var method = params.method;
			var variables = (params.variables != undefined)? params.variables : {};
			var complete = (params.onComplete != undefined)? params.onComplete : function(){};
			var failure = (params.onError != undefined)? params.onError : function(){};
			
			var path = component.split(".").join("/") + ".php";
			path += "?method=" + method + "&";
			
			var ajaxCall = new Request.JSON({
				url: path,
				method : "post",
				data : variables,
				noCache : true,
				onSuccess: function(response){complete(response)},
				onFailure:function(error){failure(error.responseText)}
			}).send();
		},
		
		newHTMLRequest : function(params){
			if(params == undefined || params.url == undefined)
				return;
				
			var url = params.url;
			var variables = (params.variables != undefined)? params.variables : {};
			var complete = (params.onComplete != undefined)? params.onComplete : function(){};
			var failure = (params.onError != undefined)? params.onError : function(){};
			
			var path = url;
			
			var ajaxCall = new Request.HTML({
				url: path,
				method : "post",
				noCache : true,
				onSuccess: function(responseTree,responseElements,responseHTML,responseJavaScript){complete(responseHTML)},
				onFailure:function(error){failure(error)}
			}).post(variables);
		},
		
		
//***** DATA PARSING		
		dataParser : {
			queryToArray : function(dataQuery){
				var dataArray = [];
				
				for(var a = 0 ; a < dataQuery.DATA.length; a++){
					var row = {};
					
					for(var b = 0; b < dataQuery.COLUMNS.length; b++){
						row[dataQuery.COLUMNS[b].toLowerCase()] = dataQuery.DATA[a][b];						
					}
					
					dataArray.push(row);
				}
				
				return dataArray;
			}
		
		}
});
