/* 

	Tablecloth 
	written by Alen Grakalic, provided by Css Globe (cssglobe.com)
	please visit http://cssglobe.com/lab/tablecloth/
	
*/

var isAll=new Array();
var isSelectCheckBox=new Array();	




this.tablecloth = function(num){
	
	var nm='#moduloEsterno'+num;

	Shadowbox.init();
	
	setAllTooltips();
	
	// CONFIG 
	
	// if set to true then mouseover a table cell will highlight entire column (except sibling headings)
	var highlightCols = false;
	
	// if set to true then mouseover a table cell will highlight entire row	(except sibling headings)
	var highlightRows = true;	
	
	// if set to true then click on a table sell will select row or column based on config
	var selectable = true;
	
	// this function is called when 
	// add your own code if you want to add action 
	// function receives object that has been clicked 
	this.clickAction = function(obj){
		//alert(obj.innerHTML);
		
	};


	
	// END CONFIG (do not edit below this line)
	
	
	var tableover = false;
	this.start = function(){
		
		var tables = $j(nm+" .tableCorrelati");
										
						
		tables.find('th').not(':last').not('.noLink').css('cursor','pointer').click(function(){
																			  
			campo=$j(this).find('.hidden').text();
			
			versoOrderBy= $j('#versoOrderBy'+num).attr('value');
			
			tmpVersoOrderBy=(versoOrderBy=="asc")?"desc":"asc";
			
			if($j('#orderBy'+num).attr('value')!=campo) {
					
				tmpVersoOrderBy=(campo!='data')?'asc':'desc';
					
			}
										
			eval('modulo = moduloEsterno'+num+';');
				
			
			var catFolderFinal=$j('#catFolderFinal'+num).attr('value');
				
			otherParams=(catFolderFinal)?'&catFolderFinal='+catFolderFinal:'';
				
			$j(nm).load(modulo+'&orderByFinal='+campo+'&versoOrderByFinal='+tmpVersoOrderBy+'&pageNumFinal=0'+otherParams, 
						
						function(){ 
																																	
								setScriptModulo(num); 																																		   
												   
								positionModule(num); 
								
						});	
				
				
		});
		
		for (var i=0;i<tables.length;i++){
			tables[i].onmouseover = function(){tableover = true};
			tables[i].onmouseout = function(){tableover = false};			
			rows(tables[i]);
		};
		
	};
	
	this.rows = function(table){
		var css = "";
		var tr = table.getElementsByTagName("tr");
		for (var i=0;i<tr.length;i++){
			css = (css == "odd") ? "even" : "odd";
			tr[i].className = css;
			var arr = new Array();
			for(var j=0;j<tr[i].childNodes.length;j++){				
				if(tr[i].childNodes[j].nodeType == 1) arr.push(tr[i].childNodes[j]);
			};		
			for (var j=0;j<arr.length;j++){
				
				arr[j].num=num;					
				arr[j].row = i;
				arr[j].col = j;
				if(arr[j].innerHTML == "&nbsp;" || arr[j].innerHTML == "") arr[j].className += " empty";					
				arr[j].css = arr[j].className;
				arr[j].onmouseover = function(){
					over(table,this,this.row,this.col);
				};
				arr[j].onmouseout = function(){
					out(table,this,this.row,this.col);
				};
				arr[j].onmousedown = function(){
					down(table,this,this.row,this.col);
				};
				arr[j].onmouseup = function(){
					up(table,this,this.row,this.col);
				};				
				arr[j].onclick = function(){
					click(table,this,this.row,this.col,this.num);
				};								
			};
		};
	};
	
	// appyling mouseover state for objects (th or td)
	this.over = function(table,obj,row,col){
		if (!highlightCols && !highlightRows) obj.className = obj.css + " over";  
		if(check1(obj,col)){
			if(highlightCols) highlightCol(table,obj,col);
			if(highlightRows) highlightRow(table,obj,row);		
		};
	};
	// appyling mouseout state for objects (th or td)	
	this.out = function(table,obj,row,col){
		if (!highlightCols && !highlightRows) obj.className = obj.css; 
		unhighlightCol(table,col);
		unhighlightRow(table,row);
	};
	// appyling mousedown state for objects (th or td)	
	this.down = function(table,obj,row,col){
		obj.className = obj.css + " down";  
	};
	// appyling mouseup state for objects (th or td)	
	this.up = function(table,obj,row,col){
		obj.className = obj.css + " over";  
	};	
	// onclick event for objects (th or td)	
	this.click = function(table,obj,row,col,num){

		if(check1){
			if(selectable) {
				if(isSelectCheckBox[num]){
					
					var checkBoxObj=$j(obj).parent().find('.checkbox:first');
					if(checkBoxObj.attr('id')) selectCheckBox(checkBoxObj);					
				}
				isSelectCheckBox[num]=1;
				
				unselect(table);	
				if(highlightCols) highlightCol(table,obj,col,true);
				if(highlightRows) highlightRow(table,obj,row,true);
				document.onclick = unselectAll;
			}
		};
		clickAction(obj); 		
	};		
	
	this.highlightCol = function(table,active,col,sel){
		var css = (typeof(sel) != "undefined") ? "selected" : "over";
		var tr = table.getElementsByTagName("tr");
		for (var i=0;i<tr.length;i++){	
			var arr = new Array();
			for(j=0;j<tr[i].childNodes.length;j++){				
				if(tr[i].childNodes[j].nodeType == 1) arr.push(tr[i].childNodes[j]);
			};							
			var obj = arr[col];
			if (check2(active,obj) && check3(obj)) obj.className = obj.css + " " + css; 		
		};
	};
	this.unhighlightCol = function(table,col){
		var tr = table.getElementsByTagName("tr");
		for (var i=0;i<tr.length;i++){
			var arr = new Array();
			for(j=0;j<tr[i].childNodes.length;j++){				
				if(tr[i].childNodes[j].nodeType == 1) arr.push(tr[i].childNodes[j])
			};				
			var obj = arr[col];
			if(check3(obj)) obj.className = obj.css; 
		};
	};	
	this.highlightRow = function(table,active,row,sel){
		var css = (typeof(sel) != "undefined") ? "selected" : "over";
		var tr = table.getElementsByTagName("tr")[row];		
		for (var i=0;i<tr.childNodes.length;i++){		
			var obj = tr.childNodes[i];
			if (check2(active,obj) && check3(obj)) obj.className = obj.css + " " + css; 		
		};
	};
	this.unhighlightRow = function(table,row){
		var tr = table.getElementsByTagName("tr")[row];		
		for (var i=0;i<tr.childNodes.length;i++){
			var obj = tr.childNodes[i];			
			if(check3(obj)) obj.className = obj.css; 			
		};
	};
	this.unselect = function(table){
		tr = table.getElementsByTagName("tr")
		for (var i=0;i<tr.length;i++){
			for (var j=0;j<tr[i].childNodes.length;j++){
				var obj = tr[i].childNodes[j];	
				if(obj.className) obj.className = obj.className.replace("selected","");
			};
		};
	};
	this.unselectAll = function(){
		if(!tableover){
			tables = document.getElementsByTagName("table");
			for (var i=0;i<tables.length;i++){
				unselect(tables[i])
			};		
		};
	};	
	this.check1 = function(obj,col){
		return (!(col == 0 && obj.className.indexOf("empty") != -1));
	}
	this.check2 = function(active,obj){
		return (!(active.tagName == "TH" && obj.tagName == "TH")); 
	};
	this.check3 = function(obj){
		return (obj.className) ? (obj.className.indexOf("selected") == -1) : true; 
	};	
	
	start();
	
};


