Lang = new Array();
Lang["enter_valid_calc"]="Ошибка ввода!<BR>Вводите только целые числа.";

//Актуальные параметры бюстгалтера
var MAX_CHASHKA = 25;
var MIN_CHASHKA = 0;

var MIN_SIZE = 65;
var MAX_SIZE = 120;

//var MIN_BSIZE = 84;
var MIN_BSIZE = 88;
var MAX_BSIZE = 136;
 
var MIN_TSIZE = 55;
var MAX_TSIZE = 115;

var MIN_BBSIZE = 80;
var MAX_BBSIZE = 145;

var MIN_KGSIZE = 83;
var MAX_KGSIZE = 130;

var MIN_KPGSIZE = 70;
var MAX_KPGSIZE = 110;

var MIN_KBSIZE = 96;
var MAX_KBSIZE = 124;

actual_sizes = new Array ( 13, 15, 17, 19, 21, 23, 25 );
actual_sizes2 = new Array ( 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120 );

//actual_sizes3 = new Array ( 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136 );
actual_sizes3 = new Array ( 90, 94, 98, 102, 106, 110, 114, 118, 122, 126, 130, 134 );

actual_sizes4 = new Array ( 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115 );
actual_sizes5 = new Array ( 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145 );

actual_sizes6 = new Array ( 83, 85, 87, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 98, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 128, 130 );
actual_sizes7 = new Array ( 65, 70, 75, 80, 85, 90, 95, 100, 105, 110 );
actual_sizes8 = new Array ( 96, 100, 104, 108, 112, 116, 120, 124 );

kup = new Array ( 36, 38, 40, 42, 44, 46, 48, 50, 52, 54 );

ch = { 12: 'AA', 13: 'A', 15: 'B', 17: 'C', 19: 'D', 21: 'E', 23: 'F', 25: 'G' };

//Бюстгалтер грация
function obj_sizes( arr, val ) {
    f = false;
    obj = {
        border: 0,
        eq: 0
    }
    for ( i = 0; i < arr.length; i++ ) {
        if ( ( arr[i] == val ) ) {
            obj = {
                border: 0,
                eq: val,
                i: i
            }
            f = true;
            break;
        } else {
            if ( ( arr[i] < val ) && ( arr[i+1] > val ) ) {
                if ( Math.abs( arr[i] - val ) < Math.abs( arr[i+1] - val ) )  { 
                    obj = {
                        border: arr[i],
                        eq: 0,
                        i: i
                    }
                    f = true;
                    break;
                } else {
                    obj = {
                        eq: 0,
                        border: arr[i+1],
                        i: i+1
                    }
                    f = true;
                    break;
                }
            }
        }
    }
    return obj;
}

function size_1() {
    size1 = '';
    val = document.forms['fsize'].s1.value - document.forms['fsize'].s2.value;

    if ( ( val < MIN_CHASHKA ) || ( val > MAX_CHASHKA ) ) return size1;
    if ( ( document.forms['fsize'].s2.value < MIN_SIZE ) || ( document.forms['fsize'].s2.value > MAX_SIZE ) ) return size1;
    chasha = obj_sizes( actual_sizes, val );
    size = obj_sizes( actual_sizes2, document.forms['fsize'].s2.value );

    if ( chasha.border ) {
        if ( size.border ) {
            size1 = size.border+ch[chasha.border];
        } else if ( size.eq ) {
            size1 = size.eq+ch[chasha.border];
        }
    } else if ( chasha.eq ) {
        if ( size.border ) {
            size1 = size.border+ch[chasha.eq];
        } else {
            size1 = size.eq+ch[chasha.eq];
        }
    } else if ( val < 13 ) {
        if ( size.border ) {
            size1 = size.border+ch[12];
        } else if ( size.eq ) {
            size1 = size.eq+ch[12];
        }
    }
    
    return size1;
}

//определение размера трусиков
function pants_sizes( arr, val ) {
	obj = {
		size: 0
	}
	//перебираем массив размеров (actual_sizes3)
	for ( i = 0; i < arr.length; i++ ) {
		//если значение пользователя равно элементу массива
		if ( ( arr[i] == val ) ) {
			//то искомый размер равен введенному
			obj = {
				size: arr[i]
			}
			//тормозим цикл
			break;
		} 
		//иначе значение пользователя больше или меньше
		else {
			//если оно больше
			if ( val > arr[i] ) {
				// если разница не больше 3х, т.е. 1 или 2
				if ( (val - arr[i]) < 3 ) {
					// значит мы нашли нужный размер
					obj = {
						size: arr[i]
					}
					//тормозим цикл
					break;					
				}
				//иначе ничего не делаем - ждем следующего витка цикла
			}
			//иначе оно меньше
			else {
				// если разница составляет 1
				if ( (arr[i] - val ) == 1 ) {
					// значит мы нашли нужный размер
					obj = {
						size: arr[i]
					}
					//тормозим цикл
					break;					
				}
				//иначе ничего не делаем - ждем следующего витка цикла
			}
		}
	}
	return obj;
}

// определяем размер трусиков
function size_2() {
    size2 = '';
    // если введенный обхват бедер выходит за диапазон, то возвращаем пустое значение
    if ( ( document.forms['fsize'].s4.value < 88 ) || ( document.forms['fsize'].s4.value > 136 ) ) return size2;

	// обрабатываем нижний граничный диапазон
	if (document.forms['fsize'].s4.value == 88) {size2 = '90'; return size2;}

	// обрабатываем верхний граничный диапазон
//	if (document.forms['fsize'].s4.value < 137) {
//		if (document.forms['fsize'].s4.value > 134) {size2 = '134'; return size2;}
//	}

	s = pants_sizes( actual_sizes3, document.forms['fsize'].s4.value );
	size2 = s.size;

//    size = obj_sizes( actual_sizes3, document.forms['fsize'].s4.value );
//    if ( size.border ) {
//        size2 = size.border;
//    } else if ( size.eq ) {
//        size2 = size.eq;
//    }

	return size2;
}

