top.uData = "" ;
var ctree = false ;
var stree = false ;
var ctreeLoaded = 1 ;
var streeLoaded = 1 ;
top.ctree = ctree;
top.stree = stree;
top.ctreeLoaded = ctreeLoaded;
top.streeLoaded = streeLoaded;
var contactData = new Array();
var cat = "cat" ;
top.cat = cat ;
/*
	setContactData( value )

	+ rebo una id i obtinc per XMLHTTP les dades del profile
	+ les processo i les retorno en un objecte
	+ les coloco als camps del form
*/

function setContactData( form , value ){
	
	// 1- realitzar peticio XMLHTTP i obtenir dades
	// 2- parsejar dades i formar camp=valor
	// 3- colocar els valors al formulari
	if( value == "none" ) return false ;
	
	if( contactData[value] ){
		setObjFieldValues( form , value ) ;
		return true;
	}
	
	var rand_str = Math.round(Math.random() * 2147483648.000000);
	var url = "contacte.php?action=xml&id_contacte="+value+"&tstamp="+rand_str ;
	var xmlhttp = new XmlHttpCreate();
	xmlhttp.open("GET", url , false );
	xmlhttp.setRequestHeader("Content-Type","text/xml");
	xmlhttp.send(null);
	var xmlDoc = xmlhttp.responseXML ;
	var contacts = xmlDoc.getElementsByTagName("contactlist");
	var contact = contacts[0].getElementsByTagName("contact")[0] ;
	var o = new Array();
		// recorro cada contacte
		for(var u = 0 ; u < contact.childNodes.length ; u++ ){
			var camp = contact.childNodes[u].nodeName ;
			
			if( ( camp == "nom" || camp == "cognom_1" || camp == "cognom_2" || camp == "email" ) ){
				//form.elements[camp].name.value = contact.childNodes[u].nodeValue;
				document.forms[form.id].elements[camp].value = contact.childNodes[u].firstChild.nodeValue ;
				o[contact.childNodes[u].nodeName] = contact.childNodes[u].firstChild.nodeValue ;
			}
			contactData[value] = o ;
		}
}

function setObjFieldValues( form , val ){
	//alert("mem");
	var o = contactData[val];
	for( var i in contactData[val] ){
		document.forms[form.id].elements[i].value = o[i] ;
	}
	return true;
}


/*
	checkPwdValues( form )

	+ rebo una id de form i comprovo que password i vpassword son iguals o false
	+ 
*/
function checkPwdValues( idf , error ){
	error = (error==""||error==null) ? "error" : error ;
	if( f = document.getElementById(idf) ){
		if( (f.password.value && f.password.value == f.vpassword.value) ||
			( f.password.value == "" && f.password.value == "" && document.forms[idf].elements["action"].value == "mod" )
		){
		 return true;
		}
		else{
			alert( error );
			return false ;
		}
	}
}


/*
	checkLoginValues( error )

	+ rebo un string d'error i comprovo si s'ha d mostrar, username i/o password son null
	+ 
*/
function checkLoginValues( error ){
	error = (error==""||error==null) ? "error" : error ;
	if( f = document.getElementById('loginForm') ){
		if( f.backurl ) f.backurl.value = top.location.href ;
		if( f.username.value && f.password.value ){
		 return true;
		}
		else{
			alert( error );
			return false ;
		}
	}
}


/*
	exSimpleGet( geturl )

	+ GET
	+ 
*/
function exSimpleGet( geturl ) {
    var xmlhttp = XmlHttpCreate();
    var handler = function () {
            if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
             return ;
			}
	}
   XmlHttpGET(xmlhttp, geturl , handler);
}




/*
	exGet( divid , geturl )

	+ rebo id de div i url i omplo l'innerHTML amb la resposta GET
	+ 
*/
function exGet( divid , geturl ) {
    var xmlhttp = XmlHttpCreate();
    var handler = function () {
            if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
             document.getElementById(divid).innerHTML = xmlhttp.responseText ;
			}
	}
   XmlHttpGET(xmlhttp, geturl , handler);
}


/*
	exGet( divid , geturl )

	+ rebo id de div i url i omplo l'innerHTML amb la resposta GET
	+ 
*/
function exGetwError( divid , geturl , errorurl ) {
    var xmlhttp = XmlHttpCreate();
	var n = 0;
    var handler = function () {
            if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
             $(divid).innerHTML = xmlhttp.responseText ;
			 notifySuccessTimed('Loaded',400);
			}
			
			
			if( 4 == xmlhttp.readyState && 404 == xmlhttp.status ){
				errorurl = parseHTTPResultCode( errorurl , xmlhttp.status );
				errorurl = ( ( errorurl != false && errorurl != "" && errorurl != null ) ? errorurl : errorUrl() ) ;
				exGet( 'news-details' , errorurl );
			}
	}
   XmlHttpGET(xmlhttp, geturl , handler);
}





