/**
 * Extensions to the function prototype
 *
 * @author Nikolai Gjerl?ff <nikolai@resource-it.dk>
 * @version 1.0
 * @package Resource it Modules
 * @copyright Resource it ApS
 **/

Function.prototype.bind = function(parentObj) {
    var func = this;
    var args = new Array();
    for(var i = 0; i < arguments.length - 1; i++) {
	    args[i] = arguments[i+1];
    }
    var temp = function() {
        return func.apply(parentObj, args);
    }
    return(temp);
}//bind

Function.prototype.eventBind = function(parentObj) {
	var func = this;
	var args = arguments;
	var temp = function(evt) {
		if(evt["target"] != undefined) args[0] = evt["target"];
		else args[0] = evt["srcElement"];
		return func.apply(parentObj, args);
	}
	return(temp);
}//eventBird

Function.prototype.argBind = function(parentObj) {
	var func = this;
	var temp = function() {
		return func.apply(parentObj, arguments);
	}
	return(temp);
}//argBind













function GlassEkspertenImagesObject()
{
  var DMlogoImage = "";
  var DMlinkText ="";  
  
  this.SetLogo = SetLogo;
  this.SetLinkText = SetLinkText;  
  
  this.ShowLogo = DisplayLogo;
  this.ShowLinkText = DisplayLinkText;	 
	
	  
  function SetLogo(myVal) 
  {	DMlogoImage = myVal; }
  function SetLinkText(myVal) 
  {	DMlinkText = myVal; }
  
  
  function DisplayLogo()
  { return DMlogoImage;}
  function DisplayLinkText()
  { return DMlinkText;}  
}

function GlassEkspertenParagraphObject(aParagraphID,DM_TotalCount)
{
	var DMParagraphID = aParagraphID;
	var DMCurrent =0;
	var GlassEkspertenImagesCount = 0;
	var GlassEkspertenImagesObjectArray = new Array(DM_TotalCount);
	var TotalObject = DM_TotalCount;
	var EkspertenImagesObject = GlassEkspertenImagesObject;

	
	this.AddObject = AddObject;
	this.GetCurrentObject = GetTheCurrentObject;
	this.GetNextObect = GetTheNextObect;
	this.GetPreviousObect = GetThePreviousObect;
	
	function GetTheCurrentObject()
	{
		if(DMCurrent >= GlassEkspertenImagesCount)
			DMCurrent = 0;
		obj = null;
		for(i=0;i < GlassEkspertenImagesObjectArray.length;++i)
		{
			if(i == DMCurrent)
			{
				obj = GlassEkspertenImagesObjectArray[i];
				break;
			}
		}
		return obj;
	}
	
	function GetThePreviousObect()
	{
		--DMCurrent;
		if(DMCurrent < 0)
		{
			 DMCurrent = (GlassEkspertenImagesCount -1);
		}
		if(DMCurrent < 0)
			DMCurrent = 0;

		return GlassEkspertenImagesObjectArray[DMCurrent];
	}
		
	function GetTheNextObect()
	{
		++DMCurrent;
		if(DMCurrent >= GlassEkspertenImagesCount )
			DMCurrent = 0;
		return GlassEkspertenImagesObjectArray[DMCurrent];
	}
		
	function AddObject(DM_ImageURL,DM_LinkTekst)
	{
		GlassEkspertenImagesObjectArray[GlassEkspertenImagesCount] = new GlassEkspertenImagesObject();
		GlassEkspertenImagesObjectArray[GlassEkspertenImagesCount].SetLogo("/Files/Billeder/"+DM_ImageURL);
		GlassEkspertenImagesObjectArray[GlassEkspertenImagesCount].SetLinkText(DM_LinkTekst);
		++GlassEkspertenImagesCount;
	}
	
  this.SetParagraphID = SetParagraphID;
  //this.SetEkspertenImagesObject = SetEkspertenImagesObject; 
		
  this.ShowParagraphID = DisplayParagraphID;


  //this.ShowEkspertenImagesObject = DisplayEkspertenImagesObject;

  function SetParagraphID(myVal) 
  {	DMParagraphID = myVal; }
  
  /**
  function SetEkspertenImagesObject(myVal) 
  {	EkspertenImagesObject = myVal; }
  */
  
  function DisplayParagraphID()
  { return DMParagraphID;}
  
	/*function DisplayEkspertenImagesObject()
  { return EkspertenImagesObject;} 			
	*/
}


