var EmailControl = function(){
	this.items = '';
	
	this.Display = function(items){
		var wrapper = document.getElementById('mailer-wrapper');
		this.items = items;
		
		if(wrapper != null){
			switch(wrapper.style.display){
				case 'block':
				wrapper.style.display = 'none';
				break;
				
				default:
				wrapper.style.display = 'block';
				this.Buttons(null);
				document.getElementById('message').innerHTML = null;
			}
			
			var form = document.getElementById('mailer-form');
			form.style.marginLeft = ((wrapper.offsetWidth - form.offsetWidth) / 2) + 'px';
			
			if(!window.innerHeight){
				var height = document.documentElement.clientHeight
			} else {
				var height = window.innerHeight;
			}
			
			document.getElementById('mailer-bg').style.height = height;
		}
	}
	
	this.SendAJAX = function(){
		this.Buttons('process');
		document.getElementById('submit').blur();
		
		var required = Array(Array('sender_name', 'Sender\'s name'),
							 Array('sender_email', 'Sender\'s email', 1),
							 Array('recipient_name', 'Recipient\'s name'),
							 Array('recipient_email', 'Recipient\'s email', 1),
							 Array('subject', 'Subject'),
							 Array('message', 'Message'));
		
		for(var key in required){
			//check html element exists
			if(document.getElementById(required[key][0]) == null){
				alert('HTML element "' + required[key][0] + '" not found');
				this.Buttons(null);
				return false;
			}
			//check value not empty for required fields
			if(document.getElementById(required[key][0]).value == ''){
				alert(required[key][1] + ' is required');
				document.getElementById(required[key][0]).focus();
				this.Buttons(null);
				return false;
			}
			//validate email
			if(required[key][2]){
				if(!this.Validate(document.getElementById(required[key][0]).value)){
					alert(required[key][1] + ' is not a valid email address');
					document.getElementById(required[key][0]).focus();
					this.Buttons(null);
					return false;
				}
			}
		}
		
		$.ajax({
			url: 'src/php/ajax/email-send.php',
			type: 'POST',
			dataType: 'html',
			data: ({sender_name: document.getElementById('sender_name').value,
				   sender_email: document.getElementById('sender_email').value,
				   recipient_name: document.getElementById('recipient_name').value,
				   recipient_email: document.getElementById('recipient_email').value,
				   subject: document.getElementById('subject').value,
				   message: document.getElementById('message').value,
				   items: this.items}),
			
			success: function(response){
				if(response === '1'){
					document.getElementById('notification').className = 'message';
					document.getElementById('notification').innerHTML = 'Your email was sent<br/><br/>';
					mail.Buttons('hide');mail.Buttons(null);
				} else {
					document.getElementById('notification').className = 'error';
					document.getElementById('notification').innerHTML = response;
					mail.Buttons(null);
				}
			}
		});
		
		for(var key in required){
			document.getElementById(required[key][0]).value = null;
		}
		
		return false;
	}
	
	this.Buttons = function(state){
		var submit_btn = document.getElementById('submit');
		var clear_btn = document.getElementById('clear');
		
		switch(state){
			case 'process':
			submit_btn.disabled = true;
			submit_btn.value = 'Processing...';
			clear_btn.disabled = true;
			break;
			
			case 'hide':
			submit_btn.disabled = false;
			submit_btn.style.display = 'none';
			submit_btn.value = 'submit';
			clear_btn.disabled = false;
			clear_btn.style.display = 'none';
			break;
			
			default:
			submit_btn.disabled = false;
			submit_btn.style.display = 'block';
			submit_btn.value = 'submit';
			clear_btn.disabled = false;
			clear_btn.style.display = 'block';
		}
	}
	
	this.Validate = function(email){
		if(email.indexOf("@") == -1 || email.indexOf("@") == 0 || email.indexOf(".") == -1 || email.indexOf(".") < 3){
			return false;
		}
		
		return true;
	}
	
	this.Send = function(){
		var required = Array(Array('name', 'Name'),
							 Array('surname', 'Surname'),
							 Array('company', 'Company'),
							 Array('email', 'Email', 1),
							 Array('tel', 'Tel'),
							 Array('message', 'Message'));
		
		for(var key in required){
			//check html element exists
			if(document.getElementById(required[key][0]) == null){
				alert('HTML element "' + required[key][0] + '" not found');
				return false;
			}
			//check value not empty for required fields
			if(document.getElementById(required[key][0]).value == ''){
				alert(required[key][1] + ' is required');
				document.getElementById(required[key][0]).focus();
				return false;
			}
			//validate email
			if(required[key][2]){
				if(!this.Validate(document.getElementById(required[key][0]).value)){
					alert(document.getElementById(required[key][0]).value + ' is not a valid email address');
					document.getElementById(required[key][0]).focus();
					return false;
				}
			}
		}
		
		return true;
	}
	
	this.SendDetails = function(){
		var required = Array(Array('Company', 'Company name'),
							 Array('contact', 'Default contact person'),
							 Array('tel', 'Business tel'),
							 Array('fax', 'Business fax'),
							 Array('email', 'Business email', 1),
							 Array('Postal', 'Business postal address'),
							 Array('Street', 'Business street address'));
		
		for(var key in required){
			//check html element exists
			if(document.getElementById(required[key][0]) == null){
				alert('HTML element "' + required[key][0] + '" not found');
				return false;
			}
			//check value not empty for required fields
			if(document.getElementById(required[key][0]).value == ''){
				alert(required[key][1] + ' is required');
				document.getElementById(required[key][0]).focus();
				return false;
			}
			//validate email
			if(required[key][2]){
				if(!this.Validate(document.getElementById(required[key][0]).value)){
					alert(document.getElementById(required[key][0]).value + ' is not a valid email address');
					document.getElementById(required[key][0]).focus();
					return false;
				}
			}
		}
		
		return true;
	}
	
	this.SendDetailsContact = function(){
		var required = Array(Array('Contact_Name', 'Contact person'),
							 Array('Contact_Job', 'Job title'),
							 Array('Contact_email1', 'Email', 1),
							 Array('Contact_Tel', 'Telephone'));
		
		for(var key in required){
			//check html element exists
			if(document.getElementById(required[key][0]) == null){
				alert('HTML element "' + required[key][0] + '" not found');
				return false;
			}
			//check value not empty for required fields
			if(document.getElementById(required[key][0]).value == ''){
				alert(required[key][1] + ' is required');
				document.getElementById(required[key][0]).focus();
				return false;
			}
			//validate email
			if(required[key][2]){
				if(!this.Validate(document.getElementById(required[key][0]).value)){
					alert(document.getElementById(required[key][0]).value + ' is not a valid email address');
					document.getElementById(required[key][0]).focus();
					return false;
				}
			}
		}
		
		return true;
	}
	
	this.Clear = function(){
		var inputs = document.getElementById('form').getElementsByTagName('input');
		
		for(var key in inputs){
			if(inputs[key].type == 'text'){
				inputs[key].value = '';
			}
		}
		
		var textareas = document.getElementById('form').getElementsByTagName('textarea');
		
		for(var key in textareas){
			textareas[key].value = '';
		}
	}
}

