// common
function createSimpleInput(type, id, name, value){
	input = document.createElement("input");
	input.type = type;
	input.id = id;
	input.name = name;
	input.value = value;
	return input;
}

createSimpleImage = function(url, alt){
	image = document.createElement("img");
	image.src = url;
	image.alt = alt;
	return image;
}

createDiv = function(className, child){
	div = document.createElement("div");
	div.className = className;
	div.appendChild(child);
	return div;
}

createSimpleDiv = function(className){
	div = document.createElement("div");
	div.className = className;
	return div;
}

createSpan = function(className, child){
	span = document.createElement("span");
	span.className = className;
	span.appendChild(child);
	return span;
}

// functions for coupons
doAjaxFormSubmit = function(form, container, ajaxUrl){
	parameters = form.serialize();
	new Ajax.Updater(
		container,
		ajaxUrl, 
		{	
			method: 'post',
        	evalScripts: true,
        	parameters: parameters
    	}
	);
}

doAjaxUpdater = function(container, ajaxUrl){
	parameters = {'time' : new Date().getTime()};        			
	new Ajax.Updater(
		container,
		ajaxUrl,
		{method:'get', parameters: parameters, evalScripts:true}
	)
}

// functions for pictograms/user-image and image-preview

function setPictogram(pictogramId, defaultResolutionUrl){

	cleanConfirmation();
	$('pictogram').value = pictogramId;
	
	if($('pictogramKey').value == 'USR'){
		window.frames.uploadIframe.location = requestContextPath + '/upload/iframe-box.html?thumbnailPath=cookbookForm.image.thumbnail.url&amp;regularPath=cookbookForm.image.defaultResolution.url';
		$('pictogramKey').value = 'DEF';
	}
	$('preview-image').src = defaultResolutionUrl;
}

function setUserImage(defaultResolutionUrl){
	$('pictogramKey').value = "USR";
	$('preview-image').src = requestContextPath + '/upload/' + defaultResolutionUrl;
}

function cleanConfirmation(){
	$('confirm-checkbox').checked = false;
	if($('confirm-error-span')){
		$('confirm-error-span').innerHTML='';
	}
	$('image.confirmation').style.display="none";
	if($('ignore-lowres'))$('ignore-lowres').style.display="none";
}
		
function restoreDefaultPictogramm(){
	setPictogram(id_default, defaultResolutionUrl_default, requestContextPath);
}

function updateTitle(el, maxlen){
	checkInputElement(el, maxlen);
	$('cookbooklabel').innerHTML = '' + el.value;
}


// function for text-inputs & textareas

function checkInputElement(element, maxlength){						
	if (element.value.length > maxlength ){					
		element.value = element.value.substring(0, maxlength);
		remains = 0;
	}else{
		remains = maxlength - element.value.length;
	}
	
	statusElementId = '' + element.id + '-status';
	$(statusElementId).innerHTML = '&nbsp;Noch ' + remains + ' Zeichen m&ouml;glich.';
}

// functions for sortable list
var oldSequence;
var newSequence;

listUpdated = function (listId) {
	
	var done = function(){return false;}
	
	if(preview != null && preview){
		done = function(){window.location.reload();}
	}else{
		done = function(){assignZIndexes(".sortable");}
	}
	
	oldSequence = newSequence;
	newSequence = Sortable.sequence(listId);
	
	parameters = {'oldStr': oldSequence, 'newStr': newSequence, 'time' : new Date().getTime()};				
	new Ajax.Request(
		newSequenceUrl, 
		{ method:'get', parameters: parameters, onSuccess: done }
	);
};

assignZIndexes = function(cssClassName) {
	var idx = 200;
	$$(cssClassName).each(function(item) {
		oldIndex = parseInt(Element.getStyle(item,'z-index') || 0);
		item.style.zIndex = idx;
		idx--;
		//alert("element  " + item.id + ", old index: " + oldIndex + ", new index: " + idx);
	});
}

createSortable = function(listId, handAnchors){
			
	Sortable.create(listId, {
		dropOnEmpty: true,
		containment: listId,
		constraint: false,
		scroll: window,
		onUpdate: listUpdated
	});
}

