// settaggi del font della tabella idSpareTable
var color = new Array();
color[0]="#ccccff";
color[1]="#002200";
color[2]="#aaddff";
color[9]="#bb00aa"; // quello del codice materiale cliente
fontIni='';
fontEnd='';

function debugLoading(oggetto,stringa) {
	alert(stringa+" "+oggetto.readyState);
}

function x_onclick(Tavola,Fig) {
	window.parent.frames(6).document.thisForm._method.value="";
	window.parent.frames(6).document.thisForm.action="StatusHandler.asp?TavName="+Tavola+".svg&Particolare="+Fig;
	window.parent.frames(6).document.thisForm.target="Bottom";
	window.parent.frames(6).document.thisForm.submit();
}

function w_onclick(Tavola,Fig) {
	window.parent.frames(6).document.thisForm._method.value="";
	window.parent.frames(6).document.thisForm.action="StatusHandler.asp?TavName="+Tavola+".swf&Particolare="+Fig;
	window.parent.frames(6).document.thisForm.target="Bottom";
	window.parent.frames(6).document.thisForm.submit();
}

function addPart(nomeCatalogo,numTav,particolare,stringa,codePart,codiceCliente,qta,note,codSapCostruttore) {
	// TODO passare il nome della window dal lato server
	// prendendolo da NomiFrames.asp
	var oWindow = window.open('', 'BrowseCatalog', '');
	if(String(oWindow.document.thisForm)=='undefined')
	{	    
		oWindow.close();
		var	features='fullscreen=no,status=no,menubar=no,titlebar=no,left=17,top=17,width=554,height=230'
		oWindow = window.open('BrowseCatalog.asp', 'BrowseCatalog', features);
		self.focus();
		self.alert('The cart has to be open in order to add any item. Please insert it again.\nIl carrello deve essere aperto prima di un inserimento. Si prega di inserire nuovamente.');
		return false;		
	}
	else
	{
	    var codePartSacmi = codePart;
		if(codSapCostruttore.length>0 && codePart.length>0)
		{
		    if(codePart.length<=codSapCostruttore.length || codePart.substring(0, codSapCostruttore.length) != codSapCostruttore)
		    {
		        codePartSacmi = codSapCostruttore + codePart;
		    }
		}
		    
		newRow = oWindow.parent.frames(5).document.all.idSpareTable.insertRow();
		newRow.bgColor=color[0];
		nrRow=oWindow.parent.frames(5).document.all.idSpareTable.rows.length;
		for (j=0;j<=8;j++)	newRow.insertCell();
	
		// Modifica Marco 27/11/2001 
		// per passare il &nbsp; in caso di campo nullo
		if (trimStringa(stringa).length > 0) {
				sHTML=trimStringa(stringa);
		} else {
				sHTML="&nbsp;";
		}
		//sHTML=trimStringa(stringa);
		newRow.cells(0).innerHTML=sHTML;
		newRow.cells(0).align='left';
		newRow.cells(0).valign='top';
		newRow.cells(0).width='120';
	
		sHTML='<INPUT type="text" style="font-family: Verdana; font-size: 7pt ;color: #002200" size="2" id="idQta'+nrRow+'" name="Qta'+nrRow+'" value='+qta+'>';
		newRow.cells(1).innerHTML=sHTML;
		newRow.cells(1).align='left';
		newRow.cells(1).width='35';
	
		// Modifica Marco 27/11/2001 
		// per passare il &nbsp; in caso di campo nullo
		if (trimStringa(nomeCatalogo).length > 0) {
				sHTML=trimStringa(nomeCatalogo);
		} else {
				sHTML="&nbsp;";
		}
		//sHTML=trimStringa(nomeCatalogo);
		newRow.cells(2).innerHTML=sHTML;
		newRow.cells(2).align='left';
		newRow.cells(2).width='99';
	
		// Modifica Marco 27/11/2001 
		// per passare il &nbsp; in caso di campo nullo
		if (trimStringa(numTav).length > 0) {
				sHTML=trimStringa(numTav);
		} else {
				sHTML="&nbsp;";
		}
		//sHTML=trimStringa(numTav);
		newRow.cells(3).innerHTML=sHTML;
		newRow.cells(3).align='left';
		newRow.cells(3).width='35';
	
		// Modifica Marco 27/11/2001 
		// per passare il &nbsp; in caso di campo nullo
		if (trimStringa(particolare).length > 0) {
				sHTML=trimStringa(particolare);
		} else {
				sHTML="&nbsp;";
		}
		//sHTML=trimStringa(particolare);
		newRow.cells(4).innerHTML=sHTML;
		newRow.cells(4).valign='top';
		newRow.cells(4).align='left';
		newRow.cells(4).width='25';
		// MODIFICA Stefano 13-Nov-2001 23.50
		if (trimStringa(codePart).length > 0) {
			sHTML=trimStringa(codePart);
		} else {
			sHTML="&nbsp;"
		}
		if (trimStringa(codiceCliente).length > 0) {
			sHTML+="<BR>&nbsp;"+"<font color="+color[9]+">"+trimStringa(codiceCliente)+"</font>";
		}
		newRow.cells(5).innerHTML=sHTML;
		newRow.cells(5).valign='top';
		newRow.cells(5).align='left';
		newRow.cells(5).width='99';
		sHTML='<img src="images/icons/delete.gif" width=18 height=18>';
		sHandler="deletePart()"
		newRow.cells(6).innerHTML=sHTML;
		newRow.cells(6).onclick=function() {deletePart(this,'onClick')};
		newRow.cells(6).onmouseover=function() {linkCursor(this)};
		newRow.cells(6).width='20';
		sHTML='<input type="hidden" id="idNote'+nrRow+'" name="Note'+nrRow+'" value="'+note+'">&nbsp;';
		newRow.cells(7).innerHTML=sHTML;
		newRow.cells(7).width='18';
		newRow.cells(7).onclick=function() {showNotes(this,'editNote')};
		newRow.cells(7).onmouseover=function() {linkCursor(this)};
		
	    sHTML='<INPUT type="hidden" name="CodePart" id="CodePart" value="'+codePartSacmi+'">';
		newRow.cells(8).innerHTML=sHTML;
		newRow.cells(8).className = 'notVisible';
		
		// TODO utilizzare la dimensione della window invece di 20000
		oWindow.parent.frames(5).scrollTo(0,20000);
	
		oWindow.parent.frames(6).thisForm.Saved.value='false';
		oWindow.focus();
		self.focus();
		return true;
	}
}

