<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Sponsors_model {

    function __construct()
    {
    }
	
	public function get_sponsored_results($s, $affiliate,$session, $subid='', $amazon=0)
	{
		$this->session = $session;
		if (!$s){
			return '';
		}

		if($amazon == 1)	// HTTP_X_FORWARDED_FOR doesn't work on Amazon servers
			$ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
		else
			$ip_address = $this->session->userdata('ip_address');

		$sponsorFeedUrl = "http://xml2.admedia.com/xml.php?affiliate=".$affiliate."&Terms=".urlencode($s)."&IP=".$ip_address."&ua=".urlencode($this->session->userdata('user_agent'))."&ref=".urlencode(($_SERVER['QUERY_STRING'] ? current_url().'?'.$_SERVER['QUERY_STRING'] : current_url()));

		if($subid){
			$sponsorFeedUrl .= "&subid=".$subid;
		}
		
		// if($this->input->cookie('cs_capt')) {
		// 	$sponsorFeedUrl = $sponsorFeedUrl.$this->input->cookie('cs_capt');
		// } else if($this->input->get('d') == 1) {
		// 	if($this->input->get('gg') != 1){
		// 		$url = '&capt=1';
		// 	} else {
		// 		$url = '';
		// 	}
		// 	if ($this->input->get('cid')) {
		// 		$url .= '&ca='.$this->input->get('cid');
		// 	}
		// 	$sponsorFeedUrl = $sponsorFeedUrl.$url;
		// }
		
		if($this->session->userdata('ip_address') == '69.75.233.134' || $this->session->userdata('ip') == '69.75.233.134' || stristr($this->session->userdata('ip_address'), '192.168.')) {
			echo '<!-- sponsorFeedUrl: '.$sponsorFeedUrl.' -->'."\n";
			echo '<!-- x-forward-ip: '.$_SERVER['HTTP_X_FORWARDED_FOR'].' -->'."\n";
		}
		
		// $this->curl->create($sponsorFeedUrl);
		// $this->curl->option(CURLOPT_TIMEOUT, 5);

		$ch = curl_init( $sponsorFeedUrl );
		curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
		curl_setopt( $ch, CURLOPT_TIMEOUT, 5 );

		$xml = curl_exec( $ch );
		curl_close( $ch );
		if($this->session->userdata('ip_address') == '69.75.233.134' || $this->session->userdata('ip') == '69.75.233.134' || stristr($this->session->userdata('ip_address'), '192.168.')) {
			echo '<!-- curl error code: '.$this->curl->error_code.' -->'."\n";
			echo '<!-- curl error string: '.$this->curl->error_string.' -->'."\n";
			echo '<!-- curl data: '.$xml.' -->'."\n";
		}
		
		$sponsorFeed = new DomDocument();
		$sponsorFeed->loadXML($xml);
		
		$listings = $sponsorFeed->getElementsByTagName('listing');

		$i = 0;
		$yahoo_extended = array("faviconurl","mrrating","mrstarlink","rank","phonenumber","adultrating","latitude","longitude","addressline1","addressline2","city","state","ziporpostal","country","distance","businessname");
		foreach($listings as $listing) {
			$result[$i]['title'] = $listing->getElementsByTagName('title')->item(0)->nodeValue;
			$result[$i]['description'] = $listing->getElementsByTagName('description')->item(0)->nodeValue;
			$result[$i]['url'] = $listing->getElementsByTagName('url')->item(0)->nodeValue;
			$result[$i]['redirect'] = $listing->getElementsByTagName('redirect')->item(0)->nodeValue;
			$result[$i]['img'] = $listing->getElementsByTagName('img')->item(0)->nodeValue;
			$result[$i]['favicon'] = $listing->getElementsByTagName('favicon')->item(0)->nodeValue;
			if($listing->getElementsByTagName('price')){
				$result[$i]['price'] = $listing->getElementsByTagName('price')->item(0)->nodeValue;
			}
			foreach($yahoo_extended as $val){
				if($listing->getElementsByTagName($val)->item(0)){
					$result[$i][$val] = $listing->getElementsByTagName($val)->item(0)->nodeValue;
				}
			}
			$sitelinks = $listing->getElementsByTagName("sitelink");
			if($sitelinks){
				$l=0;
				foreach($sitelinks as $sitelink){
					if($listing->getElementsByTagName("sitetext")){
						if($listing->getElementsByTagName("sitetext")->item($l)->nodeValue){
							$result[$i]["sitetext"][] = $listing->getElementsByTagName("sitetext")->item($l)->nodeValue;
						}
					}
					if($listing->getElementsByTagName("siteurl")){
						if($listing->getElementsByTagName("siteurl")->item($l)->nodeValue){
							$result[$i]["siteurl"][] = $listing->getElementsByTagName("siteurl")->item($l)->nodeValue;
						}
					}
					$l++;
				}
			}
			$i++;
		}
		
		if(isset($result)) {
			return $result;
		} else {
			return FALSE;
		}
	}

	public function get_sponsored_results_html($s, $affiliate, $subid='', $result, $start=0, $end=10, $show_images=0, $show_imagesnolink=0)
	{
		if (!$s){
			return '';
		}
		if(!(is_array($result) && count($result)>0)){
			return '';
		}
		$html = <<<EOF
		<style type="text/css">

/* Colors */
.yh-ad, .yh-ad .yh-desc a, .yh-desc a:hover, .yh-reviews {
	color: #000;
}
.yh-ad a {
	color: #2c46c7;
}
.yh-ad a:hover {
  color: #dd4d31;
}
.bg-color {
	background-color: rgb(250, 250, 255);
}
.yh-related {
	color: #5f5f5f;
}
.yh-ad .yh-related a {
  color: #5f5f5f;
}
.yh-title, .yh-title a {
	color: #2c46c7
}
.yh-ad em .yh-url {
  color: #1b6f75;
}
.yh-ad em .yh-url:hover {
	border-bottom: 1px solid #1b6f75;
}
.yh-sitelinks-grid p {
    color: #888;
}
.yh-more-sponsors h2 {
	color: #5f5f5f;
}
.yh-official {
    background-color: #88a2c5;
    color: #fff;
}
/* End Colors */

 .yh-ad {
  font-family: Arial,Helvetica,sans-serif;
  padding-top: 10px;
}
.yh-ad a {
	text-decoration: none;
}
.yh-related {
	display: block !important;
	float: none;
	font-size: 13px;
	font-weight: normal;
	margin: 0;
	padding: 4px 0 7px 10px;
	text-align: left;
}
.yh-ad .yh-related a {
  font-size: 13px;
  font-weight: normal;
}
.yh-related a:hover {
    text-decoration: underline;
}
.yh-ul {
  padding: 6px 10px;
  margin: 0;
  list-style: none outside none;
}
.yh-title, .yh-title a {
	text-decoration: underline;
	font-size: 16px;
}
.yh-icon {
    height: 16px;
    margin-right: 3px;
    position: relative;
    top: 3px;
    width: 16px;
	border: 0 none;
}
.yh-ad em .yh-url {
  font-size: 14px;
  font-style: normal;
  font-weight: bold;
  margin-right: 5px;
}
.yh-img-wrap {
    width: 100%;
	display:block;
}
.yh-ul li {
  margin-bottom: 30px;
}
.yh-img {
  display: block;
  float: right;
  height: auto;
  margin-top: 2px;
  overflow: hidden;
  position: relative;
  width: 48px;
}
.yh-img img {
  height: 48px;
  vertical-align: top;
  width: 48px;
  border: 0 none;
}
.yh-desc {
  margin-top: 1px;
}
.yh-desc a {
  font-size: 13px;
  text-decoration: none;
}
.yh-desc a:hover {
	text-decoration: underline;
}
.yh-sitelinks-wrap {
    margin-top: 5px;
    overflow: hidden;
    width: 100%;
}
.yh-sitelinks-grid:after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
}
.yh-sitelinks-grid .left {
    min-width: 190px;
}
.yh-sitelinks-grid .left, .yh-sitelinks-grid .right {
    display: inline;
    float: left;
    margin-left: 20px;
    overflow: hidden;
}
.yh-sitelinks-grid p {
    display: inline;
    float: left;
    font-size: 13px;
    text-align: left;
	margin: 0px;
	padding: 0px;
}
.yh-sitelinks-grid p a {
    text-decoration: underline;
    font-size: 14px;
    line-height: 21px;
}
.yh-more-sponsors {
    font-family: helvetica neue,helvetica,arial,sans-serif;
    font-size: 13px;
    margin: 3px 0 0;
    padding: 0 10px 10px;
}
.yh-more-sponsors h2 {
    padding: 0 4px 8px 0;
	display: block !important;
    font-size: 13px;
    font-weight: normal;
    margin: -2px 0 0;
	float: left;
	text-align: right;
    text-decoration: none;
	height: 15px;
}
.yh-more-sponsors ul {
    margin: 0;
    overflow: hidden;
    padding: 0;
	list-style: none outside none;
}
.yh-more-sponsors ul li {
    margin-top: -2px;
	margin-bottom: 0;
	display: inline-block;
    float: left;
    font-size: 100%;
	margin-right: 5px;
	padding: 0;
}
.yh-more-sponsors ul li a {
    font-size: 100%;
	text-decoration: underline;
}
.yh-rating {
	cursor: auto;
	padding-left: 0;
}
.yh-stars-wrap {
    cursor: auto;
    margin-right: -1px;
    position: relative;
    white-space: nowrap;
}
.yh-stars-wrap span {
	background-image: url('data:image/png;base64,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');
    background-position: 0 0;
    background-repeat: no-repeat;
    background-size: 44px 15px;
    display: inline-block;
    height: 14px;
    position: relative;
    top: -3px;
    vertical-align: middle;
    width: 14px;	
}
.yh-half {
	background-position: -15px 0 !important;
}
.yh-empty {
	background-position: -30px 0 !important;
}
.yh-reviews {
    padding-left: 4px;
    font-size: 13px;
	cursor: auto;
}
.yh-official {
    border-radius: 2px;
    display: inline-block;
    font-size: 13px;
    line-height: 15px;
    margin-top: 3px;
    padding: 0 3px;
    vertical-align: baseline;
}
.yh-clr {
	display:block;
	clear:both;
	margin: 0;
	padding: 0;
}
</style>
EOF;

$html .= '<div class="yh-ad bg-color">
  <h5 class="yh-related">Ads related to <b>'.$s.'</b></h5>
  <ul class="yh-ul">';
	for($i=$start; $i<$end; $i++){
		if($result[$i]['redirect'] && $result[$i]['title']){
			if(isset($result[$i]['faviconurl']) && $result[$i]['faviconurl']!=""){
				$favicon = $result[$i]['faviconurl'];
			} elseif(isset($result[$i]['favicon']) && $result[$i]['favicon']!="") {
				$favicon = $result[$i]['favicon'];
			} else {
				$favicon = "";
			}
			$html .= '<li class="res sitelink last nrthImg bgclickable" style="cursor: pointer;"><div class="yh-img-wrap">';
			if($show_imagesnolink){
				$html .= '<img src="'.$result[$i]['img'].'">'; 
			} elseif($show_images){
				$html .= '<a target="_blank" class="yh-img" href="'.$result[$i]['redirect'].'"><img src="'.$result[$i]['img'].'"></a>';
			}
			$html .= '<div class="yh-title"><a target="_blank" href="'.$result[$i]['redirect'].'">'.$result[$i]['title'].'</a></div>';
			$html .= '<em>';
			if($favicon){
			$html .= '<img class="yh-icon" src="'.$favicon.'" id="yui_3_10_0_1_1408661686035_767">';
			}
			$html .= '<a target="_blank" class="yh-url" href="'.$result[$i]['redirect'].'">'.$result[$i]['url'].'</a></em>';
			$html .= '<span class="yh-official">Official Site</span>
			<!--
			<div class="yh-rating"><span class="yh-stars-wrap"><span></span><span></span><span></span><span class="yh-half"></span><span class="yh-empty"></span></span><span class="yh-reviews">2,902 reviews for cars.com</span></div>
			-->
			<div class="yh-desc"><a target="_blank" href="'.$result[$i]['redirect'].'">'.$result[$i]['description'].'</a></div>';
			$html .= '<div class="yh-sitelinks-wrap">';
			if(is_array($result[$i]['sitetext']) && count($result[$i]['sitetext'])>0){
				$html .= '<div class="yh-sitelinks-grid"><div class="left">';
				for($j=0; $j<3; $j++){
					  $html .= '<p><a target="_blank" href="'.$result[$i]['siteurl'][$j].'">'.$result[$i]['sitetext'][$j].'</a></p><br>';
				}
				$html .= '</div><div class="right">';
				for($j=3; $j<6; $j++){
					  $html .= '<p><a target="_blank" href="'.$result[$i]['siteurl'][$j].'">'.$result[$i]['sitetext'][$j].'</a></p><br>';
				}
				$html .= '</div></div>';
			}
			$html .=  '</div>';
			$html .= '<div class="yh-clr"></div>';
			$html .= '</div></li>';
		}
	}
	$html .= '</ul></div>';
		if($html){
			return $html;
		} else {
			return FALSE;
		}
	}
}