/*	BysMoo WCMS, Copyright (c) ByYourSite since 2008. All rights reserved.

	This source file is free software; you can redistribute it and/or
	modify it under the terms of the MOO Public License as published
	by the MOO Development Group; either version 1.1 of the License, or
	(at your option) any later version.
*/
onDomLoad.addEvent(function(){


	var m = $("webshop_loginform");
	if (m) {
		Events.add(m,'click',function(e){
			if (2==e.eventPhase || (e.target.parentNode==e.currentTarget && "a"==MOO.getNodeName(e.target)))
			{
				hasClassName(m, "open")?stripClassName(m,"open"):addClassName(m,"open");
				return stopEvent(e);
			}
		});
	}

	
try
{
	new Ajax().get(MOO.PATH+'products/en/api/status/', function(ajax) {
		var status = JSON.parse(ajax.request.responseText);
		if (status.is_logged_in) {
			if (status.order_items) {
				MOO.setNodeHTML($('order_items'), intval(status.order_items));
			} else {
				addClassName($('order_link'), 'hidden');
			}
			if (status.order_subtotal) {
				MOO.setNodeHTML($('order_subtotal'), floatval(status.order_subtotal).toFixed(2));
			}
			if (status.favorite_items) {
				MOO.setNodeHTML($('favorite_items'), intval(status.favorite_items));
			}
			if (status.fullname) {
				MOO.setNodeHTML($('fullname'), status.fullname);
			}
			stripClassName($('shopinfo'), 'hidden');
		} else {
			stripClassName(m, 'hidden');
		}
	});
}
catch(err)
{

}
	

	inputlabel.init();
	divhover.init();
	divclick.init();
	showhideparent.init();
	intsubmit.init();
	greyed_select.init();
	popup.init();

});

var popup = (function(){
	var API = {};


	API.init = function() {
		var o = $('preview-app');
		if (o) Events.add(o, 'click', popup.click);
	};
 	API.click = function(e) {
		var n = $("applicationname");
		var e = $("applicationemail");
		var m = $("applicationmessage");
		n.onkeyup =function(){MOO.setNodeHTML($("application-preview-name"),this.value)};
		e.onkeyup=function(){MOO.setNodeHTML($("application-preview-email"),this.value)};
		m.onkeyup=function(){MOO.setNodeHTML($("application-preview-message"), this.value)};
		$("application-preview").style.display="block";
		n.onkeyup();
		e.onkeyup();
		m.onkeyup();
	};
	return API;
}());


var inputlabel =
{
	init: function() {
		var elements = $T('input'), i=-1;
		while (elements[++i]) {
			var o = elements[i], f=o.form;
			if (!defined(o.hasAttribute)) {
				o.hasAttribute = function(k) { var v=this.getAttribute(k); return defined(v) && v.length; };
			}
			if ((!defined(o.placeholder) || window.ie) && o.hasAttribute("placeholder"))
			{
				addEvent(o,"focus",function(e){inputlabel.focus(e.target)});
				addEvent(o,"blur",function(e){inputlabel.blur(e.target)});
				inputlabel.blur(o);
				if (!f.placeholders) {
					f.placeholders = [];
					f._submit = f.submit;
					f.submit = function() {
						for (var i=0;i<this.placeholders.length;++i)
							inputlabel.focus(this.placeholders[i]);
						this._submit();
					};
				}
				f.placeholders.push(o);
				Events.addBeforeSubmit(f, function(){inputlabel.focus(o)});
			}
		}
	},

	focus: function(o) {
		if (o.value == o.placeholder) {
			o.value = "";
			stripClassName(o, "placeholder");
		}
	},

	blur: function(o) {
		if (!o.value) {
			o.value = o.placeholder = o.getAttribute("placeholder");
			addClassName(o, "placeholder");
		}
	}
};

var divhover =
{
	init: function() {
		var elements = MOO.getElementsByClassName('divhover', 'div');
		for (var i=0; i<elements.length; ++i) {
			var element = elements[i];
			Events.add(element, 'mouseover', divhover.mouseover);
			Events.add(element, 'mouseout', divhover.mouseout);
		};
	},
	mouseover: function(e) {
		var element = e.target;
		$(element.title).style.display = 'block';
	},
	mouseout: function(e) {
		var element = e.target;
		$(element.title).style.display = 'none';
	}
};

var divclick =
{


	init: function() {
		var elements = MOO.getElementsByClassName('divclick');

		for (var i=0; i<elements.length; ++i) {
			var element = elements[i];
			Events.add(element, 'click', divclick.click);
			$(element.title).style.display = 'none';
		}
	},
	click: function(e) {

		var element = e.target;


		console.log(element.title);
		if($(element.title).style.display == 'none')
		{
			$(element.title).style.display = 'block';
		} else
		{
			$(element.title).style.display = 'none';
		};
	}
};

var showhideparent = {
	init: function() {
		var elements = MOO.getElementsByClassName('showhideparent');
		for (var i=0; i<elements.length; ++i) {
			var element = elements[i];
			console.log(element);
			Events.add(element, 'click', showhideparent.toggle);
		};

		var close_tellafriend = $('close_tellafriend');
		if (close_tellafriend) {
			Events.add(close_tellafriend, 'click', function(){
				stripClassName($('tellafriend'), 'show');
			});
		};
		var close_tellafriend = $('close_button');
		if (close_tellafriend) {
			Events.add(close_tellafriend, 'click', function(){
				stripClassName($('close_button'), 'show');
			});
		};

		var close_tellafriend = $('close_tellafriend_link');
		if (close_tellafriend) {
			Events.add(close_tellafriend, 'click', function(){
				stripClassName($('tellafriend'), 'show');
			});
		};

	},

	toggle: function(e) {
		var element = e.target.parentNode;
		if (hasClassName(element, 'show')) {
			stripClassName(element,'show')
		} else {
			addClassName(element,'show')
		};
	}
};


var greyed_select = {
	init: function() {
		var elements = MOO.getElementsByClassName('greyable', 'select');
		for (var i=0; i<elements.length; ++i) {
			var element = elements[i];
				Events.add(element, 'change', greyed_select.change);
				if (element.selectedIndex == 0) {
					addClassName(element,'grey');
				};
		};
	},

	change: function(e) {
		var element = e.target;
		if (element.selectedIndex == 0) {
			addClassName(element,'grey');
		} else {
			stripClassName(element,'grey');
		};
	}
};

var intsubmit =
{
	init: function() {
		var elements = MOO.getElementsByClassName('button', 'a');
		for (var i=0; i<elements.length; ++i) {
			var element = elements[i];
			Events.add(element, 'click', intsubmit.click);
		};
	},

	click: function(e) {
		var element = e.target;
		var formsource = intsubmit.find_node_form(element);
		if (formsource) {
			formsource.submit();
		};
	},

	find_node_form: function(element) {
		do {
			element = element.parentNode;
			var tmp_tagname = element.tagName.toUpperCase();
		} while (tmp_tagname != 'FORM' && tmp_tagname != 'BODY');

		if (tmp_tagname == 'FORM') {
			return element;
		} else {
			return false;
		};
	}
};
