/* Copyright (c) 2006 Inuvia Technologies - All rights reserved. */

var paj_agent = navigator.userAgent.toLowerCase();

var paj_IE7 = (paj_agent.indexOf("msie 7.") != -1);
var paj_Chrome = (paj_agent.indexOf("applewebkit") != -1);

var paj_submitActive = false;
function paj_registerSubmit() {
    if (document.readyState !== undefined) {
        var timerID = window.setInterval(function() {
            if (!paj_isSubmitActive()) {
                paj_hideHourglass();
                window.clearInterval(timerID);
            }
        }, 2000);
    } else {
        paj_submitActive = true;
    }
}

function paj_unregisterSubmit()
{
    paj_submitActive = false;
}

function paj_isSubmitActive() {
    if (document.readyState !== undefined) {
        return document.readyState != 'complete' && document.readyState != 'interactive' && document.readyState != 'loaded';
    } else {
        return paj_submitActive;
    }
}

var paj_debugwindow;
function paj_debug(msg) {
    //if (console && console.debug)
    //    console.debug(msg);
}

function paj_CreateXMLDOM() 
{ 
	try{return new ActiveXObject('MSXML2.DOMDocument');}catch(x){} 
	try{return new ActiveXObject('Microsoft.XMLDOM');}catch(x){} 
	throw(new Error(-1,'Cant Create XMLDOM')); 
} 

function paj_CreateXMLHTTP() 
{ 
	try{return new ActiveXObject('MSXML2.XMLHTTP');}catch(x){} 
	try{return new ActiveXObject('Microsoft.XMLHTTP');}catch(x){} 
	try{return new XMLHttpRequest();}catch(x){}
	throw(new Error(-1,'Cant Create XMLHTTP')); 
}

function paj_handleEvent( obj, eventname, eventfn, onoff )
{
    if( !obj ) return;
 
    if( onoff )
        $addHandler( obj, eventname.substring(2), eventfn );
    else
        $removeHandler( obj, eventname.substring(2), eventfn );
}

function paj_eventTarget() {
    var targ;
    var e = window.event;
    if (e.target) targ = e.target;
    else if (e.srcElement) targ = e.srcElement;
    
    if (targ.nodeType == 3)
        targ = targ.parentNode;
        
    return targ;
}

function paj_addBacking( elem ) {
    if( elem /*&& elem.style.position == 'absolute' */ ) {
        var backing = elem.document.createElement('iframe');
        backing.setAttribute('src','javascript: false;');
        backing.setAttribute('frameborder','0');
        backing.setAttribute('scrolling','no');
        backing.setAttribute('name',elem.id+'_bk');
        backing.setAttribute('id',elem.id+'_bk');
        
        backing.runtimeStyle.top = elem.currentStyle.top;
        backing.runtimeStyle.left = elem.currentStyle.left;
        backing.runtimeStyle.width = elem.offsetWidth;
        backing.runtimeStyle.height = elem.offsetHeight;
        backing.runtimeStyle.zIndex = elem.currentStyle.zIndex-1;
        backing.runtimeStyle.position = 'absolute';
        backing.runtimeStyle.visibility = 'visible';
        
        elem.document.body.appendChild(backing);
    }
}

function paj_moveBacking( elem ) {
    if( elem )
    {
        var backing = document.getElementById(elem.id+'_bk');
        if( backing ) {
            backing.runtimeStyle.top = elem.currentStyle.top;
            backing.runtimeStyle.left = elem.currentStyle.left;
            backing.runtimeStyle.width = elem.offsetWidth;
            backing.runtimeStyle.height = elem.offsetHeight;
            backing.runtimeStyle.zIndex = elem.currentStyle.zIndex-1;
        }        
    }
}

function paj_removeBacking( elem ) {
    if( elem /*&& elem.style.position == 'absolute' */ ) {
        //elem.document.body.removeChild(window.frames[elem.id+'_bk']);
        document.getElementById(elem.id+'_bk').runtimeStyle.display = 'none';
        document.getElementById(elem.id+'_bk').outerHTML='';
    }
}

function paj_getElementByID( id ) {
    return document.getElementById( id );
}

function paj_positionCentered( pane, ctrlRelTo )
{
	//var panept = new plp_pt(0,0)
	var ctrlpt = new plp_pt(0,0);
	
	//plp_GetPos( pane, panept );
	plp_GetPos( ctrlRelTo, ctrlpt );
	
	pane.style.left = ctrlpt.x+(ctrlRelTo.offsetWidth-pane.offsetWidth)/2;
	pane.style.top = ctrlpt.y+(ctrlRelTo.offsetHeight-pane.offsetHeight)/2;
	pane.style.position = 'absolute';
}
	
function paj_positionCenteredAndShow( pane, ctrlRelTo )
{
    pane.style.visibility = 'hidden';
    pane.style.display = 'block';
    if( !ctrlRelTo )
        ctrlRelTo = document.body;
    paj_positionCentered( pane, ctrlRelTo );
    pane.style.visibility = 'visible';
}

function paj_hide( pane )
{
    pane.style.display = 'none';
    pane.style.left = -1000;
}

var hourglass = null;
var hourglassTimerID = null;
function paj_setHourglass( pane )
{
    hourglass = pane;
}

function paj_showHourglass()
{
    hourglassTimerID = null;
    if( hourglass ) paj_positionCenteredAndShow(hourglass,null);
}

