
(function () {
	var config,
	create,
	widget,
	thisPic,
	prevPic,
	nextPic,
	allPics;
	
	var widgetBaseUrl = 'http://www.sida.se';
	var target = '_blank';
	config = {
		lang : "sv",
		containerId : "insertOVwidget",
		marginBottom : '50px',
		previousText :"Föregående",
		nextText :"Nästa",
		pagingSeparator : 'av',
		headers : {
			main : {
				tagName : "a",
				className : "omvarldenWidgetHeader",
				href : "http://www.sida.se/OmVarlden/",
				innerHTML : 'OmVärlden',
				footerLinkText : "Till OmVärldens webbsida"
			},
			byline : {
				innerHTML : 'Tidningen om bistånd, utveckling och globala frågor'
			},
			headerImage : {
				normalsrc : widgetBaseUrl + "/ImageVault/Images/conversionFormatType_WebSafe/id_4248/ImageVaultHandler.aspx",
				alttext : "Omslaget"
			}
		},
		mainArticle : {
			tagName : "div",
			className : "omvarldenWidgetMainTeaser",
			id : "omvarldenWidgetMainTeaser",
			appendChildren : [{
				tagName : "div",
				id : "omvarldenWidgetMainTeaserSlides",
				className : "omvarldenWidgetMainTeaserSlides",
		
				appendChildren : [{
							
					tagName : "img",
					className : "omvarldenWidgetMainTeaserImage",
					src : widgetBaseUrl + "/ImageVault/Images/height_212/conversionFormatType_WebSafe/width_414/id_4920/ImageVaultHandler.aspx",
					alt : "Framtidens ledare: en kinesisk kvinna"
			
				}]
			}, {
				className : "omvarldenWidgetMainTeaserText",
				id : "omvarldenWidgetMainTeaserText",
				appendChildren : [{
					tagName : "h2",
					innerHTML : 'Framtidens ledare: en kinesisk kvinna'
				},{
					tagName : "p",
					innerHTML : 'Kina är bäst i världen på att skapa framgångsrika affärskvinnor. Men det är samtidigt ett land med öppen könsdiskriminering. 43-åriga Julia Huang har byggt ett börsnoterat bolag i den boomande kinesiska utbildningsbranschen.'
				},{
					tagName : "p",
					className : "omvarldenWidgetMainTeaserLink",
					appendChildren : [{
						tagName : "a",
						href : "http://www.sida.se/OmVarlden/Varlden/Business/Framtidens-ledare-en-kinesisk-kvinna/",
						target : target,
						innerHTML : 'Läs mer'
					}]
				}]
			}]
		},
		news : [{
		
		}]
	};
	create = function (obj) {
		var keys, 
		newElement = obj.tagName ? document.createElement(obj.tagName) : document.createElement("div"),
		i,
		newKid;
		for (keys in obj) {
			if (keys !== "tagName") {
				if ((/clas[s](Name)?/).test(keys)) {
					newElement.className = obj[keys];
				} else if (newElement.style[keys]) {
					newElement.style[keys] = obj[keys];
				} else if (keys === "appendChildren") {
					for (i = 0; i < obj[keys].length; i += 1) {
						newKid = create(obj[keys][i]);
						newElement.appendChild(newKid);
					}
				} else {
					newElement[keys] = obj[keys];
				}
			}
		}
		return newElement;
	};
	widget = {
		init : function () {
			var cf = config,
			cont = document.getElementById(cf.containerId),
			cn = "omvarldenWidget";
			var theWidth = document.getElementById("insertOVwidget").offsetWidth;

			if (theWidth < 200) {
				cn += " omvarldenMini";
			}
			this.insertStyleSheets();
			cont.className = "lang-" + config.lang;
			cont.appendChild(create({
				id : "omvarldenWidget",		
				className : cn,
				appendChildren : [{
					tagName : "a",
					href : cf.headers.main.href,
					target : target,
					appendChildren : [{
						tagName : "img",
						className : "omvarldenWidgetMagazine",
						id : "omvarldenWidgetMagazine",
						alt :  cf.headers.headerImage.alttext,
						src : cf.headers.headerImage.normalsrc
					}]
				}, {
					tagName : "a",
					href : cf.headers.main.href,
					className : cf.headers.main.className,
					innerHTML : cf.headers.main.innerHTML,
					target : target
				}, {
					className : "omvarldenWidgetContent",
					appendChildren : [{
						tagName : "p",
						className : "omvarldenWidgetByLine",
						innerHTML : cf.headers.byline.innerHTML
					},
					cf.mainArticle,
					{
						tagName : "div",
						className : "omvarldenWidgetTeasers",
						appendChildren : cf.news
					}, {
						className : "omvarldenWidgetHomeLink",
						appendChildren : [{
							tagName : "a",
							href : cf.headers.main.href,
							innerHTML : cf.headers.main.footerLinkText,
							target : target
						}]
					}]
				}]
			}));
			if(document.getElementById("omvarldenWidgetMainTeaserSlides")){
				document.getElementById("omvarldenWidgetMainTeaserSlides").style.height = (theWidth * 0.513) + "px";
				this.makePaging();
			}
		},
		insertStyleSheets : function () {
			var h = document.getElementsByTagName("head")[0];
			h.appendChild(create({
				tagName : "link",
				href : widgetBaseUrl + "/ClientUI/CSS/OVwidget.css",
				type : "text/css",
				rel : "stylesheet"
			}));
		},
		makePaging : function () {
			var pics = document.getElementById("omvarldenWidgetMainTeaserSlides").getElementsByTagName("img");
			var arVersion = navigator.appVersion.split("MSIE");
			var version = parseFloat(arVersion[1]);
			if ((version <= 7) && (document.body.filters)) {
				var theMagImg = document.getElementById("omvarldenWidgetMagazine");
				theMagImg.style.background = "transparent";
				theMagImg.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + theMagImg.src + "\')";
				theMagImg.src = widgetBaseUrl + "/ClientUI/Images/blank.gif";
			}
			if(pics.length > 1){
				for(var i = 0;i < pics.length;i++){
					if (i !== 0) {
						pics[i].style.display = "none";
					}
				}
				var teaser = document.getElementById("omvarldenWidgetMainTeaser");
				var teaserText = document.getElementById("omvarldenWidgetMainTeaserText");
				teaser.insertBefore(create({
					tagName : "p",
					className : "OVwidgetPager",
					appendChildren : [{
						tagName: "img",
						src :  widgetBaseUrl + "/ClientUI/OVwidget/widget.arrow.prev.gif",
						id : "OVwidgetPhotoPrev",
						alt : config.previousText
					}, {
						tagName : "span",
						id : "OVwidgetPhoto",
						innerHTML: "&nbsp; 1 " + config.pagingSeparator + "  " + pics.length + " &nbsp;"
						
					}, {
						tagName: "img",
						src : widgetBaseUrl + "/ClientUI/OVwidget/widget.arrow.next.gif",
						id : "OVwidgetPhotoNext",
						alt : config.nextText
					}]
				}),
				teaserText);
				var prevButton = document.getElementById("OVwidgetPhotoPrev");
				var nextButton = document.getElementById("OVwidgetPhotoNext");
				thisPic = 1;
				allPics = pics.length;
				prevButton.onclick = this.goPrev;
				nextButton.onclick = this.goNext;
			}
		},
		goPrev : function(){
			if (thisPic == 1){
				prevPic = allPics;
			} else {
				prevPic = thisPic - 1;
			}
			widget.fadeOut(thisPic,100);
			widget.fadeIn(prevPic,0);
			thisPic = prevPic;
			document.getElementById("OVwidgetPhoto").innerHTML = "&nbsp; " + thisPic + " " + config.pagingSeparator + " " + allPics + " &nbsp;";
		},
		goNext : function(){
			if (thisPic == allPics){
				nextPic = 1;
			} else {
				nextPic = thisPic + 1;
			}
			widget.fadeOut(thisPic,100);
			widget.fadeIn(nextPic,0);
			thisPic = nextPic;
			document.getElementById("OVwidgetPhoto").innerHTML = "&nbsp; " + thisPic + " " + config.pagingSeparator + " " + allPics + " &nbsp;";
		},
		setOpacity : function (objId, opacity) {
			var theObj = document.getElementById("omvarldenWidgetMainTeaserSlides").getElementsByTagName("img")[objId-1] ;
			opacity = (opacity == 100)?99.999:opacity;
			theObj.style.filter='progid:DXImageTransform.Microsoft.Alpha(Opacity=' + opacity + ')';
			theObj.style.filter = "alpha(opacity:"+opacity+")";
			theObj.style.KHTMLOpacity = opacity/100;
			theObj.style.MozOpacity = opacity/100;
			theObj.style.opacity = opacity/100;
		},
		fadeIn : function (objId,opacity) {
			var theObj = document.getElementById("omvarldenWidgetMainTeaserSlides").getElementsByTagName("img")[objId-1] ;
			theObj.style.display = "";
			if (opacity <= 100) {
				widget.setOpacity(objId, opacity);
				opacity += 5;
				setTimeout( function(){
					widget.fadeIn(objId, opacity);
				}, 20);
			}
		},
		fadeOut : function (objId,opacity) {
			var theObj = document.getElementById("omvarldenWidgetMainTeaserSlides").getElementsByTagName("img")[objId-1] ;
			theObj.style.display = "";
			if (opacity > 0) {
				widget.setOpacity(objId, opacity);
				opacity -= 5;
				setTimeout(function(){
					widget.fadeOut(objId , opacity);
				}, 20);
			} else {
				theObj.style.display = "none";
			}
		}
	};
	widget.init();
}());


