
var WarningComponent = {
		
		parentElementId : null,
		
		/*
		 * Skapar containern som varningarna ska visas i
		 * Endast en tom "förvaring", data laddas genom addWarnings()
		 * Argument: Id för det element som varningarna ska placeras i.
		 */
		init : function( parentElementId ) {
			if ( jQuery('#' + parentElementId).length ) { 
				this.parentElementId = parentElementId;
				//Om warnings-containern inte finns, skapa den
				if(jQuery('#' + parentElementId ).find('.warningContainer').length == 0){
					var wcontainer = document.createElement('div');
					var warningdiv = document.createElement('div');
					warningdiv.id = 'warningFrame';
					var inner = document.createElement('div');
					var arrow = document.createElement('div');
					var standarddiv = document.createElement('div');
					var ulContainer = document.createElement('ul');
					if (jQuery.browser.msie) {
						var className = "className";
					} else {
						var className = "class";
						
					}
					wcontainer.setAttribute(className,'warningContainer');
					wcontainer.style.display = 'none';
					warningdiv.setAttribute(className,'warning');
					inner.setAttribute(className,'inner');
					//arrow.setAttribute(className,'arrow');
					
					ulContainer.id = 'warningcontent';
					
					
					standarddiv.appendChild(ulContainer);
					arrow.appendChild(standarddiv);
					inner.appendChild(arrow);
					warningdiv.appendChild(inner);
					wcontainer.appendChild(warningdiv);
		
					jQuery('#' + parentElementId).append(wcontainer);
				}	

				jQuery('#warningcontent li').live('click' ,function(event){
					if(!jQuery(this).hasClass("open")) {
						jQuery(this).children("p.extended").slideDown(100);
						jQuery(this).addClass('open');

						if(!jQuery(this).closest("#warningFrame").hasClass("open2")) {
							jQuery(this).closest("#warningFrame").addClass('open2');
						}
					}	
					else {
						jQuery(this).children("p.extended").slideUp(100);
						jQuery(this).removeClass('open');
						if (!jQuery(this).siblings().hasClass("open")) {
							jQuery(this).closest("#warningFrame").removeClass('open2');
						}

					
					}
					event.preventDefault();
				});
			}
		 },
		 addWarningsAtPoint : function(geoNameId, warningsAreaType ){
			
						//Landvarningar
					 	WarningManager.getWarningsAtPoint(geoNameId, warningsAreaType, function(res)
					 	{
						 	if(res.length > 0){					 		
					 			WarningComponent.__strokeWarnings(res);
						 	}
					 	});
		 },
		 addWarnings : function(warningsAreaType){
			 if(typeof mapbuilder.getMapObject() != "undefined"){
					
					var boundsArray = mapbuilder.getMapObject().getExtent().toArray();
					var EPSGcode = mapbuilder.getMapObject().getProjection();
					var cleanEPSGcode = EPSGcode.substring(EPSGcode.indexOf(":")+1, EPSGcode.length);
					

					if(typeof warningsAreaType == 'undefined'){
						//Landvarningar
					 	WarningManager.getAllWarningsWithinBBOXNoExclusion(boundsArray[2], boundsArray[3], boundsArray[0], boundsArray[1], cleanEPSGcode, function(res)
					 	{
						 	if(res.length > 0){					 		
					 			WarningComponent.__strokeWarnings(res);
						 	}
					 	});
					}else{
						//Landvarningar
					 	WarningManager.getAllWarningsWithinBBOX(boundsArray[2], boundsArray[3], boundsArray[0], boundsArray[1], cleanEPSGcode, warningsAreaType, function(res)
					 	{
						 	if(res.length > 0){					 		
					 			WarningComponent.__strokeWarnings(res);
						 	}
					 	});
					}
			} 
		 },
		 /*
		  * Lagger in varningar i den skapade containern.
		  * Argument: WarningProduct-objekt (fås genom DWP-anrop till javaklassen/funktionen WarningManagerImpl:getAllWarningsWithinBBOX)
		  */
		 __strokeWarnings : function( WarningProductData ){			 
			 if(this.parentElementId != null){
				 var elArr = jQuery('#' + this.parentElementId ).find('#warningcontent');
				 elArr[0].innerHTML = "";
				 
				 if (jQuery.browser.msie) {
						var className = "className";
				 } else {
						var className = "class";
						
				 }
				 if(WarningProductData.length > 0){
					 
					 var lastWarningLevel = ""; 
					 var lastWarningType = ""; 
					 
					 for(var i=0; i<WarningProductData.length;i++){
						 var WarningProduct = WarningProductData[i];
						 
//						 if((lastWarningLevel != WarningProduct.warninglevel)&&(lastWarningType != WarningProduct.header)){   
						 if(lastWarningType != WarningProduct.header){   
							 var liEl = document.createElement('li');	
							 liEl.setAttribute(className, 'warning-' + WarningProduct.warninglevel);

							 var arrow = document.createElement('div');
							 arrow.setAttribute(className,'arrow');
							 
							 var pHeader = document.createElement('p');
							 pHeader.setAttribute(className, 'info');
							 
							 var aHeader = document.createElement('a');
							 
							 aHeader.setAttribute('href', '#');
							 aHeader.innerHTML = WarningProduct.header;
							 pHeader.appendChild(aHeader);
							 arrow.appendChild(pHeader);
							 liEl.appendChild(arrow);

							 for(var x=0; x<WarningProductData.length;x++){
								 var inWarningProduct = WarningProductData[x];
					 
								 if(inWarningProduct.header == WarningProduct.header){
									 var pDescription = document.createElement('p');
									 pDescription.setAttribute(className, 'extended');
									 var spanName = document.createElement('span');
									 spanName.innerHTML = inWarningProduct.geomName + ':&nbsp';
									 pDescription.appendChild(spanName);
									 var descriptionText = document.createTextNode(inWarningProduct.description);
									 pDescription.appendChild(descriptionText);
									 					 					 			 					 					 
									 liEl.appendChild(pDescription);
								 }
							 }
							 elArr[0].appendChild(liEl);
						 }

						 lastWarningType = WarningProduct.header;

					 }
					 jQuery('.warningContainer').css('display','block');
				 }
			 }
		 }


};
