/* Global declarations */
var newsItems = new Array();
var currentNewsItem = 0;


/* A function to display a menu item
*
* @param key int
* @param size int
*/
function displayMenuItem(key, size){
	//Hide the other menu items
	for (var i = 0; i < size; i++){
		if (i != key && $('parent_' +i).className == "menuParentSelected"){
			$('parent_' +i).className = "menuParent";
			if ($('parent_' +i).parentNode.getElementsByTagName("div").length > 1){
				new Effect.SlideUp('menuChildren_' +i, { duration: 0.4, queue: 'end' });
			}
		}
	}
	
	//Display the menu item
	if ($('menuChildren_' +key).style.display == "none"){
		$('parent_' +key).className = "menuParentSelected";
		new Effect.SlideDown('menuChildren_' +key, { duration: 0.6, queue: 'end' });
	}
}

/* A function when hovering over a menu item */
function hoverMenuItem(element){
	if (element.className == 'menuParent'){
		element.className = 'menuParentHover'
	}
	else if (element.className == 'menuParentHover'){
		element.className = 'menuParent'
	}		
	else if (element.className == 'menuChild'){
		element.className = 'menuChildHover'
	}		
	else if (element.className == 'menuChildHover'){
		element.className = 'menuChild'
	}		
	else if (element.className == 'lastMenuChild'){
		element.className = 'lastMenuChildHover'
	}		
	else if (element.className == 'lastMenuChildHover'){
		element.className = 'lastMenuChild'
	}		
}


/* Check if an e-mail address is valid or not */
function checkEmail(email){
	//^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$
	return /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/.test(email);
}


/* Display some images in lightbox */
function GroupDelegate(id){
	var objLink = document.getElementById(id);
	Lightbox.prototype.start(objLink);
}


/* Toggle the shipping address fields */
function toggleShippingFields(extended){
	if (document.getElementById("shipping_identical").checked){
		if (extended){
			document.getElementById("shipping_company").disabled = true;	
			document.getElementById("shipping_firstName").disabled = true;
			document.getElementById("shipping_lastName").disabled = true;
		}
		
		document.getElementById("shipping_address").disabled = true;
		document.getElementById("shipping_address2").disabled = true;
		document.getElementById("shipping_zipcode").disabled = true;
		document.getElementById("shipping_city").disabled = true;
		document.getElementById("shipping_state").disabled = true;
		document.getElementById("shipping_country").disabled = true;	
	}
	else {
		if (extended){
			document.getElementById("shipping_company").disabled = false;	
			document.getElementById("shipping_firstName").disabled = false;
			document.getElementById("shipping_lastName").disabled = false;
		}		
		
		document.getElementById("shipping_address").disabled = false;
		document.getElementById("shipping_address2").disabled = false;
		document.getElementById("shipping_zipcode").disabled = false;
		document.getElementById("shipping_city").disabled = false;
		document.getElementById("shipping_state").disabled = false;
		document.getElementById("shipping_country").disabled = false;		
	}
}


/* Toggle the demo request fields */
function toggleDemoFields(id, imagePath, toHide){
	var elements = document.getElementsByTagName("tr");
	var hide = false;
	
	//Hide or display all additional data
	for (var i=0; i < elements.length; i++){
		if (elements[i].getAttribute("additionalinfo") == id){
			//Display elements
			if (toHide != true && elements[i].style.display == "none"){
				elements[i].style.display = "";
				hide = false;
			}
			
			//Hide elements
			else {
				elements[i].style.display = "none";
				hide = true;
			}
		}
	}
	
	//Change the 	
	if (hide){
		document.getElementById("toggle_" +id).src = imagePath +"expand.gif";
	}
	else {
		document.getElementById("toggle_" +id).src = imagePath +"implode.gif";
	}
}


