
var fieldCount = 0;
var filterParentNode;


  function addNewFile(){

    fieldCount++;
	//alert(fieldCount)    
	
    $('fileCount').value = fieldCount;

    var filesContainer = $('files_container');
    var newFile = document.createElement('input');

    var addNewTD 		= $('addNew');
    var addNewButton 	= $('addNewButton');

	var removeButton	= document.createElement('button');

    var nonBreakingSpace = document.createTextNode('\u00A0');
    var newFileLabel = document.createTextNode('File');    

    var fileTR = document.createElement('tr');
    var fileLabelTH = document.createElement('th');
    var fileInputTD = document.createElement('td');
    var addMultipleButtonTD = document.createElement('td');
    
    newFile.type = 'file';
    newFile.size = '30';
    newFile.className = 'fileInput';
    newFile.readonly = true;
    newFile.name = 'attachment[' + fieldCount + ']';
    newFile.id = 'attachment[' + fieldCount + ']';


	removeButton.id 		= 'remove_file_'+(fieldCount-1);
	//removeButton.type		= 'button';
	removeButton.className 	= 'button';
	removeButton.innerHTML 	= 'Remove';
	addEvent(removeButton, 'click', removeFile)
	try{	
		
	}catch(e){
		alert(e);
	}
    
    
    addNewTD.removeChild(addNewButton);
    addNewTD.appendChild(removeButton);
    addNewTD.id = '';
        

    fileLabelTH.appendChild(newFileLabel);
    fileInputTD.appendChild(newFile);    
    addMultipleButtonTD.appendChild(addNewButton);
    addMultipleButtonTD.id = 'addNew';
    addMultipleButtonTD.style.textAlign = 'right';
    

    fileTR.appendChild(fileLabelTH);    
    fileTR.appendChild(fileInputTD);        
    fileTR.appendChild(addMultipleButtonTD);
   
    filesContainer.tBodies[0].appendChild(fileTR);    
    
   return false;
  }


  function addNewCommentFile(){

    fieldCount++;
	//alert(fieldCount)    
	
    $('fileCount').value = fieldCount;

    var filesContainer = $('files_container');
    var newFile = document.createElement('input');
    var newFileDesc = document.createElement('input');

    var addNewTD 		= $('addNew');
    var addNewButton 	= $('addNewButton');

	var removeButton	= document.createElement('button');

    var nonBreakingSpace = document.createTextNode('\u00A0');
    var newFileLabel = document.createTextNode('File');    
    var newDescLabel = document.createTextNode('Description');    

    var fileTR = document.createElement('tr');
    var fileLabelTH = document.createElement('th');
    var fileInputTD = document.createElement('td');
    var descLabelTH = document.createElement('th');
    var descInputTD = document.createElement('td');
    var addMultipleButtonTD = document.createElement('td');
    
    newFile.type = 'file';
    newFile.size = '30';
    newFile.className = 'fileInput';
    newFile.readonly = true;
    newFile.name = 'attachment[' + fieldCount + ']';
    newFile.id = 'attachment[' + fieldCount + ']';

    newFileDesc.type = 'text';
    newFileDesc.size = '30';
    newFileDesc.className = 'fileInput';
    newFileDesc.name = 'attachmentDescr[' + fieldCount + ']';
    newFileDesc.id = 'attachmentDescr[' + fieldCount + ']';

	removeButton.id 		= 'remove_file_'+(fieldCount-1);
	try{
		removeButton.type		= 'button';
	}catch(e){
		
	}
	removeButton.innerHTML 	= 'Remove';
	removeButton.className 	= 'button';
	addEvent(removeButton, 'click', removeFile)
    
    addNewTD.removeChild(addNewButton);
    addNewTD.appendChild(removeButton);
    addNewTD.id = '';
        

    fileLabelTH.appendChild(newFileLabel);
    fileInputTD.appendChild(newFile);    
    descLabelTH.appendChild(newDescLabel);
    descInputTD.appendChild(newFileDesc);    
    addMultipleButtonTD.appendChild(addNewButton);
    addMultipleButtonTD.id = 'addNew';
    addMultipleButtonTD.style.textAlign = 'right';
    

    fileTR.appendChild(fileLabelTH);    
    fileTR.appendChild(fileInputTD);        
    fileTR.appendChild(descLabelTH);    
    fileTR.appendChild(descInputTD);        
    fileTR.appendChild(addMultipleButtonTD);
   
    filesContainer.tBodies[0].appendChild(fileTR);    

    
   return false;
  }