var GlassEkspertenGlobalParagraphs = 0;
var currentAddingParagraphID= 0;
var GlassEkspertenGlobalParagraphsArray = new Array(1000);


var currentPhoto = 0;
var secondPhoto = 0;
var currentOpacity = new Array();
var FADE_STEP = 7;
var FADE_INTERVAL = 10;
var pause = false;

currentOpacity[0]=99;
for(i=1;i<GlassEkspertenGlobalParagraphsArray.length;i++)
currentOpacity[i]=0;

function initParagraphImage(ParagraphID)
{
	theArray = GlassEkspertenGlobalParagraphsArray;
	if(null != theArray)
	{
		for(arrcounter=0;arrcounter <= GlassEkspertenGlobalParagraphs; ++arrcounter )
		{
			parObArr = GlassEkspertenGlobalParagraphsArray[arrcounter];
			if(null != parObArr)
			{
				if(parObArr.ShowParagraphID() == ParagraphID)
				{
					pause=true;
					Item = parObArr.GetCurrentObject();
					setParagraphBGImg(ParagraphID,Item);
					break;
				}
				
			}
		}
	}	
}




function moveImageForward(ParagraphID)
{
	theArray = GlassEkspertenGlobalParagraphsArray;
	if(null != theArray)
	{
		for(arrcounter=0;arrcounter <= GlassEkspertenGlobalParagraphs; ++arrcounter )
		{
			parObArr = GlassEkspertenGlobalParagraphsArray[arrcounter];
			if(null != parObArr)
			{
				if(parObArr.ShowParagraphID() == ParagraphID)
				{
					Item = parObArr.GetNextObect();
					setParagraphBGImg(ParagraphID,Item);
					break;
				}
				
			}
		}
	}	
}

function moveImageback(ParagraphID)
{
	theArray = GlassEkspertenGlobalParagraphsArray;
	if(null != theArray)
	{
		for(arrcounter=0;arrcounter <= GlassEkspertenGlobalParagraphs; ++arrcounter )
		{
			parObArr = GlassEkspertenGlobalParagraphsArray[arrcounter];
			if(null != parObArr)
			{
				if(parObArr.ShowParagraphID() == ParagraphID)
				{
					Item = parObArr.GetPreviousObect();
					setParagraphBGImg(ParagraphID,Item);
					break;
				}
				
			}
		}
	}
}




function setParagraphBGImg(ParagraphID,ImageObjectObArrLink)
{
	if(null != ImageObjectObArrLink)
	{
		divParagraph =	document.getElementById('Caseparagraph_'+ParagraphID);
		if(null != divParagraph)
		{
			imageLink = ImageObjectObArrLink.ShowLogo();
			divParagraph.style.backgroundImage = "url("+imageLink+")";
			if(document.all) 
			{
				divParagraph.style.filter = "alpha(opacity=100)";
			}else
			{
				divParagraph.style.MozOpacity = .99;
			}
			//mInterval = setInterval("crossFade('"+ParagraphID+"')",FADE_INTERVAL);
		}
	}
}

function crossFade(ParagraphID)
{
  if(pause) return;
		
	divParagraph =	document.getElementById('Caseparagraph_'+ParagraphID);
	if(null != divParagraph)
	{
	  currentOpacity[currentPhoto]-=FADE_STEP;
	  currentOpacity[secondPhoto] += FADE_STEP;
	
	  if(document.all) {
	      divParagraph.style.filter = "alpha(opacity=" + currentOpacity[currentPhoto] + ")";
	      divParagraph.style.filter = "alpha(opacity=" + currentOpacity[secondPhoto] + ")";
	  } else {
	      divParagraph.style.MozOpacity = currentOpacity[currentPhoto]/100;
	      divParagraph.style.MozOpacity =currentOpacity[secondPhoto]/100;
	  }
	
	  if(currentOpacity[secondPhoto]/100>=.98) {
	      currentPhoto = secondPhoto;
	      secondPhoto++;
	      if(secondPhoto == currentAddingParagraphID)
					secondPhoto=0;
	      pause = true;
	      xInterval = setTimeout("pause=false",4000);
	  }
		
	}
}