/* Toggle the search fields on the orders screen in the admin section*/
function toggleOrdersFields(activeField){
	switch(activeField){
		case 'search_by_date':
		default:
			document.getElementById('search_by_date_Month_ID').disabled = false;
			document.getElementById('search_by_date_Day_ID').disabled = false;
			document.getElementById('search_by_date_Year_ID').disabled = false;
			document.getElementById('search_by_date_ID_Link').style.display = "";
			document.getElementById('search_by_date_ID').style.display = "";
			document.getElementById('search_by_month').disabled = true;
			document.getElementById('search_by_year').disabled = true;
			document.getElementById('search_by_keyword').disabled = true;
			break;
		case 'search_by_month':
			document.getElementById('search_by_date_Month_ID').disabled = true;
			document.getElementById('search_by_date_Day_ID').disabled = true;
			document.getElementById('search_by_date_Year_ID').disabled = true;
			document.getElementById('search_by_date_ID_Link').style.display = "none";
			document.getElementById('search_by_date_ID').style.display = "none";
			document.getElementById('search_by_month').disabled = false;	
			document.getElementById('search_by_year').disabled = false;
			document.getElementById('search_by_keyword').disabled = true;
			break;
		case 'search_by_keyword':
			document.getElementById('search_by_date_Month_ID').disabled = true;
			document.getElementById('search_by_date_Day_ID').disabled = true;
			document.getElementById('search_by_date_Year_ID').disabled = true;		
			document.getElementById('search_by_date_ID_Link').style.display = "none";
			document.getElementById('search_by_date_ID').style.display = "none";
			document.getElementById('search_by_month').disabled = true;
			document.getElementById('search_by_year').disabled = true;
			document.getElementById('search_by_keyword').disabled = false;
			break;
	}
}


/* Toggle the search fields on the users screen in the admin section */
function toggleUsersFields(activeField){	
	switch(activeField){
		case 'search_by_date':
		default:
			document.getElementById('search_type_month').checked = false;
			
			if (document.getElementById('search_type_date').checked){
				document.getElementById('search_by_date_Month_ID').disabled = false;
				document.getElementById('search_by_date_Day_ID').disabled = false;
				document.getElementById('search_by_date_Year_ID').disabled = false;
				document.getElementById('search_by_date_ID_Link').style.display = "";
				document.getElementById('search_by_date_ID').style.display = "";
			} else {
				document.getElementById('search_by_date_Month_ID').disabled = true;
				document.getElementById('search_by_date_Day_ID').disabled = true;
				document.getElementById('search_by_date_Year_ID').disabled = true;
				document.getElementById('search_by_date_ID_Link').style.display = "none";
				document.getElementById('search_by_date_ID').style.display = "none";				
			}
			
			document.getElementById('search_by_month').disabled = true;
			document.getElementById('search_by_year').disabled = true;
			
			break;
		case 'search_by_month':
			document.getElementById('search_type_date').checked = false;
			
			document.getElementById('search_by_date_Month_ID').disabled = true;
			document.getElementById('search_by_date_Day_ID').disabled = true;
			document.getElementById('search_by_date_Year_ID').disabled = true;
			document.getElementById('search_by_date_ID_Link').style.display = "none";
			document.getElementById('search_by_date_ID').style.display = "none";
			
			if (document.getElementById('search_type_month').checked){		
				document.getElementById('search_by_month').disabled = false;	
				document.getElementById('search_by_year').disabled = false;
			} else {
				document.getElementById('search_by_month').disabled = true;
				document.getElementById('search_by_year').disabled = true;				
			}
			break;
	}
}


/* Redirect the orders form to the correct URL */
function checkOrderForm(url){
	if (document.getElementById('search_type_date').checked){
		var search_by_date = document.getElementsByName("search_by_date")[0].value;
		window.location = url +'/search_by/date/search_by_date/' +urlencode(search_by_date) +'/search_by_paid/' +urlencode(document.getElementById('search_by_paid').value);
	} 
	else if (document.getElementById('search_type_month').checked){ 
		window.location = url +'/search_by/month/search_by_month/' +urlencode(document.getElementById('search_by_month').value) +'/search_by_year/' +urlencode(document.getElementById('search_by_year').value) +'/search_by_paid/' +urlencode(document.getElementById('search_by_paid').value);
	} 
	else if (document.getElementById('search_type_keyword').checked){ 
		window.location = url +'/search_by/keyword/search_by_keyword/' +urlencode(document.getElementById('search_by_keyword').value) +'/search_by_paid/' +urlencode(document.getElementById('search_by_paid').value);
	} 
	else { 
		window.location = url +'/search_by_paid/' +urlencode(document.getElementById('search_by_paid').value); 
	}	
}


