﻿/// <reference path="jquery.intellisense.js" />
// JQuery Dom Manipulation Functions 
// Omer @ MagiClick
$.dom = {
    version: "1.0",
    author: "Omer DUZYOL @ MagiClick",
    parse: function(arg){
        var xmlObj = null;
        try{
            if($.browser.msie){
                xmlObj=new ActiveXObject("Microsoft.XMLDOM");
                xmlObj.async="false";
                xmlObj.loadXML(arg);
            } else {
                var parser=new DOMParser();
                xmlObj=parser.parseFromString(arg,"text/xml");
            }
            return xmlObj;
        } catch(e){
            onError(e);
        }
    },
    onError:function(e){
        alert("dom Parser Error\r\n" + e.message);
    }
};

$.dom.select = function(selector,context) {
    var selectingNode = null;
    // if selector type is xpath?
    if(!/^\.\//.test(selector))
        return;
    
    selector = selector.replace(/^\.\//,"");
    if ( selector.indexOf("/")>0 ) {
        selectingNode = selector.substring(0,selector.indexOf("/"));
        selector = selector.substring(selector.indexOf("/")>0?selector.indexOf("/")+1:0);
    } else {
        selectingNode = selector;
        selector = "";
    }

    var results = $('*',context).filter(function(index) {
        return selectingNode === this.nodeName;
    });
    
    if(selector.length>0)
        results = results.find(selector);
    
    return results;
};