 function i(id){ 
            return document.getElementById(id)
        }
        function calculate_distance(speed, time){
            return speed * time;
        }
        function calculate_time(distance, speed) {
            return distance / speed;
        }
        function calculate_speed(distance, time) {
            var speed = distance / time;
            return speed
        }
        function get_distance() {
            var form = i('calc')
            var distance_m = 0;
            for (var c = 0; c < form.distance_m.length; c++ ){
                if (form.distance_m[c].checked)
                    distance_m = form.distance_m[c].value
            }
            var distance = form.distance.value * distance_m
            if (distance > 0)
                return distance
            else
                throw("Enter distance")
 
        }
        function update_distance(el) {
            var form = i('calc')
            if (!el.value)
                return;
            var data = el.value.split('*')
            form.distance.value = data[0]
            for (var c=0; c<form.distance_m.length; c++) {
                if (form.distance_m[c].value==data[1])
                    form.distance_m[c].checked = true
            }
        }
        function get_pace_distance() {
            var form = i('calc')
            var pace_distance = 0;
            for (var c = 0; c < form.pace_distance.length; c++ ){
                if (form.pace_distance[c].checked)
                    pace_distance = form.pace_distance[c].value
            }
            if (pace_distance > 0)
                return pace_distance
            else
                throw("Enter pace distance")
 
        }
        function get_time() {
            var form = i('calc')
            var hours = parseInt(form.time_hours.value,10)
            var minutes = parseInt(form.time_minutes.value,10)
            var seconds = parseInt(form.time_seconds.value,10)
            var time = hours*3600 + minutes*60 + seconds;
            if (time > 0)
                return time
            else
                throw('Enter time')
 
        }
        function get_pace() {
            var form = i('calc')
            var hours = parseInt(form.pace_hours.value)
            var minutes = parseInt(form.pace_minutes.value)
            var seconds = parseInt(form.pace_seconds.value)
            var pace = hours*3600 + minutes*60 + seconds;
            if (pace > 0)
                return pace
            else
                throw('Enter pace')
 
        }
        function calculate(form) {
            try {
                switch (i('calc').ctype.value) {
                    case 'time':
                        set_time(calculate_time(get_distance(), calculate_speed(get_pace_distance(),get_pace())));
                        break;
                    case 'pace':
                        set_pace(calculate_time(get_pace_distance(),calculate_speed(get_distance(), get_time())));
                        break;
                    case 'distance':
                        set_distance(calculate_distance(calculate_speed(get_pace_distance(),get_pace()), get_time()));
                        break;
                    default:
                        alert('OMG')
                }
            } catch (e) {
                alert('Error:' + e);
                
            }
            return false;
        }
        function set_pace(value) {
            var form = i('calc');
            var time = []
			time.push(Math.floor(value/3600))
            value = value % 3600;
            time.push(Math.floor(value/60))
            value = value % 60;
            time.push(Math.floor(value))
            for (var c = 0; c < time.length; c++){
                if (time[c] < 10)
                    time[c] = '0'.concat(time[c])
            }
            form.pace_hours.value = time[0]
            form.pace_minutes.value = time[1]
            form.pace_seconds.value = time[2]
        }
        function set_distance(value) {
            var form = i('calc');
            var distance_m = 0;
			for (var c = 0; c < form.distance_m.length; c++ ){
                if (form.distance_m[c].checked)
                    distance_m = form.distance_m[c].value
            }
            form.distance.value = (value / distance_m).toFixed(2)
        }
        function set_time(value) {
            var form = i('calc');
            var time = []
			time.push(Math.floor(value/3600))
            value = value % 3600;
            time.push(Math.floor(value/60))
            value = value % 60;
            time.push(Math.floor(value))
            for (var c = 0; c < time.length; c++){
                if (time[c] < 10)
                    time[c] = '0'.concat(time[c])
            }
            form.time_hours.value = time[0]
            form.time_minutes.value = time[1]
            form.time_seconds.value = time[2]
        }