function showNotes(o,nomeWindow) {
	var notes=String(o.firstChild.value);
	var oWindow;
	if (notes == 'undefined') notes='';
	indirizzo='editNote.asp?NrNote='+o.firstChild.name+'&Note='+notes;
	caratteristiche='fullscreen=no,height=111,width=799,scrollbars=no';
	oWindow=window.open(indirizzo,nomeWindow,caratteristiche);
	oWindow.focus();
}

//-->

function deletePart(element,event) {
	element.parentNode.parentNode.parentNode.deleteRow(element.parentNode.rowIndex);
}

function updateTav(numTav,catName) {
	window.parent.frames(7).thisForm._method.value="";
	window.parent.frames(7).thisForm.action='StatusHandler.asp?CatName='+catName+'&NumTav='+numTav;
  window.parent.frames(7).thisForm.target='Bottom';
  window.parent.frames(7).thisForm.submit();
}

function loadTav(element,event) {
	updateTav(element.parentNode.cells(3).innerText,element.parentNode.cells(2).innerText);
}

function loadCat(element,event) {
	updateTav('0',element.innerText);
}

// setAllFrames aggiorna il contenuto di tutte le
// altre frames passandogli i valori opportuni
//	REVISIONE 14 maggio 2008 clara.bighini
//	Aggiunti parametri isSvg e isFlash
function setAllFrames(tavName,numPg,totPg,tavFile, isSvg, isFlash) {
	if (isSvg=="1")
		setTavola(tavFile);
	else if (isFlash=="1")
		setTavolaSwf(tavName, tavFile);
	setBom(tavName);
	setContents(tavName,numPg,totPg);
	setSpare();
}

/*
// setAllFrames aggiorna il contenuto di tutte le
// altre frames passandogli i valori opportuni
function setAllFrames(tavName,numPg,totPg,tavFile) {
	setTavola(tavFile);
	setBom(tavName);
	setContents(tavName,numPg,totPg);
	setSpare();
}
*/
// SetTavola aggiorna il contenuto di Tavola.asp
function setTavola(tavFile) {
	// Attesa del caricamento della frame 0
	if (window.parent.frames(0).document.readyState != "complete") {
// alert("Qui c'era l'errore");
	  IDtimeout=setTimeout("setTavola('"+tavFile+"')",1000);	  
	} else {
		window.parent.frames(0).document.thisForm._method.value="";
		window.parent.frames(0).document.thisForm.action='Tavola.asp?tavFile='+tavFile;
		window.parent.frames(0).document.thisForm.submit();
	}
}

