var busassid,conversion=0;
var serverIP;//= "localhost:8080";
//var serverIP= "www.adelixir.com";
var clickId ="";
var ne_URL="";
var ppc_id=0;
var intId ="";
var ordUrl="";
var txtCtrlName="lxrtrans";
var ipAddr=""; var seCode=0; var keyword=""; var currentUrl="";
var referrer=""; var trackCnt=0;var strHttp="";
var REC_SEP="LXR:"; FLD_SEP="|";
var REC_TRAN='T', REC_ITEM='I';
var DIRECT=3, ORGANIC =2, SPONSERED=1,SEARCH_MATCH=4,CONTENT_MATCH=5,LATE_CONVERSION=6, SCRIPT_DISABLED=7;
var convType=0;
var debug=0;
var firstpage=0;
var resAndUnsafe =  new Array();
var enCodResAndUnsafe = new Array();
resAndUnsafe[0]="%";      enCodResAndUnsafe[0]="%25";
resAndUnsafe[1]="&";      enCodResAndUnsafe[1]="%26";
resAndUnsafe[2]="\\+";      enCodResAndUnsafe[2]="%2B";
resAndUnsafe[3]=",";      enCodResAndUnsafe[3]="%2C";
resAndUnsafe[4]="/";      enCodResAndUnsafe[4]="%2F";
resAndUnsafe[5]="`";      enCodResAndUnsafe[5]="%60";
resAndUnsafe[6]=";";      enCodResAndUnsafe[6]="%3B";
resAndUnsafe[7]="=";      enCodResAndUnsafe[7]="%3D";
resAndUnsafe[8]="\\?";      enCodResAndUnsafe[8]="%3F";
resAndUnsafe[9]="@";      enCodResAndUnsafe[9]="%40";
resAndUnsafe[10]=" ";      enCodResAndUnsafe[10]="%20";
resAndUnsafe[11]="\"";      enCodResAndUnsafe[11]="%22";
resAndUnsafe[12]="<";      enCodResAndUnsafe[12]="%3C";
resAndUnsafe[13]=">";      enCodResAndUnsafe[13]="%3E";
resAndUnsafe[14]="#";      enCodResAndUnsafe[14]="%23";
resAndUnsafe[15]="\\$";      enCodResAndUnsafe[15]="%24";
resAndUnsafe[16]="{";      enCodResAndUnsafe[16]="%7B";
resAndUnsafe[17]="}";      enCodResAndUnsafe[17]="%7D";
//resAndUnsafe[18]="\\|";      enCodResAndUnsafe[18]="%7C";
resAndUnsafe[18]="\\\\";      enCodResAndUnsafe[18]="%5C";
resAndUnsafe[19]="\\^";      enCodResAndUnsafe[19]="%5E";
resAndUnsafe[20]="~";      enCodResAndUnsafe[20]="%7E";
resAndUnsafe[21]="\\[";      enCodResAndUnsafe[21]="%5B";
resAndUnsafe[22]="\\]";      enCodResAndUnsafe[22]="%5D";
resAndUnsafe[23]=":";      enCodResAndUnsafe[23]="%3A";
resAndUnsafe[24]="'";      enCodResAndUnsafe[24]="%60";


function getURLParam(strHref,strParamName){
var strReturn = "";
//var strHref = window.location.href;
if ( strHref.indexOf("?") > -1 ){
    if(strHref.indexOf("?")!= strHref.lastIndexOf("?")){
       strReturn= getURLParameter(strHref,strParamName);
       return strReturn;
    }
var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
var aQueryString = strQueryString.split("&");
for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
var aParam = aQueryString[iParam].split("=");
strReturn = aParam[1];
break;
}
}
}
return strReturn;
}

function getURLParameter(strHref,strParamName){
  var strReturn = "",found=0;
  //var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.split("?"); //strHref.substr(strHref.indexOf("?")).toLowerCase();
    for ( var i = 0; i< strQueryString.length; i++ ){
      var aQueryString = strQueryString[i].split("&");
      for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
        if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
          var aParam = aQueryString[iParam].split("=");
          strReturn = aParam[1];
          found=1;
          break;
        }
      }
      if(found==1){
          break;
      }
    }
  }
  return strReturn;
}


