var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();



	// Please put global JS variables for CCMS here
	// Just to make sure that nothing is reused ;-)
	
	var ns6=document.getElementById&&!document.all;
	var ie=document.all;
	var Changes = false //Var used to detect if changes has happened in editor
	var iChanges = false //Var used to detect if changes has happened in editor
	var tChanges = false //Var used to detect if changes has happened in editor
	var chgObj = new Object;
	var ElementToUpdate = null;
	var xmlDoc = null ;
	var myEditor = null; //wysiwyg editor var

function imposeMaxLength(Object, MaxLen)
		{
  		
  		if (Object.value.length == MaxLen -1)
  			{
  			alert("You can only write " + MaxLen + " characters in this box.");
  			}
  		return (Object.value.length <= MaxLen);
		}
	
function loaderGif()
	{
	var loaderVar = document.getElementById("loaderIcon");
	loaderVar.style.visibility="visible";
	}
	function tablink(checkstate,linkvar){
		if (checkstate == true){
		}
		else{
			
		}
	
	
	}

	function TestIfSaved()
	{
		var error = 0;
		if((Changes == true) || (iChanges == true) || (iChanges == true))
			event.returnValue = "Du har ikke gemt dine rettelser !!!";
	}

	function fckonChg()
		{
		if (myEditor.IsDirty())  
			{
			Changes=true;
			document.forms[0].btnSubmit.disabled = false;
			}
		
	}
	
	function onChg()
		{
		//alert("hmm")
		//Changes = true;
		//document.forms[0].btnSubmit.disabled = false;
	}
	function fake(){}
	
	function FCKeditor_OnComplete( editorInstance ) 
		{ 
		listenToEditor=true;
		myEditor = FCKeditorAPI.GetInstance(editorInstance.Name) ;
		//rteEditorLoaded = true; 
		if(listenToEditor)
			{ 
			//Add event listener for document changes. 
			myListener = myEditor.EditorDocument; 
			if(myListener)
				{ 
				if (myListener.addEventListener)
					{ 
					//DOM Level 2 Event Model 
					myListener.addEventListener("keyup", deferredChangedContent, true); 
					myListener.addEventListener("change", deferredChangedContent, true); 
					}
				else if (myListener.attachEvent)
					{ 
					//IE 5+ Event Model 
					//In the IE event model, we can't capture events, 
					//so this handler is triggered only if the event 
					//bubbles up to it. This assumes that there 
					//aren't any intervening elements that handle 
					//the event and stop it from bubbling. 
					myListener.attachEvent("onkeyup", fckonChg); 
					} 
				} 
			}
		
		
		
		
		
		
		
		//myEditor.Events.AttachEvent( 'OnSelectionChange', fckonChg ) ;

		} 
		
	function deferredChangedContent()
		{ 
		setTimeout("alert('change');", 5); 
		} 		
		

	function iokd(e)
		{
		if(!e){var e=window.event};
		eel = e.target?e.target:e.srcElement;
		//alert(eel.value)
		}
		
	function ioku(e)
		{
			
				
				iChanges = false;
				var Comparator = null;
				//document.getElementById('lgnname').innerHTML = '';
				if(!e){var e=window.event};
				eel = e.target?e.target:e.srcElement;
				if (e.type == 'paste')
					{
					Comparator=window.clipboardData.getData("text")
					}
				else
					{
					Comparator=eel.value
					}
					//alert(chgObj[eel.id])
					//alert(eel.value)
					if (chgObj[eel.id]!=Comparator)
						{
						chgObj[eel.id+'istate'] = 'dirty';
						//chgObj[eel.id].state = 'changed';
						}
					else
						{
						chgObj[eel.id+'istate'] = 'unchanged';
						//chgObj[eel.id].state = 'unchanged';
						}
					for (var i in chgObj)
						{
						if (i.indexOf("istate") != -1 )
							{
							if (chgObj[i].indexOf("dirty") != -1 )
								{
								//document.getElementById('lgnname').innerHTML = i
	  							iChanges=true;
	  							break;
	  							
	  							}
	  						else
	  							{
	  							iChanges=false;
	  							}
  							}
						}
			
					if (Changes == false && tChanges == false)
						{
						if (iChanges == true)
							{
							document.forms[0].btnSubmit.disabled = false;
							}
						else
							{
							document.forms[0].btnSubmit.disabled = true;
							}
						}
						
						//document.getElementById('lgnname').innerHTML = iChanges + '<br>' + tChanges + '<br>' + Changes
			}
			
	
	function tokd(e)
		{
		if(!e){var e=window.event};
		eel = e.target?e.target:e.srcElement;
		//alert(eel.value)
		}
		
	function toku(e)
		{
			
				
				tChanges = false;
				var Comparator = null;
				//document.getElementById('lgnname').innerHTML = '';
				if(!e){var e=window.event};
				//alert (e.type)
				eel = e.target?e.target:e.srcElement;
				if (e.type == 'paste')
					{
					Comparator=window.clipboardData.getData("text")
					}
				else
					{
					Comparator=eel.innerHTML
					}
				
				
					
					//alert(chgObj[eel.id])
					//alert(eel.value)
					if (chgObj[eel.id]!=Comparator)
						{
						chgObj[eel.id+'tstate'] = 'dirty';
						//chgObj[eel.id].state = 'changed';
						}
					else
						{
						//alert("but i screwed with you")
						chgObj[eel.id+'tstate'] = 'unchanged';
						//chgObj[eel.id].state = 'unchanged';
						}
					for (var i in chgObj)
						{
						if (i.indexOf("tstate") != -1)
							{
							if (chgObj[i].indexOf("dirty") != -1 )
								{
	  							tChanges=true;
	  							break;
	  							//document.getElementById('lgnname').innerHTML = document.getElementById('lgnname').innerHTML + chgObj[i] + '<br>'
	  							}
	  						else
	  							{
	  							tChanges=false;
	  							}
  							}
						}
			
					if (Changes == false && iChanges == false)
						{
						if (tChanges == true)
							{
							document.forms[0].btnSubmit.disabled = false;
							}
						else
							{
							document.forms[0].btnSubmit.disabled = true;
							}
						}
						
				//		document.getElementById('lgnname').innerHTML = iChanges + '<br>' + tChanges + '<br>' + Changes
			}
	
	function setFCK()
		{
		
		var changableItemContainer = document.getElementById('dataform');
		var changeableItems = changableItemContainer.getElementsByTagName('input');
		for(var no=0;no<changeableItems.length;no++)
			{
				if (!changeableItems[no].id)
					{
					changeableItems[no].id = 'inp'+no;
					}
				//document.getElementById('lgnname').innerHTML = document.getElementById('lgnname').innerHTML + (changeableItems[no].id) + '<br>'
				chgObj[changeableItems[no].id] = changeableItems[no].value
				changeableItems[no].onkeydown = iokd;
				changeableItems[no].onpaste = ioku;
				changeableItems[no].onkeyup = ioku;
			}
		var changeableItems = changableItemContainer.getElementsByTagName('textarea');
		for(var no=0;no<changeableItems.length;no++)
			{
				if (!changeableItems[no].id)
					{
					changeableItems[no].id = 'txt'+no;
					}
				//document.getElementById('lgnname').innerHTML = document.getElementById('lgnname').innerHTML + (changeableItems[no].id) + '<br>'
				chgObj[changeableItems[no].id] = changeableItems[no].innerHTML
				changeableItems[no].onkeydown = tokd;
				changeableItems[no].onkeyup = toku;
				changeableItems[no].onpaste = toku;
				//changeableItems[no].onchange = toku; maybe like this later ???
			}	
		}

	function getplaintext() //Function to get the plain textoutput from ANY revision of FCK editor
		{
			document.getElementById("plaintext").value =  myEditor.EditorDocument.body.innerText;;
		}
		
	function tabover(idint,cssname){
		toptabcss = 'toptabover' + cssname;
		bottomtabcss = 'bottomtabover' + cssname;
		tmtid = 'tmt' + idint;
		bmtid = 'bmt' + idint;
		document.getElementById([tmtid]).className = toptabcss;
		document.getElementById([bmtid]).className = bottomtabcss;		
	}
	function tabout(idint,cssname,active){
		toptabcss = 'toptab' + cssname + 'aktiv';
		bottomtabcss = 'bottomtab' + cssname + 'aktiv';
		tmtid = 'tmt' + idint;
		bmtid = 'bmt' + idint;
		if (active == "aktiv"){
		document.getElementById([tmtid]).className = toptabcss;
		document.getElementById([bmtid]).className = bottomtabcss;
		}
		else{
		toptabcss = 'toptab' + cssname;
		document.getElementById([tmtid]).className = toptabcss;
		document.getElementById([bmtid]).className = 'spacerbottom';
		}
	}

	function loadAny(remoteDocURL,syncVar)
		{
		if (typeof window.ActiveXObject != 'undefined' ) 
			{
			xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");
			xmlDoc.onreadystatechange = processAny;
			}
		else
			{
			xmlDoc = new XMLHttpRequest();
			xmlDoc.onload = processAny;
			}
		xmlDoc.open( "GET", remoteDocURL, syncVar );
		xmlDoc.setRequestHeader("Charset", "utf-8");
		xmlDoc.send( null );
		}
	
	function loadAnyPost(remoteDocURL,syncVar,parameters)
		{
		if (typeof window.ActiveXObject != 'undefined' ) 
			{
			xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");
			xmlDoc.onreadystatechange = processAny;
			}
		else
			{
			xmlDoc = new XMLHttpRequest();
			xmlDoc.onload = processAny;
			}
		xmlDoc.open( "POST", remoteDocURL, syncVar );
		xmlDoc.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      		xmlDoc.setRequestHeader("Content-length", parameters.length);
      		xmlDoc.setRequestHeader("content-charset", "utf-8");
      		xmlDoc.setRequestHeader("Connection", "close");
      		xmlDoc.send(parameters);
		}

	function processAny()
		{
		//alert(ElementToUpdate);
		if ( xmlDoc.readyState != 4 ) return ;
			document.getElementById(ElementToUpdate).innerHTML = xmlDoc.responseText ;	
			
		}
	
	
	
	function getWindowSize() {
  		var myWidth = 0, myHeight = 0;
  		if( typeof( window.innerWidth ) == 'number' ) {
    		//Non-IE
    		myWidth = window.innerWidth;
    		myHeight = window.innerHeight;
  		} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    		//IE 6+ in 'standards compliant mode'
    		myWidth = document.documentElement.clientWidth;
    		myHeight = document.documentElement.clientHeight;
  		} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    		//IE 4 compatible
    		myWidth = document.body.clientWidth;
    		myHeight = document.body.clientHeight;
  		}
  		return [ myWidth, myHeight ];
		}
	
	function getScrollXY() {
  		var scrOfX = 0, scrOfY = 0;
  		if( typeof( window.pageYOffset ) == 'number' ) {
    		//Netscape compliant
    		scrOfY = window.pageYOffset;
    		scrOfX = window.pageXOffset;
  		} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    		//DOM compliant
    		scrOfY = document.body.scrollTop;
    		scrOfX = document.body.scrollLeft;
  		} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    		//IE6 standards compliant mode
    		scrOfY = document.documentElement.scrollTop;
    		scrOfX = document.documentElement.scrollLeft;
  		}
  		return [ scrOfX, scrOfY ];
		}
	
	function ajaxPopUp(PositionByElement,remoteDocURL,ElToUpdate,syncVar)
		{
		var ScrollArr = getScrollXY();
		var winSizeArr = getWindowSize();
		ElementToUpdate = ElToUpdate
		PBElement = document.getElementById(PositionByElement)
		var sst = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		var ssl = Math.max(document.body.scrollLeft,document.documentElement.scrollRight);
		loadAny(remoteDocURL,ElementToUpdate,syncVar);
		var showf=document.getElementById(ElementToUpdate);
		if (ie)
			{
			showf.style.display= "none";
			showf.filters[0].Apply();
			}
		
		showf.style.visibility = 'hidden';
		showf.style.display= "block";			
		showf.x=getposOffset(PBElement, 'left');
		showf.y=getposOffset(PBElement, 'top');
		var elBoundX = document.getElementById('favhl').offsetWidth
		var elBoundY = document.getElementById(ElToUpdate).offsetHeight
		var elXPos = showf.x
		var elYPos = showf.y + 20
		var subX = winSizeArr[0] - (showf.x + elBoundX)
		var subY = ScrollArr[1] - (showf.y + elBoundY)
		//alert (ScrollArr[1] + ',' + showf.y + ',' + elBoundY)
		if ( subX < 0 )
			{
			elXPos = elXPos + subX
			}
			
		//if ( subY < 0 )
		//	{
		//	elYPos = elYPos + subY
		//	}
		
		showf.style.left=elXPos+'px';
		showf.style.top=elYPos+'px';
		showf.style.visibility = 'visible';
		//alert( ScrollArr[1] + ',' + document.getElementById('favhl').offsetHeight)
		
		if (ie)
			{
			showf.filters[0].Play();
			}
		}

	function closeitem(dropdown){
		var showf=document.getElementById(dropdown);
		showf.style.display="none";
		}
	
	function openitem(dropdown,posObj){
		//alert(dropdown);
		var showf=document.getElementById(dropdown);
		
		showf.style.display="block";
		showf.style.left = posObj.style.left +420
		showf.style.top = posObj.style.top +90
		}
	
	
	
	function getposOffset(what, offsettype){
			var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
			var parentEl=what.offsetParent;
			while (parentEl!=null){
			totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
			parentEl=parentEl.offsetParent;
			}
			return totaloffset;
		}
		
	function addToFavorites(pictureID,PBelement)
		{
		//ajaxPopUp(PositionByElement,remoteDocURL,ElToUpdate,syncVar)
		var myRand=parseInt(Math.random()*99999999); 
		ajaxPopUp(PBelement,'/theme/xml/templateToFavorites.asp?pictureID=' + pictureID +'&dothis=preptemplate&mohde='+myRand,'favhl','True');
		}
		
	function editFavorites(pictureID,PBelement)
		{
		//ajaxPopUp(PositionByElement,remoteDocURL,ElToUpdate,syncVar)
		var myRand=parseInt(Math.random()*99999999); 
		ajaxPopUp(PBelement,'/theme/xml/templateToFavorites.asp?pictureID=' + pictureID +'&dothis=edittemplate&mohde='+myRand,'favhl','True');
		}
	
	function doTemplateAdd(pictureID)
		{
		//ajaxPopUp(PositionByElement,remoteDocURL,ElToUpdate,syncVar)
		//ajaxPopUp(PBelement,'','favhl','True');
		ElementToUpdate = 'favhl'
		var poststr = "ItemTitle=" + encodeURI( document.getElementById("ItemTitle").value ) +
                    "&ItemNote=" + encodeURI( document.getElementById("ItemNote").value );
		var myRand=parseInt(Math.random()*99999999); 
		loadAnyPost('/theme/xml/templateToFavorites.asp?pictureID=' + pictureID +'&dothis=addtemplate&mohde='+myRand,false,poststr)
		setTimeout("closeitem('favhl')",1000);
		
		}	
		
	function doTemplateEdit(pictureID)
		{
		//ajaxPopUp(PositionByElement,remoteDocURL,ElToUpdate,syncVar)
		//ajaxPopUp(PBelement,'','favhl','True');
		ElementToUpdate = 'favhl'
		//var poststr = "ItemTitle=" + encodeURI( document.getElementById("ItemTitle").value ) +
                //    "&ItemNote=" + encodeURI( document.getElementById("ItemNote").value );
		var poststr = "ItemTitle=" + escape( document.getElementById("ItemTitle").value ) +
                    "&ItemNote=" + escape( document.getElementById("ItemNote").value );
		var myRand=parseInt(Math.random()*99999999); 
		loadAnyPost('/theme/xml/templateToFavorites.asp?pictureID=' + pictureID +'&dothis=doedittemplate&mohde='+myRand,false,poststr)
		setTimeout("closeitem('favhl')",1000);
		
		}	
		
	function setOpacity(obj, opacity) {
  opacity = (opacity == 100)?99.999:opacity;
  
  // IE/Win
  obj.style.filter = "alpha(opacity:"+opacity+")";
  
  // Safari<1.2, Konqueror
  obj.style.KHTMLOpacity = opacity/100;
  
  // Older Mozilla and Firefox
  obj.style.MozOpacity = opacity/100;
  
  // Safari 1.2, newer Firefox and Mozilla, CSS3
  obj.style.opacity = opacity/100;
}

function fadeIn(objId,opacity) {
  if (document.getElementById) {
    obj = document.getElementById(objId);
    if (opacity <= 100) {
      setOpacity(obj, opacity);
      opacity += 10;
      Window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 1);
    }
  }
}

function initImage(imageId) {
  //imageId = 'thephoto';
  image = document.getElementById(imageId);
  //setOpacity(image, 0);
  image.style.visibility = 'visible';
  //fadeIn(imageId,50);
}
	