// JavaScript Document

/*
php json_encode( array( 0=>array("nev"=>"asd","jelszo"=>"asd"), 1=>array("nev"=>"asd2","jelszo"=>"asd2") ) );

jQuery.getJSON("phpneve",function( retval ){
					for( var i=0; i<retval.lenght; i++){
						retval[i].nev;
						retval[i].jelszo;
					}
				});


function formEventHandler(container)
{
	var container = $(container);
	if (container != null)
	{
		alert("Event handler created");
		container.on("change", function(event){
												var element = Event.findElement(event);
												var id = element.id;
												var value = element.value;
												var requestHandler = new formRequestHandler(id, value);
												alert("Event fired");
												requestHandler.getResponseData();
											});
	}
}
*/

function selectEventHandler(id, value)
{
	var requestHandler = new formRequestHandler(id, value);
	requestHandler.getResponseData();
}

function formRequestHandler(elementId, elementValue)
{
	this.id = elementId;
	this.capid = elementValue;
	this.stage = this.id.substr(0,4);
	this.col = this.id.substr(this.id.length-1, 1);
	this.target = this.setTarget();
}

formRequestHandler.prototype =
{
	
	setTarget: function()
	{
		switch (this.stage)
		{
			case "cman":
				return "cran"+this.col;
				break;
			case "cran":
				return "cmod"+this.col;
				break;
			case "cmod":
				return "cder"+this.col;
				break;
			case "cder":
			default:
				return false;
				break;
		}
	},
    
    setZINdex: function(target)
    {
        var myid = target.substr(0,4);
        jQuery.jNice.SelectAdd( jQuery("#"+myid+'Select'+this.col).get(0) );
        var sib = jQuery("#"+myid+'Select'+this.col).siblings('div')[0];
        var wrapper = jQuery(sib).parent().get(0);
        
        var zIndex = 100;
        switch(myid)
        {
            case "cran": zIndex = 99; break;
            case "cmod": zIndex = 98; break;
            case "cder": zIndex = 97; break;
        }
        
        jQuery(wrapper).css({ zIndex: zIndex+' !important', position: 'relative !important' });
    
    },
	
	setContent: function(response)
	{
		if (this.target)
		{
			var objTarget = $('#'+this.target);
			if ( document.getElementById(this.target) )
			{
                // alert(this.target);
				objTarget.html(response);
                this.setZINdex(this.target);
                /*jQuery.jNice.SelectAdd( jQuery("#"+myid+'Select'+this.col).get(0) );
                var sib = jQuery("#"+myid+'Select'+this.col).siblings('div')[0];
                var wrapper = jQuery(sib).parent().get(0);
                
                var zIndex = 100;
                switch(this.stage)
                {
                    case "cman": zIndex = 99; break;
                    case "cran": zIndex = 98; break;
                    case "cmod": zIndex = 97; break;
                }
                
                jQuery(wrapper).css({ zIndex: zIndex+' !important', position: 'relative !important' });*/
   			}
		}
		else
		{
            // alert(response);
			if ( /Transmission/.test(response) )
			{
				// var objCarData = response.evalJSON(true);
				// var hashCarData = $H(objCarData);
                var hashCarData = jQuery.parseJSON( response );
                // alert(hashCarData.Transmission);
				var oThis = this;
				var headDataUnits = new Array();
				
				headDataUnits["GrossVehicleWeight"] = " kg";
				headDataUnits["Width"] = " mm";
				headDataUnits["TyreSizeRear"] = "";
				headDataUnits["EnginePower-BHP"] = " BHP";
				headDataUnits["ServiceIntervalFrequency-Months"] = " months";
				headDataUnits["ECCombinedmpg"] = " mpg";
				headDataUnits["StandardEuroEmissions"] = "";
				
				jQuery.each( hashCarData, function(key, value)
                    {
                        if (key == "0to62mphsecs")
                        {
                            var td = "Accel"+oThis.col;
                        }
                        else
                        {
                            var td = key+oThis.col;
                        }
                        var head = key+oThis.col+"head";
                        
                        if ( document.getElementById(head) )
                        {
                            head = $('#'+head);
                            if (value == "N")
                            {
                                head.html("-");
                            }
                            else if( headDataUnits[key] )
                            {
                                head.html( value+headDataUnits[key] );
                            }
                        }
                        
                        if ( document.getElementById(td) )
                        {
                            td = $('#'+td);
                            if (value == "True" || value == "False")
                            {
                                var thisVal = ( value == "True" ? "Yes" : "No" ); 
                                td.html( thisVal );
                            }
                            else
                            {
                                if (value == "N")
                                {
                                    td.html( "-" );
                                }
                                else
                                {
                                    td.html( value );
                                }
                            }
                        }
                        // alert(key + ' - ' + value);
                    }
                );
                
				$("#GearsTransmission"+this.col).html( hashCarData.Gears + " " + hashCarData.Transmission );
			}
		}
	},
	
	walkTheDOM: function(node, func)
	{
		func(node);
		node = node.firstChild;
		while (node) {
			this.walkTheDOM(node, func);
			node = node.nextSibling;
		}
	},
	
	wipeData: function()
	{
   		var oThis = this;
		this.walkTheDOM($("md_com_optfull"), function(node) {
			var id = node.id;
			if (id && (id.substr(id.length-1, 1) == oThis.col || id.substr(id.length-5) == oThis.col+"head"))
			{
				node.html( "-" );
			}
		});
        
		$("#pict"+this.col).html( "" );
		$("#price"+this.col).html( "-" );
		if (this.stage == "cman")
		{
			$("#cmod"+this.col).html( "<select class=\"service_select\" id='cmodSelect"+this.col+"' onchange='selectEventHandler(this.id, this.value);'><option value=''>-- Select a Model --</option></select>" );
            this.setZINdex("cmod"+this.col);
			$("#cder"+this.col).html( "<select class=\"service_select\" id='cderSelect"+this.col+"' onchange='selectEventHandler(this.id, this.value);'><option value=''>-- Select a Derivative --</option></select>" );
            this.setZINdex("cder"+this.col);
		}
		else if(this.stage == "cran")
		{
			$("#cder"+this.col).html( "<select class=\"service_select\" id='cderSelect"+this.col+"' onchange='selectEventHandler(this.id, this.value);'><option value=''>-- Select a Derivative --</option></select>" );
            this.setZINdex("cder"+this.col);
		}
        
	},
	
	getResponseData: function()
	{
		var oThis = this;
		var params = "stage="+this.stage+"&id="+this.capid+"&col="+this.col;
		var loader = $('ajaxloader'+this.col);
		// if (loader != null)
		// {
			// loader.setStyle({
				// display: 'block'
			// });
		// }
		this.wipeData();
        // alert(loader);return false;
        jQuery.ajax({
            url: './scripts/comparerequest.php',
            // global: false,
            type: "POST",
            data: params,
            // dataType: "html",
            // async:false,
            success: function( msg )
            {
                // alert(msg);
                oThis.setContent(msg);
                // JQProc_ajaxcall( msg, div );
            }
        });
        return false;
		// new Ajax.Request('./scripts/comparerequest.php',
						// {
							// method: "post",
							// parameters: params,
							// onSuccess: function(transport)
							// {
								// var response = transport.responseText;
								// oThis.setContent(response);
								// // if (loader != null)
								// // {
									// // loader.setStyle({
										// // display: 'none'
									// // });
								// // }
							// },
							// onFailure: function(transport)
							// {
                                // alert(transport.responseText);
								// // if (loader != null)
								// // {
									// // loader.setStyle({
										// // display: 'none'
									// // });
								// // }
							// }
						// });
	}
}

