// mdressler: 19.09.2008 - js for save-cookie 'affiliateid'
function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

var qsTrackParams = new Array("affiliateid","ref"); //parameternamen
// SaveParams on window-onload:
//onLoadObj[onLoadObj.length]="checkAndSaveParams(qsTrackParams,60*60*48);";
window.onload = function() {
    checkAndSaveParams(qsTrackParams,60*60*24*30); // 30 days expiration
    if((typeof onLoadObj !='undefined' ) && 0<onLoadObj.length)
		onLoadHandler();
}

/* TRACKING COOKIE, save */
function checkAndSaveParams(arrParamNames,expiredur){ // in seconds
    for(var i=0;i<arrParamNames.length;i++){
        var v=RequestParam(arrParamNames[i]);
        if(v!=null){
            var b=new localBuffer(arrParamNames[i],v);
            b.save(v,expiredur);
        }
    }
}
function loadParams(arrParamNames){
    var res=new Array();
    for(var i=0;i<arrParamNames.length;i++){
        var b=new localBuffer(arrParamNames[i]);
        b.load();
            if(b && b.name && b.name!="" && b.value!=null){
            res[b.name]=b.value;
        }
    }
    return res;
}

// LIB -STUFF
function RequestParam(name){
var Pl = self.location.search;
var pars;
var valu=null;
name=name.toUpperCase();
if(Pl.length>1){
  Pl=Pl.slice(1,Pl.length);
  pars=Pl.split("&");
  for(i=0; i<pars.length;i++){
    hs=new String(pars[i]);
pe=hs.indexOf("=");
    if(pe>0){
      if(hs.slice(0,pe).toUpperCase()==name)
         valu=hs.slice(pe+1,hs.length);
    }
    else{
      if(hs.toUpperCase()==name) valu=new String();
    }
  }
}
return valu;
}

//cookie management
function localBuffer(name,value){
 	this.name=name;
 	this.value=value || null;
}

localBuffer.prototype.load=function(){
    var cok=document.cookie;
    var larr1=cok.split("; ");
    var v=null;
    for(var i=0;i<larr1.length && !v;i++){
        var eqPos=(larr1[i]).toString().indexOf('=');
        if(eqPos>0){
            var n=trim(larr1[i].substring(0,eqPos));
            if(n==''+this.name) v=larr1[i].substring(eqPos+1,larr1[i].length);
        }
    }
    this.value=unescape(v);
    return this.value;
}

localBuffer.prototype.save= function(v,expiration){ // expiration is time (duration) in seconds
    if(v) this.value=v;
    var coktxt=this.name+'='+escape(this.value)+"; ";
    if(expiration){
        var e=new Date();
        e.setTime(e.valueOf()+1000*expiration);
        coktxt+="expires="+e.toGMTString()+"; ";
    }
    coktxt+="path=/;";
    document.cookie=coktxt;
}
function getCName(n)
{
 a = document.cookie;
 res = '';
 while(a != '')
 {
  while(a.substr(0,1) == ' '){a = a.substr(1,a.length);}
  cookiename = a.substring(0,a.indexOf('='));
  if(a.indexOf(';') != -1)
  {cookiewert = a.substring(a.indexOf('=')+1,a.indexOf(';'));}
  else{cookiewert = a.substr(a.indexOf('=')+1,a.length);}
  if(n == cookiename){res = cookiewert;}
  i = a.indexOf(';')+1;
  if(i == 0){i = a.length}
  a = a.substring(i,a.length);
 }
return(res)
}

