﻿// File JScript

function Articoli_PageNavigator_Goto(PageNumber) {
	var str1;
	str1 = R + 'Articoli/Lista.asp';
	str1 += '?IDVista=' + CStrUrlParam(findObj('varIDVista').value);
	str1 += '&IDFilter=' + CStrUrlParam(findObj('varIDFilter').value);
	str1 += '&Page=' + CStrUrlParam(PageNumber);
	window.location = str1;
}


function Articoli_ShowAdvancedFilter(IDVista, IDAdvancedFilter) {
	Articoli_ShowAdvancedFilter_ConDiv(IDVista, IDAdvancedFilter);
}

function Articoli_ShowAdvancedFilter_ConDiv(IDVista, IDAdvancedFilter) {
	var objDivFiltro = findObj('DivListaArticoli_Top2_Filtro');
	if (objDivFiltro) {
		if (objDivFiltro.style.display == 'none') {
			objDivFiltro.style.display = 'block';
		} else {
			objDivFiltro.style.display = 'none';
		}
	}
}

function Articoli_ShowAdvancedFilter_ConPopup(IDVista, IDAdvancedFilter) {
	var objPopUp;
	var idObj = 'Articoli_ShowAdvancedFilter';
	var collArg = new Array();
	var cont1;
	var parametri;
	
	parametri = '';
	collArg['IDVista'] = IDVista;
	collArg['IDFilter'] = IDAdvancedFilter;
	collArg['SelectedFilters'] = findObj('varSelectedFilters').value;
	if (window.HtmlPlus_PopupColl) {
		if (window.HtmlPlus_PopupColl[idObj]) {
			objPopUp = HtmlPlus_PopupColl[idObj];
		}
	}
	if (!objPopUp) {
		objPopUp = new HtmlPlus_Popup(idObj, 'Raffina la ricerca', R + 'Articoli/AdvancedFilter_DlgForm.asp' + parametri, 916, 400, 910, 370, 'BigStop');
	}
	objPopUp.OnClose = Articoli_ShowAdvancedFilter_onClose;
	objPopUp.Open(collArg, '50%', 80, true, 0, 0, 0);
	
	return objPopUp;
}
function Articoli_ShowAdvancedFilter_onClose(ObjPopup, ReturnValue, IsAbort) {
	var objDivFiltro = findObj('DivListaArticoli_Top2_Filtro');
	if (objDivFiltro) objDivFiltro.style.display = 'none';
	if (!IsAbort) {
		findObj('varSelectedFilters').value = SerializeValue(ReturnValue);
		findObj('FrmPrinc').submit();
	}
}


function Articoli_ShowAdvancedFilter_Checkbox_OnClick() {
	Articoli_ShowAdvancedFilter_RinfrescaForm('', 'preview');
}
function Articoli_ShowAdvancedFilter_CmdSubmit_OnClick() {
	//Articoli_ShowAdvancedFilter_onClose(null, Articoli_ShowAdvancedFilter_GetSelectedFilters(), false);
	Articoli_ShowAdvancedFilter_RinfrescaForm('RunRefresh', 'submit');
}
function Articoli_ShowAdvancedFilter_CmdAbort_OnClick() {
	Articoli_ShowAdvancedFilter_onClose(null, null, true);
}
function Articoli_ShowAdvancedFilter_CmdReset_OnClick() {
	Articoli_ShowAdvancedFilter_onClose(null, null, false);		//Questo metodo funziona però lascia un "[ricerca]" nel path di ricerca
	//window.location = 'Lista.asp?IDVista=' + findObj('varIDVista').value;
}

