﻿var carCompare = [], carsToCompare = [-1,-1,-1,-1];

var t1=setTimeout("TempOnReady1();",1000);
//var t2=setTimeout("TempOnReady2();",5000);


function TempOnReady1()
{
    carSearch.init();
    if (Ext.get('cvc_PH1')) {
        carCompare[0] = new carCompareForm(1); carCompare[0].init();
        carCompare[1] = new carCompareForm(2); carCompare[1].init();
        carCompare[2] = new carCompareForm(3); carCompare[2].init();
        carCompare[3] = new carCompareForm(4); carCompare[3].init();
    }
    var str = getURLVar("choose");
    if (str != '') { carCompare[0].setValues([ {id:'asd', value:1477, text:'adsad'} ]); }
    // Call to the following function should be called by CodeBehind
    cc_InitCaptionSH();
}

//Ext.onReady(function() {
//    carSearch.init();
//    if (Ext.get('cvc_PH1')) {
//        carCompare[0] = new carCompareForm(1); carCompare[0].init();
//        carCompare[1] = new carCompareForm(2); carCompare[1].init();
//        carCompare[2] = new carCompareForm(3); carCompare[2].init();
//        carCompare[3] = new carCompareForm(4); carCompare[3].init();
//    }
//    var str = getURLVar("choose");
//    if (str != '') { carCompare[0].setValues([ {id:'asd', value:1477, text:'adsad'} ]); }
//    // Call to the following function should be called by CodeBehind
//    cc_InitCaptionSH();
//});

function ccr_Expand() {
    var _tables = Ext.DomQuery.select('.mcatalog_cmp_results/table'), _idx;
    for (_idx = 0; _idx < _tables.length; _idx++) 
        if (Ext.get(_tables[_idx]).select('caption').elements.length > 0)
            Ext.get(_tables[_idx]).removeClass('cHidden'); }

function ccr_Collapse() {
    var _tables = Ext.DomQuery.select('.mcatalog_cmp_results/table'), _idx;
    for (_idx = 0; _idx < _tables.length; _idx++) 
        if (Ext.get(_tables[_idx]).select('caption').elements.length > 0)
            Ext.get(_tables[_idx]).addClass('cHidden'); }

// Hooks each table's caption and adds a Show/Hide capabilities
function cc_InitCaptionSH() {
    var _tables = Ext.DomQuery.select('.mcatalog_cmp_results/table'), _idx;
    for (_idx = 0; _idx < _tables.length; _idx++) {
        var _caption = Ext.get(_tables[_idx]).select('caption');
        if (_caption) {
            _caption.addListener("click", function() {
                var _table = Ext.get(this);
                if (_table.hasClass('cHidden')) { _table.removeClass('cHidden'); }
                else { _table.addClass('cHidden'); }
            }, Ext.get(_tables[_idx]));
        }
    }
}

var carCompareForm = function(number) {
    var form, _ph = 'cvc_PH'+number, _nid = number,
        _manufacturer, _model, _ein;
return {
    getForm: function() { return form; },
	getValues: function(){ return { 'manufacturer':_manufacturer, 'model':_model, 'ein':_ein }; },
	setValues: function(arr){ form.setValues(arr); },
	isValid: function(){ return form.isValid(); },
	init: function() {
		Ext.QuickTips.init();

		// turn on validation errors beside the field globally
		Ext.form.Field.prototype.msgTarget = 'side';
		form = new Ext.form.Form({ labelAlign: 'left', buttonAlign: 'left' });

        _manufacturer = awCreateComboBox({ listId:73, id: _ph+'_cbManufacturer', width: 127, emptyText: 'בחר יצרן'});
        _model = awCreateComboBox({ parentName:_ph+'_cbManufacturer', id: _ph+'_cbModel', width: 127, emptyText: 'בחר שם דגם'});
        _ein = awCreateComboBox({ parentName:_ph+'_cbModel', cmdParam:'ein', id: _ph+'_cbEIN', width: 127, emptyText: 'בחר גרסה' });

        form.column({hideLabels: true, width: 127}, _manufacturer, _model, _ein);

        _model.on('select', function(sender, newValue, oldValue) {
            var carData = (new MCatalog()).getModelCarIdAndEIN(newValue.data.nodeId);
            if (carData.id) { _ein.setRawValue(carData.ein); setCarPreview(_nid, carData.id, carData.ein); }
        });
                
        _ein.on('select', function(sender, newValue, oldValue) {
            setCarPreview(_nid, newValue.data.nodeId);
        });
	    
	    form.render(_ph);
	}    
};};

function setCarPreview(nid, carId, einText) {
    var _carCompare = carCompare[nid-1].getValues();
    
    var _ul = Ext.get('cvr_PH' + nid),
        _picture = $('cvr_' + nid + '_p'),
        _manufacturer = $('cvr_' + nid + '_1'),
        _model = $('cvr_' + nid + '_2'),
        _version = $('cvr_' + nid + '_3'); // ein -> version

    _manufacturer.innerHTML = Ext.util.Format.htmlEncode(_carCompare.manufacturer.getRawValue());
    _model.innerHTML = Ext.util.Format.htmlEncode(_carCompare.model.getRawValue());
    _version.innerHTML = Ext.util.Format.htmlEncode(_carCompare.ein.getRawValue());

    carsToCompare[nid-1] = carId;
    
    if (carId == -1) { // Hide
        _ul.addClass('cHidden');
    } else { // Show
        _ul.removeClass('cHidden');
        var biz = new MCatalog();
        var imgSrc = biz.getPictureUrl(carId, 122, 86);
        //console.log(carCompare);
        _picture.src = imgSrc;
    }
}
//function removeCar(nid)
//{
//    var _ul = Ext.get('cvr_PH' + nid);
//    _ul.addClass('cHidden');
//}
function getURLVar(urlVarName) {
var urlHalves = String(document.location).split('?');
var urlVarValue = '';
if(urlHalves[1]){var urlVars = urlHalves[1].split('&');for(i=0; i<=(urlVars.length); i++){if(urlVars[i]){var urlVarPair = urlVars[i].split('=');if (urlVarPair[0] && urlVarPair[0] == urlVarName) {urlVarValue = urlVarPair[1];}}}}
return urlVarValue;
}