function removeFile(evt){
	if(!evt){
		evt = window.event;
	}

	var target = evt.target? evt.target : evt.srcElement;

	var fileId = target.id.replace('remove_file_','');
	
	var fileField	= $('attachment[' + fileId + ']');
	
	var filesContainer = $('files_container');
	
	//alert(fileId)
	
	filesContainer.tBodies[0].removeChild(fileField.parentNode.parentNode);
	
	decrementFilesIndex(fileId);
}



function decrementFilesIndex(currentIndex){

	for(var i = parseInt(currentIndex)+1; i <= fieldCount ; i++){
		var fileInput 	 = $('attachment['+i+']');
		var removeButton = $('remove_file_'+i);

		fileInput.id = 'attachment[' + (i-1) + ']';
		fileInput.name = 'attachment[' + (i-1) + ']';
		
		if(removeButton){
			removeButton.id = 'remove_file_'+ (i-1);
		}
		
	}		
	
	fieldCount--;
	$('fileCount').value = fieldCount;
}


function notifyAutoCheck(evt){
	if(!evt){
		evt = window.event;
	}

	var target = evt.target? evt.target : evt.srcElement;

	var userId = target.options[target.selectedIndex].value;
	
	clearNotifyCheckboxes();
	
	var notifyCheckbox = $('notifyUser_'+userId);
	
	if(notifyCheckbox){
		if(!notifyCheckbox.checked){
			notifyCheckbox.checked = true;
		}
	}
}


function submitParentForm(evt){
	if(!evt){
		evt = window.event;
	}

	var target = evt.target? evt.target : evt.srcElement;

	if(target.form){
		if(target.form.id == 'editTaskForm'){
			if(!guardCommentArea()){
				return false;
			}else{
				return target.form.submit();
			}
		}else{
			//alert("submit")
			//return false;
			if (target.id != 'advanced_btn' &&
				target.id != 'clear_date_time')
				target.form.submit();
		}
	}
}


function toogleButtonOn(evt){
	if(!evt){
		evt = window.event;
	}

	var target = evt.target? evt.target : evt.srcElement;

	if(targetIsInButton(target)){
		button = getButton(target);
	}

	//alert(button.tagName)

	if(button){
		if(button.className == 'submit_button'){
			button.className = 'submit_button_over';
		}
	}
}


function toogleButtonOff(evt){
	if(!evt){
		evt = window.event;
	}

	var target = evt.target? evt.target : evt.srcElement;

	if(targetIsInButton(target)){
		button = getButton(target);
	}
	
	//alert(button.tagName)

	if(button){
		if(button.className == 'submit_button_over'){
			button.className = 'submit_button';
		}
	}
}


function targetIsInButton(element){

	if(element.tagName.toUpperCase() == 'BUTTON'){
//		alert(element.id)
		return true;
	}else{
		var elementParent = element.parentNode;
		
		while(elementParent){
			if(elementParent.tagName.toUpperCase() == 'BUTTON'){
//				alert(elementParent.id);
				return true;
			}else{
				elementParent = elementParent.parentNode;
			}
		}
		return false;
	}
}


function getButton(element){

	if(element.tagName.toUpperCase() == 'BUTTON'){
//		alert(element.id)
		return element;
	}else{
		var elementParent = element.parentNode;
		
		while(elementParent){
			if(elementParent.tagName.toUpperCase() == 'BUTTON'){
//				alert(elementParent.id);
				return elementParent;
			}else{
				elementParent = elementParent.parentNode;
			}
		}
		return null;
	}
}

function clearNotifyCheckboxes(){
	if(usersIds.length){
		for(var i = 0; i < usersIds.length ; i++){
			var notifyCheckbox = $('notifyUser_'+usersIds[i]);
			if(notifyCheckbox.checked){
				notifyCheckbox.checked = false;
			}
		} 
	}
}


function toogleShowHideAdditional(evt){
	if(!evt){
		evt = window.event;
	}

	var target = evt.target? evt.target : evt.srcElement;

	

	var additionalInfoDiv = $('additional_info');

	if(additionalInfoDiv.style.display == 'block'){
		additionalInfoDiv.style.display = 'none';
		target.innerHTML = 'Show';
	}else if(additionalInfoDiv.style.display == 'none'){
		additionalInfoDiv.style.display = 'block';		
		target.innerHTML = 'Hide';				
	}
}


