﻿// JScript File
//Здесь скрипты для всех используемых контролов

TourBasket = function() {

    this.requestparameters = "";
    this.costcorrecteduser = "";
}


function onDropDownItemClick(labelControl, newText, newValue, hiddenInputControl, popUpExtenderId)
{
    labelControl.innerHTML = newText;
    labelControl.title = newText;
    hiddenInputControl.value = newValue;
    var popupExtenderControl = $find(popUpExtenderId);
    popupExtenderControl.hidePopup();
}
//ListBox
function onListBoxItemClick(imageControl, clickedValue ,hiddenInputControl, selectedImageUrl, unselectedImageUrl, unselectFunction)
{
    var selectedItemsArray;
    if(hiddenInputControl.value.length > 0)
    {
        selectedItemsArray = hiddenInputControl.value.split(",");
    }
    else
    {
        selectedItemsArray = new Array();
    }
    
    for(var i=0; i<selectedItemsArray.length; i++)
    {
        if(selectedItemsArray[i] == clickedValue)
        {
            //Флажок снят
            imageControl.src = unselectedImageUrl;
            //Нужно удалить этот элемент из массива
            selectedItemsArray[i] = "";
            selectedItemsArray.sort()//Пустой элемент в начале
            selectedItemsArray.shift()//Удаляем
            hiddenInputControl.value = selectedItemsArray.join(",");
            eval(unselectFunction);
            return;
        }
    }
    //Флажок поставлен
    imageControl.src = selectedImageUrl;
    //Добавить элемент в массив
    selectedItemsArray.push(clickedValue);
    hiddenInputControl.value = selectedItemsArray.join(",");
}
function onClearSelectedClick(hiddenInputControl, tableItems, unselectedImageUrl)
{
    var img;
    for(var i=0;i<tableItems.rows.length;i++)
    {
        img = tableItems.rows[i].cells[0].firstChild;
        img.src = unselectedImageUrl;
    }
    hiddenInputControl.value = "";
}
function filterListBox(textBoxId, tableId, unselectedImageUrl)
{
    var txtInput = document.getElementById(textBoxId);
    var tblItems = document.getElementById(tableId);
    var linkControl, img;
    for(var i = 0; i < tblItems.rows.length; i++)
    {
        linkControl = tblItems.rows[i].cells[1].firstChild;
        img = tblItems.rows[i].cells[0].firstChild
        if(linkControl.innerHTML.toLowerCase().indexOf(txtInput.value.toLowerCase()) == -1 && 
            img.src == unselectedImageUrl)
        {
            tblItems.rows[i].style.display = "none";
        }
        else
        {
            tblItems.rows[i].style.display = "";
        }
    }
}


function onPopupShow(containerPanelId, waitingPanelId, priceId, operatorPriceId, accountId) {
    var containerPanel = document.getElementById(containerPanelId);
    var waitingPanel = document.getElementById(waitingPanelId);
    
    containerPanel.style.display="none";
    waitingPanel.style.display="";    
   
    var panelIds = new Array();
    panelIds[0] = containerPanelId;
    panelIds[1] = waitingPanelId;

   // ESystem.CommonServer.WebSite.Services.AjaxControlService.GetPopupContent(priceId, accountId, operatorPriceId, Succeeded, Failed, panelIds);
    ESystem.CommonServer.WebSite.Services.AjaxControlService.set_defaultSucceededCallback(
                 Succeeded,panelIds);
    ESystem.CommonServer.WebSite.Services.AjaxControlService.set_defaultFailedCallback(
                 Failed);
    ESystem.CommonServer.WebSite.Services.AjaxControlService.set_defaultUserContext(panelIds);
    
    ESystem.CommonServer.WebSite.Services.AjaxControlService.GetPopupContent(priceId, accountId, operatorPriceId); //, Succeeded, Failed, panelIds);
}

