function validateKonfiguratorSave() {

	if (jQuery('#sell_on_market_place').val() == 'yes') {
		terms.show();
		jQuery('#termsaction').click(function() {
			document.saveUserLayout.submit();
		});
		return false;
	} else {
		document.saveUserLayout.submit();
	}
}

function addProductToCart(lid, lname, lsize, id, form) {

	if ($('upgrade' + id).checked == true) {
		$('options_189_2').checked = true;
	} else {
		$('options_189_2').checked = false;
	}

	if ($('shoesize' + id).value == '') {
		$('shoesize' + id).style.border = '1px dashed red';
		$('shoesize' + id).focus();
		return false;
	} else if (form > 0) {
		$('shoesize' + id).style.border = '1px solid #ECE9D8';
		$('lammfell' + id).checked = true;
		$('form' + id).submit();
	} else if (lsize.value == '') {
		$('shoesize' + id).style.border = '1px dashed red';
		$('shoesize' + id).focus();
		return false;
	} else if (lid != '') {
		$('shoesize' + id).style.border = '1px solid #ECE9D8';
		$('options_1_text').value = lid;
		if (lname != '')
			$('options_2_text').value = lname;
		$('options_3_text').value = lsize.value;

		$('product_addtocart_form').submit();
	}
}

var i = 1;
function saveLayouts(reloadurl) {
	Element.show('updating-layouts' + i);
	new Ajax.Request(reloadurl, {
		method : 'post',
		parameters : $('layout' + i).serialize(),
		onComplete : function(transport) {
			Element.hide('updating-layouts' + i);
			tabContentElementId = 'message';
			jQuery('#layout' + i).html(transport.responseText);
			jQuery('#layoutImg' + i).attr(
					'src',
					jQuery('#layoutImg' + i).attr('src') + '?rand='
							+ Math.random());
			try {
				if (transport.responseText.isJSON()) {
					var response = transport.responseText.evalJSON()
					if (response.error) {
						alert(response.message);
					}
					if (response.ajaxExpired && response.ajaxRedirect) {
						setLocation(response.ajaxRedirect);
					}
				} else {
					i++;
					// Call google analytics
					_gaq.push( [ "_trackPageview",
							"/Konfigurator/index/savelayouts/" ]);
					if (i <= $('layoutCount').value) {
						saveLayouts(reloadurl);
					} else {
						location.href = location.href;
					}
				}
			} catch (e) {
				$(tabContentElementId).update(transport.responseText);
			}
		}
	});
}

function updateCommission(source) {
	if (source == 'commission') {
		var total = parseInt($('commission').value)
				+ parseInt($('price').value);
		if (total <= $('price').value) {
			$('commission').value = 0;
			$('total').value = $('price').value;
		} else {
			$('total').value = total;
		}
	}
	if (source == 'total') {
		var commission = parseInt($('total').value)
				- parseInt($('price').value);
		if (commission >= 0) {
			$('commission').value = commission;
		} else {
			$('commission').value = 0;
			$('total').value = parseInt($('commission').value)
					+ parseInt($('price').value);
		}
	}

	$('commission').value = $('commission').value + '.00';
	$('total').value = $('total').value + '.00';
}

function saveAccountInfo() {
	if (validateAccountForm()) {
		Element.show('updating-account-wait');
		new Ajax.Request(
				reloadurl,
				{
					method : 'post',
					parameters : $('konfigurator_account').serialize(true),
					onComplete : function(transport) {
						Element.hide('updating-account-wait');
						tabContentElementId = 'paypal-messages';
						try {
							if (transport.responseText.isJSON()) {
								var response = transport.responseText
										.evalJSON()
								if (response.error) {
									alert(response.message);
								}
								if (response.ajaxExpired
										&& response.ajaxRedirect) {
									setLocation(response.ajaxRedirect);
								}
							} else {
								$(tabContentElementId).update(
										transport.responseText);
								$('paypal-messages-ul').style.display = 'block';
								$(tabContentElementId).style.display = 'block';
								if (transport.responseText == 'Invalid Password') {
									$(tabContentElementId).style.color = '#FF0000';
									$('paypal-message-class').className = 'error-msg';
								} else {
									$(tabContentElementId).style.color = '#000';
									$('paypal-message-class').className = 'success-msg';
								}

							}
						} catch (e) {
							$(tabContentElementId).update(
									transport.responseText);
						}
					}
				});
	}
}

