/*

 * byo - 2008

 * cdprint

 */



// DomReady - v1 //////////////////////////////

window.addEvent('domready', function() {
	
	 base._overlay =  new Overlay('#fff',0.70);
	 
	 base.cartNavigation();	

});

// DomReady //////////////////////////////



var base = {
	
	/////vars////////
			_overlay : null,
	/////vars//////
	
	
//////////////////////////////////////////////////////////////////////////////
/*cartNavigation*/	
	
	cartNavigation : function (){
		
		//goto cart parge
			
			$j('.go-to-cart').click(function(){
				
				
				if(language == 'es'){ base._overlay.showMessage('cargando');}
				if(language == 'en'){ base._overlay.showMessage('loading');}
				if(language == 'nl'){ base._overlay.showMessage('loading');}
				
				base._overlay.displayLoading();
	
				tools.load(this.getProperty('href'), 'content-container', onComplete);
	
				return false;						 
			});
	
	
	},

//////////////////////////////////////////////////////////////////////////////
/*setClickable*/

	setClickable : function(){
		
		
		 $j('#editInPlace textarea').click(function(){ 

		   var textarea = '<div ><textarea class="editInPlace"  name="base[text]" id="t-content">' + $j(this).html() + '</textarea>';
		   var button = '<div><input type="button" value="SAVE" class="saveButton" /> <input type="button" value="CANCEL" class="cancelButton"/></div></div>';
		   var revert = $j(this).html();
		   
		   $j(this).after(textarea+button).remove();
		   
		   $j('.saveButton').click(function(){base.saveChanges(this, false,false);});
		   $j('.cancelButton').click(function(){base.saveChanges(this, revert,false);});


	   });
	},
	
//////////////////////////////////////////////////////////////////////////////
/*saveChanges*/		

	saveChanges : function(obj, cancel, addcart){
		
		 if (!cancel) {
		   var t = $j(obj).parent().siblings(0).val();
		   $j.post(baseurl+"/index.php/"+language+"/shop.html",{content: t},function(responseText){
			 
			 //alert(responseText);
			 //return false;
			 
			response = JSON.decode(responseText);
			// alert(response['splitdata']);
				if (response['result']!=1) {
					alert(response['error']);
					return false;
				}
			});
		 } else {
		   var t = cancel;
		 }
	
		 $j(obj).parent().parent().after('<div id="editInPlace"><textarea class="nonvisible" id="t-content">'+t+'</textarea></div>').remove() ;
		 base.setClickable();
		
	},
	
	/* initRegisterForm */
	initRegisterForm : function(){
		
		$('register-form').addEvent('submit', this.postRegisterForm.bind(this));
		
	},
	
	
	/* postRegisterForm */
	
	postRegisterForm : function(){
		
		var form = $('register-form');

		form.set('send', {
						url: form.getProperty('action'),
						method: 'post',
						onFailure: function(){alert('error');},
						onRequest: function(){
										base._overlay.displayLoading();
						},
						onSuccess : this.postRegisterResponse.bind(this)
					});

		form.send(); //Sends the form.

		return false;
	
	
	},
	
	postRegisterResponse : function(response){
		//debug
		//alert(response);
		//base._overlay.hideLoading(base._overlay);
		//return false
		$each(response['errors'], (function(obj, input){
			$$('#'+obj+' span.label').removeClass('required');
		}).bind(this));
		
		// reponse
		response= JSON.decode(response, true);
		
		switch (response['result']) {
		case 2:
		
			$each(response['errors'], (function(obj, input){
				var el = $('register-form').elements[input];
				
				//alert(spanI);
				//alert(obj);
				$$('#'+obj).addClass('required');
				base._overlay.showMessage('Error: Campos Obligatorios',true);
				base._overlay.hideLoading(base._overlay);
				//el.addClass('error');
			}).bind(this));
			
			
			
			if(language == 'es'){
				$j('#alert').html('<span class="required">ERROR: Por favor rellene correctamente los campos obligatorios.</span>');
			}
		
			if(language == 'nl'){
				
				$j('#alert').html('<span class="required">FOUTMELDING: Vult u aub alle verplichte velden in.</span>');
			}
		
		break;
		
		case 3:
			
			//base._overlay.showMessage('Error',true);
			base._overlay.hideLoading(base._overlay);
			
			if(language == 'es'){
				$j('#alert').html('<span class="required">ERROR: </span>Este email ya figura en nuestra base de datos. Si ha olvidado su acceso haga  <a href="' + baseurl + '/index.php/' + language + '/forgotpass.html">click aqui.</a>');
			}
			if(language == 'en'){
				
				$j('#alert').html('<span class="required">ERROR: </span>This email already exists in our database. If you forgot your password please <a href="' + baseurl + '/index.php/' + language + '/forgotpass.html">click here.</a>');
			}
			if(language == 'nl'){
				
				$j('#alert').html('<span class="required">FOUTMELDING: </span>Deze email is reeds aangemeld in onze database. Bent u het password vergeten klikt u  <a href="' + baseurl + '/index.php/' + language + '/forgotpass.html">dan hier.</a>');
			}
			
		break;
		
		
		case 1:
			
			base._overlay.showMessage('OK',true);
			base._overlay.hideLoading(base._overlay);
			
			window.location = baseurl + '/index.php/' + language + '/order.html' ;
			
		break;
		
	}
		
		
		
	},
	
	
//////////////////////////////////////////////////////////////////////////////
/*initAccForm*/		
	/*Accesories form*/
	
	initAccForm : function(){
		
		////////////////////////////////////////accessories form send
		 for(var i=2;i<Number(numgroups)+2;i++){
			
			  //var form = $("groupAccForm"+i);
				
			  $("groupAccForm"+i).addEvent('submit', function(e) {
				 
						 e.stop();
				 
					this.set('send', {
						url: this.getProperty('action'),
						method: 'post',
						onFailure: function(){alert('error');},
						onRequest: function(){
							
							base._overlay.displayLoading();
							if(language == 'es'){ base._overlay.showMessage('cargando');}
							if(language == 'en'){ base._overlay.showMessage('loading');}
							if(language == 'nl'){ base._overlay.showMessage('loading');}
			
						},
								
						onSuccess : function(responseText){
									
							base.accformResponse(responseText);
									
						}	
						
					
				    });
				   
				  this.send();
			   });
		}//for

		
	},

	
//////////////////////////////////////////////////////////////////////////////
/*accformResponse*/
		/*Accesories form response*/
	accformResponse : function(responseText){
		
		//alert(responseText);
		//base._overlay.hideLoading(base._overlay);
		//return false;
		
		response= JSON.decode(responseText);
		
		if (response['result']!=1) {
						
				base._overlay.showMessage('error', true);
				alert(response['error']);
				base._overlay.hideLoading(base._overlay);
				return false;
					
		}
					
		var onComplete= function(){
				
				if(language == 'es'){ base._overlay.showMessage('guardado');}
				if(language == 'en'){ base._overlay.showMessage('saved');}
				if(language == 'nl'){ base._overlay.showMessage('saved');}
				
				base._overlay.hideLoading(base._overlay);
			 	$j('.t-acc-quantity').val(0);
			  
			   
		};
		
		if (!response['refresh']) {
				
				onComplete();
				return false;
		}
						
		
		if(language == 'es'){ base._overlay.showMessage('actualizando', true);}
		if(language == 'en'){ base._overlay.showMessage('refreshing', true);}
		if(language == 'nl'){ base._overlay.showMessage('refreshing', true);}
		tools.load(baseurl+'/index.php/'+language+'/shop.html' , 'load-container', onComplete);	
		
	},
	
//////////////////////////////////////////////////////////////////////////////
/*cartformResponse*/
	
	cartformResponse : function(responseText){
		
	    //alert(responseText);
		//base._overlay.hideLoading(base._overlay);
		//return false;
		
		response= JSON.decode(responseText);
		
		if (response['result']!=1) {
						
				base._overlay.showMessage('error', true);
				alert(response['error']);
				base._overlay.hideLoading(base._overlay);
				return false;
					
		}
					
		var onComplete= function(){
				
				base.initCart();
				if(language == 'es'){ base._overlay.showMessage('guardado');}
				if(language == 'en'){ base._overlay.showMessage('saved');}
				if(language == 'nl'){ base._overlay.showMessage('saved');}
				base._overlay.hideLoading(base._overlay);
			
			 
		};
		
		if (!response['refresh']) {
				
				onComplete();
				return false;
		}
						
		if(language == 'es'){ base._overlay.showMessage('actualizando', true);}
		if(language == 'en'){ base._overlay.showMessage('refreshing', true);}
		if(language == 'nl'){ base._overlay.showMessage('refreshing', true);}
	
		tools.load(baseurl+'/index.php/'+language+'/cart.html' , 'content-container', onComplete);	
		
	},
	
//////////////////////////////////////////////////////////////////
//initCart
		
	initCart : function(){

			var form = $("cart-update");
			
			form.addEvent('submit', function(e) {
				 
						 e.stop();
				 
				form.set('send', {
						url: form.getProperty('action'),
						method: 'post',
						onFailure: function(){alert('error');},
						onRequest: function(){
							
							base._overlay.displayLoading();
							
							if(language == 'es'){ base._overlay.showMessage('cargando');}
							if(language == 'en'){ base._overlay.showMessage('loading');}
							if(language == 'nl'){ base._overlay.showMessage('loading');}
			
						},
						
						onSuccess : function(responseText){
									
							base.cartformResponse(responseText);
									
						}	
					  });
				   
				  form.send();
			   });
		
		
	},
		
		
////initShop/////////////////////////////////////////////////////////////////////////
	initShop : function (){
		

		//base.setClickable();
		
 		base.initAccForm();
		
		//preview chapatag
		
		$j('#preview-chapa').click(function(){
					
				var line1 = $j('#line1').attr('value');
				var line2 = $j('#line2').attr('value');
				var line3 = $j('#line3').attr('value');
				var line4 = $j('#line4').attr('value');
				var line5 = $j('#line5').attr('value');
				
				$j('#line1content').val(line1);
				$j('#line2content').val(line2);
				$j('#line3content').val(line3);
				$j('#line4content').val(line4);
				$j('#line5content').val(line5);
				
		 });
		/* *preview chapatag*/
		
		//patch to deselect chapatags option( single or duo)
		$('t-idproduct1').addEvent("click", function(event) {
			$('t-idproduct13').removeProperty('checked');										
		});
		$('t-idproduct13').addEvent("click", function(event) {
			$('t-idproduct1').removeProperty('checked');										
		});
		
		/////	add products to the cart
		$j('#add-to-cart').click(function(){
			
			/*var textarea_class = $j('#t-content').attr('class') ;
			if(textarea_class != 'nonvisible'){
				
				if(language == 'es'){ alert('Porfavor guarde los cambios antes de añadir a la cesta.');}
				if(language == 'en'){ alert('Please save changes before adding to cart');}
				return false;
				
			}*/
			
			//base._overlay.displayElement('msgbox-addtocart');
			
			base._overlay.displayLoading();
			 
			if(language == 'es'){ base._overlay.showMessage('añadiendo a la cesta');}
			if(language == 'en'){ base._overlay.showMessage('adding to cart');}
			if(language == 'nl'){ base._overlay.showMessage('adding to cart');}
			 
			 //   var text = $j('#t-content').html();
			    var text1 = $j('#line1content').attr('value');
				var text2 = $j('#line2content').attr('value');
				var text3 = $j('#line3content').attr('value');
				var text4 = $j('#line4content').attr('value');
				var text5 = $j('#line5content').attr('value');
				
				var quantity = $j('#t-quantity').attr('value');
				//patch to get chapatags option( single or duo)
				if($('t-idproduct1').getProperty('checked')==true){
					var product = $j('#t-idproduct1').attr('value');
				}else{
					var product = $j('#t-idproduct13').attr('value');
				}
				
				
				//alert(text);
				
				//$j.post(baseurl+"/index.php/es/addtocart",{content: text, num: quantity, idproduct: product},function(responseText){
				$j.post(baseurl+"/index.php/es/addtocart",{content1: text1, content2: text2, content3: text3, content4: text4, content5: text5, num: quantity, idproduct: product},function(responseText){
				
					//alert(responseText);
					//return false;
					response = JSON.decode(responseText);
					
				
					if (response['result']!=1) {
						
						base._overlay.showMessage('error', true);
						alert(response['error']);
						base._overlay.hideLoading(base._overlay);
						return false;
					
					}
					
					var onComplete= function(){
						
						
						if(language == 'es'){ base._overlay.showMessage('guardado',true);}
						if(language == 'en'){ base._overlay.showMessage('saved',true);}
						if(language == 'nl'){ base._overlay.showMessage('saved',true);}
					    base._overlay.hideLoading(base._overlay);
						//$j('#t-quantity').val(0);

					};
					
					if (!response['refresh']) {
						onComplete();
						return false;
					}
						if(language == 'es'){ base._overlay.showMessage('actualizando', true);}
						if(language == 'en'){ base._overlay.showMessage('refreshing', true);}
						if(language == 'nl'){ base._overlay.showMessage('refreshing', true);}
					
					tools.load(baseurl+'/index.php/'+language+'/shop.html', 'content-container', onComplete);	
					
					
				 });	
				
		});//add-to-cart click
		
		$j('.go-to-shop').click(function(){
				
					if(language == 'es'){ base._overlay.showMessage('cargando');}
					if(language == 'en'){ base._overlay.showMessage('loading');}
					if(language == 'nl'){ base._overlay.showMessage('loading');}
				base._overlay.displayLoading();
	
				tools.load(this.getProperty('href'), 'content-container', onComplete);
	
				return false;						 
			});
		

	}
	///////////////////////////////////////////////////////////////////////////////

}
//base
////////////closeMsgBox////////////////////////////////////////////////////
function closeMsgBox(){
	
		$('msgbox-addtocart').setStyles({
										'display' : 'none'
									});

		base._overlay.hide();

		window.onscroll= false;

}

