﻿jQuery.noConflict();

function CancelBubble(o,e){if (!e) var e = window.event;e.cancelBubble = true;if (e.stopPropagation) e.stopPropagation();}
function AddEvent(obj, type, fn) {
    if (!obj) return;
    jQuery(obj).bind(type,fn);
}
function RemoveEvent(obj, type, fn) {
    if (!obj) return;
    jQuery(obj).unbind(type,fn);
}

//if (!Array.indexOf) {    Array.prototype.indexOf = function(obj, start) {  for (var i = (start || 0); i < this.length; i++) { if (this[i] == obj) { return i; }  }  }};

String.format = function(text) {
    //check if there are two arguments in the arguments list
    if ( arguments.length <= 1 ) return text;

    //decrement to move to the second argument in the array
    var tokenCount = arguments.length - 2;
    for( var token = 0; token <= tokenCount; token++ ) {
        text = text.replace( new RegExp( "\\{" + token + "\\}", "gi" ), arguments[ token + 1 ] );
    }
    return text;
};




function CaptureEsc(e, f) { CaptureKey(27, e, f); }
function CaptureEnt(e,f){CaptureKey(13,e,f);}
function CaptureKey(k,e,f){e = e || window.event;if (!e) return; var kCode = e.keyCode || e.which;if (kCode == k){eval(f);}}
function DisableSubmit(e,f){var code;e = e || window.event;if (e.keyCode){code = e.keyCode;}else{ if (e.which) code = e.which};if(code == 13){CancelBubble(null,e);if (f) eval(f);return false;}return true;}
function GetClientSize(){var aW,aH;if(typeof( window.innerWidth ) == 'number' ) {aW = window.innerWidth;aH = window.innerHeight;} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {aW = document.documentElement.clientWidth;aH = document.documentElement.clientHeight;} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {aW = document.body.clientWidth;aH = document.body.clientHeight;}return [aW,aH];}
function GetScrollXY(){var scrOfX = 0, scrOfY = 0;if( typeof( window.pageYOffset ) == 'number' ) {scrOfY = window.pageYOffset;scrOfX = window.pageXOffset;} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {scrOfY = document.body.scrollTop;scrOfX = document.body.scrollLeft;} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {scrOfY = document.documentElement.scrollTop;scrOfX = document.documentElement.scrollLeft;}return [ scrOfX, scrOfY ];}
function DisableSelection(element) {element.onselectstart = function() {return false;};element.unselectable = "on";element.style.MozUserSelect = "none";element.style.cursor = "default";}
function EnableSelection(element) {element.onselectstart = function() {return true;};element.unselectable = "";element.style.MozUserSelect = "";element.style.cursor = "";}
function GetMouseOffset(target, ev){ev = ev || window.event;var docPos = GetObjectPosition(target);var mousePos  = GetMouseCoords(ev);return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};}
function GetObjectPosition(e){var left = 0;var top  = 0;while (e.offsetParent){left += e.offsetLeft;top  += e.offsetTop;e = e.offsetParent;} left += e.offsetLeft; top  += e.offsetTop; return {x:left, y:top};}
function GetObjectSize(e){var w = 0;var h  = 0;	w = e.offsetWidth; h = e.offsetHeight; return {w:w, h:h};}
function GetMouseCoords(ev){if(ev.pageX || ev.pageY){return {x:ev.pageX, y:ev.pageY};} return {	x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,	y:ev.clientY + document.body.scrollTop  - document.body.clientTop};}
Function.prototype.bind = function() {var __method = this, args = $A(arguments), object = args.shift();return function() {return __method.apply(object, args.concat($A(arguments)));}}
var $A = Array.from = function(iterable) {if (!iterable) return [];if (iterable.toArray) {return iterable.toArray();} else {var results = [];for (var i = 0, length = iterable.length; i < length; i++) results.push(iterable[i]); return results;}}
function Clone(o, d) { if (!o) return o; var oc = new o.constructor(); for (var p in o) if (!d) { oc[p] = o[p]; } else if (typeof o[p] == 'object') { oc[p] = Clone(o[p], d); } else { oc[p] = o[p]; } return oc; };
function getElementsByClassName(className, tag, elm) { var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)"); var tag = tag || "*"; var elm = elm || document; var elements = (tag == "*" && elm.all) ? elm.all : elm.getElementsByTagName(tag); var returnElements = []; var current; var length = elements.length; for (var i = 0; i < length; i++) { current = elements[i]; if (testClass.test(current.className)) { returnElements.push(current); } } return returnElements; }
