
function aGet(url, divid, loading){
	ajrl = 1;
	
	$(divid).style.visibility = 'visible';

	
	if($(divid).type == 'text') $(divid).value = 'Loading...';
	 
	if (loading != false)
	    $(divid).innerHTML =  '<img src="/ajax-loader.gif" />';
        
	var method = "GET";
	
	var GlobalAjaxObject;
		
	if (window.XMLHttpRequest) 
		GlobalAjaxObject = new XMLHttpRequest();
	else if(window.ActiveXObject)
		GlobalAjaxObject = new ActiveXObject("Msxml2.XMLHTTP"); 
	else { 
		alert('Your browser is not supported.')
		return; 
	}
	GlobalAjaxObject.open(method, url, true); 
	GlobalAjaxObject.setRequestHeader("Content-type", "AJAX-REQUEST");
	GlobalAjaxObject.onreadystatechange = function (){
		
		if(GlobalAjaxObject.readyState == 4){
			
            if($(divid).type == 'text') $(divid).value = GlobalAjaxObject.responseText;
                else
            $(divid).innerHTML = GlobalAjaxObject.responseText;
	
	    }
		
	}
	GlobalAjaxObject.send(null);

	return false;
	
}

function onEnter(evt, btn) {
    var keyCode = null;
 
    if( evt.which ) {
        keyCode = evt.which;
    } 
    else if( evt.keyCode ) {
        keyCode = evt.keyCode;
    }

    if( 13 == keyCode ) {
        btn.click();
        return false;
    }
    return true;
}

function onEnterFocus(evt, btn) {
    var keyCode = null;
 
    if( evt.which ) {
        keyCode = evt.which;
    } 
    else if( evt.keyCode ) {
        keyCode = evt.keyCode;
    }

    if( 13 == keyCode ) {
        btn.focus();
        return false;
    }
    return true;
}

function getKey(evt) {
    var keyCode = null;
 
    if( evt.which ) {
        keyCode = evt.which;
    } 
    else if( evt.keyCode ) {
        keyCode = evt.keyCode;
    }

    return keyCode
}


function getViewport() {

    var viewportwidth;
    var viewportheight;

    // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

    if (typeof window.innerWidth != 'undefined')
    {
      viewportwidth = window.innerWidth,
      viewportheight = window.innerHeight
    }

    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

    else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0)
    {
       viewportwidth = document.documentElement.clientWidth,
       viewportheight = document.documentElement.clientHeight
    }

    // older versions of IE

    else
    {
       viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
       viewportheight = document.getElementsByTagName('body')[0].clientHeight
    }

    return [viewportwidth, viewportheight];
}

function getElementHeight(eId) {
    if($(eId).clientHeight) {
	return $(eId).clientHeight;
    }
    else {
	if($(eId).offsetHeight) {
	    return $(eId).offsetHeight;
	}
    }
}    

function getElementWidth(eId) {
    if($(eId).clientWidth) {
	return $(eId).clientWidth;
    }
    else {
	if($(eId).offsetWidth) {
	    return $(eId).offsetWidth;
	}
    }
}    



var cX = 0; var cY = 0; var rX = 0; var rY = 0;
function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;}
function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;}
if (document.all) { 
	document.onmousemove = UpdateCursorPositionDocAll; 
	}
else { 
    document.onmousemove = UpdateCursorPosition; 
    }
    
    
function AssignPosition(d) {
    if(self.pageYOffset) {
	rX = self.pageXOffset;
	rY = self.pageYOffset;
	}
    else if(document.documentElement && document.documentElement.scrollTop) {
	rX = document.documentElement.scrollLeft;
	rY = document.documentElement.scrollTop;
	}
    else if(document.body) {
	rX = document.body.scrollLeft;
	rY = document.body.scrollTop;
	}
    if(document.all) {
	cX += rX; 
	cY += rY;
	}
	
    d.style.left = (cX+0) + "px";
    d.style.top = (cY+0) + "px";
}

function AssignPositionCentered(d, iW, iH) {
    if(self.pageYOffset) {
	rX = self.pageXOffset;
	rY = self.pageYOffset;
	}
    else if(document.documentElement && document.documentElement.scrollTop) {
	rX = document.documentElement.scrollLeft;
	rY = document.documentElement.scrollTop;
	}
    else if(document.body) {
	rX = document.body.scrollLeft;
	rY = document.body.scrollTop;
	}
	
    var v = getViewport();
    var vW = v[0]; var vH = v[1]
        
	
    var bX = (vW - iW + 6) / 2 + rX;
    var bY = (vH - iH) / 2 + rY;
	
	
    if (bY < rY) {
       bY = rY + 10
    }
	
	
    d.style.left = bX + "px";
    d.style.top =  bY + "px";
    
    d.style.width = iW + "px"
}

function HideContent(d) {
    if(d.length < 1) { return; }
    document.getElementById(d).style.display = "none";
}

function ShowContent(d) {
    if(d.length < 1) { return; }
    var dd = document.getElementById(d);
    AssignPosition(dd);
    dd.style.display = "block";
}

function ShowCentered(d, iii) {
    if(d.length < 1) { return; }
    //var dd = document.getElementById(d);
    var dd = $(d);
    
    //dd.style.display = "block";    
    dd.show();
    
    iH = getElementHeight(d)
    iW = getElementWidth(d)
    iW = iii.width + 6;
    
        
    
    AssignPositionCentered(dd, iW,iH);    

}

function ReverseContentDisplay(d) {
    if(d.length < 1) { return; }
    var dd = document.getElementById(d);
    AssignPosition(dd);
    if(dd.style.display == "none") { dd.style.display = "block"; }
    else { dd.style.display = "none"; }
}



