	function replace(stf,old,rplc) {
		var New='';
		while (stf.indexOf(old)!=-1) {
			var strt=stf.indexOf(old);
			New+=stf.substring(0,strt);
			New+=rplc;
			stf=stf.substring(strt+old.length,stf.length);
		}
		return New+stf;
	}
	function escapeHTML(text) {
		text=replace(text,'&','&amp;');
		text=replace(text,'<','&lt;');
		text=replace(text,'>','&gt;');
		return text;
	}
	
	function parseQuery(qwFormat,type) {
		var string=(type)?qwFormat:replace(qwFormat,'+',' ');
		var map=new Array();
		var hashVal=new Array();
		var mpc=0;
		var strt=0;
		while (strt<string.length) {
			var left=string.substring(strt+1,string.length);
			var chunk=left.substring(0,(left.indexOf('&')>-1)?left.indexOf('&'):left.length);
			var nam=unescape(chunk.substring(0,chunk.indexOf('=')));
			var val=unescape(chunk.substring(chunk.indexOf('=')+1,chunk.length));
			if (type!=true) val=escapeHTML(val);
			if (hashVal[nam]==null) {
				map[mpc]=nam;
				hashVal[nam]=val;
				mpc++;
			}else hashVal[nam]+=' & '+val;
			strt+=chunk.length+1;
		} return new Array(map,hashVal);
	}


function getRandom()
{
    var ranNum= Math.floor(Math.random()*500000);
    return ranNum;
}



/*********************************/

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

/*********************************/
/*******  Add events  ************/
function addEvent( obj, type, fn ) { 

    try{
    if ( obj.attachEvent ) { 
        obj['e'+type+fn] = fn; 
        obj[type+fn] = function(){obj['e'+type+fn]( window.event );} 
        obj.attachEvent( 'on'+type, obj[type+fn] ); 
    } 
    else{ 
        obj.addEventListener( type, fn, false ); 
    }
    }
    catch(err){
        alert(err.description)
    }
} 
function removeEvent( obj, type, fn ) { 
  if ( obj.detachEvent ) { 
    alert(type+fn)
   // obj.detachEvent( 'on'+type, obj[type+fn] ); 
    obj.detachEvent( 'on'+type, fn ); 
    obj[type+fn] = null; 
  } else 
    obj.removeEventListener( type, fn, false ); 
}

/*********************************/

/******************FSI images*********/

