var SiteClass = new Class({
	order_id:null,
	cache:null,
	initialize: function(b_href){
		var href = document.location.href.split("#");
		this.b_href = b_href;
		this.l_href = href[0].substr(this.b_href.length);
		this.h_href = href[1];		
		if(!this.h_href && this.l_href) 
		{
			//document.location.href = this.b_href + '#/' + this.l_href;
		}
		//SWFAddress.go(this.b_href + '#' + this.l_href);
	},
	
	domReady: function() {
		this.activateAddToBascet();
		this.activateCloseButtons();
		this.activateUpdate();
		this.activateUserForm();
	},
	ajaxReload: function() {
		this.activateCloseButtons();
	},
	initTrans: function(order_id)
	{
		if(!this.order_id)
		{
			this.order_id = order_id;
			pageTracker._addTrans(
				      order_id,           // order ID - required
				      'Sklep lukaszkot.pl', // affiliation or store name
				      '0',          // total - required
				      '0',           // tax
				      '0',          // shipping
				      null,       // city
				      null,     // state or province
				      'Poland'             // country		
		    );
		}
	},
	activateUserForm: function(){
		if($('UserForm'))
		{
			$('UserForm').getElement('input#submit').value = '';
			
			email = $('UserForm').getElement('input#email');
			if(email)
			{
				email.addEvent('blur',function(){
					var myRequest = new Request({
						method: 'get', 
						url: '/bascet/checkuser/email/'+email.value,
						onComplete:function(response){
							pageTracker._trackPageview();
							if(response)
							{
								if(!$('email-element').getElement('ul.errors'))
								{
									myUl = new Element('ul',{'class':'errors'});
									myLi = new Element('li',{text:'Taki adres jest w bazie. Zaloguj się.'});
									myUl.appendChild(myLi);
									$('email-element').appendChild(myUl);
								}
								else
								{
									myUl = $('email-element').getElement('ul.errors');
									myLi = new Element('li',{text:'Taki adres jest w bazie. Zaloguj się.'});
									myUl.appendChild(myLi);
								}	
							}
							else if($('email-element').getElement('ul.errors')) $('email-element').getElement('ul.errors').destroy();
						}
					});
					myRequest.send();
				});
			}
		}
		if($('loginForm'))
		{
			$('loginForm').getElement('input#submitlogin').value = '';
			$('loginForm').set('send',{
				method: 'post',
				onComplete:function(response)
				{
					pageTracker._trackPageview();
					if(response.indexOf('message') != -1) 
					{
						Site.displayMsg(response,$('order_details').getElement('h2.loginForm'));
					}
					else 
					{
						resp = JSON.decode(response);
						$('UserForm').getElement('input#name').value = resp.name;
						$('email-label').destroy();
						$('email-element').destroy();
						$('UserForm').getElement('input#street').value = resp.address['street'];
						$('UserForm').getElement('input#street_n1').value = resp.address['street_n1'];
						$('UserForm').getElement('input#street_n2').value = resp.address['street_n2'];
						$('UserForm').getElement('input#street_n1').value = resp.address['street_n1'];
						$('UserForm').getElement('input#post_code').value = resp.address['post_code'];
						$('UserForm').getElement('input#city').value = resp.address['city'];
						$('order_details').getElement('.right').destroy();
					}
				}
			});
			$('loginForm').addEvent('submit',function(){
				$('loginForm').send();
				return false;
			});
		}
		if($('loginBoxForm'))
		{
			$('loginBoxForm').getElement('input#submitloginbox').value = '';
			$('loginBoxForm').set('send',{
				method: 'post',
				onComplete:function(response)
				{
					pageTracker._trackPageview();
					if(response.indexOf('message') != -1) 
					{
						Site.displayMsg(response,$('loginBoxForm'));
					}
					else 
					{
						/*
						resp = JSON.decode(response);
						var p = new Element('p');
						var strong = new Element('strong',{text:'Zalogowany jako:'});
						var span = new Element('span',{text:response.name});
						p.appendChild(strong);
						p.appendChild(span);
						$('login-box').set('html','');
						$('login-box').appendChild(p);
						*/
						$('login-box').set('html',response);
					}
				}
			});
			$('loginBoxForm').addEvent('submit',function(){
				$('loginBoxForm').send();
				return false;
			});
		}
		if($('contactForm'))
		{
			$('contactForm').getElement('input[type=submit]').value = '';
		}
	},//activateUserForm
	activateUpdate: function(){
		$$('.updateadd').each(function(a){
			a.addEvent('click', function(){
				Site.updateBascet(a);
				return false;
			});
		});
		$$('.updateremove').each(function(a){
			a.addEvent('click', function(){
				Site.updateBascet(a);
				return false;
			});
		});
	},
	updateBascet: function(item){
		item.set('send',{
			method: 'get',
			onSuccess: function(responseText){
				pageTracker._trackPageview(item.href);
				if(responseText == "0") item.getParent('tr').dispose();
				else
				{
					var jresp = JSON.decode(responseText)
					item.getPrevious('input').value = jresp._amount; // update amount
					var sum = Math.round(jresp._amount * jresp.price * 100)/100;
					item.getParent().getNext().set('html',sum + ' zł');// update sum
					
					// update Analytics item
					pageTracker._addItem(this.order_id,jresp.id,jresp.name,jresp.group_name,jresp.price,jresp._amount);
				}
				// update total
				var total = 0;
				$$('#bascet_summary table tr td.sum').each(function(row){
					total += parseFloat(row.get('html'));
				});
				total = Math.round(total * 100)/100;
				
				$$('table tr.total th').getLast().set('html',total + ' zł');
			}
		})
		item.send(item.href);
	},
	activateCloseButtons: function(){
		$$('div.messages a.close').each(function(a){
			a.addEvent('click', function(){
				a.getParent().destroy();
				return false;
			});
		});	
	}, //activateCloseButtons
	
	activateAddToBascet: function() {
		$$('a.add').each(function(item){
            item.addEvent('click',function(){
            	$('bascet').set('load', {
                    onRequest: function(){
                        //$('ajax-loader').setStyle('display','block');
						prodId = item.href.split('/');
						var req = new Request.JSON({
							url: "/products/getJSON/id/"+prodId.getLast(),
							onSuccess: function(responseJSON)
							{
								pageTracker._addItem(this.order_id,prodId.getLast(),responseJSON.name,responseJSON.group_name,responseJSON.price,1);
							}
						}).get();
    					//				
                    },
                    onComplete: function() {
                        //$('ajax-loader').setStyle('display','none');
    					pageTracker._trackPageview();
                        Site.ajaxReload();
                    }
                });
            	$('bascet').load(item.href);
            	return false;
            });
		});
	},
	displayMsg: function(responseJSON,item) {
   		try
   		{
   			$$('div.messages').each(function(messageBox){
   				messageBox.destroy();
   			});
   		} 
   		catch (e) {}
   		   		
		messageBox = new Element('div',{'class':'messages'});
		messageBox.setStyles({display:'none'});
		messageBox.set('html','<a class="close"><span></span>ukryj wiadomości</a>');
		list = new Element('ul');
		list.inject(messageBox,'bottom');
		
		if(item) {
			messageBox.inject(item.getParent('.inner'),'top');
		}
		else {
			inners = $$('#main-content h1');
			messageBox.inject(inners[0],'after');
		}
		Site.activateCloseButtons()
   		
   		msg = JSON.decode(responseJSON);
   		msg.events.each(function(jsonMsg){
   			// render MsgBox
   			item = new Element('li');
   			if(jsonMsg.priority <= 3) item.set('class','error');
   			if(jsonMsg.priority < 6 && jsonMsg.priority > 3) item.set('class','warning');
   			if(jsonMsg.priority >= 6) item.set('class','ok');
   			if(jsonMsg.priority == 7) item.set('class','debug');
   			item.set('html','<span></span>' + jsonMsg.message)
   			
   			item.inject(list,'bottom');
   		});
   		messageBox.setStyle('display','block');
	}	
	
});
