//Imagimage School Login
if(!Imgimg){var Imgimg = new Object();}

if(typeof($j) != "undefined" && Imgimg){
	
	$j(window).load(function(){	
		Imgimg.eventLogin = new Imgimg.EventLogin();
		Imgimg.eventLogin.init();
	})	
		
}else{
	alert('Error: Jquery or Imgimg is not defined correctly');	
}

//Imagimage Shop
if(!Imgimg){var Imgimg = new Object();}


/**************************************************************
EVENTLOGIN // CLASS
**************************************************************/
Imgimg.EventLogin = function(){ 
	
	var AJAX_URL = "/ajax-"+$j('.hiddenCulture').html()+'/subcategorylist';
	var $this = this;
	var data;
	var eventsDropdown, eventsDropdownlist, subCategoriesDropdown, submitButton, hiddenQtyDropdowns, hiddenValueDropdown;
	var maxSubCategories = 1;
	var countSubCategories = 0;
	var nbCodesToSend = 1;
	
	/*---------------------------------------------------------------------------------------------------
	init //
	---------------------------------------------------------------------------------------------------*/
	this.init = function(){
		//alert('init CatalogList');
		eventsDropdown = $j('#loginOrder').find('.eventsDropdown');
		eventsDropdownlist = $j('#loginOrder').find('.eventsDropdownlist'); 
		eventsDropdownlist.change(updateList);
		submitButton = $j('#loginOrder').find('#submitButton');
		hiddenQtyDropdowns = $j('#loginOrder').find('.nbCodeValuesTextbox'); 
		hiddenValueDropdown = $j('#loginOrder').find('.codeValue1Textbox'); 
	}
	
	/*---------------------------------------------------------------------------------------------------
	evalData //
	---------------------------------------------------------------------------------------------------*/
	function evalData(d){
		data = d;//eval(d);
		if(data.data.length > 0){
			submitButton.hide();
			createHtml();
			countSubCategories++;
			subCategoriesDropdown.find('.eventsDropdownlist').attr('index', countSubCategories);
		}else{
			submitButton.show();
			subCategoriesDropdown.remove();
		}
	}
	
	/*---------------------------------------------------------------------------------------------------
	updateList //
	---------------------------------------------------------------------------------------------------*/
	function updateList(eventObject){
		$j(eventObject.target).blur(); // remove focus on element, SAFARI BUG;
		var selectedDropdown = $j(eventObject.target);
		var selectedValue = selectedDropdown.find('option:selected').attr('value');
		var selectedId = selectedDropdown.find('option:selected').attr('id');
		var dropdownList = $j('#loginOrder').find('.eventsDropdownlist');
		
		for(var x=0; x<dropdownList.length; x++){
			var dropdown = $j(dropdownList[x]);
			if(selectedDropdown.attr('index') < dropdown.attr('index')){
				dropdown.closest('div').remove();
				countSubCategories--;
			}
		}
		
		if(countSubCategories < maxSubCategories){
			createSubCategory();
			submitButton.hide();
			disableOptions(selectedDropdown);
			$j.ajax({
			   type: "POST",
			   url: AJAX_URL,
			   dataType: 'text',
			   data: "parentId="+selectedId,
			   success: function(data){
			   	if (typeof pln != 'undefined') {
					var dataObject = pln.decode(data);
					evalData(dataObject);
				}
				else {
				    evalData(eval(data));
				}
				 enableOptions(selectedDropdown);
			   }
			 });
		}else{
			initHiddenValue(selectedValue);
			submitButton.show();
		}
		
		if(selectedDropdown.find('.defaultOption').html() != null){
			selectedDropdown.find('.defaultOption').remove();
		}
	}
	
	/*---------------------------------------------------------------------------------------------------
	initHiddenValue //
	---------------------------------------------------------------------------------------------------*/
	function initHiddenValue(selectedValue){
		hiddenQtyDropdowns.attr('value', nbCodesToSend);
		hiddenValueDropdown.attr('value', selectedValue);
	}
	
	/*---------------------------------------------------------------------------------------------------
	createSubCategory //
	---------------------------------------------------------------------------------------------------*/
	function createSubCategory(){
		$j('.dropdowns').append('<div class="subCategoriesDropdown'+countSubCategories+'"></div>');
		subCategoriesDropdown = $j('.dropdowns').find('.subCategoriesDropdown'+countSubCategories);
		subCategoriesDropdown.append('<span class="worker"></span>');
	}
	
	/*---------------------------------------------------------------------------------------------------
	disableOptions //
	---------------------------------------------------------------------------------------------------*/
	function disableOptions(dropdown){
		dropdown.find('option').each(function(){
			$j(this).attr('disabled', true);
		});
		dropdown.attr('disabled', true);
	}
	
	/*---------------------------------------------------------------------------------------------------
	enableOptions //
	---------------------------------------------------------------------------------------------------*/
	function enableOptions(dropdown){
		dropdown.find('option').each(function(){
			$j(this).attr('disabled', false);
		});
		dropdown.attr('disabled', false);
	}
	
	/*---------------------------------------------------------------------------------------------------
	createHtml //
	---------------------------------------------------------------------------------------------------*/
	function createHtml(){
		//alert(data.data[0].name);
		subCategoriesDropdown.find('.worker').hide();
		
		var selectTemplate = eventsDropdown.clone();
		subCategoriesDropdown.html(selectTemplate.html());
		subCategoriesDropdown.find('.labelLiteral').html(lang=='en'?'Period':'P&eacute;riodes');
		
		var dropdown = subCategoriesDropdown.find('.eventsDropdownlist');
		dropdown.find('option').remove();
		dropdown.append('<option value="" class="defaultOption">-' + (lang=='en'?'period':'p&eacute;riode') + '-</option>');
		dropdown.change(updateList);
		enableOptions(dropdown);
		
		for(var x=0; x<data.data.length; x++){
			dropdown.append('<option id="'+data.data[x].id+'" value="'+data.data[x].code+'">'+data.data[x].label+'</option>');
		}
	}
}
	