function Articoli_ShowAdvancedFilter_RinfrescaForm(optStato, optTag) {
	var infoColl, dict;
	if (!window.Articoli_ShowAdvancedFilter_RinfrescaForm__infoColl) {
		window.Articoli_ShowAdvancedFilter_RinfrescaForm__infoColl = {tmr:null, objServerEval:null, divOmbra:null, objPosit:null};
	}
	infoColl = window.Articoli_ShowAdvancedFilter_RinfrescaForm__infoColl;
	if (infoColl.tmr) window.clearTimeout(infoColl.tmr);
	switch (optStato) {
		case 'RunRefresh':
			if (!infoColl.objServerEval) {
				//Creazione oggetto ServerEval
				infoColl.objServerEval = new HtmlPlus_ServerEval('Articoli_ShowAdvancedFilter_RefreshForm', '/Articoli/AspResponder.asp?cli=Brw', 'Articoli_AdvancedFilter_DlgForm_Refresh');
				infoColl.objServerEval.OnEnd = Articoli_ShowAdvancedFilter_RinfrescaForm_onEnd;
				//Creazione oggetto DivOmbra
				infoColl.divOmbra = document.createElement('DIV');
				infoColl.divOmbra.id = 'DivListaArticoli_Top2_Filtro__shadow';
				window.document.body.appendChild(infoColl.divOmbra);
				infoColl.divOmbra_txt = document.createElement('DIV');
				infoColl.divOmbra_txt.innerHTML = 'Loading...';
				infoColl.divOmbra.appendChild(infoColl.divOmbra_txt);
				//Creazione oggetto Positionator
				infoColl.objPosit = new HtmlPlus_Positionator('Articoli_ShowAdvancedFilter_RefreshForm', infoColl.divOmbra, findObj('DivFormFiltro'), 'IN', {left:0,top:0,width:'100%',height:'100%'}, null);
			}
			dict = new Array();
			dict['IDVista'] = findObj('varIDVista').value;
			dict['IDFilter'] = findObj('varIDFilter').value;
			dict['SelectedFilters'] = Articoli_ShowAdvancedFilter_GetSelectedFilters();
			dict['Tag'] = optTag;
			infoColl.objServerEval.Run(dict);
			//findObj('DivFormFiltro').style.cursor = 'wait';
			infoColl.divOmbra.style.display = 'block';
			infoColl.objPosit.Run();
			break;
		default:
			infoColl.tmr = window.setTimeout('Articoli_ShowAdvancedFilter_RinfrescaForm(\'RunRefresh\', \'' + optTag + '\');', 1200);
	}
}
function Articoli_ShowAdvancedFilter_RinfrescaForm_onEnd(ServerEval, ReturnValue, IsAbort) {
	var infoColl, str1;
	infoColl = window.Articoli_ShowAdvancedFilter_RinfrescaForm__infoColl;
	if (!IsAbort) {
		if (ReturnValue['Tag'] == 'submit') {
			//findObj('varIDFilter').value = ReturnValue['ID'];
			//Articoli_ShowAdvancedFilter_onClose(null, ReturnValue['SelectedFilters'], false);
			window.document.body.style.cursor = 'wait';
			str1 = R + 'Articoli/Lista.asp';
			str1 += '?IDVista=' + CStrUrlParam(findObj('varIDVista').value);
			str1 += '&IDFilter=' + CStrUrlParam(ReturnValue['ID']);
			window.location = str1;
		} else {
			findObj('DivFormFiltro').innerHTML = ReturnValue['Html'];
			//findObj('DivFormFiltro').style.cursor = 'auto';
		}
	}
	infoColl.divOmbra.style.display = 'none';
	infoColl.objPosit.Stop();
}

function Articoli_ShowAdvancedFilter_GetSelectedFilters() {
	var listaCheckbox = findObj('DivFormFiltro').getElementsByTagName('input');
	var objCheckbox, fReturn;
	var cont1, vett1, vett2;
	fReturn = CreateDictionary();
	for (cont1=0; cont1 < listaCheckbox.length; cont1++) {
		objCheckbox = listaCheckbox[cont1];
		if (objCheckbox.type == 'checkbox') {
			if (objCheckbox.checked) {
				vett1 = objCheckbox.id.split(' ');
				vett2 = fReturn[vett1[0]];
				if (ValueType(vett2) != 'Array') vett2 = new Array();
				vett2.push(vett1[1]);
				fReturn[vett1[0]] = vett2;
			}
		}
	}
	return fReturn;
}


