/**    
 *    Deserialize forms serialized with the Prototype JavaScript framework (version 1.5.0)
 *    (c) 2005 Pierpaolo Follia <pfollia@gmail.com>
 *
 *    This cado is freely distributable under the terms of an MIT-style license.
 *
 *    For details, see the my web site: http://madchicken.altervista.org/tech/
 *    deserialize.js,v 1.3 2006/05/12 09:15:57
 *
 *    Many thanks to:
 *      Wesley (http://blog.360.yahoo.com/wesleybrand)
 *      Gliebster (http://www.blogger.com/profile/16744179855302741518)
 *      krzak (http://www.blogger.com/profile/10667489476751566804)
 *      various anonymous
 *
 *    For their help and bug fixing
 */

Object.extend(Form, {
	deserialize: function(form, data) {
		form = $(form);
		form.reset();
		var tokens = data.split('&');

        tokens.each(
        	function(data, index) {
        		data = data.split('=');
        		var id = data[0];
        		var value = decodeURIComponent(data[1]);
        		if(id != form.id && value)
				    Form.Element.deserialize(form, id, value);
        	}
        );
	},
	
    deserializeJSON: function(form, data) {
        form = $(form);
        form.reset();

        var json = data.evalJSON();
        for (var i in json) {
            var id = i;
            var value = json[i];
            if (id != form.id && value)
                Form.Element.deserialize(form, id, value);
        }
    }	
});

Object.extend(Form.Element, {
	deserialize: function(form, element, data) {
        var elements = Form.getElements(form);
        for (var index = 0, len = elements.length; index < len; ++index) {
            var item = elements[index];
            if(item.name == element) {
    	        var method = item.tagName.toLowerCase();
    	        Form.Element.Deserializers[method](item, data);
    	        break;
    	    }
        }
	}
});

Form.Element.Deserializers = {
    input: function(element, data) {
        switch (element.type.toLowerCase()) {
            case 'submit':
            case 'hidden':
            case 'password':
            case 'text':
                return Form.Element.Deserializers.textarea(element, data);
            case 'checkbox':
                return Form.Element.Deserializers.inputSelector(element, data);
            case 'radio':
                return Form.Element.Deserializers.radioSelector(element, data);
        }
        return false;
    },

    inputSelector: function(element, data) {

		
		
			
			var name = element.name;
			var radiobuttons = Form.getInputs(element.form, 'checkbox', element.name);
			for(var i = 0, len = radiobuttons.length; i < len; i++) {
				var radiobutton = radiobuttons[i];
				if(radiobutton.value == data)
					radiobutton.checked = true;
			}
		
    },

    radioSelector: function(element, data) {
        var name = element.name;
        var radiobuttons = Form.getInputs(element.form, 'radio', element.name);
        for(var i = 0, len = radiobuttons.length; i < len; i++) {
            var radiobutton = radiobuttons[i];
            if(radiobutton.value == data)
                radiobutton.checked = true;
        }
    },

    textarea: function(element, data) {

       
		if (element.id == 'SearchDate')
        {
			
			var SearchDate1 =  new Date($('SearchDate1').value);
			var SearchDate =  new Date(data.replace(/x/g,''));
			var milli_d1 = SearchDate1.getTime();
			var milli_d2 = SearchDate.getTime();
			var Sediff = (milli_d2 - milli_d1) / 1000;
			if (Sediff < 0)
			{
				element.value = SearchDate1;
				$('Current_Page').value = 1;
			}
			else if (Sediff > 600)
			{
				element.value = SearchDate1;
				$('Current_Page').value = 1;
			}
			else
			{
				element.value = data;
			}


        }
		else
			element.value = data;
    },

    select: function(element, data) {
        return Form.Element.Deserializers[element.type == 'select-one' ?
            'selectOne' : 'selectMany'](element, data);
    },

    selectOne: function(element, data) {
        element.value = data;
    },

    selectMany: function(element, data) {
		if(data instanceof Array) {
            for(var k = 0, len = data.length; k < len; k++) {
                for(var i = 0, len = element.options.length; i < len; i++) {
    		        var op = element.options[i];
                    if(op.value == decodeURIComponent(data[k])) {
                        op.selected = true;
                        break;
                    }
                }
            }
		} else {
            for(var i = 0, len = element.options.length; i < len; i++) {
		        var op = element.options[i];
                if(op.value == decodeURIComponent(data)) {
                    op.selected = true;
                    break;
                }
            }
        }
    }

}
