<?php
//Include_files
include_once ("_dirinfo.php");
include_once (PATH_TO_ROOT."init.php");
include_once (PATH_TO_ROOT."webcati/init.php");
include_once (PATH_TO_ROOT."webcati/_ajax/buildQuestionare/class.buildQuestionnaire.php");
include_once (PATH_TO_ROOT."webcati/_ajax/ExImportData/ajax.localdataentry.php");
include_once (PATH_TO_ROOT."webcati/_forms/ExImportData/jQuery_localdataentry.php");
include_once (PATH_TO_ROOT."webcati/_forms/ExImportData/form.php");
//Values
$db->ChangeDatabase('Warpit_Webcati');
$tableName 		= $_GET['name'];
$id				= $_GET['id'];
$createQ 		= array();
$rules;
$maxSize 		=1;
$html_start='<h1>Local data entry</h1>
<h2>Navodila izpolnjevanja</h2><p>Input polja se pojavljajo avtomatično. Za napredek pri odprtih vprašanjih in multy responsih uporabite tipko <bold>CTRL</bold></p>
<fieldset>
	<legend style="font-size: 14px;">Data entry</legend>
<div id="opomba">
	Navodila za vpis forme
</div>
<div id="vprasanje">
	Vprašanje
</div>
<div id="odg">
	Odgovori
</div>
<div id="tip">
	To je tip vprašanja!!!
</div>
<form id="forma" name="forma" action="#" method="post">';
$html_end = '<input style="display:none" type="submit" value="potrdi" name="potrdi" id="potrdi" maxlength="0">
</form>
</fieldset>';

//Kličemo ajax ajax.localdataentry.php
$manipulator = new localdataentry($db, $tableName);
//if($_POST['RMcomp'] == 'grid')
//$manipulator->sort[] = 'q_pos';
//$manipulator->tableGrid = $tableName;
//$manipulator->tableTree = $tableName.'_tree';

$comm = 'select'.'Action';
if(method_exists($manipulator,$comm))
{

	$jsonString = jsonDecode($manipulator->$comm($tableName,$id));
	//Pridobivanje rows
	//var_dump($jsonString);
	$rows=($jsonString['rows']);
	for($i=0;$i<count($rows);$i++){
			$ar=array(
					"ime"	=>$rows[$i]['q_name'], 		//Ime
					"pos"	=>$rows[$i]['q_pos'],		//pozicija vprašanja
					"id"	=>$rows[$i]['id'],			//Id
					"tip"	=>$rows[$i]['tip_sql'],		//Tip vprašanja (1-4)
					"goto"	=>$rows[$i]['goto_sql'],	//Pogoji premika
					"fil"	=>$rows[$i]['fil_sql'],		//Filter in
					"con"	=>$rows[$i]['con_sql'],		//Filter out
					"vpr"	=>$rows[$i]['vpr_sql'],		//Vprašanje
					"odg"	=>$rows[$i]['odg_sql'],		//Možni odgovori
					"leg"	=>$rows[$i]['leg_sql']);	//Legend za scale
			array_push($createQ,$ar);
	}
	
	echo cretateFormQuestions($createQ, $tableName, $id);
		/*$sqlFilter = new sqlFilterInOut($createQ, "Logistika");
		$sqlFilter->createFilterArrayGoto();
		$rules = $sqlFilter->returnJsonArray();
	var_dump($rules);*/
	echo 'Ime prokjekta: '.$id.' z imenom '.$tableName.'<br>';
	var_dump($createQ);
}
else 
{
	Echo '{success:false,error:"Unknown actionž"}';	
}

/*
 *Pravila
 * filter in 	= pogoj za vstop v vprašanje (pogoji npr q1==1)
 * filter out 	= pogoj za izstop iz vprašanja (pogoji npr q2==2) 
 */
 
/*
 * jsonDecode convert to validate json string
 * */
function jsonDecode($string, $assoc=true, $fixNames=true){
  if(strpos($string, '(') === 0){
    $string = substr($string, 1, strlen($string) - 2); // remove outer ( and )
  }
  if($fixNames){
    $string = preg_replace("/(?<!\"|'|\w)([a-zA-Z0-9_]+?)(?!\"|'|\w)\s?:/", "\"$1\":", $string);
  }
  return json_decode($string, $assoc);
}

