﻿var loadComplete = false;
var filesadded = "";  //list of files already added
loadJSCSSFiles();
if (PageRequiresJQueryJavascript == 'True') {
  jqPCI(document).ready(function() {
    jqPCI("body").append('<div id="AjaxLoaderImage" class="AjaxLoader" style="width:100%;height:0px;overflow:hidden;text-align:center;visibility:hidden;"><img src="/schools/common/images/ajax-loader.gif" border="0" /></div>');
  });
};

function loadjscssfile(filename, filetype) {
  if (filetype == "js") { //if filename is a external JavaScript file
    var fileref = document.createElement('script')
    fileref.setAttribute("type", "text/javascript")
    fileref.setAttribute("src", filename)
  }
  else if (filetype == "css") { //if filename is an external CSS file
    var fileref = document.createElement("link")
    fileref.setAttribute("rel", "stylesheet")
    fileref.setAttribute("type", "text/css")
    fileref.setAttribute("href", filename)
  }
  if (typeof fileref != "undefined")
    document.getElementsByTagName("head")[0].appendChild(fileref)
}

function checkloadjscssfile(filename, filetype) {
  if (filesadded.indexOf("[" + filename + "]") == -1) {
    loadjscssfile(filename, filetype)
    filesadded += "[" + filename + "]" //List of files added in the form "[filename1],[filename2],etc"
  }
};

function loadJSCSSFiles() {
  checkloadjscssfile(PageUrlPath + "/Javascript/pci.js", "js");
  checkloadjscssfile(PageUrlPath + "/Javascript/Directory.js", "js");
  checkloadjscssfile(PageUrlPath + "/Javascript/Event.js", "js");
  checkloadjscssfile(PageUrlPath + "/Javascript/Hash.js", "js");
  if (PageRequiresJQueryJavascript == 'True') {
    checkloadjscssfile(PageUrlPath + "/javascript/jquery/PCI/PCI.jQuery.js", "js");
    checkloadjscssfile(PageUrlPath + "/javascript/jquery/PCI/PCI.jQuery.css", "css");
    checkloadjscssfile(PageUrlPath + "/javascript/jquery/js/jquery-blockUI.js", "js");
    checkloadjscssfile(PageUrlPath + "/javascript/jquery-1.3.2/alphanumeric/jquery.alphanumeric.pack.js", "js");
    checkloadjscssfile(PageUrlPath + "/modules/common/javascript/COMNDialog.js", "js");
    checkloadjscssfile(PageUrlPath + "/modules/common/javascript/COMNJQuery_1_3_2_Plugin_Stars.js", "js");
    checkloadjscssfile(PageUrlPath + "/modules/common/css/COMNJQuery_1_3_2_Plugin_Stars.css", "css");
    checkloadjscssfile(PageUrlPath + "/javascript/jquery-1.3.2/tablesorter/jquery.tablesorter.js", "js");
    checkloadjscssfile(PageUrlPath + "/javascript/jquery-1.3.2/tablesorter/chili-1.8b.pack.js", "js");
    checkloadjscssfile(PageUrlPath + "/javascript/jquery-1.3.2/tablesorter/addons/pager/jquery.tablesorter.pager.js", "js");
    checkloadjscssfile(PageUrlPath + "/javascript/jquery-1.3.2/tablesorter/jquery.tablesorter.js", "js");
    checkloadjscssfile(PageUrlPath + "/javascript/jquery-1.6.1/js/themeswitcher.js", "js");
	checkloadjscssfile(PageUrlPath + "/javascript/jquery/js/jquery.watermark.min.js", "js");

    jqPCI.preloadImages = function() {
      for (var i = 0; i < arguments.length; i++) {
        jqPCI("<img>").attr("src", PageUrlPath + "/" + arguments[i]);
      }
    }
    jqPCI.preloadImages("schools/common/images/ajax-loader.gif");
  };
};


