

var ajax = new Ajax("/BackPage/PFBack.asp","post",cbf);
var ajaxPrms = '';



function cbf(JScode)
{
    try       { eval(JScode); }
    catch (e) { WriteMessage('<span style="color:#C00000">wystąpił błąd</span>'); }        
}
    
function addAnEvent( target, eventName, functionName ) 
{
    try {
            if ( Br.IE ) 		eval('target.on'+eventName+'=functionName');
            else                target.addEventListener( eventName , functionName , false );
        }
    catch(e) {}
}

function SendAjaxRequest()
{
    var dt = new Date();
   // alert( eval(ajaxPrms));
//    return false;
    if (sPrevAjaxParams != ajaxPrms || bShowDataRequest)
    {
        if ( dPrevAjaxTime.getTime() + 250 < dt.getTime() )
        {
            //alert( eval(ajaxPrms));
            WriteMessage('Proszę czekać...');
            ajax.sendRQ( eval(ajaxPrms) );
            dPrevAjaxTime = dt;
        }
    }
    sPrevAjaxParams = ajaxPrms;
}

function WriteMessage(sMessage)
{
    var Node = getE('AResult');
    if ( Node == null ) return;
    Node.innerHTML =sMessage
}
	
function OnChangeToleranceChck(obj, idPrmName)             //tolerance checkbox
{
    var oInput = getE('TVMIN_' + idPrmName);
    if (oInput)	oInput.disabled = !obj.checked;
    oInput = getE('TVMAX_' + idPrmName);
    if (oInput)	oInput.disabled = !obj.checked;
}
function ShowResults()
{
    bShowDataRequest = false;
    document.location.href = '?SearchType=PF' + (nIdProducer>0 ? '&MRK=' + nIdProducer /*+ '&HFilter=1'*/ : '') + (nByProd == '1' ? '&ByProd=1' : '' );
}
// -----------

function CanSendRequestResult()
{

 var i, sValue, obj;
    for (i=0; i < DataDefault.length; i++)        
    {
           if ( DataDefault[i].d == '1' )
           {
                sValue = ''; obj =  getE('prmId_'+ DataDefault[i].i);
                if (obj)
                {
                    if (obj.tagName.toLowerCase() == 'select' ) sValue = obj.options[ obj.selectedIndex ].value;
                    else                                        sValue = obj.value;
                }
                if (sValue == '') {  /*obj.focus();*/return false;}
           }
    }      
    return true;
}

function GetParamId(e)	
{	
    var src = (window.event)? window.event.srcElement : e.target;
	if (src == null) return false;
	var sId = src.id;
    return  sId.substring(sId.indexOf('_')+1, sId.length); 
}

function IsNaNex(sValue)    {   sValue = sValue.replace(',', '.'); return isNaN(sValue); }