function Succeeded(result, panelIds, methodName)
{
    var containerPanel = document.getElementById(panelIds[0]);
    var waitingPanel = document.getElementById(panelIds[1]);
    
    containerPanel.style.display="";
    waitingPanel.style.display="none";
    
    containerPanel.innerHTML = result;
    
}

//Popup control
function onPopupShowEditPrice(containerPanelId, waitingPanelId, priceId, accountId,rowId,selectedCurrency,clientGridID,cellConstantCost,cellChangeCost,operatorPriceId)
{  
   
    
    var containerPanel = document.getElementById(containerPanelId);
    var waitingPanel = document.getElementById(waitingPanelId);
    
    containerPanel.style.display="none";
    waitingPanel.style.display="";    
   
    var panelIds = new Array();
    panelIds[0] = containerPanelId;
    panelIds[1] = waitingPanelId;
    panelIds[2] = rowId;
    panelIds[3] = clientGridID;
    panelIds[4] = cellConstantCost;
    panelIds[5] = cellChangeCost;


    var params = "[{ selectedCurrency=" + selectedCurrency + " } { operatorPriceId=" + operatorPriceId + " }]";
    


    ESystem.CommonServer.WebSite.Services.AjaxControlService.GetPopupContentWhithEditPrice(priceId, accountId, params, SucceededPopap, Failed, panelIds);

}
function SucceededPopap(result, panelIds, methodName,controlID)
{
       
    var containerPanel = document.getElementById(panelIds[0]);
    var waitingPanel = document.getElementById(panelIds[1]);
    
    containerPanel.style.display="";
    waitingPanel.style.display="none";
    document.getElementsByTagName 
    containerPanel.innerHTML = result;

   var costInCurrntCurrency = "0";  // document.getElementById('costInCurrntCurrency').innerHTML
   var currentCurrency = 4;  // document.getElementById('currentCurrency').innerHTML  
   var costSelected;
 
 var trList=  containerPanel.getElementsByTagName('div');
 for (var i=0; i<trList.length; i++)
{
   if (trList[i].id == "currentCostDiv")
   {
     costSelected =  trList[i].innerHTML.replace(/^\s+/, '').replace(/\s+$/, '');
   }
}
   setCellValue(panelIds[3],panelIds[2],costInCurrntCurrency,currentCurrency,costSelected,panelIds[4],panelIds[5]);
   
}
function Failed(error)
{
    alert(error._message);
}

function hidePopup(popupId)
{
    $find(popupId).hidePopup();
}
function hideModal(popupId)
{
    $find(popupId).hide();
}

//ServiceSet. Хотя здесь AJAX уж точно ни при чем...

function serviceSetChosen(serviceSetKey, serviceSetTable, chosenServiceSetDiv, hiddenInput, popupExtender)
{
    chosenServiceSetDiv.innerHTML = "<table cellpadding='0' style='width:100%' cellspacing='0'>" + serviceSetTable.innerHTML
         + "</table>";
    hiddenInput.value = serviceSetKey;
    popupExtender.hidePopup();
}

//ServiceCluster. Подгонка размеров

function setSize(chosenPanelId, panelId)
{
    var chosenPanel = document.getElementById(chosenPanelId);
    var panel = document.getElementById(panelId);
    switch(navigator.appName)
    {
        case "Opera":
            panel.style.width = chosenPanel.clientWidth + 18;
            break; 
        case "Netscape":
            panel.style.width = chosenPanel.clientWidth + 18 + "px";
        default:
            panel.style.width = chosenPanel.clientWidth - 2;
            break;
    }
}
//AddTourControl
function addTourToBasket(priceId, infoLabelId, imgClientId, addedImageUrl, parametersInstantSearch, operatorId) 
{
    var params = new Array();
    params[0] = infoLabelId;
    params[1] = imgClientId;
    params[2] = addedImageUrl;
    
    ESystem.CommonServer.WebSite.Services.AjaxControlService.AddTourToBasket(priceId,parametersInstantSearch,operatorId, addTourSuccess, Failed, params);
}

