/* *******************************************
// LICENSE INFORMATION
// The code, "Detecting Smartphones Using JavaScript"
// by Anthony Hand, is licensed under a Creative Commons
// Attribution 3.0 United States License.
// License info: http://creativecommons.org/licenses/by/3.0/us/
*/
var isIphone=false;var isTierIphone=false;var isTierRichCss=false;var isTierGenericMobile=false;var engineWebKit="webkit";var deviceAndroid="android";var deviceIphone="iphone";var deviceIpod="ipod";var deviceIpad="ipad";var deviceNuvifone="nuvifone";var deviceSymbian="symbian";var deviceS60="series60";var deviceS70="series70";var deviceS80="series80";var deviceS90="series90";var deviceWinMob="windows ce";var deviceWindows="windows";var deviceIeMob="iemobile";var enginePie="wm5 pie";var deviceBB="blackberry";var vndRIM="vnd.rim";var deviceBBStorm="blackberry95";var deviceBBBold="blackberry97";var deviceBBTour="blackberry96";var deviceBBCurve="blackberry89";var devicePalm="palm";var deviceWebOS="webos";var engineBlazer="blazer";var engineXiino="xiino";var deviceKindle="kindle";var vndwap="vnd.wap";var wml="wml";var deviceBrew="brew";var deviceDanger="danger";var deviceHiptop="hiptop";var devicePlaystation="playstation";var deviceNintendoDs="nitro";var deviceNintendo="nintendo";var deviceWii="wii";var deviceXbox="xbox";var deviceArchos="archos";var engineOpera="opera";var engineNetfront="netfront";var engineUpBrowser="up.browser";var engineOpenWeb="openweb";var deviceMidp="midp";var uplink="up.link";var engineTelecaQ='teleca q';var devicePda="pda";var mini="mini";var mobile="mobile";var mobi="mobi";var maemo="maemo";var maemoTablet="tablet";var linux="linux";var qtembedded="qt embedded";var mylocom2="com2";var manuSonyEricsson="sonyericsson";var manuericsson="ericsson";var manuSamsung1="sec-sgh";var manuSony="sony";var svcDocomo="docomo";var svcKddi="kddi";var svcVodafone="vodafone";var uagent=navigator.userAgent.toLowerCase();function DetectIphone(){if(uagent.search(deviceIphone)>-1){if(uagent.search(deviceIpod)>-1)return false;else return true;}else return false;}function DetectIpod(){if(uagent.search(deviceIpod)>-1)return true;else return false;}function DetectIpad(){if(uagent.search(deviceIpad)>-1&&DetectWebkit())return true;else return false;}function DetectIphoneOrIpod(){if(uagent.search(deviceIphone)>-1||uagent.search(deviceIpod)>-1)return true;else return false;}function DetectAndroid(){if(uagent.search(deviceAndroid)>-1)return true;else return false;}function DetectAndroidWebKit(){if(DetectAndroid()&&DetectWebkit())return true;else return false;}function DetectWebkit(){if(uagent.search(engineWebKit)>-1)return true;else return false;}function DetectS60OssBrowser(){if(DetectWebkit()){if((uagent.search(deviceS60)>-1||uagent.search(deviceSymbian)>-1))return true;else return false;}else return false;}function DetectSymbianOS(){if(uagent.search(deviceSymbian)>-1||uagent.search(deviceS60)>-1||uagent.search(deviceS70)>-1||uagent.search(deviceS80)>-1||uagent.search(deviceS90)>-1)return true;else return false;}function DetectWindowsMobile(){if(uagent.search(deviceWinMob)>-1||uagent.search(deviceIeMob)>-1||uagent.search(enginePie)>-1)return true;else return false;}function DetectBlackBerry(){if(uagent.search(deviceBB)>-1)return true;if(uagent.search(vndRIM)>-1)return true;else return false;}function DetectBlackBerryTouch(){if(uagent.search(deviceBBStorm)>-1)return true;else return false;}function DetectBlackBerryHigh(){if(DetectBlackBerry()){if(DetectBlackBerryTouch()||uagent.search(deviceBBBold)>-1||uagent.search(deviceBBTour)>-1||uagent.search(deviceBBCurve)>-1)return true;else return false;}else return false;}function DetectBlackBerryLow(){if(DetectBlackBerry()){if(DetectBlackBerryHigh())return false;else return true;}else return false;}function DetectPalmOS(){if(uagent.search(devicePalm)>-1||uagent.search(engineBlazer)>-1||uagent.search(engineXiino)>-1){if(DetectPalmWebOS())return false;else return true;}else return false;}function DetectPalmWebOS(){if(uagent.search(deviceWebOS)>-1)return true;else return false;}function DetectGarminNuvifone(){if(uagent.search(deviceNuvifone)>-1)return true;else return false;}function DetectSmartphone(){if(DetectIphoneOrIpod())return true;if(DetectS60OssBrowser())return true;if(DetectSymbianOS())return true;if(DetectWindowsMobile())return true;if(DetectAndroid())return true;if(DetectBlackBerry())return true;if(DetectPalmWebOS())return true;if(DetectPalmOS())return true;if(DetectGarminNuvifone())return true;return false;};function DetectArchos(){if(uagent.search(deviceArchos)>-1)return true;else return false;}function DetectBrewDevice(){if(uagent.search(deviceBrew)>-1)return true;else return false;}function DetectDangerHiptop(){if(uagent.search(deviceDanger)>-1||uagent.search(deviceHiptop))return true;else return false;}function DetectMaemoTablet(){if(uagent.search(maemo)>-1)return true;if(uagent.search(maemoTablet)>-1&&uagent.search(linux))return true;else return false;}function DetectSonyMylo(){if(uagent.search(manuSony)>-1){if(uagent.search(qtembedded)>-1||uagent.search(mylocom2)>-1)return true;else return false;}else return false;}function DetectOperaMobile(){if(uagent.search(engineOpera)>-1){if(uagent.search(mini)>-1||uagent.search(mobi)>-1)return true;else return false;}else return false;}function DetectSonyPlaystation(){if(uagent.search(devicePlaystation))return true;else return false;};function DetectNintendo(){if(uagent.search(deviceNintendo)>-1||uagent.search(deviceWii)>-1||uagent.search(deviceNintendoDs)>-1)return true;else return false;};function DetectXbox(){if(uagent.search(deviceXbox))return true;else return false;};function DetectGameConsole(){if(DetectSonyPlaystation())return true;if(DetectNintendo())return true;if(DetectXbox())return true;else return false;};function DetectKindle(){if(uagent.search(deviceKindle)>-1)return true;else return false;}function DetectMobileQuick(){if(DetectSmartphone())return true;if(uagent.search(deviceWap)>-1||uagent.search(deviceMidp)>-1||uagent.search(deviceWml)>-1||DetectBrewDevice())return true;if(DetectOperaMobile())return true;if(uagent.search(engineNetfront)>-1)return true;if(uagent.search(engineUpBrowser)>-1)return true;if(uagent.search(engineOpenWeb)>-1)return true;if(DetectDangerHiptop())return true;if(DetectMaemoTablet())return true;if(DetectArchos())return true;if(uagent.search(devicePda)>-1)return true;if(uagent.search(mobile)>-1)return true;if(DetectKindle())return true;return false;};function DetectMobileLong(){if(DetectMobileQuick())return true;if(DetectGameConsole())return true;if(DetectSonyMylo())return true;if(uagent.search(manuSamsung1)>-1||uagent.search(manuSonyEricsson)>-1||uagent.search(manuericsson)>-1)return true;if(uagent.search(svcDocomo)>-1)return true;if(uagent.search(svcKddi)>-1)return true;if(uagent.search(svcVodafone)>-1)return true;return false;};function DetectTierIphone(){if(DetectIphoneOrIpod())return true;if(DetectAndroid())return true;if(DetectAndroidWebKit())return true;if(DetectPalmWebOS())return true;if(DetectGarminNuvifone())return true;if(DetectMaemoTablet())return true;else return false;};function DetectTierRichCss(){if(DetectMobileQuick()){if(DetectTierIphone())return false;if(DetectWebkit())return true;if(DetectS60OssBrowser())return true;if(DetectBlackBerryHigh())return true;if(DetectWindowsMobile())return true;if(uagent.search(engineTelecaQ)>-1)return true;else return false;}else return false;};function DetectTierOtherPhones(){if(DetectMobileLong()){if(DetectTierIphone())return false;if(DetectTierRichCss())return false;else return true;}else return false;};
var redirect = null;
redirect = queryString('mRedirectType');
if (redirect) {
    switch(redirect) {
        case 'perm':
            SetCookie('mRedirected', true, 1, '/', window.location.hostname);
            break;
        case 'once':
            break;
    }
}