function pageTracker()
{
  // search engine names arrry
  var seNames = new Array("yahoo","google","msn","bing","live","lycos","ask","altavista","netscape","cnn","looksmart","about","mamma","alltheweb","gigablast","voila","virgilio","aol","baidu","alice","yandex","najdi","aol","club-internet","mama","seznam","search","szukaj","szukaj","netsprint","google.interia","szukacz","yam","pchome","aol","wholesale.shop.ebay","internetwebsearches","preciomania","busca.orange","target","bottomdollar","shoppinghelper","es.seshamo","miraclelinks","search.info","butterflybudda","wwwking","search.tiscali","yu-gi-oh","zwangi","shopping","search.goo","yourhomediy","search.freecause","grtds","search.centrum","suche.aol","upc","de.you.dh","preisvergleich","passionpuzzles","collectantiquestoday","bestclicksever","myspace","search.rr","greatestbargainsu","szukaj.onet","office.microsoft","nothingbutdeals","zoeken","telegraph","linkstoresources","delphifr","lemoteur","tomsguide","everysource","youreviewelectronics","computerbild","swg.wikia","ilse","youtube","epinions","teenmag","eniro","mysearch","wwwmistergoodeal","dailymail","caloriecount.about","testberichte","pricescan","wer-weiss-was","gifts","searchexplorer","my.att","suche.web","suchmaschine","oneview","locatetargets","miracledeals","myshoppinglinks","greatestbargainsu","rainbowmaki","soso","home.meinestadt","lo.st","snap","oneriot","surfcanyon","mednar","hakia","tweetmeme","dmoz","rediff","qango","rover.ebay","joeant","cuil");
  // search engine ids array
  var seIds =  new Array(1,2,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
  // search keyword query parameters array
  var kwQuery =  new Array("p","q","q","q","q","query","q","q","query","query","qt","terms","query","q","q","rdata","qs","query","wd","qs","text","q","q","q","query","q","q","szukaj","qt","q","q","q","k","q","encquery","_nkw","utm_term","form_keyword","q","field-keywords","form_keyword","gam5","q","im7rdp","qkw","jungle5","q","q","keyword","keywords","KW","MT","keywords","p","keyword","phrase","query","q1","q3","qa","Keywords","qkey","qrr","qry","qs","qssay","qt","qu","que","q","queryText","qwr","r","rdata","recherche","qrt5","s","q","search","search_for","search_query","search_string","search_term","search_word","searchfor","searchKey","searchPhrase","searchpro","searchstr","searchString","title","keyword","st","string","su","suchstr","q","terms","tmp5","utm_qr","utm_qry","utm_term","W","words","x_query","query","q","q","fullRecord","q","q","search","MT","query","query","keywords","q");
  // click id codes for each search engine
  var clickCode = new Array("","gclid","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","");
  //Default keyword query parameters array
  var defQuery = new Array("q", "keyword", "query", "term", "search_term", "search_query");
  var trackType = 3;//DIRECT;
  var ampOpr="%26";
  var equalOpr="%3D";
  var quesMark="%3F";

  try{
    if(parent==self){
	ne_URL=document.URL;
  }else{
	//var ne_URL=top.document.URL;
        ne_URL=top.location.href;
  }
  //alert(ne_URL);
  if(ne_URL==undefined){
    ne_URL="";
  }
  ppc_id= getURLParam(ne_URL,'ne_ppc_id');
  if(ppc_id==undefined || isNaN(ppc_id)){ppc_id=0;}
  var keyword_id = getURLParam(ne_URL, 'ne_key_id');
//  var adgrp_id = getURLParam(ne_URL,'ne_adgrp_id');
  var adgrp_id=getURLParam(ne_URL,'ne_adgrpid_id');
  if(!adgrp_id>0)
	  adgrp_id=getURLParam(ne_URL,'ne_adgrp_id');
//  alert(adgrp_id);
  var ad_id = getURLParam(ne_URL,'ne_ad_id');
  var ne_sadid = getURLParam(ne_URL,'ne_sadid');
  var ne_kw = getURLParam(ne_URL,'ne_kw');
  var neup = getURLParam(ne_URL,'neup');
  var nevd = getURLParam(ne_URL,'nevd');
  var nech = getURLParam(ne_URL,'nech');
}catch(E){

}

  var t=new Date();
  var yea = t.getYear();
  var dformat=t.getDate()+"."+(t.getMonth()+1)+"."+(((yea%100)+2000))+"."+ t.getHours()+"." + t.getMinutes() +"."+ t.getSeconds()+ "."+ t.getMilliseconds();
  try{
     strHttp="http"+(ne_URL.indexOf('https:')==0?'s':'');
  }catch (E){
    strHttp="https";
  }
  if(debug==1){
    serverIP= "www.adelixir.com";
    p=strHttp+"://"+ serverIP + "/lxrTracking/NeROITrack/" + busassid  +"/?busassid="+busassid+"&ne_conv="+conversion+"&ne_ppc_id="+ppc_id+"&ne_key_id="+keyword_id+"&ne_adgrp_id="+adgrp_id+"&ne_ad_id=" +ad_id+"&ne_conv_type="+convType;
    //p=strHttp+"://"+ serverIP + "/roi100/NeROITrack.php?busassid="+busassid+"&ne_conv="+conversion;
    //referrer=escape("http://www.google.de/search?q=hypothekendarlehen&ie=utf-8&oe=utf-8&rls=org.mozilla:de:official&client=firefox-a");
        try{

        if(parent==self){
            //var ne_URL=document.URL;
            var ne_Title= document.title;

            referrer= escape(document.referrer);
            currentUrl=escape(ne_URL);
            p+="&ne_url="+currentUrl;
            p+="&ne_ti="+escape(ne_Title);
        }
        else {
            //var ne_URL=top.document.URL;
            var ne_Title= top.document.title;
            referrer=escape(top.document.referrer);
            currentUrl=escape(ne_URL);
            p+="&ne_url="+currentUrl;
            p+="&ne_ti="+escape(ne_Title);
        }
        } catch(E){
        }

  }else if(debug==0) {
    serverIP= "www.adelixir.com";
    p=strHttp+"://"+ serverIP + "/NeROITrack/" + busassid  +"/?busassid="+busassid+"&ne_conv="+conversion+"&ne_ppc_id="+ppc_id+"&ne_key_id="+keyword_id+"&ne_adgrp_id="+adgrp_id+"&ne_ad_id=" +ad_id+"&ne_conv_type="+convType;
    try{

        if(parent==self){
            //var ne_URL=document.URL;
            var ne_Title= document.title;

            referrer= escape(document.referrer);
            currentUrl=escape(ne_URL);
            p+="&ne_url="+currentUrl;
            p+="&ne_ti="+escape(ne_Title);
        } else {
            //var ne_URL=top.document.URL;
            var ne_Title= top.document.title;
            referrer=escape(top.document.referrer);
            currentUrl=escape(ne_URL);
            p+="&ne_url="+currentUrl;
            p+="&ne_ti="+escape(ne_Title);
        }
        //referrer=escape(parent==self?document.referrer:top.document.referrer);
    }catch(E){

    }

  }
  //if(referrer.toLower== "http://localhost:8084/sampletest/AdDisplay.jsp".toLower){
     //referrer= "http://aolsearch.aol.co.uk/aol/search?query=king.com&restrict=wholeweb&isinit=true&avtype=&invocationType=hf_talktalk_cl_ws_silver";
      //referrer= "http://www.google.co.in/search?hl=en&client=firefox-a&rls=org.mozilla:en-US:official&hs=o2m&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=netelixir&spell=1";
  //}
  p+="&ne_rf="+referrer;
  p+="&ne_tz="+escape(-1*t.getTimezoneOffset());
  p+="&ne_ch="+escape(dformat);
  p+="&ne_js=1";
  p+="&ne_ul="+escape(navigator.appName=="Netscape"?navigator.language:navigator.userLanguage);
  /*try{
    if(ne_URL!=document.URL) p+="&ne_ol="+escape( document.URL);
  }catch(E){

  }*/
  if(typeof(screen)=="object"){
     p+="&ne_sr="+screen.width+"x"+screen.height;p+="&ne_cd="+screen.colorDepth;
     p+="&ne_jo="+(navigator.javaEnabled ()?"Yes":"No");
  }
  //Check wheather Sponsered
  if((ppc_id!=null&& ppc_id>0)  && (keyword_id!=null && keyword_id>0)){
      trackType=SPONSERED;
  }else if((ppc_id!=null && ppc_id>0) && ((adgrp_id!=null && adgrp_id>0)||(ad_id!=null && ad_id>0))){
      trackType=CONTENT_MATCH;
  }else if((ppc_id!=null && ppc_id>0) && (ne_sadid!=null && ne_sadid>0)){
      trackType=CONTENT_MATCH;
  }
  //Below block is for getting the referrer search engine
  if (referrer != null && referrer !=""){   //not direct entry in browser
    var u = referrer;
    //if(u.indexOf(clickCode[i]) == -1){
    var length=0;
    var isKeyword=0;
    var gclid="";
    u=u.replace("order.store.yahoo.net","order_store_yahoo_net");
    var flag = true;
        for (var i =0;i<seNames.length;i++){
            if(u.indexOf("." + seNames[i] + ".")>0){
            p+="&ne_src="+ seNames[i];
            p+="&ne_se=" + seIds[i];
            seCode = seIds[i];
            //finding the keyword
            u.replace("http","");
            u.replace(":","|");
            if (u.indexOf("?" + kwQuery[i] + "=") > -1) {
                u = u.substring(u.indexOf("?" + kwQuery[i] + "=") + kwQuery[i].length + 2, u.length);
                isKeyword = 1;
            } else if (u.indexOf(quesMark + kwQuery[i] + equalOpr) > -1) {
                u = u.substring(u.indexOf(quesMark + kwQuery[i] + equalOpr) + quesMark.length + kwQuery[i].length + equalOpr.length, u.length);
                isKeyword = 1;
            } else  if(u.indexOf("&" + kwQuery[i] + "=") > -1){
                u = u.substring(u.indexOf("&" + kwQuery[i] + "=") + kwQuery[i].length + 2, u.length);
                isKeyword = 1;
            } else if (u.indexOf(ampOpr + kwQuery[i] + equalOpr) > -1) {
                u = u.substring(u.indexOf(ampOpr + kwQuery[i] + equalOpr) + ampOpr.length + kwQuery[i].length + equalOpr.length, u.length);
                isKeyword = 1;
            }
            if(isKeyword==1){
                if (u.indexOf(ampOpr)== -1&&u.indexOf("&")==-1){
                     keyword = u.replace("+"," ");
                }else{
                    length=u.indexOf("&")>-1?u.indexOf("&"):0;
                     if(length==0) length=u.indexOf(ampOpr)>-1?u.indexOf(ampOpr):0;
                     keyword = u.substring(0,length).replace("+"," ");
                }
            }

            //If the search engine is google check for gclid exists or not
            if(!(clickCode[i].toLowerCase=="".toLowerCase)){
                gclid =getURLParam(ne_URL,clickCode[i]);
                if(gclId == "" && u.indexOf(clickCode[i])>-1){
                    if(u.indexOf(clickCode[i]+equalOpr)>-1)
                        gclid = u.substring(u.indexOf(clickCode[i]+equalOpr) +clickCode[i].length+ equalOpr.length, u.length);
                    if(u.indexOf(clickCode[i]+"=")>-1)
                        gclid = u.substring(u.indexOf(clickCode[i]+"=") +clickCode[i].length+ equalOpr.length, u.length);
                }
            }
            flag=false;
            break;
            }
        }
        if(flag){
            seCode = 0;
            u=u.replace("http", "");
            u=u.replace(":", "|");
            for (var k=0;k<defQuery.length;k++){
                if (u.indexOf("?" + defQuery[k] + "=") > -1) {
                    u = u.substring(u.indexOf("?" + defQuery[k] + "=") + defQuery[k].length + 2, u.length);
                    isKeyword = 1;
                } else if (u.indexOf(quesMark + defQuery[k] + equalOpr) > -1) {
                    u = u.substring(u.indexOf(quesMark + defQuery[k] + equalOpr) + quesMark.length + defQuery[k].length + equalOpr.length, u.length);
                    isKeyword = 1;
                } else  if(u.indexOf("&" + defQuery[k] + "=") > -1){
                    u = u.substring(u.indexOf("&" + defQuery[k] + "=") + defQuery[k].length + 2, u.length);
                    isKeyword = 1;
                } else if (u.indexOf(ampOpr + defQuery[k] + equalOpr) > -1) {
                    u = u.substring(u.indexOf(ampOpr + defQuery[k] + equalOpr) + ampOpr.length + defQuery[k].length + equalOpr.length, u.length);
                    isKeyword = 1;
                }
                if(isKeyword == 1) {break;}
            }
            if(isKeyword==1){
                if (u.indexOf(ampOpr) == -1 && u.indexOf("&") == -1) {
                    keyword = u.replace("+", " ");
                } else {
                    length = u.indexOf("&") > -1 ? u.indexOf("&") : 0;
                    if (length == 0) {
                        length = u.indexOf(ampOpr) > -1 ? u.indexOf(ampOpr) : 0;
                    }
                    keyword = u.substring(0, length).replace("+", " ");
                }
            }
        }
        p+="&ne_kwd=" +escape(keyword);
        var curUrl = currentUrl;
        if(trackType ==SPONSERED){
            if((seCode== "" || seCode== null)) trackType = SEARCH_MATCH;
        }else if(trackType ==CONTENT_MATCH){
            if((seCode== "" || seCode== null)) trackType = CONTENT_MATCH;
        }else if(trackType !=CONTENT_MATCH || trackType !=SPONSERED) {
                if((seCode== "" || seCode== null)){
                    if(gclid!=null&&gclid!="")
                        trackType = SEARCH_MATCH;
                    else
                        trackType = DIRECT;
                }else{
                    trackType=ORGANIC;
                }
         }else{
            trackType=DIRECT;
        }
        }
  p+="&ne_sadid=" + ne_sadid;
  p+="&ne_kw=" + escape(ne_kw);
  p+="&nech=" + nech;
  p+="&nevd=" + escape(nevd);
  p+="&neup=" + escape(neup);
  p+="&ne_Type=" + trackType;
  //check whether order details exists or not.
  if (document.getElementById(txtCtrlName)!= null){
    if (document.getElementById) transDet=document.getElementById(txtCtrlName);
    else if(document.getElementById('lxrform') && document.getElementById('lxrtrans')){
      var frm = document.getElementById('lxrform');
      transDet = frm.lxrtrans;
    }
    //else if (document.lxrform && document.lxrform.lxrtrans) transDet=document.lxrform.lxrtrans;
    if(trim(transDet.value)!= ""){
      getOrderDetails();
      p = p + ordUrl;
    }
  }
  //alert(p);

  if(navigator.appName=="Microsoft Internet Explorer"){
    document.write('<img id="TAG" border="0" width="1" height="1" src="'+p+'">');
  }else{
    printImage('<img id="TAG" border="0" width="1" height="1" src="'+p+'">');
  }
}

// Removes leading whitespaces
function LTrim( value ) {
	var re = /\s*((\S+\s*)*)/;
    return value.replace(re, "$1");
}

// Removes ending whitespaces
function RTrim( value ) {
   var re = /((\s*\S+)*)\s*/;
   return value.replace(re, "$1");
}

// Removes leading and ending whitespaces
function trim( value ) {
   return LTrim(RTrim(value));
}


function removeSpecialCharacters(str){
  for ( i = 0; i < resAndUnsafe.length; i++ ) {
     str = str.replace(RegExp(resAndUnsafe[i],"g"), enCodResAndUnsafe[i]);
  }
  return str;
}
//function to read the order details
function getOrderDetails()
{
	var transDet, transUrl,itemUrl,totQty=0,totItemsUrl="";
        if (document.getElementById(txtCtrlName)!= null){
          if (document.getElementById) transDet=document.getElementById(txtCtrlName);
          else if(document.getElementById('lxrform') && document.getElementById('lxrtrans')){
            var frm = document.getElementById('lxrform');
            transDet = frm.lxrtrans;
          }
	//if (document.getElementById) transDet=document.getElementById(txtCtrlName);
	//else if (document.lxrform && document.lxrform.lxrtrans) transDet=document.lxrform.lxrtrans;
        var currentTime = new Date();
        var tcoid1="LXR_" + currentTime.getTime();
        transDet.value.replace("\n","");
	var recArr=transDet.value.split(REC_SEP);
	for (var ii=0;ii<recArr.length;ii++) {
          recArr[ii]=trim(recArr[ii]);
          recArr[ii]=removeSpecialCharacters(recArr[ii]);
	  if (recArr[ii].charAt(0)!=REC_TRAN && recArr[ii].charAt(0)!=REC_ITEM) continue;
	  var f=recArr[ii].split(FLD_SEP);
	  if (f[0].charAt(0)==REC_TRAN) {
            transUrl="&lxr_tcode=tran";
            f[1]=trim(f[1]);
            //alert(f[1].toUpperCase());
            if(f[1]&&f[1]!="" && f[1].toUpperCase()!="NULL" && f[1]!="0" && f[1].toUpperCase()!="NUL"){
            transUrl +="&lxr_tcoid=" + escape(f[1]);
            }else{
            transUrl +="&lxr_tcoid=" + escape(tcoid1);
            }
            //alert(transUrl);
	    f[2]=trim(f[2]); if(f[2]&&f[2]!="") transUrl +="&lxr_tto="+escape(f[2]);
	    f[3]=trim(f[3]); if(f[3]&&f[3]!="") transUrl +="&lxr_ttx="+escape(f[3]);
	    f[4]=trim(f[4]); if(f[4]&&f[4]!="") transUrl +="&lxr_tsh="+escape(f[4]);
          } else {
            itemUrl="&lxr_ti_code=item";
            f[1]=trim(f[1]);

            if(f[1]&&f[1]!="" && f[1].toUpperCase()!="NULL" && f[1]!="0" && f[1].toUpperCase()!="NUL"){
            itemUrl +="&lxr_tcoid" + (ii-1)+ "="+escape(f[1]);
            }else{
            itemUrl +="&lxr_tcoid" + (ii-1)+ "=" + escape(tcoid1);
            }
            f[2]=trim(f[2]); if(f[2]&&f[2]!="") itemUrl +="&lxr_isc"+ (ii-1)+"="+escape(f[2]);
            f[3]=trim(f[3]); if(f[3]&&f[3]!="") itemUrl +="&lxr_ipn"+ (ii-1)+"="+escape(f[3]);
            f[4]=trim(f[4]); if(f[4]&&f[4]!="") itemUrl +="&lxr_ictg"+ (ii-1)+"="+escape(f[4]);
            f[5]=trim(f[5]); if(f[5]&&f[5]!="") itemUrl +="&lxr_ipr"+ (ii-1)+"="+escape(f[5]);
            f[6]=trim(f[6]); if(f[6]&&f[6]!="") itemUrl +="&lxr_iqt"+ (ii-1)+"="+escape(f[6]);
            f[7]=trim(f[7]); if(f[7]&&f[7]!="") itemUrl +="&lxr_itot"+ (ii-1)+"="+escape(f[7]);
            if(f[6]!="")
            totQty +=parseFloat(f[6]);
            totItemsUrl+=itemUrl;
          }
        } //for
	transUrl +="&lxr_tlc="+(recArr.length-2);
	transUrl +="&lxr_tic="+totQty;
	ordUrl = transUrl + totItemsUrl;
        //alert(ordUrl);
      }
 return;
}
   //document.write = function(str){
   function printImage(str){
        //str= str.replace(/undefined/gi , "");
        var moz = !window.opera && !/Apple/.test(navigator.vendor);

        if ( str.match(/^<\//) ) return;

       if ( !window.opera )
           str = str.replace(/&(?![#a-z0-9]+;)/g, "&");
       str = str.replace(/<([a-z]+)(.*[^\/])>$/, "<$1$2></$1>");

       if ( !moz )
           str = str.replace(/(<[a-z]+)/g, "$1 xmlns='http://www.w3.org/1999/xhtml'");
       var div = document.createElementNS("http://www.w3.org/1999/xhtml","div");
       div.innerHTML = str;

       var pos;

       if ( !moz ) {
           pos = document.getElementsByTagName("*");
           pos = pos[pos.length - 1];

       } else {
           pos = document;
           while ( pos.lastChild && pos.lastChild.nodeType == 1 )
               pos = pos.lastChild;
       }

      var nodes = div.childNodes;
       while ( nodes.length )
           pos.parentNode.appendChild( nodes[0] );
   };  