function addLoadEvent(func)  { 
	var oldonload = window.onload; 
  if (typeof window.onload != 'function') { 
	  window.onload = func; 
	} else { 
	  window.onload = function() { 
	    if (oldonload) { 
	      oldonload(); 
	    } 
	    func();
	  } 
  }
};

addLoadEvent(function() {
  loadComplete = true;
});

if (PageRequiresJQueryJavascript == 'True')
{
	/*
	* jQuery JSON Plugin
	* version: 2.1 (2009-08-14)
	*
	* This document is licensed as free software under the terms of the
	* MIT License: http://www.opensource.org/licenses/mit-license.php
	*
	* Brantley Harris wrote this plugin. It is based somewhat on the JSON.org 
	* website's http://www.json.org/json2.js, which proclaims:
	* "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
	* I uphold.
	*
	* It is also influenced heavily by MochiKit's serializeJSON, which is 
	* copyrighted 2005 by Bob Ippolito.
	*/

	(function($)
	{
		$.toJSON = function(o)
		{
			if (typeof (JSON) == 'object' && JSON.stringify)
				return JSON.stringify(o); var type = typeof (o); if (o === null)
				return "null"; if (type == "undefined")
				return undefined; if (type == "number" || type == "boolean")
				return o + ""; if (type == "string")
				return $.quoteString(o); if (type == 'object')
			{
				if (typeof o.toJSON == "function")
					return $.toJSON(o.toJSON()); if (o.constructor === Date)
				{
					var month = o.getUTCMonth() + 1; if (month < 10) month = '0' + month; var day = o.getUTCDate(); if (day < 10) day = '0' + day; var year = o.getUTCFullYear(); var hours = o.getUTCHours(); if (hours < 10) hours = '0' + hours; var minutes = o.getUTCMinutes(); if (minutes < 10) minutes = '0' + minutes; var seconds = o.getUTCSeconds(); if (seconds < 10) seconds = '0' + seconds; var milli = o.getUTCMilliseconds(); if (milli < 100) milli = '0' + milli; if (milli < 10) milli = '0' + milli; return '"' + year + '-' + month + '-' + day + 'T' + hours + ':' + minutes + ':' + seconds + '.' + milli + 'Z"';
				}
				if (o.constructor === Array)
				{
					var ret = []; for (var i = 0; i < o.length; i++)
						ret.push($.toJSON(o[i]) || "null"); return "[" + ret.join(",") + "]";
				}
				var pairs = []; for (var k in o)
				{
					var name; var type = typeof k; if (type == "number")
						name = '"' + k + '"'; else if (type == "string")
						name = $.quoteString(k); else
						continue; if (typeof o[k] == "function")
						continue; var val = $.toJSON(o[k]); pairs.push(name + ":" + val);
				}
				return "{" + pairs.join(", ") + "}";
			}
		}; $.evalJSON = function(src)
		{
			if (typeof (JSON) == 'object' && JSON.parse)
				return JSON.parse(src); return eval("(" + src + ")");
		}; $.secureEvalJSON = function(src)
		{
			if (typeof (JSON) == 'object' && JSON.parse)
				return JSON.parse(src); var filtered = src; filtered = filtered.replace(/\\["\\\/bfnrtu]/g, '@'); filtered = filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'); filtered = filtered.replace(/(?:^|:|,)(?:\s*\[)+/g, ''); if (/^[\],:{}\s]*$/.test(filtered))
				return eval("(" + src + ")"); else
				throw new SyntaxError("Error parsing JSON, source is not valid.");
		}; $.quoteString = function(string)
		{
			if (string.match(_escapeable))
			{
				return '"' + string.replace(_escapeable, function(a)
				{ var c = _meta[a]; if (typeof c === 'string') return c; c = a.charCodeAt(); return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16); }) + '"';
			}
			return '"' + string + '"';
		}; var _escapeable = /["\\\x00-\x1f\x7f-\x9f]/g; var _meta = { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"': '\\"', '\\': '\\\\' };
	})(jQuery);
}