/*
	exGetRaw( divid , geturl )

	+ rebo id de div i url i omplo l'innerHTML amb la resposta GET amb un PRE
	+ 
*/
function exGetRaw( divid , geturl ) {
    var xmlhttp = XmlHttpCreate();
    var handler = function () {
            if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
             document.getElementById(divid).innerHTML = "<pre>"+xmlhttp.responseText+"</pre>" ;
			}
	}
   XmlHttpGET(xmlhttp, geturl , handler);
}

/*
	exPOST( divid , geturl )

	+ rebo id de div i url i omplo l'innerHTML amb la resposta GET
	+ 
*/
function exPost( divid , form , posturl ) {
    var xmlhttp = XmlHttpCreate();
	var data = getFormData( form );
	divid = (divid==false||divid==null||divid=="") ? 'content-main' : divid ;
	if(!data) return false;
    var handler = function () {
            if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
             document.getElementById(divid).innerHTML = xmlhttp.responseText ;
			}
	}
    XmlHttpPOST(xmlhttp, posturl , data, handler );
}


function getFormData( form ){
	var vs = ( $(form).elements ) ? $(form).elements : document.forms[form].elements ;
	var str = "";
	var ff = new Array();
	for( i = 0 ; i < vs.length ; i++ ){
		if(vs[i].type=="radio" && !ff[vs[i].name] )
		{
			//alert( 'ff["'+vs[i].name+'"] = '+ getCheckedRadio( form, vs[i].name ) );
			//str += (i==0?"":"&")+vs[i].name+"="+getCheckedRadio( form, vs[i].name ) ;
			ff[vs[i].name] = encodeURIComponent( escape(getCheckedRadio( form, vs[i].name )) );
		}
		else if( !ff[vs[i].name] && vs[i].type=="checkbox")
		{
			//str += (i==0?"":"&")+vs[i].name+"="+vs[i].value;
			if( vs[i].checked ){
				ff[vs[i].name] = encodeURIComponent( escape(vs[i].value) );
			}
		}
		else if( !ff[vs[i].name] && vs[i].type!="checkbox" )
		{
			//str += (i==0?"":"&")+vs[i].name+"="+vs[i].value;
			//alert( vs[i].value + "\n\n"+ encodeURI(vs[i].value) );
			ff[vs[i].name] = encodeURIComponent( escape(vs[i].value));
		}
	}
	var u=0;
	for(var v in ff){
		str += (u==0?"":"&")+v+"="+(ff[v]);
		u++;
	}
	return str ;
}


function showMod( table ){
	var ac = document.getElementById('result-container').innerHTML ;
	var av = document.getElementById('result-container').style.display ;
	var vs = document.getElementById('txt-show').style.display ;

	if( ac.indexOf('row') < 1 )	exGet('result-container' , 'results.php?table='+table ) ;
	
	var s = (vs == 'none') ? 'block' : 'none' ;
	var h = (s == 'none' ) ? 'block' : 'none' ;
	
	document.getElementById('txt-show').style.display = s ;
	document.getElementById('txt-hide').style.display = h;
	document.getElementById('result-container').style.display = h;
}


function switchMenu( page ){
	if( !page || page==null || page == "") return false;
	checkChanged();
	exGet( 'body-main' , page+".php" )
	checkCallbacks(page);
}

function checkCallbacks(page){
	return;
}


function roundCorner( id , time ){
	time = parseInt( ( !time || time == false || time == null ) ? 100 : time );
	setTimeout('doRounds("'+id+'");', time );
}

function doRoundRSS(){
	Rico.Corner.round('rss-header', {color:"#E4F0D9",border:"#E2E2E2"} );
}

function doRounds( id ){
	Rico.Corner.round(id, {color:"transparent"} );
}

function sw( page , div ){
	if( !page || page==null || page == "") return false;
	checkChanged();
	div = (div==false||div==null||div=="") ? 'body-main' : div ;
	exGet( div , page );
}

function showEditor( page ){
	switchMenu( page ) ;
	if(top.edited) alert('chged');
}


function switchOtherMenu( page , ext ){
	if( !page || page==null || page == "") return false;
	if( !ext || ext==null || ext == "") ext = "php";
	checkChanged();
	exGetRaw( 'body-main' , page+"."+ext );
}


function checkChanged(){
	if(top.edited && eval(document.getElementById('editor') ) ){
		alert( 'contenido cambiado' );
	}
}

function contentChanged(){
	top.edited = true ;
}

//tinyMCE.getContent()

