@Override
	public Card parse(String name) throws URISyntaxException, 
			MalformedURLException, NoConnectionException, 
			CardNotFoundException, NoCardAvailableException 
	{
		String hyperlink = getHyperlink(name);
		
		URL url = new URL(hyperlink);
		
		HtmlPage page = null;
		
		try {
			page = client.getPage(url);
			client.closeAllWindows();
		} catch (FailingHttpStatusCodeException e) {
			client.closeAllWindows();
			throw new NoConnectionException(e.getMessage());
		} catch (IOException e) {
			client.closeAllWindows();
			throw new NoConnectionException("IOException");
		}
		
		HtmlTable table = page.getFirstByXPath("//table[@class='tabArt ']");
		
		if(table==null) throw new CardNotFoundException();
		
		List<HtmlTableRow> rows = table.getRows();
		Iterator<HtmlTableRow> iter = rows.iterator();
		iter.next();
		List<Triplet> list = new ArrayList<Triplet>();
		
		while(iter.hasNext())
		{
			HtmlTableRow row = iter.next();
			if(row.getAttribute("class").equals("clr")) break;
			HtmlElement e = row.getFirstByXPath("//td[@class='tdTitle']");
			
			if(!e.getFirstChild().getTextContent().equalsIgnoreCase(name)) continue;
			
			e = row.getFirstByXPath("//div[@class='stateNew']");
			
			HtmlElement tmp = row.getFirstByXPath("//span[@class='AviYes']");
			if(tmp == null) continue;
			int count = new Integer(tmp.getTextContent());
			if(count == 0) continue;
			
			tmp = row.getFirstByXPath("//span[@class='v']");
			int price = new Integer(tmp.getTextContent());
			
			tmp = row.getFirstByXPath("//button[@class='stateNew ']");
			
			String order = tmp.asXml();

			list.add(new Triplet(price, count, order));
		}

		if(list.isEmpty()) throw new NoCardAvailableException();
		
		return new Card(list, name, hyperlink);
	}