<?php
class Mage_Dataflow_Model_Convert_Parser_Csv1 extends Mage_Dataflow_Model_Convert_Parser_Abstract
{
    protected $_fields;

    protected $_mapfields = array();

    public function parse()
    {
		try {
		
			// fixed for multibyte characters
			setlocale(LC_ALL, Mage::app()->getLocale()->getLocaleCode().'.UTF-8');

			$fDel = $this->getVar('delimiter', '|');
			$fEnc = $this->getVar('enclose', '');
			if ($fDel == '\t') {
				$fDel = "\t";
			}

			$vars=$this->getVars();
			$file=Mage::app()->getConfig()->getTempVarDir().'/tmp/batch_'.$this->getBatchModel()->getId().'.tmp';	
			
			//if (Mage::app()->getRequest()->getParam('files')) {
				//$file = Mage::app()->getConfig()->getTempVarDir().'/import/'
				//	.$this->getVar('filename');
				
					//. urldecode(Mage::app()->getRequest()->getParam('files'));
			//	$this->_copy($file);
			//}
		} catch (Exception $e) {
			//$this->addException(Mage::helper('dataflow')->__($e->getMessage()));
			echo $e->getMessage();
		}
		
	    $readfile = file($file);
		if ($this->getVar('has_headers', 'yes')=='yes') {
			$k=1;
		} else {
			$k=0;
		}
		
		for ($k; $k<=count($readfile)-1; $k++) {
			$readfile[$k]=ereg_replace("[\n\r]", "", $readfile[$k]);
			foreach(array_keys($vars) as $header) {	
				if($this->is_good($header)) {
					$readfile[$k] .= $fDel.$fEnc.$vars[$header].$fEnc;
					
				}
			}
			$readfile[$k]=$readfile[$k]."\n\r";
			echo $readfile[$k].'<br>';
		}

		$this->saveData($file,$readfile);
		$this->addException(Mage::helper('dataflow')->__('Successfuly extended file with Static Data.'));
		
        return $this;
    }

	private function is_good($header) {
		if ($header=='filename' || $header=='delimiter' || $header=='enclose' || $header=='has_headers') {
			return false;
		}
		
		return true;
	}
	
	public function unparse() {
	
	}
	
	private function saveData($fileName,$arr)
	{
		if($file = fopen($fileName, "w")) {
			$numElements = count($arr);
			for($i = 0; $i < $numElements; $i++)
			{
				fwrite($file, $arr[$i]);
			}
			fclose($file);

		} else {
			$this->addException(Mage::helper('dataflow')->__('Could not open file for writing'));
		}
	}
}