function toogleShowHideDeadline(evt){

	//alert("toogle")
	if(!evt){
		evt = window.event;
	}

	var target = evt.target? evt.target : evt.srcElement;

	var deadlineInfoDiv = $('deadline_info');

	if(deadlineInfoDiv.style.display == 'block'){
		deadlineInfoDiv.style.display = 'none';
		//target.innerHTML = 'Show';
	}else if(deadlineInfoDiv.style.display == 'none'){
		deadlineInfoDiv.style.display = 'block';		
		//target.innerHTML = 'Hide';
	}
}

function hideDateTimeInputs(){
	//alert("hide")
	var deadlineInfoDiv = $('deadline_info');
	
	if(deadlineInfoDiv.style.display != 'none'){
		deadlineInfoDiv.style.display = 'none';
	}

}


function showDateTimeInputs(){
	//alert("show")
	var deadlineInfoDiv = $('deadline_info');
	
	if(deadlineInfoDiv.style.display != 'block'){
		deadlineInfoDiv.style.display = 'block';
	}

}


function showAdditionalInputs(){

	var deadlineInfoDiv = $('additional_info');
	
	if(deadlineInfoDiv.style.display != 'block'){
		deadlineInfoDiv.style.display = 'block';
	}

}


function toogleShowHideAttachments(evt){
	if(!evt){
		evt = window.event;
	}

	var target = evt.target? evt.target : evt.srcElement;

	var attachmentsInfoDiv = $('attachments_info');

	if(attachmentsInfoDiv.style.display == 'block'){
		attachmentsInfoDiv.style.display = 'none';
		//target.innerHTML = 'Show';		
	}else if(attachmentsInfoDiv.style.display == 'none'){
		attachmentsInfoDiv.style.display = 'block';		
		//target.innerHTML = 'Hide';
	}
}


function toogleColorShowHide(evt){
	if(!evt){
		evt = window.event;
	}

	var target = evt.target? evt.target : evt.srcElement;
	
	if(target.className == 'submit_text_orange'){
		target.className = '';
	}else{
		target.className = 'submit_text_orange';	
	}
	
}


/**
 * showFilter
 * @param {DOM object} filterObject 
 */
 function showFilter(objSize) {

 	var filterObject = $('filter');
 	var filterContainer = $('filterContainer');
 	var coordinates = ToolMan.coordinates();

 	if(!objSize){
	 	var objSize = coordinates._size(filterObject);
 	}

 	applyTransform(filterContainer.id,0,100,objSize,500);
 
 }
 
 function startOpacity(){

 		var filterObject = $('filter');
	 	var filterContainer = $('filterContainer'); 		
	 	//start applying opacity
	 	opacity(0, filterObject.id);

	 	//set filter parent node
	 	filterParentNode = filterObject.parentNode;
	 	
	 	//remove from parent node
	 	filterParentNode.removeChild(filterObject);
	
		//append child to filter container
	 	filterContainer.appendChild(filterObject);

	 	filterObject.style.display  = 'block';
	 	applyOpacity(filterObject.id, 0, 100, 500)
	
		//switch between buttons
	 	$('showFilterTrigger').style.display = 'none';
	 	$('hideFilterTrigger').style.display = 'inline';
 }

 function hideFilter(filterObject, objSize) {
 	var filterObject = $('filter');
 	
	//apply 0 opacity to filter
 	applyOpacity(filterObject.id, 100, 0, 500)
 	
 }

 function startTransform(){

 		var filterObject = $('filter');		
	 	var coordinates = ToolMan.coordinates();
	 	var objSize = coordinates._size(filterObject);
	 	var filterContainer = $('filterContainer');		
	 	
	 	filterContainer.style.height = objSize.y + 'px';
	 	
	 	filterObject.style.display  = 'none';
	 	
	 	//remove filter from temp container
		filterContainer.removeChild(filterObject);
		
		//append filter back to it's parent node
		filterParentNode.appendChild(filterObject);
	
		//minimize filter container
	 	applyTransform(filterContainer.id,100,0,objSize,500);
	 	
	 	$('showFilterTrigger').style.display = 'inline';
	 	$('hideFilterTrigger').style.display = 'none';
 		
 	}
 

function clearDateTimeInputs(){
	var dateInput = $('date');
	var timeInput = $('time');
		
	if(trim(dateInput.value).length){
		dateInput.value = '';
	}

	if(trim(timeInput.value).length){
		timeInput.value = '';
	}
	
	return false;
}