function openForm(id, toHide) {
	$(id).show();
	// $(toHide).hide();
}
function closeForm() {
	$('paypal').hide();
	// $('bank').hide();
}

function enableCheck(id, key) {
	var selectID = $(id).id;
	if ($(id).value == 'yes') {
		terms.show();

		$('termsaction').setAttribute('onclick', '');
		$('termsreject').setAttribute('onclick', '');

		$('termsaction').observe('click', function() {
			$(id).value = 'yes';
			terms.hide();
			// Call google analytics
				_gaq.push( [ "_trackPageview", "/Konfigurator/marketplace" ]);
				Element.show('allow_customization_block' + key);
				jQuery('#allow_customization' + key).removeAttr('disabled');
				saveLayout(key);
			});
		$('termsreject').observe('click', function() {
			$(id).value = 'no';
			Element.hide('allow_customization_block' + key);
			jQuery('#allow_customization' + key).attr('disabled', 'disabled');
			terms.hide();
		});

	} else {
		Element.hide('allow_customization_block' + key);
		jQuery('#allow_customization' + key).attr('disabled', 'disabled');
	}
}

function checkAllRequired(i) {
	if ($('sell_on_market_place' + i).value == 'yes') {
		$('message' + i).style.border = '1px dashed red';
		return false;
	} else {
		return true;
	}
}

function validateAccountForm() {
	var ret = true;
	if ($('account_owner').value == '') {
		$('account_owner').style.border = '1px dashed red';
		ret = false;
	} else {
		$('account_owner').style.border = '1px solid #ECE9D8';
	}
	if ($('paypal_account').value == '') {
		$('paypal_account').style.border = '1px dashed red';
		ret = false;
	} else {
		$('paypal_account').style.border = '1px solid #ECE9D8';
	}
	if ($('account_password').value == '') {
		$('account_password').style.border = '1px dashed red';
		ret = false;
	} else {
		$('account_password').style.border = '1px solid #ECE9D8';
	}

	return ret;
}