/////////////////filterInput//////////////////////////////////////

function filterInput(filterType, evt, allowDecimal, allowCustom){
	
		var keyCode, Char, inputField, filter = '';
		var alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- ';
		var num   = '0123456789';
   
	   // Get the Key Code of the Key pressed if possible else - allow
		if(window.event){
			keyCode = window.event.keyCode;
			evt = window.event;
		}else if (evt)keyCode = evt.which;
		else return true;
		
		// Setup the allowed Character Set
		if(filterType == 0) filter = alpha;
		else if(filterType == 1) filter = num;
		else if(filterType == 2) filter = alpha + num;
		if(allowCustom)filter += allowCustom;
		if(filter == '')return true;
		
		// Get the Element that triggered the Event
		inputField = evt.srcElement ? evt.srcElement : evt.target || evt.currentTarget;
		
		// If the Key Pressed is a CTRL key like Esc, Enter etc - allow
		if((keyCode==null) || (keyCode==0) || (keyCode==8) || (keyCode==9) || (keyCode==13) || (keyCode==27) )return true;
		
		// Get the Pressed Character
		Char = String.fromCharCode(keyCode);
		
		// If the Character is a number - allow
		if((filter.indexOf(Char) > -1)) return true;
		
		// Else if Decimal Point is allowed and the Character is '.' - allow
		else if(filterType == 1 && allowDecimal && (Char == '.') && inputField.value.indexOf('.') == -1)return true;
		else return false;
			
}