var mail = new EmailControl();

function PlaceOrder(obj){
	var required = Array(Array('email', 'email address', 1),
							Array('submitted_by', 'order submitted by'),
							Array('number', 'order number'),
							Array('termsc', 'terms & conditions'));
	
	for(var key in required){
		if(document.getElementById(required[key][0]).value == ''){
			alert('Please enter ' + required[key][1]);
			document.getElementById(required[key][0]).focus();
			return false;
		}
		
		if(required[key][2]){
			if(!Validate(document.getElementById(required[key][0]).value)){
				alert(document.getElementById(required[key][0]).value + ' is not a valid email address');
				document.getElementById(required[key][0]).focus();
				return false;
			}
		}
		
		if(document.getElementById("termsc").checked==false){
			alert('Please accept terms & conditions ');
			return false;
		}
	}
	
	obj.disabled = true;
	obj.value = 'Processing...';
	obj.blur();
	
	document.getElementById('edit').style.display = 'none';
	document.getElementById('form').action = '?page=Basket&place';
	document.getElementById('form').submit();
	
	return true;
}

function PrintOrder(obj){
	obj.disabled = true;
	obj.value = 'Processing...';
	obj.blur();
	
	document.getElementById('edit').style.display = 'none';
	document.getElementById('form').action = '?page=Basket&order&prnt=YES';
	document.getElementById('form').submit();
	
	return true;
}

