/**
 * @author zamborlini
 */

var base_url = '/';

// CHROME custom-doc error -.-'
// YAHOO.env.ua.webkit;

// SIDEBAR
YAHOO.util.Event.onContentReady("sidebarMenu", function () {
	var oSidebarMenu = new YAHOO.widget.Menu("sidebarMenu", {position: "static",hidedelay:  750,lazyload: true });
	oSidebarMenu.render();
});

// JQUERY LIGHTBOX
$(document).ready(function(){
			$("a[rel^='prettyPhoto']").prettyPhoto();
		});

// JQUERY filter
$(document).ready(function() {
	function ricalcolaSelect(detached)
	{
		if(detached)
		{
			if(detached.length > 0)
			{	
				for(var a = 0; a < detached.length; a++)
				{
					detached[a].appendTo('select[name=serie]');
				}
			}
		}
		else
		{
			detached = null;
		}
		
		return detached;
	}
	
	var detached = Array();	
	$("select[name=marca]").change(function() {
		detached = ricalcolaSelect(detached);
		$('select[name=serie] optgroup[label!='+$(this).val()+']').each(function() {
			var c = detached.length;
			detached[c] = $(this).detach();
		});
	});
	
	// inoltre stacco il gruppo mercedes e lo metto in cima
	var mb = $("select[name=serie] optgroup[label^=MERCEDES]").detach();
	var smart = $("select[name=serie] optgroup[label^=SMART]").detach();
	var chrysler = $("select[name=serie] optgroup[label^=CHRYSLER]").detach();
	var jeep = $("select[name=serie] optgroup[label^=JEEP]").detach();
	var dodge = $("select[name=serie] optgroup[label^=DODGE]").detach();
	var dash = $("select[name=serie] option[value=0]").detach();
	
	$('select[name=serie]').prepend(dodge);
	$('select[name=serie]').prepend(jeep);
	$('select[name=serie]').prepend(chrysler);
	$('select[name=serie]').prepend(smart)
	$('select[name=serie]').prepend(mb);
	$('select[name=serie]').prepend(dash);
});


YAHOO.util.Event.onAvailable('special_one_cerchi',function()
{
	var picker = new YAHOO.widget.ColorPicker("special_one_cerchi", {
		showhsvcontrols: false,
		showhexcontrols: true,
		showrgbcontrols: true,
		showwebsafe: false,
		images: {
			PICKER_THUMB: base_url + "ci/clientscript/yui/build/colorpicker/assets/picker_thumb.png",
			HUE_THUMB: base_url + "ci/clientscript/yui/build/colorpicker/assets/hue_thumb.png"
		}
	});
	
	var onRgbChange = function(o) {
		/*o is an object
			{ newValue: (array of R, G, B values),
			  prevValue: (array of R, G, B values),
			  type: "rgbChange"
			 }
		*/
		document.getElementById('cerchi_colore').value = o.newValue[0] + '/' + o.newValue[1] + '/' + o.newValue[2];
		
		document.specialOne.special_one_cerchi_scelta[0].checked = false;
		document.specialOne.special_one_cerchi_scelta[1].checked = true;
	}
	
	//subscribe to the rgbChange event;
	picker.on("rgbChange", onRgbChange);

	//use setValue to reset the value to white:
	Event.on("reset", "click", function(e) {
		picker.setValue([255, 255, 255], false); //false here means that rgbChange
											     //will fire; true would silence it
	});
})



// SEARCH MASK
YAHOO.util.Event.onAvailable("search_mask", function()
{
	var SearchMask = YAHOO.namespace("search_mask");

	// TABS
	SearchMask.tabView = new YAHOO.widget.TabView('search_mask_tabs');
	// le tabs aprono la search_mask_container
	SearchMask.tabs = YAHOO.util.Selector.query('#search_mask_tabs_container li a');
	for (var i = 0; i < SearchMask.tabs.length; i++)
	{	// forzo l'apertura del target cliccando sulla tab
		YAHOO.util.Event.addListener(SearchMask.tabs[i], "click", function(){YAHOO.toggler.doToggle.forceOpen({id:'search_mask_container',control:'search_mask_toggle_button',duration:10,from:5,to:280});} );
	}

	// SEARCH DEPENDANCIES: MARCA + SERIE
	var asyncEvents =
	{
		start:function(type, args)
		{
			document.getElementById('search_mask_serie').disabled = true;
		},
		complete:function(type, args)
		{
			document.getElementById('search_mask_serie').disabled = false;			
		},		
		success:function(type, args)
		{
			var ar = eval(args[0].responseText);
			var search_mask_serie = document.getElementById('search_mask_serie');
			search_mask_serie.innerHTML = '';
			
			var option = document.createElement('option');
			option.value = '-1';
			option.innerHTML = '---';
			search_mask_serie.appendChild(option);
			for(var c = 0; c < ar.length; c++)
			{
				// creo il nodo
				var option = document.createElement('option');
				option.value = ar[c];
				option.innerHTML = ar[c];
				search_mask_serie.appendChild(option);
			}
		}
	};
	
	var search_mask_marca = document.getElementById('search_mask_marca');
	YAHOO.util.Event.addListener(search_mask_marca, "change", get_series);
	
	function get_series()
	{
		var callback = {};
		YAHOO.util.Connect.startEvent.subscribe(asyncEvents.start);
		YAHOO.util.Connect.successEvent.subscribe(asyncEvents.success);
		YAHOO.util.Connect.completeEvent.subscribe(asyncEvents.complete);
		var postData = 'marca=' + search_mask_marca.value;
		var sUrl = base_url + 'async/get_series';
		var series = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback,postData);
	}
	
});

