function ffDate(date) {
	date = date.replace(/january /i, '01/');
	date = date.replace(/february /i, '02/');
	date = date.replace(/march /i, '03/');
	date = date.replace(/april /i, '04/');
	date = date.replace(/may /i, '05/');
	date = date.replace(/june /i, '06/');
	date = date.replace(/july /i, '07/');
	date = date.replace(/august /i, '08/');
	date = date.replace(/september /i, '09/');
	date = date.replace(/october /i, '10/');
	date = date.replace(/november /i, '11/');
	date = date.replace(/december /i, '12/');
	date = date.replace(/, 20/i, '/');
	return date;
}

function uc_couponWidgetCallback(params, coupons) {
	var l = document.getElementById('uc-wl' + params.wid);
	if (!l) {
		alert('Missing or incorrect UltimateCoupons links. Please check code sample at: http://www.ultimatecoupons.com/widget.html')		
		return;
	}
	if ((l.href.indexOf('ultimatecoupons.com') == -1) || (l.innerHTML != 'UltimateCoupons.com')) {
		alert('Missing or incorrect UltimateCoupons links. Please check code sample at: http://www.ultimatecoupons.com/widget.html')		
		return;
	}	
	var sidt;
	if (params.sid) {
		 sidt = params.sid;
	} else {
		 sidt = document.domain.replace(/www./i, "");
		 sidt = sidt.substring(0,sidt.indexOf('.'));
	}
	if (params.clink) {
		document.getElementById('uc-clink' + params.wid).href = params.clink;		
	}
	if (params.clinkl) {
		document.getElementById('uc-clink' + params.wid).innerHTML = params.clinkl;		
	}
	var container = document.getElementById('uc-coupons' + params.wid);
	if (!container) return;
	function _row_from(i, d) {
		var trackp = (d.affp) ? '&' + d.affp + '=' + sidt : '';
		var merc = '';
		var cid = 'uc-ccode' + params.wid + '_' + (i + 1);
		if (params.type != 'm') { 
			merc = d.merc ? '<br /><b>' + d.merc + '</b>' : '';
		}
		var sClass = (i % 2) ? 'even' : '';
		if (params.ly == 'div' || params.ly == 'divs') {
			var llink = 'http://www.ultimatecoupons.com' + d.url + trackp;
			merc = (d.merc) ? '<div class="uc-cmerc"><a href="' + llink + '">' + d.merc + '</a></div>' : '<div class="uc-coffer">&nbsp;</div>';
			var doffer = '<div class="uc-cdesc"><a href="' + llink + '">' + d.title.replace('<br>', '') + '</a></div>';
			var code = (d.code) ? '<div class="uc-ccode"><a href="' + llink + '">' + d.code + '</a></div>' : '<div class="uc-ccode">&nbsp;</div>';
			var expiry = (d.expiry) ? '<div class="uc-cexp">' + ffDate(d.expiry) + '</div>' : '<div class="uc-cexp">&nbsp;</div>';
			return '<div class="ucw-coupon ' + sClass +'">' +
						merc +
						doffer +
						code +	
						expiry +
				   '</div>';			
		} else {	
			var expiry = (d.expiry) ? '<br /><small>Valid through: ' + d.expiry + '</small>' : '';
			var code = (d.code) ? '<span class="uc-ccode' + params.wid + '" style="display:none;" id="' + cid + '"><br />CODE: ' + d.code + '</span>' : '<span class="uc-ccode' + params.wid + '" style="display:none;" id="' + cid + '"></span>';
			return '<div class="ucw-coupon ' + sClass +'"><a onclick="javascript:document.getElementById(\'' + cid + '\').style.display = \'inline\';" target="_blank" href="http://www.ultimatecoupons.com' +
				d.url + trackp + '">' + d.title.replace('<br>', '') + ' ' + code + '</a>' + expiry + merc + '</div>'; 
		}	
	}		
	var s = '<h1>' + params.title + '</h1>';
    if (!coupons.length) {
    	s += '<div class="uc-nc">No coupons at the moment</div>';
    } else {	
    	if (params.ly == 'div' || params.ly == 'divs') {
    		s+= '<div class="uc-ctlabels"><div class="uc-ctmerc">Store</div>' +
    		    '<div class="uc-ctdesc">Description</div>' + 
    		    '<div class="uc-ctcode">Code</div>' +
    		    '<div class="uc-ctexp">Expires</div></div>';
    	}	
    	for(var i=0; i<coupons.length; ++i) {
        	if (coupons[i].title) {
        		if (coupons[i].title.indexOf('src=') == -1) {
        			s += _row_from(i, coupons[i]);        			
        		}
        	}
        }
    	
    }
    container.innerHTML = s;	
}