function setImageTag(imageid, tagid, fordetail, divid) {
    aGet('/projects/getImageTags?id=' + imageid + '&tagid=' + tagid, divid, false);  

    return false;
}

function hideImage(imageid, fordetail) {
    setTimeout(function() {aGet('/projects/showSingleImage?id=' + imageid + '&fordetail=' + fordetail, 'singleimage' + imageid, false);}, 100); 
    $('disablediv').hide()
    
}

function OLD_ObjectImageClick(i, id, fordetail) {

    aGet('/projects/getImageTags?id=' + id + '&fordetail=' + fordetail, 'imagesettag')
    ShowContent('imagesettag');    
}

function ObjectImageClick(i, id, fordetail, desc) {

    $('fullimage').onload = function (event) {ShowCentered('divfullimage', $('fullimage'));  $('descimage').focus();};

    $('delimagelink').href='/projects/manageImage?imageid='+id+'&action=delete'; 
    $('togglecategoryimagelink').href='/projects/manageImage?imageid='+id+'&fordetail=' + fordetail + '&action=togglecategory'; 
    $('addimagetodetail').href='/projects/manageImage?imageid='+id+'&fordetail=' + fordetail + '&action=addtodetail'; 
    
    $('loadedimageid').value = id; 
    $('descimage').value = desc; 
    
        
    if ($('ispublic'+id).value == '0') {
	$('makepublic').show();
	$('makeinternal').hide();

	$('makepublic').onclick = function (event) {aGet('/projects/imagetogglepublic?imageid=' + id, 'makepublic'); 
	
	    $('makeinternal').show();
	    $('makepublic').hide();
	
	return false;};
	
    } else {
	$('makeinternal').show();
	$('makepublic').hide();

	$('makeinternal').onclick = function (event) {aGet('/projects/imagetogglepublic?imageid=' + id, 'makeinternal'); 
	    $('makepublic').show();
	    $('makeinternal').hide();

	return false;};

    }
    
    $('fullimage').src = ''; 
    $('fullimage').src = '/projects/getImage?id=' + id + '&sizex=800'; 
    aGet('/projects/getImageTags?id=' + id + '&fordetail=' + fordetail, 'aimagetags', false);
    aGet('/projects/getImageTags?category=' + $('loadedcategory').value + '&id=' + id + '&fordetail=' + fordetail, 'aimagecategorytags', false);
    
}

function DetailImageClick(i, id,  detailid, desc) {
    $('detfullimage').onload = function (event) {ShowCentered('detdivfullimage', $('detfullimage'));};

    $('detdelimagelink').href='/projects/manageImage?imageid='+id+'&fordetail=' + detailid + '&action=delfromdetail';  
    
    $('detloadedimageid').value = id; 
    $('detdescimage').innerHTML = desc; 
    
    $('detimageactions').show();
    $('showdetailinfo').hide();
    
    $('detfullimage').src = ''; 
    $('detfullimage').src = '/projects/getImage?id=' + id + '&sizex=800'; 
    aGet('/projects/getImageTagsLabel?id=' + id, 'detimagetags', false);
    aGet('/projects/getImageTagsLabel?category=' + $('detloadedcategory').value + '&id=' + id, 'detimageallstags', false);
  
}

function DetailImageClickFromPreview(i, id,  detailid, desc) {
    $('detfullimage').onload = function (event) {ShowCentered('detdivfullimage', $('detfullimage'));};

    $('detdelimagelink').href='/projects/manageImage?imageid='+id+'&fordetail=' + detailid + '&action=delfromdetail';  
    
    $('detloadedimageid').value = id; 
    $('detdescimage').innerHTML = desc; 
    
    $('detimageactions').hide();
    $('showdetailinfo').show();
    $('showdetailinfo').href='/projects/project/' + detailid;

    $('detfullimage').src = ''; 
    $('detfullimage').src = '/projects/getImage?id=' + id + '&sizex=800'; 
    aGet('/projects/getImageTagsLabel?id=' + id, 'detimagetags', false);
    aGet('/projects/getImageTagsLabel?category=' + $('detloadedcategory').value + '&id=' + id, 'detimageallstags', false);
  
}

function setObjectImageSrc(i, id) {
    
    ival = $('himage' + id).value;
    i.src='/projects/getImage?id=' + id + '&sizex=' + ival;
    if (ival == "120") {
	ival = "80"
    }
    else
    {
	ival = "120"
    }
    
    $('himage' + id).value = ival;
    aGet('/projects/selectImage?id=' + id, 'imagetags');
}

function howTall() {
if (typeof document.height!= 'undefined') {
docHeight = document.height;
} else if (document.compatMode && document.compatMode!= 'BackCompat') {
docHeight = document.documentElement.scrollHeight;
} else if (document.body && typeof document.body.scrollheight!= 'undefined') {
docHeight = document.body.scrollheight;
}
alert (docHeight);
} 

function getBrowserHeight(){
		if( window.innerHeight && window.scrollMaxY ){ // Firefox 
			pageHeight = window.innerHeight + window.scrollMaxY;
		}else if( document.body.scrollHeight > document.body.offsetHeight ) // all but Explorer Mac
		{
			pageHeight = document.body.scrollHeight;
		}else{ // works in Explorer 6 Strict, Mozilla (not FF) and Safari 
			pageHeight = document.body.offsetHeight + document.body.offsetTop; 
		}
		return pageHeight;			
	}


function showWindowOnTop(w) {
    $('disablediv').style.height = getBrowserHeight() + 'px';
        
    //$('disablediv').style.zIndex = 10000;
    //$(w).style.zIndex = 10001;
    $('disablediv').show();
    $(w).show();
    $('disablediv').onclick = function(event) {
	$(w).hide();
	$('disablediv').hide();
    }
}
