﻿var divPopup, divPopupCaption, imgPopup, divKeywords;
var tmrHidePopup;
var imgLoading;

var MSPostback;
var postbackTarget;

var newCollPostedBack;
var collection_creation_prompt = "Please enter the name of the new collection ";


function initSpoof()
{
    spoofPostback();
    newCollection = '';
}

function spoofPostback() 
{ 
	MSPostback = __doPostBack;
	__doPostBack = CustomPostback; 
} 

function CustomPostback(target, argument) 
{
	if(target != 'ctl00$ddlAddtoCollection')
	{
//		alert("normal:" + target);
		MSPostback(target, argument); 
	}
	else
	{
//		alert("process:" + target);
		var realname = target.replace('$', '_');
		//alert(realname);
		var ddl = document.getElementById(realname);
		var i  = ddl.selectedIndex;
		var col = ddl.options[i].value;
		//alert(col);
		if(col == 'new')
		{
            newCollPostedBack = 'False';
            postbackTarget = target;

            var wnd = radprompt(collection_creation_prompt, promptCallBackFn);
            wnd.get_contentElement().getElementsByTagName("INPUT")[0].focus();
            wnd.behaviors = 'None';
            wnd.add_close(promptClose);
		}
		else
		{
			MSPostback(target, argument); 
		}
	}
} 


function promptCallBackFn(arg)
{
//	alert ("Prompt returned the following result: " + arg + " pb:" + postbackTarget);
	if(arg != 'Cancel' && arg != '')
	{
        newCollPostedBack = 'True';
        MSPostback(postbackTarget, arg);
    }
}
function promptClose(sender, eventArgs)
{
//  alert("Close:"+ newCollection); // newCollection not defined after 'New Collection'
    if(newCollPostedBack != 'True')
    {
        var ddl = document.getElementById('ctl00_ddlAddtoCollection');
        ddl.selectedIndex = 0;
    }
}



function ShowTimeoutWarning() {
    if (window.confirm("Your session is about to expire. Do you wish to reamin logged in?")) {
        window.href
    }
}





function init()
{

    var chkIncludeKeywords = findControlByPartialName(document, 'input', 'chkIncludeKeywords');
    var chkShowPreview = findControlByPartialName(document, 'input', 'chkShowPreview');

    var previews = (chkShowPreview && chkShowPreview.checked);
    var keywords = (chkIncludeKeywords && chkIncludeKeywords.checked);
    
    imgLoading = new Image();
    imgLoading.src = '/images/loading.gif';
									
	divPopup = document.getElementById('divPopup');
	divPopupCaption = document.getElementById('divPopupCaption');
	divKeywords = document.getElementById('divKeywords');
	imgPopup = document.getElementById('imgPopup');

	if (previews) 
	{
	    var thumbs = YAHOO.util.Dom.getElementsByClassName('thumbimg');
	    YAHOO.util.Event.addListener(thumbs, 'mouseover', loadPopup);
	    YAHOO.util.Event.addListener(thumbs, 'mouseout', callHide);

	    YAHOO.util.Event.addListener(imgPopup, 'mouseover', popupOver);
	    YAHOO.util.Event.addListener(imgPopup, 'mouseout', callHide);
	}

	if (keywords) 
	{
	    var keyliststubs = YAHOO.util.Dom.getElementsByClassName('keywordListStub');
	    YAHOO.util.Event.addListener(keyliststubs, 'mouseover', showKeywords);
	    YAHOO.util.Event.addListener(keyliststubs, 'mouseout', callHide);

	    YAHOO.util.Event.addListener(divKeywords, 'mouseover', popupOver);
	    YAHOO.util.Event.addListener(divKeywords, 'mouseout', callHide);
	}
}

//YAHOO.util.Event.onDOMReady(resize);
//YAHOO.util.Event.onDOMReady(initScrollPosition);
YAHOO.util.Event.onDOMReady(init);

//YAHOO.util.Event.addListener(window, "resize", resize);

function resize() {
    var divScrolling = document.getElementById('fullwidthmaster');    
    var divTop = YAHOO.util.Dom.getY(divScrolling);
    var winHeight = YAHOO.util.Dom.getViewportHeight();
    var scrollHeight = parseInt(winHeight - divTop - 60);
    YAHOO.util.Dom.setStyle(divScrolling, 'height', scrollHeight + 'px');
}

function initScrollPosition() {
    var scrolldiv = document.getElementById('fullwidth');
    YAHOO.util.Event.addListener(scrolldiv, 'scroll', saveScrollPosition);
    reloadScrollPosition();
}

function reloadScrollPosition() {
    var strCook = document.cookie;
    if (strCook.indexOf("!~") != 0) {
        var intS = strCook.indexOf("!~");
        var intE = strCook.indexOf("~!");
        var strPos = strCook.substring(intS + 2, intE);
        document.getElementById("fullwidth").scrollTop = strPos;
    }
}

function saveScrollPosition() {
    var intY = document.getElementById("fullwidth").scrollTop;
    document.cookie = "yPos=!~" + intY + "~!";
}