(function() {
	// Initialize widget
	var scripts = document.getElementsByTagName('script');
	var params, hashes, hash, rUrl, contId;
	for (var x=0; x<scripts.length; x++) {
	    var src = scripts[x].src;
	    if (src.indexOf('uc-widget.js') !== -1) {
	    	params = [];
	    	hashes = src.slice(src.indexOf('?') + 1).split('&');
	    	for (var y=0; y<hashes.length; y++) {
	            hash = hashes[y].split('=');if (params.layout) ly = params.layout; 
	            params[hash[0]] = hash[1];
	    	}
	    	contId = 'uc-coupons' + params.wid;
	    	if (!document.getElementById(contId)) {
	    		// Container
	    		var cDiv = document.createElement('div');
	    		cDiv.id = contId;
	    		scripts[x].parentNode.insertBefore(cDiv, scripts[x]);
	    		// Styles
	    		var tc = '2f3192';	    		
	    		var fgc = '111111';
	    		var bgc = 'fff799';
	    		var bs = 'double';
	    		var bw = '3px';
	    		if (params.tc) tc = params.tc;
	    		if (params.fgc) fgc = params.fgc;
	    		if (params.bgc) bgc = params.bgc;
	    		if (params.bw) bw = params.bw;
	    		if (params.bs) bs = params.bs;	   
	    		var styles = '#' + contId + ' {'
		    		+ '  padding:1em 1em .25em 1em;'
		    		+ '  background-color:#' + bgc + ';'
		    		+ '  font-size:1em;'
		    		+ '  border:' + bw + ' ' + bs + ' #' + fgc + ';'
		    		+ '  color: #' + fgc  + ';'
		    		+ '	 white-space: pre-wrap;'
		    		+ '	 white-space: -moz-pre-wrap;'
		    		+ '	 white-space: -pre-wrap;'
		    		+ '	 white-space: -o-pre-wrap;'
		    		+ '	 word-wrap: break-word;'
		    		+ '  line-height: 1.2em;'
		    		+ '}'
		    		+ '#' + contId + ' h1 {'
		    		+ '	 margin:0 0 10px 0;'
		    		+ '	 padding:0;'
		    		+ '	 font-size:1.5em;'
		    		+ '	 color: #' + tc + ';'		    		
		    		+ '}'
		    		+ '#' + contId + ' div {'
		    		+ '	 padding-bottom:0.5em;'
		    		+ '}'
		    		+ '#' + contId + ' a {'
		    		+ '	 color: #' + fgc + ';'
		    		+ '}'
		    		+ '.uc-flabel' + params.wid + ' {'
		    		+ '	 font-size:0.7em;'
		    		+ '  font-weight:bold;'
		    		+ '  text-align:center;'
		    		+ '	 padding-top:0.3em;'
		    		+ '}'
		    		+ '.uc-flabel' + params.wid + ' a,'
		    		+ '.uc-flabel' + params.wid + ' a:visited {'
		    		+ '}'
		    		+ '.uc-ccode' + params.wid + ' {'
		    		+ '  font-weight:bold;'
		    		+ '}'
		    		;
		    	var style  = document.createElement('style');
		    	style.type = 'text/css';
		    	document.getElementsByTagName('head')[0].appendChild(style);
		    	if(style.styleSheet) {
		    		style.styleSheet.cssText = styles;
		    	} else {
		    		style.appendChild(document.createTextNode(styles));
		    	}	    		
	    		break;	    		
	    	}
	    }    
	}	
			
	// Prepare and make the request
	var count = 3;
	if (params.c) count = params.c;
	rUrl = 'http://www.ultimatecoupons.com/merchant-coupons-json/merchant.htm?c=' + count;
	if (params.wid) rUrl += '&wid=' + params.wid;
	if (params.sid) rUrl += '&sid=' + params.sid;
	if (params.mid) {
		rUrl += '&merchant_id=' + params.mid;
	} else {
		if (params.cid) {
			rUrl += '&category_id=' + params.cid;			
		}
	}
	if (params.dlc) rUrl += '&dlc=' + params.dlc;
	if (params.layout) rUrl += '&ly=' + params.layout;
	var s = document.createElement('script');
    s.src = rUrl;
    document.getElementsByTagName('head')[0].appendChild(s);		
})();