//Android Windows Phone iPhone ?iPad? SIE- BlackBerry Windows CE HTC_Smart_F3188 LG- LGE- LG/ MOT- Symbian Series60 webOS
//SEC-SGHU600/1.0 SAMSUNG Opera Mini Bada SonyEricsson
var browserAndDevices	= {
/* ---- example
		//passende Infos an passender Stelle
		//seralisierung fürs Cookie fehlt allerdings
		'Iphone'		: {'uaCrit':'iphone', 'device' : {'mobil' : {'w' : 640, 'h' : 960}}}, 
		*/
		'Iphone'		: {'uaCrit':'iphone', 'device' : {'mobil' : true}},
		'android'		: {'uaCrit':'android', 'device' : {'mobil': true}},
		'winPhone'		: {'uaCrit':'windows phone', 'device' : {'mobil': true}},
		'blackberry'	: {'uaCrit':'blackberry', 'device' : {'mobil': true}},
		'winCE'			: {'uaCrit':'windows ce', 'device' : {'mobil': true}},
		'symbian'		: {'uaCrit':'symbian', 'device' : {'mobil': true}},
		'siemens'		: {'uaCrit':'sie-', 'device' : {'mobil': true}},
		'samsung'		: {'uaCrit':'samsung', 'device' : {'mobil': true}},
		'motorola'		: {'uaCrit':'mot-', 'device' : {'mobil': true}},
		'sony ericsson'	: {'uaCrit':'sonyericsson', 'device' : {'mobil': true}},
		'series60'		: {'uaCrit':'series60', 'device' : {'mobil': true}},
		'webos'			: {'uaCrit':'webos', 'device' : {'mobil': true}},
		'LG'			: {'uaCrit': function (browser){
				return (String(browser.ua).search(/lg(e-|-|\/|;)/) > -1) ? true : false;
			}
			, 'device' : {'mobil': true}},
		'opera mini'	: {'uaCrit':'opera mini', 'device' : {'mobil': true}}, //Browser for mobiles
		'bada'			: {'uaCrit':'bada', 'device' : {'mobil': true}},
		'sec-sghu600'	: {'uaCrit':'sec-sghu600/1.0', 'device' : {'mobil': true}},
		'htc f3188'		: {'uaCrit':'htc_smart_f3188', 'device' : {'mobil': true}}
};

// debugging
//afid = getCName('affiliateid');
//document.write(afid);

//Browsercheck moved 2 the head <= performance
browser					= new Object();
browser.ua				= self.navigator.userAgent.toLowerCase();
browser.actual			= new Object();
browser.device			= new Object();
browser.fCache			= true;
browser.mobil			= null;
browser.mobilResolution	= null;
browser.mobilURL		= (typeof browser_mobilURL == "string" && browser_mobilURL.length>3) ? browser_mobilURL : "http://www.stage-entertainment.de/mobile/home.htm";

browser.isByDeviceList	= function(label){
	var res	= null;
	if(res = this.is(browserAndDevices[label].uaCrit)){
		return browserAndDevices[label];
	}
	return res;
};

browser.is				= function(needles){
	if(typeof needles == "string"){
		if(browser.ua.indexOf(needles) > -1) return true;
			else return false;
	}else if(typeof needles == "object"){
		for(var i=0;i<needles.length;i++){
			if(browser.ua.indexOf(needles[i])==-1) return false;
		}
		return true; 
	}else if(typeof needles == "function"){
		return needles(browser);
	}
	return null;
};

browser.isNull			= function(v){
	return (v === null || v === "null") ? true : false;
}

browser.detect			= function(){
	var b	= new localBuffer('mobil', '');
	if(browser.mobilURL){
		if(b.load()==="1" && this.fCache){
			this.mobil	= true;
			return true;
		}
		b.name	= "redirected";
		if(this.isNull(b.load()) || !this.fCache){
			//Ist die Resolution nicht richtig, gibt es keinen Redirect. Ansonsten wird auf Device geprüft
			if(this.setMobilResolution() === false){
//				var found		= null;
				for(var label in browserAndDevices){
					if(this.actual = browser.isByDeviceList(label)){
//						found				= true;
						this.actual.label	= label;
						break;
					}
				}
//			console.log("readCookie 111 :");
				if(this.setDevice()){
					b.name='mobil';
					b.save('1', 1000*60*60*24*30);
//					console.log("setDevice "+b.load());
//					writeCookie('mobil', 'true', false, "/");
				}else{
					b.name="redirected";
					b.save('1', 1000*60*60*24*30);
//					writeCookie('redirected', 'true', false, "/");
				}
			}
//			writeCookie('mobile', 'true', 1000*60*60*24*30, "/");
		}
	}
};

browser.setDevice		= function(){
	if(this.actual){
		if(this.actual.device){
			this.device	= this.actual.device;
		}
	}
	return this.setMobil();
};

browser.setMobil		= function(){
	if(this.actual){
		this.mobil	= new Boolean(this.device.mobil);
	}
	return this.mobil;
};

browser.setMobilResolution	= function(){
	this.mobilResolution	= (Math.max(window.screen.height, window.screen.width)<1024) ? true : false;
	return this.mobilResolution;
};

if(typeof browserAndDevices != "undefined"){
	browser.detect();
//	console.dir(browser);
//	alert('the end');
	if(browser.mobilURL && (browser.mobil || browser.mobilResolution)){
//		alert('redirect');
		window.location.replace(browser.mobilURL);
	}
}