//find controls with names obfuscated by .net's nesting convention
//eg; ctl00$ContentPlaceHolder1$tbxDate
function findControlByPartialName(parent, tag_name, ctl_name) {
    var ctl_array = parent.getElementsByTagName(tag_name);
    for (var i = 0; i < ctl_array.length; i++) {
        var cname = ctl_array[i].name.split('$');
        if(cname[cname.length-1] == ctl_name) {
            return ctl_array[i];
        }
    }    
}

function setHiddenFormValue(name, value) {
    var els = document.getElementsByTagName('input');
    var arg = null;
    for (var j = 0; j < els.length; j++) {
        if (els[j].name == name) {
            arg = els[j];
            break;
        }
    }

    if (arg == null) {
        arg = document.createElement("input");
        arg.setAttribute("name", name);
        arg.setAttribute("type", "hidden");
        arg.style["display"] = "none";
        document.forms[0].appendChild(arg);
    }
    arg.value = value;
}

function printCatalog(url) {
    
    setHiddenFormValue('_pgloading_target_url', url);
    setHiddenFormValue('_pgloading_message', 'Preparing Document');
    setHiddenFormValue('_pgloading_method', 'redirect');

    var curTarget = document.forms[0].target;
    var curAction = document.forms[0].action;

    document.forms[0].target = '_blank';
    document.forms[0].action = 'PageLoading.aspx';
    document.forms[0].submit();

    document.forms[0].target = curTarget;
    document.forms[0].action = curAction;
}

function loadPopup()
{
    clearTimeout(tmrHidePopup);

    divKeywords.style.display = 'none';
    imgPopup.style.display = 'block';
    
	imgPopup.width = 20;
	imgPopup.height = 20;
	imgPopup.src = imgLoading.src
	
    thumb = new Image();
    thumb.src = this.src;
	var src = thumb.src.replace('Thumbnails', 'Watermarked');
	imgPopup.src = src;
    
	var xy = YAHOO.util.Dom.getXY(this);
	var xpos = YAHOO.util.Dom.getViewportWidth();
	var ypos = YAHOO.util.Dom.getViewportHeight();
	
	if(thumb.width > thumb.height)
	{ 
	    // Landscape
	    imgPopup.width = 256;
        imgPopup.height = 160;
	    xy[0]+=64;
	    xy[1]+=40;
	    if(xy[0]+imgPopup.width > xpos)
	    xy[0]-=256;
	    if(xy[1]+imgPopup.height > ypos)
	    xy[1]-=160;
	    
	}
	else
	{ 
	    // Portrait
	    imgPopup.width = 160;
        imgPopup.height = 256;
       	xy[0]+=40;
    	xy[1]+=64;
	    if(xy[0]+imgPopup.width > xpos)
	    xy[0]-=160;
	    if(xy[1]+imgPopup.height > ypos)
	    xy[1]-=256;
	}
	   
	YAHOO.util.Dom.setXY(divPopup, xy);
	
	divPopup.style.visibility = "visible";
	//divPopupCaption.innerHTML = document.getElementById('').innerHTML;
}

function showKeywords() 
{
    clearTimeout(tmrHidePopup);
    
    listId = 'keylist_' + this.id.substr(12); //parse off 'keyliststub_'
    var divKeyList = document.getElementById(listId);
    var catParagraph = divKeyList.parentNode.getElementsByTagName('p')[2];
    var xy = YAHOO.util.Dom.getXY(catParagraph);  
    YAHOO.util.Dom.setXY(divPopup, xy);

    divKeywords.innerHTML = document.getElementById(listId).innerHTML;
    divKeywords.style.display = 'block';
    imgPopup.style.display = 'none';
    divPopup.style.visibility = "visible";    
}

function popupOver()
{
	clearTimeout(tmrHidePopup);        
}		

function callHide()
{
	tmrHidePopup = setTimeout(hidePopup, 1000);
}

function hidePopup()
{
	divPopup.style.visibility = "hidden";
	imgPopup.src = imgLoading.src
}
	
function checkAll(selectAllID,imageFrameID)
{
	var selectAll = document.getElementById(selectAllID);
	var imageFrame = document.getElementById(imageFrameID);
	var formElements = imageFrame.getElementsByTagName('*');
//	alert("start:" + imageFrame.id + "," + formElements.length);
	for(var z=0; z<formElements.length;z++)
	{
		theItem = formElements[z];
		if(theItem)
		{
			if(theItem.type)
			{			
				if(theItem.type == 'checkbox' && theItem.id != selectAll.id)
				{
					theItem.checked = selectAll.checked;
					changeParentClass(theItem);
				}
			}
		}
	}
}

function SetImageBackgrounds(imageFrameID)
{
	var imageFrame = document.getElementById(imageFrameID);
	if(!imageFrame)
	    return;
	var formElements = imageFrame.getElementsByTagName('*');
	for(var z=0; z<formElements.length;z++)
	{
		theItem = formElements[z];
		if(theItem)
		{
			if(theItem.type)
			{
				if(theItem.type == 'checkbox')
				{
					changeParentClass(theItem);
				}
			}
		}
	}
}

function changeParentClass(child)
{
	var frame = child.parentNode.parentNode.parentNode.parentNode;
	var thumb = frame.childNodes[0];

	if(child.checked)
	{
		thumb.className = 'image-thumbnail-selected';
	}
	else
	{
		thumb.className = 'image-thumbnail';
	}
}

