var referenceID;

function e(id) {
	return document.getElementById(id);
}


function _(form_name,elem_name) {
	return document.forms[form_name].elements[elem_name];
}


function trim(string) {
	return string.replace(/(^\s+)|(\s+$)/g, "");
}


function checkForm() {
	var num_pattern = /^\d+$/;
	var bugs = '';
	if (trim(_('horse21Form', 'CityEng').value) == '') {
		bugs += please_select_a_city+"\n";
	} else {
		if (trim(_('horse21Form', 'CountryCode').value) == '') {
			bugs += incorrect_city_choice+"\n";
		} else if (trim(_('horse21Form', 'Country').value) == '') {
			bugs += incorrect_city_choice+"\n";
		}
	}
	
	if (e('advanced').style.display != 'none') {
		if ((_('horse21Form', 'star5').checked == false)&&(_('horse21Form', 'star4').checked == false)&&(_('horse21Form', 'star3').checked == false)&&(_('horse21Form', 'star2').checked == false)&&(_('horse21Form', 'star1').checked == false)&&(_('horse21Form', 'starOther').checked == false)) {
			bugs += please_select_a_hotel_class+"\n";
		}
		_('horse21Form', 'priceOt').value = trim(_('horse21Form', 'priceOt').value);
		_('horse21Form', 'priceDo').value = trim(_('horse21Form', 'priceDo').value);
		
		if (_('horse21Form', 'priceOt').value != '') {
			if (!num_pattern.test(_('horse21Form', 'priceOt').value)) {
				bugs += the_from_price_is_incorrect+"\n";
			}
		}

		if (_('horse21Form', 'priceDo').value != '') {
			if (!num_pattern.test(_('horse21Form', 'priceDo').value)) {
				bugs += the_to_price_is_incorrect+"\n";
			}
		}

	}
	
	if (bugs == '') {
		return true;
	} else {
		alert(bugs);
		return false;
	}
}


function changePriceCurrencyView() {
	var currency = e('view_currency').value;
	
	var spans = document.getElementsByTagName('span');
	for (var i=0; i<spans.length; i++) {
		if (spans[i].className == 'price_usd') {
			if (currency == 'USD') {
				spans[i].style.display = '';
			} else {
				spans[i].style.display = 'none';
			}
		} else if (spans[i].className == 'price_eur') {
			if (currency == 'EUR') {
				spans[i].style.display = '';
			} else {
				spans[i].style.display = 'none';
			}
		} else if (spans[i].className == 'price_rub') {
			if (currency == 'RUB') {
				spans[i].style.display = '';
			} else {
				spans[i].style.display = 'none';
			}
		}
	}
}


function showhide(id) {
	var obj = e(id);
	if (obj.style.display == '') {
		obj.style.display = 'none';
		e(id + '_but').innerHTML = details_text;
	} else {
		obj.style.display = '';
		e(id + '_but').innerHTML = hide_text;
	}
}


function getHotelNames(HotelNames, Pointers) {
    var hotels = e('hotel_list');
    var divs = hotels.getElementsByTagName('div');
    for (var i=0; i<divs.length; i++) {
        if (divs.item(i).className == 'hotel') {
            Pointers.push(divs.item(i));
            var as = divs.item(i).getElementsByTagName('a');
            for (var j=0; j<as.length; j++) {
                if (as.item(j).className == 'hotelName') {
                	HotelNames.push(as.item(j).innerHTML.toLowerCase());
   		            break;
                }
            }
        }
    }
}


function getHotelClasses(HotelClasses, Pointers) {
    
    var hotels = e('hotel_list');
    var divs = hotels.getElementsByTagName('div');
    for (var i=0; i<divs.length; i++) {
        if (divs.item(i).className == 'hotel') {
            Pointers.push(divs.item(i));
            var imgs = divs.item(i).getElementsByTagName('img');
            var find_class = false;
            
            for (var j=0; j<imgs.length; j++) {
                if (imgs.item(j).className == 'starsPic') {
                    var src = imgs.item(j).src;
                    var stars = src.substr(src.length-5,1);
                    HotelClasses.push(parseInt(stars));
                   	find_class = true;
                   	break;
                }
            }
            if (!find_class) {
            	HotelClasses.push(0);
            }
        }
    }
}


function getHotelPrices(HotelPrices, Pointers) {
    var hotels = e('hotel_list');
    var divs = hotels.getElementsByTagName('div');
    for (var i=0; i<divs.length; i++) {
        if (divs.item(i).className == 'hotel') {
            Pointers.push(divs.item(i));
            var h3s = divs.item(i).getElementsByTagName('h3');
            for (var j=0; j<h3s.length; j++) {
                if (h3s.item(j).className == 'price_eur') {
					var price = h3s.item(j).innerHTML;

               		HotelPrices.push(parseInt(price));
    	            break;
                }
            }
        }
    }
}


function sorting() {
    var to_sort = e('cur_sort').value;
    var sort_type = 'none';
    if (e('cur_sort_asc').value == 'true') {
    	sort_type = 'asc';
    } 
    
    var Vars = new Array();
    var Pointers = new Array();

    if (to_sort == 'hotel_name') {
        getHotelNames(Vars,Pointers);
    } else if (to_sort == 'hotel_class') {
        getHotelClasses(Vars,Pointers);
    } else if (to_sort == 'hotel_price') {
        getHotelPrices(Vars,Pointers);
    }

    for (var k=0; k<(Pointers.length-1); k++) {
        for (var i=1; i<(Pointers.length - k); i++) {
            if (((e('cur_sort_asc').value == 'true')&&(Vars[i-1] > Vars[i]))||
               ((e('cur_sort_asc').value != 'true')&&(Vars[i-1] < Vars[i]))) {

                Pointers[i].parentNode.removeChild(Pointers[i]);
                Pointers[i-1].parentNode.insertBefore(Pointers[i],Pointers[i-1]);

                var tmp = Vars[i-1];
                Vars[i-1] = Vars[i];
                Vars[i] = tmp;

                tmp = Pointers[i-1];
                Pointers[i-1] = Pointers[i];
                Pointers[i] = tmp;
			}
        }
    }
}