/* Redirect the users form to the correct URL */
function checkUserForm(url){
	url = url + '/keywords/' +urlencode(document.getElementById('keywords').value);
	url = url + '/search_by/' +urlencode(document.getElementById('search_by').value);
	url = url + '/account_manager/' +urlencode(document.getElementById('account_manager').value);
	url = url + '/status/' +urlencode(document.getElementById('status').value);
	url = url + '/only_active/' +((document.getElementById('only_active').checked) ? 1 : 0 );
	url = url + '/evaluation_version_no_request/' +((document.getElementById('evaluation_version_no_request').checked) ? 1 : 0 );
	url = url + '/evaluation_version_pending/' +((document.getElementById('evaluation_version_pending').checked) ? 1 : 0 );
	url = url + '/evaluation_version_approved/' +((document.getElementById('evaluation_version_approved').checked) ? 1 : 0 );
	url = url + '/evaluation_version_rejected/' +((document.getElementById('evaluation_version_rejected').checked) ? 1 : 0 );
	
	if (document.getElementById('search_type_date').checked){
		url = url +'/search_type/date/search_by_date/' + document.getElementsByName("search_by_date")[0].value;	
	}
	else if (document.getElementById('search_type_month').checked){
		url = url +'/search_type/month/search_by_month/' +document.getElementById('search_by_month').value +'/search_by_year/' +document.getElementById('search_by_year').value;			
	}

	window.location = url;
}


/* URL encode a string */
function urlencode(str) {
	str = str.replace(/\//g, '');
	str = str.replace(/\\/g, '');
	
	str = escape(str);
	
	str = str.replace(/\+/g, '%2B');
	str = str.replace(/%20/g, '+');
	str = str.replace(/\*/g, '%2A');
	str = str.replace(/@/g, '%40');
	
	return str;
}	


/* Check if a value is numeric or not */
function checkNumeric(sText){
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;

	for (i = 0; i < sText.length && IsNumber == true; i++){ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
		}
	}
	
	if (IsNumber && !(sText >= 0)){
		IsNumber = false;
	}
   
	if(!IsNumber){
		alert("Please enter a valid quantity");
	}
	return IsNumber;
}


/* Check if a value isn't larger than a maximum number */
function checkMaximumValue(value, maximum){
	if (value > maximum){
		if (maximum == 1){
			alert("You can not order more than 1 demo");
		} else {
			alert("You can not order more than " +maximum +" demo's");
		}
		return false;
	} else {
		return true;
	}
}


/* Export today's shipments */
function exportShipments(){
	new Ajax.Request('exportshipments', {
		method:'get',
			onSuccess: function(transport){
			var json = transport.responseText.evalJSON();
			
			alert("The shipments have been exported!");
			document.location.href = json.filename;
		}
	});
}


/* Disable the quote received date if necessary */
function toggleQuoteReceivedFields(active){
	if (active){
		document.getElementById('date_received_Month_ID').disabled = false;
		document.getElementById('date_received_Day_ID').disabled = false;
		document.getElementById('date_received_Year_ID').disabled = false;
		document.getElementById('date_received_ID_Link').style.display = "";
		document.getElementById('date_received_ID').style.display = "";
	}
	else {
		document.getElementById('date_received_Month_ID').disabled = true;
		document.getElementById('date_received_Day_ID').disabled = true;
		document.getElementById('date_received_Year_ID').disabled = true;
		document.getElementById('date_received_ID_Link').style.display = "none";
		document.getElementById('date_received_ID').style.display = "none";
	}
}


/* Disable the action fields if necessary */
function toggleActionFields(active){	
	if (active){
		document.getElementById('action').disabled = false;
		document.getElementById('action_date_Month_ID').disabled = false;
		document.getElementById('action_date_Day_ID').disabled = false;
		document.getElementById('action_date_Year_ID').disabled = false;
		document.getElementById('action_date_ID_Link').style.display = "";
		document.getElementById('action_date_ID').style.display = "";
	}
	else {
		document.getElementById('action').disabled = true;
		document.getElementById('action_date_Month_ID').disabled = true;
		document.getElementById('action_date_Day_ID').disabled = true;
		document.getElementById('action_date_Year_ID').disabled = true;
		document.getElementById('action_date_ID_Link').style.display = "none";
		document.getElementById('action_date_ID').style.display = "none";
	}
}