// JavaScript Document
var time=5;
var pause=0;
var tickspeed=60000; //ticker speed in miliseconds (2000=2 seconds)
window.setInterval("keepAlive()",tickspeed);

function keepAlive(){
	time--;
	if (time == 0) 	cmdSubmit({cmd:'keepalive'});
}


$(document).ready(function(){
	pageResize();
	$(window).bind("resize",pageResize);
	// setup();
});

// **** cv user layout ************
function cv_layout() {
	$(window).unbind("resize",pageResize);
	$("#menu,#page_wrapper,#page_container").addClass("public");
	$("#page_wrapper").css("margin-left","5px");
	$("#page_container").removeAttr("style");
}

function admin_layout() {
	//pageResize();
	//$(window).bind("resize",pageResize);
	//$("#menu,#page_wrapper,#page_container").removeClass("public");
	$("#page_wrapper").css("margin-left","140px");
	//$("#page_container").attr('style','height:450px');
}

// ********************************************************************************

function cmdSubmit(i) {
	waitImg(true);

	$.post("index.php", i,  
		function(data){
			waitImg(false);
			time = 5;
			if (data != null && typeof (data) == 'object' && typeof (data.push) != 'undefined') {
				alert("error");
			} else {
				//while (data.substr(0,1) == ' ' || data.substr(0,1) == '\n') {data = data.slice(1);}
				i = data.search('{');
				if (i == -1 || i > 0) {
					if (i == -1) error = data; else error = data.substr(0,i);
					if (i == -1) data = ''; else data = data.substr(i);
					
					if (error != 'keepalive' && (i==-1 || i>10)) {
						if (i != -1) error = '<pre>' + error + '</pre>';
						$("#dialog").remove();
						$("body").append('<div id="dialog" title="Error">' + error + '</div>');
						$("#dialog").dialog({ bgiframe: true, modal: true, width: 'auto', resizable:false}); //$(this).dialog('close');
					}
				}
				if (data != '') {
					var a = eval('('+data+')');
					for (x in a) {
						if (x == "#dialog") {
							//cancello il messaggio vecchio;
							$("#dialog").remove();
							$("body").append(a[x]);
							$("#dialog").dialog({ bgiframe: true, modal: true, width: 'auto', resizable:false}); //$(this).dialog('close');
							formOnlyDigits();
						} else if (x == "#js") {
							//alert (a[x]);
							eval(a[x]);
						} else {
							$(x).html(a[x]);
						}
					}
				}
			}
		},"text"
	);
}


// *** fine cmd shortcuts **************


function formOnlyDigits() {
	var editingKeys = {
	   '8'  : 'backspace',
	   '46' : 'canc',
	   '9'  :  'tab',
	   '13' : 'return',
	   '37' : 'leftarrow',
	   '39' : 'rightarrow'
	};

	$('.onlydigits').bind('keydown', function(e) {
               var key = e.keyCode;
               var keynum = (key > 47) && (key < 58);
               var keypad  = (key > 95) && (key < 106);  // tastiera numerica
               if (!keynum && !keypad) {
                   return (key in editingKeys);
               }
	});
};


function formSubmit(frm, table) { // [table],frm
	var i = "obj=" + frm + "&op=save&";
    frm = "#" + frm;
	if(table !== undefined) {i += "table="+table+"&"};
	i += $(frm).serialize();
	$(frm + ' input[type=checkbox]').each(function(index){
		if (i.indexOf('&'+$(this).attr('name')+'=')==-1)
			i += '&'+$(this).attr('name')+'=';
	});
	$(frm + " input[type=file]").each(function(index) {
		if ($(this).val() != '')
			i += '&'+$(this).attr('name')+'=true';
	});
	cmdSubmit(i);
	return false;
}

function formElementSubmit(frm, ele, table) {
	var i = "obj=" + frm + "&op=element&";
	//if(table !== undefined) {i += "table="+table+"&"};
	if(table !== undefined) i = "obj=" + table + "&op=filter&";
	i += $("#"+ele).serialize();
	cmdSubmit(i);
	return false;
}

function formSubmitAlt(frm) {
	//$('#'+frm).attr('action','?obj='+frm+'&op=altsave').attr('method','post').attr('enctype','multipart/form-data').removeAttr('onsubmit').each(function(i){this.submit()});
	$('#'+frm).prepend('<input id="obj" type="hidden" value="'+frm+'" name="obj"><input id="op" type="hidden" value="altsave" name="op">');
	//$('#'+frm).attr('action','').attr('method','POST').attr('enctype','multipart/form-data').removeAttr('onsubmit');
	$('#'+frm).removeAttr('onsubmit').submit();
	//$('#'+frm).removeAttr('onsubmit').submit('waitImg(true);');
}

function formError(errs) {
	$(".errormsg").remove();
	$(".error").removeClass("error");
	$.each(errs, function(i,val) {
		$("#"+i).addClass('error').parent(".value,.checkbox,.allegato,.lingua").append(val);
	});
	$(".error:first").each(
		function (i) {
			if (this.tagName == 'SPAN') {
				$(this).find("input:first").each (function (i) {this.focus()});
			} else {
				this.focus();
			}
		}
	);
}

function formEmpty(frm) {
	$('#'+frm+' div:visible input:text').attr('value','');
	$('#'+frm+' select').attr('value','');
	$('#'+frm+' input:checkbox').removeAttr('checked');
}

function formAutocomplete() {
	$("input.autocomplete").each(function () {
		field = $(this).attr("id");
		$(this).autocomplete("controllers/autocomplete_"+field+".php", {width: 278, selectFirst: false });
		$(this).result(function(event, data, formatted) { if (data) $("#id"+field).val(data[1]); });
	});
}