// SetTavola aggiorna il contenuto di TavolaSwf.asp
function setTavolaSwf(tavName, tavFile) {
	// Attesa del caricamento della frame 0
	if (window.parent.frames(0).document.readyState != "complete") {
	   IDtimeout=setTimeout("setTavolaSwf('"+tavName+"','"+tavFile+"')",1500);	  
	} else {
		window.parent.frames(0).document.thisForm._method.value="";
		window.parent.frames(0).document.thisForm.action='TavolaSwf.asp?tavName='+tavName+'&tavFile='+tavFile;
		window.parent.frames(0).document.thisForm.submit();
	}
}

// setUpBom aggiorna la testata di UpBom
function setUpBom(nomeCatalogo,numTav) {
	// Attesa del caricamento della frame 2
	if (window.parent.frames(2).document.readyState != "complete") {
	  IDtimeout=setTimeout("setUpBom('"+nomeCatalogo+"','"+tavName+"')",1000);
	} else {
		window.parent.frames(2).document.all.idNomeCatalogo.innerText=nomeCatalogo;
		window.parent.frames(2).document.all.idNumTav.innerText=numTav;
	}
}

// setBom ricarica la pagina Bom.asp passandogli
// la tavName attuale
function setBom(tavName) {
	// Attesa del caricamento della frame 4
	if (window.parent.frames(3).document.readyState != "complete") {
	  IDtimeout=setTimeout("setBom('"+tavName+"')",1000);
	} else {
		window.parent.frames(3).document.thisForm._method.value="";
		window.parent.frames(3).document.thisForm.action='Bom.asp?TavName='+tavName;
		window.parent.frames(3).document.thisForm.submit();
	}
}

// setContents inizializza le variabili Dhtml della
// pagina Contents.asp
function setContents(tavName,numPg,totPg) {
	// Attesa del caricamento della frame 1
	if (window.parent.frames(1).document.readyState != "complete") {
	  IDtimeout=setTimeout("setContents('"+tavName+"','"+numPg+"','"+totPg+"')",1000);
	} else {
		window.parent.frames(1).document.all.TavName.value=tavName;
		window.parent.frames(1).document.all.NumPg.value=numPg;
		window.parent.frames(1).document.all.TotPg.value=totPg;
		window.parent.frames(1).document.all.idLabelPg.innerText=numPg+" / "+totPg;	
	}
}

// setSpare associa gli opportuni handler a tutte
// le celle della table idSpareTable
function setSpare() {
	// Attesa del caricamento della frame 5
	if (window.parent.frames(5).document.readyState != "complete") {
	  IDtimeout=setTimeout("setSpare()",1000);
	} else {
// modifica di Stefano 23-Sett-2001
// solamente se il catalogo interattivo e' presente
// si devono inserire i link relativi a loadTav e loadCat	
		tableSpare=window.parent.frames(5).document.all.idSpareTable;
		for (i=0;i<tableSpare.rows.length;i++) {
// alert(String(window.parent.document.all.IsSvg.value));
			if (String(window.parent.document.all.IsSvg.value) == '1') {
				tableSpare.rows(i).cells(0).onclick=function() {loadTav(this,'onClick')};
				tableSpare.rows(i).cells(2).onclick=function() {loadTav(this,'onClick')};
				tableSpare.rows(i).cells(3).onclick=function() {loadTav(this,'onClick')};
				tableSpare.rows(i).cells(4).onclick=function() {loadTav(this,'onClick')};
				tableSpare.rows(i).cells(5).onclick=function() {loadTav(this,'onClick')};
	//			tableSpare.rows(i).cells(2).onclick=function() {loadCat(this,'onClick')};
			}
			tableSpare.rows(i).cells(6).onclick=function() {deletePart(this,'onClick')};
			tableSpare.rows(i).cells(7).onclick=function() {showNotes(this,'editNote')};
		}
	}
}


function get_target(evt)
{
	var target = evt.getTarget();
	while (target && !target.getAttribute('id'))
		target = target.getParentNode();
	return target;
}