function Register(obj){
	var required = Array(Array('email', 'email address', 1),
							Array('accnr', 'Radiant account no.'),
							Array('company', 'Company'),
							Array('tel', 'Business tel'),
							Array('postal', 'Postal address'),
							Array('street', 'Street address'),
							Array('contact', 'Contact person'));
	
	for(var key in required){
		if(document.getElementById(required[key][0]).value == ''){
			alert('Please enter ' + required[key][1]);
			document.getElementById(required[key][0]).focus();
			return false;
		}
		
		if(required[key][2]){
			if(!Validate(document.getElementById(required[key][0]).value)){
				alert(document.getElementById(required[key][0]).value + ' is not a valid email address');
				document.getElementById(required[key][0]).focus();
				return false;
			}
		}
	}
	
	obj.disabled = true;
	obj.value = 'Processing...';
	obj.blur();
	
	document.getElementById('edit').style.display = 'none';
	document.getElementById('form').action = '?page=Basket&place';
	document.getElementById('form').submit();
	
	return true;
}

Validate = function(email){
	if(email.indexOf("@") == -1 || email.indexOf("@") == 0 || email.indexOf(".") == -1 || email.indexOf(".") < 3){
		return false;
	}
	
	return true;
}

function SubMenu(id){
	var sub_menus = Array('dealer', 'contact', 'product');
	
	for(var key in sub_menus){
		document.getElementById('sub-menu-'+sub_menus[key]).style.display = 'none';
	}
	
	if(id != null){
		document.getElementById('sub-menu-'+id).style.display = 'block';
	}
}

function EnlargePopup(show)
{
	if(show)
	{
		// Display image
		$('#enlarge-wrapper').css('display', 'block');
		$('#detailed-wrapper').css('display', 'none');
	}
	else 
	{
		// Hide image
		$('#enlarge-wrapper').css('display', 'none');
		$('#detailed-wrapper').css('display', 'block');
	}
}

function LocateDealer(clear){
	if(clear){
		var fields = Array('name', 'area_code', 'email', 'contact_no', 'message');
		
		for(var key in fields){
			document.getElementById(fields[key]).value = '';
		}
		
		document.getElementById('subject').value = 'Locate a Dealer';
		
		return false;
	}
	
	var required = Array('name', 'email', 'contact_no');
	
	for(var key in required){
		var field = document.getElementById(required[key]);
		
		if(field.value == ''){
			alert(required[key]+' is required');
			field.focus();
			return false;
		}
	}
	
	return true;
}

var Search = function(){
	this.Input = function(target){
		this.Reset(null);
		
		target.value = '';
	}
	
	this.Reset = function(target){
		if(target == null){
			var target = new Object();
			target.name = null;
		}
		
		if(target.name == 'keyword' && target.value == ''){
			document.getElementById('keyword').value = 'keyword';
		}
		
		if(target.name == 'code' && target.value == ''){
			document.getElementById('code').value = 'code';
		}
	}
	
	this.Submit = function(){
		if((document.getElementById('keyword').value == '' && document.getElementById('code').value == '') || (document.getElementById('keyword').value == 'keyword' && document.getElementById('code').value == 'code')){
			alert('Enter a keyword or code to search');
			return false;
		}
		
		document.getElementById('search_form').submit();
	}
}

var _search = new Search();

CookiesEnabled = function(){
	if(!navigator.cookieEnabled){
		alert('Your browser cookies are disabled and cookies are required to use the compare feature!');
		return false;
	}
	
	return true;
}

var BasketControl = function(){
	this.Update = function(){
		document.getElementById('update').disabled = '';
	}
	
	this.ItemRemove = function(id){
		if(confirm('Are you sure you want to delete this item?  ' + id)){
			document.getElementById('delete').value = id;
			document.getElementById('form').submit();
		}
	}
	
	this.ItemChange = function(id){
			document.getElementById('Add_newp_mail').value = id;
			document.getElementById('form').submit();
	}
}

var Basket = new BasketControl();



