Kitchen= {};
Util= {};
Configurator= {};
Jobs= {};

$(document).ready(function () {
	Jobs.init();
	//kitchen surface buttons
	Kitchen.initSurfaceButtons();
	
	/* init lightbox */
	if($(".lightbox")) {
		$(".right .lightbox").lightbox();
		$(".lightbox_enabled .lightbox").lightbox();
	} 
	
	/*  */
	$(".retailer div").hover(function(){
		$('a', this).addClass("show_link");
	},function(){
		$('a', this).removeClass("show_link");
	}
	);
	
	//home page hover images
	$("#page #content #home .home_right_hover").hover(function(){
		$('a', this).addClass("green_overlay");	//green overlay
		$("#homelogos").children("img").addClass("hidden");
		
		var classes = $(this).attr("class").split(" ");
		for (var n = 0; n < classes.length; n++) {
			if (classes[n].match("homelogo")) {
				$("#" + classes[n]).removeClass("hidden");
			}
		}
		
	},function(){
		$('a', this).removeClass("green_overlay");	//green overlay
		$("#homelogos").children("img").addClass("hidden");
		$("#homelogo0").removeClass("hidden");
	}
	);
	
	//search box footer
	$("#search_box_footer").hide().css('left', '-170px');
	$("#page .footer .search").hover(function(){
		$("#search_box_footer").show('fast');
	},function(){
		$("#search_box_footer").hide('slow');
	}
	);	
	
	//kitchen detail hotspots
	$("#page #content #kitchen_details #hotspots .hotspot").hover(function(){
		hstop= parseInt($(this).css("top"));
		hsleft= parseInt($(this).css("left"));

		if(hsleft>500) {
			hsleft= -387;
		} else {
			hsleft= 5;
		}
		if(hstop>230) {
			hstop= -208;
		} else {
			hstop= 5;
		}
		
		$(this).addClass("white_frame");
		$(".hotspot_description").hide();
		
		var classes = $(this).attr("class").split(" ");
		for (var n = 0; n < classes.length; n++) {
			if (classes[n].match("detailhs")) {
				$("#" + classes[n]).css("left", hsleft).css("top", hstop).show("fast");
			}
		}
		
	},function(){
		$(this).removeClass("white_frame");
		$(".hotspot_description").hide();
	}
	);	
	$("#shadow").click(Util.closeAll);
	$("#globalclose").click(Util.closeAll);
});

Kitchen= {
	surfacePos: 0,
	surfaceMax: 0,
	
	initSurfaceButtons: function() {
		Kitchen.surfaceMax= $("#surfaces .sledge li").size();
		if($("#surfaces")) {
			$("#surfaces .back").hide().click(function() {
				Kitchen.clickSurface(-1);
			});
			$("#surfaces .next").click(function() {
				Kitchen.clickSurface(+1);
			});
			if(Kitchen.surfaceMax<=13) {
				$("#surfaces .next").hide();
			}
		}
	},
	clickSurface: function(change) {
		Kitchen.surfacePos= Kitchen.surfacePos+change;
		if(Kitchen.surfacePos==0) {
			$("#surfaces .back").hide();
		} else {
			$("#surfaces .back").show();
		}
		if(Kitchen.surfacePos==(Kitchen.surfaceMax-13)) { /* -13 because of shown */
			$("#surfaces .next").hide();
		} else {
			$("#surfaces .next").show();
		}
		$("#surfaces .sledge").animate({ 'left' : '-' + (Kitchen.surfacePos*60) + 'px' }, 150, 'linear');
	}
}