function accordation(){
    jQuery("#md_com_optfull .md_com_optslidedesc .md_com_moredettab .com_arrowsclose_img").css({"display" : "none"});
    jQuery("#md_com_optfull .md_com_optslidedesc .md_com_moredettab").each( function(z){
        var thisTab = jQuery(this);
        var originalH = jQuery("#md_com_optfull .md_com_optslidedesc:eq(" + z + ") .md_com_optslider").outerHeight(true);
        jQuery(this).click(function(){
            if (jQuery("#md_com_optfull .md_com_optslidedesc:eq(" + z + ") .md_com_optslider").outerHeight(true) == 40) {
                jQuery("#md_com_optfull .md_com_optslidedesc:eq(" + z + ") .md_com_optslider").animate({"height" : originalH}, 1000, "easeInOutExpo", function() {
                    // jQuery("p", thisTab).text("less data").css({"color" : "#3685ce"});
                    jQuery("p", thisTab).text("less data");
                    jQuery(".com_arrowsclose_img", thisTab).css({"display" : "block"});
                    jQuery(".com_arrowsopen_img", thisTab).css({"display" : "none"});
                });
            } else {
                jQuery("#md_com_optfull .md_com_optslidedesc:eq(" + z + ") .md_com_optslider").animate({"height" : "40px"}, 1000, "easeInOutExpo", function() {
                    jQuery(".com_arrowsopen_img", thisTab).css({"display" : "block"});
                    jQuery(".com_arrowsclose_img", thisTab).css({"display" : "none"});
                    // jQuery("p", thisTab).text("more data").css({"color" : "#c10e07"});
                    jQuery("p", thisTab).text("more data");
                });
            }
        });
    });
    jQuery("#md_com_optfull .md_com_optslidedesc .md_com_optslider").css({"height" : "40px"});
}