function paj_hideHourglass()
{
    if( hourglassTimerID ) window.clearTimeout( hourglassTimerID );
    hourglassTimerID = null;
    if( hourglass ) paj_hide( hourglass );
}

function paj_delayHourglass()
{
    hourglassTimerID = window.setTimeout( 'paj_showHourglass();', 1000);
}

var paj_cssFiles    = new Array();

function paj_loadCSSFile( path )
{
    var i;
    for( i = 0; i < paj_cssFiles.length; i++ )
        if( paj_cssFiles[i] == path ) {
            return false;
        }

    paj_cssFiles[paj_cssFiles.length] = path;
    
    if( document.styleSheets ) {
        try
        {
            document.createStyleSheet(path);
            return true;
        } catch(ex) {}
    }
    
    var link=document.createElement('link');
    link.setAttribute('rel', 'stylesheet');
    link.setAttribute('type', 'text/css');
    link.setAttribute('href', path ); 
    document.getElementsByTagName('head')[0].appendChild(link);
    
    return true;
}

function paj_touch(item)
{
    var ret = false;
    if (item != null) {
        var child = item.firstChild;
        while (child != null) {
            ret = paj_touch(child) || ret;
            child = child.nextSibling;
        }

        if (item.className && item.className != '')
            item.className = item.className;

        //    // 'touch' all DIV tags with images who have their classname set
        //    if( item.tagName == 'DIV' && ret && item.className != '')
        //        item.className = item.className;
        //    else if( item.tagName == 'IMG' )
        //        ret = true;
    }    
    return ret;
}

function paj_loadCSSFilesPageLoading( sender, args ) {
    // called during the async loading
    var newcsss = new Array();
    
    var items = args.get_dataItems();
    for( var item in items ) 
        try { 
            var someloaded = false;
            var csslist = eval(items[item]); 
            for( var index in csslist ) {
                var css = csslist[index];
                if( newcsss[css] == 1 )
                    someloaded = true;
                else if( paj_loadCSSFile( css ) ) {
                    newcsss[css] = 1; 
                    someloaded = true;
                }
            }
            // MSIE has a bug the requires a kludge
            //  update any DIV tags that may have styles defined in the to-be-loaded CSS
            if( someloaded ) //&& document.styleSheets )
                window.setTimeout( 'paj_touch($get(\''+item+'\'));', 10);
        } catch( ex ) {} 
}


function paj_attachElement( name, aftername )
{
    var elem = paj_getElementByID(name);
    if( elem ) {
        debug_msg(name,1);
        
        var afterelem = paj_getElementByID(aftername);
        // elem.parentNode.removeChild(elem);
        afterelem.parentNode.insertBefore(elem, afterelem.nextSibling);
        
        paj_positionCenteredAndShow(elem);
    }
}

function paj_detachElement(name)
{
    var elem = paj_getElementByID(name);
    if( elem ) {
        elem.parentNode.removeChild(elem);
    }
}

function paj_downloadFile(url)
{
    if( Sys.Browser.agent == Sys.Browser.InternetExplorer ) {
        var panel = document.createElement('<div class="ie_download_panel" id="download_panel">');
        panel.innerHTML = '<p class="ie_download_msg">Your file is ready to be downloaded.</p><p><a href="javascript:paj_downloadFileComplete();window.location.href=\'' 
                + url + '\';"><span class="ie_download_button">Download</span></a><a href="javascript:paj_downloadFileComplete();"><span  class="ie_download_button">Cancel</span></a></p>';
                
        var parent = paj_getElementByID('PageCell')
        if( parent == null )
            parent = document.body;
            
        parent.appendChild(panel);
        paj_positionCenteredAndShow( panel, null );
    } else {
        window.location.href = url;
    }
}

function paj_downloadFileComplete()
{
    var panel = paj_getElementByID('download_panel');
    if( panel != null )
    {
        panel.parentNode.removeChild( panel );
    }
}
 
var newpopuponcommand;
function paj_localpopup(url,width,height,title,onpopupcommand) {
    var fr = $('<div style="width:100%; height:100%;"><iframe id="content" width="100%" height="100%" border="0" frameborder="0" onload="paj_frameregister(this);" /></div>');
    var ifr = fr.children('IFRAME');

    var callback = function (args) {
                    if (args.command == 'close') {
                        var refresh = ifr.data('refreshonclose');
                        //$(frame).data('dialog').dialog('close');
                        ifr.data('dialog').remove();
                        if (refresh)
                            __doPostBack('','');
                    } else if (args.command == 'refreshonclose')
                        ifr.data('refreshonclose', true);
                    else if (onpopupcommand)
                        onpopupcommand(args);
                };

    fr.dialog({ 'width': width, 'height': height, 'autoOpen': false, 'title': title, 'zIndex': 10000, 'modal': true, 
                'close': function () { (callback)({ command: 'close' });} });
    ifr.attr('src', url);
    fr.dialog('open');
    ifr.data({'dialog': fr, 'refreshonclose': false, 'commandcallback': callback});
}

function paj_frameregister(frame) {
    try {
        if (frame.contentWindow.paj_popupregister)
            frame.contentWindow.paj_popupregister($(frame).data('commandcallback'));
    } catch (e) {}
}

var onpopupcommand = null;
function paj_popupregister(commandcallback) {
    onpopupcommand = commandcallback;
}

function paj_popupcommand(args) {
    if (onpopupcommand) 
        onpopupcommand(args);
    else
        window.setTimeout(function () { paj_popupcommand(args); }, 100);
}

if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