function move_box (target,x,y,visibility)
{
	var box_name = 'hidden_rect';
	var svgdoc = target.getOwnerDocument();
	var svgobj = svgdoc.getElementById (box_name);
	if (svgobj)
	{
		svgobj.setAttribute ('x',x-6);
		svgobj.setAttribute ('y',y-12);
		var svgstyle = svgobj.getStyle();
		if (svgstyle)
			svgstyle.setProperty ('visibility', visibility);
	}
}

function hilite_btn (event,numpart) {
	var target=get_target(event);
	var strCoord=String(target.getAttribute('transform')).split(" ");
	switch (String(event.getType())) {
		case 'mouseover':
//			alert(strCoord[4]+" "+strCoord[5].substring(0,strCoord[5].length-1));
			move_box(target,strCoord[4],strCoord[5].substring(0,strCoord[5].length-1),'visible');
			break;
		case 'mouseout':
			move_box(target,strCoord[4],strCoord[5].substring(0,strCoord[5].length-1),'hidden');
			break;
	}	    
}
function showquadr(evt,idnum)
{
	var target=get_target(evt);
    var idrect = "rect_descr"+idnum;
    var descrquadr = target.ownerDocument.getElementById(idrect);
    descrquadr.setAttribute("style", "fill:#FFFFCC;stroke:none;");
    var idRectTesto = "rect_descr_testo"+idnum;
    var testodescrquadr = target.ownerDocument.getElementById(idRectTesto);
    testodescrquadr.setAttribute("style","font-family:'Arial';font-size:10;fill:#000000;stroke:none;");
}

function hidequadr(evt,idnum)
{
	var target=get_target(evt);
    var idRect = "rect_descr"+idnum;
    var descrquadr = target.ownerDocument.getElementById(idRect);
    descrquadr.setAttribute("style", "fill:none;stroke:none;");
    var idRectTesto = "rect_descr_testo"+idnum;
    var testodescrquadr = target.ownerDocument.getElementById(idRectTesto);
    testodescrquadr.setAttribute("style","font-family:'Arial';font-size:10;fill:none;stroke:none;");
}

function linkCursor(o) {
	o.style.cursor="hand";	
}

