/*
var _errs=["4e932ad320bd916e29091406"];(function(a,b){a.onerror=function(){_errs.push(arguments)};
var d=function(){var a=b.createElement("script"),c=b.getElementsByTagName("script")[0];
a.src=b.location.protocol+"//errorception.com/projects/"+_errs[0]+"/beacon.js";c.parentNode.insertBefore(a,c)};
a.addEventListener?a.addEventListener("load",d,!1):a.attachEvent("onload",d)})(window,document);
*/

//Dies in ie7
//var flash_installed = ((typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") || (window.ActiveXObject && (new ActiveXObject("ShockwaveFlash.ShockwaveFlash")) != false));

if (!window.console) var console = {};
console.log = console.log || function(){};
console.warn = console.warn || function(){};
console.debug = console.debug || function(){};
console.error = console.error || function(){};
console.info = console.info || function(){};
console.trace = function(){};
// To quickly disable all console messages, uncomment the following line
// console.log = console.debug = console.warn = console.error = console.info =
// function() {};
// or simply turn off the mundane console messages
// console.debug = function(){};

//Works
//if(!JSON) var JSON={};
//JSON.stringify = JSON.stringify || function(){};
//Works
//if(!window.JSON) JSON={};
//JSON.stringify = JSON.stringify || function(){};
//Does not work
//if(!JSON) JSON={};
//JSON.stringify = JSON.stringify || function(){};
//Best of both!
if(!window.JSON) var JSON={};
JSON.stringify = JSON.stringify || function(){};

window.onerror = function(message, file, lineNumber) {
	//var prefix = "http://" + window.location.hostname + "/code/error.php";
	var prefix = "//" + window.location.hostname + "/code/error.php";
	var browser_ = encodeURIComponent(navigator.appVersion);
	var error_ = encodeURIComponent("msg:"+ message + "\n\tfile:"+file+"\n\tln:"+lineNumber);
	var user_ = encodeURIComponent("");

	var url_ = prefix + "?" + "browser=" + browser_ + "&" + "error="+error_ + "&" + "user=" + user_;
	var scrpt =document.createElement("script");
	scrpt.src = url_;
	document.getElementsByTagName("head")[0].appendChild(scrpt);
	
	//new Image().src = prefix + url_;
	
	console.log("Called /code/error.php");
	
	return false;
	
}

/*
window.onerror = function(message, file, lineNumber) {
	//window.onerror = function(message, url, line_num) {
	// Standard error information
	var error = '\n JS Error: ' + message + ' from ' + file + ':' + lineNumber;
	
	
	// User agent info, using https://github.com/caseyohara/user-agent
	var user_agent = new UserAgent();
	error += '\n Browser: ' + user_agent.browser_name + ' ' + user_agent.browser_version + ' | OS: ' + user_agent.os + ' | Platform: ' + user_agent.platform;

	// User information - I find it useful to know who's logged in, so I can contact them for more info. Modify for your own use.
	//if (USER_INFO) error += '\n User: ' + USER_INFO.email + ' http://' + window.location.host + '/user/' + USER_INFO.id; 

	// Send it using my standard AJAX wrapper function, POSTING to a view that calls logging.error() on the error= arg
	//sendData('log-error', 'error=' + error, function() {});
	
	
	//sendData('log-error', 'error=' + error, function() {});

	
	new Image().src = "/js-error-log?message="
    + encodeURIComponent(message)
    + "&pamError=" + encodeURIComponent(error)
    + "&file=" + encodeURIComponent(file)
    + "&lineNumber=" + encodeURIComponent(lineNumber);

	return false;
};
*/

function randomFromTo(from, to){
    return Math.floor(Math.random() * (to - from + 1) + from);
}

var giosasuloginname;
giosasuloginname = (function() {
	var cookies = document.cookie.split(";");
	for(var i = 0; i < cookies.length; i++) {
	    if (cookies[i].indexOf('SSONAME') > 0) {
	        //var sso_name = document.createElement('li');
	        if (cookies[i].substring(9) == "") {
	            break;
	        }
	        //alert(cookies[i].substring(9));
	        return cookies[i].substring(9);
	        //sso_name.innerHTML = cookies[i].substring(9);
	        
	        
	        //var sso_link = document.createElement('li');
	        //sso_link.innerHTML = '<a target="_top" href="'+ASUHeader.signout_url+'">SIGN OUT</a>';
	        //sso_link.className = 'end';
	        //sso_link.id = 'asu_hdr_sso';
	        
	        //var ul = document.getElementById('asu_login_module');
	        //while (ul.childNodes[0]) {
	        //    ul.removeChild(ul.childNodes[0]);
	        //}
	        //ul.appendChild(sso_name);
	        //ul.appendChild(sso_link);
	        
	        break;
	    }
	}
})();