var cookie = GetCookie('mRedirected');

if (!cookie && DetectSmartphone()){
    var redirectToItem = false;
    if (!cookie) {
        var loc = window.location + '';
        var file;

        if ((file = loc.lastIndexOf('/')) != -1) {
            if (file != loc.length - 1) {
                var firstpos = file + 1;
                var lastpos = loc.lastIndexOf('.');

                var mid = loc.substring(firstpos, lastpos);

                if (mid && mid != 'index') {
                    redirectToItem = true;
                }

            }
        }

        if (!redirectToItem) {
            window.location="http://m.meditests.com/?sid=meditests";
        } else {
            window.location="http://m.meditests.com/?sid=meditests&cmd=showitem&item=" + mid;
        }

    }
}

function SetCookie( name, value, expires, path, domain, secure ) {
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );

}

function GetCookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );


		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}

function DeleteCookie( name, path, domain ) {
if ( Get_Cookie( name ) ) document.cookie = name + "=" +
( ( path ) ? ";path=" + path : "") +
( ( domain ) ? ";domain=" + domain : "" ) +
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}


function PageQuery(q) {
    if(q.length > 1)
        this.q = q.substring(1, q.length);
    else this.q = null;
        this.keyValuePairs = new Array();

    if(q) {

        for(var i=0; i < this.q.split("&").length; i++) {
            this.keyValuePairs[i] = this.q.split("&")[i];
        }
    }

    this.getKeyValuePairs = function() { return this.keyValuePairs; }
    this.getValue = function(s) {
        for(var j=0; j < this.keyValuePairs.length; j++) {
            if(this.keyValuePairs[j].split("=")[0] == s)
                return this.keyValuePairs[j].split("=")[1];
        }
            return false;
    }

    this.getParameters = function() {
        var a = new Array(this.getLength());
        for(var j=0; j < this.keyValuePairs.length; j++) {
            a[j] = this.keyValuePairs[j].split("=")[0];
        }
        return a;
    }
    this.getLength = function() { return this.keyValuePairs.length; }
}

function queryString(key){
    var page = new PageQuery(window.location.search);
    return unescape(page.getValue(key));
}




