//--------------------------------- CUSTOM GLOBAL SECTION ----------------------------------
var mm_domain         = 'sizegenetics.com';
var mm_server         = 'cg1.maxymiser.com/cg';
var mm_traffic_level  = 1;
var mm_guard_interval = 20; //maximum delay in seconds to showbetween timeout since content washidden
var mm_mode           = 0; //work mode of the  script 0-generate+track, 1-track only, 2-disabled
var mm_debug          = 0; //0-no debug messages otherwise show debug messages into browser
//--------------------------------- END GLOBAL SECTION -------------------------------

//--------------- DO NOT EDIT BELOW THIS LINE------------------------------------------
var mm_variables = new Array();
var mm_boxes     = new Array();
var mm_hidden    = false;
var mm_cookie_OK = 0;
var mm_pd        ='';
var mm_rnd       = Math.random?Math.random():0.5;
var mm_ref       = top.document.referrer.substring(0,128);
var mm_page      = document.location.href.substring(0,128);
var mm_proto     = document.location.protocol;
var mm_page_title= document.title;
var mm_guard;

//--------------------------------- CODE SECTION --------------------------------------
//redefine config parameters through URL
var mm_url = window.location.search.toLowerCase().substring(1);
mm_domain = mm_toStr(mm_domain, mm_getValueByKey(mm_url, 'mm_domain','=','&'));
mm_server = mm_toStr(mm_server, mm_getValueByKey(mm_url, 'mm_server','=','&'));
mm_traffic_level = mm_toNum(mm_traffic_level, mm_getValueByKey(mm_url, 'mm_traffic_level','=','&'));
mm_guard_interval = mm_toNum(mm_guard_interval, mm_getValueByKey(mm_url, 'mm_guard_interval','=','&'));
mm_mode = mm_toNum(mm_mode, mm_getValueByKey(mm_url, 'mm_mode','=','&'));
mm_debug = mm_toNum(mm_debug, mm_getValueByKey(mm_url, 'mm_debug','=','&'));

//check if browser support necessary functionality
if( mm_mode == 0 && !document.getElementsByTagName){ mm_mode = 1;}
//check if current user will participate in test
mm_pd = mmGetCookie('mmpd');
if( mm_pd == '' && (mmGetCookie('mmtl')>0 || mm_traffic_level < mm_rnd) ){ 
  mmSetCookie('mmtl',mm_traffic_level, 5);
  mm_mode = 2;
}
//check if cookies writable
mmSetCookie('mmtst', (''+mm_rnd).substring(0,5), 0); 
mm_cookie_OK = (mmGetCookie('mmtst')==(''+mm_rnd).substring(0,5))?1:0;
if( mm_pd=='' && mm_mode==0 && !mm_cookie_OK){ mm_mode=1;}
//hide dynamic content
if( mm_mode==0){ mm_hidden = mmHideContent(true); }
//set in timer guard to unhide content in case of long delays from MM server
if( mm_hidden){ mm_guard = window.setTimeout(mm_guard_func, mm_guard_interval*1000); }

//convert string to num, return default_value when error
function mm_toNum(default_value, str)
{
  return (str.length && !isNaN(str))? Number(str): default_value;     
}
//convert string to string, return default_value when error
function mm_toStr(default_value, str)
{
  return str.length? str : default_value;     
}

//get value of parameter from str in form param filed_delim value rec_delim
function mm_getValueByKey(str, paramName, field_delim, rec_delim) 
{
  var recs = str.split(rec_delim);
  for(var i=0; i<recs.length; i++){ 
    var flds = recs[i].split(field_delim); 
    if(flds[0].replace(' ','').toLowerCase()==paramName.replace(' ','').toLowerCase()) {return (flds.length>1)?flds[1]:'';}
  };
  return '';
}

//unhide hidden content in timer
function mm_guard_func()
{
    if(mm_hidden) {mm_hidden = !mmHideContent(false);}        
    mm_guard = 0;
}

