/**
 * @author mixa
 */
/**
 * Collects properties from controls
 * @param {Object} propertiesArray
 */
function collectProperties(propertiesArray){
	var i;
	for(i=0;i<propertiesArray.length;i++){
		property = propertiesArray[i];
		if(property.Type==0){//string
			property.Value = $(property.ClientId).value;
		} 
		if(property.Type==1){//numeric
			property.Value = $(property.ClientId).value;
		}
		if(property.Type==2){//checkbox
			property.Value = $(property.ClientId).checked?"1":"0";
		}
		if(property.Type==3){//dropdown
			property.Value = $(property.ClientId).value;
		}
	}
	return propertiesArray;
}
/**
 * Binds controls with data
 * @param {Object} propertiesArray
 */
function setProperties(propertiesArray){	
	for(var i=0;i<propertiesArray.length;i++){
		property = propertiesArray[i];
		if(property.Type==0){//string
			$(property.ClientId).value=property.Value;
		} 
		if(property.Type==1){//numeric
			$(property.ClientId).value=property.Value;
		}
		if(property.Type==2){//checkbox
			if(property.Value==true){
				$(property.ClientId).checked=true;	
			} else{
				$(property.ClientId).checked=false;	
			}
		}
		if(property.Type==3){//dropdown
			$(property.ClientId).options[0].selected;
			for (var j=0; j < $(property.ClientId).options.length; j++)
  			{
      			if ($(property.ClientId).options[j].value==property.Value){
					 $(property.ClientId).options[j].selected=true;
					 break;//todo what if value not found in the list?
				}
		  	}
		}
	}
	return propertiesArray;
}

//************************************ functions to work with drop down values*********************************/
    function showDdl(){
		if($('eType').value==3){
			updateDdlValues();
			$('ddlValuesContainer').show();
		}else{
			$('ddlValuesContainer').hide();
		}
	}
	function removeDdlValue(pos){
		if(!$F('eData').blank()){
				valuesArray=$F('eData').split(",").compact();
		}
		$('eData').value="";
		valuesArray.each(
			function(s, index) {   
				if(index!=pos){
					if(!$('eData').value.blank()){
						$('eData').value+=',';
					}
						$('eData').value+=s;} 
				}
		);
		updateDdlValues();
	}
	function sortDdlValue(asc){
		var valuesArray;
		if(!$F('eData').blank()){
				valuesArray=$F('eData').split(",").compact().sort();
				if(!asc){
					valuesArray.reverse();
				}
				$('eData').value="";
				valuesArray.each(
					function(s, index) {  
						if(!$('eData').value.blank()){
							$('eData').value+=',';
						}
						$('eData').value+=s;						
					}
				);
			updateDdlValues();
		}
	}
	function addDdlValue(){
		$('addDropDownValue').value.escapeHTML(); 
		if(!$('addDropDownValue').value.blank()){
			if(!$('eData').value.blank()){
				$('eData').value+=',';
			}
			$('eData').value+=$('addDropDownValue').value;
			updateDdlValues();
		}
	}
	function updateDdlValues(){
		var valuesArray;
		var i;
		var tr;
		var td;
		var tbody = $('ddltbody');
		if(tbody.childElements()){
			tbody.childElements().invoke('remove');
		}	
		if(!$F('eData').blank()){
				valuesArray=$F('eData').split(",").compact();
		}
		if(!valuesArray || valuesArray.length==0){
			tr=Element.extend(document.createElement("tr"));
			td=Element.extend(document.createElement("td"));			
			tbody.appendChild(tr);
			tr.appendChild(td);
			td.toggleClassName('editlabel');
			td.style.textAlign='center';
			td.update('Empty');
		}else{
			for(i=0;i<valuesArray.length;i++){
				tr=Element.extend(document.createElement("tr"));
				td=Element.extend(document.createElement("td"));			
				tbody.appendChild(tr);
				tr.appendChild(td);
				td.update(valuesArray[i]);
				td.toggleClassName('editlabel');
				td.style.width='100%';
				td=Element.extend(document.createElement("td"));
				tr.appendChild(td);
				td.toggleClassName('editvalue');
				td.update('<a href="#" onclick="removeDdlValue('+i+')" class=textButton><span>Remove</span></a>');			
			}
		}
	}