//User agent info, using https://github.com/caseyohara/user-agent
var UserAgent;
UserAgent = (function() {
  var Browsers, OS, Platform, Versions, browser_name, browser_version, os, platform;
  Versions = {
    Firefox: /firefox\/([\d\w\.\-]+)/i,
    IE: /msie\s([\d\.]+[\d])/i,
    Chrome: /chrome\/([\d\w\.\-]+)/i,
    Safari: /version\/([\d\w\.\-]+)/i,
    Ps3: /([\d\w\.\-]+)\)\s*$/i,
    Psp: /([\d\w\.\-]+)\)?\s*$/i
  };
  Browsers = {
    Konqueror: /konqueror/i,
    Chrome: /chrome/i,
    Safari: /safari/i,
    IE: /msie/i,
    Opera: /opera/i,
    PS3: /playstation 3/i,
    PSP: /playstation portable/i,
    Firefox: /firefox/i
  };
  OS = {
    WindowsVista: /windows nt 6\.0/i,
    Windows7: /windows nt 6\.\d+/i,
    Windows2003: /windows nt 5\.2/i,
    WindowsXP: /windows nt 5\.1/i,
    Windows2000: /windows nt 5\.0/i,
    OSX: /os x (\d+)[._](\d+)/i,
    Linux: /linux/i,
    Wii: /wii/i,
    PS3: /playstation 3/i,
    PSP: /playstation portable/i,
    Ipad: /\(iPad.*os (\d+)[._](\d+)/i,
    Iphone: /\(iPhone.*os (\d+)[._](\d+)/i
  };
  Platform = {
    Windows: /windows/i,
    Mac: /macintosh/i,
    Linux: /linux/i,
    Wii: /wii/i,
    Playstation: /playstation/i,
    Ipad: /ipad/i,
    Ipod: /ipod/i,
    Iphone: /iphone/i,
    Android: /android/i,
    Blackberry: /blackberry/i
  };
  function UserAgent(source) {
    if (source == null) {
      source = navigator.userAgent;
    }
    this.source = source.replace(/^\s*/, '').replace(/\s*$/, '');
    this.browser_name = browser_name(this.source);
    this.browser_version = browser_version(this.source);
    this.os = os(this.source);
    this.platform = platform(this.source);
  }
  browser_name = function(string) {
    switch (true) {
      case Browsers.Konqueror.test(string):
        return 'konqueror';
      case Browsers.Chrome.test(string):
        return 'chrome';
      case Browsers.Safari.test(string):
        return 'safari';
      case Browsers.IE.test(string):
        return 'ie';
      case Browsers.Opera.test(string):
        return 'opera';
      case Browsers.PS3.test(string):
        return 'ps3';
      case Browsers.PSP.test(string):
        return 'psp';
      case Browsers.Firefox.test(string):
        return 'firefox';
      default:
        return 'unknown';
    }
  };
  browser_version = function(string) {
    var regex;
    switch (browser_name(string)) {
      case 'chrome':
        if (Versions.Chrome.test(string)) {
          return RegExp.$1;
        }
        break;
      case 'safari':
        if (Versions.Safari.test(string)) {
          return RegExp.$1;
        }
        break;
      case 'firefox':
        if (Versions.Firefox.test(string)) {
          return RegExp.$1;
        }
        break;
      case 'ie':
        if (Versions.IE.test(string)) {
          return RegExp.$1;
        }
        break;
      case 'ps3':
        if (Versions.Ps3.test(string)) {
          return RegExp.$1;
        }
        break;
      case 'psp':
        if (Versions.Psp.test(string)) {
          return RegExp.$1;
        }
        break;
      default:
        regex = /#{name}[\/ ]([\d\w\.\-]+)/i;
        if (regex.test(string)) {
          return RegExp.$1;
        }
    }
  };
  os = function(string) {
    switch (true) {
      case OS.WindowsVista.test(string):
        return 'Windows Vista';
      case OS.Windows7.test(string):
        return 'Windows 7';
      case OS.Windows2003.test(string):
        return 'Windows 2003';
      case OS.WindowsXP.test(string):
        return 'Windows XP';
      case OS.Windows2000.test(string):
        return 'Windows 2000';
      case OS.Linux.test(string):
        return 'Linux';
      case OS.Wii.test(string):
        return 'Wii';
      case OS.PS3.test(string):
        return 'Playstation';
      case OS.PSP.test(string):
        return 'Playstation';
      case OS.OSX.test(string):
        return string.match(OS.OSX)[0].replace('_', '.');
      case OS.Ipad.test(string):
        return string.match(OS.Ipad)[0].replace('_', '.');
      case OS.Iphone.test(string):
        return string.match(OS.Iphone)[0].replace('_', '.');
      default:
        return 'unknown';
    }
  };
  platform = function(string) {
    switch (true) {
      case Platform.Windows.test(string):
        return "Microsoft Windows";
      case Platform.Mac.test(string):
        return "Apple Mac";
      case Platform.Android.test(string):
        return "Android";
      case Platform.Blackberry.test(string):
        return "Blackberry";
      case Platform.Linux.test(string):
        return "Linux";
      case Platform.Wii.test(string):
        return "Wii";
      case Platform.Playstation.test(string):
        return "Playstation";
      case Platform.Ipad.test(string):
        return "iPad";
      case Platform.Ipod.test(string):
        return "iPod";
      case Platform.Iphone.test(string):
        return "iPhone";
      default:
        return 'unknown';
    }
  };
  return UserAgent;
})();