// Custom save callback, gets called when the contents is to be submitted
function customSave(id, content) {
	alert(id+"="+content);
}



function userLogoff(backurl){
	//backurl = (backurl == false||backurl == null||backurl == "") ? top.location.href : backurl ;
	//top.location = "login.php?logoff=1&backurl="+backurl ;
	exSimpleGet('core.php?action=logoff');
	setTimeout( 'updateLoggedOff();', 500 );
	notifySuccessTimed('logoff success',1500);
}

function updateLoggedOff(){
	exGet('notify-bar','core.php?action=toolbar');
	exGet( 'menu-container' , 'core.php?action=usuari' );
	if( $('menu-user').style.display != "block" ){
		switchV('menu-user');
		switchV('menu-data');
	}
}


function getXMLContacts(){
	var xmlhttp = new XMLHttpRequest();
	xmlhttp.open("GET", "contacte.php?action=xml" , false);
	// if needed set header information 
	// using the setRequestHeader method
	xmlhttp.send(null);
	var xmlDoc = xmlhttp.responseXML ;
	xmlDoc.async = true; 
	var contacts = xmlDoc.getElementsByTagName("contactlist");
	var users = Array;
	var o = "" ;
	var contact;
	
	// recorro total contactes
	for(var i = 0 ; i < contacts.length; i++ ){
		contact = contacts[0].getElementsByTagName("contact") ;
		o = {};
		// recorro cada contacte
		for(var u = 0 ; u < contact[0].childNodes.length ; u++ ){
			
			var propname = contact[0].childNodes[u].nodeName ;
			o.propname = contact[0].childNodes[u].nodeValue ;
		}
		users[i] = o ;
	}
	
	return users;
}


function validateForm( form_id , values , msg ){
	if( !checkFormValues( form_id , values ) ){
		alert( msg );
		return false;
	}
	return true;
}



function checkFormValues( form_id , values ){
	var tree = stree ;
	var field = "main_subcat" ;
	var is_ok = true ;
	
	if( form_id == "categoria" && tree ){
	 document.forms["categoria"].elements[field].value = tree.getAllChecked() ;
	 	if( document.forms["categoria"].elements["maincat"].item(1).checked && document.forms["categoria"].elements[field].value == "" ){
	 		return false ;
		}
	}
	
	if( values.indexOf(":") > 0 ){
		var a = values.split(":");
	}
	else{
		var a = Array(values);
	}
	var num = a.length;
	var str = "";
	
	
	for( var i = 0 ; i < num ; i++ ){
	var camp = a[i];
	
		//showDebug(document.forms[form_id].elements[camp]);
		//str += i+" = "+ camp +" ("+document.forms[form_id].elements[camp].length+") = " + document.forms[form_id].elements[camp].value + " | "+document.forms[form_id].elements[camp].type+" \n";
		if( !validateField( document.forms[form_id].elements[camp] ) ){
			is_ok = false ;
			//break;
		}
	}
	return is_ok;
}


function validateField( field_id ){
	var t = field_id.type ;
	var v = field_id.value ;
	
	switch( t ){
		case "text":
		return ( v == "" || v == false || v == null ) ? false : true ;
		break;
		
		case "select-one":
		return ( v == "none" ) ? false : true ;
		break;
	
		case "radio":
		return true;
		// yet to complete
		/*
		var str="";
			
			for( var i = 0 ; i<field_id.length; i++ ){
				str += i+" : "+field_id.item(i).name+ " | "+field_id.item(i).value+" | "+field_id.item(i).checked+"\n" ;
			}
		
		alert( str );
		//return ( v == "" || v == false || v == null ) ? false : true ;
		return false;*/
		break;
	
		case "hidden":
		if( field_id.name == "main_subcat" && v == "none" )return false;
		return ( v == "" || v == false || v == null ) ? false : true ;
		break;
	
	
		default:
		return true;
		break;
	}
}


function showDebug( o ){

	var str ="" ;
	
	for(var i in o ){
		str += "<strong>" + i +"</strong> = "+ o[i] + "<br>" ;
		if( i=="item"){
			str += "#"+o.item(0).type+"<br>";
		}
	}
	document.getElementById('debug').innerHTML += str+"...............................................<br>" ;
	return false;
}



function getUrlContents( url , target ){
	var x = document.getElementById(target).style ;
	x.display = (x.display == "undefined" || x.display==''||x.display=="none")?"block":"none";
	if( document.getElementById(target).innerHTML != '' )	return;
	
    var xmlhttp = XmlHttpCreate();
    var handler = function () {
            if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
             document.getElementById(target).innerHTML = xmlhttp.responseText ;
			}
	}
   XmlHttpGET(xmlhttp, url , handler);
}


