/*******************************************************************************
 * Equivalent of the DOM3-level function getElementsByClassName:
 * 
 * @var string  className:  class-name of the looking-for elements;
 * @var object  sourceObj:  if sourceObj is not empy looking-for required
 * elements among cild nodes of the sourceObj else - in all document;
 * 
 * @return array:   array of elements looking-for;
 */
function _getElementsByClassName(className, sourceObj)
{
    // Define object in which will search.
    sourceObj = sourceObj || document;
    
    // Get all elements in sourceObj.
    var allElems = sourceObj.getElementsByTagName('*');
    
    // Define looking-for elements store.
    var searchLst = new Array();
    
    // Looking-for required elements.
    for (i=0, cnt=allElems.length; i<cnt; i++) {
        if (allElems[i].className.indexOf(className) != -1) {
            searchLst.push(allElems[i]);
        }
    }
    
    // Renurn looking-for elements list
    return searchLst;
}

// Определение обработчиков для AJAX 
ajaxController.addHandler('loadCity', function(param, responseObj)
{
    var body = document.getElementById('city_select');
    
    body.innerHTML = responseObj.responseText;    
});    
ajaxController.addHandler('loadCost', function(param, responseObj)
{
    var body = document.getElementById('deliv_cost');
    
    body.innerHTML = responseObj.responseText;
    
    
    // Посчитать сумму
    var obj = document.getElementById('orderss');

    if (obj.getElementsByClassName) {
        obj = obj.getElementsByClassName('total_cost');
    } else {
        obj = _getElementsByClassName('total_cost', obj);
    }
    
    var totalSum = 0;
    for (i=0; i < obj.length; i++) {
        totalSum += parseFloat(obj[i].innerHTML);        
    }
                
    document.getElementById('amount').innerHTML = totalSum + parseFloat(body.innerHTML);
});

// Подтянуть список городов для выбранной страны
function countryClick(select)
{
    if (select.value == 0) {
        return false;
    }
    
    var url = 'http://kamelia-shop.com.ua/ajax?country='
            + select.value + '&r=' + Math.random();        
    ajaxController.addRequest('GET',
                              url,                              
                              null,
                              {name : 'loadCity', param : null},
                              0);
    return true;       
}

// Реакция на выбор города для доставки
function cityClick(select)
{
    if (select.value == 0) {
        return false;
    }
    
    // Получить страну и город который были выбраны
    var country = document.getElementById('country');
    var countryName = country.options[country.selectedIndex].text;
    var city = select;
    var cityName = city.options[city.selectedIndex].text; 
    
    // Прописать место доставки
    document.getElementById('dest').innerHTML = countryName + ', ' + cityName;
    
    // Прописать цену доставки
    var url = 'http://kamelia-shop.com.ua/ajax?city='
            + city.value + '&r=' + Math.random();        
    ajaxController.addRequest('GET',
                              url,                              
                              null,
                              {name : 'loadCost', param : null},
                              0);    
    return true;       
}