var Dialog = {};
Dialog.Box = Class.create();
Object
		.extend(
				Dialog.Box.prototype,
				{
					initialize : function(id) {
						this.createOverlay();

						this.dialog_box = $(id);
						this.dialog_box.show = this.show.bind(this);
						this.dialog_box.persistent_show = this.persistent_show
								.bind(this);
						this.dialog_box.hide = this.hide.bind(this);

						this.parent_element = this.dialog_box.parentNode;

						this.dialog_box.style.position = "absolute";

						var e_dims = Element.getDimensions(this.dialog_box);
						var b_dims = Element.getDimensions(this.overlay);

						this.dialog_box.style.left = ((b_dims.width / 2) - (e_dims.width / 2)) + 'px';
						this.dialog_box.style.top = this.getScrollTop()
								+ ((this.winHeight() - (e_dims.width / 2)) / 2)
								+ 'px';
						this.dialog_box.style.zIndex = this.overlay.style.zIndex + 1;
					},

					createOverlay : function() {
						if ($('dialog_overlay')) {
							this.overlay = $('dialog_overlay');
						} else {
							this.overlay = document.createElement('div');
							this.overlay.id = 'dialog_overlay';
							Object.extend(this.overlay.style, {
								position : 'absolute',
								top : 0,
								left : 0,
								zIndex : 90,
								width : '100%',
								backgroundColor : '#000',
								display : 'none'
							});
							document.body.insertBefore(this.overlay,
									document.body.childNodes[0]);
						}
					},

					moveDialogBox : function(where) {
						Element.remove(this.dialog_box);
						if (where == 'back')
							this.dialog_box = this.parent_element
									.appendChild(this.dialog_box);
						else
							this.dialog_box = this.overlay.parentNode
									.insertBefore(this.dialog_box, this.overlay);
					},

					show : function() {
						this.overlay.style.height = this.bodyHeight() + 'px';
						this.moveDialogBox('out');

						this.overlay.onclick = this.hide.bind(this);

						this.selectBoxes('hide');
						new Effect.Appear(this.overlay, {
							duration : 0.1,
							from : 0.0,
							to : 0.3
						});
						this.dialog_box.style.display = '';

						this.dialog_box.style.left = '0px';

						var e_dims = Element.getDimensions(this.dialog_box);

						this.dialog_box.style.left = ((this.winWidth() / 2) - (e_dims.width) / 2) + 'px';

						this.dialog_box.style.top = this.getScrollTop()
								+ ((this.winHeight() - (e_dims.width / 2)) / 2)
								+ 'px';

					},

					getScrollTop : function() {
						return (window.pageYOffset) ? window.pageYOffset
								: (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop
										: document.body.scrollTop;
					},

					persistent_show : function() {
						this.overlay.style.height = this.bodyHeight() + 'px';
						this.moveDialogBox('out');

						this.selectBoxes('hide');
						new Effect.Appear(this.overlay, {
							duration : 0.1,
							from : 0.0,
							to : 0.3
						});

						this.dialog_box.style.display = '';
						this.dialog_box.style.left = '0px';
						var e_dims = Element.getDimensions(this.dialog_box);
						this.dialog_box.style.left = ((this.winWidth() / 2) - (e_dims.width) / 2) + 'px';

					},

					hide : function() {
						this.selectBoxes('show');
						new Effect.Fade(this.overlay, {
							duration : 0.1
						});
						this.dialog_box.style.display = 'none';
						this.moveDialogBox('back');
						$A(this.dialog_box.getElementsByTagName('input')).each(
								function(e) {
									if (e.type != 'submit')
										e.value = ''
								});
					},

					selectBoxes : function(what) {
						$A(document.getElementsByTagName('select')).each(
								function(select) {
									Element[what](select);
								});

						if (what == 'hide')
							$A(this.dialog_box.getElementsByTagName('select'))
									.each(function(select) {
										Element.show(select)
									})
					},

					bodyWidth : function() {
						return document.body.offsetWidth || window.innerWidth
								|| document.documentElement.clientWidth || 0;
					},
					bodyHeight : function() {
						return document.body.offsetHeight || window.innerHeight
								|| document.documentElement.clientHeight || 0;
					},

					winWidth : function() {
						var viewportwidth;

						// the more standards compliant browsers
					// (mozilla/netscape/opera/IE7) use window.innerWidth
					// and window.innerHeight

					if (typeof window.innerWidth != 'undefined') {
						viewportwidth = window.innerWidth;
					}

					// IE6 in standards compliant mode (i.e. with a valid
					// doctype as the first line in the document)

					else if (typeof document.documentElement != 'undefined'
							&& typeof document.documentElement.clientWidth != 'undefined'
							&& document.documentElement.clientWidth != 0) {
						viewportwidth = document.documentElement.clientWidth;
					}

					// older versions of IE

					else {
						viewportwidth = document.getElementsByTagName('body')[0].clientWidth
					}
					return viewportwidth;

				},
				winHeight : function() {
					var viewportheight;

					// the more standards compliant browsers
					// (mozilla/netscape/opera/IE7) use window.innerWidth and
					// window.innerHeight

					if (typeof window.innerHeight != 'undefined') {
						viewportheight = window.innerHeight
					}

					// IE6 in standards compliant mode (i.e. with a valid
					// doctype as the first line in the document)

					else if (typeof document.documentElement != 'undefined'
							&& typeof document.documentElement.clientHeight != 'undefined'
							&& document.documentElement.clientHeight != 0) {
						viewportheight = document.documentElement.clientHeight;
					}

					// older versions of IE

					else {
						viewportheight = document.getElementsByTagName('body')[0].clientHeight;
					}
					return viewportheight;

				}

				});

function acceptTerms(buttonID, val) {
	if (val != '') {
		jQuery('#' + buttonID).attr('action',
				jQuery('#' + buttonID).attr('onclick'));
		jQuery('#' + buttonID).removeAttr('onclick');
		jQuery('#' + buttonID).click(
				function() {
					terms.show();
					jQuery('#termsaction').attr(
							'click',
							'terms.hide();' + jQuery('#' + buttonID).attr(
									'action'));
					jQuery('#termsaction').live('click', function() {
						eval(jQuery('#' + buttonID).attr('action'));
						terms.hide();
					});
					jQuery('#termsaction').click(function() {
						eval(jQuery('#' + buttonID).attr('action'));
						terms.hide();
					});

					jQuery('#termsreject').live('click', function() {
						terms.hide();
					});
				});
	} else {
		$(buttonID).setAttribute('onclick', $(buttonID).action);
		$(buttonID).setAttribute('action', '');
		$('termsaction').setAttribute('onclick', 'terms.hide();');
		$('termsreject').setAttribute('onclick', 'terms.hide();');
	}
}

function saveLayout(id) {
	if (jQuery('#sell_on_market_place' + id).val() == 'yes'
			&& jQuery('#terms' + id).val() == 0) {
		terms.show();
		jQuery('#termsaction')
				.click(
						function() {
							jQuery('#terms' + id).val(1);
							Element.show('updating-layouts' + id);
							new Ajax.Request(
									reloadurl,
									{
										method : 'post',
										parameters : $('layout' + id)
												.serialize() + '&single=true',
										onComplete : function(transport) {
											Element.hide('updating-layouts' + id);
											jQuery('#unchanged' + id).val('0');

											jQuery('#saveButton' + id).attr(
													'disabled', 'disabled');
											jQuery('#saveButton' + id)
													.addClass('disabledbutton');

											jQuery('#edit_in_konfigurator' + id)
													.removeAttr('disabled');
											jQuery('#edit_in_konfigurator' + id)
													.removeClass(
															'disabledbutton');

											jQuery('#addtocartbutton' + id)
													.removeAttr('disabled');
											jQuery('#addtocartbutton' + id)
													.removeClass(
															'disabledbutton');

											jQuery('#use_template' + id).removeAttr('disabled');
											jQuery('#use_template' + id).removeClass(
															'disabledbutton');

											jQuery('#delete' + id).removeAttr(
													'disabled');
											jQuery('#delete' + id).removeClass(
													'disabledbutton');

											tabContentElementId = 'message';
											jQuery('#layout_detail_' + id).html(transport.responseText);
											jQuery('#layoutImg' + id).attr('src',jQuery('#layoutImg' + id).attr('src')+ '?rand='+ Math.random());
											try {
												if (transport.responseText
														.isJSON()) {
													var response = transport.responseText
															.evalJSON()
													if (response.error) {
														alert(response.message);
													}
													if (response.ajaxExpired
															&& response.ajaxRedirect) {
														setLocation(response.ajaxRedirect);
													}
												}
											} catch (e) {
												$(tabContentElementId).update(
														transport.responseText);
											}
										}
									});
						});
	} else {
		Element.show('updating-layouts' + id);
		new Ajax.Request(reloadurl, {
			method : 'post',
			parameters : $('layout' + id).serialize() + '&single=true',
			onComplete : function(transport) {
				jQuery('#unchanged' + id).val('0');
				jQuery('#saveButton' + id).attr('disabled', 'disabled');
				jQuery('#saveButton' + id).addClass('disabledbutton');
				jQuery('#edit_in_konfigurator' + id).removeAttr('disabled');
				jQuery('#edit_in_konfigurator' + id).removeClass(
						'disabledbutton');

				jQuery('#addtocartbutton' + id).removeAttr('disabled');
				jQuery('#addtocartbutton' + id).removeClass('disabledbutton');

				jQuery('#use_template' + id).removeAttr('disabled');
				jQuery('#use_template' + id).removeClass('disabledbutton');

				jQuery('#delete' + id).removeAttr('disabled');
				jQuery('#delete' + id).removeClass('disabledbutton');

				Element.hide('updating-layouts' + id);
				tabContentElementId = 'message';
				jQuery('#layout_detail_' + id).html(transport.responseText);
				jQuery('#layoutImg' + id).attr('src',jQuery('#layoutImg' + id).attr('src') + '?rand='+ Math.random());
				try {
					if (transport.responseText.isJSON()) {
						var response = transport.responseText.evalJSON()
						if (response.error) {
							alert(response.message);
						}
						if (response.ajaxExpired && response.ajaxRedirect) {
							setLocation(response.ajaxRedirect);
						}
					}
				} catch (e) {
					$(tabContentElementId).update(transport.responseText);
				}
			}
		});
	}
}

function resetSession(reloadurl) {
	new Ajax.Request(reloadurl, {
		method : 'get',
		parameters : '',
		onComplete : function(transport) {
			try {
				if (transport.responseText.isJSON()) {
					var response = transport.responseText.evalJSON()
					if (response.error) {
						alert(response.message);
					}
					if (response.ajaxExpired && response.ajaxRedirect) {
						setLocation(response.ajaxRedirect);
					}
				} else {
				}
			} catch (e) {
				$(tabContentElementId).update(transport.responseText);
			}
		}
	});
}

document
		.observe(
				"dom:loaded",
				function() {
					// initially hide all containers for tab content
					Element.show('updating-account-wait');
					new Ajax.Request(
							dataurl,
							{
								parameters : {},
								onComplete : function(transport) {
									Element.hide('updating-account-wait');
									tabContentElementId = 'account_info_message';
									try {
										if (transport.responseText.isJSON()) {
											var response = transport.responseText
													.evalJSON()
											if (response.error) {
												alert(response.message);
											}
											if (response.ajaxExpired
													&& response.ajaxRedirect) {
												setLocation(response.ajaxRedirect);
											}
											var form = $('konfigurator_account');
											form['account_owner'].value = response.account_owner;
											form['paypal_account'].value = response.paypal_account;

											var options = document
													.getElementById('konfigurator_account').payment_method;
											for ( var temp = 0; temp < options.length; temp++) {
												if (options[temp].value == response.payment_method) {
													options[temp].click();
												}
											}

										} else {
											$(tabContentElementId).update(
													transport.responseText);
										}
									} catch (e) {
										$(tabContentElementId).update(
												transport.responseText);
									}
								}
							});
				});

document
		.observe(
				"dom:loaded",
				function() {

					// Observe user and newsletter signup
					var successMessage = $$('.success-msg > ul > li');
					if (successMessage != '') {
						if (successMessage[0].innerHTML == 'Sie erhielten 100 Credits für Ihre Anmeldung!') {
							// Call google analytics
							_gaq.push( [ "_trackPageview", "/account/signup" ]);
						}
						if (successMessage[0].innerHTML == 'Vielen Dank für deine Anmeldung.'
								|| successMessage[0].innerHTML == 'Danke für deine Anmeldung zu unserem Newsletter.') {
							// Call google analytics
							_gaq
									.push( [ "_trackPageview",
											"/newsletter/signup" ]);
						}
					}

					setInterval("resetSession('" + refreshURl + "')", 300000);

					$$('a[rel="zoomer"]').each(function (a) {
						new Zoomer(a);
					});

				});

function logintoAdd(layoutID) {

	if (jQuery('#shoesize').val() != '') {
		terms.show();
		jQuery('#termsaction').attr(
				'onclick',
				"pending=false;setLocation('" + webSecureURL
						+ "Konfigurator/index/addtocart/layoutID/" + layoutID
						+ "/add/true/size/" + $('shoesize').value
						+ "');terms.hide();");
		jQuery('#termsaction').live(
				'click',
				function() {
					setLocation(webSecureURL
							+ 'Konfigurator/index/addtocart/layoutID/'
							+ layoutID + '/add/true/size/'
							+ $('shoesize').value);
					terms.hide();
				});
		jQuery('#errormessage').hide();
	} else {
		jQuery('#errormessage').show();
		$('shoesize').style.border = '1px dashed red';
	}
}

function enableCustomization(current, id) {
	if (current.value == 'yes') {
		Element.show('allow_customization_block' + id);
		jQuery('#allow_customization' + id).removeAttr('disabled');
	} else {
		Element.hide('allow_customization_block' + id);
		jQuery('#allow_customization' + id).attr('disabled', 'disabled');
	}
}

function addSaveCheck(id) {
	jQuery('#unchanged' + id).val('1');
	jQuery('#saveButton' + id).removeAttr('disabled');
	jQuery('#saveButton' + id).removeClass('disabledbutton');

	jQuery('#edit_in_konfigurator' + id).attr('disabled', 'disabled');
	jQuery('#edit_in_konfigurator' + id).addClass('disabledbutton');

	jQuery('#addtocartbutton' + id).attr('disabled', 'disabled');
	jQuery('#addtocartbutton' + id).addClass('disabledbutton');

	jQuery('#use_template' + id).attr('disabled', 'disabled');
	jQuery('#use_template' + id).addClass('disabledbutton');

	jQuery('#delete' + id).attr('disabled', 'disabled');
	jQuery('#delete' + id).addClass('disabledbutton');

}

function postToWall(id) {
	FB.ui( {
		method : 'feed',
		name : $('layout' + id).layout_name.value,
		link : webURL,
		picture : $('layout' + id).picture.value,
		caption : $('layout' + id).layout_name.value,
		description : $('layout' + id).description.value,
		message : $('layout' + id).description.value
	}, function(response) {
		if (response && response.post_id) {
			alert(response.post_id);
		} else {
		}
	});
}

function resetPrice(val, id) {
	if (val == true) {
		$('old-'+id).hide();
		$('new-'+id).show();
	} else {
		$('old-'+id).show();
		$('new-'+id).hide();
	}
}

function generateWinterPreview(id){
	window.open(webURL+'lammfell.html', 'Lammfell Upgrade','scrollbars=no,menubar=0,resizable=0,width=865,height=500,left=200');
}

function enableWinterSpecial(enabled,id){
	if(enabled==1){
		$('upgrade'+id).checked=true;
		$('new_price'+id).setAttribute('class', 'old-price');
		$('old_price'+id).show();
		winterSpecial.hide();
	}
	else {
		$('upgrade'+id).checked=false;
		$('new_price'+id).setAttribute('class', '');
		$('old_price'+id).hide();
		winterSpecial.hide();
	}
}

function performAction(id){
	setLocation($('layoutactions'+id).value);
}

function verifyForm(){
	var ret = true;

	if($('select_132').value == 'Empfängernamen hier eingeben' || $('select_132').value == ''){
		$('select_132').value = '';
		$('select_132').style.border = '1px dashed red';
		$('select_132').focus();
		ret = false;
		}
		else {
			$('select_132').style.border = '1px solid #ECE9D8';
		}

	
	if($('options_132_text').value == 'Empfängernamen hier eingeben' || $('options_132_text').value == ''){
	$('options_132_text').value = '';
	$('options_132_text').style.border = '1px dashed red';
	$('options_132_text').focus();
	ret = false;
	}
	else {
		$('options_132_text').style.border = '1px solid #ECE9D8';
	}
	
	
	if($('options_131_text').value == 'Sendernamen hier eingeben' || $('options_131_text').value == ''){
	$('options_131_text').value = '';
	$('options_131_text').style.border = '1px dashed red';
	$('options_131_text').focus();
	ret = false;
	}
	else {
		$('options_131_text').style.border = '1px solid #ECE9D8';
	}

	if(ret == true){
		if($('options_130_text').value == 'Gib hier deine Nachricht ein')
		$('options_130_text').value = '';
	}

	return ret;
	} 