// STANDBY FILTER
YAHOO.util.Event.onAvailable("filter_mask_advanced", function()
{
	var FilterMask = YAHOO.namespace("filter_mask_advanced");

	// SEARCH DEPENDANCIES: MARCA + SERIE
	var asyncEvents =
	{
		start:function(type, args)
		{
			document.getElementById('filter_serie').disabled = true;
		},
		complete:function(type, args)
		{
			document.getElementById('filter_serie').disabled = false;			
		},		
		success:function(type, args)
		{
			var ar = eval(args[0].responseText);
			var filter_serie = document.getElementById('filter_serie');
			filter_serie.innerHTML = '';
			
			var option = document.createElement('option');
			option.value = '-1';
			option.innerHTML = '---';
			filter_serie.appendChild(option);
			for(var c = 0; c < ar.length; c++)
			{
				// creo il nodo
				var option = document.createElement('option');
				option.value = ar[c];
				option.innerHTML = ar[c];
				filter_serie.appendChild(option);
			}
		}
	};
	
	var filter_marca = document.getElementById('filter_marca');
	YAHOO.util.Event.addListener(filter_marca, "change", get_series);
	
	function get_series()
	{
		var callback = {};
		YAHOO.util.Connect.startEvent.subscribe(asyncEvents.start);
		YAHOO.util.Connect.successEvent.subscribe(asyncEvents.success);
		YAHOO.util.Connect.completeEvent.subscribe(asyncEvents.complete);
		var postData = 'marca=' + filter_marca.value;
		var sUrl = base_url + 'async/get_series';
		var series = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback,postData);
	}
	
});



// SITE MAP
YAHOO.util.Event.onAvailable("site_map_top", function()
{
 
		// Namespace
		var SiteMap = YAHOO.namespace('site_map');
		SiteMap.content = YAHOO.util.Dom.get('site_map_top_container_inner');
		SiteMap.handlePagination = function (state)
		{
		    // Show the appropriate content for the requested page
		    SiteMap.content.className = 'page' + state.page;
		    // Update the Paginator's state, confirming change
		    SiteMap.paginator.setState(state);
		};
		// Create the Paginator widget and subscribe to its changeRequest event
		SiteMap.paginator = new YAHOO.widget.Paginator(
		{
		    rowsPerPage : 1,
		    totalRecords : SiteMap.content.getElementsByTagName('div').length,
		    containers : 'paging',
		    template              : "{PreviousPageLink}{NextPageLink}",
		    pageReportTemplate    : "Page {currentPage} of {totalPages}",
		    previousPageLinkLabel : "Indietro",
		    nextPageLinkLabel     : "Avanti"	
		});
		SiteMap.paginator.subscribe('changeRequest', SiteMap.handlePagination);
		// Render the Paginator into the configured container(s)
		SiteMap.paginator.render();
 
});


// CONTATTACI INTEREST BUTTON SCHEDA DETAILS
YAHOO.util.Event.onContentReady("scheda_details_submit", function ()
{
	var scheda_details_submit_button1 = new YAHOO.widget.Button("scheda_details_submit_button", { type: "split", menu: "scheda_details_submit_select" });
});

// BG per gecko
YAHOO.util.Event.on(window,"load", function()
{
	var allbg = document.getElementById('all');
	
	if(YAHOO.env.ua.gecko)
	{
		allbg.style.background = 'transparent url('+base_url+'ci/img/body_content_0.gif) 50% 0 repeat-y';
	}
	else if(YAHOO.env.ua.webkit || YAHOO.env.ua.ie)
	{
		allbg.style.background = 'transparent url('+base_url+'ci/img/body_content_1.gif) 50% 0 repeat-y';
	}
});

/* JQUERY */
	(function($) {
		$('#banner_fate_il_vostro_gioco').cycle({ 
		    fx:    'shuffle',
			speed:  'fast', 
		    delay: -7000 
		});
	})(jQuery);
	
	
	
// SLIDER BACKOFFICE

