function SfindObj(n, d) 
{	//v4.01
	var p, i, x;
	if (!d) 
		d = document; 
	if ((p = n.indexOf("?") ) > 0 && parent.frames.length) 
	{
		d = parent.frames [n.substring(p + 1)].document; 
		n = n.substring(0, p);
	}
	if (!(x = d [n]) && d.all) 
		x = d.all [n]; 
	for (i = 0; !x && i < d.forms.length; i ++) 
		x = d.forms [i] [n];
	for (i = 0; !x && d.layers && i < d.layers.length; i ++)
		x = SfindObj(n, d.layers [i].document);
	if(!x && d.getElementById) 
		x = d.getElementById(n);
	return x;
}

function SwBm (nId, sContent) {
	obj=SfindObj('addressbm1');obj.className='addressbmna';
	obj=SfindObj('addressbm2');obj.className='addressbmna';
	obj=SfindObj('addressbm' + nId);obj.className='';
	obj=SfindObj('addr');obj.innerHTML = sContent;
}

function SwSBm (nId, sContent) {
	obj=SfindObj('switcherbm1');obj.className='switcherbmna';
	obj=SfindObj('switcherbm2');obj.className='switcherbmna';
	obj=SfindObj('switcherbm' + nId);obj.className='';
	obj=SfindObj('swr');obj.innerHTML = sContent;
}

function ExpoMenuA (nExpoId) {
	if (FirstExpo) {
		obj=SfindObj ('date_'+FirstExpo);obj.style.borderBottom = '';obj.style.marginBottom = '8px';
		obj=SfindObj ('sub_'+FirstExpo);obj.style.visibility = 'hidden';
	}
	obj=SfindObj ('date_'+nExpoId);obj.style.borderBottom = '1px solid #064591';obj.style.marginBottom = '7px';
	obj=SfindObj ('sub_'+nExpoId);obj.style.visibility = 'visible';
}

function ExpoMenuD (nExpoId) {
	if (FirstExpo) {
		obj=SfindObj ('date_'+FirstExpo);obj.style.borderBottom = '';obj.style.marginBottom = '8px';
		obj=SfindObj ('sub_'+FirstExpo);obj.style.visibility = 'hidden';
	}
	obj=SfindObj ('date_'+nExpoId);obj.style.borderBottom = '';obj.style.marginBottom = '8px';
	obj=SfindObj ('sub_'+nExpoId);obj.style.visibility = 'hidden';
}


this.tablecloth = function(){
	
	// 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 = document.getElementsByTagName("table");
		for (var i=0;i<tables.length;i++)
		{
			if(tables[i].className.indexOf('tablecloth') == -1) continue;
			
			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].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);
				};								
			};
		};
	};
	
	// 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){
		if(check1){
			if(selectable) {
				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();
	
};

/* script initiates on page load. */
window.onload = tablecloth;




function parse_json(json)
{
	if(json == undefined || !json || json == '') return;
    json = eval( "(" + json + ")"); 
	if(json == undefined || !json || !json.length) return;
	
	for(var i in json)
	{
		if(json[i] == null || typeof(json[i].type)=='undefined') continue;
		var needparse = false;
		switch(json[i].type)
		{
			case 'html':
				var obj = $('#'+json[i].name); if(!obj.length) continue;
				obj.html(json[i].value);
				set_form(obj);
				$("a.fotoimg, a.avatarimg", obj).fancybox({ 'hideOnContentClick': true, 'overlayShow': false }); 
				break;
			
			case 'alert':
				alert(json[i].value);
				continue;
			
			case 'go':
				window.location.href = json[i].value;
				continue;	
			
			case 'remove':
				$('#'+json[i].name).remove();
				continue;
			case 'code':
				eval(json[i].value);
				continue;
		}
	}
}

function set_form(obj)
{
	$('.ajaxform', obj).ajaxForm({ success: function(result) { parse_json(result); }});
}

function ajblock(url, name)
{
	$.post(url, {name:name}, parse_json);
	return false;
}


$(function() 
{
	$("a.fotoimg, a.avatarimg").fancybox({ 'hideOnContentClick': true, 'overlayShow': false }); 
});