/**
 * @author Paweł Aleksiun
 */

$(document).ready(function(){

	var numberOfInputs = $('table#surveyTable tr.surveyRow').length;
	var i;
	
	//	zatrzymanie karuzeli jesli focus na wpisywaniu kodu - karuzela wywoluje 'click', ktory powoduje znikanie autocompletea
	$('td.name input').bind('focus', function(){$('.carousel').carouselStop();});
	
	for (i=0;i<numberOfInputs;i++) {
		
	$("#prd_name"+i).jSuggest({
		url: "viewhelper.php?id=new_client&view=surveyAutoCompletion&pos="+i,
		type: "GET",
		data: "prd_name"+i,
		autoChange: false,
		minchar:3,
		delay:1000,
		loadingImg: './public/img/in_progress4.gif',
		loadingText: 'wyszukiwanie...',
		handleSelected: function(response, iniVal)
		{
			if (response === undefined) {
				return false;
			}

			var regexp		= "{.*:.*}";
			var jsonData	= response.match(regexp);
		
			if(jsonData && jsonData.length > 0){
				jsonResp = eval("(" + jsonData + ")");
				//onsole.log(jsonResp);
			    iniVal = jsonResp.label;
				_handleSurveyAutoCompletion(jsonResp);
				//	wznowienie karuzeli
				$('.carousel').carouselStart();
			}else{
			    return false;
			}
		}
	});

	}
});

function clearPrdInfoOnPosition(pos)
{
	$('table#surveyTable input#prd_name'+pos).val('');
	$('table#surveyTable input#prd_id'+pos).val('');
	
	var jPrdPrice = $('table#surveyTable input#price'+pos);
	jPrdPrice.val('');
	removeInvalidInputMark(jPrdPrice[0]);
	
	var jPrdQty = $('table#surveyTable input#qty'+pos);
	jPrdQty.val('');
	removeInvalidInputMark(jPrdQty[0]);
}

function clearOrder()
{
	var numOfRows = $('form#nk_survey_form input#counter').val();
	
	if (numOfRows) {
		var i;
		for (i=0; i<numOfRows; i++) {
			clearPrdInfoOnPosition( i );
		}
	}
}

function _handleSurveyAutoCompletion( resp )
{
	//onsole.log( "pos: "+resp.pos+" label: "+resp.label+", prdId: "+resp.prd_id+", price: "+resp.price );
	if (resp === undefined) {
		return false;
	}
	
	var jPrdId = $('table#surveyTable input#prd_id'+resp.pos);
	
	if (jPrdId.length && resp.prd_id) {
		jPrdId.val(resp.prd_id);
		
		var ePrdN = $('table#surveyTable input#prd_name'+resp.pos);
		if (ePrdN.length && resp.prd_name) { ePrdN.val(resp.prd_name); }
		
		removeInvalidInputMark($('table#surveyTable input#prd_name'+resp.pos)[0]);
		//czyszczenie pol
		$('table#surveyTable input#qty'+resp.pos).val('').focus();
		$('table#surveyTable input#price'+resp.pos).val('');
	}
}

function _handleBeforeSurveySubmit(fid)
{//onsole.log('handleBeforeQuickSubmit ');

	var f = $('form#'+fid);
	var i;
	
	if (f.length == 0) { console.error('brak form '+fid);
		return false;
	}
	
	f = f[0];

	var numberOfInputs = $('table#surveyTable tr.surveyRow').length;
	var valid = true;
	var flagEmptyList = true;
	
	//	dla kazdej pozycji musi byc nazwa i ilosc
	for (i=numberOfInputs; i>=0; i--) {

		var prdPrice	= f['price'+i];
		var prdQty		= f['qty'+i];
		var prdName		= f['prd_name'+i];
		
		if ((prdQty && prdQty.value.length)
			|| (prdPrice && prdPrice.value.length)
			|| (prdName && prdName.value.length))
		{
			if (!prdName.value) {
				markInvalidInput(prdName);
				prdName.focus();
				valid = false;
			}
						
			flagEmptyList = false;
			//onsole.log(i+' kod: '+prdCode.value+' id: '+prdId.value+' qty: '+prdQty.value+' VALID:['+valid+']');
		}
	}
	
	if (flagEmptyList === true) {
		valid = false;
		displayDialogMsg('Wypełnij formularz', 'error');
	} else if (valid === false) {
		displayDialogMsg('Niektóre produkty lub ich ilości nie zostały poprawnie wprowadzone (sprawdź pola podświetlone na czerwono)', 'error', 10000);
	}
	
	if (valid) {
	//	wylacz przyciski wysylania i czyszczenia
		disableButton($('input#surveySubmitButton')[0]);
		disableButton($('input#surveyClearFormButton')[0]);
	}
	
	return valid;
}

function _handleAfterSurveySubmit(jsonResp)
{
	//	wlacz przyciski wysylania i czyszczenia
	enableButton($('input#surveySubmitButton')[0]);
	enableButton($('input#surveyClearFormButton')[0]);

	if (jsonResp && jsonResp.status !== undefined && jsonResp.status == 'ok') {
		clearOrder();
	}
}

function onNameChange(p)
{
	$('table#surveyTable input#prd_id'+p).val('');
	var inpn = $('table#surveyTable input#prd_name5');
	if (inpn.val() != '') {
		removeInvalidInputMark(inpn[0]);
	}
}
