//station={} - This is now set in the /views/site_template.rsml.php

station.addEvent = function (elm, evType, fn, useCapture)
{
	if (elm.addEventListener) 
	{
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
            else if (elm.attachEvent)
            { 
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
            else
            {
		elm['on' + evType] = fn;
	}
}

station.init = function()
{
	station.setMenu();
	station.ajaxSetfilterContainerOptionsByGroup();
	station.setTypeSelect();
	station.hideContainerIdSelectForModulesWithDefaultContainers();
	station.utilitesEvents();
	station.setLoginValues();
}

station.setLoginValues = function()
{
	if($('form#Login input#user_password'))
	{
		/*
		//$('form#Login input#user_password').attr("type", "text");
		//alert($('form#Login input#user_password').attr("type"));//, "text");
		$('form#Login input#user_password').val('password');
		
		$('form#Login input#user_password').focus( function () {
		
			if($('form#Login input#user_password').val() == 'password')
			{
				$('form#Login input#user_password').val('');
			}
		});
		*/

		/*
		
		$('form#Login input#user_password').blur( function () {
		
			if($('form#Login input#user_password').val() == '')
			{
				$('form#Login input#user_password').val('password');
			}
		});
		*/
	}

	if($('form#Login input#user_email'))
	{
		$('form#Login input#user_email').val('Your email');
		
		$('form#Login input#user_email').focus( function () {
		
			if($('form#Login input#user_email').val() == 'Your email')
			{
				$('form#Login input#user_email').val('');
			}
		});

		$('form#Login input#user_email').blur( function () {
		
			if($('form#Login input#user_email').val() == '')
			{
				$('form#Login input#user_email').val('Your email');
			}
		});
	}
}

station.utilitesEvents = function()
{	
	var flag = station.getCookie('help');
	
	// Set the help to be hidden by default - the <span>
	// is necessarily set to display: block in style.css
	$('span.hint').hide();

	if(!flag)
	{
		flag = 'up';
	}
	
	if(flag == 'up')
	{
		$('span.hint').hide();
		$('dd.hint').hide();
		$('a.help').removeClass('on');
	}
	else
	{
		$('span.hint').show();
		$('a.help').addClass('on');
	}
		
	//* OPEN AND CLOSE THE MENU ON CLICK *//
	$('div.utilities').click(function (e) {
	
		if ($(e.target).is('a.help') || $(e.target).parent().is('a.help'))
		{		
/*
			if($('p.hint'))
			{
				$('p.hint').each(function(){
				
					if($(this).css('display')=='block')
					{
						$(this).slideUp('fast');
						flag = 'up';
						
					}
					else
					{
						$(this).slideDown('fast');
						flag = 'down';
					}
				
				});
				
				if(flag == 'up')
				{
					station.setCookie('help', 'up');
				}
				else
				{
					station.setCookie('help', 'down');
				}
				
				return false;
			}
			else */
			if($('span.hint'))
			{
				
				$('span.hint').each(function(){
				
					if($(this).css('display')=='block')
					{
						$(this).slideUp('fast');
						flag = 'up';
						
					}
					else
					{
						$(this).slideDown('fast');
						flag = 'down';
					}
				
				});
				
				if(flag == 'up')
				{
					station.setCookie('help', 'up');
					$('a.help').removeClass('on');
				}
				else
				{
					station.setCookie('help', 'down');
					$('a.help').addClass('on');
				}
				
				return false;
			}
			else
			{
				alert("Sorry, there's no help for this page :(");
			}
		}
	});
}

/*
 * This method sets the options list for the
 * container select list to only include
 * containers that belong to the group selected
 */
station.ajaxSetfilterContainerOptionsByGroup = function()
{
  $("select#group_id").change(function(){
  
    $("select#parent_container_id").removeOption(/./);
    
    $("select#parent_container_id").ajaxAddOption("http://"+document.domain+"/index.php?h=JsonContainers&group_id="+$("select#group_id :selected").val());
        
    // NOTE: Test if there were any containers for the group returned, and, if there weren't, hide it
    
    $.getJSON("http://"+document.domain+"/index.php?h=JsonContainers&group_id="+$("select#group_id :selected").val(), function(data) {
    
      parentcontainer_select = $("div#parentcontainer-select").get(0);

      if(!klib.isEmpty(data))
      {
        parentcontainer_select.style.visibility = "visible";
        parentcontainer_select.style.height = "auto";
        //alert(data);
      }
      else
      {
        parentcontainer_select.style.visibility = "hidden";
        parentcontainer_select.style.height = "0px";
      }
    });
  });
}


// This is an interface cusomisation for the PartTypeAttributeAdd and PartTypeAttributeEdit (amongst others)
station.hideContainerIdSelectForModulesWithDefaultContainers = function()
{
		select_dt = $('.default-container label[for="container_id"]').parent();
		select_dd = $(".default-container select#container_id").parent();
		
		select_dt.css('visibility', 'hidden');
		select_dt.css('height', '0px');
		select_dt.css('padding-bottom', '0px');

		select_dd.css('visibility', 'hidden');
		select_dd.css('height', '0px');
		select_dd.css('padding-bottom', '0px');
}


// This is an interface cusomisation for the PartTypeAttributeAdd and PartTypeAttributeEdit (amongst others)
station.setTypeSelect = function()
{
    // The template_id is only relevent if
    // the type is "select_single" or "select_multiple"
		template_id_dt = $('label[for="template_id"]').parent();
		template_id_dd = $("select#template_id").parent();
        // The TemplateAttributeAdd view has a different name for the "Type" select
		template_id2_dt = $('label[for="template_id_for_values"]').parent();
		template_id2_dd = $("select#template_id_for_values").parent();

    // Hide the input#custom_url
		config_url_dt = $('label[for="config_url"]').parent();
		config_url_dd = $("input#config_url").parent();

	// Hide the Type (template_id) field if the Display Field (attribute_type_id) is 'text' (id == 8)
	// See: /index.php?h=PartTypeAttributeAdd&part_type_id=28&
	if($("select#attribute_type_id :selected").val() == 8)
	{
		config_url_dt.css('visibility', 'hidden');
		config_url_dt.css('height', '0px');
		config_url_dt.css('padding-bottom', '0px');

		config_url_dd.css('visibility', 'hidden');
		config_url_dd.css('height', '0px');
		config_url_dd.css('padding-bottom', '0px');

		template_id_dt.css('visibility', 'hidden');
		template_id_dt.css('height', '0px');
		template_id_dt.css('padding-bottom', '0px');

		template_id_dd.css('visibility', 'hidden');
		template_id_dd.css('height', '0px');
		template_id_dd.css('padding-bottom', '0px');
		
		template_id2_dt.css('visibility', 'hidden');
		template_id2_dt.css('height', '0px');
		template_id2_dt.css('padding-bottom', '0px');
		

		template_id2_dd.css('visibility', 'hidden');
		template_id2_dd.css('height', '0px');
		template_id2_dd.css('padding-bottom', '0px');
	}
	else if($("select#attribute_type_id :selected").val() == 11)
	{
		config_url_dt.css('visibility', 'hidden');
		config_url_dt.css('height', '0px');
		config_url_dt.css('padding-bottom', '0px');

		config_url_dd.css('visibility', 'hidden');
		config_url_dd.css('height', '0px');
		config_url_dd.css('padding-bottom', '0px');

		template_id_dt.css('visibility', 'visible');
		template_id_dt.css('height', 'auto');
		template_id_dt.css('padding-bottom', '0px');

		template_id_dd.css('visibility', 'visible');
		template_id_dd.css('height', 'auto');
		template_id_dd.css('padding-bottom', '20px');
		
		template_id2_dt.css('visibility', 'visible');
		template_id2_dt.css('height', 'auto');
		template_id2_dt.css('padding-bottom', '20px');
		
		template_id2_dd.css('visibility', 'visible');
		template_id2_dd.css('height', 'auto');
		template_id2_dd.css('padding-bottom', '20px');
	}
	else if($("select#attribute_type_id :selected").val() == 13)
	{
		config_url_dt.css('visibility', 'visible');
		config_url_dt.css('height', 'auto');
		config_url_dt.css('padding-bottom', '0px');

		config_url_dd.css('visibility', 'visible');
		config_url_dd.css('height', 'auto');
		config_url_dd.css('padding-bottom', '0px');

		template_id_dt.css('visibility', 'hidden');
		template_id_dt.css('height', '0px');
		template_id_dt.css('padding-bottom', '0px');

		template_id_dd.css('visibility', 'hidden');
		template_id_dd.css('height', '0px');
		template_id_dd.css('padding-bottom', '0px');
		
		template_id2_dt.css('visibility', 'hidden');
		template_id2_dt.css('height', '0px');
		template_id2_dt.css('padding-bottom', '0px');
		
		template_id2_dd.css('visibility', 'hidden');
		template_id2_dd.css('height', '0px');
		template_id2_dd.css('padding-bottom', '0px');
	}
	else if($("select#attribute_type_id :selected").val() == 14)
	{
		config_url_dt.css('visibility', 'hidden');
		config_url_dt.css('height', '0px');
		config_url_dt.css('padding-bottom', '0px');

		config_url_dd.css('visibility', 'hidden');
		config_url_dd.css('height', '0px');
		config_url_dd.css('padding-bottom', '0px');

		template_id_dt.css('visibility', 'visible');
		template_id_dt.css('height', 'auto');
		template_id_dt.css('padding-bottom', '0px');

		template_id_dd.css('visibility', 'visible');
		template_id_dd.css('height', 'auto');
		template_id_dd.css('padding-bottom', '20px');
		
		template_id2_dt.css('visibility', 'visible');
		template_id2_dt.css('height', 'auto');
		template_id2_dt.css('padding-bottom', '20px');
		
		template_id2_dd.css('visibility', 'visible');
		template_id2_dd.css('height', 'auto');
		template_id2_dd.css('padding-bottom', '20px');
	}
	
  $("select#attribute_type_id").change(function(){

    //alert("selected attribute_type_id == " + $("select#attribute_type_id :selected").val());

	if($("select#attribute_type_id :selected").val() == 8)
	{
		config_url_dt.css('visibility', 'hidden');
		config_url_dt.css('height', '0px');
		config_url_dt.css('padding-bottom', '0px');

		config_url_dd.css('visibility', 'hidden');
		config_url_dd.css('height', '0px');
		config_url_dd.css('padding-bottom', '0px');

		template_id_dt.css('visibility', 'hidden');
		template_id_dt.css('height', '0px');
		template_id_dt.css('padding-bottom', '0px');

		template_id_dd.css('visibility', 'hidden');
		template_id_dd.css('height', '0px');
		template_id_dd.css('padding-bottom', '0px');
		
		template_id2_dt.css('visibility', 'hidden');
		template_id2_dt.css('height', '0px');
		template_id2_dt.css('padding-bottom', '0px');
		

		template_id2_dd.css('visibility', 'hidden');
		template_id2_dd.css('height', '0px');
		template_id2_dd.css('padding-bottom', '0px');
	}
	else if($("select#attribute_type_id :selected").val() == 11)
	{
		config_url_dt.css('visibility', 'hidden');
		config_url_dt.css('height', '0px');
		config_url_dt.css('padding-bottom', '0px');

		config_url_dd.css('visibility', 'hidden');
		config_url_dd.css('height', '0px');
		config_url_dd.css('padding-bottom', '0px');

		template_id_dt.css('visibility', 'visible');
		template_id_dt.css('height', 'auto');
		template_id_dt.css('padding-bottom', '0px');

		template_id_dd.css('visibility', 'visible');
		template_id_dd.css('height', 'auto');
		template_id_dd.css('padding-bottom', '20px');
		
		template_id2_dt.css('visibility', 'visible');
		template_id2_dt.css('height', 'auto');
		template_id2_dt.css('padding-bottom', '20px');
		
		template_id2_dd.css('visibility', 'visible');
		template_id2_dd.css('height', 'auto');
		template_id2_dd.css('padding-bottom', '20px');
	}
	else if($("select#attribute_type_id :selected").val() == 13)
	{
		config_url_dt.css('visibility', 'visible');
		config_url_dt.css('height', 'auto');
		config_url_dt.css('padding-bottom', '0px');

		config_url_dd.css('visibility', 'visible');
		config_url_dd.css('height', 'auto');
		config_url_dd.css('padding-bottom', '0px');

		template_id_dt.css('visibility', 'hidden');
		template_id_dt.css('height', '0px');
		template_id_dt.css('padding-bottom', '0px');

		template_id_dd.css('visibility', 'hidden');
		template_id_dd.css('height', '0px');
		template_id_dd.css('padding-bottom', '0px');
		
		template_id2_dt.css('visibility', 'hidden');
		template_id2_dt.css('height', '0px');
		template_id2_dt.css('padding-bottom', '0px');
		
		template_id2_dd.css('visibility', 'hidden');
		template_id2_dd.css('height', '0px');
		template_id2_dd.css('padding-bottom', '0px');
	}
	else if($("select#attribute_type_id :selected").val() == 14)
	{
		config_url_dt.css('visibility', 'hidden');
		config_url_dt.css('height', '0px');
		config_url_dt.css('padding-bottom', '0px');

		config_url_dd.css('visibility', 'hidden');
		config_url_dd.css('height', '0px');
		config_url_dd.css('padding-bottom', '0px');

		template_id_dt.css('visibility', 'visible');
		template_id_dt.css('height', 'auto');
		template_id_dt.css('padding-bottom', '0px');

		template_id_dd.css('visibility', 'visible');
		template_id_dd.css('height', 'auto');
		template_id_dd.css('padding-bottom', '20px');
		
		template_id2_dt.css('visibility', 'visible');
		template_id2_dt.css('height', 'auto');
		template_id2_dt.css('padding-bottom', '20px');
		
		template_id2_dd.css('visibility', 'visible');
		template_id2_dd.css('height', 'auto');
		template_id2_dd.css('padding-bottom', '20px');
	}
  });

	// Hide the Type (template_id) field and the Display Field (attribute_type_id) if the config_url field isn't empty
	// See: /index.php?h=PartTypeAttributeAdd&part_type_id=28&
	if( $("input#config_url").val())
	{
		$("dt.template-select").css('visibility', 'hidden');
		$("dt.template-select").css('height', '0px');
		$("dt.template-select").css('padding-bottom', '0px');
		$("dd.template-select").css('visibility', 'hidden');
		$("dd.template-select").css('height', '0px');
		$("dd.template-select").css('padding-bottom', '0px');
		//$("dt.attribute_type_id").css('visibility', 'hidden');
		//$("dt.attribute_type_id").css('height', '0px');
		//$("dt.attribute_type_id").css('padding-bottom', '0px');
		//$("dd.attribute_type_id").css('visibility', 'hidden');
		//$("dd.attribute_type_id").css('height', '0px');
		//$("dd.attribute_type_id").css('padding-bottom', '0px');
	}
	else
	{
		//alert($("input#config_url").val());
	}
	
    $("input#config_url").change(function(){
    	
    	//alert("HERE");
		
		if( $("input#config_url").val())
		{			
			$("dt.template-select").css('visibility', 'hidden');
			$("dt.template-select").css('height', '0px');
			$("dt.template-select").css('padding-bottom', '0px');
			$("dd.template-select").css('visibility', 'hidden');
			$("dd.template-select").css('height', '0px');
			$("dd.template-select").css('padding-bottom', '0px');
			//$("dt.attribute_type_id").css('visibility', 'hidden');
			//$("dt.attribute_type_id").css('height', '0px');
			//$("dt.attribute_type_id").css('padding-bottom', '0px');
			//$("dd.attribute_type_id").css('visibility', 'hidden');
			//$("dd.attribute_type_id").css('height', '0px');
			//$("dd.attribute_type_id").css('padding-bottom', '0px');
		}
		else
		{
			$("dt.template-select").css('visibility','visible');
			$("dt.template-select").css('height', 'auto');
			$("dt.template-select").css('padding-bottom', '20px');
			$("dd.template-select").css('visibility', 'visible');
			$("dd.template-select").css('height', 'auto');
			$("dd.template-select").css('padding-bottom', '20px');
			//$("dt.attribute_type_id").css('visibility','visible');
			//$("dt.attribute_type_id").css('height', 'auto');
			//$("dt.attribute_type_id").css('padding-bottom', '20px');
			//$("dd.attribute_type_id").css('visibility', 'visible');
			//$("dd.attribute_type_id").css('height', 'auto');
			//$("dd.attribute_type_id").css('padding-bottom', '20px');
		}
   	});
}

station.hideContainerForModuleAddIfDefaultContainerIsSet = function()
{
			container_dt = $('label[for="container_id"]').parent().get(0);
			container_dd = $("select#container_id").parent().get(0);

      // This needs to be set by PHP if there's a default
      // container for the module
	    if( station.module_template_has_default_container )
			{
				container_dt.style.visibility = "visible";
				container_dt.style.height = "auto";
				container_dd.style.visibility = "visible";
				container_dd.style.height = "auto";
				//alert(data);
			}
			else
			{
				container_dt.style.visibility = "hidden";
				container_dt.style.height = "0px";
				container_dd.style.visibility = "hidden";
				container_dd.style.height = "0px";
			}
}

$(document).ready( 
    function() {
		station.init();
    }
);