//hide/unhide content having CSS class name 'Maxymiser'
function mmHideContent(hide)
{
   var mm_visibility = hide==true ? 'visibility:hidden;':'visibility:visible;';
   try{
      if ((navigator.userAgent).indexOf("Opera")!=-1){
        //document.write("<style type='text/css'> .MaxyBox {" +mm_visibility+ "} </style>");
        return false;
      }else if ((navigator.appName).indexOf("Netscape")!=-1){
        document.styleSheets[0].insertRule(".MaxyBox {" +mm_visibility+ "}", hide?0:1);
      }else if ((navigator.appName).indexOf("Microsoft")!=-1){
        document.styleSheets[0].addRule('.MaxyBox', mm_visibility);
      }else{
        return false; //unknown browser
      }
   } catch(err) {
      return false;
   }
   return true;
}

function mmSetCookie(name, value, exp_days)
{
    var exp = new Date();
    exp.setTime((new Date()).getTime() + exp_days*1000*24*60*60);
    document.cookie  = escape(name) + "=" + escape(value)+ "; path=/" + (exp_days>0?("; expires=" + exp.toGMTString()):'');
}

function mmGetCookie(name)
{
    return mm_getValueByKey(document.cookie.toLowerCase(), name.toLowerCase(), '=', ';');
}

function mmSetUserVar(varname, value)
{
    if( typeof value == "undefined") value = "";
    mm_variables.push(varname + "=" + value);
}

function mmVerifyMaxyboxes()
{

    if( mm_hidden && mm_mode>0) {mm_hidden = mmHideContent(false); return; }

    if( mm_boxes.length ==0 && mm_hidden && mm_mode==0){
        var all_div_boxes = document.getElementsByTagName('div');
        var all_div_boxes_len = all_div_boxes.length;
        for(var i=0; i<all_div_boxes_len; i++){
            if(all_div_boxes[i].id.length && all_div_boxes[i].className.toLowerCase() == 'maxybox' && !all_div_boxes[i].visible){
               mm_boxes.push( all_div_boxes[i] );
            }
        }
    } 
}

function mmGetMaxyBoxByID(id)
{
 if( !mm_hidden ) return;
 var iid = id.toLowerCase();
 for(var i=0; i<mm_boxes.length; i++){
    var mb = mm_boxes[i];
    if( mb.className.toLowerCase() == 'maxybox' && !mb.visible && mb.id.toLowerCase()==iid){
        return mb;
    }
 }
}

function mmGo()
{
    if(mm_mode>1) {return;}
    var uri = mm_proto+"//"+mm_server + "?";

//content vars
    var mm_cv = '';
    if(mm_hidden && mm_mode==0){
        for(var j=0; j<mm_boxes.length; j++){ 
           var mbox_debug_value = mm_getValueByKey(mm_url, mm_boxes[j].id,'=','&');
           if(mbox_debug_value.length==0)
              mm_cv += mm_boxes[j].id + ';';
           else
              mm_cv += mm_boxes[j].id + '=' + mbox_debug_value + ';';
        }
    }
    uri += mm_cv.length?'cv='+escape(mm_cv)+'&':'';

//fixed vars
    var mm_fv = '';
    mm_fv+='dmn='+ mm_domain+';';
    mm_fv+='cok='+ mm_cookie_OK+';';
    if(mm_page_title) mm_fv+='ptl='+mm_page_title+';';
    mm_fv+='ref='+ mm_ref;
//    mm_fv+="url="+ mm_page+';';
    uri  +='fv='+escape(mm_fv);

//user vars
    var mm_uv = '';
    for (var i = 0; i < mm_variables.length; i++){mm_uv += mm_variables[i] + ";";} 
    uri += mm_uv.length?'&uv='+escape(mm_uv):'';

//history
    uri += mm_pd.length?'&pd='+escape(mm_pd):'';

    var str = "<"+"script id='mm_request' type='text/javascript' src='" + uri + "'><" + "/" + "script" + ">";
    document.write(str); //request to MM
}
