(function($){

	var site = "garasjer.no";
	var tempext = "erkunde.no";
	//var xmlfilename = "inquiry-data.snippet.xml";
	var xmlfilename = "inquiry-data-xml.asp"
	var xmlurl = "/site/" +  site + "/design/snippets/" + xmlfilename;


	$(function()
	{		
		/* Hide pager if only one page */
		$(".pager ul").each(function(){ $(this).etpPagerVisability(3); });
		
		$(".layout-section-4-col, .layout-section-2-col").each(function(){ $(this).etpEqualHeights(true);	});				

		$('#slides').slides({
			preload: true,
			preloadImage: 'images/loading.gif',
			play: 5000,
			pause: 2500,
			hoverPause: true,
			effect: 'slide',
			crossfade: true
		});
		
		/* Placement window */
		$("#windowPlacementContainer").windowPlacementOption(false, $(".window-g").val());
		$(".window-g").change(function(){ 
			$(".iswall-false", $("#windowPlacementContainer")).remove();
			$("#windowPlacementContainer").windowPlacementOption(false, $(this).val()); 
		});
	
		// Oppdaterer når siden lastes
		$("#windowPlacementContainer").windowPlacementOption(true, $(".window-v").val()); 

		// Oppdateres når antallet endres
		$(".window-v").change(function(){ 
			$(".iswall-true", $("#windowPlacementContainer")).remove();
			$("#windowPlacementContainer").windowPlacementOption(true, $(this).val()); 
		});

		/* Placement door */
		$("#doorPlacementContainer").doorPlacementOption(false, $(".door-g").val());
		$(".door-g").change(function(){ 
			$(".iswall-false", $("#doorPlacementContainer")).remove();
			$("#doorPlacementContainer").doorPlacementOption(false, $(this).val()); 
		});
	
		// Oppdateres når siden lastes
		$("#doorPlacementContainer").doorPlacementOption(true, $(".door-v").val()); 

		// Oppdateres når antallet endres
		$(".door-v").change(function(){ 
			$(".iswall-true", $("#doorPlacementContainer")).remove();
			$("#doorPlacementContainer").doorPlacementOption(true, $(this).val()); 
		});

		$(".iswall-true").each(function(){ 
			$(this).change(function(){ 
															var ex = doorWindowPlacementPicked($(this).text()); 
															if(ex) { $(this).removeAttr('selected'); $(this).addClass("error"); }
															}); 
		});
		
		$(".iswall-false").each(function(){  
			$(this).change(function(){ 
															var ex = doorWindowPlacementPicked($(this).text()); 
															if(ex) { $(this).removeAttr('selected'); $(this).addClass("error"); }
															}); 
		});
		
		$.validator.setDefaults({
				submitHandler: function () {},
				highlight: function (input) { $(input).addClass("ui-state-highlight"); },
				unhighlight: function (input) { $(input).removeClass("ui-state-highlight"); } 
		});

		$(".garage-wizard").garageInquiry();

		$(".garage-wizard").formwizard({ 
			formPluginEnabled: true,
			validationEnabled: true,
			focusFirstInput: true,
			historyEnabled: true,
			textSubmit: "Send",
			textNext: "Neste",
			textBack: "Tilbake",
			formOptions:
			{
				success: function(data)
					{
						window.location ="/takk-for-din-foresporsel";
					},
				beforeSubmit: function(data)
					{
						//$("#data").html("data sent to the server: " + $.param(data));
					},
				dataType: 'xml',
				resetForm: false
			}	
		});
		
	});
	
	function doorWindowPlacementPicked(pos)
	{
		isAlreadyTaken = false;
		
		$(".iswall-true").each(function(){ 
				if ($(this).text() == pos) 
				{ 
					isAlreadyTaken = true; 
				}		
			});
		
		if(!isAlreadyTaken)
		{
			$(".iswall-false").each(function(){ 
				if ($(this).text() == pos) 
				{ 
					isAlreadyTaken = true; 
				}  
			});
		}
		
		if (isAlreadyTaken) { alert("Plasseringen er allerede valgt!"); }
	}
	
	$.fn.windowPlacementOption = function(wall,count)
	{
		if (count > 0) { $(".vindusvalg").show(); }
		else { $(".vindusvalg").hide(); }
		
		var placementes = (wall) ? "|A1|A2|A3|B1|B2|B3|C1|C2|C3" : "|D1|D2";
		var arr = placementes.split("|");
		
		for(var ix = 0; ix < count ; ix++)
		{
			var $el = $("<select>").addClass("iswall-" + wall).addClass("required").attr("name", "wPos" + (ix+1) + wall);

			for(var idx = 0 ; idx < arr.length ; idx++)
			{				
				var $opt = $("<option>").val(arr[idx]).text(arr[idx]);
				if(ix == (idx - 1)){ $opt.attr("selected", "selected"); }
				$opt.appendTo($el);
			}

			$("<div>").addClass("iswall-" + wall).addClass("cr8").appendTo($(this));
			$el.appendTo($(this));
		}
	}
	
	$.fn.doorPlacementOption = function(wall,count)
	{
		if (count > 0) { $(".dorvalg").show(); }
		else { $(".dorvalg").hide(); }
		
		var placementes = (wall) ? "|A1|A2|A3|B1|B2|B3|C1|C2|C3" : "|D1|D2";
		var arr = placementes.split("|");
		
		for(var ix = 0; ix < count ; ix++)
		{
			var $el = $("<select>").addClass("iswall-" + wall).attr("name", "dPos" + (ix+1) + wall);

			for(var idx = 0 ; idx < arr.length ; idx++)
			{				
				var $opt = $("<option>").val(arr[idx]).text(arr[idx]);
				if(ix == (idx - 1)){ $opt.attr("selected", "selected"); }
				$opt.appendTo($el);
			}

			$("<div>").addClass("iswall-" + wall).addClass("cr8").appendTo($(this));
			$el.appendTo($(this));
		}
	}	
	
	// Henter xml-data
	function _getXmlData()
	{
		var xmldoc = "";
		$.ajax
		({
				url: xmlurl,
				//context: $this,
				dataType: "xml",
				async:false,
				success: function(xml){ xmldoc = xml;	},
				statusCode: { 404: function() {}}
		});			
		return xmldoc;
	}	 		
	
	$.fn.garageInquiry = function(opts){
		$this = $(this);

		var	options = {
			selLengde:      	{ id: "antall", defaultValue: ""},
			selTaksteinType:  { id: "Rtype", defaultValue: "821"},
			selTaksteinFarge: { id: "Rcolor", defaultValue: "SKDSORTB"},
			selTakrenneFarge: { id: "takreneF", defaultValue: ""}
		}
	 
		$.extend(options, opts);				
		_init();
		
		function _init()
		{
			var $lengde = $("#" + options.selLengde.id);
			var	$taksteinType = $("#" + options.selTaksteinType.id);
			var	$taksteinFarge = $("#" + options.selTaksteinFarge.id);
			var	$takrenneFarge = $("#" + options.selTakrenneFarge.id);
				
			$lengde.initLengde(options);      
			$taksteinType.initTaksteinType(options);
			$taksteinFarge.initTaksteinFarge(options);
			$takrenneFarge.initTakrenneFarge(options);
			
			$taksteinType.change(function(){ $taksteinFarge.initTaksteinFarge(options); });			
		};						

		return $(this);
	};
	
	$.fn.initLengde = function(opts) {
		var xmldata = _getXmlData();
		$this = $(this);
								
		// Tømmer lista
		$this.find("option").remove().end();
				
		// Leser xml og fyller lista på nytt
		$(xmldata).find("lengde").each(function(ix){ $(this).addOptions($this, opts.selLengde.defaultValue); });

		return $(this);
	}		

	$.fn.initTaksteinType = function(opts) {
		var xmldata = _getXmlData();
		$this = $(this);
								
		// Tømmer lista
		$this.find("option").remove().end();
						
		// Leser xml og fyller lista på nytt
		$(xmldata).find("type").each(function(ix){ $(this).addOptions($this, opts.selTaksteinType.defaultValue); });

		return $(this);
	}		


  $.fn.initTaksteinFarge = function(opts)
  {   
    var xmldata = _getXmlData();
    $this = $(this);
    
		// Tømmer lista
		$this.find("option").remove().end();
  						
    var $valgtTaksteinType = $("#" + opts.selTaksteinType.id + " option:selected").first();
    var $parent = $(xmldata).find("type[id=" + $valgtTaksteinType.val() + "]");
		
    // Leser xml og fyller lista på nytt
		$parent.find("farge").each(function(ix){ $(this).addOptions($this, opts.selTaksteinFarge.defaultValue); });
    
    return $(this); 
  }
  
	
	$.fn.initTakrenneFarge = function(opts) {
		var xmldata = _getXmlData();
		$this = $(this);
								
		// Tømmer lista
		$this.find("option").remove().end();
		
		// Leser xml og fyller lista på nytt
		$(xmldata).find("takrenne").find("farge").each(function(ix){ $(this).addOptions($this, opts.selTakrenneFarge.defaultValue); });

		return $(this);
	}			
		
	$.fn.addOptions = function(parent, std)
	{
		$parent = parent;
		var cName = $(this).attr("name");
		var cId = $(this).attr("id");
				
		var isSelected = (cId == std);
		
		// Setter riktig som valgt
		if(isSelected)
		{
			$("<option>").val(cId).text(cName).attr("selected", "selected").appendTo($parent);						
		}
		else
		{
			$("<option>").val(cId).text(cName).appendTo($parent);			
		}

		return $(this);
	}			

})(jQuery)

