if (iDevCenter == null)
    var iDevCenter = new Object();

if (iDevCenter.Animation == null)
    iDevCenter.Animation = new Object();

if (iDevCenter.OpenSearch == null)
    iDevCenter.OpenSearch = new Object();

if (iDevCenter.Validation == null)
    iDevCenter.Validation = new Object();

if (iDevCenter.Utilites == null)
    iDevCenter.Utilites = new Object();

iDevCenter.Animation.Flash = function(element, color, times, delay) {

    window.setTimeout(OnTick, delay);

    function OnTick() {

        if (times % 2 == 0)
            element.style.backgroundColor = color;
        else
            element.style.backgroundColor = null;

        times = times - 1;

        if (times > 1)
            window.setTimeout(OnTick, delay);
    }
}

iDevCenter.OpenSearch.AddProvider = function() {

    // OpenSearch (Firefox 2+, IE 7+)
    if (window.external && ("AddSearchProvider" in window.external)) {
   
        window.external.AddSearchProvider("http://www.idevcenter.com/tags/opensearch.xml");
        return;
    }
    
    alert("Your browser does not support this feature!");
}

iDevCenter.Validation.CheckExists = function(validator, url, value, exclude, onCompleteHandler) {

    var request = new Object();
    request.Value = value;
    request.Exclude = exclude;

    var parameters = new Object();
    parameters.method = "post";
    parameters.postBody = Object.toJSON(request);
    parameters.onSuccess = CheckExists_OnSuccess;

    var ajax = new Ajax.Request(url, parameters);

    return false;

    function CheckExists_OnSuccess(transport) {

        var response = transport.responseText.evalJSON();

        validator.IsValid = !response.Exists;

        onCompleteHandler.Invoke();
    }
}

iDevCenter.Utilites.WriteEMail = function(account, server) {

	var address = account + "@" + server;
	document.write("<a href=\"mailto:" + address + "\">" + address + "</a>");
}

/// <copyright>
/// parseUri JS v0.1.1, by Steven Levithan <http://stevenlevithan.com>
/// </copyright>
iDevCenter.Utilites.ParseUri = function(sourceUri){

    var uriPartNames = ["source", "protocol", "authority", "domain", "port", "path", "directoryPath", "fileName", "query", "anchor"];
    var uriParts = new RegExp("^(?:([^:/?#.]+):)?(?://)?(([^:/?#]*)(?::(\\d*))?)((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[\\?#]|$)))*/?)?([^?#/]*))?(?:\\?([^#]*))?(?:#(.*))?").exec(sourceUri);
	var uri = {};
	
    for (var i = 0; i < 10; i++)
	    uri[uriPartNames[i]] = (uriParts[i] ? uriParts[i] : "");
	
    if (uri.directoryPath.length > 0)
	    uri.directoryPath = uri.directoryPath.replace(/\/?$/, "/");
	
    return uri;
}
