// Della Chiara
function menuMoltoFico() {
	// funzione da richiamare al setTimeout
	function chiudi(el){
		el.slideUp("normal");
		el.removeClass("on");
	}
	
	// nascondo tutti gli <ul li ul>
	JQ("#main_menu ul li ul").hide();
	JQ("#main_menu ul li ul li a.on").parent().parent().slideDown("normal");
	JQ("#main_menu ul li a[@href='#']").click(function(){return false;});

	// al rollover su <ul li a> show del sottomenu
	JQ("#main_menu ul li a").not(JQ("#main_menu ul li ul li a")).mouseover(function(){
		JQ(this).next().addClass("on").slideDown("normal");
		return false;
	});
	
	// al rollout su <ul li a> timeout della chiusura del sottomenu
	JQ("#main_menu ul li a").not(JQ("#main_menu ul li ul li a")).mouseout(function(){
		JQ(this).next().removeClass("on");
		var myElA = JQ(this).next();
//		var myElA = JQ(this).parent().childrens().not(JQ(this));
		aTimer = setTimeout(
					function(){
						if (myElA.attr("class")!="on"){
							chiudi(myElA);
						}
					},200); 
	});
	
	// al rollover su <ul li ul> aggiungo classe on
	JQ("#main_menu ul li ul").mouseover(function(){
		JQ(this).addClass("on");
	});
	
	// al mousout tolgo la classe on e timeout della chiusura
	JQ("#main_menu ul li ul").mouseout(function(){
		JQ(this).removeClass("on");
		var myElUl = JQ(this);
		ulTimer = setTimeout(
					function(){
						if (myElUl.attr("class")!="on"){ // se non c'è classe on (che appare al rollover) lo chiudo
							chiudi(myElUl);
						}
					},1000); 
	});

//	JQ("#main_menu ul li a.actve").parent().parent().show();
}

function click_cat_path(){
	JQ("#path a[@href^='#']").click(function(){JQ(JQ(this).attr("href")).parent().find("ul").eq(0).toggle("fast");return false;})
}

function suggerimentoLogin(){
	JQ("input[@title='username'], input[@title='password'], input[@title='inserisci la tua email']").each(function(){
		JQ(this).focus(function(){if (this.title==this.value)this.value='';});
		JQ(this).blur(function(){if (this.value=='')this.value=this.title;});
	});
}

function menuApriChiudiSX(){
	JQ("#menu_left a.on").parents("ul").addClass("on");// .not(JQ('#menu_left,li,ul.clearfix,div,body,html')) .show();	
	JQ("#menu_left a.on").parents("ul").each(function(){JQ(this).prev().addClass("on");})
	JQ("#menu_left a.on").siblings("ul").addClass('on'); //.show()
	JQ("#menu_left ul li ul").not(JQ("#menu_left ul.on")).hide(); //[@class!='on']
	JQ("#menu_left ul li ul li ul li a").prepend(" – ");
	JQ("#menu_left ul li a").click( function(){
			if(JQ(this).attr("href")=="#"){
				if (JQ(this).siblings("ul:eq(0)").hasClass("on")){
					JQ(this).siblings("ul").slideUp("fast").removeClass("on");	
					JQ(this).removeClass("on");
				}else{
					JQ("#menu_left a.on").not(JQ(this)).removeClass("on");
					JQ(this).addClass("on");
					JQ(this).siblings("ul").addClass("on");
					JQ("#menu_left ul li ul").not(JQ(this).siblings().parents()).slideUp("fast");
					JQ(this).siblings("ul").slideDown("fast");
				}
				JQ(this).parents("ul").each(function(){JQ(this).prev().addClass("on");})
				return false;
			}
		});
}
function aggiungi_mappa(){
	var myurl,righ_domain,tmpa;
	tmpa=location.href.split("/")
	righ_domain=tmpa[0]+"//"+tmpa[2]+"/";
	myurl='viewdoc.asp?co_id=3&';
	if ((location.href+'&').toLowerCase().indexOf(myurl) > 0){
		JQ("#foto img:eq(0)").before("<iframe width=\"476\" height=\"400\" frameborder=\"0\" src=\"http://geoip.websolute.it/googlemaps/showmap.asp?address=Strada+della+Selva+Grossa,+24,+61100+Pesaro+Pesaro+e+Urbino,+Marche,+Italia&html=<img%20src='"+righ_domain+"img/loghino_google.gif'><br><small%20style='font-family:Verdana;font-size:10px;font-weight:normal;'%20size='1'>strada+della+Selvagrossa+24/26,+61010,<br/>+Loc.+Case+Bruciate,+Tavullia,+(PU),+Italy</small>&w=476&h=400&zoom=16\"/>");
		JQ("#foto img:eq(0)").remove();
	}
}