function switchTreeMenu( form , radio_field  , idtype ){
	var o = checkRadio( form , radio_field ) ;
	var tree = stree;
	var div = 'treeMenuSubcat';
	var fld = 'main_subcat' ;	
	var choose ='choosesubcat' ;
	
	if( document.forms[form].id == "categoria" ) {
		document.forms[form].elements[fld].value = ( o.value == true || !tree ) ? document.forms[form].elements[fld].value : (tree.getAllChecked()?tree.getAllChecked():"none") ; 
		//alert( document.forms[form].elements["main_cat"].value );
	}
	
	// && ( document.getElementById('choosecat').style.display == "none" ||
	//if( document.getElementById(choose) && 
	//	( document.getElementById(choose).style.display == "block" &&  o.value == "true" && o.value != document.forms[form].elements["main_cat"].value )
	// || ( document.getElementById('choosecat').style.display == "none" && o.value != "true" )
	//&& tree){
	if(tree){
		//alert( choose + " ("+document.getElementById(choose).style.display+") | " + ochoose + "("+document.getElementById(ochoose).style.display+")" );
		//document.getElementById(div).style.display = "block";
		//document.getElementById(odiv).style.display = "none";
		document.getElementById(choose).style.display = (document.getElementById(choose).style.display=="none")?"block":"none";
		document.getElementById(div).style.display = (document.getElementById(div).style.display=="none")?"block":"none";
		//alert( choose + " ("+document.getElementById(choose).style.display+") | " + ochoose + "("+document.getElementById(ochoose).style.display+")" );
	}
}


function showChoose(){
	var x = document.getElementById('treeMenuChoose').style ;
	x.display = ( x.display == "block" ) ? "none" : "block" ;
}

function switchV( id ){
	var x = document.getElementById(id).style.display ;
	document.getElementById(id).style.display = ( x == "block" ||x==null || x==false || !x) ? "none" : "block" ;
}

function treeMenuId( id ){
		if( document.getElementById(id) ){
			if( document.getElementById(id).innerHTML.indexOf('mainTreeTable') > -1 )return;
		}
		document.getElementById(id).innerHTML = '' ;
		if( id == "treeMenuSubcat" ){
			
			var stree=new dhtmlXTreeObject(id,"100%","100%",0);
			//stree.setXMLAutoLoading("docs/tests.php?action=xml&type=cat&id_categoria="+document.forms["categoria"].id_categoria.value);
			stree.setXMLAutoLoading("categoria.php?action=xml&id_categoria="+document.forms["categoria"].id_categoria.value);
			stree.setImagePath("js/tree/imgs/");
			stree.enableCheckBoxes(1);
			stree.enableFixedMode(1);
			stree.loadXML("categoria.php?action=xml&id_categoria="+document.forms["categoria"].id_categoria.value);
			//stree.loadXML("docs/tests.php?action=xml&type=cat&id_categoria="+document.forms["categoria"].id_categoria.value);
			top.stree = stree;
			streeLoaded = 0;
		}
		
	void(0);
}


function treeMenu( id ){
		if( document.getElementById(id) ){
			if( document.getElementById(id).innerHTML.indexOf('mainTreeTable') > -1 )return;
		}
		document.getElementById(id).innerHTML = '' ;
		if( id == "treeMenuSubcat" ){
			
			var stree=new dhtmlXTreeObject(id,"100%","100%",0);
			//stree.setXMLAutoLoading("docs/tests.php?action=xml&type=cat&id_categoria="+document.forms["categoria"].id_categoria.value);
			stree.setXMLAutoLoading("categoria.php?action=xml");
			stree.setImagePath("js/tree/imgs/");
			stree.enableCheckBoxes(1);
			stree.loadXML("categoria.php?action=xml");
			stree.selectItem('');
			//stree.loadXML("docs/tests.php?action=xml&type=cat&id_categoria="+document.forms["categoria"].id_categoria.value);
			top.stree = stree;
			top.stree.openAllItems(0);
			streeLoaded = 0;
		}
		
	void(0);
}


function checkRadio( form , field_id ){
	for( var i = 0 ; i<document.forms[form].elements[field_id.name].length; i++ ){
		if( document.forms[form].elements[field_id.name].item(i).checked ){
			var v = {};
			v.value = document.forms[form].elements[field_id.name].item(i).value ;
			v.item = document.forms[form].elements[field_id.name].item(i) ;
			v.index = i;
			break;
		}
	}
	return v;
}