function Articoli_ListaArticoliImg_Initialize() {
	var objDivParent = findObj('DivAltriArticoliImg');
	var elements;
	var i, obj1, cont1, objArr;
	//Cerco i pulsanti CMD SX e CMD DX e la lista di ITEMS
	objArr = objDivParent.getElementsByTagName('A');
	elements = new Array();
	elements['CmdSx'] = null;
	elements['CmdDx'] = null;
	elements['Items'] = new Array();
	elements['CurrItem'] = null;
	elements['DivLista'] = null;
	elements['DivItems'] = null;
	elements['ObjCM'] = null;
	elements['itemWidth'] = null;
	elements['itemsCount'] = null;
	elements['itemsPerView'] = null;
	elements['minScrollLeft'] = null;
	elements['maxScrollLeft'] = null;
	for (i in objArr) {
		obj1 = objArr[i];
		if (obj1.tagName == 'A') {
			if (ContainsClassName(obj1, 'Cmd')) {
				if (ContainsClassName(obj1, 'aSX')) elements['CmdSx'] = obj1;
				if (ContainsClassName(obj1, 'aDX')) elements['CmdDx'] = obj1;
			} else {
				if (ContainsClassName(obj1, 'Item')) {
					elements['Items'].push(obj1);
					obj1.onclick = function (ev) {
								var eventObj = new STDEvent(ev);
								var objA = findParentObj(eventObj.srcElement, 'A');
								window.location = objA.href;		//salto la parola javascript
							};
					if (ContainsClassName(obj1, 'aCur')) elements['CurrItem'] = obj1;
				}
			}
		}
	}
	//Certo l'oggetto ITEMS
	objArr = objDivParent.getElementsByTagName('DIV');
	for (i in objArr) {
		obj1 = objArr[i];
		if (obj1.tagName == 'DIV') {
			if (ContainsClassName(obj1, 'Lista')) elements['DivLista'] = obj1;
			if (ContainsClassName(obj1, 'Items')) elements['DivItems'] = obj1;
		}
	}
	//Genero il ClipMaker per il movimento
	elements['ObjCM'] = new HtmlPlus_ClipMaker('Articoli_ListaArticoliImg_ObjCM', 0.3);
	elements['ObjCM'].AppendMotion(elements['DivLista'], 'scrollLeft', '#', 0, 100, 0, 100, 'sin');
	elements['ObjCM'].AppendEvent(100, 'Articoli_ListaArticoliImg_Redraw();');
	//Calcolo i valori
	if (elements['Items'].length > 0) {
		elements['itemWidth'] = parseInt(elements['Items'][0].offsetWidth) + 4;
	} else {
		elements['itemWidth'] = 100;
	}
	elements['itemsCount'] = elements['Items'].length;
	elements['itemsPerView'] = Math.floor(parseInt(elements['DivLista'].clientWidth) / elements['itemWidth']);
	elements['minScrollLeft'] = 0;
	elements['maxScrollLeft'] = (elements['itemsCount'] - elements['itemsPerView']) * elements['itemWidth'];
	//Salvo l'oggetto ELEMENTS per essere trovato dalle altre funzioni
	window.Articoli_ListaArticoliImg_Elements = elements;
	//Posiziono la lista in modo da visualizzare l'oggetto corrente al centro
	cont1 = 0;
	if (elements['CurrItem']) {		//questo controllo lo faccio per evitare di trovarmi in errori
		for (i in elements['Items']) {
			obj1 = elements['Items'][i];
			if (obj1 === elements['CurrItem']) {
				break;
			} else {
				cont1 += 1;
			}
		}
		cont1 -= Math.floor(elements['itemsPerView'] / 2);	//Questa istruzione mi serve per posizionare l'elemento al centro
	}
	if (cont1 > 0) {
		Articoli_ListaArticoliImg_Goto(cont1);
	} else {
		Articoli_ListaArticoliImg_Redraw();
	}
}
function Articoli_ListaArticoliImg_Goto(MoveOf) {
	var elements = window.Articoli_ListaArticoliImg_Elements;
	var scrollLeft = null;
	var itemWidth = null;
	var nuovoValore = -1;
	if (!elements) return;
	itemWidth = elements['itemWidth'];
	if (elements['ObjCM'].Status() == 'play') {
		scrollLeft = elements['ObjCM'].Motions()[0].stopValue;
	} else {
		scrollLeft = parseInt(elements['DivLista'].scrollLeft);
	}
	if (MoveOf < 0) {
		if (scrollLeft > elements['minScrollLeft']) {
			nuovoValore = scrollLeft + itemWidth * MoveOf;
			if (nuovoValore < 0) nuovoValore = 0;
		}
	} else if (MoveOf > 0) {
		if (scrollLeft < elements['maxScrollLeft']) {
			nuovoValore = scrollLeft + itemWidth * MoveOf;
			if (nuovoValore > elements['maxScrollLeft']) nuovoValore = elements['maxScrollLeft'];
		}
	}
	if (nuovoValore > -1) {
		elements['ObjCM'].Pause();
		elements['ObjCM'].Motions()[0].startValue = elements['DivLista'].scrollLeft;
		elements['ObjCM'].Motions()[0].stopValue = nuovoValore;
		elements['ObjCM'].Stop();
		elements['ObjCM'].Play();
		//elements['DivLista'].scrollLeft = nuovoValore;
	}
}
function Articoli_ListaArticoliImg_Redraw() {
	var elements = window.Articoli_ListaArticoliImg_Elements;
	var scrollLeft = parseInt(elements['DivLista'].scrollLeft);
	var itemWidth = elements['itemWidth'];
	SetClassName(elements['CmdSx'], 'aDis', (scrollLeft <= elements['minScrollLeft']));
	SetClassName(elements['CmdDx'], 'aDis', (scrollLeft >= elements['maxScrollLeft']));
}