sfHover = function() {
	var sfEls = document.getElementById("leftmenu").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

function validateSubscribe() {
	email = document.getElementById("theform").field2.value;
	if (!document.getElementById("theform").field1.value || document.getElementById("theform").field1.value == "" || document.getElementById("theform").field2.value == " ") {
		var error = "Please enter your name!";
	}
	validEmail = email.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
	if (!validEmail) {
		var error = "Please enter a valid email address!";
	}
	if (error) {
		alert(error);
	}
	else {
		document.getElementById("theform").submit();
	}
}
function validateUpdateDetails(f) {

	if (!f.firstname.value) {
		alert("Please enter your First Name!");
		f.firstname.select();
		return false;
	}
	if (!f.lastname.value) {
		alert("Please enter your Last Name!");
		f.lastname.select();
		return false;
	}
	if (!f.username.value) {
		alert("Username field must not be blank!");
		f.username.select();
		return false;
	}
	if (!f.password.value) {
		alert("Please enter your password!");
		f.password.select();
		return false;
	}
	if (!f.confirmpassword.value) {
		alert("Please confirm your password!");
		f.confirmpassword.select();
		return false;
	}
	if (f.password.value != f.confirmpassword.value) {
		alert("Your passwords do not match, please re-enter them!");
		f.password.select();
		return false;
	}
	email = f.email.value;
	validEmail = email.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
	if (!validEmail) {
		alert("Please enter a valid email address!");
		f.email.select();
		return false;
	}
	return true;

}
function validateEmail() {
	email = document.getElementById("theform").field2.value;
	validEmail = email.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
	if (!validEmail) {
		alert("Please enter a valid email address!");
	}
	else {
		document.getElementById("theform").submit();
	}
}
function change_row_colour(nbr) {
	the_bgcol = "#86CDED";
	the_col = "#ffffff";
	var f = document.forms['containers'];

	for(var i = 1; i <= 20; i++)
	{
		if(document.getElementById('td_' + i + '_' + nbr))
		{
			document.getElementById('td_' + i + '_' + nbr).style.backgroundColor = the_bgcol;
		}
	}
	if (f.elements && f.elements['confirm_'+nbr]) {
		f.elements['confirm_'+nbr].value = 1 ;
	}
	return true;
}

function change_row_colour_invalid(nbr) {
	the_bgcol = "#FF9999";
	the_col = "#ffffff";
	var f = document.forms['containers'];
	for(var i = 1; i <= 20; i++)
	{
		if(document.getElementById('td_' + i + '_' + nbr))
		{
			document.getElementById('td_' + i + '_' + nbr).style.backgroundColor = the_bgcol;
		}
	}

	if (f.elements && f.elements['confirm_'+nbr]) {
		f.elements['confirm_'+nbr].value = 1 ;
	}
	return true;
}

function change_row_colour_normal(nbr)
{
	the_bgcol = "#FBFBFB";
	the_col = "#ffffff";
	var f = document.forms['containers'];
	for(var i = 1; i <= 20; i++)
	{
		if(document.getElementById('td_' + i + '_' + nbr))
		{
			document.getElementById('td_' + i + '_' + nbr).style.backgroundColor = the_bgcol;
		}
	}

	if (f.elements && f.elements['confirm_'+nbr]) {
		f.elements['confirm_'+nbr].value = 1 ;
	}
	return true;
}

 function setOverlayLoader()
{
    var overlaysize = $('#overlaysize');
    var overlay = $('#overlay');
    var ajaxLoading = $('#ajaxLoading');
    var overlaySize = $.iUtil.getSize(overlaysize.get(0));
    var overlayPosition = $.iUtil.getPosition(overlaysize.get(0));

    var iframe = $('<iframe src="javascript:false;"></iframe>');

    overlay.css('opacity', '.5');
    if(overlaySize && overlayPosition)
    {
        var overlayWidth =  overlaySize.w;
        var overlayHeight = overlaySize.h;
        var overlayPositionTop = overlayPosition.y;
        var overlayPositionLeft = overlayPosition.x;

        if($.browser.msie){
        iframe
        .attr('id', 'modalIframe')
				.css(
				        {
				            opacity: 0,
				            position: 'absolute',
				            top: overlayPositionTop + 'px',
				            left: overlayPositionLeft + 'px',
				            width:  overlayWidth + 'px',
				            height: overlayHeight + 'px',
				            zIndex: '1'
				        }
				     )
				.hide()
				.insertBefore(overlay);
        }
        //Set position and width + height;
        overlay.css('position', 'absolute');
        overlay.css('top', overlayPositionTop + 'px');
        overlay.css('left', overlayPositionLeft + 'px');
        overlay.css('width', overlayWidth + 'px');
        overlay.css('height', overlayHeight + 'px');
        overlay.css('z-index', '1');
        overlay.css('display','none');
        ajaxLoading.css('position', 'absolute');
        ajaxLoading.css('top', (overlayPositionTop + (Math.floor(overlayHeight/2)-14)) + 'px');
        ajaxLoading.css('left', (overlayPositionLeft + (Math.floor(overlayWidth/2)-128)) + 'px');
        ajaxLoading.css('z-index', '3');
        //alert('Width: '+overlayWidth+' Half Width: '+(Math.floor(overlayWidth/2)));
    }
}

function update_change(key) {
	document.getElementById("changed_"+key).value = "Y";
}

var shiftChange = false; //status to tell if the shift changed
/**
*	check if any shift has been changed
*/
function isShiftChanged()
{
	return shiftChange;
}

function setShiftChanged()
{
	shiftChange = true;
}

function resetShiftChanged()
{
	shiftChange = false;
}


function validateShift(containerNumber, selectElem, key)
{
	$('#ajaxIndicator').html('Performing Delivery Window allocation.');
		$("#ajaxLoading")
		   .ajaxStart(function()
		   {
		       if($.browser.msie){
		          $('#modalIframe').show();
		       }
		       $('#overlay').show();
		       $(this).show();
		   })

		   .ajaxComplete(function()
		   {
			   $(this).hide();
			   $('#overlay').hide();
			   if($.browser.msie){
			     $('#modalIframe').hide();
			   }
		   });
	//$('select[@class=select_window]').change(function(){doValidateShift(this);});
		if(selectElem.options[selectElem.selectedIndex].value != '')
		{
			//check if the selection is one of first two options in theory
			if(priorityShifts[containerNumber].indexOf(selectElem.options[selectElem.selectedIndex].value) > -1)
			{
				if(!isAccountUser)
				{//
					$('#shiftNotAllowed').jqmShow();
					$('#doOkPriority').unbind('click');
					$('#doOkPriority').click(
					   function()
						{
							resetSelectedShiftTime(containerNumber, selectElem);
							$('#shiftNotAllowed').jqmHide();

						}
					);
				}else
				{//show up priority shift confirmation window, priority shift management window is for account user only
					var frm = $('#formPriorityShift').get(0);
					frm.elements['container_number'].value = containerNumber;
					$('#confirmShift').jqmShow();
					$('#doDeclinePriority').unbind('click');
					$('#doDeclinePriority').click(
					function()
						{
							resetSelectedShiftTime(containerNumber, selectElem);
							$('#confirmShift').jqmHide();

						}
					);
					$('#doConfirmPriority').unbind('click');
					$('#doConfirmPriority').click(
					function()
						{

							$('#confirmShift').jqmHide();
							//confirm the flag
							$.getJSON('/process_container_management.php?nbr=' + containerNumber + '&shift='+selectElem.options[selectElem.selectedIndex].value + '&priority=1&email=' + frm.elements['email'].value + '&email2=' + frm.elements['email2'].value,
							function(json)
							{
								if(typeof(json.error) == "undefined")
								{
									$('#confirmShift').jqmShow();
									alert('Unexpected error.');
									change_row_colour_invalid(containerNumber);
									resetSelectedShiftTime(containerNumber, selectElem);
									return false;
								}else if(json.error != '')
								{
										$('#confirmShift').jqmShow();
										alert(json.error);
										change_row_colour_invalid(containerNumber);
										resetSelectedShiftTime(containerNumber, selectElem);
										return false;


								}else
								{
									//alert(json.info);
									change_row_colour(containerNumber);
									if(typeof(key) != 'undefined')
									{
										update_change(key);
									}
									selectedShifeDateTime[containerNumber] = selectElem.options[selectElem.selectedIndex].value;

									$('#confirmShift').jqmHide();
									setShiftChanged();
									enalbeTrackAndSelect(containerNumber, true);
									return true;
								}
							}
							);

						}
					);
				}


			}else
			{
				//validating it against the db
				$.getJSON('/process_container_management.php?nbr=' + containerNumber + '&shift='+selectElem.options[selectElem.selectedIndex].value,
				function(json)
				{
					if(typeof(json.error) == "undefined")
					{

						alert('Unexpected error.');
						change_row_colour_invalid(containerNumber);
						resetSelectedShiftTime(containerNumber, selectElem);
						return false;
					}else if(json.error != '')
					{
							alert(json.error);
							change_row_colour_invalid(containerNumber);
							resetSelectedShiftTime(containerNumber, selectElem);
							return false;


					}else
					{
						//alert(json.info);
						change_row_colour(containerNumber);
						if(typeof(key) != 'undefined')
						{
							update_change(key);
						}
						selectedShifeDateTime[containerNumber] = selectElem.options[selectElem.selectedIndex].value;
						setShiftChanged();
						enalbeTrackAndSelect(containerNumber);
						return true;
					}
				}
				)
			}




		}else
		{//remove it from capacity

			removeShiftCapacity(containerNumber, selectElem);
		}





}

function enableTrack(nbr, priorityShift)
{
	var track = document.getElementById('track_' + nbr);
	if(typeof(track) != 'undefined')
	{
		track.disabled = false;
		if(priorityShift)
		{
			track.checked = true;
		}
	}

}

function enableUnselect(nbr)
{
	var unselect = document.getElementById('unselect_' + nbr);
	if(typeof(unselect) != 'undefined')
	{
		unselect.disabled = false;
	}
}

function enalbeTrackAndSelect(nbr, priorityShift)
{
	var isPriority = (typeof(priorityShift)!= 'undefined'?priorityShift:false);
	enableTrack(nbr, isPriority);
	enableUnselect(nbr);
}

/**
*	reset the shift time to what it was
*/
function resetSelectedShiftTime(containerNumber, selectElem)
{
	for(var i = 0; i < selectElem.options.length; i++)
	{
		if(selectElem.options[i].value == selectedShifeDateTime[containerNumber])
		{
			selectElem.options[i].selected = true;
			break;
		}
	}

}
/**
*	remove the occupation of the shift it was selected from the table
*/
function removeShiftCapacity(containerNumber, selectElem)
{
			$("#ajaxLoading")
			   .ajaxStart(function()
			   {
			       $('#overlay').show();
			       $(this).show();
			   })

			   .ajaxComplete(function(){

				   $(this).hide();
				   $('#overlay').hide();
			   });

			$.getJSON('/process_flush_shift_capacity_decrements.php?nbr=' + containerNumber,
			function(json)
			{

				if(typeof(json.error) == 'undefined')
				{
					alert('unexpected error');
				}else if(json.error != '')
				{
					alert(json.error);
				}else
				{

					change_row_colour_normal(containerNumber);
					selectedShifeDateTime[containerNumber] = selectElem.options[selectElem.selectedIndex].value;
					setShiftChanged();

				}



			}
			)

		return false;
}

function confirmPriorityShift()
{

	$('#confirmShift').jqmShow();
}





function cancelPriorityShift()
{
	$('#confirmShift').jqmHide();
}
/**
* ajax calll to validate the shift arrangment.
*/
function doValidateShift(containerNumber, selectElem, key, priority)
{
			$("#ajaxLoading")
			   .ajaxStart(function()
			   {
			       $('#overlay').show();
			       $(this).show();
			   })

			   .ajaxComplete(function(){

				   $(this).hide();
				   $('#overlay').hide();
			   });


			$.getJSON('/process_container_management.php?nbr=' + containerNumber + '&shift='+selectElem.options[selectElem.selectedIndex].value,
			function(json)
			{
				if(typeof(json.error) == "undefined")
				{

					alert('Unexpected error.');
					change_row_colour_invalid(containerNumber);
					return false;
				}else if(json.error != '')
				{
						alert(json.error);
						change_row_colour_invalid(containerNumber);
						return false;


				}else
				{
					//alert(json.info);
					change_row_colour(containerNumber);
					if(typeof(key) != 'undefined')
					{
						update_change(key);
					}

					return true;
				}
			}
			)



}


/**
*	process track or untrack request
*/
function trackManagement(nbr)
{
	var track = document.getElementById('track_' + nbr);

	if(!track.disabled)
	{//process track or untrack if the container is managed by the present user
		if(track.checked)
		{
			var warningMsg = 'This will add tracking to container. OK to proceed?';
			$('#ajaxIndicator').html('Adding Tracking To Container.');
		}else
		{
			var warningMsg = 'This will remove tracking from container. OK to proceed?';
			$('#ajaxIndicator').html('Removing Tracking From Container.');
		}
		if(window.confirm(warningMsg))
		{
			$("#ajaxLoading")
			   .ajaxStart(function()
			   {
			       $('#overlay').show();
			       $(this).show();
			   })

			   .ajaxComplete(function(){

				   $(this).hide();
				   $('#overlay').hide();
			   });
			$.getJSON('/process_track_request.php', {'nbr':nbr, 'track':(track.checked?'1':'0')},

				function(json)
				{
					if(typeof(json.error) == 'undefined')
					{
						alert('Unexpected Error.');
						track.checked = false;
					}else if(json.error != '')
					{
						alert(json.error);
						track.checked = false;
					}else
					{

					}
				}
			)
		}else
		{
			track.checked = (track.checked?false:true);
		}

	}
}

function unselectManagement(nbr, gkey)
{
	var unselect = document.getElementById('unselect_' + nbr);
	if(!unselect.disabled && unselect.checked)

	{//process track or untrack if the container is managed by the present user
		$('#ajaxIndicator').html('Removing Delivery Window Allocation.');
		if(window.confirm('This will remove your current shift allocation. OK to proceed?'))
		{
			$("#ajaxLoading")
			   .ajaxStart(function()
			   {
			       $('#overlay').show();
			       $(this).show();
			   })

			   .ajaxComplete(function(){

				   $(this).hide();
				   $('#overlay').hide();
			   });
			$.getJSON('/process_unselect_container_request.php', {'nbr':nbr, 'gkey':gkey},

				function(json)
				{
					if(typeof(json.error) == 'undefined')
					{
						alert('Unexpected Error.');
						unselect.checked = false;
					}else if(json.error != '')
					{
						alert(json.error);
						unselect.checked = false;
					}else
					{
						$('#tr_' + nbr).remove();
					}
				}
			)
		}else
		{
			unselect.checked = false;
		}

	}
}