function setOptionSelected( field_id  , value ){
	if( value == false || value == "false" ) return;
	for( var i = 0 ; i< $(field_id).options.length; i++ ){
		if(i==value){
			$(field_id).options.selectedIndex = i ;
			// xmlhttprequest
			//exGet( 'news-details' , loadingUrl() );
			$( 'news-details').innerHTML = '' ;
			notifyStatusTimed('Loading...',false);
			
			var url = "rss.php?feedurl="+$(field_id).options[i].value+( $(field_id).options[i].className ? "&charset="+$(field_id).options[i].className : "" ) ;			
			exGetwError( 'news-details' , url , errorUrl('Error loading feed')+"&http=%HTTP_CODE%");
			//exGet( 'news-details' , url );
			//notifyStatusTimed('',10); 
			$("media-name").innerHTML = '<a href="'+url+'" title="standalone link">'+$(field_id).options[i].text+'</a>' ;
			break;
		}
	}
}


function getCheckedRadio( form, field ){
	for( var i = 0 ; i<document.forms[form].elements[field].length; i++ ){
		if( document.forms[form].elements[field].item(i).checked ){
			return document.forms[form].elements[field].item(i).value ;
		}
	}
	return false;
}


function switchRSS( obj ){
	setOptionSelected( obj.id  , obj.selectedIndex );
}

function setFeedType( t ){
	setInvisibleClass( 'news-select' , 'feed-news-'+t );
	//setInvisibleClass( 'news-media-box' , 'feed-title-'+t );	
	setInvisibleClass( 'news-media-box' , false );
	$('news-bread-sub').innerHTML = "&raquo; &nbsp;" + ( $('feed-title-'+t).innerHTML );
}

function resetFeedTypes(){
	setVisibleClass( 'news-media-box' , false );
	setInvisibleClass( 'news-select' , false );
	$("media-name").innerHTML = "&nbsp;";
	$('news-bread-sub').innerHTML = "" ;
	//exGet( 'content-main' , "rssread.php" ) ;
}


function getElementsByClassName( tagname , className)
{
	var tagname = ( !tagname || tagname == "" || tagname == null ) ? '*' : tagname ;
	var arr = new Array();
	var elems = document.getElementsByTagName(tagname);
	for(var i = 0; i < elems.length; i++)
	{
		var elem = elems[i];
		var id = elem.id
		var cls = elem.className
			if(cls == className)
			{
				arr[arr.length] = id;
			}
	}
	return arr;
}

function setInvisibleClass( classn , except ){
	var e = getElementsByClassName(false,classn);
	
	for(var i = 0; i < e.length; i++)
	{
			$(e[i]).style.display = ( $(e[i]).id != except ? 'none' : 'block' ) ;
	}
	return;
}

function setVisibleClass( classn , except ){
	var e = getElementsByClassName(false,classn);
	
	for(var i = 0; i < e.length; i++)
	{
			$(e[i]).style.display = ( $(e[i]).id != except ? 'block' : 'none' ) ;
	}
	return;
}


function loadingUrl(){
	return "includes/components/msgs.php?msg=loading";
}

function errorUrl( str ){
	str = ( str != "" ) ? str : "" ;
	return "includes/components/msgs.php?msg=error&text="+str;
}

function swapDiv( did ){
	var x = $(did);
	if( !x ) return;
	//x.style.display = ( x.style.display == "none" || x.style.display == '' || x.style.display == null ) ? "block" : "none" ;
	x.style.display = ( x.style.display == "none" ) ? "block" : "none" ;
}

function swLogin(){
	var x = $('login-box');
	if( !x ) return;
	if( $('back-box') ) switchV('back-box');
	if( $('login-box') ) switchV('login-box');
	if( $('tool-pills') ){
		switchV('tool-pills');
	}
	//alert(top.location.href);
	return;
}


function swapDivWidth( did , val ){
	var x = $(did);
	val = ( val == false || val == null || val == "" ) ? 'auto' : val ;
	if( !x ) return;
	
	x.style.width = val ;
}

function nextFeed( id ){
	switchFeed( id , 1 );
}

function prevFeed( id ){
	switchFeed( id , -1 );
}

function switchFeed( id , sign ){
	var field = $(id) ;
	var spos = parseInt( $(id).options.selectedIndex) + (sign) ;
	var pos = (  spos < $(id).options.length  && ( spos > -1 ) ) ?  spos : ( spos *(-1) ) ;

	setOptionSelected( id  , pos )
} 

function parseHTTPResultCode( s , val ){
    return s.replace( /\%HTTP_CODE\%/g, val );
}

function hideLeftMenu(){
	if( !$('menu-left') ) return;
	swapDiv('menu-left');
}