Util= {
	getWindowSize: function(){
		var xScroll, yScroll;

		if (window.innerHeight && window.scrollMaxY) {
			xScroll = window.innerWidth + window.scrollMaxX;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight) {
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else if(document.body) { 
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}

		var windowWidth, windowHeight;
		if (self.innerHeight) {
			if(document.documentElement.clientWidth){
				windowWidth = document.documentElement.clientWidth;
			} else {
				windowWidth = self.innerWidth;
			}
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) {
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) {
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}

		if(yScroll < windowHeight) {
			pageHeight = windowHeight;
		} else {
			pageHeight = yScroll;
		}

		if(xScroll < windowWidth) {
			pageWidth = xScroll;
		} else {
			pageWidth = windowWidth;
		}

		var arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
		return arrayPageSize;
	},
	validateForm: function(id, captcha) {
		var result= true;
		$("#"+id + " input, #"+id + " textarea").each(function() {
			if($(this).attr("class") && $(this).attr("class").match("required")) {
			  // trim input field
			  $(this).val($(this).val().replace(/^\s+|\s+$/g, ''));
				var itemresult= Util.validate($(this).attr("id"));
				result= result && itemresult;
			}
		});
		if(result) {
			$("#form_error").removeClass("error");
			if(captcha) {
				Captcha.show(id);
			} else {
				Captcha.formIsValid= true;
			}
		} else {
			$("#form_error").addClass("error");
		}
		result= result && Captcha.formIsValid;
		
		return result;
	},
	validate: function(id) {
		var result= true;
		var obj= $("#"+id);
		var commands= $("#"+id).attr("class").split(" ");
		for(var i=0; i<commands.length; i++) {
			var command= commands[i].replace(/[0-9]/g, "");
			switch(command) {
				case("minlength"):
					var length= parseInt(commands[i].replace(/minlength/g, ""));
					result= result && (obj.val().length>=length);
					break;
				case("maxlength"):
					var length= parseInt(commands[i]);
					result= result && (obj.val().length<=length);
					break;
				default:
					result= result && (obj.val().length!=0);
					break;
			}
		}
		if(!result) {
			obj.addClass("error");
		} else {
			obj.removeClass("error");
		}
		return result;
	},
	closeAll: function() {
		$("#showroom").hide();
		$("#shadow").hide();
		$("#configurator").hide();
		$("#flippingbook").hide();
		$("#globalclose").hide();
		$("#captcha").hide();
	}
}

Captcha= {
	form: '',
	formIsValid: false,
	
	show: function(form) {
		Captcha.form= form;
		Captcha.set();
		$("#shadow").show();
		$("#captcha").css("display", "block");
	},
	set: function() {
		var dimension= Util.getWindowSize();
		
		var width= dimension[0];
		var height= dimension[1];
		
		if(dimension[0]<dimension[2]) {
			width= dimension[2];
		}
		if(dimension[1]<dimension[3]) {
			height= dimension[3];
		}
		
		$("#shadow").css("height", height).css("width", width);
		
		var top= (height-240)/2;
		var left= (width-320)/2;
		
		$("#captcha").css("top", top).css("left", left);
	},
	isValid: function() {
		$("#shadow").hide();
		$("#captcha").hide();
		Captcha.formIsValid= true;
		
		document.forms[Captcha.form].submit();
	}
}

Jobs= {
	openPage: 1,
	
	init: function() {
		if($("#form_job")) {
			/* set fieldsets */
			$("#form_job fieldset").hide();
			$("#form_job fieldset:first").show();
			/* set buttons */
			$("#jobbutton_back1").hide().click(function() {
				Jobs.back();
			});
			$("#jobbutton_next1").click(function() {
				Jobs.next();
			});
		}
	},
	back: function() {
		Jobs.openPage--;
		counter= 1;
		$("#form_job fieldset").hide();
		$("#form_job fieldset").each(function() {
			if(counter==Jobs.openPage) {
				$(this).show();
			}
			counter++;
		});
		/* buttons */
		$("#jobbutton_next1").show();
		if(Jobs.openPage==1) {
			$("#jobbutton_back1").hide();
		}
	},
	next: function() {
		Jobs.openPage++;
		counter= 1;
		$("#form_job fieldset").hide();
		$("#form_job fieldset").each(function() {
			if(counter==Jobs.openPage) {
				$(this).show();
			}
			counter++;
		});
		/* buttons */
		$("#jobbutton_back1").show();
		if((counter-1)==Jobs.openPage) {
			$("#jobbutton_next1").hide();
		}
	}
}

Configurator= {
	show: function(url) {
		Configurator.set();
		$("#shadow").show();
		$("#configurator").attr("src", url).show();
		$("#globalclose").show();
	},
	close: function() {
		$("#shadow").hide();
		$("#configurator").hide();
	},
	set: function() {
		var dimension= Util.getWindowSize();
		
		var width= dimension[0];
		var height= dimension[1];
		
		if(dimension[0]<dimension[2]) {
			width= dimension[2];
		}
		if(dimension[1]<dimension[3]) {
			height= dimension[3];
		}
		
		$("#shadow").css("height", height).css("width", width);
		
		var top= (height-560)/2;
		var left= (width-1000)/2;
		
		$("#configurator").css("top", top).css("left", left);
	}
}

Showroom= {
	show: function(name, swf) {
		Showroom.set();
		$("#shadow").show();
		$('#showroomflash').html("").flash({
		    src: swf,
		    width: 800,
		    height: 520,
			allowFullScreen: 'true'
		});
		$("#showroom .name").html(name);
		$("#showroom").show();
		$("#showroom .close").show().unbind("click").click(function () {
			Showroom.close();
		});
	},
	close: function() {
		$("#shadow").hide();
		$("#showroom").hide();
		$("#showroom .close").hide();
	},
	set: function() {
		var dimension= Util.getWindowSize();
		
		var width= dimension[0];
		var height= dimension[1];
		
		if(dimension[0]<dimension[2]) {
			width= dimension[2];
		}
		if(dimension[1]<dimension[3]) {
			height= dimension[3];
		}
		
		$("#shadow").css("height", height).css("width", width);
		
		var top= (height-550)/2;
		var left= (width-800)/2;
		
		$("#showroom").css("top", top).css("left", left);
	}
}

FlippingBook= {
	show: function(url) {
		FlippingBook.set();
		$("#shadow").show();
		$("#flippingbook").attr("src", url).show();
	},
	close: function() {
		$("#shadow").hide();
		$("#flippingbook").hide();
	},
	set: function() {
		var dimension= Util.getWindowSize();
		
		var width= dimension[0];
		var height= dimension[1];
		
		if(dimension[0]<dimension[2]) {
			width= dimension[2];
		}
		if(dimension[1]<dimension[3]) {
			height= dimension[3];
		}
		
		$("#shadow").css("height", height).css("width", width);
		
		var top= (height-820)/2;
		var left= (width-1025)/2;
		
		$("#flippingbook").css("top", top).css("left", left);
	}
}

Event= {
	keyHandler: function(event) {
		var kC= (window.event) ? event.keyCode : event.keyCode;
		var Esc = (window.event) ? 27 : event.DOM_VK_ESCAPE;
		if(kC==Esc) { 
			Util.closeAll();
		}
	}
}

//Source: http://www.sitepoint.com/print/standards-compliant-world/
function externalLinks() {
	if (!document.getElementsByTagName) {
		return;
	}
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
			anchor.target = "_blank";
		}
	}
}

window.onload = externalLinks;