// function for switching the bottom-areas		
switchBottom = function(button){
	if(button==2){
		if($('cookbook-area').style.display == 'block' && $('recipes-area').style.display == 'none'){
			$('cookbook-area').style.display = 'none';
			$('recipes-area').style.display = 'block';
			$('cookbook-button').className = 'edit-order-one out';
			$('recipes-button').className = 'edit-order-two';
		}
	}else if(button==1){
		if($('cookbook-area').style.display == 'none' && $('recipes-area').style.display == 'block'){
			$('cookbook-area').style.display = 'block';
			$('recipes-area').style.display = 'none';
			$('cookbook-button').className = 'edit-order-one';
			$('recipes-button').className = 'edit-order-two out';
		}
	} 
}

// functions for recipe - notes

function toggleRecipeNoteForm(id, defaultValue){
	$('recipeNote-' + id).toggle(); 						// view RecipeNote  ON / OFF
	$('addEditRecipeNoteForm-' + id).toggle();				// edit RecipeNote	OFF / ON
	checkInputElement($('note-' + id), 170);					// display remain symbols onload
	$('note-' + id).value=defaultValue;						// restore default value
}

// function for dynamic update of box-cookbook-view
function showRecipeCount(count){
	if($('recipe-count')){
		var recipeCountString = "";			
		if (count==0){
			recipeCountString = "Keine Rezepte";
		}else if(count==1){
			recipeCountString = "1 Rezept";
		}else{
			recipeCountString = count + " Rezepte";
		}
		$('recipe-count').innerHTML = recipeCountString;
	}
}

// functions for receiving of list of recipes ( previously )
function managingRecipes(url, orderBy, idToDel){

	var done = function(){return false;}
	var parameters = {'order': orderBy, 'time' : new Date().getTime()};        			

	if(idToDel && idToDel > 0){
		parameters['idToDel'] = idToDel;
		if(preview != null && preview){
			done = function(){window.location.reload();}
		}
	}

	new Ajax.Updater(
		'recipes-area', 
		url,
		{method: 'get', parameters: parameters, evalScripts: true, onSuccess: done}
	);
}

function loadRecipeList(url, orderBy){
	managingRecipes(url, orderBy, null);
}

// functions for slider

var defaultResolutions = Array();

viewDetailFunc = function(e) {
    setPictogram(e.alt, defaultResolutions[e.alt]); 
}

var sliderInstance = null;

function startSlider( imageCount, startIndex, imageWidth, visibleImageCount, allActive){
	
	try {
	    sliderInstance = ImageSlider.create('sliderImageBoxInside',{    
	        imageCount: imageCount, 
	        startImage: startIndex, 
	        imageWidth: imageWidth,
	        visibleImageCount: visibleImageCount, 
	        onClickFunction: viewDetailFunc
	     });
	     $$("#sliderImageBoxInside img").each(function(elem) {
	    	 if (!allActive) {
	    		 setSliderInactiveElement(elem)
	    	 } else {
	    		 setSliderActiveElement(elem)
	    	 }
	        elem.observe('click', function(event) {
	            sliderInstance.stopEffects();
	            sliderInstance.centerImage(elem);
	            $$("#sliderImageBoxInside img").each(function(inactiveImg) {
	            	if (!allActive) {
	            		setSliderInactiveElement(inactiveImg)
	            	} else {
	   	    		 setSliderActiveElement(inactiveImg)
	   	    	 	}
	            });
	            setSliderActiveElement(elem)
	        });
	    });                      
	 } catch (e) {
	    alert("Exception : " + e.message );
	 }
}

setSliderInactiveElement = function(elem){
	elem.style.border = "1px solid #8F7A5D";
	elem.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=50)";
	elem.style.opacity = "0.5";
}

setSliderActiveElement = function(elem){
	elem.style.border = "1px solid #F5821F";
	elem.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
	elem.style.opacity = "1.0";
}

// Recipe's buttons

