﻿window.addEvent('domready', function() {
	// Activating
	$('mats').setStyle('display','block');

	// Graphics
		function initAnims() {
			var inputFields = $$('#'+formid+' input[type=text], #'+formid+' select, #'+formid+' input[type=checkbox], #'+formid+' ul.checklist input');
			inputFields.each(function(element) {
				element.addEvent('focus', function(event){			
					element.getParent('td').tween('background-color', '#b1b5b7');
				});
				element.addEvent('blur', function(event){
					element.getParent('td').tween('background-color', '#fff');
				});
			});
		}
		initAnims();/**/
	
	// Getting options from custom selectboxes
		function checklistValues(identifier) {
			var returns = [];
			var i = 0;
			identifier.each(function(element){
				if (element.checked) {
					returns[i] = element.getAttribute("name").slice(4,8);
					i++;
				}
			});
			return returns;
		}
		
	// Ajax
	
		// Declaring variables
		var cats = $$('.radiocat');	
		var mats = $$('#materials input');
		var matList = $('materials');
		var catList = $('categories');
		var log = $('log_desc');
		var listY = catList.getStyle('height').toInt();
		if (listY < 150) {
			listY = catList.getDimensions().height-catList.getStyle('padding-top').toInt()-catList.getStyle('padding-bottom').toInt()-2; // IE Hack
		}
		
		// Functions
		function changeMat() {	 
			var matInfo = new Request({
				url:'ajax_getdescription.asp',
				method:'post',
				onSuccess: function(txt){
					var descFx = new Fx.Morph(log, {duration: 250, transition: Fx.Transitions.Sine.easeOut});
					if (log.getStyle('height').toInt() > 20) {
						descFx.start({'margin-left':[0,800], 'opacity':[1,0]})
							.chain(function(){
								log.innerHTML = "";
								if(txt){
									descFx.start({'margin-left':[-800,0], 'opacity':[0,1]})
									log.innerHTML = txt;
								}
							});
					} else {
						if(txt){
							descFx.start({'margin-left':[-800,0], 'opacity':[0,1]});
							log.innerHTML = txt;
						}
					}
				},
				onFailure: function(){	
					log.innerHTML = "<h2>Ups. Der opstod en uventet fejl.</h2><p>Der opstod desv&aelig;rre en uventet fejl. Pr&oslash;v igen senere, og kontakt gerne Columbus p&aring; marketing@dk.columbusit.com, hvis fejlen forts&aelig;tter. Undskyld ulejligheden.</p>";	
				}
			});
			var mats = $$('#materials input');
			matValues = checklistValues(mats);
			if (matValues.length > 1) {
				var postVars = "matids=";
				for (t=0; t<matValues.length; t++) {
					postVars += matValues[t];
					if (t < matValues.length-1) {
						postVars += ",";
					}
				}
				matInfo.send(postVars);
			} else {	
				matInfo.send("matid="+matValues[0]);
			}
		}
		function changeCat() {
			var idvalue;
			cats.each(function(element) {
				if (element.checked) {
					idvalue = element.value	
				}
			});
			
			// Getting materials
			var subMats = new Request({
				url:'ajax_getmaterials.asp',
				method:'post',
				onSuccess: function(txt){
					if(log.getStyle('opacity') == 1) {
						var descFx = new Fx.Morph(log, {duration: 250, transition: Fx.Transitions.Sine.easeOut});
						descFx.start({'opacity':[1,0]})
							.chain(function(){
								log.innerHTML = "";
							});
					}
					var matFx = new Fx.Morph(matList, {duration: 400, transition: Fx.Transitions.Sine.easeOut});
					if (matList.getStyle('height').toInt() < 20) {
						matList.innerHTML = "";
						if (txt) {
							matFx.start({'height':[10, listY], 'opacity':[0,1]})
							items = txt.split(";;;");
							var html = "";
							for (i=0,t=items.length; i<t; i++) {
								if(items[i]) {
									var singleItem = items[i].split(":::");
									var itemhtml;
									var year = singleItem[2].substr(6,4);
									itemhtml = '<li><label for="check'+singleItem[0]+'"><input type="checkbox" name="mat-'+singleItem[0]+'" class="checkmat" id="check'+singleItem[0]+'" /><span>'+singleItem[1]+'</span> ('+year+')</label></li>';
									html = html + itemhtml;
								}
							}
							matList.innerHTML = html;
							initAnims();
							var mats = $$('#materials input');
							mats.each(function(element){
								element.addEvent('click', changeMat);
							});
						}
					} else {
						matFx.start({'height':[listY, 10], 'opacity':[1,0]})
							.chain(function(){
								matList.innerHTML = "";
								if (txt) {
									matFx.start({'height':[10, listY], 'opacity':[0,1]})
									items = txt.split(";;;");
									var html = "";
									for (i=0,t=items.length; i<t; i++) {
										if(items[i]) {
											var singleItem = items[i].split(":::");
											var itemhtml;
											var year = singleItem[2].substr(6,4);
											itemhtml = '<li><label for="check'+singleItem[0]+'"><input type="checkbox" name="mat-'+singleItem[0]+'" class="checkmat" id="check'+singleItem[0]+'" /><span>'+singleItem[1]+'</span> ('+year+')</label></li>';
											html = html + itemhtml;
										}
									}
									matList.innerHTML = html;
									initAnims();
									var mats = $$('#materials input');
									mats.each(function(element){
										element.addEvent('click', changeMat);
									});
								}												   
							});
					}
				},
				onFailure: function(){				
					matList.innerHTML = ""
					var matFx = new Fx.Tween(matList, {duration: 400, transition: Fx.Transitions.Sine.easeOut});
					if (matList.getStyle('height').toInt() > 20) {
						matFx.start('height', listY, 10);
					}
				}
			});
			subMats.send("catid="+idvalue);
		}
		
		// Setting up event handlers
		cats.each(function(element){
			element.addEvent('click', changeCat);
		});
		
		// Catching submit button
		$('mats').addEvent('submit',function(e) {
			//Prevents the default submit event from loading a new page.
			e.stop();
			//Getting data
			var matValues;
			var catidvalue;
			var iframe;
			var lang;
			var backlink;
			var mats = $$('#materials input');
			matValues = checklistValues(mats);
			cats.each(function(element) {
				if (element.checked) {
					catidvalue = element.value	
				}
			});
			iframe = $('iframeinput').value;
			lang = $('langinput').value;
			backlink = $('backlink').value;
			var querystring;
			querystring = "?iframe="+iframe+"&categories="+catidvalue+"&lang="+lang+"&backlink="+backlink;
			for(i=0,n=matValues.length;i<n;i++) {
				querystring = querystring + "&materials="+matValues[i];	
			}
			location.href=querystring;
			// POOR SOLUTION USING JS FORWARDING
		});
	
	// Catcing startcat var
	if (typeof startcat != "undefined") {
		cats.each(function(element) {
			if (element.value == startcat) {
				element.checked = true;
				sendRequest = true;
				element.fireEvent('click');
			}
		});
	}
		
	// Tooltips
		var newsletterTip = new Tips('.newsletter-tooltip',{className:"tooltip"});
		var genTip = new Tips('.thisisatooltip',{className:"tooltip"});
});