//трусы корсетные
function size_3() {
    size3 = '';
    if ( ( document.forms['fsize'].s3.value < MIN_TSIZE ) || ( document.forms['fsize'].s3.value > MAX_TSIZE ) ) return size3;
    if ( ( document.forms['fsize'].s4.value < MIN_BBSIZE ) || ( document.forms['fsize'].s4.value > MAX_BBSIZE ) ) return size3;
    
    t_size = obj_sizes( actual_sizes4, document.forms['fsize'].s3.value );
    b_size = obj_sizes( actual_sizes5, document.forms['fsize'].s4.value );
    
    if ( t_size.border ) {
        if ( b_size.border ) {
            size3 = t_size.border+'-'+b_size.border;
        } else if ( b_size.eq ) {
            size3 = t_size.border+'-'+b_size.eq;
        }
    } else if ( t_size.eq ) {
        if ( b_size.border ) {
            size3 = t_size.eq+'-'+b_size.border;
        } else if ( b_size.eq ) {
            size3 = t_size.eq+'-'+b_size.eq;
        }
    }
    
    return size3;
}

//Купальник
function size_4() {
    size4='';

    if ( ( val < MIN_CHASHKA ) || ( val > MAX_CHASHKA ) ) return size4;
    if ( ( document.forms['fsize'].s2.value < MIN_SIZE ) || ( document.forms['fsize'].s2.value > MAX_SIZE ) ) return size4;
    val = document.forms['fsize'].s1.value - document.forms['fsize'].s2.value;

    chasha = obj_sizes( actual_sizes, val );
    pg_size = obj_sizes( actual_sizes7, document.forms['fsize'].s2.value );
	
    if ( chasha.border ) {
            size4 = kup[pg_size.i]+ch[chasha.border];
    } else if ( chasha.eq ) {
            size4 = kup[pg_size.i]+ch[chasha.eq];
    } else if ( val < 13 ) {
            size4 = kup[pg_size.i]+ch[12];
    }

    return size4;
}


//Проверка ввода
function check ( id ) {
    exp = /[^0-9]/i;
    //Целое ли число ввели
    if ( exp.exec(document.forms['fsize'].elements[id].value) ) {
        str = new String(document.forms['fsize'].elements[id].value);
        document.forms['fsize'].elements[id].value = str.substring(0, str.length-1);
        return false
    } 
    
    return true
}

var _error = false;

function calc( id ) {
    if ( !check( id ) ) {
    	_error = true;
    	document.getElementById('calc_warning').innerHTML="<span class='error'>"+Lang["enter_valid_calc"]+"</span>";
    } else {
    	
        flag = false;
        
        if ( document.forms['fsize'].s1.value && document.forms['fsize'].s2.value ) {
            size = size_1();
            if ( size ) {
                document.getElementById('s1_value').innerHTML = size;
            } else {
                document.getElementById('s1_value').innerHTML = '';
            }
        }
                
        if ( document.forms['fsize'].s4.value ) {
            size = size_2();
            if ( size ) {
                document.getElementById('s2_value').innerHTML = size;
            } else {
               document.getElementById('s2_value').innerHTML = size;
            }
        }
        
        if ( document.forms['fsize'].s3.value && document.forms['fsize'].s4.value ) {
            size = size_3();
            if ( size ) {
                document.getElementById('s3_value').innerHTML = size;
            } else {
                document.getElementById('s3_value').innerHTML = size;
            }
        }

        if ( document.forms['fsize'].s2.value ) {
            size = size_4();
            if ( size ) {
                document.getElementById('s4_value').innerHTML = size;
            } else {
                document.getElementById('s4_value').innerHTML = '';
            }
        }  
        
    }
}

oldValueCalc=false;
function calcAll(){
	
	$('#s1_value, #s2_value, #s3_value, #s4_value').html('');
	
	if ((_$("s1").value && _$("s2").value) || (_$("s3").value && _$("s4").value) || _$("s4").value) {
		
		_error = false;
		if (!oldValueCalc) oldValueCalc=document.getElementById('calc_warning').innerHTML;
		if (document.getElementById('calc_warning').innerHTML!=oldValueCalc) document.getElementById('calc_warning').innerHTML=oldValueCalc;
		
		calc('s1');
		calc('s2');
		calc('s3');
		calc('s4');
		
		if (_error) {
	    	$('.result').slideUp();
		}
		else {
			$('.result').slideDown();
		}
		
	}

	return false;
	
}
function _$(id){
	return document.getElementById(id);
}
function printSize(el){
	var getstr="?chest="+_$("s1").value;
	getstr+="&chestgirth="+_$("s2").value;
	getstr+="&waist="+_$("s3").value;
	getstr+="&thigh="+_$("s4").value;
	getstr+="&brassiere="+_$("s1_value").innerHTML;
	getstr+="&pants="+_$("s2_value").innerHTML;
	getstr+="&pantalette="+_$("s3_value").innerHTML;
	getstr+="&swimsuits="+_$("s4_value").innerHTML;
	el.href=el.href+getstr;
}

$(function () {

	$('.content_size input').focus(function () {
		$(this).parents('tr').addClass('clicked');
	});
	
	$('.content_size input').blur(function () {
		$(this).parents('tr').removeClass('clicked');
	});
	
});


