function UserAgentChecker() {
    this.jqpath = "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
    this.ipConfigUrl = "http://www.tapuz.co.il/common/Services/IpClientTypeChecker.ashx";
    //this._mobileBrowser = new Array("alcatel-", "blackberry", "htc_", "lg-", "mot-", "nokia", "palm", "sgh-", "samsung-", "sec-sgh", "sendo", "sie-", "sonyericsson", "es6", "iphone", "gt-");
	this._mobileBrowser = new Array('motorola_','alcatel-','blackberry','htc_','lg-','mot-','nokia','palm','sgh-','gt-','samsung-','sam-','sec-sgh','sendo','sie-','sonyericsson','es6','iphone','windows ce', 'midp', 'android', 'wap2');
	
    this.IsMobileBrowser = function() {
        var agent = navigator.userAgent;
        for (var index = 0; index < this._mobileBrowser.length; index++) {
            var browser = this._mobileBrowser[index];
            if (agent.toLowerCase().indexOf(browser) > 0) {
                return true;
            }
        }
        return false;
    }

    this.IsTouchDevice = function() {
        try {
            document.createEvent("TouchEvent");
            return true;
        } catch (e) {
            return false;
        }
    }

    this.IsTablet = function() {
        var agent = navigator.userAgent;
        if (agent.toLowerCase().indexOf('ipad') > 0) {
            return true;
        }
        //        else if (agent.toLowerCase().indexOf('android 3.0.') > 0) {
        //            return true;
        //        }

        return false;
    }

    this.CheckUserIpType = function(callback) {
		if ( typeof(jQuery) == "function" ) {
			jQuery.ajax({
				url: this.ipConfigUrl,
				success: function(response) {                
					if (response.ipType == 'mobile') {
						if (typeof (callback) == 'function') {
							callback();
						}
					}
				},
				dataType: "jsonp",
				error: function(jqXHR, textStatus, errorThrown) {
					
				}
			});
		}
    }

    this.RedirectToMobile = function() {
        var url = document.location;
        url = url.toString().toLowerCase();
        if (url.indexOf('iphrd=1') >= 0 || ReadCookie('iphrd')) {
            CreateCookie('iphrd', '1');
            return;
        }
        else if (this.IsTablet()) {
            return;
        }
        //else if (this.IsTouchDevice() && this.IsMobileBrowser()) {
		else if (this.IsMobileBrowser()) {
            //If jquery is not loaded to page, load it from CDN.
            if (typeof (jQuery) == 'undefined') {
                var scriptEl = document.createElement("script");
				scriptEl.setAttribute("async",  "true");
				scriptEl.setAttribute("src",  this.jqpath);
				scriptEl.onload = (function(bindTarget) {
					return function() {
						bindTarget.CheckUserIpType(function() {
							RedirectBySource();
						});
					}
				})(this);

				document.getElementsByTagName('head')[0].appendChild( scriptEl );

            } else { 
				this.CheckUserIpType(function() { RedirectBySource() });
			}
        }
    }

    function GetQueryStringValue(key) {
        key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        key = key.toLowerCase();
        var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
        var qs = regex.exec(window.location.href.toLowerCase());
        if (qs == null)
            return "";
        else
            return qs[1];
    }

    function CreateCookie(name, value, days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
            var expires = "; expires=" + date.toGMTString();
        }
        else var expires = "";
        document.cookie = name + "=" + value + expires + "; path=/";
    }

    function ReadCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') c = c.substring(1, c.length);
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
        }
        return null;
    }

    function RedirectBySource() {        
        var url = document.location;
        url = url.toString().toLowerCase();
        var qStringParts = url.split('?')
        var queryString;
        if (qStringParts.length > 1) {
            queryString = qStringParts[1];
        }
        var redirectAddress = "";
        if (url.indexOf("iphRD") < 0) {
            redirectAddress = "http://m.tapuz.co.il/"
            if (url.indexOf("/forums") > 0) {
                redirectAddress = "http://m.tapuz.co.il/forum";
                var forumId = GetQueryStringValue('forumid');
                var urlParts;
                if (url.indexOf("/siteforum/") > 0) {
                    urlParts = url.split('/');
                }

                if (urlParts && urlParts.length > 3) {
                    if (urlParts[urlParts.length - 1] == 'forum') {
                        fourmId = urlParts[urlParts.length - 2]
                    }
                    else if (urlParts[urlParts.length - 3] == 'view') {
                        fourmId = urlParts[urlParts.length - 4]
                    }
                }

                if (forumId) {
                    redirectAddress += "/" + forumId
                }

                var messageId = GetQueryStringValue('messageid');

                if (urlParts && urlParts.length > 3) {
                    if (urlParts[urlParts.length - 2] == 'view') {
                        messageId = urlParts[urlParts.length - 1]
                    }
                }

                if (messageId) {
                    redirectAddress += "/" + messageId
                }
            }
            else if (url.indexOf("/communa") > 0) {
                redirectAddress = "http://m.tapuz.co.il/web/communa";

                var communaId = GetQueryStringValue('communaid');
                if (communaId) {
                    redirectAddress += "/" + communaId
                }

                var messageId = GetQueryStringValue('msgid');
                if (messageId) {
                    redirectAddress += "/" + messageId
                }
            }
            else if (url.indexOf("/blog") > 0) {
                redirectAddress = "http://m.tapuz.co.il/web/blogs";

                var entryId = GetQueryStringValue('entryId');
                if (entryId) {
                    redirectAddress += "/" + entryId
                }
            }
            else if (url.indexOf("/inbox") > 0) {
                redirectAddress = "http://m.tapuz.co.il/web/lms";
            }
            else if (url.indexOf("/chat") > 0) {
                redirectAddress = "http://m.tapuz.co.il/web/chat";
            }
            else if (url.indexOf("/albums") > 0) {
                redirectAddress = "http://m.tapuz.co.il/web/albums";
            }
            else if (url.indexOf("snooz.co.il") > 0) {
                redirectAddress = "http://wap.snooz.co.il";
            }
			
			// http://sf.tapuz.co.il/shirshur-716-157790436.htm
			// document.location.href.replace(new RegExp("sf.tapuz.co.il/shirshur-(\\d+)-(\\d+)"), "m.tapuz.co.il/web/forums/$1/$2")
			var regexRedirects = {
				/* SF */
				"sf.tapuz.co.il/shirshur-(\\d+)-(\\d+).htm": "m.tapuz.co.il/web/forums/$1/$2",
				"sf.tapuz.co.il/forum-(\d+)--.htm": "m.tapuz.co.il/web/forums/$1/",
				"sf.tapuz.co.il/$": "m.tapuz.co.il/web/forums",
				/* SC */
				"sc.tapuz.co.il/shirshurCommuna-(\\d+)-(\\d+).htm": "m.tapuz.co.il/web/forums/$1/$2",
				"sc.tapuz.co.il/communa-(\d+)--.htm": "m.tapuz.co.il/web/communa/$1/",
				"sc.tapuz.co.il/$": "m.tapuz.co.il/web/communa"
			};
			
			for ( rediretPattern in regexRedirects ) { 
				try {
					var regExp = new RegExp( rediretPattern );
					if ( regExp.test( document.location.href ) ) {
						redirectAddress = document.location.href.replace( regExp, regexRedirects[ rediretPattern ] );
						break;
					}
				} catch ( e ) {
					if ( console ) {
						console.log( e );
					}
				}
			}

            if (redirectAddress) {
                location.href = redirectAddress;

            }
        }
    }
}
var userAgentChecker = new UserAgentChecker();
userAgentChecker.RedirectToMobile();