// ----------- #BEGIN slozeni dat pro Back page (ajax)
function SetElements(id, bWithDBValues)
{
    var i = 0; 
    var nOrder = 0;
    var sDataCurrent = '';
    
    if (id == '') {SetElements(DataDefault[DataDefault.length-1].i, bWithDBValues); return;}
    ajaxPrms = '';
    
    for (i=0; i < DataDefault.length; i++)        {       if (id == DataDefault[i].i) nOrder = DataDefault[i].o;    }
    
    for (i=0; i < DataDefault.length; i++)   
    {
       var obj =  getE('prmId_'+ DataDefault[i].i);
       var chck = getE('T_' + DataDefault[i].i)
       if ( Math.floor(nOrder) < Math.floor(DataDefault[i].o) )
       {
            if (obj.tagName == 'select')       obj.selectedIndex = -1; 
            else                               obj.value = '';
            
            if (chck && DataDefault[i].s == '0') { chck.checked = false; OnChangeToleranceChck(chck,  DataDefault[i].i);}
       }
       
       sDataCurrent = sDataCurrent + (sDataCurrent=='' ? '' : ',') + ActualData(DataDefault[i],bWithDBValues);
    }
    
    ajaxPrms = '[' + ajaxPrms + ',["c",\'' +nIdCat+ '\'],["p",\'' +nIdProducer+ '\']' + (bShowDataRequest==true ? ',["r",\'' + '1' + '\']' : '' ) + ']';
}
function ActualData(Data, bWithDBValues)
{
    var sAjaxPRM = Data.i + "|||";
    
    //if (bWithDBValues) sAjaxPRM = sAjaxPRM + Data.v + "|||";
    sAjaxPRM = sAjaxPRM + Data.v + "|||";
  
    var obj;var sValue='0';var sParamValue = '';
   
    // paramValue
    sParamValue = ''; obj =  getE('prmId_'+ Data.i);
    if (obj.tagName.toLowerCase() == 'select' ) {sParamValue = obj.options[ obj.selectedIndex ].value;}
    else                                        sParamValue = obj.value;
    
    if (!bWithDBValues && sParamValue=='') return; // pro result zasilam je vyplnena data
    
    // checkbox
    obj = getE('T_' + Data.i)
    if (obj)            { sValue = ( obj.checked ? '1' : '0' ); }
    if (Data.s == '1')  { sValue = '1'; } //specialni parametr - tolerance na pozadi
    sAjaxPRM = sAjaxPRM + sValue + "|||"; 
  
    
    // tolerance value
    sValue = '0'; obj = getE('TVMIN_'+ Data.i);
    if (obj )          sValue = obj.value.replace(',', '.');
    if (isNaN(sValue) || Data.v != '') sValue = '0';
    sAjaxPRM = sAjaxPRM + sValue + "|||";    
    
    sValue = '0'; obj = getE('TVMAX_'+ Data.i);
    if (obj )          sValue = obj.value.replace(',', '.');
    if (isNaN(sValue) || Data.v != '') sValue = '0';
    sAjaxPRM = sAjaxPRM + sValue + "|||";    
  
  
  
    // paramValue
    sAjaxPRM = sAjaxPRM + sParamValue.replace(/'/g,"`") + "|||";    
    
    sAjaxPRM = sAjaxPRM + Data.h;    
    
    sAjaxPRM = '["i",\'' + sAjaxPRM + '\']'; 
    ajaxPrms =  ajaxPrms + (ajaxPrms=='' ? '' : ',') + sAjaxPRM;        
    
    
//    alert(ajaxPrms);
}
// ----------- #END slozeni dat pro Back page (ajax)

function ShowHidePFhelp(e)
{
	var nId  = GetParamId(e);
    if (getE('helpparam_'+nId) == null ) return;
    getE('helpparam_'+nId).style.top = e.clientY + topScroll()-203 + 'px';
    getE('helpparam_'+nId).style.display = ( getE('helpparam_'+nId).style.display=='block' ? 'none' : 'block');
}

// ------------------------- return from Back

function SetCombo(Data)
{
    if ( Data.length == 0 ) return false;
    
    for (var i=0; i< Data.length; i++)
    {
        var id = Data[i].i;
        SetComboValue( id, Data[i].v );
    }
}

function SetComboValue(id, sValues)
{
    var Node = getE('prmId_' + id );
    var aValues = sValues.split('|');
    if (Node == null) return;
    if ( Node.tagName.toLowerCase() != 'select' ) return;
    while (Node.childNodes.length>0)   {       Node.removeChild( Node.childNodes[0] );   }
    
    var sValuesDefault='';   
    var bByHand = 0;
    for (var i=0; i< DataDefault.length; i++)        
    {       
        if (id == DataDefault[i].i)  
        { 
            //alert(sValues+'...'+DataDefault[i].v+'...'+ DataDefault[i].h);
            CompareAndCreateOptions( DataDefault[i].v.split('|'), aValues, Node, DataDefault[i].h ); break;
        }   
    }
}

function  CompareAndCreateOptions(aValuesDefault, aValues, Node, bByHand )
{
    CreateOptionElement(Node, '', '');
    
    if (bByHand == 0) // hodnoty z  komodit -> nasypeme rucne
    {
        for (var i=0; i< aValues.length; i++)
        {
           el = document.createElement("option");
           el.text = aValues[i].replace('[','').replace(']',''); el.value = aValues[i];
           //el.onmouseover = onShowPVhelpMouse;
           //el.onkeyup = onShowPVhelpKey;
           //el.onselectstart = onX;
           
           Node.options.add(el);
        }
    }
    else
    {
        var bCreate = false;
        for (var j=0; j< aValuesDefault.length; j++)
        {
            bCreate = false;
            var sValue = aValuesDefault[j];
            for (var i=0; i< aValues.length; i++) // prochazim hodnoty z db
            {
                   
               if ( IsNaNex(sValue) ) // preddef hodnota neni cislo
               {
                  //if (Node.id == 'prmId_101') alert('preddef hodnota neni cislo:'+ aValues[i] + "==" +  sValue );
                  if ( aValues[i] == sValue ) {bCreate = true; break;}
               }
               else
               {
                 var nValue = Math.floor(sValue.replace(',', '.'));     //preddefinovana hodnota to num
                 if ( IsNaNex( aValues[i])  )           //hodnota z db neni cislo
                 {
                    var aDB = aValues[i].split('..');
                    if (aDB.length == 2)   // hodnota z db -> interval
                    {
                        if ( IsNaNex(aDB[0]) )   // prvni hodnota v intervalu neni cislo
                        {
                            if ( sValue == aValues[i]) { bCreate = true; break; }
                        }
                        else
                        {
                            var nMIN = aDB[0].replace(',','.'); var nMAX = aDB[1].replace(',','.');
                            if ( nValue >= Math.floor(nMIN) && nValue <= Math.floor(nMAX) ) { bCreate = true;break; }
                        }    
                    }
                    else // hodnota z db neni interval
                    {
                       if ( sValue == aValues[i]) { bCreate = true; break;}
                    }
                 }
                 else
                 {
                        if ( sValue == aValues[i]) { bCreate = true;break;}
                 }
               }
            }
            if (bCreate) {/*alert('new option:' +  sValue); */ CreateOptionElement(Node, sValue, sValue); }
        }
    }
}


function CreateOptionElement(Node, sValue, sText)
{
    var el = document.createElement("option");
    el.text = sText; el.value = sValue;
    //el.onmouseover = onShowPVhelpMouse;
    //el.onkeyup     = onShowPVhelpKey;
   // el.onmouseenter = onX;
    Node.options.add(el);
}


function OnPartNumber()
{
    var bpartNumberEmpty = getE('partNumber').value == '';
    var bChecked = false;
    for (var i=0; i< DataDefault.length; i++)   
    {
       bChecked = false;
       if ( getE('prmId_'+ DataDefault[i].i) )  getE('prmId_'+ DataDefault[i].i).disabled = !bpartNumberEmpty;
       if ( getE('T_'+ DataDefault[i].i) )      { bChecked=getE('T_'+ DataDefault[i].i).checked; getE('T_'+ DataDefault[i].i).disabled = !bpartNumberEmpty; }
       if ( getE('TVMIN_'+ DataDefault[i].i) )  getE('TVMIN_'+ DataDefault[i].i).disabled = (bChecked ? !bpartNumberEmpty : true);
       if ( getE('TVMAX_'+ DataDefault[i].i) )  getE('TVMAX_'+ DataDefault[i].i).disabled = (bChecked ? !bpartNumberEmpty : true);
    }
    return bpartNumberEmpty;
}

// ------ EVENTS 
var gb_eventIdBlur = '';
var gb_eventClick  = 0;

var funBlur  = function(e) 
{ 
    var src = (window.event)? window.event.srcElement : e.target; if (src == null) return false;
    extractNumber(src,4,true);
    gb_eventIdBlur = GetParamId(e);
};

var funFocus = function(e)
{
    if (gb_eventIdBlur != '')    
    {
        cSuggest.AddSentence(getE('prmId_'+gb_eventIdBlur));
        SetElements(gb_eventIdBlur, true);
        SendAjaxRequest();
        gb_eventIdBlur = '';
        hidePVhelp();
    }
};
var funChange = function(e)
{
    gb_eventIdBlur = GetParamId(e);
    SetElements(gb_eventIdBlur, true);
    SendAjaxRequest();
    //do it...
    hidePVhelp();
};
var funClick = function(e)
{
    hidePVhelp()
    var src = (window.event)? window.event.srcElement : e.target;
	if (src == null) return false;
	var sId = GetParamId(e);
	
    if (src.tagName.toLowerCase() == 'input' && src.type.toLowerCase() == 'checkbox')
    {
        gb_eventIdBlur = sId;
        SetElements(sId, true);
        OnChangeToleranceChck( src, sId );	
        SendAjaxRequest();
    }
    else
    {
        if ( !OnPartNumber() ) { document.location.href = '/Search.asp?EXPS=' + getE('partNumber').value + '&amp;SearchType=code&amp;CatID=' + nIdCat + '&amp;MRK=' + (nIdProducer>0 ? nIdProducer /*+ '&amp;HFilter=1'*/ : '') + '&amp;Series=on' ; return true;}    
        bShowDataRequest = CanSendRequestResult();
        if (!bShowDataRequest) {alert('wpisz obowiązkowe dane'); return false;}
        SetElements('', true);
        SendAjaxRequest();
    }
};
var funKeyUP = function(e)
{
    hidePVhelp();
    var bChecked;
    var bpartNumberEmpty = getE('partNumber').value == '';
    for (var i=0; i< DataDefault.length; i++)   
    {
       bChecked = false;
       if ( getE('prmId_'+ DataDefault[i].i) )  getE('prmId_'+ DataDefault[i].i).disabled = !bpartNumberEmpty;
       if ( getE('T_'+ DataDefault[i].i) )      { bChecked=getE('T_'+ DataDefault[i].i).checked; getE('T_'+ DataDefault[i].i).disabled = !bpartNumberEmpty;}
       if ( getE('TVMIN_'+ DataDefault[i].i) )  getE('TVMIN_'+ DataDefault[i].i).disabled = (bChecked ? !bpartNumberEmpty : true);
       if ( getE('TVMAX_'+ DataDefault[i].i) )  getE('TVMAX_'+ DataDefault[i].i).disabled = (bChecked ? !bpartNumberEmpty : true);
    }
    WriteMessage('');
    return bpartNumberEmpty;
};

var funClickReset = function(e)
{
    gb_eventIdBlur='';
    WriteMessage('');
    
    getE('partNumber').value = ''; OnPartNumber();
    for (var i=0; i< DataDefault.length; i++)
    {
        if ( getE('prmId_' + DataDefault[i].i) )
        {
            if ( DataDefault[i].e == '1' )  getE('prmId_' + DataDefault[i].i).value = '';
            else                            {SetComboValue(DataDefault[i].i, DataDefault[i].v);}
            
            if ( DataDefault[i].s == '0' && DataDefault[i].tMIN == '1') 
            {
                if (getE('T_' + DataDefault[i].i)) getE('T_' + DataDefault[i].i).checked=false; 
                if (getE('TVMIN_' + DataDefault[i].i)) {getE('TVMIN_' + DataDefault[i].i).value=getE('TVMIN_' + DataDefault[i].i).defaultValue; getE('TVMIN_' + DataDefault[i].i).disabled = true;}
                if (getE('TVMAX_' + DataDefault[i].i)) {getE('TVMAX_' + DataDefault[i].i).value=getE('TVMAX_' + DataDefault[i].i).defaultValue; getE('TVMAX_' + DataDefault[i].i).disabled = true;}
                
            }
        }
    }
}

var funSuggest = function(e)
{
    var src = (window.event)? window.event.srcElement : e.target;
	if (src == null) return false;
    if (extractNumber(src,4,true))
        cSuggest.GetSentences(src);
};

var funCheckNum = function(e) 
{
     var obj = (window.event)? window.event.srcElement : e.target;
     var allowDecimal  = true;
     var allowNegative = true;
     var key,keychar, reg;
     var isCtrl = false;
     
     if (window.event){key = window.event.keyCode; isCtrl = window.event.ctrlKey;}
     else if(e.which) {key = e.which; isCtrl = e.ctrlKey;}
     
     if (isNaN(key)) return true;
     keychar = String.fromCharCode(key);
     if (key == 8 || isCtrl) return true;

     reg = /\d/;
     var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
     var isFirstD = allowDecimal ?  keychar == '.' && obj.value.indexOf('.') == -1 : false;
     if (!isFirstD)  isFirstD = allowDecimal ?  keychar == ',' && obj.value.indexOf(',') == -1 : false;
     
     return isFirstN || isFirstD || reg.test(keychar);
};



function hidePVhelp()
{
    getE('dPVhelp').style.display = 'none';
   // getE('dPVhelp_img').src = '/img/empty.gif';
}

function showPVHelp(sId)
{
    if ( getE(sId) )
    {
        getE('dPVhelp_p').style.display = 'block';
        getE('dPVhelp_img').src = '/fotocache/PFhelp/' + (getE(sId).value);
        //getE('dPVhelp').style.top = '325px';
        getE('dPVhelp').style.display = 'block';
    }
   else
        hidePVhelp();
}
function onShowPVhelpKey(e)
{
    var src = (window.event)? window.event.srcElement : e.target;
    if (src == null) return false;
   
    if (src.tagName.toLowerCase() != 'select') {hidePVhelp();return false;}
    showPVHelp('Help_' + src.id.split('_')[1] + '_' + src.value);
}

function onShowPVhelpMouse(e)
{
    var src = (window.event)? window.event.srcElement : e.target;
    if (src == null) return false;

    if (src.tagName.toLowerCase() == 'select')
    {
       showPVHelp('Help_' + src.id.split('_')[1] + '_' +  src.options[ src.selectedIndex ].value );
    }
    else if (src.tagName.toLowerCase() == 'option') 
    {
        showPVHelp('Help_' + src.parentNode.id.split('_')[1] + '_' + src.value);
    }
    else
    {
        hidePVhelp();return false;
    }
}