function deleteCheck(num)
{
	
	var nm='#moduloEsterno'+num;
	
	var toDelete=new Array();		
	var objects = $j(nm+' .checkbox');
	for(var no=0;no<objects.length;no++){
		if(objects[no].checked)toDelete.push(objects[no].value);
	}	
	if(toDelete.length>0){
		
		eval('modulo = moduloEsterno'+num+';');
		
		pageNumFinal=$j('#pageNumFinal'+num).attr('value');
	
		$j(nm).load(modulo+'&toDelete='+toDelete+'&pageNumFinal='+pageNumFinal, function(){ setScriptModulo(num); positionModule(num) });
	}
				
}

function selectAll(num)
{
	var nm='#moduloEsterno'+num;
	
	if(isAll[num]){
		isAll[num]=0;
		var objects = $j(nm+' .checkbox');
		for(var no=0;no<objects.length;no++){
			objects[no].checked=1;
		}	
		$j(nm+' #folderAdd').html('<img src="img/icons/folder_delete.gif" alt="" />');
		
		setTooltip(nm+' #folderAdd','Deseleziona tutti');
	}
	else deselectAll(num);
}

function setTooltip(obj, message)
{
	$j(obj).attr('title',message);
		
	$j('.tips1').tooltip({
		track: true, 
		delay: 350, 
		showURL: false, 
		extraClass: "fluid" 
	});
			
}