function rd(){
	//if($('head-main')) Rico.Corner.round('head-main', {color:"transparent"} );//color:"transparent",border:"#A3C386"
	if($('footer-main')) Rico.Corner.round('footer-main', {compact:true} );
	//if($('status-ticker')) Rico.Corner.round('status-ticker', {border:"#fcca6d"});
	//if($('menu-container')) Rico.Corner.round('menu-container', {border:"#D8D8D8",corners:"bottom"});
	//if($('menu-user-pill')) Rico.Corner.round('menu-user-pill', {compact:false,border:"#D8D8D8",corners:"top"});
	//if($('menu-pill')) Rico.Corner.round('menu-pill', {compact:false,border:"#D8D8D8",corners:"top"});
	//if($('back-box')) Rico.Corner.round('back-box', {compact:true,color:"#89E33A",border:"#58892C"});
}

function doRnds( ar ){
	var i = ar.length;
	var clr = "";
	for( u = 0 ; u < i; u++ ){
		if( $(ar[u]) ) {
			clr = (u%2) ? "#DBEBCC": "#E2E2E2" ;
			Rico.Corner.round( ar[u], {compact:true,border:clr});
		}
	}
}

function positionAbsolute( id , t , l ){
	$(id).style.top = parseInt(t)+"px";
	$(id).style.left = parseInt(l)+"px";
}


function fadeLeftMenu(){
	if( !$('menu-left') ) return;
	actionCTL('menu',false);//controls ordered actions
	$('menu-left').style.backgroundColor = "#ffffff";
	 new Effect.FadeTo( 'menu-left', 0.0, 600, 20, {complete:function() {swapDiv('menu-left');$('body-main').style.width = '100%' ;notifyStatus('faded ok');actionCTL('menu',true);} });
}

function unfadeLeftMenu(){
	if( !$('menu-left') ) return;
	actionCTL('menu',false);//controls ordered actions
	$('menu-left').style.backgroundColor = "#ffffff";
	 new Effect.FadeTo( 'menu-left', 1, 600, 10,{complete:function() {notifyStatus('unfaded ok');actionCTL('menu',true);} });
	$('menu-left').style.display = 'block';
	$('body-main').style.width = "79%";
}


function swapMenu(){
	if( !getActionCTL( 'menu' ) ) return;
	if( $('menu-left').style.display == 'none' ){
		unfadeLeftMenu();
	}else{
		fadeLeftMenu();
	}
}

function notifyStatus( s ){
	notifyStatusTimed( s , 1500) ;
}


function notifyStatusTimed( s ,time ){
	
	if( !$('status-ticker') ) return;
	$('status-ticker').innerHTML = "<span class=\"infoticker\">"+ s +"</span>";
	switchV( 'status-ticker' );
	if( parseInt(time) > 0 ){
		setTimeout( 'switchV( \'status-ticker\' );' , parseInt(time) ) ;
	}
}

function notifyError( s ){
	notifyErrorTimed( s , 2500 );
}


function switchMenus(el){
	if( getActionCTL( 'switchmenu' ) ) return;
	actionCTL( 'switchmenu' ,true);
	var dsp = ( (el.id) == "menu-pill" ? $('menu-data').style.display : $('menu-user').style.display );
	if(dsp=="block"){
		actionCTL( 'switchmenu' ,false);
		return;
	}
	
	swapDiv('menu-data');
	swapDiv('menu-user');
	
	if($('menu-data').style.display=='none'&& el.id == 'menu-user-pill' ){
		switchClass( 'menu-pill' , 'headpillOff' );
		switchClass( 'menu-user-pill' , 'headpillOn' );
	}
	
	if($('menu-user').style.display=='none'&& el.id == 'menu-pill' ){
		switchClass( 'menu-pill' , 'headpillOn' );
		switchClass( 'menu-user-pill' , 'headpillOff' );
	}
	actionCTL( 'switchmenu' ,false);
}


function notifySuccess( s ){
	notifySuccessTimed( s , 2500 );
}

function notifySuccessTimed( s , time ){
	if( !$('status-ticker') ) return;
	$('status-ticker').innerHTML = "<span class=\"successticker\">"+ s +"</span>";
	switchV( 'status-ticker' );
	if( parseInt(time) > 0 ){
		setTimeout( 'switchV( \'status-ticker\' );' , parseInt(time) ) ;
	}
}

function notifyErrorTimed( s ,time ){
	
	if( !$('status-ticker') ) return;
	$('status-ticker').innerHTML = "<span class=\"errorticker\">"+ s +"</span>";
	switchV( 'status-ticker' );
	if( parseInt(time) > 0 ){
		setTimeout( 'switchV( \'status-ticker\' );' , parseInt(time) ) ;
	}
}



function chgbg( el , col ){
	switchHoverBg( el.id , col );
}

function switchClass( id , clss ){
	var i = $(id) ;
	if( !i ) return;
	i.className = clss ;
}