/* CONVALIDA FORM
-------------------------------------------*/
function ws_validate(){}
ws_validate.prototype.isEmail = function (what)
{
   var i=new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)JQ");
   if(!i.test(what)) { return false}   
   return true;
}
ws_validate.prototype.isDate = function (what)
{
   var i=new RegExp("^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})JQ");
   if(i.test(what))
   {
	datePart=what.split("/");
	giorno=(datePart[0]>=1) && (datePart[0]<=31);
	mese=(datePart[1]>=1) && (datePart[1]<=12);
	anno=(datePart[2]>=1900) && (datePart[2]<=9999);
	if(!giorno || !mese || !anno) { return false; }
   }else{
	return false;
   }
   return true;
}

ws_validate.prototype.isTelFax = function(what)
{
//   var i=new RegExp("([0-9]{2,})\/([0-9]{5,})");
   var i=new RegExp("([0-9]{5,})");
   if(!i.test(what)) { return false;}   
   return true;
}

ws_validate.prototype.notZero = function(what)
{
   if(what=="0") { return false;}   	
   return true;
}
ws_validate.prototype.field = function (what, type){
	try{
		switch (type) {
		  case "isEmail":
			return this.isEmail(JQ(what).val());
			break; 
		  case "isDate":
			return this.isDate(JQ(what).val());
			break; 
		  case "isTelFax":
			return this.isTelFax(JQ(what).val());
			break; 
		  case "isChecked":
		  	return JQ(what).is(":checked");
			break; 
		  case "notZero":
			return this.notZero(JQ(what).val());
			break; 
		  case "isText":
			return (JQ.trim(JQ(what).val()).length>0);
			break; 
		  case "isNumeric":
			return (!isNaN(JQ(what).val()) && (JQ.trim(JQ(what).val()).length>0));
			break; 
		  default: 	
			return (JQ(what).val().length>0);
		}
		
	}
	
	catch (e){
		alert(e);
	}
}
var validate = new ws_validate;

function get_form_validation(frm_id){
	var oval,valid,validation_string;
	valid=true;
	oval=JQ(frm_id)[0]._validation;
	for (nc in oval){
		if( validate.field("#"+nc,oval[nc])==false ){
			JQ("#"+nc).parent().addClass("bg_error");
			valid=false;
		}else{
			JQ("#"+nc).parent().removeClass("bg_error");
		}
	}
	JQ(".bg_error input, .bg_error select, .bg_error textarea").eq(0).focus();
	JQ(frm_id)[0].valid=valid;
	return valid;
}