//this function needs to be defined, otherwise the flash object trows an exeption
function onSelect(){}

	/************************
	properties on imageobject
	ID
	ImageUrl
	Height
	Width
	OriginalHeight
	OriginalWidth
	DirectUrl
	FSIReference
	ProcuctName
	************************/
	
    var objResponse;
    var fsiHtmlElement;
    var intViewerHeight;
    var intViewerWidth;

	
	function GetFsiImage(imageId, strHtmlElementId, intHeight, intWidth){

	    fsiHtmlElement = strHtmlElementId
	    intViewerHeight = intHeight
	    intViewerWidth = intWidth
	    var url = '/Handlers/MindWorkingSingleImage.ashx?';
		var pars = 'MwImageId=' + imageId;
//alert(url + pars)
		var myAjax = new Ajax.Request(
			url,
				{
				method: 'get',
				parameters: pars,
				onComplete: showResponseFsi,
				onFailure: RequestError	
				});
	}

	function RequestError() {
		//alert("Error")
	}

	function showResponseFsi(objRequest){

        objImage = eval('(' + objRequest.responseText + ')');
        if(objImage.ID > 0){
			objImage.ImageUrl = unescape(objImage.ImageUrl)
			RenderFsi(GetFsiUrl(objImage), fsiHtmlElement);
        }
        else{
			//alert("no Image selected")
        }
      }
      
      function showResponseImage(objRequest){
        objImage = eval('(' + objRequest.responseText + ')');
        if(objImage.ID > 0){
   			objImage.ImageUrl = unescape(objImage.ImageUrl)
			document.getElementById(fsiHtmlElement).src = objImage.ImageUrl;
        }
        else{
			//alert("no Image selected")
        }
      }
	function GetFsiUrl(objImage){
		var strFPXBase, strFPXSrc, strFPXWidth, strFPXHeight;
		var strFsi;
		var strUI = 'cfg=viewer_presets/show_ui&Skin=plain&UISwitchable=true&NoNav=true&selectframe=false&Effects=clipcolor=FFFFFF'
		strViewerWidth = 'ViewerWidth=' + intViewerWidth;
		strViewerHeight = 'ViewerHeight=' + intViewerHeight;

		// if image is from img.mindworking.dk
		if(objImage.ImageUrl.indexOf('img.mindworking.dk') != -1){
			strFPXWidth = 'FPXWidth=' + objImage.OriginalWidth
			strFPXHeight =  'FPXHeight=' + objImage.OriginalHeight				
			strFsi = unescape(objImage.FSIReference) + '&' + strFPXWidth + '&' + strFPXHeight + '&' + strViewerWidth + '&' + strViewerWidth + '&' + strUI;
		}
		
		// if image is from imageserver.mindworking.dk
		else if(objImage.ImageUrl.indexOf('imageserver.mindworking.dk') != -1){
			strFsi = unescape(objImage.FSIReference) + '&' + strViewerWidth + '&' + strViewerHeight + '&' + strUI;
		}
else{
			strFPXWidth = 'FPXWidth=' + objImage.OriginalWidth
			strFPXHeight =  'FPXHeight=' + objImage.OriginalHeight				
			strFsi = unescape(objImage.FSIReference) + '&' + strFPXWidth + '&' + strFPXHeight + '&' + strViewerWidth + '&' + strViewerWidth + '&' + strUI;
			//alert(objImage.length);
}
		
		// TODO more error handling
		//alert(strFsi)
		//alert(strFsi);
//alert(objImage.FSIReference)
		return strFsi;
	}
      
	function RenderFsi(strFsiUrl, strHtmlElementId){
		var objFsi = new SWFObject(strFsiUrl, strHtmlElementId +"_fsiFlash", intViewerHeight, intViewerWidth, "9", "#FFFFFF");
		objFsi.addParam("wmode", "opaque");
        objFsi.write(strHtmlElementId);
      }
/*************************************/

/**********Get image form mindworing**************/
function GetImage(imageId, strHtmlElementId, intHeight, intWidth){
	    var url = '/Handlers/MindWorkingSingleImage.ashx';
		var pars = 'MwImageId=' + imageId + '&MwHeight=' + intHeight + '&MwWidth=' + intWidth;
//prompt(pars,pars)
//alert(url)
		var myAjax = new Ajax.Request(
			url,
				{
				method: 'get',
				parameters: pars,
				onComplete: function (objRequest){
//alert(objRequest.responseText)
				       objImage = eval('(' + objRequest.responseText + ')');
				        if(objImage.ID > 0){
    						objImage.ImageUrl = unescape(objImage.ImageUrl)
//alert(unescape(objImage.ImageUrl))
    						document.getElementById(strHtmlElementId).style.backgroundImage= 'url(' + objImage.ImageUrl + ')';
				        }
				        else{
				        	//alert("no Image selected")
				        }
				 },
				onFailure: RequestError	
				});
	}

/********** end Get image form mindworing**************/

/**********Get image form mindworing**************/
function GetImageURL(imageId, strHtmlElementId, intHeight, intWidth){
	    var url = '/Handlers/MindWorkingSingleImage.ashx';
		var pars = 'MwImageId=' + imageId + '&MwHeight=' + intHeight + '&MwWidth=' + intWidth;
//prompt(pars,pars)
//alert(url)
		var myAjax = new Ajax.Request(
			url,
				{
				method: 'get',
				parameters: pars,
				onComplete: function (objRequest){
//alert(objRequest.responseText)
				       objImage = eval('(' + objRequest.responseText + ')');
				        if(objImage.ID > 0){
    						objImage.ImageUrl = unescape(objImage.ImageUrl)
//alert(unescape(objImage.ImageUrl))
    						document.getElementById(strHtmlElementId).src= objImage.ImageUrl;
    						alert(document.getElementById(strHtmlElementId).src);
				        }
				        else{
				        	//alert("no Image selected")
				        }
				 },
				onFailure: RequestError	
				});
	}
/********** end Get image form mindworing**************/

/************************************/