/*
 * createFormQuestion
 * @param $qArr -> podatki vprašanj projekta
 * navodila = veljavni stringi
 * */
 function cretateFormQuestions($qArr, $tableName, $id){
 	$expDiv ='<div id="explenation">
 				<h1>Dodatna pomoč pri izpolnjevanju vprašalnika</h1>
 				<div id="exp_filed"></div>
 				<div id="vpr_field"></div>
 			</div>';
 	if(is_array($qArr)&&sizeof($qArr)!=0){
 		echo '<h1>Local data entry</h1>
<h2>Navodila izpolnjevanja</h2><p>Input polja se pojavljajo avtomatično. Za napredek pri odprtih vprašanjih in multy responsih uporabite tipko <bold>CTRL</bold>. Za skok na naslednje polje
pri scale vprašanjih uporavite tipko <bold>TAB</bold>. V desnem okvirču najdete dodatna pojasnili in navodila za pravilno izpolnjevanje vprašalnika.</p>
<br><div id="progressbar">Progressbar</div>
<fieldset>
	<legend style="font-size: 14px;">Data entry</legend>
<div id="opomba">
	Navodila za vpis forme
</div>
<div id="vprasanje">
	Vprašanje
</div>
<div id="odg">
	Odgovori
</div>
<form id="forma" name="forma" action="#" method="post"> <input type="hidden" id="tableName" value="'.$tableName.'"/><input type="hidden" id="idProject" value="'.$id.'"/>';
 		for($element= 0; $element<sizeof($qArr);$element++){
 			$num 	= $element+1; //REŠIMO 0 (0+1)
 			// for scale odg = input fields
 			if($qArr[$element]['tip']== 2){
 				$scale_st	= explode('/', $qArr[$element]['odg']);
				for($m = 0; $m<sizeof($scale_st); $m++){
					$scale_m = $m+1;
					if($element == 0 && $m == 0){
						$input ='<label class="scaleLabel">'.$qArr[$element]['ime'].'</label><input type="text" value="" prikaz="true" ';
					}
					else{
						$input ='<input  style="display:none;" type="text" value=""';
					}
					$input.=	'name="'.$qArr[$element]['ime'].'"';
					$input.=	'class="scaleClass"';
					$input.=	'id="'.$qArr[$element]['ime'].'"';
					$input.=	'vpr="'.$qArr[$element]['vpr'].'"';
					$input.=	'odg="'.$qArr[$element]['odg'].'"';
					$input.=	'leg="'.$qArr[$element]['leg'].'"';
					$input.=	'tip="'.$qArr[$element]['tip'].'"';
					$input.=	navodilaReturn($qArr[$element]['odg'], $qArr[$element]['tip'], $qArr[$element]['leg'], false);
					$input.=	'num_scale="'.$num.'_'.$scale_m.'"'; 
					$input.=	'num="'.$num.'"/>';
					echo $input;
				}
 			}
			//for other tips of question
			else{
				if($element==0){
					$input ='<label>'.$qArr[$element]['ime'].'</label><input type="text" value="" prikaz="true" ';
				}
				else{
					$input ='<input  style="display:none;" type="text" value=""';
				}
				$input.=	'name="'.$qArr[$element]['ime'].'"';
				$input.=	'id="'.$qArr[$element]['ime'].'"';
				$input.=	'vpr="'.$qArr[$element]['vpr'].'"';
				$input.=	'odg="'.$qArr[$element]['odg'].'"';
				$input.=	'leg="'.$qArr[$element]['leg'].'"';
				$input.=	'tip="'.$qArr[$element]['tip'].'"';
				$input.=	navodilaReturn($qArr[$element]['odg'], $qArr[$element]['tip'], $qArr[$element]['leg'], false); 
				$input.=	'num="'.$num.'"/>';
				echo $input;
			}
			if($element==0) echo "(".navodilaReturn($qArr[$element]['odg'], $qArr[$element]['tip'], $qArr[$element]['leg'], true).")<br>";
			
 		}
		echo '<input style="display:none" type="submit" value="Submit" name="potrdi" id="potrdi" maxlength="0" num="'.++$num.'"></form>'.$expDiv.'</fieldset>';
 	}
	else return "Napačni vhodni podatki!";
 }

/*
 * Return navodila (definiranje kateri tipi so dovoljeni za odgovor!)
 * @param odg -> možni odgovori ("1 do 18/2 18-30/3 31-59/4 nad 60")
 * @param tip -> tip vprašanja (1->single response 2->scale 3->multy response 4->open 5->instruction 6->time-stamp 7->custom)
 * @param first-> če je prvi input v formi (true, false)
 * */
 function navodilaReturn($odg, $tip, $leg, $first){
 	$Rstatement= array();
	$maxLength;
 	switch ($tip) {
		 case 1:
			 //Razdelimo na / in nato na ' ' da dobimo številke!
			 $arr = explode('/', $odg);
			 for($i=0;$i<sizeof($arr);$i++){
			 	$arr2 = explode(' ', $arr[$i]);
			 	array_push($Rstatement, $arr2[0]);
			 }
			 $maxLength = strlen($arr2[0]);
			 break;
		 case 2:
			 $arr 		= explode('/', $leg);
			 $arr2		= explode('/', $odg);
			 $maxStrlen = 0;
			 for($i=0;$i<sizeof($arr);$i++){
			 	$arr3 = explode(' ', $arr[$i]);
				if(strlen($arr3[0])>$maxStrlen){
					$maxStrlen = strlen($arr3[0]); 
				}
			 	array_push($Rstatement, $arr3[0]); //add allow sibols
			 }
			 //$stVejic 	= sizeof($arr2)-1;
			 //$maxLength = sizeof($arr2)+$stVejic;
			 $maxLength = $maxStrlen;
			 break;
		 case 3:
			 $arr = explode('/', $odg);
			 for($i=0;$i<sizeof($arr);$i++){
			 	$arr2 = explode(' ', $arr[$i]);
			 	array_push($Rstatement, $arr2[0]);
				$maxLength = "*";
			 }
			 break;
		 case 4:
			 $abeceda = array ('a','b','c','č','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','š','t','u','v','z','ž','x','y','w','q',
			 'A','B','C','Č','D','E','F','G','H','I','J','K','L','M','N','O','P','R','S','Š','T','U','V','Z','Ž','X','Y','W','Q',' ',);
			 for($i=0;$i<sizeof($abeceda);$i++){
			 	array_push($Rstatement, $abeceda[$i]);	
			 }
			 $maxLength = "*";
			 break;
		 default:
			 $Rstatement = 'other';
			 break;
	 }
if($first){
	return $maxLength;
}else return 'navodila="'.implode(',', $Rstatement).'" maxlength="'.$maxLength.'"';
 }
 
?>