
function ajaxSubmit(id,m,act){
	
	$("form#"+id+"_form").validate({
		formHandler: formHandler(id,m,act)
	});
	return false;
}

function formHandler(id,m,act){
	
	$("#form_rez_"+id).html(loaderMali).removeClass("error");
	$("input[type='submit']").addClass("submit_loading").attr("disabled","disabled");
	
	if($("form#"+id+"_form").valid()){
		var data='&'+$("form#"+id+"_form").serialize();
		ajax(id,m,act,data);
	}
	else{
		$("#form_rez_"+id).html('Ispravite crvena polja').addClass("error");
		$("input[id='"+id+"'][type='submit']").removeClass("submit_loading").removeAttr("disabled","");
	}
	return false;
	
}


function ajax(id,m,act,data){
		
		var lang="";
		
		if(getUrlVars()["lang"]!=null||getUrlVars()["lang"]!=undefined){
			var lang=getUrlVars()["lang"];
		}
		else{
			var lang="";
		}
		
		data+='&id='+id+'&m='+m+'&act='+act;
		data+="&lang="+lang
		
		if(id=="POTVRDI"){
			data+="&CoreConfirm="+value;
		}
		 $.ajax({
			type: "POST",
			url:"common/ajaxPhp/ajaxPhp.common.default.php",
			dataType: "json",
			data: data,
			beforeSend: function(x) {
				if(x && x.overrideMimeType) {
					x.overrideMimeType("application/json;charset=UTF-8");
				}
			},
			success: function(response) {
				responseHandle(id,m,act,response);
			}
		});
		
}

/*

Generalization

RESPONSE HANDLER
	ELEMENT
		* id
		* class
		
	RESPONSE array{
		
		RENDER
			* form_rez
			* content
		
		ACTION
			* click
			* attribute
				- mod
					change
					add
					remove
				- attribute_name
				-value
				
			* showhide
			
			* dialog
				type: - create
					width
					title
					content
				type: - destroy
				
			* redirect
				- url
		
		CALL
			* effect
			* confirm
			* ajax
			* instance
		
	}
		


*/

function responseHandle(id,m,act,response){
	$("#form_rez_"+id).html("").removeClass("error");
	$("input[id='"+id+"'][type='submit']").removeClass("submit_loading").removeAttr("disabled","");
	
	var status=response.status;
	var id_r=response.id;
	var handlers=response.handlers;
	
	
	//print_r(response);
	
	for (var element in handlers) {
      	var handler = handlers[element];

		for (var action in handler) {
			var data = handler[action];
			
			switch(action){
					/*
						print content to element
					*/
					case 'content':
						$("[id='"+element+"']").html(data).addClass('message '+status).fadeIn("slow");
					break;
					/*
						
					*/
					case 'trigger':
						$("[id='"+element+"']").trigger(data.events);
					break;
					/*
						
					*/
					case 'attribute':
						//print_r(data);
						$.each(data,function(index,value){
							
								switch(value.mod){
									
									case "add":
										$("[id='"+element+"']").attr(value.attribute,$("#"+element).attr(value.attribute)+' '+value.value);
									break;
									
									case "change":
										$("[id='"+element+"']").attr(value.attribute,value.value);
									break;
									
									case "remove":
										$("[id='"+element+"']").removeAttr(value.attribute);
									break;
									
								}
								
						});			
						
					break;
					/*
						
					*/
					case 'toggle':
						$("[id='"+element+"']").toggle();
					break;
					/*
						
					*/
					case 'show':
						$("[id='"+element+"']").show();
					break;
					/*
						
					*/
					case 'hide':
						$("[id='"+element+"']").hide();
					break;
					/*
						
					*/
					case 'destroy':
						$("[id='"+element+"']").destroy();
					break;
					/*
						
					*/
					case 'dialog':
					
						switch(data.type){
							case "create":
								
								$("div[id='dialog_box_"+element+"']").dialog('destroy');
								$("div[id='dialog_box_"+element+"']").remove();
								$("body").append('<div id="dialog_box_'+element+'">'+data.content+'</div>');
								$("div[id='dialog_box_"+element+"']").dialog({modal:true,title:data.title,width:data.width});
								
								
								
							break;
							case "destroy":

								$("div[id='dialog_box_"+element+"']").dialog('destroy');
								
							break;
						}
					break;
					/*
						
					*/
					case 'redirect':
						location.replace(data.url);
					break;
					/*
						
					*/
					case 'effect':
					
					break;
					/*
						
					*/
					case 'confirm':
					
					break;
					/*
						
					*/
					case 'ajax':
					
					break;
					/*
						
					*/
					case 'instance':
						
						switch(data.instance){
							case 'ckeditor':
								
							break;
							case 'uploadify':
							break;
						}
						
					break;
					
					/*
						
					*/
					case 'window':
					
						if($('script[src="lib/jquery/window/lib.jquery.window.js"]').attr('type')!='text/javascript'){
							
							$('head').append(unescape('<link href="lib/jquery/window/css/lib.jquery.window.default.css" rel="stylesheet" media="all"/>'));
							$('head').append(unescape('<script src="lib/jquery/window/lib.jquery.window.js" type="text/javascript"></script>'));
							
						}
						
						var window = null; // to remember last created window instance
						function createWindow() { // create a inner html window
						   window = $.window(data);
						}
						
						if(window==null){
							createWindow();
						}
						else{
							//alert("postoji window");
							window.restore();
						}
					break;
					/*
						
					*/
					case 'notice':
					
					break;
					/*
						
					*/
					case 'error':
					
					break;
					/*
						
					*/
					case 'warning':
					
					break;
					/*
						
					*/
					case 'consult':
					
					break;
					/*
						func to refresh dyn element data with ajax call
					*/
					case 'refresh':
						
					break;

					//######### ################
					case '#confirm':
						var confirmContent='<input lang="'+id+'" type="submit" class="forma confirm da" name="'+m+'" value="Da" alt="'+act+'" id="POTVRDI" ><input lang="'+id+'" type="button" class="forma confirm ne" name="'+m+'" value="Ne" alt="'+act+'" id="POTVRDI"><hr class="clear">';
						$("#form_rez_"+id).addClass("ok").html(data.responseContent+"<br>"+confirmContent);
					
					break;
					
				}
			
		}
 
   }
   
   
   for (var element in handlers) {
	   
      	var handler = handlers[element];

			for (var action in handler) {
				var data = handler[action];

				switch(action){
						
						case 'script':
							
							if(data.header!=''){
								$('head').append(unescape(data.header));
							}
							if(data.footer!=''){
								$('body').append(unescape(data.footer));
							}
							
						break;
				
	 
	   			}
			}
		
	}


}