function formFCKeditor(field) {
	var oFCKeditor = new FCKeditor( field ) ;
	oFCKeditor.BasePath = "js/fckeditor/" ;
	oFCKeditor.ToolbarSet = 'MyToolbar' ;
	oFCKeditor.ReplaceTextarea() ;
	$('iframe').attr('height','600px');
}

function formMultiSelectClick(i,m,c) { // i = item(this) m = input id c = value to toggle
	var value = $('#'+m).attr("value");
	if (value != '') value = ',' + value;
	
	var isSelected = $(i).hasClass('opt_selected');
	
	var isSpecialMenu = (c.indexOf("()") > -1);
	if (isSpecialMenu) $('#' + m + "_" + c.replace('()','')).slideToggle('fast');
	if (isSpecialMenu && isSelected && (value.indexOf(c) == -1)) return;
		
		if (isSelected){
			value = value.replace(',' + c , '');
		} else {
			value = value + ',' + c;
		}
		value = value.substr(1);
		$('#'+m).attr({value : value});
		$(i).toggleClass('opt_selected');
}

function formMultiSelectClick2(i,m,c) { // i = item(this) m = input id c = value to toggle
	var value = $('#'+m).attr("value");
	mastercode = c.substr(0,3);
	//if (value != '') value = ',' + value;
	
	var isSelected = $(i).hasClass('opt_selected');
	
	if (isSelected){
		value = value.replace(c , '');
	} else {
		value = value.replace(mastercode + '(', mastercode + '(' + c + ',');
	}
	value = value.replace('(,' , '(')
	value = value.replace(',)' , ')')
	
	$('#'+m).attr({value : value});
	$(i).toggleClass('opt_selected');
}

function formMultiSelectButton(i) { // i = input id
	var hh = $("#"+i+"_PUP").height();
	if ( hh > 150) $("#"+i+"_PUP").height(150);
	$("#"+i+"_PUP").slideToggle("fast");
}

// ********************************************************************************

function pageResize() {
	var wh = $(window).height()-130;
	if(wh < 450) wh = 450;
	wh += 'px';
	$("#page_container").css({height: wh});
}

function waitImg(show) {
	if (show) {	
		$("#waitimg").remove();
		var w = $(window); 
		var css = {
			position: 'absolute',
			top: Math.round((w.height()-66) / 2), 
			left: Math.round((w.width()-66) / 2),		
			width: '66px',
			height: '66px',
			'z-index': 2000
		};
		wi = $('<div id="waitimg"><img src="css/layout/ajax-loader_big.gif" alt="attesa"/></div>').css(css);
		$("body").append(wi);
		$("body").css('cursor','wait');
	} else {
		$("#waitimg").remove();
		$("body").css('cursor','inherit');
	}
}

// ***********************************************************************************

function chk_today(i) {
	if ($('#attuale'+i).is(':checked')) {
		$('#attuale'+i).attr('checked', false);
		$('#al'+i+'_month,#al'+i+'_year').show();
	} else {
		$('#attuale'+i).attr('checked', 'checked');
		$('#al'+i+'_month,#al'+i+'_year').hide();
	}
}

function subCodesDisable(t) { 
	$(t).filter(':checked').parent().next().find(':checkbox').attr('disabled','disabled').removeAttr('checked');
	$(t).not(':checked').parent().next().find(':checkbox').removeAttr('disabled');
}

function subCodesEnable(t) { 
	$(t).not(':checked').parent().next().find(':checkbox').attr('disabled','disabled').removeAttr('checked');
	$(t).filter(':checked').parent().next().find(':checkbox').removeAttr('disabled');
}

function subCodes(field,menu) {
	o = "";
	$('#codes_selection_frm input:checked').each(function(i){o += "," + this.name.substr(4);}); 
	$('#'+field).attr('value',o.substr(1));

	cmdSubmit({obj:'form',op:'updcodedescr',menu:menu,field:field,value:o.substr(1)})
}

function subCodesChange(menu_field, field) {
	// change delle posizioni, controlla e apre o nasconde il menu per i sottocodici.
	mymenu = $('#'+menu_field).attr('value');
	//alert(mymenu);
	if (mymenu == '202' || mymenu == '308' || mymenu == '404' || mymenu == '405' || mymenu == '502') {
		cmdSubmit({cmd:'dialog', view:'cv_codes', menu:mymenu, field:field});
		$('#'+menu_field+'+span').show();
	} else {
		$('#'+field).attr('value','');
		$('#'+menu_field+'+span').hide();
	}
}

function subSubCodesChange(menu_field, field) {
	// controllo se nel menu_field � presente uno dei subcodici menu 40420,40520 (PAESI) 40510 (REGIONI)
	mymenu = $('#'+menu_field).attr('value');
	if (mymenu == '40420' || mymenu == '40520' ) {
		// paesi
		cmdSubmit({cmd:'dialog', view:'cv_codes', menu:'NAZ', field:field});
		// aggiungo l'input e il tasto
		$('#'+menu_field+'+span').show();
	} else if (mymenu == '40510' ) {
		// regioni
		cmdSubmit({cmd:'dialog', view:'cv_codes', menu:'PROV', field:field});
		// aggiungo l'input e il tasto
		$('#'+menu_field+'+span').show();
	} else {
		$('#'+field).attr('value','');
		$('#'+menu_field+'+span').hide();
		// rimuovo l'input e il tasto
	}
}

