(function(){
	var cn = 'snw';
	var snw = {
		host : null,
		config : {
			"type" : 'project',
			"project" : {
				"size":{
					"width":'200',
					"height":'300'
				},
				"bgcolor":'#FFFFFF',
				"color":'#333333'
			},
			"start" : {
				"size":{
					"width":'200',
					"height":'41'
				}
			},
			"start-v1" : {
				"size":{
					"width":'200',
					"height":'41'
				}
			},
			"start-v2" : {
				"size":{
					"width":'127',
					"height":'25'
				}
			},
			"start-v3" : {
				"size":{
					"width":'88',
					"height":'20'
				}
			},
			"start-v4" : {
				"size":{
					"width":'59',
					"height":'60'
				}
			}
		},
		currentSrc : '',
		
		load : function(config) {
			var ud = "undefined";
			if (typeof myty != ud) {
				if (typeof myty.editMode != ud && myty.editMode == true) return true;
				if (typeof mytyToolbar != ud && typeof tybase != ud) return true;
			}
			var config = config || {};
			if (config.id) {
				if (typeof config.type == ud) {
					config['type'] = 'project';
				}
				var IFrameSrc = snw.getIFrameSrc(config);
				if (IFrameSrc) {
					document.write(IFrameSrc);
					var iframe = document.getElementById(snw.getIFrameID());
					iframe.src = snw.currentSrc;
				}
			}
		},
		getIFrameSrc : function(config) {
			var config = config || {};
			var result = null;
			if (config.id) {
				snw.setConfig(config);
				snw.currentSrc = snw.getURL();
				if (snw.currentSrc) {
					switch (snw.config.type) {
						case 'project':
							switch(snw.getHost()) {
								case 'nordpool-hamburg.org':
								case 'nordstarter.org':
									snw.config[ snw.config.type ].size.height = '330'; break;
							}
							result = '<iframe id="'+snw.getIFrameID()+'" src="about:blank" height="'+parseInt(snw.config[ snw.config.type ].size.height)+'" width="'+parseInt(snw.config[ snw.config.type ].size.width)+'" style="height:'+parseInt(snw.config[ snw.config.type ].size.height)+'px;width:'+parseInt(snw.config[ snw.config.type ].size.width)+'px;" frameborder="0" scrolling="no" allowtransparency="true"></iframe>';
							break;
						case 'start-v1':
						case 'start-v2':
						case 'start-v3':
						case 'start-v4':
						case 'start':
							result = '<iframe id="'+snw.getIFrameID()+'" src="about:blank" height="'+parseInt(snw.config[ snw.config.type ].size.height)+'" width="'+parseInt(snw.config[ snw.config.type ].size.width)+'" style="height:'+parseInt(snw.config[ snw.config.type ].size.height)+'px;width:'+parseInt(snw.config[ snw.config.type ].size.width)+'px;" frameborder="0" scrolling="no" allowtransparency="true"></iframe>';
							break;
					}
				}
			}
			return result;
		},
		getIFrameID : function() {
			return 'snw'+encodeURI(snw.config.type+snw.config[ snw.config.type ].id);
		},
		setConfig : function(config) {
			var type = config.type || snw.config.type || 'project';
			for (key in config) {
				if (typeof config[ key ] == 'object') {
					snw.config[ type ][ key ] = {};
					for (subKey in config[ key ]) {
						snw.config[ type ][ key ][ subKey ] = config[ key ][ subKey ];
					}
				} else {
					snw.config[ type ][ key ] = config[ key ];
				}
			}
			snw.config.type = type;
		},
		getHost : function() {
			if( snw.host === null ) {
				var st = document.getElementsByTagName('script');
				var src = '';
				for( var k in st ) {
					try { src = st[k].getAttribute('src'); } catch(e) {}
					if( src && ( src.indexOf('/js/widgets.js') >= 0 || src.indexOf('/js/widgets_facebook.js') >= 0 ) ) {
						var l = document.createElement("a");
					    l.href = src;
						snw.host = l.hostname.replace('www.','');
						break;
					}
				}
				if( snw.host == null ) snw.host = 'startnext.de';
			}
			return snw.host;
		},
		getURL : function() {
			var url = null;
			
			switch (snw.config.type) {
				case 'project':
					switch(snw.getHost()) {
						case 'nordpool-hamburg.org':
						case 'nordstarter.org':
							url = 'http://www.nordstarter.org/templates/platforms/hkg/views/project.extwidget.view.php?project='+snw.config[ snw.config.type ].id; 
							break;
						case 'startnext.de':
						case 'startnext.at':
						case 'dev.startnext.de':
						case 'dev.startnext.at':
							url = 'http://'+snw.getHost()+'/templates/mvc/view/project.extwidget.view.php?project='+snw.config[ snw.config.type ].id;
							break;
					}
					//url += '&w='+parseInt(snw.config[ snw.config.type ].size.width);
					//url += '&h='+parseInt(snw.config[ snw.config.type ].size.height);
					break;
				case 'start-v1':
				case 'start-v2':
				case 'start-v3':
				case 'start-v4':
				case 'start':
					switch(snw.getHost()) {
						case 'nordpool-hamburg.org':
						case 'nordstarter.org':
							url = 'http://www.nordstarter.org/templates/platforms/hkg/views/project.extwidget.startbutton.view.php?project='+snw.config[ snw.config.type ].id;
							break;
						case 'startnext.de':
						case 'startnext.at':
						case 'dev.startnext.de':
						case 'dev.startnext.at':
							url = 'http://'+snw.getHost()+'/templates/mvc/view/project.extwidget.startbutton.view.php?project='+snw.config[ snw.config.type ].id
							break;
					}
					
					switch (snw.config.type) {
						case 'start':
						case 'start-v1':
							url += '&v=1';
							break;
						case 'start-v2':
							url += '&v=2';
							break;
						case 'start-v3':
							url += '&v=3';
							break;
						case 'start-v4':
							url += '&v=4';
							break;
					}
					break;
			}
			// per rewrite
			// var url = 'http://www.startnext.de/widgets/projects/' + snw.config.id;
			return url;
		}
	};
	if (!window[cn]) window[cn] = snw;
})();