function addTourSuccess(result, params)
{
    var lblBasketInfo;
    var imgAddTour;
    if(result > 0)
    {
        lblBasketInfo = document.getElementById(params[0]);
        imgAddTour = document.getElementById(params[1]);
        lblBasketInfo.innerHTML = getTourBasketInfoStringByValue(result);
        imgAddTour.src = params[2];
        alert("Тур был добавлен в корзину");
    }
    else
    {
        alert("Тур уже находится в корзине");
    }
}
function getTourBasketInfoStringByValue(value)
{
    if(value >= 10 && value <= 20)
    {
        return value + " туров";
    }
    //первый и третий десятки
    if(value == 0 || (value % 10) >= 5)
    {
        return value + " туров";
    }
    if ((value % 10) >= 2)
    {
        return value + " тура";
    }
    //Остался только 1
    return value + " тур";
}


    
   function setCellValue(clientGridID,rowIdx,costInCurrntCurrency,currentCurrency,costSelected,cellConstantCost,cellChangeCost)
    {
      //  var clientGrid = document.getElementById(clientGridID);   
      //  clientGrid.rows[rowIdx].cells[cellConstantCost].innerHTML = costInCurrntCurrency  + currentCurrency;  
      //  clientGrid.rows[rowIdx].cells[cellChangeCost].childNodes[5].value = costSelected; 
        
         costInCurrntCurrency.id = "";
         currentCurrency.id = "";
    }


    function SendPricesToClient(grdPrices, CurrentCurrency,
                               txtAddInfo, UserEmailAddress,
                               txtEmail, copyTxtEmail, ddlCurrencies)
    {

        var priceIdsAndSetCostString;

        if (txtEmail == "") {
            alert("Не указан Email отправления");
            return;
        }
        if (isValidEmail(txtEmail, false)) {
            alert("Не указан Email отправления");
            return;
        }

        if (copyTxtEmail != "") {
            if (isValidEmail(copyTxtEmail, false)) {
                copyTxtEmail = "";
                return;
            }
        }

        var e = document.getElementById(ddlCurrencies);
        var StandardKey = e.options[e.selectedIndex].value;
        
        
        
     rowdata = jQuery("#" + grdPrices)[0];

     var params = "[";       
       for (var i = 1; i < rowdata.rows.length; i++) {
           var row = rowdata.rows[i];
           
           
           tourBasket = new TourBasket();
          
           var inputs = row.getElementsByTagName('input');
           for (var el = 0; el < inputs.length; el++) {


               if (inputs[el].type == 'text') {
                   if (inputs[el].className == 'paramsCorrectedUser')
                       tourBasket.costcorrecteduser = inputs[el].value;
               }

                
               if (inputs[el].type == 'hidden') {
                   tourBasket.requestparameters = inputs[el].value;
               }
           }

           tourBasket.currencycorrecteduser = StandardKey;
           
           var recursiveDecoded = decodeURIComponent($.param(tourBasket));
        
           
           params = params + "{";
           params = params + recursiveDecoded;
           params = params + "}";

       }
       params = params + "]";


       var txtAddInfoValue = document.getElementById(txtAddInfo).value;
       var txtEmailValue = document.getElementById(txtEmail).value;
       var copyTxtEmailValue = document.getElementById(copyTxtEmail).value;


       ESystem.CommonServer.WebSite.Services.AjaxControlService.SendPricesToClient(params, txtAddInfoValue, UserEmailAddress,
                                                                                                                   txtEmailValue, copyTxtEmailValue,
                                                                                                                   CurrentCurrency,
                                                                                                                   StandardKey,
                                                                                                                   MessageSucceeded, Failed);    
    }
    

    
    function MessageSucceeded(result, panelIds, methodName,controlID)
{
         alert(result); 
}



function isValidEmail (email, strict)
{
 if ( !strict ) email = email.replace(/^\s+|\s+$/g, '');
 return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email);
}