/* REPLACE FLASH OBJECTS*/
function replace_flash_objects()
{
	JQ(".replace_flash_objects").each(function ()
		{
			var f, re,p;
			f = String(JQ(this).children("noscript").html()).replace("&lt;","<").replace("&gt;",">");

			while(f.indexOf("&lt;")>=0){
				f = f.replace("&lt;","<");
			}
			while(f.indexOf("&gt;")>=0){
				f = f.replace("&gt;",">");
			}
/*
			p="<[^>]{0,1}object[^>]*>|<[^>]{0,1}param[^>]*>";
			re = new RegExp();
			re.pattern=p;
			f.replace(re,"");
			re.pattern="&lt;";
			f.replace(re,"<");
			re.pattern="&gt;";
			f.replace(re,">");
*/
			if(f.length<10){f = JQ(this).children(".embed").html()}
//			JQ(this).prepend(f);
			this.innerHTML=f;
		}
	 );
}
/* JSON FORM */
var ws_json_form = {
		theForm: "" ,
		init: function(p){
			try{
				JQ("body").after("<iframe name=\"ws_ifr_upload_file\" id=\"ws_ifr_upload_file\" style=\"display:none\" rows=\"1\" cols=\"1\" src=\"\"></iframe>");
				JQ(p).each(function(){this.target="ws_ifr_upload_file";});
				JQ(p).submit(ws_json_form.ajax_submit);
			}
			catch(e){self.status=(e);}
		},
		ajax_submit: function(){
			var post_data,ifr_target;
			try{
				ws_json_form.the_form = JQ(this);
				if (this.valid==false) {return false;}
				if(JQ(this).attr("enctype")=="multipart/form-data"){
				/* upload files BEGIN */
				ifr_target = JQ("#ws_ifr_upload_file");
				if (JQ(ifr_target).size()==0){
					JQ("body").after("<iframe name=\"ws_ifr_upload_file\" id=\"ws_ifr_upload_file\" src=\"\"></iframe>");
				}
				this.target="ws_ifr_upload_file";
				JQ("#ws_ifr_upload_file").load(function(){
						var d,s;
						s="success";
						try{
							d=eval("(" + frames['ws_ifr_upload_file'].document.body.innerHTML +")" );
						}
						catch(e){
							d={"status":"error","error": "Error parsing JSON. " + (e.toString()) + " <a href=\"#\" onclick=\"ws_json_form.back_and_complete(this); return false;\">Indietro</a>"  + frames['ws_ifr_upload_file'].document.body.innerHTML,"data":""};
						}
						ws_json_form.callback_json(d,s);
					});
				return true;
				/* upload files END*/
				}else{
					post_data = JQ(this).serializeArray();
					JQ.post(JQ(this).attr("action"), post_data, ws_json_form.callback_json, "json");
				}
			}
			catch(e){
				self.status = ("function ajax_submit(){} " & e);
			}
			return false;
		},
		callback_json:	function(vdata, textStatus){
			var d;
			try{
				d = vdata;
				if (JQ(ws_json_form.the_form).children("div.response").size()==0 ){
					JQ(ws_json_form.the_form).prepend("<div class=\"response\"></div>");
				}
				if(d.status=="success"){
					JQ(ws_json_form.the_form).children("div.response").html(d.data);
				}else{
					JQ(ws_json_form.the_form).children("div.response").html(d.error);
				}
				if(parseInt(JQ(ws_json_form.the_form).height())>parseInt(JQ(ws_json_form.the_form).children("div.response:eq(0)").height())){
					JQ(ws_json_form.the_form).children("div.response").css({"height": JQ(ws_json_form.the_form).height()+"px"});
				}
				JQ(ws_json_form.the_form).children("fieldset").fadeOut("fast",function(){JQ(ws_json_form.the_form).children("div.response").fadeIn("fast");});
				JQ(ws_json_form.the_form).children("div.response").hide();
			}
			catch(e){
				self.status=(e)
			}
		},
		back_and_complete: function (chi){
			JQ(chi).parent().fadeOut('slow',function(){
				JQ(chi).parent().parent().children('fieldset').fadeIn('slow');
				return false;
			});
		}
	}

function columnize_sitemap(){
	if(JQ(".d_sitemap").size()>0){
		var sul = JQ(".d_sitemap ul:eq(0)");
		JQ(sul).addClass("column1");
		JQ(sul).after("<ul class='column2 clearfix'></ul><ul class='column3 clearfix'></ul>");
		JQ(".d_sitemap ul.column2").append(JQ(".d_sitemap ul:eq(0)").children("li:eq(1)").remove());
		JQ(".d_sitemap ul.column2").append(JQ(".d_sitemap ul:eq(0)").children("li:eq(1)").remove());
		JQ(".d_sitemap ul.column3").append(JQ(".d_sitemap ul:eq(0)").children("li:eq(1)").remove());
	}
}

JQ(function(){
	menuMoltoFico();
	suggerimentoLogin();
	click_cat_path();
	menuApriChiudiSX();
	aggiungi_mappa();
	if(JQ("#news").children().size()<2){JQ("#news").remove();}// serve a nascondere  la lista news quando vuota
	if(JQ("div.caratteristiche div.bom_allegati").children().size()<1){JQ("div.caratteristiche div.bom_allegati").parent().remove();} // serve a nascondere la lista allegati quando vuota
	if(JQ("div.caratteristiche div.bom_links").children().size()<1){JQ("div.caratteristiche div.bom_links").parent().remove();} // serve a nascondere la lista links quando vuota
	
	JQ("form").submit(function (){ return get_form_validation(this);}); 
	ws_json_form.init("form.post_ajax");
	columnize_sitemap();
});