//ProductWiki Module
function PWModule(){
	this.product="";
	this.client="";
	this.css="";
	this.html="";
	this.error=false;
	this.section="#productwiki"
	this.api_domain="";
	this.clientdomain="";
	this.api_url="?product=%product%&client=%client%&css=%css%&html=%html%&clienturl=%clienturl%&r=%r%&summary=%summary%&proscons=%proscons%&competitors=%competitors%&details=%details%&related=%related%&comments=%comments%&interactive=%interactive%&twitter=%twitter%&socialvideo=%socialvideo%&socialphoto=%socialphoto%&clientdomain=%clientdomain%";
	this.timeout=5000;
	this.xml=null;
	this.loaded=false;
	this.controls=new PWControls();
	this.sections=new PWSections();
}
function PWControls() {
	this.tab_main=null;
	this.tab_productwiki=null;
	this.link_productwiki=null;
	this.link_main=null;
	this.main=null;
	this.productwiki=null;
	this.content=null;
}
function PWSections() {
	this.summary=true;
	this.proscons=true;
	this.competitors=true;
	this.details=true;
	this.related=true;
	this.comments=true;
}
PWModule.prototype.init = function() {
	this.controls.productwiki=document.getElementById("productwiki-main");
	this.controls.content=document.getElementById("productwiki-content");
	var random=(Math.round((Math.random()*99999)+1));
	this.api_url=this.api_domain+this.api_url;
	this.ru("product",this.product);
	this.ru("client",this.client);
	this.ru("clientdomain",this.clientdomain);
	this.ru("html",this.html);
	this.ru("css",this.css);
	this.ru("clienturl",this.clienturl);
	this.ru("r",random);
	var s=this.sections;
	this.ru("summary",s.summary);
	this.ru("proscons",s.proscons);
	this.ru("competitors",s.competitors);
	this.ru("details",s.details);
	this.ru("related",s.related);
	this.ru("comments",s.comments);	
	this.ru("interactive",this.interactive);		
	this.ru("twitter",s.twitter);	
	this.ru("socialvideo",s.socialvideo);	
	this.ru("socialphoto",s.socialphoto);	
	
	productwiki_init();	
}
PWModule.prototype.ru = function(key,value) {
	this.api_url=this.api_url.replace("%"+key+"%",value);
}
PWModule.prototype.tabclick = function(e) {
	var sender=pwmod.getNode(e);
	if (pwmod.isTabbed()) {
		if (sender.id=="link-main")
			pwmod.hide();
		else
			pwmod.show();
	}
}
PWModule.prototype.hide = function() {
	pwmod.controls.productwiki.style.display="none";
}
PWModule.prototype.show = function() {	
	pwmod.controls.productwiki.style.display="";
	pwmod.loadReport();
}
PWModule.prototype.loadReport = function() {
	if(this.loaded!=true)
		this.controls.content.src = this.api_url;
		
	this.loaded=true;
}
PWModule.prototype.isError = function() {
	return (this.controls.productwiki==null)||(this.controls.content==null);
}
PWModule.prototype.isMatch = function() {
	return (this.product!="");
}
PWModule.prototype.isTabbed = function() {
	return productwiki_istabbed();
}
PWModule.prototype.isSelected = function() {
	return location.href.indexOf(this.section)>=0;
}
PWModule.prototype.hideTab = function() {
	if (pwmod.isTabbed()) productwiki_hide_tab();
}
PWModule.prototype.addEvent = function(ctl) {
		var o = ctl;
		if(o == null) { return false; }
		if(o.addEventListener) {
			o.addEventListener("click", this.tabclick, false);
			return true;
		} else if (o.attachEvent) {
			var r = o.attachEvent("onclick", this.tabclick);
			return r;
		} else {
			try{ o["onclick"] = this.tabclick; }catch(e){}
		}
}
PWModule.prototype.getNode = function(event) {
	var e=null;
	if (event.target) e = event.target;
	else e = event.srcElement; 
	return e;
}

function productwiki_resize( height ) {
	var iframe = document.getElementById( 'productwiki-content' );
	iframe.setAttribute( 'height', height );
}
	
var pwmod = new PWModule();
pwmod.api_domain=productwiki_domain;
pwmod.product=productwiki_product;
pwmod.client=productwiki_client;
pwmod.clientdomain=productwiki_clientdomain;
pwmod.css=productwiki_css;
pwmod.html=productwiki_html;
pwmod.clienturl=productwiki_clienturl;
pwmod.interactive=productwiki_interactive;
pwmod.sections.summary=productwiki_summary;
pwmod.sections.proscons=productwiki_proscons;
pwmod.sections.competitors=productwiki_competitors;
pwmod.sections.details=productwiki_details;
pwmod.sections.related=productwiki_related;
pwmod.sections.comments=productwiki_comments;
pwmod.sections.twitter=productwiki_twitter;
pwmod.sections.socialvideo=productwiki_socialvideo;
pwmod.sections.socialphoto=productwiki_socialphoto;

pwmod.init();

if (!pwmod.isError()) {
	if (pwmod.isSelected()) pwmod.show();
	else if (!pwmod.isTabbed()) pwmod.show();
}
else {
	pwmod.hideTab();
}