function dropdownElement(id) {
	elm = document.getElementById(id);
	if (elm.style.display == "none" && elm.style.overflow != 'hidden') {
		new Effect.BlindDown(elm, {duration: .4});
	} else if (elm.style.overflow != 'hidden') {
		new Effect.BlindUp(elm, {duration: .4});
	}
}

function newMember(postForm) {
	postForm.action = "proc/new_member";
	postForm.submit();
}

function postValidForm(postForm) {
	var valid = new Validation(postForm, {onFormValidate : formCallback});
	var result = valid.validate();
	if (result) {
		postForm.target = "_self";
		postForm.submit();
	}
}

function newPassword(postForm) {
	postForm.action = "proc/new_password";
	postForm.submit();
}

function hideTextOnFocus() {
	elements = document.getElementsByClassName("hideTxtOnFocus");
	
	for(x = 0; x < elements.length; x++) {
		elem = elements[x];
		elem.initialValue = elem.value;

		elem.observe('focus', hideTextOnFocusCb);
		elem.observe('blur', hideTextOnFocusCb);
	}
}

function hideTextOnFocusCb(evt) {
	var elem = evt.target;
	var type = evt.type;

	if (type == 'blur') {
		if (elem.value == '') {
			elem.value = elem.initialValue;
		}
	}
	
	if (type == 'focus') {
		if (elem.value == elem.initialValue) {
			elem.value = '';
		}
	}
}

function checkPostCode(elm, country, targetElm) {
	if(country.options[country.selectedIndex].value == 'Noreg') {
		var jsonText;
		var values;
		var cityField;
		var postCode = elm.value;

		var url = 'ajaxnolibs/postnr';

		new Ajax.Request(url, {
		  method: 'post',
                  parameters: {match: postCode},
		  onSuccess: function(t) {
		  	jsonText = t.responseText;
		  	values = eval('({ ' + jsonText + ' })');
		    if (values.poststed == undefined) {
		    	$(targetElm).value = "Ugyldig postnummer";
		    } else {
		    	$(targetElm).value = values.poststed;
		    }
		  }
		});
	}
}

function addArticleComment(form, id) {
	new Ajax.Updater('comment_list', 'proc/ax_showcomments?id='+id+'', {
		onComplete: function() {
			new Effect.Highlight('new_comment', {duration: 2});
		},
		onFailure: function() {
			alert('Something went wrong...');
		},
		method: 'post',
		encoding: 'ISO-8859-1', 
		parameters: Form.serialize(form)
	});
}

function formValid() {
}

function addCommentCharge(postForm, cid) {

	var valid = new Validation('anmeldForm'+cid, {onFormValidate: formValid});
	result = valid.validate();

	if (result) {
		new Ajax.Request('proc/kommentarAnmeld', {
			onComplete: function(t) {
				result = t.responseText;
				if (result == "success") {
					new Effect.Appear('report_ok_'+cid, {duration:.5});
					window.setTimeout("Effect.Fade('report_ok_"+cid+"', {duration:1})",2500);
				} else {
					new Effect.Appear('report_failed_'+cid, {duration:.5});
				}
			},
			onFailure: function() {
				alert('Something went wrong...');
			},
			method: 'post',
			parameters: Form.serialize(postForm)
		});
		
		dropdownElement('reportthis'+cid);
	}
}

function jstrim(str) {
	return str.replace(/^\s+|\s+$/g, '') ;
}

function checkAvailableEmail(value) {
	var result;
	new Ajax.Request("proc/emailcheck", {
	  method: 'post',
	  parameters: {email: value},
	  asynchronous: false,
	  onSuccess: function(t) {
	  	result = jstrim(t.responseText);
	  }
	});
	
 	if (result == "true") {
 		return true;
 	} else {
 		return false;
 	}
}

function newUser() {
	var valid = new Validation('new_member_form', {onFormValidate : formCallback});
	var result = valid.validate();
	if (result) {
		document.new_member_form.action = "proc/new_member";
		document.new_member_form.target = "_self";
		document.new_member_form.submit();
	}
}

function editUser() {
	var valid = new Validation('new_member_form', {onFormValidate : formCallback});
	var result = valid.validate();
	if (result) {
		document.new_member_form.action = "proc/edit_member";
		document.new_member_form.target = "_self";
		document.new_member_form.submit();
	}
}

function addInputSubmitEvent(form, input) {
	input.onkeydown = function(e) {
		e = e || window.event;
		if (e.keyCode == 13) {
			form.submit();
			return false;
		}
	};
}

function submitOnEnter(formClass) {
	var forms = document.getElementsByTagName('form');
		
	for (var i=0;i < forms.length;i++) {
		if (forms[i].className.indexOf(formClass) > -1) {
			var inputs = forms[i].getElementsByTagName('input');
			
			for (var j=0;j < inputs.length;j++) {
				addInputSubmitEvent(forms[i], inputs[j]);
			}
		}
	}
}

function popUp(elm, width, height) {
	var link = elm.href;
	window.open(link, 'popUp', 'width='+width+',height='+height+',toolbar=0,scrollbars=1,resizable=1,location=0');;
}


function addToCart(artnr) {
	$('cart_dropdown').hide();
	var formData = $('form_'+artnr).serialize(true);

	$('add_cart_'+artnr).style.display = 'none';
	$('adding_cart_'+artnr).style.display = 'block';
	
	new Ajax.Updater('cart_mini', 'proc/cart?act=add', {
	  method: 'post',
	  parameters: formData,
	  onSuccess: function(t) {
	  	var result = t.responseText;
	  	$('adding_cart_'+artnr).style.display = 'none';
	    $('added_cart_'+artnr).style.display = 'block';
			//new Effect.Pulsate('cart_mini', {pulses: 2, duration: 0.5, from: 0.5});
	  }
	});
}

