function showMessageWindow(msg, delay)
{
	if (null!=msg && ''!=msg)
		StatusWindow.message(null, msg, delay, false);
}

Element.observe( window, 'load', function(event){ showMessageWindow(statusMsg,3000);}, false );

/* ===================== Login ====================== */

//loginpanel enter-button observe
var loginPanel = {
	init: function(form, name) {
		var alogin = $(form);
		alogin.observe('keypress', loginPanel.__performEnter.bindAsEventListener(alogin, form, name) );
	}
	,__performEnter: function( ev, form, name ) {
		if (ev && (ev.which == 13 || ev.keyCode == 13)) {
		  	$(form).submit();
		  	return false;
		} else
			return true;
	}
};
	
/* ===================== AddressBook ====================== */

//show sub form
function showDeliveryForm(type) {
	var deliveryForm = $('addressDelivery');
	var freightForm = $('addressFreight');
	var button = $('submitAddress');
	if (null!=deliveryForm && null!=freightForm) {
		if (null!=type && type == 'differentaddress') {
			deliveryForm.show();
			freightForm.hide();
			button.setStyle({'cssFloat':'right'});
		} else if (null!=type && type == 'freightstation') {
			deliveryForm.hide();
			freightForm.show();
			button.setStyle({'cssFloat':'right'});
		} else {
			deliveryForm.hide();
			freightForm.hide();
			button.setStyle({'cssFloat':'left'});
		}
	}
}

/* ===================== Payment ====================== */

function paymentChanged(obj) {
			
	//first show creditcard form or not
	showCreditCard(obj.value);
	
	//check reqShippingMethodJSON and disable/enable shipping method
	var reqShippingMethodJSONEl = $('reqShippingMethodJSON');
	var shippingOptionsGroup = getDWOptionGroup('shippingOptions');			

	if ((shippingOptionsGroup != null) && (reqShippingMethodJSONEl != null)) {
	
		var reqShippingMethodJSON = eval('(' + reqShippingMethodJSONEl.value + ')');
		
		var jsonShippingMethod = reqShippingMethodJSON.reqShippingMethods[obj.value];
		
		if(jsonShippingMethod != null) {
			
			for (var i = 0; i < shippingOptionsGroup.length; i++) {

				shippingOptionsGroup[i].disabled = true;						
				for(var j = 0; j < jsonShippingMethod.length; j++) {
				
					if(shippingOptionsGroup[i].value == jsonShippingMethod[j].shippingMethodID) {
					
						/*if(shippingOptionsGroup[i].checked && !optionSelected) {
						
							optionSelected = true;
							
						}*/
						shippingOptionsGroup[i].disabled = false;
					}
				}
			}
			
			var optionSelected = true;	
			
			for (var i = 0; i < shippingOptionsGroup.length; i++) {
				if(shippingOptionsGroup[i].disabled && shippingOptionsGroup[i].checked) {		
					shippingOptionsGroup[i].checked = false;
					optionSelected = false;
					break;
				}
			}
			for (var i = 0; i < shippingOptionsGroup.length; i++) {
				if(!shippingOptionsGroup[i].disabled && !optionSelected) {				
					shippingOptionsGroup[i].checked = true;
					break;
				}
			}			
			
		}
		else {
		
			for (var i = 0; i < shippingOptionsGroup.length; i++) {
			
				shippingOptionsGroup[i].disabled = false;
				
			}
		}
	}
}

function showCreditCard(type) {
	var creditform = $('creditcard');
	if (null!=creditform) {
		if (null!=type && type == 'CREDIT_CARD')
			creditform.style.display = "block";
		else
			creditform.style.display = "none";
	}
}
/* ===================== Miscancelous ====================== */
//ajax request and update
function ajaxUpdate( url, entry ) {
	var elem = $(entry);

	var ajaxUrl = url;
	var ajaxData = {
		method: 'post',
		parameters: '', 
		onSuccess: function(req) {
			ajaxUpdateForm (elem, req);
			DropDownBox.init();
		},
		onFailure: function(req) { 
			location.href=location.href; //error occured, maybe login timeout	
		}
	};
	new Ajax.Request( ajaxUrl, ajaxData );
}

// submit simple ajax call
function ajaxCall (url)
{
	var ajaxUrl = url;
  	var ajaxData = {
		method: 'post',
		parameters: '',
		onSuccess: function(req) {
			if (!req.responseText.empty())
				location.href=location.href; //error occured, maybe login timeout	
		}
	};
	new Ajax.Request( ajaxUrl, ajaxData );  
}

/* ===================== Helper Methods ====================== */

function ajaxUpdateForm (account_form, req) {
	var old_input = $(account_form);
 	if( null!=old_input ) {
		var oldDiv = Element.extend(old_input.parentNode);
		var newDiv = document.createElement(oldDiv.tagName);
			 				
		newDiv.id = oldDiv.id;
		newDiv.className = oldDiv.className;	
		newDiv.innerHTML = req.responseText;

		var succ = verifyDiv(old_input, newDiv);
	 
		if (succ)	
			oldDiv.parentNode.replaceChild(newDiv, oldDiv);
		else
			location.href=location.href; //error occured, maybe login timeout		
	}
}
function verifyDiv(oldDiv, newDiv) {
   	var newChilds = Element.extend(newDiv).childElements();
	for (var i = 0; i < newChilds.length; i++) {
		if (''!=oldDiv.className) {
			if (Element.extend(newChilds[i]).className == oldDiv.className)
				return true;
		} else 
			if (Element.extend(newChilds[i]).id == oldDiv.id)
				return true;
	}
	return false;
}

function resetForm(tag, elem) {
	var form = $(tag);
	if( null!=form && null!=elem ) {
		var formInputs = form.getInputs('text');
		for(var i=0; i<formInputs.length; i++) {
			if (formInputs[i].descendantOf(elem)) {
				formInputs[i].value = ""; 
			}
		}	 
		
		var formInputs = form.getInputs('hidden');
		for(var i=0; i<formInputs.length; i++) {
			if (formInputs[i].descendantOf(elem)) {
				formInputs[i].value = ""; 
			}
		}	 
		
		formInputs = form.select('select');
		for(var i=0; i<formInputs.length; i++) {
			if (formInputs[i].descendantOf(elem) && !formInputs[i].disabled) {
				formInputs[i].removeSelection();
			}
		}
		
		var formInputs = form.getInputs('button');
		for(var i=0; i<formInputs.length; i++) {
			if (formInputs[i].descendantOf(elem)) {
				formInputs[i].onclick= null;
			}
		}		
		
	}
}

getDWOptionGroup = function(elementId) {
	
	var optionsEl		= $(elementId);
	var optionsGroup	= null;
	
	if(optionsEl != null) {
	
		optionsGroup	= $$('[name="' + optionsEl.value + '"]');
	}
	
	return optionsGroup;
}
