function serialize(obj) {
	var serialized='';
	switch(typeof obj) {
		case 'object':
			if(obj!=null) {
				serialized+="a:"+obj.length+":{";
				for(var idx in obj) {
					idx=parseInt(idx)==idx ? parseInt(idx) : idx;
					serialized+=serialize(idx)+serialize(obj[idx]);
				}
				serialized+="}";
			} else {
				serialized+="N;";
			}
			break;
		case 'boolean':
			serialized+"b:"+obj+";";
			break;
		case 'number':
			serialized+=Math.round(obj)==obj ? "i:" : "d:";
			serialized+=obj+";";
			break;
		case 'string':
			serialized+="s:"+obj.length+":\""+obj.replace(/\"/, '\"')+"\";";
			break;
		default:
			alert(typeof obj+" sconosciuto!");
			break;
	}
	return serialized;
}

function getParentType(parentType, obj) {
	parentType=parentType.toUpperCase();
	try {
		while(obj.nodeName!=parentType)
			obj=obj.parentNode;
	} catch(e) {
		alert(e.toString());
		return false;
	}
	return obj;
}

function getElementsByAttributeValue(objtype, attr, attrval) {
	var nodeColl=new Array();
	var objtypeColl=document.getElementsByTagName(objtype);
	for(var i=0; i<objtypeColl.length; i++) {
		if(objtypeColl.item(i).getAttribute(attr)==attrval)
			nodeColl.push(objtypeColl.item(i));
	}
	return nodeColl;
}

function externalLinks() {
         for( var i=0; i<document.links.length; i++ ) {
              if( document.links[i].getAttribute("rel") == "external" ) {
                  document.links[i].target = "_blank";
              }
         }
}
