/*
 * Number for Jeditable
 */
 
$.editable.addInputType('freqnumber', {
    /* Create input element. */
    element : function(settings, original) {
        /* Create and pulldowns for hours and minutes. Append them to */
        /* form which is accessible as variable this.                 */        
        var input = $('<input class="freqnumberinput" _no_cjk_input="true" type="text" value=""/>'); 

        var hiddeninput = $('<input name="origfreq" type="hidden" value="' + original.revert + '"/>');
        var keytable_index = $('<input name="keyindex" type="hidden" value="' + original.getAttribute("keytable_index") + '"/>');
        var imetype = $('<input name="imetype" type="hidden" value="' + original.getAttribute("imetype") + '"/>');
        $(this).append(input);
        $(this).append(hiddeninput);
        $(this).append(keytable_index);
        $(this).append(imetype);
                
        return(input);
    },
    /* Set content / value of previously created input element. */
    content : function(string, settings, original) {
        var number = parseInt(string); 
        $('input[type="text"]', this).val(number); 
    },

    /* Call before submit hook. */
    submit: function (settings, original) {
	var oldnum = $('input:hidden[name="origfreq"]', this).val(); 
	var newnum = $('input[type="text"]', this).val(); 
	
	if(/\D/.test(newnum))
	{
	   original.reset();
	   return false; 
	}

        if(oldnum == newnum)
        {
           original.reset(); 
           return false;
        } 
        
        return true; 
    }
});

$.editable.addInputType('inputkey', {
    /* Create input element. */
    element : function(settings, original) {
        /* Create and pulldowns for hours and minutes. Append them to */
        /* form which is accessible as variable this.                 */        
        var element = $('<input type="text" class="inputkeyinput" id="inputkey"/>');
	if(original.getAttribute("imetype") == 1)
           element = $('<select class="inputkeyinput" id="inputkey"/>'); 
        $(this).append(element);
                
        return(element);
    },
    /* Set content / value of previously created input element. */
    content : function(string, settings, original) {

	/* just set value for non-pinyin case */
	if(original.getAttribute("imetype") != 1)
	{
          $('input[type="text"]', this).val(string); 
	  return; 
	}

	var list; 
	try {
	   list = eval("(" + string + ")"); 
	} catch(e) {} 

	if(!list)
		return; 
	var chartone = list['chartone'].split(","); 
	var numtone = list['numtone'].split(","); 

 	for(var i=0; i<numtone.length; i++)
	{
	   var option = $('<option>').val(numtone[i]).append(chartone[i]); 
	   $('select', this).append(option); 
	}
 	/* Loop option again to set selected. IE needed this... */ 
	$('select', this).children().each(function() {
	   if($(this).val() == original.getAttribute("origkey"))
	      $(this).attr("selected", "selected"); 
	});
    },

    /* Call before submit hook. */
    submit: function (settings, original) {

	var newvalue = ""; 
	if(original.getAttribute("imetype") != 1)
	   newvalue = $('input[type="text"]', this).val(); 
	else 
	   newvalue = $('select', this).val(); 

	if(newvalue == original.getAttribute("origkey"))
	{
	   original.reset();
	   return false; 
	}
 
	/* ideally we should update origkey after submit post returns but we lost the set value after this, so we do here 
 	 */
	original.setAttribute("origkey", newvalue); 
        return true; 
    }
});