function compareCars() {
    var _idx = 0, _count = 0, _query = '';
    for (_idx = 0; _idx < carsToCompare.length; _idx++) {
        if (carsToCompare[_idx] != -1 && (','+_query+',').indexOf(','+carsToCompare[_idx]+',') == -1) {
            if (_count++ != 0) _query += ',';
            _query += carsToCompare[_idx];
        }
    }
    if (_count < 2) {
        alert ('יש לבחור לפחות 2 דגמים שונים לשם ביצוע השוואה');
    } else {
        location.href = "?compare=" + _query;
    }
}
var mcmvar = '';
function mcm_cb(aEl, iid){
    var commas = mcmvar.split(',').length;
    if (aEl.checked && commas == 4) { 
        alert('לא ניתן לבחור יותר מ - 4 רכבים'); 
        aEl.checked = false; return;
    }
    if ((','+mcmvar+',').indexOf(','+iid+',') == -1) { //adds to the array the clicked item
       if (mcmvar == '') mcmvar = iid;
       else mcmvar += ',' + iid;
    } else {
        var g_tmp = (','+mcmvar+',').replace(','+iid+',', ',');
        if (g_tmp.length == 0) g_r_d[fld] = '';
        else mcmvar = Ext.util.Format.substr(g_tmp, 1, g_tmp.length-2);
    }
}

var mcmCpvar = '';
function mcm_cp(aEl, iid){
    var commas = mcmCpvar.split(',').length;
    if (aEl.checked && commas == 4) {
        alert('לא ניתן לבחור יותר מ - 3 רכבים'); 
        aEl.checked = false; return;
    }
    if ((','+mcmCpvar+',').indexOf(','+iid+',') == -1) { //adds to the array the clicked item
       if (mcmCpvar == '') mcmCpvar +=iid;
       else mcmCpvar += ',' + iid;
    } else {
       var g_tmp = (','+mcmCpvar+',').replace(','+iid+',', ',');
       if (g_tmp.length == 0) g_r_d[fld] = '';
       else mcmCpvar = Ext.util.Format.substr(g_tmp, 1, g_tmp.length-2);
    }   
}

function getLink() {
    var commas = mcmvar.split(',').length;
    if (commas > 4) alert('לא ניתן לבחור יותר מ - 4 רכבים');
    else if (commas < 2) alert ('נא לבחור שני רכבים לפחות עבור ההשוואה');  
    else location.href = '/catalog.aspx?compare='+mcmvar; }

function getLinkCp() {
    var commas = mcmCpvar.split(',').length;
    if (commas > 4) alert('לא ניתן לבחור יותר מ - 3 רכבים');
    else if (commas < 2) alert ('נא לבחור רכב אחד לפחות עבור ההשוואה');  
    else location.href = '/catalog.aspx?compare='+mcmCpvar; }

var carSearch = function(){
	var form;
return {
    getForm: function() { return form; },
	getValues: function(){ return form.getValues(); },
	setValues: function(arr){ form.setValues(arr); },
	isValid: function(){ return form.isValid(); },
	seach: function() {},
	init: function() {
		Ext.QuickTips.init();

		// turn on validation errors beside the field globally
		Ext.form.Field.prototype.msgTarget = 'side';
		form = new Ext.form.Form({ labelAlign: 'left', buttonAlign: 'left' });

        var _manufacturer = awCreateComboBox({ listId:73, id: 'cbManufacturer', width: 110, label: 'חיפוש רכב', emptyText: 'בחר יצרן', allowBlank: true, clearTrigger: false });
        var _model = awCreateComboBox({ parentName:'cbManufacturer', style: 'background-color: #fff;', id: 'cbModel', width: 127, emptyText: 'בחר דגם', allowBlank: true, clearTrigger: false});
        
        form.column({width: 256});
            form.column({hideLabels: true, width: 120}, _manufacturer);
            form.column({hideLabels: true, width: 130}, _model);
	    form.end();
	    
//	    new Ext.Button('carSP_btnPH', { id:'btnCarSearch', text: 'חפש', handler: function(){
//	        if (!_manufacturer.getValue()) {
//	            Ext.MessageBox.alert('לא ניתן להריץ חיפוש', 'יש לבחור ביצרן לשם ביצוע פעולת חיפוש');
//	            return;
//	        }
//	        var _tmp = parseInt(_model.getValue());
//	        var _tags = _manufacturer.getRawValue();
//	        if (isNaN(_tmp)) { // This is a Manufacturer search
//	            window.location.href = 'catalog.aspx?q=' + _tags + '&manufacturer=' + _manufacturer.getValue() ;
//	        } else { // This is a Model search
//	            window.location.href = 'catalog.aspx?q=' + _tags + '&model=' + _tmp ;
//	        }
//	    } })
	    
	   // form.render('carSP_PH');
	}
} }();