function sendEmail() {
  var formData = $('sendtips').serialize(true);
  var result;

  $('added_cart_tips_alert').style.display = 'none';
  $('added_cart_tips_good').style.display = 'none';
  $('adding_cart_tips').style.display = 'block';

  new Ajax.Request('proc/sendEmail?act=send', {
    method: 'post',
    parameters: formData,
    onSuccess: function(t) {
      result = jstrim(t.responseText);
      if(result == 'Success') {
        $('adding_cart_tips').style.display = 'none';
        $('added_cart_tips_alert').style.display = 'none';
        $('added_cart_tips_good').style.display = 'block';
      } else {
        $('adding_cart_tips').style.display = 'none';
        $('added_cart_tips_good').style.display = 'none';
        $('added_cart_tips_alert').style.display = 'block';
      }
    }
  });
}

function insertReview() {
  var formData = $('review').serialize(true);
  var result;

  $('added_review_good').style.display = 'none';
  $('added_review_alert').style.display = 'none';
  $('added_review_alert_nli').style.display = 'none';
  $('adding_review').style.display = 'block';

  new Ajax.Request('proc/insertReview?act=insert', {
    method: 'post',
    parameters: formData,
    onSuccess: function(t) {
      result = jstrim(t.responseText);
      if(result == 'Success') {
      	$('review').reset();
        $('adding_review').style.display = 'none';
        $('added_review_alert').style.display = 'none';
        $('added_review_alert_nli').style.display = 'none';
        $('added_review_good').style.display = 'block';
      } else if(result == 'NotLoggedIn') {
        $('adding_review').style.display = 'none';
        $('added_review_alert').style.display = 'none';
        $('added_review_alert_nli').style.display = 'block';
        $('added_review_good').style.display = 'none';
      } else {
        $('adding_review').style.display = 'none';
        $('added_review_alert').style.display = 'block';
        $('added_review_alert_nli').style.display = 'none';
        $('added_review_good').style.display = 'none';
      }
    }
  });
}

function getForgottenPasswd() {
  var formData = $('forgottenPasswd').serialize(true);

  new Ajax.Updater($('divforgottenPasswd'), 'proc/forgottenPasswd', {
    method: 'post',
    parameters: formData,
    onComplete: function() {
    }
  });
}

function toggleCategories() {
	dropDown('categories');
	$$('#cat_menu .menu_top').each(function(s) {
		s.toggleClassName('active_list');
	});
	return false;
}

function toggleSubmenu(id) {
	$$('.sub_menu .menu_top').each(function(s) {
		var xc=s.id.split("_");
		if(id == "submenu_" + xc[1]){
			dropDown(id);
			s.toggleClassName('active_list');	
		}
	});
	return false;
}

function dropDown(id) {
	elm = $(id);
	
	if (elm.style.display == "none" && elm.style.overflow != 'hidden') {
		new Effect.BlindDown(elm, {duration: .6});
	} else if (elm.style.overflow != 'hidden') {
		new Effect.BlindUp(elm, {duration: .6});
	}
}

function deleteCartItem(artnr) {
	var delLoad = $('del_load_'+artnr);
	var del = $('del_'+artnr);
	
	delLoad.style.display = 'block';
	del.style.display = 'none';
	
	new Ajax.Updater('cart_list', 'proc/cart?act=del&list=1', {
	  method: 'post',
	  parameters: {artnr: artnr},
	  onSuccess: function(t) {
	  	var result = t.responseText;
	  	updateCartView();
	  }
	});
}

function updateCartItem(artnr, qty) {
	new Ajax.Updater('cart_list', 'proc/cart?act=update&list=1', {
	  method: 'post',
	  parameters: {artnr: artnr, qty: qty},
	  onSuccess: function(t) {
	  	var result = t.responseText;
	  	updateCartView();
	  }
	});
}

function emptyCart() {
	new Ajax.Updater('cart_list', 'proc/cart?act=empty&list=1', {
	  method: 'post',
	  onSuccess: function(t) {
	  	var result = t.responseText;
	  	updateCartView();
	  }
	});
}

function updateCartList() {
	var formData = $('cart_list_form').serialize(true);
	
	new Ajax.Updater('cart_list', 'proc/cart?act=update_list&list=1', {
	  method: 'post',
	  parameters: formData,
	  onSuccess: function(t) {
	  	var result = t.responseText;
	  	updateCartView();
	  }
	});
}

function updateCartView() {
	$('cart_dropdown').hide();

	new Ajax.Updater('cart_mini', 'proc/cart', {
	  method: 'post',
	  onSuccess: function(t) {
	    // new Effect.Pulsate('cart_mini', {pulses: 2, duration: 0.5, from: 0.5});
	  }
	});
}

function loginUser() {
	var valid = new Validation('cart_login_form');
	var result = valid.validate();
	if (result) {
		$('cart_login_form').submit();
	} else {
		return false;
	}
}

function postForm(formId, trigger) {
	$(formId).action = trigger.href;
	$(formId).submit();
}

function setShipmentAddress(trigger) {
	postForm('shipment_address_form', trigger);
}

function setDelivery(trigger) {
	var valid = new Validation('delivery_form', {onFormValidate : formCallback});
	var result = valid.validate();
	if (result) {
		postForm('delivery_form', trigger);
	}
}

function doToc(internalId, baseUrl) {
	var url = baseUrl + 'toc?internalId=' + internalId;
	window.open(url,"tocers","toolbars=no,width=400,height=500,scrollbars=yes");
}