function deselectAll(num)
{
	var nm='#moduloEsterno'+num;
	
	isAll[num]=1;
	var objects = $j(nm+' .checkbox');
	for(var no=0;no<objects.length;no++){
		objects[no].checked=0;
	}	
	$j(nm+' #folderAdd').html('<img src="img/icons/folder_add.gif" alt="" />');
	setTooltip(nm+' #folderAdd','Seleziona tutti');
			
}

function selectCheckBox(obj){
	$j(obj).attr('checked',!$j(obj).attr('checked'));
}

function blockSelectCheckBox(num){
	isSelectCheckBox[num]=0;
}

function sendNewsletter(id){
	
	
		$j.ajax({
		   type: "POST",
		   url: root+"pages/sendNewsletter.php",
		   data: "id="+id,
		   async: false,
		   success: function(msg){			 
				//if(tabella=="categoria")location.reload();
				alert(msg);
		   }
		});	
		
}

function setScriptModulo(num){
		
	var nm='#moduloEsterno'+num;
	
	isAll[num]=1;
	isSelectCheckBox[num]=1;
	
	
	tablecloth(num);
	
	$j(nm+' .checkboxUpdate').click(function(){
		
		var obj=$j(this);
		var tmp=obj.attr('value').split(',');
		var tabella=tmp[0];
		var nmCampo=tmp[1];
		var id=tmp[2];
		var arg=tmp[3];
		var isChecked=obj.attr('checked');
		isChecked=(!isChecked)?0:1;
		
		var checkBoxObj=obj.parent().parent().find('.checkbox:first');
		if(checkBoxObj.attr('id')) blockSelectCheckBox(num);
		
		$j.ajax({
		   type: "POST",
		   url: root+"pages/setCheckbox.php",
		   data: "tabella="+tabella+"&id="+id+"&nmCampo="+nmCampo+"&isChecked="+isChecked+"&arg="+arg,
		   async: false,
		   success: function(msg){			 
				//if(tabella=="categoria")location.reload();
		   }
		});	

	});
	
	$j(nm+' .checkbox').click(function(){
		
		blockSelectCheckBox(num);		
	});
	
	$j(nm+' .tableCorrelati a').click(function(){
		
		blockSelectCheckBox(num);		
	});
		
}

function goToPage(num,pageNumFinal){
	
	var nm='#moduloEsterno'+num;
	
	eval('modulo = moduloEsterno'+num+';');
	
	orderBy=$j('#orderBy'+num).attr('value');
	
	versoOrderBy=$j('#versoOrderBy'+num).attr('value');
	
	catFolderFinal=$j('#catFolderFinal'+num).attr('value');
	
	if(!catFolderFinal) catFolderFinal=0;
	
	otherParams='&catFolderFinal='+catFolderFinal;
	
	$j(nm).load(modulo+'&orderByFinal='+orderBy+'&versoOrderByFinal='+versoOrderBy+'&pageNumFinal='+pageNumFinal+otherParams, function(){ setScriptModulo(num); positionModule(num); });
	
}

function openFolder(num,catFolderFinal){
	
	var nm='#moduloEsterno'+num;
	
	eval('modulo = moduloEsterno'+num+';');
	
	orderBy=$j('#orderBy'+num).attr('value');
	
	versoOrderBy=$j('#versoOrderBy'+num).attr('value');
	
	$j(nm).load(modulo+'&orderByFinal='+orderBy+'&versoOrderByFinal='+versoOrderBy+'&catFolderFinal='+catFolderFinal, function(){ setScriptModulo(num); positionModule(num); });
	
}


function changeOrder(num,isUp,ordine,idChange){
	
	var nm='#moduloEsterno'+num;
	
	eval('modulo = moduloEsterno'+num+';');
	
	orderBy=$j('#orderBy'+num).attr('value');
	
	versoOrderBy=$j('#versoOrderBy'+num).attr('value');
	
	pageNumFinal=$j('#pageNumFinal'+num).attr('value');
	
	catFolderFinal=$j('#catFolderFinal'+num).attr('value');
		
	otherParams=(catFolderFinal)?'&catFolderFinal='+catFolderFinal:'';
	
	$j(nm).load(modulo+'&up='+isUp+'&ordine='+ordine+'&idChange='+idChange+'&orderByFinal='+orderBy+'&versoOrderByFinal='+versoOrderBy+'&pageNumFinal='+pageNumFinal+otherParams, function(){ setScriptModulo(num); });
	
}