//  Ridge 2009-03-09
//  centralizzo la gestione dela salvataggio
function saveCart(oWindowCarrello, messaggioQtaZero) 
{
    var tableSpare = oWindowCarrello.frames(5).document.getElementById("idSpareTable");
	var oInput = oWindowCarrello.frames(5).document.createElement("INPUT");
	oInput.type="hidden";
	oInput.id="idInput";
	oInput.name="nameInput";
	oInput.value="";
	
	var itmDescrizione="";
	var itmQta = 0;
	var itmCatalogo="";
	var itmTavola="";
	var itmFigura="";
	var itmCodePartVisualizzato="";  //
	var itmCodePartPrecedente="";
	var itmCodiceCliente="";
	var itmNote="";
	var itmCodePart="";
	var itmCodePartDigitato="";
	var itmCodiceOk="0"; //  0 non controllato, 1 corretto, 2 non riconosciuto
	var itmProgressivo="0";
	
	var itmDaValutare="";
	var itmStringaDaCercare="";
	var itmPosizioneACapo=0;
	
	for (i=0;i<tableSpare.rows.length;i++) 
	{
	    //	REVISIONE 27 novembre 2007 clara.bighini
		//	Inserisco controllo sull'inserimento della quantità zero
		itmDescrizione = tableSpare.rows(i).cells(0).innerText;
		itmQta = decimalString(tableSpare.rows(i).cells(1).firstChild.value);
		
		if (itmQta <= 0)
		{
			alert(messaggioQtaZero);
			return;
		}
		
		itmCatalogo=tableSpare.rows(i).cells(2).innerText;
		itmTavola=tableSpare.rows(i).cells(3).innerText;
		itmFigura=tableSpare.rows(i).cells(4).innerText;
		
		// il codice materiale può essere stato riconosciuto o meno; se riconosciuto
		// può avere anche il codice materiale cliente; se non è stato riconosciuto
		// in Spare viene presentato come textbox e non come stringa
		
		//  if(trimStringa(tableSpare.rows(i).cells(5).innerText)=="") 
		if(String(tableSpare.rows(i).cells(5).firstChild.value)!="undefined")
		{
		    //  Se il firstChild.value è definito significa che c'è la TextBox del codice non valido.
		    //  l'innerText è valorizzato solo se il codice cliente era stato digitato.
			// il codice non è stato riconosciuto o non è presente
			// perchè l'item è stato inserito con la descrizione
			// legge il suo valore dal textbox
			itmCodePartVisualizzato = trimStringa(clearInputStringa(tableSpare.rows(i).cells(5).firstChild.value));
			itmCodiceCliente=String(tableSpare.rows(i).cells(5).innerText);
		} 
		else 
		{
			// codice riconosciuto o mai valutato
			// daValutare contiene l'eventuale codice Sacmi e (a capo) l'eventuale codice
			// cliente; il "\r\n " è fondamentale per distinguere i due codici: se c'è il
			// codice cliente questi ci sono di sicuro	
			var itmDaValutare=String(tableSpare.rows(i).cells(5).innerText);
			var itmStringaDaCercare="\r\n ";
			var itmPosizioneACapo=itmDaValutare.indexOf(itmStringaDaCercare);
		
			if (itmPosizioneACapo > -1) 
			{
				itmCodePartVisualizzato=trimStringa(itmDaValutare.substring(0,itmPosizioneACapo));
				itmCodiceCliente=trimStringa(itmDaValutare.substring(itmPosizioneACapo+3,itmDaValutare.length));
			} 
			else 
			{
				itmCodePartVisualizzato=trimStringa(itmDaValutare);
				itmCodiceCliente="";
			}
		} 
		
		if (String(tableSpare.rows(i).cells(7).firstChild.value) != 'undefined') 
		{ // Note
			itmNote=trimStringa(String(tableSpare.rows(i).cells(7).firstChild.value));
		} 
		else 
		{
			itmNote="";
		}
		if(tableSpare.rows(i).cells.length>10)
		{		    
			itmCodePartPrecedente = trimStringa(tableSpare.rows(i).cells(9).firstChild.value);
			itmCodiceOk = trimStringa(tableSpare.rows(i).cells(10).firstChild.value);
			if(itmCodePartPrecedente != itmCodePartVisualizzato)
		    {
		        //  Resetto
		        itmCodePart=itmCodePartVisualizzato;
                itmCodePartDigitato=itmCodePartVisualizzato;
                itmCodiceOk="0"; //  0 non controllato, 1 corretto, 
		    }
		    else
		    {
		        itmCodePart=trimStringa(tableSpare.rows(i).cells(8).firstChild.value);
                itmCodePartDigitato=trimStringa(tableSpare.rows(i).cells(8).lastChild.value);
                itmCodiceOk=trimStringa(tableSpare.rows(i).cells(10).firstChild.value);
		    }		    
			itmProgressivo = trimStringa(tableSpare.rows(i).cells(10).lastChild.value);		
		}
		else    //  nuovo inserimento
		{
		    //  se ho inserito normalmente ho 8 celle, se ho inserito da pdf ho 9 celle perchè distinguo codice visualizzato da codice sacmi (non mostro il prefisso)
		    if(tableSpare.rows(i).cells.length== 9)
		    {
		        itmCodePart = trimStringa(tableSpare.rows(i).cells(8).firstChild.value);
	            itmCodePartDigitato=itmCodePart;
		    }
		    else
		    {
		        itmCodePart = itmCodePartVisualizzato;	      
	            itmCodePartDigitato=itmCodePartVisualizzato;  
		    }		
	        itmCodiceOk="0"; //  0 non controllato, 1 corretto, 2 non riconosciuto
	        itmProgressivo="-1";
        }		
		oInput.value += itmDescrizione;
		oInput.value += "|"+itmQta;
		oInput.value += "|"+itmCatalogo;
		oInput.value += "|"+itmTavola;
		oInput.value += "|"+itmFigura;
		oInput.value += "|"+itmCodePartVisualizzato
		oInput.value += "|"+itmCodiceCliente;
		oInput.value += "|"+itmNote;
		oInput.value += "|"+itmCodePart;
		oInput.value += "|"+itmCodePartDigitato;
		oInput.value += "|"+itmCodiceOk;
		oInput.value += "|"+itmProgressivo;		
		oInput.value += "§\n";
	}//end for
	
	oWindowCarrello.frames(5).document.thisForm.insertBefore(oInput);	
	oWindowCarrello.frames(5).document.thisForm._method.value="";
	oWindowCarrello.frames(5).document.thisForm.action='Spare.asp?Azione=Save';
    oWindowCarrello.frames(5).document.thisForm.target='SpareList';
	oWindowCarrello.frames(5).document.thisForm.submit();	
}