function switchHoverBg( id , col ){
	$(id).style.backgroundColor = col ;
}


function fadeDiv( id , msg ){
	if( !$(id) ) return;
	 new Effect.FadeTo( id, 
	 0.0, // 20% opacity 
	 500, // 500ms (1/2 second) 
	 8, // 10 steps 
	 {complete:function(msg) {if(msg)notifyStatus(msg);} });
}

function unfadeDiv( id , msg ){
	if( !$(id) ) return;
	 new Effect.FadeTo( id, 
	 1, // 20% opacity 
	 250, // 500ms (1/2 second) 
	 4, // 10 steps 
	 {complete:function(msg) {if(msg)notifyStatus(msg);} });
}

function dbg( o , ret ){
	var s;
	for(var i in o){
		s += "["+i+"] = "+o[i]+"\n" ;
	}
	if( ret ) {
		return s;
	}else{
		$('dbgdiv').innerHTML = "<pre>"+s+"</pre>" ;
	}
}

function actionCTL( id , v ){
	top.ajxActions[id] = ( v=="" ? false : v ) ;
}

function getActionCTL( id ){
	return top.ajxActions[id] ;
}

function quickNotes(){
	actionCTL( 'switchmenu' , false );
	var xmlhttp = XmlHttpCreate();
    var handler = function () {
		if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
			$('body-main').innerHTML = xmlhttp.responseText ;
            setupQuickNotes();
		}
	}
    XmlHttpGET(xmlhttp, 'quicknotes.php', handler);
	return;
}

function quickNote( op , num ){
	if( getActionCTL( 'notes' ) ) return;
	if(op=="view"&&num){
		exGet('notesbody','nota.php?id_nota='+num);
	}else{
		exGet( 'notesbody' , 'notes.php?action='+op+'&id_nota='+num );
	}
	actionCTL( 'notes' , false );
	return;
}

function setupQuickNotes(){
	if( getActionCTL( 'switchmenu' ) ) return;
	actionCTL( 'switchmenu' , true );
	if($('notes-ticker')){
		Rico.Corner.round('noteshead', {corners:"top",color:"transparent",border:"#E2E2E2"});
		Rico.Corner.round('notesfoot', {corners:"bottom",border:"#E2E2E2"});
		//Rico.Corner.round('notes-ticker', {color:"transparent",border:"#E2E2E2"});
	}
	exGet('notesbody','nota.php');
	actionCTL( 'switchmenu' , false );
}



function switchRSSMenu(){
	var xmlhttp = XmlHttpCreate();
    var handler = function () {
            if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
             $('body-main').innerHTML = xmlhttp.responseText;
			 setTimeout( "doRoundRSS();" , 10);
			}
	}
   XmlHttpGET(xmlhttp, 'rssread.php' , handler);
}


/*

	doLogin()
	
*/

function doLogin(msg){
	if( getActionCTL( 'loginform' ) ) return;
	actionCTL( 'loginform' ,true);
	notifyStatusTimed(msg,false);
	var url = "core.php" ;
	var xmlhttp = new XmlHttpCreate();
	var data = getFormData( 'loginForm' );
	if(!data) return false;
    var handler = function () {
		if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
            getLoginData( xmlhttp.responseXML );
		}
	}
    XmlHttpPOST(xmlhttp, url , data, handler );
	swLogin();
	return false;
}



/*
	getLoginData( value )

	+ rebo una id i obtinc per XMLHTTP les dades del profile
	+ les processo i les retorno en un objecte
	+ les coloco als camps del form
*/

function getLoginData( xmlDoc ){
	var mainB= xmlDoc.getElementsByTagName("loginResponse");
	var main = mainB[0].getElementsByTagName("result")[0] ;
	var o = new Array();
	var field ;
		for(var u = 0 ; u < main.childNodes.length ; u++ ){
			field = main.childNodes[u];
			if(field.hasChildNodes() ){
				o[field.nodeName]=field.firstChild.nodeValue;
			}
		}
	if(o['success']==1&&o['errorCode']==1){
		notifySuccessTimed('login success',2000);
	}else{
		//notifyStatus('login error: '+o['errorMessage']+"["+o['errorCode']+"]");
		//notifyErrorTimed( "["+o['errorCode']+"] login error: <br/>"+o['errorMessage'] );
		notifyErrorTimed( "<h7>ERROR</h7>: "+o['errorMessage'] , 3000 );
	}
	updateLoggedIn( o['userName'] , o['userId'] );
	actionCTL( 'loginform' ,false);
	//switchMenus($('menu-user-pill'));
	exGet('notify-bar','core.php?action=toolbar&standalone=1');
}