var Button = {
	flag: "pressed",

	one: function(anchor, id, doTheAction){
		push(anchor, Button.flag)				
		if($('cb-rez-' + id + '-layer-1').style.display == 'block'){
			if($('cookbook-' + id)){$('cookbook-' + id).innerHTML = '';}
			$('cb-rez-' + id + '-layer-1').style.display = 'none';
		}else{
			addToCookbook(id, doTheAction);
		
			$('cb-rez-' + id + '-layer-1').style.display = 'block';		            

			if($('cb-rez-' + id + '-layer-2')!=null && $('cb-rez-' + id + '-layer-2').style.display == 'block'){
				$('cb-rez-' + id + '-layer-2').style.display = 'none';
			}
			if($('cb-rez-' + id + '-layer-3').style.display == 'block'){
				$('cb-rez-' + id + '-layer-3').style.display = 'none';
			}
		}				
	},
			
	two: function(anchor, id){
		push(anchor, Button.flag);
		if($('cb-rez-' + id + '-layer-2')!=null && $('cb-rez-' + id + '-layer-2').style.display == 'block'){
			$('cb-rez-' + id + '-layer-2').style.display = 'none';
		}else{
			$('cb-rez-' + id + '-layer-2').style.display = 'block';
			if($('cb-rez-' + id + '-layer-1').style.display == 'block'){
				$('cb-rez-' + id + '-layer-1').style.display = 'none';
			}
			if($('cb-rez-' + id + '-layer-3').style.display == 'block'){
				$('cb-rez-' + id + '-layer-3').style.display = 'none';
			}
		}
	},
	
	three: function(anchor, id){
		push(anchor, Button.flag);
		if($('cb-rez-' + id + '-layer-3').style.display == 'block'){
			$('cb-rez-' + id + '-layer-3').style.display = 'none';
		}else{
			$('cb-rez-' + id + '-layer-3').style.display = 'block';
			if($('cb-rez-' + id + '-layer-1').style.display == 'block'){
				$('cb-rez-' + id + '-layer-1').style.display = 'none';
			}
			if($('cb-rez-' + id + '-layer-2')!= null && $('cb-rez-' + id + '-layer-2').style.display == 'block'){
				$('cb-rez-' + id + '-layer-2').style.display = 'none';
			}
		}
	},
	
	large: function(anchor, id, doTheAction){
		pushLarge(anchor, Button.flag);
		if($('cb-rez-' + id + '-layer-1').style.display == 'block'){
			if($('cookbook-' + id)){$('cookbook-' + id).innerHTML = '';}
			$('cb-rez-' + id + '-layer-1').style.display = 'none';
		}else{
			addToCookbook(id, doTheAction);
			$('cb-rez-' + id + '-layer-1').style.display = 'block';
		}
	}
}

// function for pageNumber-select
changeHint = function(select){
	if(select.value > 0){
		$('cbHintLinkPageNumber').style.display = 'block';
		if(select.value == 48){
			$('visiblePageCount').innerHTML = select.value-5;
		}else {
			$('visiblePageCount').innerHTML = select.value-4;
		}
	}else{
		$('cbHintLinkPageNumber').style.display = 'none';
	}
}

doSubmit = function(){

	if(!$('hidden-coupon') && $('coupon') && $('coupon').value != ""){
		errMsg = unescape('Bitte %FCberprüfen Sie den eingegebenen Gutschein-Code, indem Sie auf den Link "Code %FCberpr%FCfen" klicken.');
		alert(errMsg);
	}else{
		$('cookbookOrderForm').submit();
	}
}

// Tchibo - erweiterungen
function defineCookbook(id, title){
	$('title').value=title;
	if($('predefinedCookbook')){
		$('predefinedCookbook').value=id;
	}
	$('addEditCookbookForm').submit();
}

function faqWindowOpen(url, editMode){
	var parameters = "dependent=YES, width=360, height=540, menubar=NO, location=NO, locationbar=NO, screenX=1000";
	if(editMode){
		parameters += ", resizable=YES";
	}else{
		parameters += ", resizable=NO";
	}
	//alert(parameters);
	window.open(url, "popup", parameters);
}