// anatomyads.com/javascripts/api.js
// 

if (!Anatomy) {
	/******************************************
	 * Anatomy 
	 * 
	 */
	 
  	try{var x = ANATOMY_BASE_URL;}
  	catch(e){alert("ANATOMY_BASE_URL is undefined");}
  	
	var Anatomy = {
		THUMB_URL:ANATOMY_BASE_URL,
		PANEL_URL:ANATOMY_BASE_URL + "/content/panel.js",
		DEFAULT_IMG: ANATOMY_BASE_URL + "/widget/aa.png", 
		CSS_URL: ANATOMY_BASE_URL + "/widget/widget.css",
		REDIRECT_URL:ANATOMY_BASE_URL + "/content/redirect",
		SPONSOR_URL:ANATOMY_BASE_URL + "/content/sponsors/"
	}
	
	Anatomy.$ = function(id) {if (document.getElementById(id)) {return document.getElementById(id)} return null;}
	Anatomy.Util = {
		script:function(path,params) { 
			path += "?" + params
			var head=document.getElementsByTagName("head")[0];
			var script=document.createElement("script");
			script.type = "text/javascript";
			script.src = path + "&b=" + this.bust();
			head.appendChild(script);			
			
		},
		
       css:function() {
            var h = document.getElementsByTagName("head")[0];         
            var css = document.createElement('link');
            css.type = 'text/css';
            css.rel = 'stylesheet';
            css.href = Anatomy.CSS_URL + "?b=" + this.bust();
            css.media = 'screen';
            h.appendChild(css);    
        },		
		bust:function() {
			return Math.random()*10000000000000000;			
		},
		link:function(text, url, klass, id) {
			var t = []
			t.push("<a href=\"")
			t.push(url)
			t.push("\" id=\"")
			t.push(id)			
			t.push("\" class=\"")
			t.push(klass)
			t.push("\">")
			t.push(text)				
			t.push("</a>")
			return t.join("")			
		},
		img:function(src) {
			var args = arguments;
			// src = args[0]
			var style = (args[1]) ? args[1] : ""
			var t = []
			t.push("<img src=\"")
			t.push(src)
			t.push("\" border=\"0\" style=\"");
			t.push(style)
			t.push("\" />");
			return t.join("")			
		},
		display:function(el, style) {
			var id = el.id
			var title = document.getElementById(id + '_title');
			var url = document.getElementById(id + '_url');
			title.style.display=style;
			url.style.display=style;
		},
		
		// TODO: reverse the order of this later and put production ontop...
		subdomain:function(sub, domain){
			domain = domain.toLowerCase();
			if (domain.indexOf('/beta.') > 0) {
				domain = domain.replace(/\./,"-"+ sub +".")
			} else if (domain.indexOf('/dev.') > 0) {
				domain = domain.replace(/\./,"-"+ sub +".")
			} else if (domain.indexOf('localhost:') > 0) {
				domain = domain.replace(/localhost\:/,"localhost-"+ sub +":")
			} else if (domain.indexOf('//anatomyads.com') > 0) {
				domain = domain.replace(/anatomyads/, sub + ".anatomyads")
			} else if (domain.indexOf('www.anatomyads.com') > 0) {
				domain = domain.replace(/www/, sub)
			}
			return domain;
		}
	};
	
	Anatomy.Session = {
		//domain:window.location.host,
		write:function (name,value,days,domain) {
			if (days) {
				var date = new Date();
				date.setTime(date.getTime()+(days*24*60*60*1000));
				var expires = "; expires="+date.toGMTString();
			}
			else var expires = "";
			document.cookie = name+"="+value+expires+"; path=/" //"; domain=" + domain;
		},

		read:function (name) {
			var nameEQ = name + "=";
			var ca = document.cookie.split(';');
			for(var i=0;i < ca.length;i++) {
				var c = ca[i];
				while (c.charAt(0)==' ') c = c.substring(1,c.length);
				if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
			}
			return null;
		},
		
		del:function(name) {
			this.write(name,"",-1);
		}
		
	}
	if (!Anatomy.Session.read('sid')) {
		Anatomy.Session.write('sid',Anatomy.Util.bust(),365,"")
	}

	Anatomy.Widget = {};
	Anatomy.Widget.sponsor = function(args) {
		return this.init(args);
	}
	
	Anatomy.Widget.sponsor.prototype = {
		id:null, // load interval id
		panels:null,
		args:null,
		uri:null,
		layout:'vertical',
		init:function(args){
            this.uri = (args.content_path==undefined) ? window.location.href : ('http://' + Anatomy.account.site.replace('-profile-widget', '.profile.widget') + args.content_path);
            this.args = args;
            if (this.args.layout!=undefined){
                arg = (this.args.layout=='v' || this.args.layout=='s' || this.args.layout=='h') ? this.args.layout : "h";
                if (arg == 's') {this.layout = "square";} else if(arg=='v') {this.layout = "vertical";} else {this.layout = "horizontal";}
            }
			// overwrite some of the default paths with our new ones...
			Anatomy.CSS_URL = Anatomy.Util.subdomain('css', Anatomy.CSS_URL)

            this.load();
            return this;
		},
        
		load:function() {
			// alert("load script")
			var path = Anatomy.PANEL_URL;
			var params = "uri=" + escape(this.uri);
			Anatomy.Util.css();
			Anatomy.Util.script(path,params);
		},

		loaded:function() {
			// setinterval to check if panel is present...
		},
		build:function() {
			var campaigns = this.panels.campaigns;
			var ids = this.panels.sponsors_ids;
			var el = Anatomy.$(this.args.inject)
			var t = []; var campaign ={}; var id=null; var img = ""; var href = ""; var uri="";
			var len = campaigns.length;

			t.push("<div id=\"aa_panel\">")
				t.push("<div id=\"aa_header\"")
				t.push(" class=\"")
    			t.push(this.layout)
    			t.push("\">")
        		t.push("<a href=\"http://anatomyads.com/\">&nbsp</a>")
        		t.push("</div>")
        		
    			t.push("<div id=\"aa_matrix\"") 
    			t.push(" class=\"")
    			t.push(this.layout)
    			t.push("\">")
    			for (var i=0; i < len;i++){ // content_sponsors...
    				campaign = campaigns[i];
    				id = ids[i];
    				img = Anatomy.Util.img(Anatomy.Util.subdomain('img' + (i+1), Anatomy.THUMB_URL) + campaign.image_url);
    				href = Anatomy.REDIRECT_URL + "?r=" + escape(campaign.url) + "&sponsor_id=" + id
    			    t.push("<div class=\"ad\" id=\"aa_sponsor_")
    			    t.push(id)
    			    t.push("\" onmouseover=\"Anatomy.Util.display(this, 'block')\" onmouseout=\"Anatomy.Util.display(this, 'none')\">")
        				t.push(Anatomy.Util.link(campaign.title, href, 'title', 'aa_sponsor_' + id + '_title'))
        				t.push(Anatomy.Util.link(campaign.domain, href, 'url', 'aa_sponsor_' + id + '_url'))
        				t.push(Anatomy.Util.link(img, href, '', ''))
    				t.push("</div>")
    			}

			if (len < 4) { // site_sponsors...
				ub = (4 - len);
				img = Anatomy.Util.img(Anatomy.Util.subdomain('img4', Anatomy.DEFAULT_IMG));
				href = Anatomy.SPONSOR_URL+Anatomy.request.content_id;
                for (var i=0; i < ub;i++){
                    t.push("<div class=\"ad\" id=\"aa_default_")
                    t.push(i)
                    t.push("\" onmouseover=\"Anatomy.Util.display(this, 'block')\" onmouseout=\"Anatomy.Util.display(this, 'none')\">")                   
                    t.push(Anatomy.Util.link("Your Sponsor Goes Here! Sponsor this page now for as little as $1 a month.", href, 'title', 'aa_default_' + i + '_title'))
                    t.push(Anatomy.Util.link("anatomyads.com", href, 'url', 'aa_default_' + i + '_url'))
                    t.push(Anatomy.Util.link(img, href, '', ''))
                    t.push("</div>")                    
                }        
                // campaigns = this.site_panel.campaigns;
                // ub = (campaigns.length < ub) ? campaigns.length : ub
                // ids = this.site_panel.ads_ids;
                // for (var i=0; i < ub;i++){
                //  campaign = campaigns[i];
                //  id = ids[i];
                //  img = Anatomy.Util.img(Anatomy.THUMB_URL + campaign.image_url);
                //  href = Anatomy.REDIRECT_URL + "?r=" + escape(campaign.url) + "&ad_id=" + id
                // 
                //     t.push("<div class=\"ad\">")
                //                      t.push(Anatomy.Util.link(campaign.title, '#', 'title'))
                //                      t.push(Anatomy.Util.link(campaign.url, '#', 'url'))
                //                      t.push(Anatomy.Util.link(img, href, ''))
                //                  t.push("</div>")
                // }        
			}
			
			

			t.push("</div>")
			
   			t.push("<div id=\"aa_footer\"")
			t.push(" class=\"")
			t.push(this.layout)
			t.push("\">")
			t.push(this.sponsor_link());
        	t.push("</div>")			
			t.push(this.tracking_img());
			t.push("</div>")
			el.innerHTML = t.join("");
		},	
		sponsor_link:function() {
			var url = Anatomy.SPONSOR_URL+Anatomy.request.content_id;
			var link = Anatomy.Util.link("&nbsp;",url, '', '')
			return link;
		},
		
		tracking_src:function() {
			var a = [];
			a.push("http://s3.amazonaws.com/adx/clear.gif?spns_ids=" + this.panels.sponsors_ids);
			a.push("ads_ids=" + this.site_panel.ads_ids);
			a.push("sid=" + Anatomy.Session.read('sid')); // remote_id
			a.push("ck=" + Anatomy.account.id); 	// customer_key
			a.push("sk=" + Anatomy.account.site); 	// site_key
			a.push("b=" + Anatomy.Util.bust());			
			return a.join('&');
		},
		
		tracking_img:function(){
			var src = this.tracking_src();
			var img = Anatomy.Util.img(src,"visibility:hidden");
			return img;			
		},
		end:function(){}
	}	
}