function updateLoggedIn( uname , uid ){
	exGet( 'menu-container' , 'core.php?action=usuari&id_usuari='+uid+"&username="+uname );
}


function noteMenu( id ){
	var la = getElementsByClassName(false,'selected-note-pill');
	$(la[0]).className = 'note-pill';
	$(id).className = 'selected-note-pill';
	// do ajax things
	//$('notesbody').innerHTML = $(id).innerHTML ;
	
	switch( $(id).id ){
		case "note-view":
			exGet('notesbody','nota.php');
		break;
		
		case "note-add":
			quickNote( 'add' );
		break;
		
		case "note-search":
			exGet('notesbody','tags.php');
		break;
		
		case "note-options":
			exGet('notesbody','preferencies.php');
		break;
	}
	
	// when displaying a note
	/*
	if( $(id).id == "note-options"){
		$('note-footer').style.visibility = 'hidden' ;
	}else{
		$('note-footer').style.visibility = 'visible' ;
	}*/
}




function blogMenu( id ){
	var la = getElementsByClassName(false,'selected-note-pill');
	$(la[0]).className = 'note-pill';
	$(id).className = 'selected-note-pill';
	// do ajax things
	//$('notesbody').innerHTML = $(id).innerHTML ;
	
	switch( $(id).id ){
		case "note-view":
			exGet('blogbody','post.php');
		break;
		
		case "note-preview":
			exGet('body-main','bloghome.php?preview=1');
		break;
		
		case "note-add":
			blogPost( 'add' );
		break;
		
		case "note-search":
			exGet('blogbody','blogtags.php');
		break;
		
		case "note-options":
			exGet('blogbody','preferencies.php');
		break;
	}
	
	// when displaying a note
	/*
	if( $(id).id == "note-options"){
		$('note-footer').style.visibility = 'hidden' ;
	}else{
		$('note-footer').style.visibility = 'visible' ;
	}*/
}


function blogAction( what , action , num ){
	var wid = (what=="comment") ? "&write-comment=1" : "" ; 
	var xmlhttp = XmlHttpCreate();
    var handler = function () {
		if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
			$('body-main').innerHTML = xmlhttp.responseText ;
			setupBlogDisplay();
			if(what=="comment"){
				//alert($('blog_comments').elements['comment_author'].name);
				$('blogbody').focus();
				$('blog_comments').elements['comment_author'].focus();
			}
		}
	}
    XmlHttpGET(xmlhttp, 'blogpost.php?id_post='+num+'&action='+action+wid , handler);
	return;
}

function setupBlogDisplay(){
	Rico.Corner.round( 'display-post' , {compact:true,border:"#DBEBCC"});
	Rico.Corner.round( 'display-comments' , {compact:true,border:"#E2E2E2"});
	Rico.Corner.round( 'display-newcomment' , {compact:true,border:"#E2E2E2"});
}

function submitComment( url , form , post ){
	var xmlhttp = XmlHttpCreate();
	var data = getFormData( form );
	if(!data) return false;
    var handler = function () {
            if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
             blogAction( 'post', 'view', post );
			}
	}
    XmlHttpPOST(xmlhttp, url , data, handler );
}

function blogPost( op , num ){
	if( getActionCTL( 'blog' ) ) return;
	if(op=="view"&&num){
		exGet('blogbody','post.php?id_post='+num);
	}else{
		exGet( 'blogbody' , 'posts.php?action='+op+'&id_post='+num );
	}
	actionCTL( 'blog' , false );
	return;
}

function quickPosts(){
	actionCTL( 'switchmenu' , false );
	var xmlhttp = XmlHttpCreate();
    var handler = function () {
		if (4 == xmlhttp.readyState && 200 == xmlhttp.status) {
			$('body-main').innerHTML = xmlhttp.responseText ;
            setupBlog();
		}
	}
    XmlHttpGET(xmlhttp, 'blog.php', handler);
	return;
}

function setupBlog(){
	if( getActionCTL( 'switchmenu' ) ) return;
	actionCTL( 'switchmenu' , true );
	if($('blog-ticker')){
		Rico.Corner.round('noteshead', {corners:"top",color:"transparent",border:"#E2E2E2"});
		Rico.Corner.round('notesfoot', {corners:"bottom",border:"#E2E2E2"});
		//Rico.Corner.round('notes-ticker', {color:"transparent",border:"#E2E2E2"});
	}
	exGet('blogbody','post.php');
	actionCTL( 'switchmenu' , false );
}


/*


		MAIN


*/
var defaultWidth = false ;
var doneRd = new Array();

// controls action finish before repeating
var ajxActions = new Array();
ajxActions['menu'] = true ;

// info & usability settings
var opColor = new Array();
opColor['default'] = "#ffffff" ;