YAHOO.util.Event.onContentReady("backoffice_cdm", function () {

    var Event = YAHOO.util.Event,
        Dom   = YAHOO.util.Dom,
        lang  = YAHOO.lang,
        slider1,
		slider2,
		slider3,
		slider4,
		slider5,
		slider6,
		slider7, 

		bg1="slider-bg1", thumb1="slider-thumb1", 
        valuearea1="slider-value1", textfield1="slider-converted-value1",
		
		bg2="slider-bg2", thumb2="slider-thumb2", 
        valuearea2="slider-value2", textfield2="slider-converted-value2",
		
		bg3="slider-bg3", thumb3="slider-thumb3", 
        valuearea3="slider-value3", textfield3="slider-converted-value3",
		
		bg4="slider-bg4", thumb4="slider-thumb4", 
        valuearea4="slider-value4", textfield4="slider-converted-value4",
		
		bg5="slider-bg5", thumb5="slider-thumb5", 
        valuearea5="slider-value5", textfield5="slider-converted-value5",
		
		bg6="slider-bg6", thumb6="slider-thumb6", 
        valuearea6="slider-value6", textfield6="slider-converted-value6",
		
		bg7="slider-bg7", thumb7="slider-thumb7", 
        valuearea7="slider-value7", textfield7="slider-converted-value7"
 
    // The slider can move 0 pixels up
    var topConstraint = 0;
 
    // The slider can move 200 pixels down
    var bottomConstraint = 200;
 
    // Custom scale factor for converting the pixel offset into a real value
    var scaleFactor = 1;
 
    // The amount the slider moves when the value is changed with the arrow
    // keys
    var keyIncrement = 20;
	
	// per ogni pezzo
	slider1 = doSlider(slider1,bg1,thumb1,valuearea1,textfield1,topConstraint,bottomConstraint,scaleFactor,keyIncrement)
	slider2 = doSlider(slider2,bg2,thumb2,valuearea2,textfield2,topConstraint,bottomConstraint,scaleFactor,keyIncrement)
	slider3 = doSlider(slider3,bg3,thumb3,valuearea3,textfield3,topConstraint,bottomConstraint,scaleFactor,keyIncrement)
	slider4 = doSlider(slider4,bg4,thumb4,valuearea4,textfield4,topConstraint,bottomConstraint,scaleFactor,keyIncrement)
	slider5 = doSlider(slider5,bg5,thumb5,valuearea5,textfield5,topConstraint,bottomConstraint,scaleFactor,keyIncrement)
	slider6 = doSlider(slider6,bg6,thumb6,valuearea6,textfield6,topConstraint,bottomConstraint,scaleFactor,keyIncrement)
	slider7 = doSlider(slider7,bg7,thumb7,valuearea7,textfield7,topConstraint,bottomConstraint,scaleFactor,keyIncrement)

	// inizializzo i valori
	slider1.setValue(parseInt(Dom.get('slider-value1').value), false);
	slider2.setValue(parseInt(Dom.get('slider-value2').value), false);
	slider3.setValue(parseInt(Dom.get('slider-value3').value), false);
	slider4.setValue(parseInt(Dom.get('slider-value4').value), false);
	slider5.setValue(parseInt(Dom.get('slider-value5').value), false);
	slider6.setValue(parseInt(Dom.get('slider-value6').value), false);
	slider7.setValue(parseInt(Dom.get('slider-value7').value), false);

});

 
function doSlider(slider,bg,thumb,valuearea,textfield,topConstraint,bottomConstraint,scaleFactor,keyIncrement)
{
    slider = YAHOO.widget.Slider.getVertSlider(bg, 
                     thumb, topConstraint, bottomConstraint);

    slider.getRealValue = function() {
        return ((Math.round(this.getValue() * scaleFactor) - 200) * (-1))/10;
    }

    slider.subscribe("change", function(offsetFromStart) {

        var valnode = Dom.get(valuearea);
        var fld = Dom.get(textfield);

        // Display the pixel value of the control
        valnode.value = offsetFromStart;

        // use the scale factor to convert the pixel offset into a real
        // value
        var actualValue = slider.getRealValue();

        // update the text box with the actual value
        fld.value = actualValue;

        // Update the title attribute on the background.  This helps assistive
        // technology to communicate the state change
        Dom.get(bg).title = "slider value = " + actualValue;

    });

    // Listen for keystrokes on the form field that displays the
    // control's value.  While not provided by default, having a
    // form field with the slider is a good way to help keep your
    // application accessible.
    Event.on(textfield, "keydown", function(e) {

        // set the value when the 'return' key is detected
        if (Event.getCharCode(e) === 13) {
            var v = parseFloat(this.value, 10);
            v = (lang.isNumber(v)) ? v : 0;

            // convert the real value into a pixel offset
            slider.setValue(Math.round(v/scaleFactor));
        }
    });
	
	return slider;
}


